packages feed

amazonka-iotevents (empty) → 2.0

raw patch · 161 files changed

+16897/−0 lines, 161 filesdep +amazonka-coredep +amazonka-ioteventsdep +amazonka-test

Dependencies added: amazonka-core, amazonka-iotevents, amazonka-test, base, bytestring, case-insensitive, tasty, tasty-hunit, text, time, unordered-containers

Files

+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+    means each individual or legal entity that creates, contributes to+    the creation of, or owns Covered Software.++1.2. "Contributor Version"+    means the combination of the Contributions of others (if any) used+    by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+    means Covered Software of a particular Contributor.++1.4. "Covered Software"+    means Source Code Form to which the initial Contributor has attached+    the notice in Exhibit A, the Executable Form of such Source Code+    Form, and Modifications of such Source Code Form, in each case+    including portions thereof.++1.5. "Incompatible With Secondary Licenses"+    means++    (a) that the initial Contributor has attached the notice described+        in Exhibit B to the Covered Software; or++    (b) that the Covered Software was made available under the terms of+        version 1.1 or earlier of the License, but not also under the+        terms of a Secondary License.++1.6. "Executable Form"+    means any form of the work other than Source Code Form.++1.7. "Larger Work"+    means a work that combines Covered Software with other material, in+    a separate file or files, that is not Covered Software.++1.8. "License"+    means this document.++1.9. "Licensable"+    means having the right to grant, to the maximum extent possible,+    whether at the time of the initial grant or subsequently, any and+    all of the rights conveyed by this License.++1.10. "Modifications"+    means any of the following:++    (a) any file in Source Code Form that results from an addition to,+        deletion from, or modification of the contents of Covered+        Software; or++    (b) any new file in Source Code Form that contains any Covered+        Software.++1.11. "Patent Claims" of a Contributor+    means any patent claim(s), including without limitation, method,+    process, and apparatus claims, in any patent Licensable by such+    Contributor that would be infringed, but for the grant of the+    License, by the making, using, selling, offering for sale, having+    made, import, or transfer of either its Contributions or its+    Contributor Version.++1.12. "Secondary License"+    means either the GNU General Public License, Version 2.0, the GNU+    Lesser General Public License, Version 2.1, the GNU Affero General+    Public License, Version 3.0, or any later versions of those+    licenses.++1.13. "Source Code Form"+    means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+    means an individual or a legal entity exercising rights under this+    License. For legal entities, "You" includes any entity that+    controls, is controlled by, or is under common control with You. For+    purposes of this definition, "control" means (a) the power, direct+    or indirect, to cause the direction or management of such entity,+    whether by contract or otherwise, or (b) ownership of more than+    fifty percent (50%) of the outstanding shares or beneficial+    ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+    Licensable by such Contributor to use, reproduce, make available,+    modify, display, perform, distribute, and otherwise exploit its+    Contributions, either on an unmodified basis, with Modifications, or+    as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+    for sale, have made, import, and otherwise transfer either its+    Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+    or++(b) for infringements caused by: (i) Your and any other third party's+    modifications of Covered Software, or (ii) the combination of its+    Contributions with other software (except as part of its Contributor+    Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+    its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+    Form, as described in Section 3.1, and You must inform recipients of+    the Executable Form how they can obtain a copy of such Source Code+    Form by reasonable means in a timely manner, at a charge no more+    than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+    License, or sublicense it under different terms, provided that the+    license for the Executable Form does not attempt to limit or alter+    the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+*                                                                      *+*  6. Disclaimer of Warranty                                           *+*  -------------------------                                           *+*                                                                      *+*  Covered Software is provided under this License on an "as is"       *+*  basis, without warranty of any kind, either expressed, implied, or  *+*  statutory, including, without limitation, warranties that the       *+*  Covered Software is free of defects, merchantable, fit for a        *+*  particular purpose or non-infringing. The entire risk as to the     *+*  quality and performance of the Covered Software is with You.        *+*  Should any Covered Software prove defective in any respect, You     *+*  (not any Contributor) assume the cost of any necessary servicing,   *+*  repair, or correction. This disclaimer of warranty constitutes an   *+*  essential part of this License. No use of any Covered Software is   *+*  authorized under this License except under this disclaimer.         *+*                                                                      *+************************************************************************++************************************************************************+*                                                                      *+*  7. Limitation of Liability                                          *+*  --------------------------                                          *+*                                                                      *+*  Under no circumstances and under no legal theory, whether tort      *+*  (including negligence), contract, or otherwise, shall any           *+*  Contributor, or anyone who distributes Covered Software as          *+*  permitted above, be liable to You for any direct, indirect,         *+*  special, incidental, or consequential damages of any character      *+*  including, without limitation, damages for lost profits, loss of    *+*  goodwill, work stoppage, computer failure or malfunction, or any    *+*  and all other commercial damages or losses, even if such party      *+*  shall have been informed of the possibility of such damages. This   *+*  limitation of liability shall not apply to liability for death or   *+*  personal injury resulting from such party's negligence to the       *+*  extent applicable law prohibits such limitation. Some               *+*  jurisdictions do not allow the exclusion or limitation of           *+*  incidental or consequential damages, so this exclusion and          *+*  limitation may not apply to You.                                    *+*                                                                      *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++  This Source Code Form is subject to the terms of the Mozilla Public+  License, v. 2.0. If a copy of the MPL was not distributed with this+  file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,44 @@+# Amazon IoT Events SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2018-07-27@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-iotevents)+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.IoTEvents](http://hackage.haskell.org/package/amazonka-iotevents/docs/Amazonka-IoTEvents.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-iotevents` 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-iotevents.cabal view
@@ -0,0 +1,180 @@+cabal-version:      2.2+name:               amazonka-iotevents+version:            2.0+synopsis:           Amazon IoT Events SDK.+homepage:           https://github.com/brendanhay/amazonka+bug-reports:        https://github.com/brendanhay/amazonka/issues+license:            MPL-2.0+license-file:       LICENSE+author:             Brendan Hay+maintainer:+  Brendan Hay <brendan.g.hay+amazonka@gmail.com>, Jack Kelly <jack@jackkelly.name>++copyright:          Copyright (c) 2013-2023 Brendan Hay+category:           AWS+build-type:         Simple+extra-source-files:+  fixture/*.proto+  fixture/*.yaml+  README.md+  src/.gitkeep++description:+  Derived from API version @2018-07-27@ 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.IoTEvents.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.IoTEvents" 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-iotevents++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.IoTEvents+    Amazonka.IoTEvents.CreateAlarmModel+    Amazonka.IoTEvents.CreateDetectorModel+    Amazonka.IoTEvents.CreateInput+    Amazonka.IoTEvents.DeleteAlarmModel+    Amazonka.IoTEvents.DeleteDetectorModel+    Amazonka.IoTEvents.DeleteInput+    Amazonka.IoTEvents.DescribeAlarmModel+    Amazonka.IoTEvents.DescribeDetectorModel+    Amazonka.IoTEvents.DescribeDetectorModelAnalysis+    Amazonka.IoTEvents.DescribeInput+    Amazonka.IoTEvents.DescribeLoggingOptions+    Amazonka.IoTEvents.GetDetectorModelAnalysisResults+    Amazonka.IoTEvents.Lens+    Amazonka.IoTEvents.ListAlarmModels+    Amazonka.IoTEvents.ListAlarmModelVersions+    Amazonka.IoTEvents.ListDetectorModels+    Amazonka.IoTEvents.ListDetectorModelVersions+    Amazonka.IoTEvents.ListInputRoutings+    Amazonka.IoTEvents.ListInputs+    Amazonka.IoTEvents.ListTagsForResource+    Amazonka.IoTEvents.PutLoggingOptions+    Amazonka.IoTEvents.StartDetectorModelAnalysis+    Amazonka.IoTEvents.TagResource+    Amazonka.IoTEvents.Types+    Amazonka.IoTEvents.Types.AcknowledgeFlow+    Amazonka.IoTEvents.Types.Action+    Amazonka.IoTEvents.Types.AlarmAction+    Amazonka.IoTEvents.Types.AlarmCapabilities+    Amazonka.IoTEvents.Types.AlarmEventActions+    Amazonka.IoTEvents.Types.AlarmModelSummary+    Amazonka.IoTEvents.Types.AlarmModelVersionStatus+    Amazonka.IoTEvents.Types.AlarmModelVersionSummary+    Amazonka.IoTEvents.Types.AlarmNotification+    Amazonka.IoTEvents.Types.AlarmRule+    Amazonka.IoTEvents.Types.AnalysisResult+    Amazonka.IoTEvents.Types.AnalysisResultLevel+    Amazonka.IoTEvents.Types.AnalysisResultLocation+    Amazonka.IoTEvents.Types.AnalysisStatus+    Amazonka.IoTEvents.Types.AssetPropertyTimestamp+    Amazonka.IoTEvents.Types.AssetPropertyValue+    Amazonka.IoTEvents.Types.AssetPropertyVariant+    Amazonka.IoTEvents.Types.Attribute+    Amazonka.IoTEvents.Types.ClearTimerAction+    Amazonka.IoTEvents.Types.ComparisonOperator+    Amazonka.IoTEvents.Types.DetectorDebugOption+    Amazonka.IoTEvents.Types.DetectorModel+    Amazonka.IoTEvents.Types.DetectorModelConfiguration+    Amazonka.IoTEvents.Types.DetectorModelDefinition+    Amazonka.IoTEvents.Types.DetectorModelSummary+    Amazonka.IoTEvents.Types.DetectorModelVersionStatus+    Amazonka.IoTEvents.Types.DetectorModelVersionSummary+    Amazonka.IoTEvents.Types.DynamoDBAction+    Amazonka.IoTEvents.Types.DynamoDBv2Action+    Amazonka.IoTEvents.Types.EmailConfiguration+    Amazonka.IoTEvents.Types.EmailContent+    Amazonka.IoTEvents.Types.EmailRecipients+    Amazonka.IoTEvents.Types.EvaluationMethod+    Amazonka.IoTEvents.Types.Event+    Amazonka.IoTEvents.Types.FirehoseAction+    Amazonka.IoTEvents.Types.InitializationConfiguration+    Amazonka.IoTEvents.Types.Input+    Amazonka.IoTEvents.Types.InputConfiguration+    Amazonka.IoTEvents.Types.InputDefinition+    Amazonka.IoTEvents.Types.InputIdentifier+    Amazonka.IoTEvents.Types.InputStatus+    Amazonka.IoTEvents.Types.InputSummary+    Amazonka.IoTEvents.Types.IotEventsAction+    Amazonka.IoTEvents.Types.IotEventsInputIdentifier+    Amazonka.IoTEvents.Types.IotSiteWiseAction+    Amazonka.IoTEvents.Types.IotSiteWiseAssetModelPropertyIdentifier+    Amazonka.IoTEvents.Types.IotSiteWiseInputIdentifier+    Amazonka.IoTEvents.Types.IotTopicPublishAction+    Amazonka.IoTEvents.Types.LambdaAction+    Amazonka.IoTEvents.Types.LoggingLevel+    Amazonka.IoTEvents.Types.LoggingOptions+    Amazonka.IoTEvents.Types.NotificationAction+    Amazonka.IoTEvents.Types.NotificationTargetActions+    Amazonka.IoTEvents.Types.OnEnterLifecycle+    Amazonka.IoTEvents.Types.OnExitLifecycle+    Amazonka.IoTEvents.Types.OnInputLifecycle+    Amazonka.IoTEvents.Types.Payload+    Amazonka.IoTEvents.Types.PayloadType+    Amazonka.IoTEvents.Types.RecipientDetail+    Amazonka.IoTEvents.Types.ResetTimerAction+    Amazonka.IoTEvents.Types.RoutedResource+    Amazonka.IoTEvents.Types.SetTimerAction+    Amazonka.IoTEvents.Types.SetVariableAction+    Amazonka.IoTEvents.Types.SimpleRule+    Amazonka.IoTEvents.Types.SMSConfiguration+    Amazonka.IoTEvents.Types.SNSTopicPublishAction+    Amazonka.IoTEvents.Types.SqsAction+    Amazonka.IoTEvents.Types.SSOIdentity+    Amazonka.IoTEvents.Types.State+    Amazonka.IoTEvents.Types.Tag+    Amazonka.IoTEvents.Types.TransitionEvent+    Amazonka.IoTEvents.UntagResource+    Amazonka.IoTEvents.UpdateAlarmModel+    Amazonka.IoTEvents.UpdateDetectorModel+    Amazonka.IoTEvents.UpdateInput+    Amazonka.IoTEvents.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-iotevents-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.IoTEvents+    Test.Amazonka.IoTEvents+    Test.Amazonka.IoTEvents.Internal++  build-depends:+    , amazonka-core         >=2.0 && <2.1+    , amazonka-iotevents+    , amazonka-test         >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/CreateAlarmModel.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotevents/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotevents.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/CreateAlarmModelResponse.proto view
+ fixture/CreateDetectorModel.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotevents/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotevents.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/CreateDetectorModelResponse.proto view
+ fixture/CreateInput.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotevents/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotevents.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/CreateInputResponse.proto view
+ fixture/DeleteAlarmModel.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotevents/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotevents.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/DeleteAlarmModelResponse.proto view
+ fixture/DeleteDetectorModel.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotevents/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotevents.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/DeleteDetectorModelResponse.proto view
+ fixture/DeleteInput.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotevents/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotevents.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/DeleteInputResponse.proto view
+ fixture/DescribeAlarmModel.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotevents/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotevents.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/DescribeAlarmModelResponse.proto view
+ fixture/DescribeDetectorModel.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotevents/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotevents.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/DescribeDetectorModelAnalysis.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotevents/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotevents.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/DescribeDetectorModelAnalysisResponse.proto view
+ fixture/DescribeDetectorModelResponse.proto view
+ fixture/DescribeInput.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotevents/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotevents.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/DescribeInputResponse.proto view
+ fixture/DescribeLoggingOptions.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotevents/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotevents.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/DescribeLoggingOptionsResponse.proto view
+ fixture/GetDetectorModelAnalysisResults.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotevents/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotevents.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/GetDetectorModelAnalysisResultsResponse.proto view
+ fixture/ListAlarmModelVersions.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotevents/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotevents.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/ListAlarmModelVersionsResponse.proto view
+ fixture/ListAlarmModels.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotevents/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotevents.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/ListAlarmModelsResponse.proto view
+ fixture/ListDetectorModelVersions.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotevents/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotevents.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/ListDetectorModelVersionsResponse.proto view
+ fixture/ListDetectorModels.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotevents/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotevents.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/ListDetectorModelsResponse.proto view
+ fixture/ListInputRoutings.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotevents/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotevents.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/ListInputRoutingsResponse.proto view
+ fixture/ListInputs.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotevents/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotevents.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/ListInputsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotevents/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotevents.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/PutLoggingOptions.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotevents/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotevents.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/PutLoggingOptionsResponse.proto view
+ fixture/StartDetectorModelAnalysis.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotevents/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotevents.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/StartDetectorModelAnalysisResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotevents/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotevents.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/iotevents/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotevents.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/UpdateAlarmModel.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotevents/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotevents.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/UpdateAlarmModelResponse.proto view
+ fixture/UpdateDetectorModel.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotevents/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotevents.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/UpdateDetectorModelResponse.proto view
+ fixture/UpdateInput.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotevents/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotevents.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/UpdateInputResponse.proto view
+ gen/Amazonka/IoTEvents.hs view
@@ -0,0 +1,548 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.IoTEvents+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Derived from API version @2018-07-27@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- AWS IoT Events monitors your equipment or device fleets for failures or+-- changes in operation, and triggers actions when such events occur. You+-- can use AWS IoT Events API operations to create, read, update, and+-- delete inputs and detector models, and to list their versions.+module Amazonka.IoTEvents+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** InternalFailureException+    _InternalFailureException,++    -- ** InvalidRequestException+    _InvalidRequestException,++    -- ** LimitExceededException+    _LimitExceededException,++    -- ** ResourceAlreadyExistsException+    _ResourceAlreadyExistsException,++    -- ** ResourceInUseException+    _ResourceInUseException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ServiceUnavailableException+    _ServiceUnavailableException,++    -- ** ThrottlingException+    _ThrottlingException,++    -- ** UnsupportedOperationException+    _UnsupportedOperationException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** CreateAlarmModel+    CreateAlarmModel (CreateAlarmModel'),+    newCreateAlarmModel,+    CreateAlarmModelResponse (CreateAlarmModelResponse'),+    newCreateAlarmModelResponse,++    -- ** CreateDetectorModel+    CreateDetectorModel (CreateDetectorModel'),+    newCreateDetectorModel,+    CreateDetectorModelResponse (CreateDetectorModelResponse'),+    newCreateDetectorModelResponse,++    -- ** CreateInput+    CreateInput (CreateInput'),+    newCreateInput,+    CreateInputResponse (CreateInputResponse'),+    newCreateInputResponse,++    -- ** DeleteAlarmModel+    DeleteAlarmModel (DeleteAlarmModel'),+    newDeleteAlarmModel,+    DeleteAlarmModelResponse (DeleteAlarmModelResponse'),+    newDeleteAlarmModelResponse,++    -- ** DeleteDetectorModel+    DeleteDetectorModel (DeleteDetectorModel'),+    newDeleteDetectorModel,+    DeleteDetectorModelResponse (DeleteDetectorModelResponse'),+    newDeleteDetectorModelResponse,++    -- ** DeleteInput+    DeleteInput (DeleteInput'),+    newDeleteInput,+    DeleteInputResponse (DeleteInputResponse'),+    newDeleteInputResponse,++    -- ** DescribeAlarmModel+    DescribeAlarmModel (DescribeAlarmModel'),+    newDescribeAlarmModel,+    DescribeAlarmModelResponse (DescribeAlarmModelResponse'),+    newDescribeAlarmModelResponse,++    -- ** DescribeDetectorModel+    DescribeDetectorModel (DescribeDetectorModel'),+    newDescribeDetectorModel,+    DescribeDetectorModelResponse (DescribeDetectorModelResponse'),+    newDescribeDetectorModelResponse,++    -- ** DescribeDetectorModelAnalysis+    DescribeDetectorModelAnalysis (DescribeDetectorModelAnalysis'),+    newDescribeDetectorModelAnalysis,+    DescribeDetectorModelAnalysisResponse (DescribeDetectorModelAnalysisResponse'),+    newDescribeDetectorModelAnalysisResponse,++    -- ** DescribeInput+    DescribeInput (DescribeInput'),+    newDescribeInput,+    DescribeInputResponse (DescribeInputResponse'),+    newDescribeInputResponse,++    -- ** DescribeLoggingOptions+    DescribeLoggingOptions (DescribeLoggingOptions'),+    newDescribeLoggingOptions,+    DescribeLoggingOptionsResponse (DescribeLoggingOptionsResponse'),+    newDescribeLoggingOptionsResponse,++    -- ** GetDetectorModelAnalysisResults+    GetDetectorModelAnalysisResults (GetDetectorModelAnalysisResults'),+    newGetDetectorModelAnalysisResults,+    GetDetectorModelAnalysisResultsResponse (GetDetectorModelAnalysisResultsResponse'),+    newGetDetectorModelAnalysisResultsResponse,++    -- ** ListAlarmModelVersions+    ListAlarmModelVersions (ListAlarmModelVersions'),+    newListAlarmModelVersions,+    ListAlarmModelVersionsResponse (ListAlarmModelVersionsResponse'),+    newListAlarmModelVersionsResponse,++    -- ** ListAlarmModels+    ListAlarmModels (ListAlarmModels'),+    newListAlarmModels,+    ListAlarmModelsResponse (ListAlarmModelsResponse'),+    newListAlarmModelsResponse,++    -- ** ListDetectorModelVersions+    ListDetectorModelVersions (ListDetectorModelVersions'),+    newListDetectorModelVersions,+    ListDetectorModelVersionsResponse (ListDetectorModelVersionsResponse'),+    newListDetectorModelVersionsResponse,++    -- ** ListDetectorModels+    ListDetectorModels (ListDetectorModels'),+    newListDetectorModels,+    ListDetectorModelsResponse (ListDetectorModelsResponse'),+    newListDetectorModelsResponse,++    -- ** ListInputRoutings+    ListInputRoutings (ListInputRoutings'),+    newListInputRoutings,+    ListInputRoutingsResponse (ListInputRoutingsResponse'),+    newListInputRoutingsResponse,++    -- ** ListInputs+    ListInputs (ListInputs'),+    newListInputs,+    ListInputsResponse (ListInputsResponse'),+    newListInputsResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** PutLoggingOptions+    PutLoggingOptions (PutLoggingOptions'),+    newPutLoggingOptions,+    PutLoggingOptionsResponse (PutLoggingOptionsResponse'),+    newPutLoggingOptionsResponse,++    -- ** StartDetectorModelAnalysis+    StartDetectorModelAnalysis (StartDetectorModelAnalysis'),+    newStartDetectorModelAnalysis,+    StartDetectorModelAnalysisResponse (StartDetectorModelAnalysisResponse'),+    newStartDetectorModelAnalysisResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateAlarmModel+    UpdateAlarmModel (UpdateAlarmModel'),+    newUpdateAlarmModel,+    UpdateAlarmModelResponse (UpdateAlarmModelResponse'),+    newUpdateAlarmModelResponse,++    -- ** UpdateDetectorModel+    UpdateDetectorModel (UpdateDetectorModel'),+    newUpdateDetectorModel,+    UpdateDetectorModelResponse (UpdateDetectorModelResponse'),+    newUpdateDetectorModelResponse,++    -- ** UpdateInput+    UpdateInput (UpdateInput'),+    newUpdateInput,+    UpdateInputResponse (UpdateInputResponse'),+    newUpdateInputResponse,++    -- * Types++    -- ** AlarmModelVersionStatus+    AlarmModelVersionStatus (..),++    -- ** AnalysisResultLevel+    AnalysisResultLevel (..),++    -- ** AnalysisStatus+    AnalysisStatus (..),++    -- ** ComparisonOperator+    ComparisonOperator (..),++    -- ** DetectorModelVersionStatus+    DetectorModelVersionStatus (..),++    -- ** EvaluationMethod+    EvaluationMethod (..),++    -- ** InputStatus+    InputStatus (..),++    -- ** LoggingLevel+    LoggingLevel (..),++    -- ** PayloadType+    PayloadType (..),++    -- ** AcknowledgeFlow+    AcknowledgeFlow (AcknowledgeFlow'),+    newAcknowledgeFlow,++    -- ** Action+    Action (Action'),+    newAction,++    -- ** AlarmAction+    AlarmAction (AlarmAction'),+    newAlarmAction,++    -- ** AlarmCapabilities+    AlarmCapabilities (AlarmCapabilities'),+    newAlarmCapabilities,++    -- ** AlarmEventActions+    AlarmEventActions (AlarmEventActions'),+    newAlarmEventActions,++    -- ** AlarmModelSummary+    AlarmModelSummary (AlarmModelSummary'),+    newAlarmModelSummary,++    -- ** AlarmModelVersionSummary+    AlarmModelVersionSummary (AlarmModelVersionSummary'),+    newAlarmModelVersionSummary,++    -- ** AlarmNotification+    AlarmNotification (AlarmNotification'),+    newAlarmNotification,++    -- ** AlarmRule+    AlarmRule (AlarmRule'),+    newAlarmRule,++    -- ** AnalysisResult+    AnalysisResult (AnalysisResult'),+    newAnalysisResult,++    -- ** AnalysisResultLocation+    AnalysisResultLocation (AnalysisResultLocation'),+    newAnalysisResultLocation,++    -- ** AssetPropertyTimestamp+    AssetPropertyTimestamp (AssetPropertyTimestamp'),+    newAssetPropertyTimestamp,++    -- ** AssetPropertyValue+    AssetPropertyValue (AssetPropertyValue'),+    newAssetPropertyValue,++    -- ** AssetPropertyVariant+    AssetPropertyVariant (AssetPropertyVariant'),+    newAssetPropertyVariant,++    -- ** Attribute+    Attribute (Attribute'),+    newAttribute,++    -- ** ClearTimerAction+    ClearTimerAction (ClearTimerAction'),+    newClearTimerAction,++    -- ** DetectorDebugOption+    DetectorDebugOption (DetectorDebugOption'),+    newDetectorDebugOption,++    -- ** DetectorModel+    DetectorModel (DetectorModel'),+    newDetectorModel,++    -- ** DetectorModelConfiguration+    DetectorModelConfiguration (DetectorModelConfiguration'),+    newDetectorModelConfiguration,++    -- ** DetectorModelDefinition+    DetectorModelDefinition (DetectorModelDefinition'),+    newDetectorModelDefinition,++    -- ** DetectorModelSummary+    DetectorModelSummary (DetectorModelSummary'),+    newDetectorModelSummary,++    -- ** DetectorModelVersionSummary+    DetectorModelVersionSummary (DetectorModelVersionSummary'),+    newDetectorModelVersionSummary,++    -- ** DynamoDBAction+    DynamoDBAction (DynamoDBAction'),+    newDynamoDBAction,++    -- ** DynamoDBv2Action+    DynamoDBv2Action (DynamoDBv2Action'),+    newDynamoDBv2Action,++    -- ** EmailConfiguration+    EmailConfiguration (EmailConfiguration'),+    newEmailConfiguration,++    -- ** EmailContent+    EmailContent (EmailContent'),+    newEmailContent,++    -- ** EmailRecipients+    EmailRecipients (EmailRecipients'),+    newEmailRecipients,++    -- ** Event+    Event (Event'),+    newEvent,++    -- ** FirehoseAction+    FirehoseAction (FirehoseAction'),+    newFirehoseAction,++    -- ** InitializationConfiguration+    InitializationConfiguration (InitializationConfiguration'),+    newInitializationConfiguration,++    -- ** Input+    Input (Input'),+    newInput,++    -- ** InputConfiguration+    InputConfiguration (InputConfiguration'),+    newInputConfiguration,++    -- ** InputDefinition+    InputDefinition (InputDefinition'),+    newInputDefinition,++    -- ** InputIdentifier+    InputIdentifier (InputIdentifier'),+    newInputIdentifier,++    -- ** InputSummary+    InputSummary (InputSummary'),+    newInputSummary,++    -- ** IotEventsAction+    IotEventsAction (IotEventsAction'),+    newIotEventsAction,++    -- ** IotEventsInputIdentifier+    IotEventsInputIdentifier (IotEventsInputIdentifier'),+    newIotEventsInputIdentifier,++    -- ** IotSiteWiseAction+    IotSiteWiseAction (IotSiteWiseAction'),+    newIotSiteWiseAction,++    -- ** IotSiteWiseAssetModelPropertyIdentifier+    IotSiteWiseAssetModelPropertyIdentifier (IotSiteWiseAssetModelPropertyIdentifier'),+    newIotSiteWiseAssetModelPropertyIdentifier,++    -- ** IotSiteWiseInputIdentifier+    IotSiteWiseInputIdentifier (IotSiteWiseInputIdentifier'),+    newIotSiteWiseInputIdentifier,++    -- ** IotTopicPublishAction+    IotTopicPublishAction (IotTopicPublishAction'),+    newIotTopicPublishAction,++    -- ** LambdaAction+    LambdaAction (LambdaAction'),+    newLambdaAction,++    -- ** LoggingOptions+    LoggingOptions (LoggingOptions'),+    newLoggingOptions,++    -- ** NotificationAction+    NotificationAction (NotificationAction'),+    newNotificationAction,++    -- ** NotificationTargetActions+    NotificationTargetActions (NotificationTargetActions'),+    newNotificationTargetActions,++    -- ** OnEnterLifecycle+    OnEnterLifecycle (OnEnterLifecycle'),+    newOnEnterLifecycle,++    -- ** OnExitLifecycle+    OnExitLifecycle (OnExitLifecycle'),+    newOnExitLifecycle,++    -- ** OnInputLifecycle+    OnInputLifecycle (OnInputLifecycle'),+    newOnInputLifecycle,++    -- ** Payload+    Payload (Payload'),+    newPayload,++    -- ** RecipientDetail+    RecipientDetail (RecipientDetail'),+    newRecipientDetail,++    -- ** ResetTimerAction+    ResetTimerAction (ResetTimerAction'),+    newResetTimerAction,++    -- ** RoutedResource+    RoutedResource (RoutedResource'),+    newRoutedResource,++    -- ** SMSConfiguration+    SMSConfiguration (SMSConfiguration'),+    newSMSConfiguration,++    -- ** SNSTopicPublishAction+    SNSTopicPublishAction (SNSTopicPublishAction'),+    newSNSTopicPublishAction,++    -- ** SSOIdentity+    SSOIdentity (SSOIdentity'),+    newSSOIdentity,++    -- ** SetTimerAction+    SetTimerAction (SetTimerAction'),+    newSetTimerAction,++    -- ** SetVariableAction+    SetVariableAction (SetVariableAction'),+    newSetVariableAction,++    -- ** SimpleRule+    SimpleRule (SimpleRule'),+    newSimpleRule,++    -- ** SqsAction+    SqsAction (SqsAction'),+    newSqsAction,++    -- ** State+    State (State'),+    newState,++    -- ** Tag+    Tag (Tag'),+    newTag,++    -- ** TransitionEvent+    TransitionEvent (TransitionEvent'),+    newTransitionEvent,+  )+where++import Amazonka.IoTEvents.CreateAlarmModel+import Amazonka.IoTEvents.CreateDetectorModel+import Amazonka.IoTEvents.CreateInput+import Amazonka.IoTEvents.DeleteAlarmModel+import Amazonka.IoTEvents.DeleteDetectorModel+import Amazonka.IoTEvents.DeleteInput+import Amazonka.IoTEvents.DescribeAlarmModel+import Amazonka.IoTEvents.DescribeDetectorModel+import Amazonka.IoTEvents.DescribeDetectorModelAnalysis+import Amazonka.IoTEvents.DescribeInput+import Amazonka.IoTEvents.DescribeLoggingOptions+import Amazonka.IoTEvents.GetDetectorModelAnalysisResults+import Amazonka.IoTEvents.Lens+import Amazonka.IoTEvents.ListAlarmModelVersions+import Amazonka.IoTEvents.ListAlarmModels+import Amazonka.IoTEvents.ListDetectorModelVersions+import Amazonka.IoTEvents.ListDetectorModels+import Amazonka.IoTEvents.ListInputRoutings+import Amazonka.IoTEvents.ListInputs+import Amazonka.IoTEvents.ListTagsForResource+import Amazonka.IoTEvents.PutLoggingOptions+import Amazonka.IoTEvents.StartDetectorModelAnalysis+import Amazonka.IoTEvents.TagResource+import Amazonka.IoTEvents.Types+import Amazonka.IoTEvents.UntagResource+import Amazonka.IoTEvents.UpdateAlarmModel+import Amazonka.IoTEvents.UpdateDetectorModel+import Amazonka.IoTEvents.UpdateInput+import Amazonka.IoTEvents.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 'IoTEvents'.++-- $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/IoTEvents/CreateAlarmModel.hs view
@@ -0,0 +1,427 @@+{-# 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.IoTEvents.CreateAlarmModel+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an alarm model to monitor an AWS IoT Events input attribute. You+-- can use the alarm to get notified when the value is outside a specified+-- range. For more information, see+-- <https://docs.aws.amazon.com/iotevents/latest/developerguide/create-alarms.html Create an alarm model>+-- in the /AWS IoT Events Developer Guide/.+module Amazonka.IoTEvents.CreateAlarmModel+  ( -- * Creating a Request+    CreateAlarmModel (..),+    newCreateAlarmModel,++    -- * Request Lenses+    createAlarmModel_alarmCapabilities,+    createAlarmModel_alarmEventActions,+    createAlarmModel_alarmModelDescription,+    createAlarmModel_alarmNotification,+    createAlarmModel_key,+    createAlarmModel_severity,+    createAlarmModel_tags,+    createAlarmModel_alarmModelName,+    createAlarmModel_roleArn,+    createAlarmModel_alarmRule,++    -- * Destructuring the Response+    CreateAlarmModelResponse (..),+    newCreateAlarmModelResponse,++    -- * Response Lenses+    createAlarmModelResponse_alarmModelArn,+    createAlarmModelResponse_alarmModelVersion,+    createAlarmModelResponse_creationTime,+    createAlarmModelResponse_lastUpdateTime,+    createAlarmModelResponse_status,+    createAlarmModelResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateAlarmModel' smart constructor.+data CreateAlarmModel = CreateAlarmModel'+  { -- | Contains the configuration information of alarm state changes.+    alarmCapabilities :: Prelude.Maybe AlarmCapabilities,+    -- | Contains information about one or more alarm actions.+    alarmEventActions :: Prelude.Maybe AlarmEventActions,+    -- | A description that tells you what the alarm model detects.+    alarmModelDescription :: Prelude.Maybe Prelude.Text,+    -- | Contains information about one or more notification actions.+    alarmNotification :: Prelude.Maybe AlarmNotification,+    -- | An input attribute used as a key to create an alarm. AWS IoT Events+    -- routes+    -- <https://docs.aws.amazon.com/iotevents/latest/apireference/API_Input.html inputs>+    -- associated with this key to the alarm.+    key :: Prelude.Maybe Prelude.Text,+    -- | A non-negative integer that reflects the severity level of the alarm.+    severity :: Prelude.Maybe Prelude.Natural,+    -- | A list of key-value pairs that contain metadata for the alarm model. The+    -- tags help you manage the alarm model. For more information, see+    -- <https://docs.aws.amazon.com/iotevents/latest/developerguide/tagging-iotevents.html Tagging your AWS IoT Events resources>+    -- in the /AWS IoT Events Developer Guide/.+    --+    -- You can create up to 50 tags for one alarm model.+    tags :: Prelude.Maybe [Tag],+    -- | A unique name that helps you identify the alarm model. You can\'t change+    -- this name after you create the alarm model.+    alarmModelName :: Prelude.Text,+    -- | The ARN of the IAM role that allows the alarm to perform actions and+    -- access AWS resources. For more information, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    roleArn :: Prelude.Text,+    -- | Defines when your alarm is invoked.+    alarmRule :: AlarmRule+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateAlarmModel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'alarmCapabilities', 'createAlarmModel_alarmCapabilities' - Contains the configuration information of alarm state changes.+--+-- 'alarmEventActions', 'createAlarmModel_alarmEventActions' - Contains information about one or more alarm actions.+--+-- 'alarmModelDescription', 'createAlarmModel_alarmModelDescription' - A description that tells you what the alarm model detects.+--+-- 'alarmNotification', 'createAlarmModel_alarmNotification' - Contains information about one or more notification actions.+--+-- 'key', 'createAlarmModel_key' - An input attribute used as a key to create an alarm. AWS IoT Events+-- routes+-- <https://docs.aws.amazon.com/iotevents/latest/apireference/API_Input.html inputs>+-- associated with this key to the alarm.+--+-- 'severity', 'createAlarmModel_severity' - A non-negative integer that reflects the severity level of the alarm.+--+-- 'tags', 'createAlarmModel_tags' - A list of key-value pairs that contain metadata for the alarm model. The+-- tags help you manage the alarm model. For more information, see+-- <https://docs.aws.amazon.com/iotevents/latest/developerguide/tagging-iotevents.html Tagging your AWS IoT Events resources>+-- in the /AWS IoT Events Developer Guide/.+--+-- You can create up to 50 tags for one alarm model.+--+-- 'alarmModelName', 'createAlarmModel_alarmModelName' - A unique name that helps you identify the alarm model. You can\'t change+-- this name after you create the alarm model.+--+-- 'roleArn', 'createAlarmModel_roleArn' - The ARN of the IAM role that allows the alarm to perform actions and+-- access AWS resources. For more information, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'alarmRule', 'createAlarmModel_alarmRule' - Defines when your alarm is invoked.+newCreateAlarmModel ::+  -- | 'alarmModelName'+  Prelude.Text ->+  -- | 'roleArn'+  Prelude.Text ->+  -- | 'alarmRule'+  AlarmRule ->+  CreateAlarmModel+newCreateAlarmModel+  pAlarmModelName_+  pRoleArn_+  pAlarmRule_ =+    CreateAlarmModel'+      { alarmCapabilities =+          Prelude.Nothing,+        alarmEventActions = Prelude.Nothing,+        alarmModelDescription = Prelude.Nothing,+        alarmNotification = Prelude.Nothing,+        key = Prelude.Nothing,+        severity = Prelude.Nothing,+        tags = Prelude.Nothing,+        alarmModelName = pAlarmModelName_,+        roleArn = pRoleArn_,+        alarmRule = pAlarmRule_+      }++-- | Contains the configuration information of alarm state changes.+createAlarmModel_alarmCapabilities :: Lens.Lens' CreateAlarmModel (Prelude.Maybe AlarmCapabilities)+createAlarmModel_alarmCapabilities = Lens.lens (\CreateAlarmModel' {alarmCapabilities} -> alarmCapabilities) (\s@CreateAlarmModel' {} a -> s {alarmCapabilities = a} :: CreateAlarmModel)++-- | Contains information about one or more alarm actions.+createAlarmModel_alarmEventActions :: Lens.Lens' CreateAlarmModel (Prelude.Maybe AlarmEventActions)+createAlarmModel_alarmEventActions = Lens.lens (\CreateAlarmModel' {alarmEventActions} -> alarmEventActions) (\s@CreateAlarmModel' {} a -> s {alarmEventActions = a} :: CreateAlarmModel)++-- | A description that tells you what the alarm model detects.+createAlarmModel_alarmModelDescription :: Lens.Lens' CreateAlarmModel (Prelude.Maybe Prelude.Text)+createAlarmModel_alarmModelDescription = Lens.lens (\CreateAlarmModel' {alarmModelDescription} -> alarmModelDescription) (\s@CreateAlarmModel' {} a -> s {alarmModelDescription = a} :: CreateAlarmModel)++-- | Contains information about one or more notification actions.+createAlarmModel_alarmNotification :: Lens.Lens' CreateAlarmModel (Prelude.Maybe AlarmNotification)+createAlarmModel_alarmNotification = Lens.lens (\CreateAlarmModel' {alarmNotification} -> alarmNotification) (\s@CreateAlarmModel' {} a -> s {alarmNotification = a} :: CreateAlarmModel)++-- | An input attribute used as a key to create an alarm. AWS IoT Events+-- routes+-- <https://docs.aws.amazon.com/iotevents/latest/apireference/API_Input.html inputs>+-- associated with this key to the alarm.+createAlarmModel_key :: Lens.Lens' CreateAlarmModel (Prelude.Maybe Prelude.Text)+createAlarmModel_key = Lens.lens (\CreateAlarmModel' {key} -> key) (\s@CreateAlarmModel' {} a -> s {key = a} :: CreateAlarmModel)++-- | A non-negative integer that reflects the severity level of the alarm.+createAlarmModel_severity :: Lens.Lens' CreateAlarmModel (Prelude.Maybe Prelude.Natural)+createAlarmModel_severity = Lens.lens (\CreateAlarmModel' {severity} -> severity) (\s@CreateAlarmModel' {} a -> s {severity = a} :: CreateAlarmModel)++-- | A list of key-value pairs that contain metadata for the alarm model. The+-- tags help you manage the alarm model. For more information, see+-- <https://docs.aws.amazon.com/iotevents/latest/developerguide/tagging-iotevents.html Tagging your AWS IoT Events resources>+-- in the /AWS IoT Events Developer Guide/.+--+-- You can create up to 50 tags for one alarm model.+createAlarmModel_tags :: Lens.Lens' CreateAlarmModel (Prelude.Maybe [Tag])+createAlarmModel_tags = Lens.lens (\CreateAlarmModel' {tags} -> tags) (\s@CreateAlarmModel' {} a -> s {tags = a} :: CreateAlarmModel) Prelude.. Lens.mapping Lens.coerced++-- | A unique name that helps you identify the alarm model. You can\'t change+-- this name after you create the alarm model.+createAlarmModel_alarmModelName :: Lens.Lens' CreateAlarmModel Prelude.Text+createAlarmModel_alarmModelName = Lens.lens (\CreateAlarmModel' {alarmModelName} -> alarmModelName) (\s@CreateAlarmModel' {} a -> s {alarmModelName = a} :: CreateAlarmModel)++-- | The ARN of the IAM role that allows the alarm to perform actions and+-- access AWS resources. For more information, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+createAlarmModel_roleArn :: Lens.Lens' CreateAlarmModel Prelude.Text+createAlarmModel_roleArn = Lens.lens (\CreateAlarmModel' {roleArn} -> roleArn) (\s@CreateAlarmModel' {} a -> s {roleArn = a} :: CreateAlarmModel)++-- | Defines when your alarm is invoked.+createAlarmModel_alarmRule :: Lens.Lens' CreateAlarmModel AlarmRule+createAlarmModel_alarmRule = Lens.lens (\CreateAlarmModel' {alarmRule} -> alarmRule) (\s@CreateAlarmModel' {} a -> s {alarmRule = a} :: CreateAlarmModel)++instance Core.AWSRequest CreateAlarmModel where+  type+    AWSResponse CreateAlarmModel =+      CreateAlarmModelResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateAlarmModelResponse'+            Prelude.<$> (x Data..?> "alarmModelArn")+            Prelude.<*> (x Data..?> "alarmModelVersion")+            Prelude.<*> (x Data..?> "creationTime")+            Prelude.<*> (x Data..?> "lastUpdateTime")+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateAlarmModel where+  hashWithSalt _salt CreateAlarmModel' {..} =+    _salt+      `Prelude.hashWithSalt` alarmCapabilities+      `Prelude.hashWithSalt` alarmEventActions+      `Prelude.hashWithSalt` alarmModelDescription+      `Prelude.hashWithSalt` alarmNotification+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` severity+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` alarmModelName+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` alarmRule++instance Prelude.NFData CreateAlarmModel where+  rnf CreateAlarmModel' {..} =+    Prelude.rnf alarmCapabilities+      `Prelude.seq` Prelude.rnf alarmEventActions+      `Prelude.seq` Prelude.rnf alarmModelDescription+      `Prelude.seq` Prelude.rnf alarmNotification+      `Prelude.seq` Prelude.rnf key+      `Prelude.seq` Prelude.rnf severity+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf alarmModelName+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf alarmRule++instance Data.ToHeaders CreateAlarmModel where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON CreateAlarmModel where+  toJSON CreateAlarmModel' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("alarmCapabilities" Data..=)+              Prelude.<$> alarmCapabilities,+            ("alarmEventActions" Data..=)+              Prelude.<$> alarmEventActions,+            ("alarmModelDescription" Data..=)+              Prelude.<$> alarmModelDescription,+            ("alarmNotification" Data..=)+              Prelude.<$> alarmNotification,+            ("key" Data..=) Prelude.<$> key,+            ("severity" Data..=) Prelude.<$> severity,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ("alarmModelName" Data..= alarmModelName),+            Prelude.Just ("roleArn" Data..= roleArn),+            Prelude.Just ("alarmRule" Data..= alarmRule)+          ]+      )++instance Data.ToPath CreateAlarmModel where+  toPath = Prelude.const "/alarm-models"++instance Data.ToQuery CreateAlarmModel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateAlarmModelResponse' smart constructor.+data CreateAlarmModelResponse = CreateAlarmModelResponse'+  { -- | The ARN of the alarm model. For more information, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    alarmModelArn :: Prelude.Maybe Prelude.Text,+    -- | The version of the alarm model.+    alarmModelVersion :: Prelude.Maybe Prelude.Text,+    -- | The time the alarm model was created, in the Unix epoch format.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The time the alarm model was last updated, in the Unix epoch format.+    lastUpdateTime :: Prelude.Maybe Data.POSIX,+    -- | The status of the alarm model. The status can be one of the following+    -- values:+    --+    -- -   @ACTIVE@ - The alarm model is active and it\'s ready to evaluate+    --     data.+    --+    -- -   @ACTIVATING@ - AWS IoT Events is activating your alarm model.+    --     Activating an alarm model can take up to a few minutes.+    --+    -- -   @INACTIVE@ - The alarm model is inactive, so it isn\'t ready to+    --     evaluate data. Check your alarm model information and update the+    --     alarm model.+    --+    -- -   @FAILED@ - You couldn\'t create or update the alarm model. Check+    --     your alarm model information and try again.+    status :: Prelude.Maybe AlarmModelVersionStatus,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateAlarmModelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'alarmModelArn', 'createAlarmModelResponse_alarmModelArn' - The ARN of the alarm model. For more information, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'alarmModelVersion', 'createAlarmModelResponse_alarmModelVersion' - The version of the alarm model.+--+-- 'creationTime', 'createAlarmModelResponse_creationTime' - The time the alarm model was created, in the Unix epoch format.+--+-- 'lastUpdateTime', 'createAlarmModelResponse_lastUpdateTime' - The time the alarm model was last updated, in the Unix epoch format.+--+-- 'status', 'createAlarmModelResponse_status' - The status of the alarm model. The status can be one of the following+-- values:+--+-- -   @ACTIVE@ - The alarm model is active and it\'s ready to evaluate+--     data.+--+-- -   @ACTIVATING@ - AWS IoT Events is activating your alarm model.+--     Activating an alarm model can take up to a few minutes.+--+-- -   @INACTIVE@ - The alarm model is inactive, so it isn\'t ready to+--     evaluate data. Check your alarm model information and update the+--     alarm model.+--+-- -   @FAILED@ - You couldn\'t create or update the alarm model. Check+--     your alarm model information and try again.+--+-- 'httpStatus', 'createAlarmModelResponse_httpStatus' - The response's http status code.+newCreateAlarmModelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateAlarmModelResponse+newCreateAlarmModelResponse pHttpStatus_ =+  CreateAlarmModelResponse'+    { alarmModelArn =+        Prelude.Nothing,+      alarmModelVersion = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      lastUpdateTime = Prelude.Nothing,+      status = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the alarm model. For more information, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+createAlarmModelResponse_alarmModelArn :: Lens.Lens' CreateAlarmModelResponse (Prelude.Maybe Prelude.Text)+createAlarmModelResponse_alarmModelArn = Lens.lens (\CreateAlarmModelResponse' {alarmModelArn} -> alarmModelArn) (\s@CreateAlarmModelResponse' {} a -> s {alarmModelArn = a} :: CreateAlarmModelResponse)++-- | The version of the alarm model.+createAlarmModelResponse_alarmModelVersion :: Lens.Lens' CreateAlarmModelResponse (Prelude.Maybe Prelude.Text)+createAlarmModelResponse_alarmModelVersion = Lens.lens (\CreateAlarmModelResponse' {alarmModelVersion} -> alarmModelVersion) (\s@CreateAlarmModelResponse' {} a -> s {alarmModelVersion = a} :: CreateAlarmModelResponse)++-- | The time the alarm model was created, in the Unix epoch format.+createAlarmModelResponse_creationTime :: Lens.Lens' CreateAlarmModelResponse (Prelude.Maybe Prelude.UTCTime)+createAlarmModelResponse_creationTime = Lens.lens (\CreateAlarmModelResponse' {creationTime} -> creationTime) (\s@CreateAlarmModelResponse' {} a -> s {creationTime = a} :: CreateAlarmModelResponse) Prelude.. Lens.mapping Data._Time++-- | The time the alarm model was last updated, in the Unix epoch format.+createAlarmModelResponse_lastUpdateTime :: Lens.Lens' CreateAlarmModelResponse (Prelude.Maybe Prelude.UTCTime)+createAlarmModelResponse_lastUpdateTime = Lens.lens (\CreateAlarmModelResponse' {lastUpdateTime} -> lastUpdateTime) (\s@CreateAlarmModelResponse' {} a -> s {lastUpdateTime = a} :: CreateAlarmModelResponse) Prelude.. Lens.mapping Data._Time++-- | The status of the alarm model. The status can be one of the following+-- values:+--+-- -   @ACTIVE@ - The alarm model is active and it\'s ready to evaluate+--     data.+--+-- -   @ACTIVATING@ - AWS IoT Events is activating your alarm model.+--     Activating an alarm model can take up to a few minutes.+--+-- -   @INACTIVE@ - The alarm model is inactive, so it isn\'t ready to+--     evaluate data. Check your alarm model information and update the+--     alarm model.+--+-- -   @FAILED@ - You couldn\'t create or update the alarm model. Check+--     your alarm model information and try again.+createAlarmModelResponse_status :: Lens.Lens' CreateAlarmModelResponse (Prelude.Maybe AlarmModelVersionStatus)+createAlarmModelResponse_status = Lens.lens (\CreateAlarmModelResponse' {status} -> status) (\s@CreateAlarmModelResponse' {} a -> s {status = a} :: CreateAlarmModelResponse)++-- | The response's http status code.+createAlarmModelResponse_httpStatus :: Lens.Lens' CreateAlarmModelResponse Prelude.Int+createAlarmModelResponse_httpStatus = Lens.lens (\CreateAlarmModelResponse' {httpStatus} -> httpStatus) (\s@CreateAlarmModelResponse' {} a -> s {httpStatus = a} :: CreateAlarmModelResponse)++instance Prelude.NFData CreateAlarmModelResponse where+  rnf CreateAlarmModelResponse' {..} =+    Prelude.rnf alarmModelArn+      `Prelude.seq` Prelude.rnf alarmModelVersion+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf lastUpdateTime+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTEvents/CreateDetectorModel.hs view
@@ -0,0 +1,274 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.CreateDetectorModel+-- 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 detector model.+module Amazonka.IoTEvents.CreateDetectorModel+  ( -- * Creating a Request+    CreateDetectorModel (..),+    newCreateDetectorModel,++    -- * Request Lenses+    createDetectorModel_detectorModelDescription,+    createDetectorModel_evaluationMethod,+    createDetectorModel_key,+    createDetectorModel_tags,+    createDetectorModel_detectorModelName,+    createDetectorModel_detectorModelDefinition,+    createDetectorModel_roleArn,++    -- * Destructuring the Response+    CreateDetectorModelResponse (..),+    newCreateDetectorModelResponse,++    -- * Response Lenses+    createDetectorModelResponse_detectorModelConfiguration,+    createDetectorModelResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateDetectorModel' smart constructor.+data CreateDetectorModel = CreateDetectorModel'+  { -- | A brief description of the detector model.+    detectorModelDescription :: Prelude.Maybe Prelude.Text,+    -- | Information about the order in which events are evaluated and how+    -- actions are executed.+    evaluationMethod :: Prelude.Maybe EvaluationMethod,+    -- | The input attribute key used to identify a device or system to create a+    -- detector (an instance of the detector model) and then to route each+    -- input received to the appropriate detector (instance). This parameter+    -- uses a JSON-path expression in the message payload of each input to+    -- specify the attribute-value pair that is used to identify the device+    -- associated with the input.+    key :: Prelude.Maybe Prelude.Text,+    -- | Metadata that can be used to manage the detector model.+    tags :: Prelude.Maybe [Tag],+    -- | The name of the detector model.+    detectorModelName :: Prelude.Text,+    -- | Information that defines how the detectors operate.+    detectorModelDefinition :: DetectorModelDefinition,+    -- | The ARN of the role that grants permission to AWS IoT Events to perform+    -- its operations.+    roleArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDetectorModel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectorModelDescription', 'createDetectorModel_detectorModelDescription' - A brief description of the detector model.+--+-- 'evaluationMethod', 'createDetectorModel_evaluationMethod' - Information about the order in which events are evaluated and how+-- actions are executed.+--+-- 'key', 'createDetectorModel_key' - The input attribute key used to identify a device or system to create a+-- detector (an instance of the detector model) and then to route each+-- input received to the appropriate detector (instance). This parameter+-- uses a JSON-path expression in the message payload of each input to+-- specify the attribute-value pair that is used to identify the device+-- associated with the input.+--+-- 'tags', 'createDetectorModel_tags' - Metadata that can be used to manage the detector model.+--+-- 'detectorModelName', 'createDetectorModel_detectorModelName' - The name of the detector model.+--+-- 'detectorModelDefinition', 'createDetectorModel_detectorModelDefinition' - Information that defines how the detectors operate.+--+-- 'roleArn', 'createDetectorModel_roleArn' - The ARN of the role that grants permission to AWS IoT Events to perform+-- its operations.+newCreateDetectorModel ::+  -- | 'detectorModelName'+  Prelude.Text ->+  -- | 'detectorModelDefinition'+  DetectorModelDefinition ->+  -- | 'roleArn'+  Prelude.Text ->+  CreateDetectorModel+newCreateDetectorModel+  pDetectorModelName_+  pDetectorModelDefinition_+  pRoleArn_ =+    CreateDetectorModel'+      { detectorModelDescription =+          Prelude.Nothing,+        evaluationMethod = Prelude.Nothing,+        key = Prelude.Nothing,+        tags = Prelude.Nothing,+        detectorModelName = pDetectorModelName_,+        detectorModelDefinition = pDetectorModelDefinition_,+        roleArn = pRoleArn_+      }++-- | A brief description of the detector model.+createDetectorModel_detectorModelDescription :: Lens.Lens' CreateDetectorModel (Prelude.Maybe Prelude.Text)+createDetectorModel_detectorModelDescription = Lens.lens (\CreateDetectorModel' {detectorModelDescription} -> detectorModelDescription) (\s@CreateDetectorModel' {} a -> s {detectorModelDescription = a} :: CreateDetectorModel)++-- | Information about the order in which events are evaluated and how+-- actions are executed.+createDetectorModel_evaluationMethod :: Lens.Lens' CreateDetectorModel (Prelude.Maybe EvaluationMethod)+createDetectorModel_evaluationMethod = Lens.lens (\CreateDetectorModel' {evaluationMethod} -> evaluationMethod) (\s@CreateDetectorModel' {} a -> s {evaluationMethod = a} :: CreateDetectorModel)++-- | The input attribute key used to identify a device or system to create a+-- detector (an instance of the detector model) and then to route each+-- input received to the appropriate detector (instance). This parameter+-- uses a JSON-path expression in the message payload of each input to+-- specify the attribute-value pair that is used to identify the device+-- associated with the input.+createDetectorModel_key :: Lens.Lens' CreateDetectorModel (Prelude.Maybe Prelude.Text)+createDetectorModel_key = Lens.lens (\CreateDetectorModel' {key} -> key) (\s@CreateDetectorModel' {} a -> s {key = a} :: CreateDetectorModel)++-- | Metadata that can be used to manage the detector model.+createDetectorModel_tags :: Lens.Lens' CreateDetectorModel (Prelude.Maybe [Tag])+createDetectorModel_tags = Lens.lens (\CreateDetectorModel' {tags} -> tags) (\s@CreateDetectorModel' {} a -> s {tags = a} :: CreateDetectorModel) Prelude.. Lens.mapping Lens.coerced++-- | The name of the detector model.+createDetectorModel_detectorModelName :: Lens.Lens' CreateDetectorModel Prelude.Text+createDetectorModel_detectorModelName = Lens.lens (\CreateDetectorModel' {detectorModelName} -> detectorModelName) (\s@CreateDetectorModel' {} a -> s {detectorModelName = a} :: CreateDetectorModel)++-- | Information that defines how the detectors operate.+createDetectorModel_detectorModelDefinition :: Lens.Lens' CreateDetectorModel DetectorModelDefinition+createDetectorModel_detectorModelDefinition = Lens.lens (\CreateDetectorModel' {detectorModelDefinition} -> detectorModelDefinition) (\s@CreateDetectorModel' {} a -> s {detectorModelDefinition = a} :: CreateDetectorModel)++-- | The ARN of the role that grants permission to AWS IoT Events to perform+-- its operations.+createDetectorModel_roleArn :: Lens.Lens' CreateDetectorModel Prelude.Text+createDetectorModel_roleArn = Lens.lens (\CreateDetectorModel' {roleArn} -> roleArn) (\s@CreateDetectorModel' {} a -> s {roleArn = a} :: CreateDetectorModel)++instance Core.AWSRequest CreateDetectorModel where+  type+    AWSResponse CreateDetectorModel =+      CreateDetectorModelResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateDetectorModelResponse'+            Prelude.<$> (x Data..?> "detectorModelConfiguration")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateDetectorModel where+  hashWithSalt _salt CreateDetectorModel' {..} =+    _salt+      `Prelude.hashWithSalt` detectorModelDescription+      `Prelude.hashWithSalt` evaluationMethod+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` detectorModelName+      `Prelude.hashWithSalt` detectorModelDefinition+      `Prelude.hashWithSalt` roleArn++instance Prelude.NFData CreateDetectorModel where+  rnf CreateDetectorModel' {..} =+    Prelude.rnf detectorModelDescription+      `Prelude.seq` Prelude.rnf evaluationMethod+      `Prelude.seq` Prelude.rnf key+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf detectorModelName+      `Prelude.seq` Prelude.rnf detectorModelDefinition+      `Prelude.seq` Prelude.rnf roleArn++instance Data.ToHeaders CreateDetectorModel where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON CreateDetectorModel where+  toJSON CreateDetectorModel' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("detectorModelDescription" Data..=)+              Prelude.<$> detectorModelDescription,+            ("evaluationMethod" Data..=)+              Prelude.<$> evaluationMethod,+            ("key" Data..=) Prelude.<$> key,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ("detectorModelName" Data..= detectorModelName),+            Prelude.Just+              ( "detectorModelDefinition"+                  Data..= detectorModelDefinition+              ),+            Prelude.Just ("roleArn" Data..= roleArn)+          ]+      )++instance Data.ToPath CreateDetectorModel where+  toPath = Prelude.const "/detector-models"++instance Data.ToQuery CreateDetectorModel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateDetectorModelResponse' smart constructor.+data CreateDetectorModelResponse = CreateDetectorModelResponse'+  { -- | Information about how the detector model is configured.+    detectorModelConfiguration :: Prelude.Maybe DetectorModelConfiguration,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDetectorModelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectorModelConfiguration', 'createDetectorModelResponse_detectorModelConfiguration' - Information about how the detector model is configured.+--+-- 'httpStatus', 'createDetectorModelResponse_httpStatus' - The response's http status code.+newCreateDetectorModelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateDetectorModelResponse+newCreateDetectorModelResponse pHttpStatus_ =+  CreateDetectorModelResponse'+    { detectorModelConfiguration =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about how the detector model is configured.+createDetectorModelResponse_detectorModelConfiguration :: Lens.Lens' CreateDetectorModelResponse (Prelude.Maybe DetectorModelConfiguration)+createDetectorModelResponse_detectorModelConfiguration = Lens.lens (\CreateDetectorModelResponse' {detectorModelConfiguration} -> detectorModelConfiguration) (\s@CreateDetectorModelResponse' {} a -> s {detectorModelConfiguration = a} :: CreateDetectorModelResponse)++-- | The response's http status code.+createDetectorModelResponse_httpStatus :: Lens.Lens' CreateDetectorModelResponse Prelude.Int+createDetectorModelResponse_httpStatus = Lens.lens (\CreateDetectorModelResponse' {httpStatus} -> httpStatus) (\s@CreateDetectorModelResponse' {} a -> s {httpStatus = a} :: CreateDetectorModelResponse)++instance Prelude.NFData CreateDetectorModelResponse where+  rnf CreateDetectorModelResponse' {..} =+    Prelude.rnf detectorModelConfiguration+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTEvents/CreateInput.hs view
@@ -0,0 +1,202 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.CreateInput+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an input.+module Amazonka.IoTEvents.CreateInput+  ( -- * Creating a Request+    CreateInput (..),+    newCreateInput,++    -- * Request Lenses+    createInput_inputDescription,+    createInput_tags,+    createInput_inputName,+    createInput_inputDefinition,++    -- * Destructuring the Response+    CreateInputResponse (..),+    newCreateInputResponse,++    -- * Response Lenses+    createInputResponse_inputConfiguration,+    createInputResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateInput' smart constructor.+data CreateInput = CreateInput'+  { -- | A brief description of the input.+    inputDescription :: Prelude.Maybe Prelude.Text,+    -- | Metadata that can be used to manage the input.+    tags :: Prelude.Maybe [Tag],+    -- | The name you want to give to the input.+    inputName :: Prelude.Text,+    -- | The definition of the input.+    inputDefinition :: InputDefinition+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateInput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'inputDescription', 'createInput_inputDescription' - A brief description of the input.+--+-- 'tags', 'createInput_tags' - Metadata that can be used to manage the input.+--+-- 'inputName', 'createInput_inputName' - The name you want to give to the input.+--+-- 'inputDefinition', 'createInput_inputDefinition' - The definition of the input.+newCreateInput ::+  -- | 'inputName'+  Prelude.Text ->+  -- | 'inputDefinition'+  InputDefinition ->+  CreateInput+newCreateInput pInputName_ pInputDefinition_ =+  CreateInput'+    { inputDescription = Prelude.Nothing,+      tags = Prelude.Nothing,+      inputName = pInputName_,+      inputDefinition = pInputDefinition_+    }++-- | A brief description of the input.+createInput_inputDescription :: Lens.Lens' CreateInput (Prelude.Maybe Prelude.Text)+createInput_inputDescription = Lens.lens (\CreateInput' {inputDescription} -> inputDescription) (\s@CreateInput' {} a -> s {inputDescription = a} :: CreateInput)++-- | Metadata that can be used to manage the input.+createInput_tags :: Lens.Lens' CreateInput (Prelude.Maybe [Tag])+createInput_tags = Lens.lens (\CreateInput' {tags} -> tags) (\s@CreateInput' {} a -> s {tags = a} :: CreateInput) Prelude.. Lens.mapping Lens.coerced++-- | The name you want to give to the input.+createInput_inputName :: Lens.Lens' CreateInput Prelude.Text+createInput_inputName = Lens.lens (\CreateInput' {inputName} -> inputName) (\s@CreateInput' {} a -> s {inputName = a} :: CreateInput)++-- | The definition of the input.+createInput_inputDefinition :: Lens.Lens' CreateInput InputDefinition+createInput_inputDefinition = Lens.lens (\CreateInput' {inputDefinition} -> inputDefinition) (\s@CreateInput' {} a -> s {inputDefinition = a} :: CreateInput)++instance Core.AWSRequest CreateInput where+  type AWSResponse CreateInput = CreateInputResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateInputResponse'+            Prelude.<$> (x Data..?> "inputConfiguration")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateInput where+  hashWithSalt _salt CreateInput' {..} =+    _salt+      `Prelude.hashWithSalt` inputDescription+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` inputName+      `Prelude.hashWithSalt` inputDefinition++instance Prelude.NFData CreateInput where+  rnf CreateInput' {..} =+    Prelude.rnf inputDescription+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf inputName+      `Prelude.seq` Prelude.rnf inputDefinition++instance Data.ToHeaders CreateInput where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON CreateInput where+  toJSON CreateInput' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("inputDescription" Data..=)+              Prelude.<$> inputDescription,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("inputName" Data..= inputName),+            Prelude.Just+              ("inputDefinition" Data..= inputDefinition)+          ]+      )++instance Data.ToPath CreateInput where+  toPath = Prelude.const "/inputs"++instance Data.ToQuery CreateInput where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateInputResponse' smart constructor.+data CreateInputResponse = CreateInputResponse'+  { -- | Information about the configuration of the input.+    inputConfiguration :: Prelude.Maybe InputConfiguration,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateInputResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'inputConfiguration', 'createInputResponse_inputConfiguration' - Information about the configuration of the input.+--+-- 'httpStatus', 'createInputResponse_httpStatus' - The response's http status code.+newCreateInputResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateInputResponse+newCreateInputResponse pHttpStatus_ =+  CreateInputResponse'+    { inputConfiguration =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about the configuration of the input.+createInputResponse_inputConfiguration :: Lens.Lens' CreateInputResponse (Prelude.Maybe InputConfiguration)+createInputResponse_inputConfiguration = Lens.lens (\CreateInputResponse' {inputConfiguration} -> inputConfiguration) (\s@CreateInputResponse' {} a -> s {inputConfiguration = a} :: CreateInputResponse)++-- | The response's http status code.+createInputResponse_httpStatus :: Lens.Lens' CreateInputResponse Prelude.Int+createInputResponse_httpStatus = Lens.lens (\CreateInputResponse' {httpStatus} -> httpStatus) (\s@CreateInputResponse' {} a -> s {httpStatus = a} :: CreateInputResponse)++instance Prelude.NFData CreateInputResponse where+  rnf CreateInputResponse' {..} =+    Prelude.rnf inputConfiguration+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTEvents/DeleteAlarmModel.hs view
@@ -0,0 +1,144 @@+{-# 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.IoTEvents.DeleteAlarmModel+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an alarm model. Any alarm instances that were created based on+-- this alarm model are also deleted. This action can\'t be undone.+module Amazonka.IoTEvents.DeleteAlarmModel+  ( -- * Creating a Request+    DeleteAlarmModel (..),+    newDeleteAlarmModel,++    -- * Request Lenses+    deleteAlarmModel_alarmModelName,++    -- * Destructuring the Response+    DeleteAlarmModelResponse (..),+    newDeleteAlarmModelResponse,++    -- * Response Lenses+    deleteAlarmModelResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteAlarmModel' smart constructor.+data DeleteAlarmModel = DeleteAlarmModel'+  { -- | The name of the alarm model.+    alarmModelName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAlarmModel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'alarmModelName', 'deleteAlarmModel_alarmModelName' - The name of the alarm model.+newDeleteAlarmModel ::+  -- | 'alarmModelName'+  Prelude.Text ->+  DeleteAlarmModel+newDeleteAlarmModel pAlarmModelName_ =+  DeleteAlarmModel'+    { alarmModelName =+        pAlarmModelName_+    }++-- | The name of the alarm model.+deleteAlarmModel_alarmModelName :: Lens.Lens' DeleteAlarmModel Prelude.Text+deleteAlarmModel_alarmModelName = Lens.lens (\DeleteAlarmModel' {alarmModelName} -> alarmModelName) (\s@DeleteAlarmModel' {} a -> s {alarmModelName = a} :: DeleteAlarmModel)++instance Core.AWSRequest DeleteAlarmModel where+  type+    AWSResponse DeleteAlarmModel =+      DeleteAlarmModelResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteAlarmModelResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteAlarmModel where+  hashWithSalt _salt DeleteAlarmModel' {..} =+    _salt `Prelude.hashWithSalt` alarmModelName++instance Prelude.NFData DeleteAlarmModel where+  rnf DeleteAlarmModel' {..} =+    Prelude.rnf alarmModelName++instance Data.ToHeaders DeleteAlarmModel where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DeleteAlarmModel where+  toPath DeleteAlarmModel' {..} =+    Prelude.mconcat+      ["/alarm-models/", Data.toBS alarmModelName]++instance Data.ToQuery DeleteAlarmModel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteAlarmModelResponse' smart constructor.+data DeleteAlarmModelResponse = DeleteAlarmModelResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAlarmModelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteAlarmModelResponse_httpStatus' - The response's http status code.+newDeleteAlarmModelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteAlarmModelResponse+newDeleteAlarmModelResponse pHttpStatus_ =+  DeleteAlarmModelResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteAlarmModelResponse_httpStatus :: Lens.Lens' DeleteAlarmModelResponse Prelude.Int+deleteAlarmModelResponse_httpStatus = Lens.lens (\DeleteAlarmModelResponse' {httpStatus} -> httpStatus) (\s@DeleteAlarmModelResponse' {} a -> s {httpStatus = a} :: DeleteAlarmModelResponse)++instance Prelude.NFData DeleteAlarmModelResponse where+  rnf DeleteAlarmModelResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/IoTEvents/DeleteDetectorModel.hs view
@@ -0,0 +1,144 @@+{-# 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.IoTEvents.DeleteDetectorModel+-- 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 detector model. Any active instances of the detector model are+-- also deleted.+module Amazonka.IoTEvents.DeleteDetectorModel+  ( -- * Creating a Request+    DeleteDetectorModel (..),+    newDeleteDetectorModel,++    -- * Request Lenses+    deleteDetectorModel_detectorModelName,++    -- * Destructuring the Response+    DeleteDetectorModelResponse (..),+    newDeleteDetectorModelResponse,++    -- * Response Lenses+    deleteDetectorModelResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteDetectorModel' smart constructor.+data DeleteDetectorModel = DeleteDetectorModel'+  { -- | The name of the detector model to be deleted.+    detectorModelName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDetectorModel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectorModelName', 'deleteDetectorModel_detectorModelName' - The name of the detector model to be deleted.+newDeleteDetectorModel ::+  -- | 'detectorModelName'+  Prelude.Text ->+  DeleteDetectorModel+newDeleteDetectorModel pDetectorModelName_ =+  DeleteDetectorModel'+    { detectorModelName =+        pDetectorModelName_+    }++-- | The name of the detector model to be deleted.+deleteDetectorModel_detectorModelName :: Lens.Lens' DeleteDetectorModel Prelude.Text+deleteDetectorModel_detectorModelName = Lens.lens (\DeleteDetectorModel' {detectorModelName} -> detectorModelName) (\s@DeleteDetectorModel' {} a -> s {detectorModelName = a} :: DeleteDetectorModel)++instance Core.AWSRequest DeleteDetectorModel where+  type+    AWSResponse DeleteDetectorModel =+      DeleteDetectorModelResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteDetectorModelResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteDetectorModel where+  hashWithSalt _salt DeleteDetectorModel' {..} =+    _salt `Prelude.hashWithSalt` detectorModelName++instance Prelude.NFData DeleteDetectorModel where+  rnf DeleteDetectorModel' {..} =+    Prelude.rnf detectorModelName++instance Data.ToHeaders DeleteDetectorModel where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DeleteDetectorModel where+  toPath DeleteDetectorModel' {..} =+    Prelude.mconcat+      ["/detector-models/", Data.toBS detectorModelName]++instance Data.ToQuery DeleteDetectorModel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteDetectorModelResponse' smart constructor.+data DeleteDetectorModelResponse = DeleteDetectorModelResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDetectorModelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteDetectorModelResponse_httpStatus' - The response's http status code.+newDeleteDetectorModelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteDetectorModelResponse+newDeleteDetectorModelResponse pHttpStatus_ =+  DeleteDetectorModelResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteDetectorModelResponse_httpStatus :: Lens.Lens' DeleteDetectorModelResponse Prelude.Int+deleteDetectorModelResponse_httpStatus = Lens.lens (\DeleteDetectorModelResponse' {httpStatus} -> httpStatus) (\s@DeleteDetectorModelResponse' {} a -> s {httpStatus = a} :: DeleteDetectorModelResponse)++instance Prelude.NFData DeleteDetectorModelResponse where+  rnf DeleteDetectorModelResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/IoTEvents/DeleteInput.hs view
@@ -0,0 +1,132 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.DeleteInput+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an input.+module Amazonka.IoTEvents.DeleteInput+  ( -- * Creating a Request+    DeleteInput (..),+    newDeleteInput,++    -- * Request Lenses+    deleteInput_inputName,++    -- * Destructuring the Response+    DeleteInputResponse (..),+    newDeleteInputResponse,++    -- * Response Lenses+    deleteInputResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteInput' smart constructor.+data DeleteInput = DeleteInput'+  { -- | The name of the input to delete.+    inputName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteInput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'inputName', 'deleteInput_inputName' - The name of the input to delete.+newDeleteInput ::+  -- | 'inputName'+  Prelude.Text ->+  DeleteInput+newDeleteInput pInputName_ =+  DeleteInput' {inputName = pInputName_}++-- | The name of the input to delete.+deleteInput_inputName :: Lens.Lens' DeleteInput Prelude.Text+deleteInput_inputName = Lens.lens (\DeleteInput' {inputName} -> inputName) (\s@DeleteInput' {} a -> s {inputName = a} :: DeleteInput)++instance Core.AWSRequest DeleteInput where+  type AWSResponse DeleteInput = DeleteInputResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteInputResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteInput where+  hashWithSalt _salt DeleteInput' {..} =+    _salt `Prelude.hashWithSalt` inputName++instance Prelude.NFData DeleteInput where+  rnf DeleteInput' {..} = Prelude.rnf inputName++instance Data.ToHeaders DeleteInput where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DeleteInput where+  toPath DeleteInput' {..} =+    Prelude.mconcat ["/inputs/", Data.toBS inputName]++instance Data.ToQuery DeleteInput where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteInputResponse' smart constructor.+data DeleteInputResponse = DeleteInputResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteInputResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteInputResponse_httpStatus' - The response's http status code.+newDeleteInputResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteInputResponse+newDeleteInputResponse pHttpStatus_ =+  DeleteInputResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteInputResponse_httpStatus :: Lens.Lens' DeleteInputResponse Prelude.Int+deleteInputResponse_httpStatus = Lens.lens (\DeleteInputResponse' {httpStatus} -> httpStatus) (\s@DeleteInputResponse' {} a -> s {httpStatus = a} :: DeleteInputResponse)++instance Prelude.NFData DeleteInputResponse where+  rnf DeleteInputResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/IoTEvents/DescribeAlarmModel.hs view
@@ -0,0 +1,406 @@+{-# 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.IoTEvents.DescribeAlarmModel+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about an alarm model. If you don\'t specify a+-- value for the @alarmModelVersion@ parameter, the latest version is+-- returned.+module Amazonka.IoTEvents.DescribeAlarmModel+  ( -- * Creating a Request+    DescribeAlarmModel (..),+    newDescribeAlarmModel,++    -- * Request Lenses+    describeAlarmModel_alarmModelVersion,+    describeAlarmModel_alarmModelName,++    -- * Destructuring the Response+    DescribeAlarmModelResponse (..),+    newDescribeAlarmModelResponse,++    -- * Response Lenses+    describeAlarmModelResponse_alarmCapabilities,+    describeAlarmModelResponse_alarmEventActions,+    describeAlarmModelResponse_alarmModelArn,+    describeAlarmModelResponse_alarmModelDescription,+    describeAlarmModelResponse_alarmModelName,+    describeAlarmModelResponse_alarmModelVersion,+    describeAlarmModelResponse_alarmNotification,+    describeAlarmModelResponse_alarmRule,+    describeAlarmModelResponse_creationTime,+    describeAlarmModelResponse_key,+    describeAlarmModelResponse_lastUpdateTime,+    describeAlarmModelResponse_roleArn,+    describeAlarmModelResponse_severity,+    describeAlarmModelResponse_status,+    describeAlarmModelResponse_statusMessage,+    describeAlarmModelResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeAlarmModel' smart constructor.+data DescribeAlarmModel = DescribeAlarmModel'+  { -- | The version of the alarm model.+    alarmModelVersion :: Prelude.Maybe Prelude.Text,+    -- | The name of the alarm model.+    alarmModelName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAlarmModel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'alarmModelVersion', 'describeAlarmModel_alarmModelVersion' - The version of the alarm model.+--+-- 'alarmModelName', 'describeAlarmModel_alarmModelName' - The name of the alarm model.+newDescribeAlarmModel ::+  -- | 'alarmModelName'+  Prelude.Text ->+  DescribeAlarmModel+newDescribeAlarmModel pAlarmModelName_ =+  DescribeAlarmModel'+    { alarmModelVersion =+        Prelude.Nothing,+      alarmModelName = pAlarmModelName_+    }++-- | The version of the alarm model.+describeAlarmModel_alarmModelVersion :: Lens.Lens' DescribeAlarmModel (Prelude.Maybe Prelude.Text)+describeAlarmModel_alarmModelVersion = Lens.lens (\DescribeAlarmModel' {alarmModelVersion} -> alarmModelVersion) (\s@DescribeAlarmModel' {} a -> s {alarmModelVersion = a} :: DescribeAlarmModel)++-- | The name of the alarm model.+describeAlarmModel_alarmModelName :: Lens.Lens' DescribeAlarmModel Prelude.Text+describeAlarmModel_alarmModelName = Lens.lens (\DescribeAlarmModel' {alarmModelName} -> alarmModelName) (\s@DescribeAlarmModel' {} a -> s {alarmModelName = a} :: DescribeAlarmModel)++instance Core.AWSRequest DescribeAlarmModel where+  type+    AWSResponse DescribeAlarmModel =+      DescribeAlarmModelResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeAlarmModelResponse'+            Prelude.<$> (x Data..?> "alarmCapabilities")+            Prelude.<*> (x Data..?> "alarmEventActions")+            Prelude.<*> (x Data..?> "alarmModelArn")+            Prelude.<*> (x Data..?> "alarmModelDescription")+            Prelude.<*> (x Data..?> "alarmModelName")+            Prelude.<*> (x Data..?> "alarmModelVersion")+            Prelude.<*> (x Data..?> "alarmNotification")+            Prelude.<*> (x Data..?> "alarmRule")+            Prelude.<*> (x Data..?> "creationTime")+            Prelude.<*> (x Data..?> "key")+            Prelude.<*> (x Data..?> "lastUpdateTime")+            Prelude.<*> (x Data..?> "roleArn")+            Prelude.<*> (x Data..?> "severity")+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (x Data..?> "statusMessage")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeAlarmModel where+  hashWithSalt _salt DescribeAlarmModel' {..} =+    _salt+      `Prelude.hashWithSalt` alarmModelVersion+      `Prelude.hashWithSalt` alarmModelName++instance Prelude.NFData DescribeAlarmModel where+  rnf DescribeAlarmModel' {..} =+    Prelude.rnf alarmModelVersion+      `Prelude.seq` Prelude.rnf alarmModelName++instance Data.ToHeaders DescribeAlarmModel where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DescribeAlarmModel where+  toPath DescribeAlarmModel' {..} =+    Prelude.mconcat+      ["/alarm-models/", Data.toBS alarmModelName]++instance Data.ToQuery DescribeAlarmModel where+  toQuery DescribeAlarmModel' {..} =+    Prelude.mconcat+      ["version" Data.=: alarmModelVersion]++-- | /See:/ 'newDescribeAlarmModelResponse' smart constructor.+data DescribeAlarmModelResponse = DescribeAlarmModelResponse'+  { -- | Contains the configuration information of alarm state changes.+    alarmCapabilities :: Prelude.Maybe AlarmCapabilities,+    -- | Contains information about one or more alarm actions.+    alarmEventActions :: Prelude.Maybe AlarmEventActions,+    -- | The ARN of the alarm model. For more information, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    alarmModelArn :: Prelude.Maybe Prelude.Text,+    -- | The description of the alarm model.+    alarmModelDescription :: Prelude.Maybe Prelude.Text,+    -- | The name of the alarm model.+    alarmModelName :: Prelude.Maybe Prelude.Text,+    -- | The version of the alarm model.+    alarmModelVersion :: Prelude.Maybe Prelude.Text,+    -- | Contains information about one or more notification actions.+    alarmNotification :: Prelude.Maybe AlarmNotification,+    -- | Defines when your alarm is invoked.+    alarmRule :: Prelude.Maybe AlarmRule,+    -- | The time the alarm model was created, in the Unix epoch format.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | An input attribute used as a key to create an alarm. AWS IoT Events+    -- routes+    -- <https://docs.aws.amazon.com/iotevents/latest/apireference/API_Input.html inputs>+    -- associated with this key to the alarm.+    key :: Prelude.Maybe Prelude.Text,+    -- | The time the alarm model was last updated, in the Unix epoch format.+    lastUpdateTime :: Prelude.Maybe Data.POSIX,+    -- | The ARN of the IAM role that allows the alarm to perform actions and+    -- access AWS resources. For more information, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | A non-negative integer that reflects the severity level of the alarm.+    severity :: Prelude.Maybe Prelude.Natural,+    -- | The status of the alarm model. The status can be one of the following+    -- values:+    --+    -- -   @ACTIVE@ - The alarm model is active and it\'s ready to evaluate+    --     data.+    --+    -- -   @ACTIVATING@ - AWS IoT Events is activating your alarm model.+    --     Activating an alarm model can take up to a few minutes.+    --+    -- -   @INACTIVE@ - The alarm model is inactive, so it isn\'t ready to+    --     evaluate data. Check your alarm model information and update the+    --     alarm model.+    --+    -- -   @FAILED@ - You couldn\'t create or update the alarm model. Check+    --     your alarm model information and try again.+    status :: Prelude.Maybe AlarmModelVersionStatus,+    -- | Contains information about the status of the alarm model.+    statusMessage :: 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 'DescribeAlarmModelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'alarmCapabilities', 'describeAlarmModelResponse_alarmCapabilities' - Contains the configuration information of alarm state changes.+--+-- 'alarmEventActions', 'describeAlarmModelResponse_alarmEventActions' - Contains information about one or more alarm actions.+--+-- 'alarmModelArn', 'describeAlarmModelResponse_alarmModelArn' - The ARN of the alarm model. For more information, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'alarmModelDescription', 'describeAlarmModelResponse_alarmModelDescription' - The description of the alarm model.+--+-- 'alarmModelName', 'describeAlarmModelResponse_alarmModelName' - The name of the alarm model.+--+-- 'alarmModelVersion', 'describeAlarmModelResponse_alarmModelVersion' - The version of the alarm model.+--+-- 'alarmNotification', 'describeAlarmModelResponse_alarmNotification' - Contains information about one or more notification actions.+--+-- 'alarmRule', 'describeAlarmModelResponse_alarmRule' - Defines when your alarm is invoked.+--+-- 'creationTime', 'describeAlarmModelResponse_creationTime' - The time the alarm model was created, in the Unix epoch format.+--+-- 'key', 'describeAlarmModelResponse_key' - An input attribute used as a key to create an alarm. AWS IoT Events+-- routes+-- <https://docs.aws.amazon.com/iotevents/latest/apireference/API_Input.html inputs>+-- associated with this key to the alarm.+--+-- 'lastUpdateTime', 'describeAlarmModelResponse_lastUpdateTime' - The time the alarm model was last updated, in the Unix epoch format.+--+-- 'roleArn', 'describeAlarmModelResponse_roleArn' - The ARN of the IAM role that allows the alarm to perform actions and+-- access AWS resources. For more information, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'severity', 'describeAlarmModelResponse_severity' - A non-negative integer that reflects the severity level of the alarm.+--+-- 'status', 'describeAlarmModelResponse_status' - The status of the alarm model. The status can be one of the following+-- values:+--+-- -   @ACTIVE@ - The alarm model is active and it\'s ready to evaluate+--     data.+--+-- -   @ACTIVATING@ - AWS IoT Events is activating your alarm model.+--     Activating an alarm model can take up to a few minutes.+--+-- -   @INACTIVE@ - The alarm model is inactive, so it isn\'t ready to+--     evaluate data. Check your alarm model information and update the+--     alarm model.+--+-- -   @FAILED@ - You couldn\'t create or update the alarm model. Check+--     your alarm model information and try again.+--+-- 'statusMessage', 'describeAlarmModelResponse_statusMessage' - Contains information about the status of the alarm model.+--+-- 'httpStatus', 'describeAlarmModelResponse_httpStatus' - The response's http status code.+newDescribeAlarmModelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeAlarmModelResponse+newDescribeAlarmModelResponse pHttpStatus_ =+  DescribeAlarmModelResponse'+    { alarmCapabilities =+        Prelude.Nothing,+      alarmEventActions = Prelude.Nothing,+      alarmModelArn = Prelude.Nothing,+      alarmModelDescription = Prelude.Nothing,+      alarmModelName = Prelude.Nothing,+      alarmModelVersion = Prelude.Nothing,+      alarmNotification = Prelude.Nothing,+      alarmRule = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      key = Prelude.Nothing,+      lastUpdateTime = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      severity = Prelude.Nothing,+      status = Prelude.Nothing,+      statusMessage = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Contains the configuration information of alarm state changes.+describeAlarmModelResponse_alarmCapabilities :: Lens.Lens' DescribeAlarmModelResponse (Prelude.Maybe AlarmCapabilities)+describeAlarmModelResponse_alarmCapabilities = Lens.lens (\DescribeAlarmModelResponse' {alarmCapabilities} -> alarmCapabilities) (\s@DescribeAlarmModelResponse' {} a -> s {alarmCapabilities = a} :: DescribeAlarmModelResponse)++-- | Contains information about one or more alarm actions.+describeAlarmModelResponse_alarmEventActions :: Lens.Lens' DescribeAlarmModelResponse (Prelude.Maybe AlarmEventActions)+describeAlarmModelResponse_alarmEventActions = Lens.lens (\DescribeAlarmModelResponse' {alarmEventActions} -> alarmEventActions) (\s@DescribeAlarmModelResponse' {} a -> s {alarmEventActions = a} :: DescribeAlarmModelResponse)++-- | The ARN of the alarm model. For more information, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+describeAlarmModelResponse_alarmModelArn :: Lens.Lens' DescribeAlarmModelResponse (Prelude.Maybe Prelude.Text)+describeAlarmModelResponse_alarmModelArn = Lens.lens (\DescribeAlarmModelResponse' {alarmModelArn} -> alarmModelArn) (\s@DescribeAlarmModelResponse' {} a -> s {alarmModelArn = a} :: DescribeAlarmModelResponse)++-- | The description of the alarm model.+describeAlarmModelResponse_alarmModelDescription :: Lens.Lens' DescribeAlarmModelResponse (Prelude.Maybe Prelude.Text)+describeAlarmModelResponse_alarmModelDescription = Lens.lens (\DescribeAlarmModelResponse' {alarmModelDescription} -> alarmModelDescription) (\s@DescribeAlarmModelResponse' {} a -> s {alarmModelDescription = a} :: DescribeAlarmModelResponse)++-- | The name of the alarm model.+describeAlarmModelResponse_alarmModelName :: Lens.Lens' DescribeAlarmModelResponse (Prelude.Maybe Prelude.Text)+describeAlarmModelResponse_alarmModelName = Lens.lens (\DescribeAlarmModelResponse' {alarmModelName} -> alarmModelName) (\s@DescribeAlarmModelResponse' {} a -> s {alarmModelName = a} :: DescribeAlarmModelResponse)++-- | The version of the alarm model.+describeAlarmModelResponse_alarmModelVersion :: Lens.Lens' DescribeAlarmModelResponse (Prelude.Maybe Prelude.Text)+describeAlarmModelResponse_alarmModelVersion = Lens.lens (\DescribeAlarmModelResponse' {alarmModelVersion} -> alarmModelVersion) (\s@DescribeAlarmModelResponse' {} a -> s {alarmModelVersion = a} :: DescribeAlarmModelResponse)++-- | Contains information about one or more notification actions.+describeAlarmModelResponse_alarmNotification :: Lens.Lens' DescribeAlarmModelResponse (Prelude.Maybe AlarmNotification)+describeAlarmModelResponse_alarmNotification = Lens.lens (\DescribeAlarmModelResponse' {alarmNotification} -> alarmNotification) (\s@DescribeAlarmModelResponse' {} a -> s {alarmNotification = a} :: DescribeAlarmModelResponse)++-- | Defines when your alarm is invoked.+describeAlarmModelResponse_alarmRule :: Lens.Lens' DescribeAlarmModelResponse (Prelude.Maybe AlarmRule)+describeAlarmModelResponse_alarmRule = Lens.lens (\DescribeAlarmModelResponse' {alarmRule} -> alarmRule) (\s@DescribeAlarmModelResponse' {} a -> s {alarmRule = a} :: DescribeAlarmModelResponse)++-- | The time the alarm model was created, in the Unix epoch format.+describeAlarmModelResponse_creationTime :: Lens.Lens' DescribeAlarmModelResponse (Prelude.Maybe Prelude.UTCTime)+describeAlarmModelResponse_creationTime = Lens.lens (\DescribeAlarmModelResponse' {creationTime} -> creationTime) (\s@DescribeAlarmModelResponse' {} a -> s {creationTime = a} :: DescribeAlarmModelResponse) Prelude.. Lens.mapping Data._Time++-- | An input attribute used as a key to create an alarm. AWS IoT Events+-- routes+-- <https://docs.aws.amazon.com/iotevents/latest/apireference/API_Input.html inputs>+-- associated with this key to the alarm.+describeAlarmModelResponse_key :: Lens.Lens' DescribeAlarmModelResponse (Prelude.Maybe Prelude.Text)+describeAlarmModelResponse_key = Lens.lens (\DescribeAlarmModelResponse' {key} -> key) (\s@DescribeAlarmModelResponse' {} a -> s {key = a} :: DescribeAlarmModelResponse)++-- | The time the alarm model was last updated, in the Unix epoch format.+describeAlarmModelResponse_lastUpdateTime :: Lens.Lens' DescribeAlarmModelResponse (Prelude.Maybe Prelude.UTCTime)+describeAlarmModelResponse_lastUpdateTime = Lens.lens (\DescribeAlarmModelResponse' {lastUpdateTime} -> lastUpdateTime) (\s@DescribeAlarmModelResponse' {} a -> s {lastUpdateTime = a} :: DescribeAlarmModelResponse) Prelude.. Lens.mapping Data._Time++-- | The ARN of the IAM role that allows the alarm to perform actions and+-- access AWS resources. For more information, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+describeAlarmModelResponse_roleArn :: Lens.Lens' DescribeAlarmModelResponse (Prelude.Maybe Prelude.Text)+describeAlarmModelResponse_roleArn = Lens.lens (\DescribeAlarmModelResponse' {roleArn} -> roleArn) (\s@DescribeAlarmModelResponse' {} a -> s {roleArn = a} :: DescribeAlarmModelResponse)++-- | A non-negative integer that reflects the severity level of the alarm.+describeAlarmModelResponse_severity :: Lens.Lens' DescribeAlarmModelResponse (Prelude.Maybe Prelude.Natural)+describeAlarmModelResponse_severity = Lens.lens (\DescribeAlarmModelResponse' {severity} -> severity) (\s@DescribeAlarmModelResponse' {} a -> s {severity = a} :: DescribeAlarmModelResponse)++-- | The status of the alarm model. The status can be one of the following+-- values:+--+-- -   @ACTIVE@ - The alarm model is active and it\'s ready to evaluate+--     data.+--+-- -   @ACTIVATING@ - AWS IoT Events is activating your alarm model.+--     Activating an alarm model can take up to a few minutes.+--+-- -   @INACTIVE@ - The alarm model is inactive, so it isn\'t ready to+--     evaluate data. Check your alarm model information and update the+--     alarm model.+--+-- -   @FAILED@ - You couldn\'t create or update the alarm model. Check+--     your alarm model information and try again.+describeAlarmModelResponse_status :: Lens.Lens' DescribeAlarmModelResponse (Prelude.Maybe AlarmModelVersionStatus)+describeAlarmModelResponse_status = Lens.lens (\DescribeAlarmModelResponse' {status} -> status) (\s@DescribeAlarmModelResponse' {} a -> s {status = a} :: DescribeAlarmModelResponse)++-- | Contains information about the status of the alarm model.+describeAlarmModelResponse_statusMessage :: Lens.Lens' DescribeAlarmModelResponse (Prelude.Maybe Prelude.Text)+describeAlarmModelResponse_statusMessage = Lens.lens (\DescribeAlarmModelResponse' {statusMessage} -> statusMessage) (\s@DescribeAlarmModelResponse' {} a -> s {statusMessage = a} :: DescribeAlarmModelResponse)++-- | The response's http status code.+describeAlarmModelResponse_httpStatus :: Lens.Lens' DescribeAlarmModelResponse Prelude.Int+describeAlarmModelResponse_httpStatus = Lens.lens (\DescribeAlarmModelResponse' {httpStatus} -> httpStatus) (\s@DescribeAlarmModelResponse' {} a -> s {httpStatus = a} :: DescribeAlarmModelResponse)++instance Prelude.NFData DescribeAlarmModelResponse where+  rnf DescribeAlarmModelResponse' {..} =+    Prelude.rnf alarmCapabilities+      `Prelude.seq` Prelude.rnf alarmEventActions+      `Prelude.seq` Prelude.rnf alarmModelArn+      `Prelude.seq` Prelude.rnf alarmModelDescription+      `Prelude.seq` Prelude.rnf alarmModelName+      `Prelude.seq` Prelude.rnf alarmModelVersion+      `Prelude.seq` Prelude.rnf alarmNotification+      `Prelude.seq` Prelude.rnf alarmRule+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf key+      `Prelude.seq` Prelude.rnf lastUpdateTime+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf severity+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf statusMessage+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTEvents/DescribeDetectorModel.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.IoTEvents.DescribeDetectorModel+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes a detector model. If the @version@ parameter is not specified,+-- information about the latest version is returned.+module Amazonka.IoTEvents.DescribeDetectorModel+  ( -- * Creating a Request+    DescribeDetectorModel (..),+    newDescribeDetectorModel,++    -- * Request Lenses+    describeDetectorModel_detectorModelVersion,+    describeDetectorModel_detectorModelName,++    -- * Destructuring the Response+    DescribeDetectorModelResponse (..),+    newDescribeDetectorModelResponse,++    -- * Response Lenses+    describeDetectorModelResponse_detectorModel,+    describeDetectorModelResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeDetectorModel' smart constructor.+data DescribeDetectorModel = DescribeDetectorModel'+  { -- | The version of the detector model.+    detectorModelVersion :: Prelude.Maybe Prelude.Text,+    -- | The name of the detector model.+    detectorModelName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDetectorModel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectorModelVersion', 'describeDetectorModel_detectorModelVersion' - The version of the detector model.+--+-- 'detectorModelName', 'describeDetectorModel_detectorModelName' - The name of the detector model.+newDescribeDetectorModel ::+  -- | 'detectorModelName'+  Prelude.Text ->+  DescribeDetectorModel+newDescribeDetectorModel pDetectorModelName_ =+  DescribeDetectorModel'+    { detectorModelVersion =+        Prelude.Nothing,+      detectorModelName = pDetectorModelName_+    }++-- | The version of the detector model.+describeDetectorModel_detectorModelVersion :: Lens.Lens' DescribeDetectorModel (Prelude.Maybe Prelude.Text)+describeDetectorModel_detectorModelVersion = Lens.lens (\DescribeDetectorModel' {detectorModelVersion} -> detectorModelVersion) (\s@DescribeDetectorModel' {} a -> s {detectorModelVersion = a} :: DescribeDetectorModel)++-- | The name of the detector model.+describeDetectorModel_detectorModelName :: Lens.Lens' DescribeDetectorModel Prelude.Text+describeDetectorModel_detectorModelName = Lens.lens (\DescribeDetectorModel' {detectorModelName} -> detectorModelName) (\s@DescribeDetectorModel' {} a -> s {detectorModelName = a} :: DescribeDetectorModel)++instance Core.AWSRequest DescribeDetectorModel where+  type+    AWSResponse DescribeDetectorModel =+      DescribeDetectorModelResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeDetectorModelResponse'+            Prelude.<$> (x Data..?> "detectorModel")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeDetectorModel where+  hashWithSalt _salt DescribeDetectorModel' {..} =+    _salt+      `Prelude.hashWithSalt` detectorModelVersion+      `Prelude.hashWithSalt` detectorModelName++instance Prelude.NFData DescribeDetectorModel where+  rnf DescribeDetectorModel' {..} =+    Prelude.rnf detectorModelVersion+      `Prelude.seq` Prelude.rnf detectorModelName++instance Data.ToHeaders DescribeDetectorModel where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DescribeDetectorModel where+  toPath DescribeDetectorModel' {..} =+    Prelude.mconcat+      ["/detector-models/", Data.toBS detectorModelName]++instance Data.ToQuery DescribeDetectorModel where+  toQuery DescribeDetectorModel' {..} =+    Prelude.mconcat+      ["version" Data.=: detectorModelVersion]++-- | /See:/ 'newDescribeDetectorModelResponse' smart constructor.+data DescribeDetectorModelResponse = DescribeDetectorModelResponse'+  { -- | Information about the detector model.+    detectorModel :: Prelude.Maybe DetectorModel,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDetectorModelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectorModel', 'describeDetectorModelResponse_detectorModel' - Information about the detector model.+--+-- 'httpStatus', 'describeDetectorModelResponse_httpStatus' - The response's http status code.+newDescribeDetectorModelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeDetectorModelResponse+newDescribeDetectorModelResponse pHttpStatus_ =+  DescribeDetectorModelResponse'+    { detectorModel =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about the detector model.+describeDetectorModelResponse_detectorModel :: Lens.Lens' DescribeDetectorModelResponse (Prelude.Maybe DetectorModel)+describeDetectorModelResponse_detectorModel = Lens.lens (\DescribeDetectorModelResponse' {detectorModel} -> detectorModel) (\s@DescribeDetectorModelResponse' {} a -> s {detectorModel = a} :: DescribeDetectorModelResponse)++-- | The response's http status code.+describeDetectorModelResponse_httpStatus :: Lens.Lens' DescribeDetectorModelResponse Prelude.Int+describeDetectorModelResponse_httpStatus = Lens.lens (\DescribeDetectorModelResponse' {httpStatus} -> httpStatus) (\s@DescribeDetectorModelResponse' {} a -> s {httpStatus = a} :: DescribeDetectorModelResponse)++instance Prelude.NFData DescribeDetectorModelResponse where+  rnf DescribeDetectorModelResponse' {..} =+    Prelude.rnf detectorModel+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTEvents/DescribeDetectorModelAnalysis.hs view
@@ -0,0 +1,194 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.DescribeDetectorModelAnalysis+-- 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 runtime information about a detector model analysis.+--+-- After AWS IoT Events starts analyzing your detector model, you have up+-- to 24 hours to retrieve the analysis results.+module Amazonka.IoTEvents.DescribeDetectorModelAnalysis+  ( -- * Creating a Request+    DescribeDetectorModelAnalysis (..),+    newDescribeDetectorModelAnalysis,++    -- * Request Lenses+    describeDetectorModelAnalysis_analysisId,++    -- * Destructuring the Response+    DescribeDetectorModelAnalysisResponse (..),+    newDescribeDetectorModelAnalysisResponse,++    -- * Response Lenses+    describeDetectorModelAnalysisResponse_status,+    describeDetectorModelAnalysisResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeDetectorModelAnalysis' smart constructor.+data DescribeDetectorModelAnalysis = DescribeDetectorModelAnalysis'+  { -- | The ID of the analysis result that you want to retrieve.+    analysisId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDetectorModelAnalysis' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'analysisId', 'describeDetectorModelAnalysis_analysisId' - The ID of the analysis result that you want to retrieve.+newDescribeDetectorModelAnalysis ::+  -- | 'analysisId'+  Prelude.Text ->+  DescribeDetectorModelAnalysis+newDescribeDetectorModelAnalysis pAnalysisId_ =+  DescribeDetectorModelAnalysis'+    { analysisId =+        pAnalysisId_+    }++-- | The ID of the analysis result that you want to retrieve.+describeDetectorModelAnalysis_analysisId :: Lens.Lens' DescribeDetectorModelAnalysis Prelude.Text+describeDetectorModelAnalysis_analysisId = Lens.lens (\DescribeDetectorModelAnalysis' {analysisId} -> analysisId) (\s@DescribeDetectorModelAnalysis' {} a -> s {analysisId = a} :: DescribeDetectorModelAnalysis)++instance+  Core.AWSRequest+    DescribeDetectorModelAnalysis+  where+  type+    AWSResponse DescribeDetectorModelAnalysis =+      DescribeDetectorModelAnalysisResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeDetectorModelAnalysisResponse'+            Prelude.<$> (x Data..?> "status")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DescribeDetectorModelAnalysis+  where+  hashWithSalt _salt DescribeDetectorModelAnalysis' {..} =+    _salt `Prelude.hashWithSalt` analysisId++instance Prelude.NFData DescribeDetectorModelAnalysis where+  rnf DescribeDetectorModelAnalysis' {..} =+    Prelude.rnf analysisId++instance Data.ToHeaders DescribeDetectorModelAnalysis where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DescribeDetectorModelAnalysis where+  toPath DescribeDetectorModelAnalysis' {..} =+    Prelude.mconcat+      ["/analysis/detector-models/", Data.toBS analysisId]++instance Data.ToQuery DescribeDetectorModelAnalysis where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeDetectorModelAnalysisResponse' smart constructor.+data DescribeDetectorModelAnalysisResponse = DescribeDetectorModelAnalysisResponse'+  { -- | The status of the analysis activity. The status can be one of the+    -- following values:+    --+    -- -   @RUNNING@ - AWS IoT Events is analyzing your detector model. This+    --     process can take several minutes to complete.+    --+    -- -   @COMPLETE@ - AWS IoT Events finished analyzing your detector model.+    --+    -- -   @FAILED@ - AWS IoT Events couldn\'t analyze your detector model. Try+    --     again later.+    status :: Prelude.Maybe AnalysisStatus,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDetectorModelAnalysisResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'status', 'describeDetectorModelAnalysisResponse_status' - The status of the analysis activity. The status can be one of the+-- following values:+--+-- -   @RUNNING@ - AWS IoT Events is analyzing your detector model. This+--     process can take several minutes to complete.+--+-- -   @COMPLETE@ - AWS IoT Events finished analyzing your detector model.+--+-- -   @FAILED@ - AWS IoT Events couldn\'t analyze your detector model. Try+--     again later.+--+-- 'httpStatus', 'describeDetectorModelAnalysisResponse_httpStatus' - The response's http status code.+newDescribeDetectorModelAnalysisResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeDetectorModelAnalysisResponse+newDescribeDetectorModelAnalysisResponse pHttpStatus_ =+  DescribeDetectorModelAnalysisResponse'+    { status =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The status of the analysis activity. The status can be one of the+-- following values:+--+-- -   @RUNNING@ - AWS IoT Events is analyzing your detector model. This+--     process can take several minutes to complete.+--+-- -   @COMPLETE@ - AWS IoT Events finished analyzing your detector model.+--+-- -   @FAILED@ - AWS IoT Events couldn\'t analyze your detector model. Try+--     again later.+describeDetectorModelAnalysisResponse_status :: Lens.Lens' DescribeDetectorModelAnalysisResponse (Prelude.Maybe AnalysisStatus)+describeDetectorModelAnalysisResponse_status = Lens.lens (\DescribeDetectorModelAnalysisResponse' {status} -> status) (\s@DescribeDetectorModelAnalysisResponse' {} a -> s {status = a} :: DescribeDetectorModelAnalysisResponse)++-- | The response's http status code.+describeDetectorModelAnalysisResponse_httpStatus :: Lens.Lens' DescribeDetectorModelAnalysisResponse Prelude.Int+describeDetectorModelAnalysisResponse_httpStatus = Lens.lens (\DescribeDetectorModelAnalysisResponse' {httpStatus} -> httpStatus) (\s@DescribeDetectorModelAnalysisResponse' {} a -> s {httpStatus = a} :: DescribeDetectorModelAnalysisResponse)++instance+  Prelude.NFData+    DescribeDetectorModelAnalysisResponse+  where+  rnf DescribeDetectorModelAnalysisResponse' {..} =+    Prelude.rnf status+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTEvents/DescribeInput.hs view
@@ -0,0 +1,149 @@+{-# 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.IoTEvents.DescribeInput+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes an input.+module Amazonka.IoTEvents.DescribeInput+  ( -- * Creating a Request+    DescribeInput (..),+    newDescribeInput,++    -- * Request Lenses+    describeInput_inputName,++    -- * Destructuring the Response+    DescribeInputResponse (..),+    newDescribeInputResponse,++    -- * Response Lenses+    describeInputResponse_input,+    describeInputResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeInput' smart constructor.+data DescribeInput = DescribeInput'+  { -- | The name of the input.+    inputName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeInput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'inputName', 'describeInput_inputName' - The name of the input.+newDescribeInput ::+  -- | 'inputName'+  Prelude.Text ->+  DescribeInput+newDescribeInput pInputName_ =+  DescribeInput' {inputName = pInputName_}++-- | The name of the input.+describeInput_inputName :: Lens.Lens' DescribeInput Prelude.Text+describeInput_inputName = Lens.lens (\DescribeInput' {inputName} -> inputName) (\s@DescribeInput' {} a -> s {inputName = a} :: DescribeInput)++instance Core.AWSRequest DescribeInput where+  type+    AWSResponse DescribeInput =+      DescribeInputResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeInputResponse'+            Prelude.<$> (x Data..?> "input")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeInput where+  hashWithSalt _salt DescribeInput' {..} =+    _salt `Prelude.hashWithSalt` inputName++instance Prelude.NFData DescribeInput where+  rnf DescribeInput' {..} = Prelude.rnf inputName++instance Data.ToHeaders DescribeInput where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DescribeInput where+  toPath DescribeInput' {..} =+    Prelude.mconcat ["/inputs/", Data.toBS inputName]++instance Data.ToQuery DescribeInput where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeInputResponse' smart constructor.+data DescribeInputResponse = DescribeInputResponse'+  { -- | Information about the input.+    input :: Prelude.Maybe Input,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeInputResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'input', 'describeInputResponse_input' - Information about the input.+--+-- 'httpStatus', 'describeInputResponse_httpStatus' - The response's http status code.+newDescribeInputResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeInputResponse+newDescribeInputResponse pHttpStatus_ =+  DescribeInputResponse'+    { input = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about the input.+describeInputResponse_input :: Lens.Lens' DescribeInputResponse (Prelude.Maybe Input)+describeInputResponse_input = Lens.lens (\DescribeInputResponse' {input} -> input) (\s@DescribeInputResponse' {} a -> s {input = a} :: DescribeInputResponse)++-- | The response's http status code.+describeInputResponse_httpStatus :: Lens.Lens' DescribeInputResponse Prelude.Int+describeInputResponse_httpStatus = Lens.lens (\DescribeInputResponse' {httpStatus} -> httpStatus) (\s@DescribeInputResponse' {} a -> s {httpStatus = a} :: DescribeInputResponse)++instance Prelude.NFData DescribeInputResponse where+  rnf DescribeInputResponse' {..} =+    Prelude.rnf input+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTEvents/DescribeLoggingOptions.hs view
@@ -0,0 +1,136 @@+{-# 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.IoTEvents.DescribeLoggingOptions+-- 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 current settings of the AWS IoT Events logging options.+module Amazonka.IoTEvents.DescribeLoggingOptions+  ( -- * Creating a Request+    DescribeLoggingOptions (..),+    newDescribeLoggingOptions,++    -- * Destructuring the Response+    DescribeLoggingOptionsResponse (..),+    newDescribeLoggingOptionsResponse,++    -- * Response Lenses+    describeLoggingOptionsResponse_loggingOptions,+    describeLoggingOptionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeLoggingOptions' smart constructor.+data DescribeLoggingOptions = DescribeLoggingOptions'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeLoggingOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDescribeLoggingOptions ::+  DescribeLoggingOptions+newDescribeLoggingOptions = DescribeLoggingOptions'++instance Core.AWSRequest DescribeLoggingOptions where+  type+    AWSResponse DescribeLoggingOptions =+      DescribeLoggingOptionsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeLoggingOptionsResponse'+            Prelude.<$> (x Data..?> "loggingOptions")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeLoggingOptions where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData DescribeLoggingOptions where+  rnf _ = ()++instance Data.ToHeaders DescribeLoggingOptions where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DescribeLoggingOptions where+  toPath = Prelude.const "/logging"++instance Data.ToQuery DescribeLoggingOptions where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeLoggingOptionsResponse' smart constructor.+data DescribeLoggingOptionsResponse = DescribeLoggingOptionsResponse'+  { -- | The current settings of the AWS IoT Events logging options.+    loggingOptions :: Prelude.Maybe LoggingOptions,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeLoggingOptionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'loggingOptions', 'describeLoggingOptionsResponse_loggingOptions' - The current settings of the AWS IoT Events logging options.+--+-- 'httpStatus', 'describeLoggingOptionsResponse_httpStatus' - The response's http status code.+newDescribeLoggingOptionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeLoggingOptionsResponse+newDescribeLoggingOptionsResponse pHttpStatus_ =+  DescribeLoggingOptionsResponse'+    { loggingOptions =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The current settings of the AWS IoT Events logging options.+describeLoggingOptionsResponse_loggingOptions :: Lens.Lens' DescribeLoggingOptionsResponse (Prelude.Maybe LoggingOptions)+describeLoggingOptionsResponse_loggingOptions = Lens.lens (\DescribeLoggingOptionsResponse' {loggingOptions} -> loggingOptions) (\s@DescribeLoggingOptionsResponse' {} a -> s {loggingOptions = a} :: DescribeLoggingOptionsResponse)++-- | The response's http status code.+describeLoggingOptionsResponse_httpStatus :: Lens.Lens' DescribeLoggingOptionsResponse Prelude.Int+describeLoggingOptionsResponse_httpStatus = Lens.lens (\DescribeLoggingOptionsResponse' {httpStatus} -> httpStatus) (\s@DescribeLoggingOptionsResponse' {} a -> s {httpStatus = a} :: DescribeLoggingOptionsResponse)++instance+  Prelude.NFData+    DescribeLoggingOptionsResponse+  where+  rnf DescribeLoggingOptionsResponse' {..} =+    Prelude.rnf loggingOptions+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTEvents/GetDetectorModelAnalysisResults.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.IoTEvents.GetDetectorModelAnalysisResults+-- 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 one or more analysis results of the detector model.+--+-- After AWS IoT Events starts analyzing your detector model, you have up+-- to 24 hours to retrieve the analysis results.+module Amazonka.IoTEvents.GetDetectorModelAnalysisResults+  ( -- * Creating a Request+    GetDetectorModelAnalysisResults (..),+    newGetDetectorModelAnalysisResults,++    -- * Request Lenses+    getDetectorModelAnalysisResults_maxResults,+    getDetectorModelAnalysisResults_nextToken,+    getDetectorModelAnalysisResults_analysisId,++    -- * Destructuring the Response+    GetDetectorModelAnalysisResultsResponse (..),+    newGetDetectorModelAnalysisResultsResponse,++    -- * Response Lenses+    getDetectorModelAnalysisResultsResponse_analysisResults,+    getDetectorModelAnalysisResultsResponse_nextToken,+    getDetectorModelAnalysisResultsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetDetectorModelAnalysisResults' smart constructor.+data GetDetectorModelAnalysisResults = GetDetectorModelAnalysisResults'+  { -- | The maximum number of results to be returned per request.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | The token that you can use to return the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The ID of the analysis result that you want to retrieve.+    analysisId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDetectorModelAnalysisResults' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getDetectorModelAnalysisResults_maxResults' - The maximum number of results to be returned per request.+--+-- 'nextToken', 'getDetectorModelAnalysisResults_nextToken' - The token that you can use to return the next set of results.+--+-- 'analysisId', 'getDetectorModelAnalysisResults_analysisId' - The ID of the analysis result that you want to retrieve.+newGetDetectorModelAnalysisResults ::+  -- | 'analysisId'+  Prelude.Text ->+  GetDetectorModelAnalysisResults+newGetDetectorModelAnalysisResults pAnalysisId_ =+  GetDetectorModelAnalysisResults'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      analysisId = pAnalysisId_+    }++-- | The maximum number of results to be returned per request.+getDetectorModelAnalysisResults_maxResults :: Lens.Lens' GetDetectorModelAnalysisResults (Prelude.Maybe Prelude.Int)+getDetectorModelAnalysisResults_maxResults = Lens.lens (\GetDetectorModelAnalysisResults' {maxResults} -> maxResults) (\s@GetDetectorModelAnalysisResults' {} a -> s {maxResults = a} :: GetDetectorModelAnalysisResults)++-- | The token that you can use to return the next set of results.+getDetectorModelAnalysisResults_nextToken :: Lens.Lens' GetDetectorModelAnalysisResults (Prelude.Maybe Prelude.Text)+getDetectorModelAnalysisResults_nextToken = Lens.lens (\GetDetectorModelAnalysisResults' {nextToken} -> nextToken) (\s@GetDetectorModelAnalysisResults' {} a -> s {nextToken = a} :: GetDetectorModelAnalysisResults)++-- | The ID of the analysis result that you want to retrieve.+getDetectorModelAnalysisResults_analysisId :: Lens.Lens' GetDetectorModelAnalysisResults Prelude.Text+getDetectorModelAnalysisResults_analysisId = Lens.lens (\GetDetectorModelAnalysisResults' {analysisId} -> analysisId) (\s@GetDetectorModelAnalysisResults' {} a -> s {analysisId = a} :: GetDetectorModelAnalysisResults)++instance+  Core.AWSRequest+    GetDetectorModelAnalysisResults+  where+  type+    AWSResponse GetDetectorModelAnalysisResults =+      GetDetectorModelAnalysisResultsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetDetectorModelAnalysisResultsResponse'+            Prelude.<$> ( x+                            Data..?> "analysisResults"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    GetDetectorModelAnalysisResults+  where+  hashWithSalt+    _salt+    GetDetectorModelAnalysisResults' {..} =+      _salt+        `Prelude.hashWithSalt` maxResults+        `Prelude.hashWithSalt` nextToken+        `Prelude.hashWithSalt` analysisId++instance+  Prelude.NFData+    GetDetectorModelAnalysisResults+  where+  rnf GetDetectorModelAnalysisResults' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf analysisId++instance+  Data.ToHeaders+    GetDetectorModelAnalysisResults+  where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath GetDetectorModelAnalysisResults where+  toPath GetDetectorModelAnalysisResults' {..} =+    Prelude.mconcat+      [ "/analysis/detector-models/",+        Data.toBS analysisId,+        "/results"+      ]++instance Data.ToQuery GetDetectorModelAnalysisResults where+  toQuery GetDetectorModelAnalysisResults' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newGetDetectorModelAnalysisResultsResponse' smart constructor.+data GetDetectorModelAnalysisResultsResponse = GetDetectorModelAnalysisResultsResponse'+  { -- | Contains information about one or more analysis results.+    analysisResults :: Prelude.Maybe [AnalysisResult],+    -- | The token that you can use to return the next set of results, or @null@+    -- if there are no more 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 'GetDetectorModelAnalysisResultsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'analysisResults', 'getDetectorModelAnalysisResultsResponse_analysisResults' - Contains information about one or more analysis results.+--+-- 'nextToken', 'getDetectorModelAnalysisResultsResponse_nextToken' - The token that you can use to return the next set of results, or @null@+-- if there are no more results.+--+-- 'httpStatus', 'getDetectorModelAnalysisResultsResponse_httpStatus' - The response's http status code.+newGetDetectorModelAnalysisResultsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetDetectorModelAnalysisResultsResponse+newGetDetectorModelAnalysisResultsResponse+  pHttpStatus_ =+    GetDetectorModelAnalysisResultsResponse'+      { analysisResults =+          Prelude.Nothing,+        nextToken = Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | Contains information about one or more analysis results.+getDetectorModelAnalysisResultsResponse_analysisResults :: Lens.Lens' GetDetectorModelAnalysisResultsResponse (Prelude.Maybe [AnalysisResult])+getDetectorModelAnalysisResultsResponse_analysisResults = Lens.lens (\GetDetectorModelAnalysisResultsResponse' {analysisResults} -> analysisResults) (\s@GetDetectorModelAnalysisResultsResponse' {} a -> s {analysisResults = a} :: GetDetectorModelAnalysisResultsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token that you can use to return the next set of results, or @null@+-- if there are no more results.+getDetectorModelAnalysisResultsResponse_nextToken :: Lens.Lens' GetDetectorModelAnalysisResultsResponse (Prelude.Maybe Prelude.Text)+getDetectorModelAnalysisResultsResponse_nextToken = Lens.lens (\GetDetectorModelAnalysisResultsResponse' {nextToken} -> nextToken) (\s@GetDetectorModelAnalysisResultsResponse' {} a -> s {nextToken = a} :: GetDetectorModelAnalysisResultsResponse)++-- | The response's http status code.+getDetectorModelAnalysisResultsResponse_httpStatus :: Lens.Lens' GetDetectorModelAnalysisResultsResponse Prelude.Int+getDetectorModelAnalysisResultsResponse_httpStatus = Lens.lens (\GetDetectorModelAnalysisResultsResponse' {httpStatus} -> httpStatus) (\s@GetDetectorModelAnalysisResultsResponse' {} a -> s {httpStatus = a} :: GetDetectorModelAnalysisResultsResponse)++instance+  Prelude.NFData+    GetDetectorModelAnalysisResultsResponse+  where+  rnf GetDetectorModelAnalysisResultsResponse' {..} =+    Prelude.rnf analysisResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTEvents/Lens.hs view
@@ -0,0 +1,614 @@+{-# 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.IoTEvents.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.IoTEvents.Lens+  ( -- * Operations++    -- ** CreateAlarmModel+    createAlarmModel_alarmCapabilities,+    createAlarmModel_alarmEventActions,+    createAlarmModel_alarmModelDescription,+    createAlarmModel_alarmNotification,+    createAlarmModel_key,+    createAlarmModel_severity,+    createAlarmModel_tags,+    createAlarmModel_alarmModelName,+    createAlarmModel_roleArn,+    createAlarmModel_alarmRule,+    createAlarmModelResponse_alarmModelArn,+    createAlarmModelResponse_alarmModelVersion,+    createAlarmModelResponse_creationTime,+    createAlarmModelResponse_lastUpdateTime,+    createAlarmModelResponse_status,+    createAlarmModelResponse_httpStatus,++    -- ** CreateDetectorModel+    createDetectorModel_detectorModelDescription,+    createDetectorModel_evaluationMethod,+    createDetectorModel_key,+    createDetectorModel_tags,+    createDetectorModel_detectorModelName,+    createDetectorModel_detectorModelDefinition,+    createDetectorModel_roleArn,+    createDetectorModelResponse_detectorModelConfiguration,+    createDetectorModelResponse_httpStatus,++    -- ** CreateInput+    createInput_inputDescription,+    createInput_tags,+    createInput_inputName,+    createInput_inputDefinition,+    createInputResponse_inputConfiguration,+    createInputResponse_httpStatus,++    -- ** DeleteAlarmModel+    deleteAlarmModel_alarmModelName,+    deleteAlarmModelResponse_httpStatus,++    -- ** DeleteDetectorModel+    deleteDetectorModel_detectorModelName,+    deleteDetectorModelResponse_httpStatus,++    -- ** DeleteInput+    deleteInput_inputName,+    deleteInputResponse_httpStatus,++    -- ** DescribeAlarmModel+    describeAlarmModel_alarmModelVersion,+    describeAlarmModel_alarmModelName,+    describeAlarmModelResponse_alarmCapabilities,+    describeAlarmModelResponse_alarmEventActions,+    describeAlarmModelResponse_alarmModelArn,+    describeAlarmModelResponse_alarmModelDescription,+    describeAlarmModelResponse_alarmModelName,+    describeAlarmModelResponse_alarmModelVersion,+    describeAlarmModelResponse_alarmNotification,+    describeAlarmModelResponse_alarmRule,+    describeAlarmModelResponse_creationTime,+    describeAlarmModelResponse_key,+    describeAlarmModelResponse_lastUpdateTime,+    describeAlarmModelResponse_roleArn,+    describeAlarmModelResponse_severity,+    describeAlarmModelResponse_status,+    describeAlarmModelResponse_statusMessage,+    describeAlarmModelResponse_httpStatus,++    -- ** DescribeDetectorModel+    describeDetectorModel_detectorModelVersion,+    describeDetectorModel_detectorModelName,+    describeDetectorModelResponse_detectorModel,+    describeDetectorModelResponse_httpStatus,++    -- ** DescribeDetectorModelAnalysis+    describeDetectorModelAnalysis_analysisId,+    describeDetectorModelAnalysisResponse_status,+    describeDetectorModelAnalysisResponse_httpStatus,++    -- ** DescribeInput+    describeInput_inputName,+    describeInputResponse_input,+    describeInputResponse_httpStatus,++    -- ** DescribeLoggingOptions+    describeLoggingOptionsResponse_loggingOptions,+    describeLoggingOptionsResponse_httpStatus,++    -- ** GetDetectorModelAnalysisResults+    getDetectorModelAnalysisResults_maxResults,+    getDetectorModelAnalysisResults_nextToken,+    getDetectorModelAnalysisResults_analysisId,+    getDetectorModelAnalysisResultsResponse_analysisResults,+    getDetectorModelAnalysisResultsResponse_nextToken,+    getDetectorModelAnalysisResultsResponse_httpStatus,++    -- ** ListAlarmModelVersions+    listAlarmModelVersions_maxResults,+    listAlarmModelVersions_nextToken,+    listAlarmModelVersions_alarmModelName,+    listAlarmModelVersionsResponse_alarmModelVersionSummaries,+    listAlarmModelVersionsResponse_nextToken,+    listAlarmModelVersionsResponse_httpStatus,++    -- ** ListAlarmModels+    listAlarmModels_maxResults,+    listAlarmModels_nextToken,+    listAlarmModelsResponse_alarmModelSummaries,+    listAlarmModelsResponse_nextToken,+    listAlarmModelsResponse_httpStatus,++    -- ** ListDetectorModelVersions+    listDetectorModelVersions_maxResults,+    listDetectorModelVersions_nextToken,+    listDetectorModelVersions_detectorModelName,+    listDetectorModelVersionsResponse_detectorModelVersionSummaries,+    listDetectorModelVersionsResponse_nextToken,+    listDetectorModelVersionsResponse_httpStatus,++    -- ** ListDetectorModels+    listDetectorModels_maxResults,+    listDetectorModels_nextToken,+    listDetectorModelsResponse_detectorModelSummaries,+    listDetectorModelsResponse_nextToken,+    listDetectorModelsResponse_httpStatus,++    -- ** ListInputRoutings+    listInputRoutings_maxResults,+    listInputRoutings_nextToken,+    listInputRoutings_inputIdentifier,+    listInputRoutingsResponse_nextToken,+    listInputRoutingsResponse_routedResources,+    listInputRoutingsResponse_httpStatus,++    -- ** ListInputs+    listInputs_maxResults,+    listInputs_nextToken,+    listInputsResponse_inputSummaries,+    listInputsResponse_nextToken,+    listInputsResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_resourceArn,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** PutLoggingOptions+    putLoggingOptions_loggingOptions,++    -- ** StartDetectorModelAnalysis+    startDetectorModelAnalysis_detectorModelDefinition,+    startDetectorModelAnalysisResponse_analysisId,+    startDetectorModelAnalysisResponse_httpStatus,++    -- ** TagResource+    tagResource_resourceArn,+    tagResource_tags,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceArn,+    untagResource_tagKeys,+    untagResourceResponse_httpStatus,++    -- ** UpdateAlarmModel+    updateAlarmModel_alarmCapabilities,+    updateAlarmModel_alarmEventActions,+    updateAlarmModel_alarmModelDescription,+    updateAlarmModel_alarmNotification,+    updateAlarmModel_severity,+    updateAlarmModel_alarmModelName,+    updateAlarmModel_roleArn,+    updateAlarmModel_alarmRule,+    updateAlarmModelResponse_alarmModelArn,+    updateAlarmModelResponse_alarmModelVersion,+    updateAlarmModelResponse_creationTime,+    updateAlarmModelResponse_lastUpdateTime,+    updateAlarmModelResponse_status,+    updateAlarmModelResponse_httpStatus,++    -- ** UpdateDetectorModel+    updateDetectorModel_detectorModelDescription,+    updateDetectorModel_evaluationMethod,+    updateDetectorModel_detectorModelName,+    updateDetectorModel_detectorModelDefinition,+    updateDetectorModel_roleArn,+    updateDetectorModelResponse_detectorModelConfiguration,+    updateDetectorModelResponse_httpStatus,++    -- ** UpdateInput+    updateInput_inputDescription,+    updateInput_inputName,+    updateInput_inputDefinition,+    updateInputResponse_inputConfiguration,+    updateInputResponse_httpStatus,++    -- * Types++    -- ** AcknowledgeFlow+    acknowledgeFlow_enabled,++    -- ** Action+    action_clearTimer,+    action_dynamoDB,+    action_dynamoDBv2,+    action_firehose,+    action_iotEvents,+    action_iotSiteWise,+    action_iotTopicPublish,+    action_lambda,+    action_resetTimer,+    action_setTimer,+    action_setVariable,+    action_sns,+    action_sqs,++    -- ** AlarmAction+    alarmAction_dynamoDB,+    alarmAction_dynamoDBv2,+    alarmAction_firehose,+    alarmAction_iotEvents,+    alarmAction_iotSiteWise,+    alarmAction_iotTopicPublish,+    alarmAction_lambda,+    alarmAction_sns,+    alarmAction_sqs,++    -- ** AlarmCapabilities+    alarmCapabilities_acknowledgeFlow,+    alarmCapabilities_initializationConfiguration,++    -- ** AlarmEventActions+    alarmEventActions_alarmActions,++    -- ** AlarmModelSummary+    alarmModelSummary_alarmModelDescription,+    alarmModelSummary_alarmModelName,+    alarmModelSummary_creationTime,++    -- ** AlarmModelVersionSummary+    alarmModelVersionSummary_alarmModelArn,+    alarmModelVersionSummary_alarmModelName,+    alarmModelVersionSummary_alarmModelVersion,+    alarmModelVersionSummary_creationTime,+    alarmModelVersionSummary_lastUpdateTime,+    alarmModelVersionSummary_roleArn,+    alarmModelVersionSummary_status,+    alarmModelVersionSummary_statusMessage,++    -- ** AlarmNotification+    alarmNotification_notificationActions,++    -- ** AlarmRule+    alarmRule_simpleRule,++    -- ** AnalysisResult+    analysisResult_level,+    analysisResult_locations,+    analysisResult_message,+    analysisResult_type,++    -- ** AnalysisResultLocation+    analysisResultLocation_path,++    -- ** AssetPropertyTimestamp+    assetPropertyTimestamp_offsetInNanos,+    assetPropertyTimestamp_timeInSeconds,++    -- ** AssetPropertyValue+    assetPropertyValue_quality,+    assetPropertyValue_timestamp,+    assetPropertyValue_value,++    -- ** AssetPropertyVariant+    assetPropertyVariant_booleanValue,+    assetPropertyVariant_doubleValue,+    assetPropertyVariant_integerValue,+    assetPropertyVariant_stringValue,++    -- ** Attribute+    attribute_jsonPath,++    -- ** ClearTimerAction+    clearTimerAction_timerName,++    -- ** DetectorDebugOption+    detectorDebugOption_keyValue,+    detectorDebugOption_detectorModelName,++    -- ** DetectorModel+    detectorModel_detectorModelConfiguration,+    detectorModel_detectorModelDefinition,++    -- ** DetectorModelConfiguration+    detectorModelConfiguration_creationTime,+    detectorModelConfiguration_detectorModelArn,+    detectorModelConfiguration_detectorModelDescription,+    detectorModelConfiguration_detectorModelName,+    detectorModelConfiguration_detectorModelVersion,+    detectorModelConfiguration_evaluationMethod,+    detectorModelConfiguration_key,+    detectorModelConfiguration_lastUpdateTime,+    detectorModelConfiguration_roleArn,+    detectorModelConfiguration_status,++    -- ** DetectorModelDefinition+    detectorModelDefinition_states,+    detectorModelDefinition_initialStateName,++    -- ** DetectorModelSummary+    detectorModelSummary_creationTime,+    detectorModelSummary_detectorModelDescription,+    detectorModelSummary_detectorModelName,++    -- ** DetectorModelVersionSummary+    detectorModelVersionSummary_creationTime,+    detectorModelVersionSummary_detectorModelArn,+    detectorModelVersionSummary_detectorModelName,+    detectorModelVersionSummary_detectorModelVersion,+    detectorModelVersionSummary_evaluationMethod,+    detectorModelVersionSummary_lastUpdateTime,+    detectorModelVersionSummary_roleArn,+    detectorModelVersionSummary_status,++    -- ** DynamoDBAction+    dynamoDBAction_hashKeyType,+    dynamoDBAction_operation,+    dynamoDBAction_payload,+    dynamoDBAction_payloadField,+    dynamoDBAction_rangeKeyField,+    dynamoDBAction_rangeKeyType,+    dynamoDBAction_rangeKeyValue,+    dynamoDBAction_hashKeyField,+    dynamoDBAction_hashKeyValue,+    dynamoDBAction_tableName,++    -- ** DynamoDBv2Action+    dynamoDBv2Action_payload,+    dynamoDBv2Action_tableName,++    -- ** EmailConfiguration+    emailConfiguration_content,+    emailConfiguration_from,+    emailConfiguration_recipients,++    -- ** EmailContent+    emailContent_additionalMessage,+    emailContent_subject,++    -- ** EmailRecipients+    emailRecipients_to,++    -- ** Event+    event_actions,+    event_condition,+    event_eventName,++    -- ** FirehoseAction+    firehoseAction_payload,+    firehoseAction_separator,+    firehoseAction_deliveryStreamName,++    -- ** InitializationConfiguration+    initializationConfiguration_disabledOnInitialization,++    -- ** Input+    input_inputConfiguration,+    input_inputDefinition,++    -- ** InputConfiguration+    inputConfiguration_inputDescription,+    inputConfiguration_inputName,+    inputConfiguration_inputArn,+    inputConfiguration_creationTime,+    inputConfiguration_lastUpdateTime,+    inputConfiguration_status,++    -- ** InputDefinition+    inputDefinition_attributes,++    -- ** InputIdentifier+    inputIdentifier_iotEventsInputIdentifier,+    inputIdentifier_iotSiteWiseInputIdentifier,++    -- ** InputSummary+    inputSummary_creationTime,+    inputSummary_inputArn,+    inputSummary_inputDescription,+    inputSummary_inputName,+    inputSummary_lastUpdateTime,+    inputSummary_status,++    -- ** IotEventsAction+    iotEventsAction_payload,+    iotEventsAction_inputName,++    -- ** IotEventsInputIdentifier+    iotEventsInputIdentifier_inputName,++    -- ** IotSiteWiseAction+    iotSiteWiseAction_assetId,+    iotSiteWiseAction_entryId,+    iotSiteWiseAction_propertyAlias,+    iotSiteWiseAction_propertyId,+    iotSiteWiseAction_propertyValue,++    -- ** IotSiteWiseAssetModelPropertyIdentifier+    iotSiteWiseAssetModelPropertyIdentifier_assetModelId,+    iotSiteWiseAssetModelPropertyIdentifier_propertyId,++    -- ** IotSiteWiseInputIdentifier+    iotSiteWiseInputIdentifier_iotSiteWiseAssetModelPropertyIdentifier,++    -- ** IotTopicPublishAction+    iotTopicPublishAction_payload,+    iotTopicPublishAction_mqttTopic,++    -- ** LambdaAction+    lambdaAction_payload,+    lambdaAction_functionArn,++    -- ** LoggingOptions+    loggingOptions_detectorDebugOptions,+    loggingOptions_roleArn,+    loggingOptions_level,+    loggingOptions_enabled,++    -- ** NotificationAction+    notificationAction_emailConfigurations,+    notificationAction_smsConfigurations,+    notificationAction_action,++    -- ** NotificationTargetActions+    notificationTargetActions_lambdaAction,++    -- ** OnEnterLifecycle+    onEnterLifecycle_events,++    -- ** OnExitLifecycle+    onExitLifecycle_events,++    -- ** OnInputLifecycle+    onInputLifecycle_events,+    onInputLifecycle_transitionEvents,++    -- ** Payload+    payload_contentExpression,+    payload_type,++    -- ** RecipientDetail+    recipientDetail_ssoIdentity,++    -- ** ResetTimerAction+    resetTimerAction_timerName,++    -- ** RoutedResource+    routedResource_arn,+    routedResource_name,++    -- ** SMSConfiguration+    sMSConfiguration_additionalMessage,+    sMSConfiguration_senderId,+    sMSConfiguration_recipients,++    -- ** SNSTopicPublishAction+    sNSTopicPublishAction_payload,+    sNSTopicPublishAction_targetArn,++    -- ** SSOIdentity+    sSOIdentity_userId,+    sSOIdentity_identityStoreId,++    -- ** SetTimerAction+    setTimerAction_durationExpression,+    setTimerAction_seconds,+    setTimerAction_timerName,++    -- ** SetVariableAction+    setVariableAction_variableName,+    setVariableAction_value,++    -- ** SimpleRule+    simpleRule_inputProperty,+    simpleRule_comparisonOperator,+    simpleRule_threshold,++    -- ** SqsAction+    sqsAction_payload,+    sqsAction_useBase64,+    sqsAction_queueUrl,++    -- ** State+    state_onEnter,+    state_onExit,+    state_onInput,+    state_stateName,++    -- ** Tag+    tag_key,+    tag_value,++    -- ** TransitionEvent+    transitionEvent_actions,+    transitionEvent_eventName,+    transitionEvent_condition,+    transitionEvent_nextState,+  )+where++import Amazonka.IoTEvents.CreateAlarmModel+import Amazonka.IoTEvents.CreateDetectorModel+import Amazonka.IoTEvents.CreateInput+import Amazonka.IoTEvents.DeleteAlarmModel+import Amazonka.IoTEvents.DeleteDetectorModel+import Amazonka.IoTEvents.DeleteInput+import Amazonka.IoTEvents.DescribeAlarmModel+import Amazonka.IoTEvents.DescribeDetectorModel+import Amazonka.IoTEvents.DescribeDetectorModelAnalysis+import Amazonka.IoTEvents.DescribeInput+import Amazonka.IoTEvents.DescribeLoggingOptions+import Amazonka.IoTEvents.GetDetectorModelAnalysisResults+import Amazonka.IoTEvents.ListAlarmModelVersions+import Amazonka.IoTEvents.ListAlarmModels+import Amazonka.IoTEvents.ListDetectorModelVersions+import Amazonka.IoTEvents.ListDetectorModels+import Amazonka.IoTEvents.ListInputRoutings+import Amazonka.IoTEvents.ListInputs+import Amazonka.IoTEvents.ListTagsForResource+import Amazonka.IoTEvents.PutLoggingOptions+import Amazonka.IoTEvents.StartDetectorModelAnalysis+import Amazonka.IoTEvents.TagResource+import Amazonka.IoTEvents.Types.AcknowledgeFlow+import Amazonka.IoTEvents.Types.Action+import Amazonka.IoTEvents.Types.AlarmAction+import Amazonka.IoTEvents.Types.AlarmCapabilities+import Amazonka.IoTEvents.Types.AlarmEventActions+import Amazonka.IoTEvents.Types.AlarmModelSummary+import Amazonka.IoTEvents.Types.AlarmModelVersionSummary+import Amazonka.IoTEvents.Types.AlarmNotification+import Amazonka.IoTEvents.Types.AlarmRule+import Amazonka.IoTEvents.Types.AnalysisResult+import Amazonka.IoTEvents.Types.AnalysisResultLocation+import Amazonka.IoTEvents.Types.AssetPropertyTimestamp+import Amazonka.IoTEvents.Types.AssetPropertyValue+import Amazonka.IoTEvents.Types.AssetPropertyVariant+import Amazonka.IoTEvents.Types.Attribute+import Amazonka.IoTEvents.Types.ClearTimerAction+import Amazonka.IoTEvents.Types.DetectorDebugOption+import Amazonka.IoTEvents.Types.DetectorModel+import Amazonka.IoTEvents.Types.DetectorModelConfiguration+import Amazonka.IoTEvents.Types.DetectorModelDefinition+import Amazonka.IoTEvents.Types.DetectorModelSummary+import Amazonka.IoTEvents.Types.DetectorModelVersionSummary+import Amazonka.IoTEvents.Types.DynamoDBAction+import Amazonka.IoTEvents.Types.DynamoDBv2Action+import Amazonka.IoTEvents.Types.EmailConfiguration+import Amazonka.IoTEvents.Types.EmailContent+import Amazonka.IoTEvents.Types.EmailRecipients+import Amazonka.IoTEvents.Types.Event+import Amazonka.IoTEvents.Types.FirehoseAction+import Amazonka.IoTEvents.Types.InitializationConfiguration+import Amazonka.IoTEvents.Types.Input+import Amazonka.IoTEvents.Types.InputConfiguration+import Amazonka.IoTEvents.Types.InputDefinition+import Amazonka.IoTEvents.Types.InputIdentifier+import Amazonka.IoTEvents.Types.InputSummary+import Amazonka.IoTEvents.Types.IotEventsAction+import Amazonka.IoTEvents.Types.IotEventsInputIdentifier+import Amazonka.IoTEvents.Types.IotSiteWiseAction+import Amazonka.IoTEvents.Types.IotSiteWiseAssetModelPropertyIdentifier+import Amazonka.IoTEvents.Types.IotSiteWiseInputIdentifier+import Amazonka.IoTEvents.Types.IotTopicPublishAction+import Amazonka.IoTEvents.Types.LambdaAction+import Amazonka.IoTEvents.Types.LoggingOptions+import Amazonka.IoTEvents.Types.NotificationAction+import Amazonka.IoTEvents.Types.NotificationTargetActions+import Amazonka.IoTEvents.Types.OnEnterLifecycle+import Amazonka.IoTEvents.Types.OnExitLifecycle+import Amazonka.IoTEvents.Types.OnInputLifecycle+import Amazonka.IoTEvents.Types.Payload+import Amazonka.IoTEvents.Types.RecipientDetail+import Amazonka.IoTEvents.Types.ResetTimerAction+import Amazonka.IoTEvents.Types.RoutedResource+import Amazonka.IoTEvents.Types.SMSConfiguration+import Amazonka.IoTEvents.Types.SNSTopicPublishAction+import Amazonka.IoTEvents.Types.SSOIdentity+import Amazonka.IoTEvents.Types.SetTimerAction+import Amazonka.IoTEvents.Types.SetVariableAction+import Amazonka.IoTEvents.Types.SimpleRule+import Amazonka.IoTEvents.Types.SqsAction+import Amazonka.IoTEvents.Types.State+import Amazonka.IoTEvents.Types.Tag+import Amazonka.IoTEvents.Types.TransitionEvent+import Amazonka.IoTEvents.UntagResource+import Amazonka.IoTEvents.UpdateAlarmModel+import Amazonka.IoTEvents.UpdateDetectorModel+import Amazonka.IoTEvents.UpdateInput
+ gen/Amazonka/IoTEvents/ListAlarmModelVersions.hs view
@@ -0,0 +1,209 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.ListAlarmModelVersions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all the versions of an alarm model. The operation returns only the+-- metadata associated with each alarm model version.+module Amazonka.IoTEvents.ListAlarmModelVersions+  ( -- * Creating a Request+    ListAlarmModelVersions (..),+    newListAlarmModelVersions,++    -- * Request Lenses+    listAlarmModelVersions_maxResults,+    listAlarmModelVersions_nextToken,+    listAlarmModelVersions_alarmModelName,++    -- * Destructuring the Response+    ListAlarmModelVersionsResponse (..),+    newListAlarmModelVersionsResponse,++    -- * Response Lenses+    listAlarmModelVersionsResponse_alarmModelVersionSummaries,+    listAlarmModelVersionsResponse_nextToken,+    listAlarmModelVersionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAlarmModelVersions' smart constructor.+data ListAlarmModelVersions = ListAlarmModelVersions'+  { -- | The maximum number of results to be returned per request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token that you can use to return the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the alarm model.+    alarmModelName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAlarmModelVersions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listAlarmModelVersions_maxResults' - The maximum number of results to be returned per request.+--+-- 'nextToken', 'listAlarmModelVersions_nextToken' - The token that you can use to return the next set of results.+--+-- 'alarmModelName', 'listAlarmModelVersions_alarmModelName' - The name of the alarm model.+newListAlarmModelVersions ::+  -- | 'alarmModelName'+  Prelude.Text ->+  ListAlarmModelVersions+newListAlarmModelVersions pAlarmModelName_ =+  ListAlarmModelVersions'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      alarmModelName = pAlarmModelName_+    }++-- | The maximum number of results to be returned per request.+listAlarmModelVersions_maxResults :: Lens.Lens' ListAlarmModelVersions (Prelude.Maybe Prelude.Natural)+listAlarmModelVersions_maxResults = Lens.lens (\ListAlarmModelVersions' {maxResults} -> maxResults) (\s@ListAlarmModelVersions' {} a -> s {maxResults = a} :: ListAlarmModelVersions)++-- | The token that you can use to return the next set of results.+listAlarmModelVersions_nextToken :: Lens.Lens' ListAlarmModelVersions (Prelude.Maybe Prelude.Text)+listAlarmModelVersions_nextToken = Lens.lens (\ListAlarmModelVersions' {nextToken} -> nextToken) (\s@ListAlarmModelVersions' {} a -> s {nextToken = a} :: ListAlarmModelVersions)++-- | The name of the alarm model.+listAlarmModelVersions_alarmModelName :: Lens.Lens' ListAlarmModelVersions Prelude.Text+listAlarmModelVersions_alarmModelName = Lens.lens (\ListAlarmModelVersions' {alarmModelName} -> alarmModelName) (\s@ListAlarmModelVersions' {} a -> s {alarmModelName = a} :: ListAlarmModelVersions)++instance Core.AWSRequest ListAlarmModelVersions where+  type+    AWSResponse ListAlarmModelVersions =+      ListAlarmModelVersionsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListAlarmModelVersionsResponse'+            Prelude.<$> ( x+                            Data..?> "alarmModelVersionSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListAlarmModelVersions where+  hashWithSalt _salt ListAlarmModelVersions' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` alarmModelName++instance Prelude.NFData ListAlarmModelVersions where+  rnf ListAlarmModelVersions' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf alarmModelName++instance Data.ToHeaders ListAlarmModelVersions where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ListAlarmModelVersions where+  toPath ListAlarmModelVersions' {..} =+    Prelude.mconcat+      [ "/alarm-models/",+        Data.toBS alarmModelName,+        "/versions"+      ]++instance Data.ToQuery ListAlarmModelVersions where+  toQuery ListAlarmModelVersions' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListAlarmModelVersionsResponse' smart constructor.+data ListAlarmModelVersionsResponse = ListAlarmModelVersionsResponse'+  { -- | A list that summarizes each alarm model version.+    alarmModelVersionSummaries :: Prelude.Maybe [AlarmModelVersionSummary],+    -- | The token that you can use to return the next set of results, or @null@+    -- if there are no more 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 'ListAlarmModelVersionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'alarmModelVersionSummaries', 'listAlarmModelVersionsResponse_alarmModelVersionSummaries' - A list that summarizes each alarm model version.+--+-- 'nextToken', 'listAlarmModelVersionsResponse_nextToken' - The token that you can use to return the next set of results, or @null@+-- if there are no more results.+--+-- 'httpStatus', 'listAlarmModelVersionsResponse_httpStatus' - The response's http status code.+newListAlarmModelVersionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListAlarmModelVersionsResponse+newListAlarmModelVersionsResponse pHttpStatus_ =+  ListAlarmModelVersionsResponse'+    { alarmModelVersionSummaries =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list that summarizes each alarm model version.+listAlarmModelVersionsResponse_alarmModelVersionSummaries :: Lens.Lens' ListAlarmModelVersionsResponse (Prelude.Maybe [AlarmModelVersionSummary])+listAlarmModelVersionsResponse_alarmModelVersionSummaries = Lens.lens (\ListAlarmModelVersionsResponse' {alarmModelVersionSummaries} -> alarmModelVersionSummaries) (\s@ListAlarmModelVersionsResponse' {} a -> s {alarmModelVersionSummaries = a} :: ListAlarmModelVersionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token that you can use to return the next set of results, or @null@+-- if there are no more results.+listAlarmModelVersionsResponse_nextToken :: Lens.Lens' ListAlarmModelVersionsResponse (Prelude.Maybe Prelude.Text)+listAlarmModelVersionsResponse_nextToken = Lens.lens (\ListAlarmModelVersionsResponse' {nextToken} -> nextToken) (\s@ListAlarmModelVersionsResponse' {} a -> s {nextToken = a} :: ListAlarmModelVersionsResponse)++-- | The response's http status code.+listAlarmModelVersionsResponse_httpStatus :: Lens.Lens' ListAlarmModelVersionsResponse Prelude.Int+listAlarmModelVersionsResponse_httpStatus = Lens.lens (\ListAlarmModelVersionsResponse' {httpStatus} -> httpStatus) (\s@ListAlarmModelVersionsResponse' {} a -> s {httpStatus = a} :: ListAlarmModelVersionsResponse)++instance+  Prelude.NFData+    ListAlarmModelVersionsResponse+  where+  rnf ListAlarmModelVersionsResponse' {..} =+    Prelude.rnf alarmModelVersionSummaries+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTEvents/ListAlarmModels.hs view
@@ -0,0 +1,186 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.ListAlarmModels+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the alarm models that you created. The operation returns only the+-- metadata associated with each alarm model.+module Amazonka.IoTEvents.ListAlarmModels+  ( -- * Creating a Request+    ListAlarmModels (..),+    newListAlarmModels,++    -- * Request Lenses+    listAlarmModels_maxResults,+    listAlarmModels_nextToken,++    -- * Destructuring the Response+    ListAlarmModelsResponse (..),+    newListAlarmModelsResponse,++    -- * Response Lenses+    listAlarmModelsResponse_alarmModelSummaries,+    listAlarmModelsResponse_nextToken,+    listAlarmModelsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAlarmModels' smart constructor.+data ListAlarmModels = ListAlarmModels'+  { -- | The maximum number of results to be returned per request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token that you can use to return the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAlarmModels' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listAlarmModels_maxResults' - The maximum number of results to be returned per request.+--+-- 'nextToken', 'listAlarmModels_nextToken' - The token that you can use to return the next set of results.+newListAlarmModels ::+  ListAlarmModels+newListAlarmModels =+  ListAlarmModels'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of results to be returned per request.+listAlarmModels_maxResults :: Lens.Lens' ListAlarmModels (Prelude.Maybe Prelude.Natural)+listAlarmModels_maxResults = Lens.lens (\ListAlarmModels' {maxResults} -> maxResults) (\s@ListAlarmModels' {} a -> s {maxResults = a} :: ListAlarmModels)++-- | The token that you can use to return the next set of results.+listAlarmModels_nextToken :: Lens.Lens' ListAlarmModels (Prelude.Maybe Prelude.Text)+listAlarmModels_nextToken = Lens.lens (\ListAlarmModels' {nextToken} -> nextToken) (\s@ListAlarmModels' {} a -> s {nextToken = a} :: ListAlarmModels)++instance Core.AWSRequest ListAlarmModels where+  type+    AWSResponse ListAlarmModels =+      ListAlarmModelsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListAlarmModelsResponse'+            Prelude.<$> ( x+                            Data..?> "alarmModelSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListAlarmModels where+  hashWithSalt _salt ListAlarmModels' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListAlarmModels where+  rnf ListAlarmModels' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListAlarmModels where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ListAlarmModels where+  toPath = Prelude.const "/alarm-models"++instance Data.ToQuery ListAlarmModels where+  toQuery ListAlarmModels' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListAlarmModelsResponse' smart constructor.+data ListAlarmModelsResponse = ListAlarmModelsResponse'+  { -- | A list that summarizes each alarm model.+    alarmModelSummaries :: Prelude.Maybe [AlarmModelSummary],+    -- | The token that you can use to return the next set of results, or @null@+    -- if there are no more 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 'ListAlarmModelsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'alarmModelSummaries', 'listAlarmModelsResponse_alarmModelSummaries' - A list that summarizes each alarm model.+--+-- 'nextToken', 'listAlarmModelsResponse_nextToken' - The token that you can use to return the next set of results, or @null@+-- if there are no more results.+--+-- 'httpStatus', 'listAlarmModelsResponse_httpStatus' - The response's http status code.+newListAlarmModelsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListAlarmModelsResponse+newListAlarmModelsResponse pHttpStatus_ =+  ListAlarmModelsResponse'+    { alarmModelSummaries =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list that summarizes each alarm model.+listAlarmModelsResponse_alarmModelSummaries :: Lens.Lens' ListAlarmModelsResponse (Prelude.Maybe [AlarmModelSummary])+listAlarmModelsResponse_alarmModelSummaries = Lens.lens (\ListAlarmModelsResponse' {alarmModelSummaries} -> alarmModelSummaries) (\s@ListAlarmModelsResponse' {} a -> s {alarmModelSummaries = a} :: ListAlarmModelsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token that you can use to return the next set of results, or @null@+-- if there are no more results.+listAlarmModelsResponse_nextToken :: Lens.Lens' ListAlarmModelsResponse (Prelude.Maybe Prelude.Text)+listAlarmModelsResponse_nextToken = Lens.lens (\ListAlarmModelsResponse' {nextToken} -> nextToken) (\s@ListAlarmModelsResponse' {} a -> s {nextToken = a} :: ListAlarmModelsResponse)++-- | The response's http status code.+listAlarmModelsResponse_httpStatus :: Lens.Lens' ListAlarmModelsResponse Prelude.Int+listAlarmModelsResponse_httpStatus = Lens.lens (\ListAlarmModelsResponse' {httpStatus} -> httpStatus) (\s@ListAlarmModelsResponse' {} a -> s {httpStatus = a} :: ListAlarmModelsResponse)++instance Prelude.NFData ListAlarmModelsResponse where+  rnf ListAlarmModelsResponse' {..} =+    Prelude.rnf alarmModelSummaries+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTEvents/ListDetectorModelVersions.hs view
@@ -0,0 +1,209 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.ListDetectorModelVersions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all the versions of a detector model. Only the metadata associated+-- with each detector model version is returned.+module Amazonka.IoTEvents.ListDetectorModelVersions+  ( -- * Creating a Request+    ListDetectorModelVersions (..),+    newListDetectorModelVersions,++    -- * Request Lenses+    listDetectorModelVersions_maxResults,+    listDetectorModelVersions_nextToken,+    listDetectorModelVersions_detectorModelName,++    -- * Destructuring the Response+    ListDetectorModelVersionsResponse (..),+    newListDetectorModelVersionsResponse,++    -- * Response Lenses+    listDetectorModelVersionsResponse_detectorModelVersionSummaries,+    listDetectorModelVersionsResponse_nextToken,+    listDetectorModelVersionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListDetectorModelVersions' smart constructor.+data ListDetectorModelVersions = ListDetectorModelVersions'+  { -- | The maximum number of results to be returned per request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token that you can use to return the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the detector model whose versions are returned.+    detectorModelName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDetectorModelVersions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listDetectorModelVersions_maxResults' - The maximum number of results to be returned per request.+--+-- 'nextToken', 'listDetectorModelVersions_nextToken' - The token that you can use to return the next set of results.+--+-- 'detectorModelName', 'listDetectorModelVersions_detectorModelName' - The name of the detector model whose versions are returned.+newListDetectorModelVersions ::+  -- | 'detectorModelName'+  Prelude.Text ->+  ListDetectorModelVersions+newListDetectorModelVersions pDetectorModelName_ =+  ListDetectorModelVersions'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      detectorModelName = pDetectorModelName_+    }++-- | The maximum number of results to be returned per request.+listDetectorModelVersions_maxResults :: Lens.Lens' ListDetectorModelVersions (Prelude.Maybe Prelude.Natural)+listDetectorModelVersions_maxResults = Lens.lens (\ListDetectorModelVersions' {maxResults} -> maxResults) (\s@ListDetectorModelVersions' {} a -> s {maxResults = a} :: ListDetectorModelVersions)++-- | The token that you can use to return the next set of results.+listDetectorModelVersions_nextToken :: Lens.Lens' ListDetectorModelVersions (Prelude.Maybe Prelude.Text)+listDetectorModelVersions_nextToken = Lens.lens (\ListDetectorModelVersions' {nextToken} -> nextToken) (\s@ListDetectorModelVersions' {} a -> s {nextToken = a} :: ListDetectorModelVersions)++-- | The name of the detector model whose versions are returned.+listDetectorModelVersions_detectorModelName :: Lens.Lens' ListDetectorModelVersions Prelude.Text+listDetectorModelVersions_detectorModelName = Lens.lens (\ListDetectorModelVersions' {detectorModelName} -> detectorModelName) (\s@ListDetectorModelVersions' {} a -> s {detectorModelName = a} :: ListDetectorModelVersions)++instance Core.AWSRequest ListDetectorModelVersions where+  type+    AWSResponse ListDetectorModelVersions =+      ListDetectorModelVersionsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListDetectorModelVersionsResponse'+            Prelude.<$> ( x+                            Data..?> "detectorModelVersionSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListDetectorModelVersions where+  hashWithSalt _salt ListDetectorModelVersions' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` detectorModelName++instance Prelude.NFData ListDetectorModelVersions where+  rnf ListDetectorModelVersions' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf detectorModelName++instance Data.ToHeaders ListDetectorModelVersions where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ListDetectorModelVersions where+  toPath ListDetectorModelVersions' {..} =+    Prelude.mconcat+      [ "/detector-models/",+        Data.toBS detectorModelName,+        "/versions"+      ]++instance Data.ToQuery ListDetectorModelVersions where+  toQuery ListDetectorModelVersions' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListDetectorModelVersionsResponse' smart constructor.+data ListDetectorModelVersionsResponse = ListDetectorModelVersionsResponse'+  { -- | Summary information about the detector model versions.+    detectorModelVersionSummaries :: Prelude.Maybe [DetectorModelVersionSummary],+    -- | The token that you can use to return the next set of results, or @null@+    -- if there are no more 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 'ListDetectorModelVersionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectorModelVersionSummaries', 'listDetectorModelVersionsResponse_detectorModelVersionSummaries' - Summary information about the detector model versions.+--+-- 'nextToken', 'listDetectorModelVersionsResponse_nextToken' - The token that you can use to return the next set of results, or @null@+-- if there are no more results.+--+-- 'httpStatus', 'listDetectorModelVersionsResponse_httpStatus' - The response's http status code.+newListDetectorModelVersionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListDetectorModelVersionsResponse+newListDetectorModelVersionsResponse pHttpStatus_ =+  ListDetectorModelVersionsResponse'+    { detectorModelVersionSummaries =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Summary information about the detector model versions.+listDetectorModelVersionsResponse_detectorModelVersionSummaries :: Lens.Lens' ListDetectorModelVersionsResponse (Prelude.Maybe [DetectorModelVersionSummary])+listDetectorModelVersionsResponse_detectorModelVersionSummaries = Lens.lens (\ListDetectorModelVersionsResponse' {detectorModelVersionSummaries} -> detectorModelVersionSummaries) (\s@ListDetectorModelVersionsResponse' {} a -> s {detectorModelVersionSummaries = a} :: ListDetectorModelVersionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token that you can use to return the next set of results, or @null@+-- if there are no more results.+listDetectorModelVersionsResponse_nextToken :: Lens.Lens' ListDetectorModelVersionsResponse (Prelude.Maybe Prelude.Text)+listDetectorModelVersionsResponse_nextToken = Lens.lens (\ListDetectorModelVersionsResponse' {nextToken} -> nextToken) (\s@ListDetectorModelVersionsResponse' {} a -> s {nextToken = a} :: ListDetectorModelVersionsResponse)++-- | The response's http status code.+listDetectorModelVersionsResponse_httpStatus :: Lens.Lens' ListDetectorModelVersionsResponse Prelude.Int+listDetectorModelVersionsResponse_httpStatus = Lens.lens (\ListDetectorModelVersionsResponse' {httpStatus} -> httpStatus) (\s@ListDetectorModelVersionsResponse' {} a -> s {httpStatus = a} :: ListDetectorModelVersionsResponse)++instance+  Prelude.NFData+    ListDetectorModelVersionsResponse+  where+  rnf ListDetectorModelVersionsResponse' {..} =+    Prelude.rnf detectorModelVersionSummaries+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTEvents/ListDetectorModels.hs view
@@ -0,0 +1,186 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.ListDetectorModels+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the detector models you have created. Only the metadata associated+-- with each detector model is returned.+module Amazonka.IoTEvents.ListDetectorModels+  ( -- * Creating a Request+    ListDetectorModels (..),+    newListDetectorModels,++    -- * Request Lenses+    listDetectorModels_maxResults,+    listDetectorModels_nextToken,++    -- * Destructuring the Response+    ListDetectorModelsResponse (..),+    newListDetectorModelsResponse,++    -- * Response Lenses+    listDetectorModelsResponse_detectorModelSummaries,+    listDetectorModelsResponse_nextToken,+    listDetectorModelsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListDetectorModels' smart constructor.+data ListDetectorModels = ListDetectorModels'+  { -- | The maximum number of results to be returned per request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token that you can use to return the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDetectorModels' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listDetectorModels_maxResults' - The maximum number of results to be returned per request.+--+-- 'nextToken', 'listDetectorModels_nextToken' - The token that you can use to return the next set of results.+newListDetectorModels ::+  ListDetectorModels+newListDetectorModels =+  ListDetectorModels'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of results to be returned per request.+listDetectorModels_maxResults :: Lens.Lens' ListDetectorModels (Prelude.Maybe Prelude.Natural)+listDetectorModels_maxResults = Lens.lens (\ListDetectorModels' {maxResults} -> maxResults) (\s@ListDetectorModels' {} a -> s {maxResults = a} :: ListDetectorModels)++-- | The token that you can use to return the next set of results.+listDetectorModels_nextToken :: Lens.Lens' ListDetectorModels (Prelude.Maybe Prelude.Text)+listDetectorModels_nextToken = Lens.lens (\ListDetectorModels' {nextToken} -> nextToken) (\s@ListDetectorModels' {} a -> s {nextToken = a} :: ListDetectorModels)++instance Core.AWSRequest ListDetectorModels where+  type+    AWSResponse ListDetectorModels =+      ListDetectorModelsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListDetectorModelsResponse'+            Prelude.<$> ( x+                            Data..?> "detectorModelSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListDetectorModels where+  hashWithSalt _salt ListDetectorModels' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListDetectorModels where+  rnf ListDetectorModels' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListDetectorModels where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ListDetectorModels where+  toPath = Prelude.const "/detector-models"++instance Data.ToQuery ListDetectorModels where+  toQuery ListDetectorModels' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListDetectorModelsResponse' smart constructor.+data ListDetectorModelsResponse = ListDetectorModelsResponse'+  { -- | Summary information about the detector models.+    detectorModelSummaries :: Prelude.Maybe [DetectorModelSummary],+    -- | The token that you can use to return the next set of results, or @null@+    -- if there are no more 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 'ListDetectorModelsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectorModelSummaries', 'listDetectorModelsResponse_detectorModelSummaries' - Summary information about the detector models.+--+-- 'nextToken', 'listDetectorModelsResponse_nextToken' - The token that you can use to return the next set of results, or @null@+-- if there are no more results.+--+-- 'httpStatus', 'listDetectorModelsResponse_httpStatus' - The response's http status code.+newListDetectorModelsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListDetectorModelsResponse+newListDetectorModelsResponse pHttpStatus_ =+  ListDetectorModelsResponse'+    { detectorModelSummaries =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Summary information about the detector models.+listDetectorModelsResponse_detectorModelSummaries :: Lens.Lens' ListDetectorModelsResponse (Prelude.Maybe [DetectorModelSummary])+listDetectorModelsResponse_detectorModelSummaries = Lens.lens (\ListDetectorModelsResponse' {detectorModelSummaries} -> detectorModelSummaries) (\s@ListDetectorModelsResponse' {} a -> s {detectorModelSummaries = a} :: ListDetectorModelsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token that you can use to return the next set of results, or @null@+-- if there are no more results.+listDetectorModelsResponse_nextToken :: Lens.Lens' ListDetectorModelsResponse (Prelude.Maybe Prelude.Text)+listDetectorModelsResponse_nextToken = Lens.lens (\ListDetectorModelsResponse' {nextToken} -> nextToken) (\s@ListDetectorModelsResponse' {} a -> s {nextToken = a} :: ListDetectorModelsResponse)++-- | The response's http status code.+listDetectorModelsResponse_httpStatus :: Lens.Lens' ListDetectorModelsResponse Prelude.Int+listDetectorModelsResponse_httpStatus = Lens.lens (\ListDetectorModelsResponse' {httpStatus} -> httpStatus) (\s@ListDetectorModelsResponse' {} a -> s {httpStatus = a} :: ListDetectorModelsResponse)++instance Prelude.NFData ListDetectorModelsResponse where+  rnf ListDetectorModelsResponse' {..} =+    Prelude.rnf detectorModelSummaries+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTEvents/ListInputRoutings.hs view
@@ -0,0 +1,206 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.ListInputRoutings+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists one or more input routings.+module Amazonka.IoTEvents.ListInputRoutings+  ( -- * Creating a Request+    ListInputRoutings (..),+    newListInputRoutings,++    -- * Request Lenses+    listInputRoutings_maxResults,+    listInputRoutings_nextToken,+    listInputRoutings_inputIdentifier,++    -- * Destructuring the Response+    ListInputRoutingsResponse (..),+    newListInputRoutingsResponse,++    -- * Response Lenses+    listInputRoutingsResponse_nextToken,+    listInputRoutingsResponse_routedResources,+    listInputRoutingsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListInputRoutings' smart constructor.+data ListInputRoutings = ListInputRoutings'+  { -- | The maximum number of results to be returned per request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token that you can use to return the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The identifer of the routed input.+    inputIdentifier :: InputIdentifier+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListInputRoutings' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listInputRoutings_maxResults' - The maximum number of results to be returned per request.+--+-- 'nextToken', 'listInputRoutings_nextToken' - The token that you can use to return the next set of results.+--+-- 'inputIdentifier', 'listInputRoutings_inputIdentifier' - The identifer of the routed input.+newListInputRoutings ::+  -- | 'inputIdentifier'+  InputIdentifier ->+  ListInputRoutings+newListInputRoutings pInputIdentifier_ =+  ListInputRoutings'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      inputIdentifier = pInputIdentifier_+    }++-- | The maximum number of results to be returned per request.+listInputRoutings_maxResults :: Lens.Lens' ListInputRoutings (Prelude.Maybe Prelude.Natural)+listInputRoutings_maxResults = Lens.lens (\ListInputRoutings' {maxResults} -> maxResults) (\s@ListInputRoutings' {} a -> s {maxResults = a} :: ListInputRoutings)++-- | The token that you can use to return the next set of results.+listInputRoutings_nextToken :: Lens.Lens' ListInputRoutings (Prelude.Maybe Prelude.Text)+listInputRoutings_nextToken = Lens.lens (\ListInputRoutings' {nextToken} -> nextToken) (\s@ListInputRoutings' {} a -> s {nextToken = a} :: ListInputRoutings)++-- | The identifer of the routed input.+listInputRoutings_inputIdentifier :: Lens.Lens' ListInputRoutings InputIdentifier+listInputRoutings_inputIdentifier = Lens.lens (\ListInputRoutings' {inputIdentifier} -> inputIdentifier) (\s@ListInputRoutings' {} a -> s {inputIdentifier = a} :: ListInputRoutings)++instance Core.AWSRequest ListInputRoutings where+  type+    AWSResponse ListInputRoutings =+      ListInputRoutingsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListInputRoutingsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> ( x+                            Data..?> "routedResources"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListInputRoutings where+  hashWithSalt _salt ListInputRoutings' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` inputIdentifier++instance Prelude.NFData ListInputRoutings where+  rnf ListInputRoutings' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf inputIdentifier++instance Data.ToHeaders ListInputRoutings where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON ListInputRoutings where+  toJSON ListInputRoutings' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just+              ("inputIdentifier" Data..= inputIdentifier)+          ]+      )++instance Data.ToPath ListInputRoutings where+  toPath = Prelude.const "/input-routings"++instance Data.ToQuery ListInputRoutings where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListInputRoutingsResponse' smart constructor.+data ListInputRoutingsResponse = ListInputRoutingsResponse'+  { -- | The token that you can use to return the next set of results, or @null@+    -- if there are no more results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Summary information about the routed resources.+    routedResources :: Prelude.Maybe [RoutedResource],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListInputRoutingsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listInputRoutingsResponse_nextToken' - The token that you can use to return the next set of results, or @null@+-- if there are no more results.+--+-- 'routedResources', 'listInputRoutingsResponse_routedResources' - Summary information about the routed resources.+--+-- 'httpStatus', 'listInputRoutingsResponse_httpStatus' - The response's http status code.+newListInputRoutingsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListInputRoutingsResponse+newListInputRoutingsResponse pHttpStatus_ =+  ListInputRoutingsResponse'+    { nextToken =+        Prelude.Nothing,+      routedResources = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The token that you can use to return the next set of results, or @null@+-- if there are no more results.+listInputRoutingsResponse_nextToken :: Lens.Lens' ListInputRoutingsResponse (Prelude.Maybe Prelude.Text)+listInputRoutingsResponse_nextToken = Lens.lens (\ListInputRoutingsResponse' {nextToken} -> nextToken) (\s@ListInputRoutingsResponse' {} a -> s {nextToken = a} :: ListInputRoutingsResponse)++-- | Summary information about the routed resources.+listInputRoutingsResponse_routedResources :: Lens.Lens' ListInputRoutingsResponse (Prelude.Maybe [RoutedResource])+listInputRoutingsResponse_routedResources = Lens.lens (\ListInputRoutingsResponse' {routedResources} -> routedResources) (\s@ListInputRoutingsResponse' {} a -> s {routedResources = a} :: ListInputRoutingsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listInputRoutingsResponse_httpStatus :: Lens.Lens' ListInputRoutingsResponse Prelude.Int+listInputRoutingsResponse_httpStatus = Lens.lens (\ListInputRoutingsResponse' {httpStatus} -> httpStatus) (\s@ListInputRoutingsResponse' {} a -> s {httpStatus = a} :: ListInputRoutingsResponse)++instance Prelude.NFData ListInputRoutingsResponse where+  rnf ListInputRoutingsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf routedResources+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTEvents/ListInputs.hs view
@@ -0,0 +1,180 @@+{-# 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.IoTEvents.ListInputs+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the inputs you have created.+module Amazonka.IoTEvents.ListInputs+  ( -- * Creating a Request+    ListInputs (..),+    newListInputs,++    -- * Request Lenses+    listInputs_maxResults,+    listInputs_nextToken,++    -- * Destructuring the Response+    ListInputsResponse (..),+    newListInputsResponse,++    -- * Response Lenses+    listInputsResponse_inputSummaries,+    listInputsResponse_nextToken,+    listInputsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListInputs' smart constructor.+data ListInputs = ListInputs'+  { -- | The maximum number of results to be returned per request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token that you can use to return the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListInputs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listInputs_maxResults' - The maximum number of results to be returned per request.+--+-- 'nextToken', 'listInputs_nextToken' - The token that you can use to return the next set of results.+newListInputs ::+  ListInputs+newListInputs =+  ListInputs'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of results to be returned per request.+listInputs_maxResults :: Lens.Lens' ListInputs (Prelude.Maybe Prelude.Natural)+listInputs_maxResults = Lens.lens (\ListInputs' {maxResults} -> maxResults) (\s@ListInputs' {} a -> s {maxResults = a} :: ListInputs)++-- | The token that you can use to return the next set of results.+listInputs_nextToken :: Lens.Lens' ListInputs (Prelude.Maybe Prelude.Text)+listInputs_nextToken = Lens.lens (\ListInputs' {nextToken} -> nextToken) (\s@ListInputs' {} a -> s {nextToken = a} :: ListInputs)++instance Core.AWSRequest ListInputs where+  type AWSResponse ListInputs = ListInputsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListInputsResponse'+            Prelude.<$> (x Data..?> "inputSummaries" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListInputs where+  hashWithSalt _salt ListInputs' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListInputs where+  rnf ListInputs' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListInputs where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ListInputs where+  toPath = Prelude.const "/inputs"++instance Data.ToQuery ListInputs where+  toQuery ListInputs' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListInputsResponse' smart constructor.+data ListInputsResponse = ListInputsResponse'+  { -- | Summary information about the inputs.+    inputSummaries :: Prelude.Maybe [InputSummary],+    -- | The token that you can use to return the next set of results, or @null@+    -- if there are no more 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 'ListInputsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'inputSummaries', 'listInputsResponse_inputSummaries' - Summary information about the inputs.+--+-- 'nextToken', 'listInputsResponse_nextToken' - The token that you can use to return the next set of results, or @null@+-- if there are no more results.+--+-- 'httpStatus', 'listInputsResponse_httpStatus' - The response's http status code.+newListInputsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListInputsResponse+newListInputsResponse pHttpStatus_ =+  ListInputsResponse'+    { inputSummaries =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Summary information about the inputs.+listInputsResponse_inputSummaries :: Lens.Lens' ListInputsResponse (Prelude.Maybe [InputSummary])+listInputsResponse_inputSummaries = Lens.lens (\ListInputsResponse' {inputSummaries} -> inputSummaries) (\s@ListInputsResponse' {} a -> s {inputSummaries = a} :: ListInputsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token that you can use to return the next set of results, or @null@+-- if there are no more results.+listInputsResponse_nextToken :: Lens.Lens' ListInputsResponse (Prelude.Maybe Prelude.Text)+listInputsResponse_nextToken = Lens.lens (\ListInputsResponse' {nextToken} -> nextToken) (\s@ListInputsResponse' {} a -> s {nextToken = a} :: ListInputsResponse)++-- | The response's http status code.+listInputsResponse_httpStatus :: Lens.Lens' ListInputsResponse Prelude.Int+listInputsResponse_httpStatus = Lens.lens (\ListInputsResponse' {httpStatus} -> httpStatus) (\s@ListInputsResponse' {} a -> s {httpStatus = a} :: ListInputsResponse)++instance Prelude.NFData ListInputsResponse where+  rnf ListInputsResponse' {..} =+    Prelude.rnf inputSummaries+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTEvents/ListTagsForResource.hs view
@@ -0,0 +1,151 @@+{-# 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.IoTEvents.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)+--+-- Lists the tags (metadata) you have assigned to the resource.+module Amazonka.IoTEvents.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.IoTEvents.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 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 ARN of the resource.+newListTagsForResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceArn_ =+  ListTagsForResource' {resourceArn = pResourceArn_}++-- | The 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 = Prelude.const "/tags"++instance Data.ToQuery ListTagsForResource where+  toQuery ListTagsForResource' {..} =+    Prelude.mconcat ["resourceArn" Data.=: resourceArn]++-- | /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+  { -- | The list of tags assigned to the resource.+    tags :: Prelude.Maybe [Tag],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'listTagsForResourceResponse_tags' - The list of tags assigned to the resource.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The list of tags assigned to the resource.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe [Tag])+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)++instance Prelude.NFData ListTagsForResourceResponse where+  rnf ListTagsForResourceResponse' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTEvents/PutLoggingOptions.hs view
@@ -0,0 +1,133 @@+{-# 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.IoTEvents.PutLoggingOptions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Sets or updates the AWS IoT Events logging options.+--+-- If you update the value of any @loggingOptions@ field, it takes up to+-- one minute for the change to take effect. If you change the policy+-- attached to the role you specified in the @roleArn@ field (for example,+-- to correct an invalid policy), it takes up to five minutes for that+-- change to take effect.+module Amazonka.IoTEvents.PutLoggingOptions+  ( -- * Creating a Request+    PutLoggingOptions (..),+    newPutLoggingOptions,++    -- * Request Lenses+    putLoggingOptions_loggingOptions,++    -- * Destructuring the Response+    PutLoggingOptionsResponse (..),+    newPutLoggingOptionsResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutLoggingOptions' smart constructor.+data PutLoggingOptions = PutLoggingOptions'+  { -- | The new values of the AWS IoT Events logging options.+    loggingOptions :: LoggingOptions+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutLoggingOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'loggingOptions', 'putLoggingOptions_loggingOptions' - The new values of the AWS IoT Events logging options.+newPutLoggingOptions ::+  -- | 'loggingOptions'+  LoggingOptions ->+  PutLoggingOptions+newPutLoggingOptions pLoggingOptions_ =+  PutLoggingOptions'+    { loggingOptions =+        pLoggingOptions_+    }++-- | The new values of the AWS IoT Events logging options.+putLoggingOptions_loggingOptions :: Lens.Lens' PutLoggingOptions LoggingOptions+putLoggingOptions_loggingOptions = Lens.lens (\PutLoggingOptions' {loggingOptions} -> loggingOptions) (\s@PutLoggingOptions' {} a -> s {loggingOptions = a} :: PutLoggingOptions)++instance Core.AWSRequest PutLoggingOptions where+  type+    AWSResponse PutLoggingOptions =+      PutLoggingOptionsResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveNull PutLoggingOptionsResponse'++instance Prelude.Hashable PutLoggingOptions where+  hashWithSalt _salt PutLoggingOptions' {..} =+    _salt `Prelude.hashWithSalt` loggingOptions++instance Prelude.NFData PutLoggingOptions where+  rnf PutLoggingOptions' {..} =+    Prelude.rnf loggingOptions++instance Data.ToHeaders PutLoggingOptions where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON PutLoggingOptions where+  toJSON PutLoggingOptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("loggingOptions" Data..= loggingOptions)+          ]+      )++instance Data.ToPath PutLoggingOptions where+  toPath = Prelude.const "/logging"++instance Data.ToQuery PutLoggingOptions where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutLoggingOptionsResponse' smart constructor.+data PutLoggingOptionsResponse = PutLoggingOptionsResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutLoggingOptionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newPutLoggingOptionsResponse ::+  PutLoggingOptionsResponse+newPutLoggingOptionsResponse =+  PutLoggingOptionsResponse'++instance Prelude.NFData PutLoggingOptionsResponse where+  rnf _ = ()
+ gen/Amazonka/IoTEvents/StartDetectorModelAnalysis.hs view
@@ -0,0 +1,170 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.StartDetectorModelAnalysis+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Performs an analysis of your detector model. For more information, see+-- <https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-analyze-api.html Troubleshooting a detector model>+-- in the /AWS IoT Events Developer Guide/.+module Amazonka.IoTEvents.StartDetectorModelAnalysis+  ( -- * Creating a Request+    StartDetectorModelAnalysis (..),+    newStartDetectorModelAnalysis,++    -- * Request Lenses+    startDetectorModelAnalysis_detectorModelDefinition,++    -- * Destructuring the Response+    StartDetectorModelAnalysisResponse (..),+    newStartDetectorModelAnalysisResponse,++    -- * Response Lenses+    startDetectorModelAnalysisResponse_analysisId,+    startDetectorModelAnalysisResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartDetectorModelAnalysis' smart constructor.+data StartDetectorModelAnalysis = StartDetectorModelAnalysis'+  { detectorModelDefinition :: DetectorModelDefinition+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartDetectorModelAnalysis' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectorModelDefinition', 'startDetectorModelAnalysis_detectorModelDefinition' - Undocumented member.+newStartDetectorModelAnalysis ::+  -- | 'detectorModelDefinition'+  DetectorModelDefinition ->+  StartDetectorModelAnalysis+newStartDetectorModelAnalysis+  pDetectorModelDefinition_ =+    StartDetectorModelAnalysis'+      { detectorModelDefinition =+          pDetectorModelDefinition_+      }++-- | Undocumented member.+startDetectorModelAnalysis_detectorModelDefinition :: Lens.Lens' StartDetectorModelAnalysis DetectorModelDefinition+startDetectorModelAnalysis_detectorModelDefinition = Lens.lens (\StartDetectorModelAnalysis' {detectorModelDefinition} -> detectorModelDefinition) (\s@StartDetectorModelAnalysis' {} a -> s {detectorModelDefinition = a} :: StartDetectorModelAnalysis)++instance Core.AWSRequest StartDetectorModelAnalysis where+  type+    AWSResponse StartDetectorModelAnalysis =+      StartDetectorModelAnalysisResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StartDetectorModelAnalysisResponse'+            Prelude.<$> (x Data..?> "analysisId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable StartDetectorModelAnalysis where+  hashWithSalt _salt StartDetectorModelAnalysis' {..} =+    _salt+      `Prelude.hashWithSalt` detectorModelDefinition++instance Prelude.NFData StartDetectorModelAnalysis where+  rnf StartDetectorModelAnalysis' {..} =+    Prelude.rnf detectorModelDefinition++instance Data.ToHeaders StartDetectorModelAnalysis where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON StartDetectorModelAnalysis where+  toJSON StartDetectorModelAnalysis' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "detectorModelDefinition"+                  Data..= detectorModelDefinition+              )+          ]+      )++instance Data.ToPath StartDetectorModelAnalysis where+  toPath = Prelude.const "/analysis/detector-models/"++instance Data.ToQuery StartDetectorModelAnalysis where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartDetectorModelAnalysisResponse' smart constructor.+data StartDetectorModelAnalysisResponse = StartDetectorModelAnalysisResponse'+  { -- | The ID that you can use to retrieve the analysis result.+    analysisId :: 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 'StartDetectorModelAnalysisResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'analysisId', 'startDetectorModelAnalysisResponse_analysisId' - The ID that you can use to retrieve the analysis result.+--+-- 'httpStatus', 'startDetectorModelAnalysisResponse_httpStatus' - The response's http status code.+newStartDetectorModelAnalysisResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StartDetectorModelAnalysisResponse+newStartDetectorModelAnalysisResponse pHttpStatus_ =+  StartDetectorModelAnalysisResponse'+    { analysisId =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ID that you can use to retrieve the analysis result.+startDetectorModelAnalysisResponse_analysisId :: Lens.Lens' StartDetectorModelAnalysisResponse (Prelude.Maybe Prelude.Text)+startDetectorModelAnalysisResponse_analysisId = Lens.lens (\StartDetectorModelAnalysisResponse' {analysisId} -> analysisId) (\s@StartDetectorModelAnalysisResponse' {} a -> s {analysisId = a} :: StartDetectorModelAnalysisResponse)++-- | The response's http status code.+startDetectorModelAnalysisResponse_httpStatus :: Lens.Lens' StartDetectorModelAnalysisResponse Prelude.Int+startDetectorModelAnalysisResponse_httpStatus = Lens.lens (\StartDetectorModelAnalysisResponse' {httpStatus} -> httpStatus) (\s@StartDetectorModelAnalysisResponse' {} a -> s {httpStatus = a} :: StartDetectorModelAnalysisResponse)++instance+  Prelude.NFData+    StartDetectorModelAnalysisResponse+  where+  rnf StartDetectorModelAnalysisResponse' {..} =+    Prelude.rnf analysisId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTEvents/TagResource.hs view
@@ -0,0 +1,156 @@+{-# 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.IoTEvents.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 to or modifies the tags of the given resource. Tags are metadata+-- that can be used to manage a resource.+module Amazonka.IoTEvents.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.IoTEvents.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 ARN of the resource.+    resourceArn :: Prelude.Text,+    -- | The new or modified tags for the resource.+    tags :: [Tag]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'tagResource_resourceArn' - The ARN of the resource.+--+-- 'tags', 'tagResource_tags' - The new or modified tags for the resource.+newTagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  TagResource+newTagResource pResourceArn_ =+  TagResource'+    { resourceArn = pResourceArn_,+      tags = Prelude.mempty+    }++-- | The ARN of the resource.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | The new or modified tags for the resource.+tagResource_tags :: Lens.Lens' TagResource [Tag]+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.coerced++instance Core.AWSRequest TagResource where+  type AWSResponse TagResource = TagResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          TagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable TagResource where+  hashWithSalt _salt TagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` tags++instance Prelude.NFData TagResource where+  rnf TagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders TagResource where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON TagResource where+  toJSON TagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("tags" Data..= tags)]+      )++instance Data.ToPath TagResource where+  toPath = Prelude.const "/tags"++instance Data.ToQuery TagResource where+  toQuery TagResource' {..} =+    Prelude.mconcat ["resourceArn" Data.=: resourceArn]++-- | /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/IoTEvents/Types.hs view
@@ -0,0 +1,709 @@+{-# 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.IoTEvents.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.IoTEvents.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _InternalFailureException,+    _InvalidRequestException,+    _LimitExceededException,+    _ResourceAlreadyExistsException,+    _ResourceInUseException,+    _ResourceNotFoundException,+    _ServiceUnavailableException,+    _ThrottlingException,+    _UnsupportedOperationException,++    -- * AlarmModelVersionStatus+    AlarmModelVersionStatus (..),++    -- * AnalysisResultLevel+    AnalysisResultLevel (..),++    -- * AnalysisStatus+    AnalysisStatus (..),++    -- * ComparisonOperator+    ComparisonOperator (..),++    -- * DetectorModelVersionStatus+    DetectorModelVersionStatus (..),++    -- * EvaluationMethod+    EvaluationMethod (..),++    -- * InputStatus+    InputStatus (..),++    -- * LoggingLevel+    LoggingLevel (..),++    -- * PayloadType+    PayloadType (..),++    -- * AcknowledgeFlow+    AcknowledgeFlow (..),+    newAcknowledgeFlow,+    acknowledgeFlow_enabled,++    -- * Action+    Action (..),+    newAction,+    action_clearTimer,+    action_dynamoDB,+    action_dynamoDBv2,+    action_firehose,+    action_iotEvents,+    action_iotSiteWise,+    action_iotTopicPublish,+    action_lambda,+    action_resetTimer,+    action_setTimer,+    action_setVariable,+    action_sns,+    action_sqs,++    -- * AlarmAction+    AlarmAction (..),+    newAlarmAction,+    alarmAction_dynamoDB,+    alarmAction_dynamoDBv2,+    alarmAction_firehose,+    alarmAction_iotEvents,+    alarmAction_iotSiteWise,+    alarmAction_iotTopicPublish,+    alarmAction_lambda,+    alarmAction_sns,+    alarmAction_sqs,++    -- * AlarmCapabilities+    AlarmCapabilities (..),+    newAlarmCapabilities,+    alarmCapabilities_acknowledgeFlow,+    alarmCapabilities_initializationConfiguration,++    -- * AlarmEventActions+    AlarmEventActions (..),+    newAlarmEventActions,+    alarmEventActions_alarmActions,++    -- * AlarmModelSummary+    AlarmModelSummary (..),+    newAlarmModelSummary,+    alarmModelSummary_alarmModelDescription,+    alarmModelSummary_alarmModelName,+    alarmModelSummary_creationTime,++    -- * AlarmModelVersionSummary+    AlarmModelVersionSummary (..),+    newAlarmModelVersionSummary,+    alarmModelVersionSummary_alarmModelArn,+    alarmModelVersionSummary_alarmModelName,+    alarmModelVersionSummary_alarmModelVersion,+    alarmModelVersionSummary_creationTime,+    alarmModelVersionSummary_lastUpdateTime,+    alarmModelVersionSummary_roleArn,+    alarmModelVersionSummary_status,+    alarmModelVersionSummary_statusMessage,++    -- * AlarmNotification+    AlarmNotification (..),+    newAlarmNotification,+    alarmNotification_notificationActions,++    -- * AlarmRule+    AlarmRule (..),+    newAlarmRule,+    alarmRule_simpleRule,++    -- * AnalysisResult+    AnalysisResult (..),+    newAnalysisResult,+    analysisResult_level,+    analysisResult_locations,+    analysisResult_message,+    analysisResult_type,++    -- * AnalysisResultLocation+    AnalysisResultLocation (..),+    newAnalysisResultLocation,+    analysisResultLocation_path,++    -- * AssetPropertyTimestamp+    AssetPropertyTimestamp (..),+    newAssetPropertyTimestamp,+    assetPropertyTimestamp_offsetInNanos,+    assetPropertyTimestamp_timeInSeconds,++    -- * AssetPropertyValue+    AssetPropertyValue (..),+    newAssetPropertyValue,+    assetPropertyValue_quality,+    assetPropertyValue_timestamp,+    assetPropertyValue_value,++    -- * AssetPropertyVariant+    AssetPropertyVariant (..),+    newAssetPropertyVariant,+    assetPropertyVariant_booleanValue,+    assetPropertyVariant_doubleValue,+    assetPropertyVariant_integerValue,+    assetPropertyVariant_stringValue,++    -- * Attribute+    Attribute (..),+    newAttribute,+    attribute_jsonPath,++    -- * ClearTimerAction+    ClearTimerAction (..),+    newClearTimerAction,+    clearTimerAction_timerName,++    -- * DetectorDebugOption+    DetectorDebugOption (..),+    newDetectorDebugOption,+    detectorDebugOption_keyValue,+    detectorDebugOption_detectorModelName,++    -- * DetectorModel+    DetectorModel (..),+    newDetectorModel,+    detectorModel_detectorModelConfiguration,+    detectorModel_detectorModelDefinition,++    -- * DetectorModelConfiguration+    DetectorModelConfiguration (..),+    newDetectorModelConfiguration,+    detectorModelConfiguration_creationTime,+    detectorModelConfiguration_detectorModelArn,+    detectorModelConfiguration_detectorModelDescription,+    detectorModelConfiguration_detectorModelName,+    detectorModelConfiguration_detectorModelVersion,+    detectorModelConfiguration_evaluationMethod,+    detectorModelConfiguration_key,+    detectorModelConfiguration_lastUpdateTime,+    detectorModelConfiguration_roleArn,+    detectorModelConfiguration_status,++    -- * DetectorModelDefinition+    DetectorModelDefinition (..),+    newDetectorModelDefinition,+    detectorModelDefinition_states,+    detectorModelDefinition_initialStateName,++    -- * DetectorModelSummary+    DetectorModelSummary (..),+    newDetectorModelSummary,+    detectorModelSummary_creationTime,+    detectorModelSummary_detectorModelDescription,+    detectorModelSummary_detectorModelName,++    -- * DetectorModelVersionSummary+    DetectorModelVersionSummary (..),+    newDetectorModelVersionSummary,+    detectorModelVersionSummary_creationTime,+    detectorModelVersionSummary_detectorModelArn,+    detectorModelVersionSummary_detectorModelName,+    detectorModelVersionSummary_detectorModelVersion,+    detectorModelVersionSummary_evaluationMethod,+    detectorModelVersionSummary_lastUpdateTime,+    detectorModelVersionSummary_roleArn,+    detectorModelVersionSummary_status,++    -- * DynamoDBAction+    DynamoDBAction (..),+    newDynamoDBAction,+    dynamoDBAction_hashKeyType,+    dynamoDBAction_operation,+    dynamoDBAction_payload,+    dynamoDBAction_payloadField,+    dynamoDBAction_rangeKeyField,+    dynamoDBAction_rangeKeyType,+    dynamoDBAction_rangeKeyValue,+    dynamoDBAction_hashKeyField,+    dynamoDBAction_hashKeyValue,+    dynamoDBAction_tableName,++    -- * DynamoDBv2Action+    DynamoDBv2Action (..),+    newDynamoDBv2Action,+    dynamoDBv2Action_payload,+    dynamoDBv2Action_tableName,++    -- * EmailConfiguration+    EmailConfiguration (..),+    newEmailConfiguration,+    emailConfiguration_content,+    emailConfiguration_from,+    emailConfiguration_recipients,++    -- * EmailContent+    EmailContent (..),+    newEmailContent,+    emailContent_additionalMessage,+    emailContent_subject,++    -- * EmailRecipients+    EmailRecipients (..),+    newEmailRecipients,+    emailRecipients_to,++    -- * Event+    Event (..),+    newEvent,+    event_actions,+    event_condition,+    event_eventName,++    -- * FirehoseAction+    FirehoseAction (..),+    newFirehoseAction,+    firehoseAction_payload,+    firehoseAction_separator,+    firehoseAction_deliveryStreamName,++    -- * InitializationConfiguration+    InitializationConfiguration (..),+    newInitializationConfiguration,+    initializationConfiguration_disabledOnInitialization,++    -- * Input+    Input (..),+    newInput,+    input_inputConfiguration,+    input_inputDefinition,++    -- * InputConfiguration+    InputConfiguration (..),+    newInputConfiguration,+    inputConfiguration_inputDescription,+    inputConfiguration_inputName,+    inputConfiguration_inputArn,+    inputConfiguration_creationTime,+    inputConfiguration_lastUpdateTime,+    inputConfiguration_status,++    -- * InputDefinition+    InputDefinition (..),+    newInputDefinition,+    inputDefinition_attributes,++    -- * InputIdentifier+    InputIdentifier (..),+    newInputIdentifier,+    inputIdentifier_iotEventsInputIdentifier,+    inputIdentifier_iotSiteWiseInputIdentifier,++    -- * InputSummary+    InputSummary (..),+    newInputSummary,+    inputSummary_creationTime,+    inputSummary_inputArn,+    inputSummary_inputDescription,+    inputSummary_inputName,+    inputSummary_lastUpdateTime,+    inputSummary_status,++    -- * IotEventsAction+    IotEventsAction (..),+    newIotEventsAction,+    iotEventsAction_payload,+    iotEventsAction_inputName,++    -- * IotEventsInputIdentifier+    IotEventsInputIdentifier (..),+    newIotEventsInputIdentifier,+    iotEventsInputIdentifier_inputName,++    -- * IotSiteWiseAction+    IotSiteWiseAction (..),+    newIotSiteWiseAction,+    iotSiteWiseAction_assetId,+    iotSiteWiseAction_entryId,+    iotSiteWiseAction_propertyAlias,+    iotSiteWiseAction_propertyId,+    iotSiteWiseAction_propertyValue,++    -- * IotSiteWiseAssetModelPropertyIdentifier+    IotSiteWiseAssetModelPropertyIdentifier (..),+    newIotSiteWiseAssetModelPropertyIdentifier,+    iotSiteWiseAssetModelPropertyIdentifier_assetModelId,+    iotSiteWiseAssetModelPropertyIdentifier_propertyId,++    -- * IotSiteWiseInputIdentifier+    IotSiteWiseInputIdentifier (..),+    newIotSiteWiseInputIdentifier,+    iotSiteWiseInputIdentifier_iotSiteWiseAssetModelPropertyIdentifier,++    -- * IotTopicPublishAction+    IotTopicPublishAction (..),+    newIotTopicPublishAction,+    iotTopicPublishAction_payload,+    iotTopicPublishAction_mqttTopic,++    -- * LambdaAction+    LambdaAction (..),+    newLambdaAction,+    lambdaAction_payload,+    lambdaAction_functionArn,++    -- * LoggingOptions+    LoggingOptions (..),+    newLoggingOptions,+    loggingOptions_detectorDebugOptions,+    loggingOptions_roleArn,+    loggingOptions_level,+    loggingOptions_enabled,++    -- * NotificationAction+    NotificationAction (..),+    newNotificationAction,+    notificationAction_emailConfigurations,+    notificationAction_smsConfigurations,+    notificationAction_action,++    -- * NotificationTargetActions+    NotificationTargetActions (..),+    newNotificationTargetActions,+    notificationTargetActions_lambdaAction,++    -- * OnEnterLifecycle+    OnEnterLifecycle (..),+    newOnEnterLifecycle,+    onEnterLifecycle_events,++    -- * OnExitLifecycle+    OnExitLifecycle (..),+    newOnExitLifecycle,+    onExitLifecycle_events,++    -- * OnInputLifecycle+    OnInputLifecycle (..),+    newOnInputLifecycle,+    onInputLifecycle_events,+    onInputLifecycle_transitionEvents,++    -- * Payload+    Payload (..),+    newPayload,+    payload_contentExpression,+    payload_type,++    -- * RecipientDetail+    RecipientDetail (..),+    newRecipientDetail,+    recipientDetail_ssoIdentity,++    -- * ResetTimerAction+    ResetTimerAction (..),+    newResetTimerAction,+    resetTimerAction_timerName,++    -- * RoutedResource+    RoutedResource (..),+    newRoutedResource,+    routedResource_arn,+    routedResource_name,++    -- * SMSConfiguration+    SMSConfiguration (..),+    newSMSConfiguration,+    sMSConfiguration_additionalMessage,+    sMSConfiguration_senderId,+    sMSConfiguration_recipients,++    -- * SNSTopicPublishAction+    SNSTopicPublishAction (..),+    newSNSTopicPublishAction,+    sNSTopicPublishAction_payload,+    sNSTopicPublishAction_targetArn,++    -- * SSOIdentity+    SSOIdentity (..),+    newSSOIdentity,+    sSOIdentity_userId,+    sSOIdentity_identityStoreId,++    -- * SetTimerAction+    SetTimerAction (..),+    newSetTimerAction,+    setTimerAction_durationExpression,+    setTimerAction_seconds,+    setTimerAction_timerName,++    -- * SetVariableAction+    SetVariableAction (..),+    newSetVariableAction,+    setVariableAction_variableName,+    setVariableAction_value,++    -- * SimpleRule+    SimpleRule (..),+    newSimpleRule,+    simpleRule_inputProperty,+    simpleRule_comparisonOperator,+    simpleRule_threshold,++    -- * SqsAction+    SqsAction (..),+    newSqsAction,+    sqsAction_payload,+    sqsAction_useBase64,+    sqsAction_queueUrl,++    -- * State+    State (..),+    newState,+    state_onEnter,+    state_onExit,+    state_onInput,+    state_stateName,++    -- * Tag+    Tag (..),+    newTag,+    tag_key,+    tag_value,++    -- * TransitionEvent+    TransitionEvent (..),+    newTransitionEvent,+    transitionEvent_actions,+    transitionEvent_eventName,+    transitionEvent_condition,+    transitionEvent_nextState,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.IoTEvents.Types.AcknowledgeFlow+import Amazonka.IoTEvents.Types.Action+import Amazonka.IoTEvents.Types.AlarmAction+import Amazonka.IoTEvents.Types.AlarmCapabilities+import Amazonka.IoTEvents.Types.AlarmEventActions+import Amazonka.IoTEvents.Types.AlarmModelSummary+import Amazonka.IoTEvents.Types.AlarmModelVersionStatus+import Amazonka.IoTEvents.Types.AlarmModelVersionSummary+import Amazonka.IoTEvents.Types.AlarmNotification+import Amazonka.IoTEvents.Types.AlarmRule+import Amazonka.IoTEvents.Types.AnalysisResult+import Amazonka.IoTEvents.Types.AnalysisResultLevel+import Amazonka.IoTEvents.Types.AnalysisResultLocation+import Amazonka.IoTEvents.Types.AnalysisStatus+import Amazonka.IoTEvents.Types.AssetPropertyTimestamp+import Amazonka.IoTEvents.Types.AssetPropertyValue+import Amazonka.IoTEvents.Types.AssetPropertyVariant+import Amazonka.IoTEvents.Types.Attribute+import Amazonka.IoTEvents.Types.ClearTimerAction+import Amazonka.IoTEvents.Types.ComparisonOperator+import Amazonka.IoTEvents.Types.DetectorDebugOption+import Amazonka.IoTEvents.Types.DetectorModel+import Amazonka.IoTEvents.Types.DetectorModelConfiguration+import Amazonka.IoTEvents.Types.DetectorModelDefinition+import Amazonka.IoTEvents.Types.DetectorModelSummary+import Amazonka.IoTEvents.Types.DetectorModelVersionStatus+import Amazonka.IoTEvents.Types.DetectorModelVersionSummary+import Amazonka.IoTEvents.Types.DynamoDBAction+import Amazonka.IoTEvents.Types.DynamoDBv2Action+import Amazonka.IoTEvents.Types.EmailConfiguration+import Amazonka.IoTEvents.Types.EmailContent+import Amazonka.IoTEvents.Types.EmailRecipients+import Amazonka.IoTEvents.Types.EvaluationMethod+import Amazonka.IoTEvents.Types.Event+import Amazonka.IoTEvents.Types.FirehoseAction+import Amazonka.IoTEvents.Types.InitializationConfiguration+import Amazonka.IoTEvents.Types.Input+import Amazonka.IoTEvents.Types.InputConfiguration+import Amazonka.IoTEvents.Types.InputDefinition+import Amazonka.IoTEvents.Types.InputIdentifier+import Amazonka.IoTEvents.Types.InputStatus+import Amazonka.IoTEvents.Types.InputSummary+import Amazonka.IoTEvents.Types.IotEventsAction+import Amazonka.IoTEvents.Types.IotEventsInputIdentifier+import Amazonka.IoTEvents.Types.IotSiteWiseAction+import Amazonka.IoTEvents.Types.IotSiteWiseAssetModelPropertyIdentifier+import Amazonka.IoTEvents.Types.IotSiteWiseInputIdentifier+import Amazonka.IoTEvents.Types.IotTopicPublishAction+import Amazonka.IoTEvents.Types.LambdaAction+import Amazonka.IoTEvents.Types.LoggingLevel+import Amazonka.IoTEvents.Types.LoggingOptions+import Amazonka.IoTEvents.Types.NotificationAction+import Amazonka.IoTEvents.Types.NotificationTargetActions+import Amazonka.IoTEvents.Types.OnEnterLifecycle+import Amazonka.IoTEvents.Types.OnExitLifecycle+import Amazonka.IoTEvents.Types.OnInputLifecycle+import Amazonka.IoTEvents.Types.Payload+import Amazonka.IoTEvents.Types.PayloadType+import Amazonka.IoTEvents.Types.RecipientDetail+import Amazonka.IoTEvents.Types.ResetTimerAction+import Amazonka.IoTEvents.Types.RoutedResource+import Amazonka.IoTEvents.Types.SMSConfiguration+import Amazonka.IoTEvents.Types.SNSTopicPublishAction+import Amazonka.IoTEvents.Types.SSOIdentity+import Amazonka.IoTEvents.Types.SetTimerAction+import Amazonka.IoTEvents.Types.SetVariableAction+import Amazonka.IoTEvents.Types.SimpleRule+import Amazonka.IoTEvents.Types.SqsAction+import Amazonka.IoTEvents.Types.State+import Amazonka.IoTEvents.Types.Tag+import Amazonka.IoTEvents.Types.TransitionEvent+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2018-07-27@ of the Amazon IoT Events SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "IoTEvents",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "iotevents",+      Core.signingName = "iotevents",+      Core.version = "2018-07-27",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "IoTEvents",+      Core.retry = retry+    }+  where+    retry =+      Core.Exponential+        { Core.base = 5.0e-2,+          Core.growth = 2,+          Core.attempts = 5,+          Core.check = check+        }+    check e+      | Lens.has (Core.hasStatus 502) e =+          Prelude.Just "bad_gateway"+      | Lens.has (Core.hasStatus 504) e =+          Prelude.Just "gateway_timeout"+      | Lens.has (Core.hasStatus 500) e =+          Prelude.Just "general_server_error"+      | Lens.has (Core.hasStatus 509) e =+          Prelude.Just "limit_exceeded"+      | Lens.has+          ( Core.hasCode "RequestThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "request_throttled_exception"+      | Lens.has (Core.hasStatus 503) e =+          Prelude.Just "service_unavailable"+      | Lens.has+          ( Core.hasCode "ThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttled_exception"+      | Lens.has+          ( Core.hasCode "Throttling"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling"+      | Lens.has+          ( Core.hasCode "ThrottlingException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling_exception"+      | Lens.has+          ( Core.hasCode+              "ProvisionedThroughputExceededException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throughput_exceeded"+      | Lens.has (Core.hasStatus 429) e =+          Prelude.Just "too_many_requests"+      | Prelude.otherwise = Prelude.Nothing++-- | An internal failure occurred.+_InternalFailureException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalFailureException =+  Core._MatchServiceError+    defaultService+    "InternalFailureException"+    Prelude.. Core.hasStatus 500++-- | The request was invalid.+_InvalidRequestException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidRequestException =+  Core._MatchServiceError+    defaultService+    "InvalidRequestException"+    Prelude.. Core.hasStatus 400++-- | A limit was exceeded.+_LimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_LimitExceededException =+  Core._MatchServiceError+    defaultService+    "LimitExceededException"+    Prelude.. Core.hasStatus 410++-- | The resource already exists.+_ResourceAlreadyExistsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceAlreadyExistsException =+  Core._MatchServiceError+    defaultService+    "ResourceAlreadyExistsException"+    Prelude.. Core.hasStatus 409++-- | The resource is in use.+_ResourceInUseException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceInUseException =+  Core._MatchServiceError+    defaultService+    "ResourceInUseException"+    Prelude.. Core.hasStatus 409++-- | The resource was not found.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"+    Prelude.. Core.hasStatus 404++-- | The service is currently unavailable.+_ServiceUnavailableException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceUnavailableException =+  Core._MatchServiceError+    defaultService+    "ServiceUnavailableException"+    Prelude.. Core.hasStatus 503++-- | The request could not be completed due to throttling.+_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottlingException =+  Core._MatchServiceError+    defaultService+    "ThrottlingException"+    Prelude.. Core.hasStatus 429++-- | The requested operation is not supported.+_UnsupportedOperationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_UnsupportedOperationException =+  Core._MatchServiceError+    defaultService+    "UnsupportedOperationException"+    Prelude.. Core.hasStatus 501
+ gen/Amazonka/IoTEvents/Types/AcknowledgeFlow.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.IoTEvents.Types.AcknowledgeFlow+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.AcknowledgeFlow where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Specifies whether to get notified for alarm state changes.+--+-- /See:/ 'newAcknowledgeFlow' smart constructor.+data AcknowledgeFlow = AcknowledgeFlow'+  { -- | The value must be @TRUE@ or @FALSE@. If @TRUE@, you receive a+    -- notification when the alarm state changes. You must choose to+    -- acknowledge the notification before the alarm state can return to+    -- @NORMAL@. If @FALSE@, you won\'t receive notifications. The alarm+    -- automatically changes to the @NORMAL@ state when the input property+    -- value returns to the specified range.+    enabled :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AcknowledgeFlow' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'enabled', 'acknowledgeFlow_enabled' - The value must be @TRUE@ or @FALSE@. If @TRUE@, you receive a+-- notification when the alarm state changes. You must choose to+-- acknowledge the notification before the alarm state can return to+-- @NORMAL@. If @FALSE@, you won\'t receive notifications. The alarm+-- automatically changes to the @NORMAL@ state when the input property+-- value returns to the specified range.+newAcknowledgeFlow ::+  -- | 'enabled'+  Prelude.Bool ->+  AcknowledgeFlow+newAcknowledgeFlow pEnabled_ =+  AcknowledgeFlow' {enabled = pEnabled_}++-- | The value must be @TRUE@ or @FALSE@. If @TRUE@, you receive a+-- notification when the alarm state changes. You must choose to+-- acknowledge the notification before the alarm state can return to+-- @NORMAL@. If @FALSE@, you won\'t receive notifications. The alarm+-- automatically changes to the @NORMAL@ state when the input property+-- value returns to the specified range.+acknowledgeFlow_enabled :: Lens.Lens' AcknowledgeFlow Prelude.Bool+acknowledgeFlow_enabled = Lens.lens (\AcknowledgeFlow' {enabled} -> enabled) (\s@AcknowledgeFlow' {} a -> s {enabled = a} :: AcknowledgeFlow)++instance Data.FromJSON AcknowledgeFlow where+  parseJSON =+    Data.withObject+      "AcknowledgeFlow"+      ( \x ->+          AcknowledgeFlow' Prelude.<$> (x Data..: "enabled")+      )++instance Prelude.Hashable AcknowledgeFlow where+  hashWithSalt _salt AcknowledgeFlow' {..} =+    _salt `Prelude.hashWithSalt` enabled++instance Prelude.NFData AcknowledgeFlow where+  rnf AcknowledgeFlow' {..} = Prelude.rnf enabled++instance Data.ToJSON AcknowledgeFlow where+  toJSON AcknowledgeFlow' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("enabled" Data..= enabled)]+      )
+ gen/Amazonka/IoTEvents/Types/Action.hs view
@@ -0,0 +1,316 @@+{-# 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.IoTEvents.Types.Action+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.Action where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.ClearTimerAction+import Amazonka.IoTEvents.Types.DynamoDBAction+import Amazonka.IoTEvents.Types.DynamoDBv2Action+import Amazonka.IoTEvents.Types.FirehoseAction+import Amazonka.IoTEvents.Types.IotEventsAction+import Amazonka.IoTEvents.Types.IotSiteWiseAction+import Amazonka.IoTEvents.Types.IotTopicPublishAction+import Amazonka.IoTEvents.Types.LambdaAction+import Amazonka.IoTEvents.Types.ResetTimerAction+import Amazonka.IoTEvents.Types.SNSTopicPublishAction+import Amazonka.IoTEvents.Types.SetTimerAction+import Amazonka.IoTEvents.Types.SetVariableAction+import Amazonka.IoTEvents.Types.SqsAction+import qualified Amazonka.Prelude as Prelude++-- | An action to be performed when the @condition@ is TRUE.+--+-- /See:/ 'newAction' smart constructor.+data Action = Action'+  { -- | Information needed to clear the timer.+    clearTimer :: Prelude.Maybe ClearTimerAction,+    -- | Writes to the DynamoDB table that you created. The default action+    -- payload contains all attribute-value pairs that have the information+    -- about the detector model instance and the event that triggered the+    -- action. You can customize the+    -- <https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html payload>.+    -- One column of the DynamoDB table receives all attribute-value pairs in+    -- the payload that you specify. For more information, see+    -- <https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-event-actions.html Actions>+    -- in /AWS IoT Events Developer Guide/.+    dynamoDB :: Prelude.Maybe DynamoDBAction,+    -- | Writes to the DynamoDB table that you created. The default action+    -- payload contains all attribute-value pairs that have the information+    -- about the detector model instance and the event that triggered the+    -- action. You can customize the+    -- <https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html payload>.+    -- A separate column of the DynamoDB table receives one attribute-value+    -- pair in the payload that you specify. For more information, see+    -- <https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-event-actions.html Actions>+    -- in /AWS IoT Events Developer Guide/.+    dynamoDBv2 :: Prelude.Maybe DynamoDBv2Action,+    -- | Sends information about the detector model instance and the event that+    -- triggered the action to an Amazon Kinesis Data Firehose delivery stream.+    firehose :: Prelude.Maybe FirehoseAction,+    -- | Sends AWS IoT Events input, which passes information about the detector+    -- model instance and the event that triggered the action.+    iotEvents :: Prelude.Maybe IotEventsAction,+    -- | Sends information about the detector model instance and the event that+    -- triggered the action to an asset property in AWS IoT SiteWise .+    iotSiteWise :: Prelude.Maybe IotSiteWiseAction,+    -- | Publishes an MQTT message with the given topic to the AWS IoT message+    -- broker.+    iotTopicPublish :: Prelude.Maybe IotTopicPublishAction,+    -- | Calls a Lambda function, passing in information about the detector model+    -- instance and the event that triggered the action.+    lambda :: Prelude.Maybe LambdaAction,+    -- | Information needed to reset the timer.+    resetTimer :: Prelude.Maybe ResetTimerAction,+    -- | Information needed to set the timer.+    setTimer :: Prelude.Maybe SetTimerAction,+    -- | Sets a variable to a specified value.+    setVariable :: Prelude.Maybe SetVariableAction,+    -- | Sends an Amazon SNS message.+    sns :: Prelude.Maybe SNSTopicPublishAction,+    -- | Sends information about the detector model instance and the event that+    -- triggered the action to an Amazon SQS queue.+    sqs :: Prelude.Maybe SqsAction+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Action' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clearTimer', 'action_clearTimer' - Information needed to clear the timer.+--+-- 'dynamoDB', 'action_dynamoDB' - Writes to the DynamoDB table that you created. The default action+-- payload contains all attribute-value pairs that have the information+-- about the detector model instance and the event that triggered the+-- action. You can customize the+-- <https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html payload>.+-- One column of the DynamoDB table receives all attribute-value pairs in+-- the payload that you specify. For more information, see+-- <https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-event-actions.html Actions>+-- in /AWS IoT Events Developer Guide/.+--+-- 'dynamoDBv2', 'action_dynamoDBv2' - Writes to the DynamoDB table that you created. The default action+-- payload contains all attribute-value pairs that have the information+-- about the detector model instance and the event that triggered the+-- action. You can customize the+-- <https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html payload>.+-- A separate column of the DynamoDB table receives one attribute-value+-- pair in the payload that you specify. For more information, see+-- <https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-event-actions.html Actions>+-- in /AWS IoT Events Developer Guide/.+--+-- 'firehose', 'action_firehose' - Sends information about the detector model instance and the event that+-- triggered the action to an Amazon Kinesis Data Firehose delivery stream.+--+-- 'iotEvents', 'action_iotEvents' - Sends AWS IoT Events input, which passes information about the detector+-- model instance and the event that triggered the action.+--+-- 'iotSiteWise', 'action_iotSiteWise' - Sends information about the detector model instance and the event that+-- triggered the action to an asset property in AWS IoT SiteWise .+--+-- 'iotTopicPublish', 'action_iotTopicPublish' - Publishes an MQTT message with the given topic to the AWS IoT message+-- broker.+--+-- 'lambda', 'action_lambda' - Calls a Lambda function, passing in information about the detector model+-- instance and the event that triggered the action.+--+-- 'resetTimer', 'action_resetTimer' - Information needed to reset the timer.+--+-- 'setTimer', 'action_setTimer' - Information needed to set the timer.+--+-- 'setVariable', 'action_setVariable' - Sets a variable to a specified value.+--+-- 'sns', 'action_sns' - Sends an Amazon SNS message.+--+-- 'sqs', 'action_sqs' - Sends information about the detector model instance and the event that+-- triggered the action to an Amazon SQS queue.+newAction ::+  Action+newAction =+  Action'+    { clearTimer = Prelude.Nothing,+      dynamoDB = Prelude.Nothing,+      dynamoDBv2 = Prelude.Nothing,+      firehose = Prelude.Nothing,+      iotEvents = Prelude.Nothing,+      iotSiteWise = Prelude.Nothing,+      iotTopicPublish = Prelude.Nothing,+      lambda = Prelude.Nothing,+      resetTimer = Prelude.Nothing,+      setTimer = Prelude.Nothing,+      setVariable = Prelude.Nothing,+      sns = Prelude.Nothing,+      sqs = Prelude.Nothing+    }++-- | Information needed to clear the timer.+action_clearTimer :: Lens.Lens' Action (Prelude.Maybe ClearTimerAction)+action_clearTimer = Lens.lens (\Action' {clearTimer} -> clearTimer) (\s@Action' {} a -> s {clearTimer = a} :: Action)++-- | Writes to the DynamoDB table that you created. The default action+-- payload contains all attribute-value pairs that have the information+-- about the detector model instance and the event that triggered the+-- action. You can customize the+-- <https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html payload>.+-- One column of the DynamoDB table receives all attribute-value pairs in+-- the payload that you specify. For more information, see+-- <https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-event-actions.html Actions>+-- in /AWS IoT Events Developer Guide/.+action_dynamoDB :: Lens.Lens' Action (Prelude.Maybe DynamoDBAction)+action_dynamoDB = Lens.lens (\Action' {dynamoDB} -> dynamoDB) (\s@Action' {} a -> s {dynamoDB = a} :: Action)++-- | Writes to the DynamoDB table that you created. The default action+-- payload contains all attribute-value pairs that have the information+-- about the detector model instance and the event that triggered the+-- action. You can customize the+-- <https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html payload>.+-- A separate column of the DynamoDB table receives one attribute-value+-- pair in the payload that you specify. For more information, see+-- <https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-event-actions.html Actions>+-- in /AWS IoT Events Developer Guide/.+action_dynamoDBv2 :: Lens.Lens' Action (Prelude.Maybe DynamoDBv2Action)+action_dynamoDBv2 = Lens.lens (\Action' {dynamoDBv2} -> dynamoDBv2) (\s@Action' {} a -> s {dynamoDBv2 = a} :: Action)++-- | Sends information about the detector model instance and the event that+-- triggered the action to an Amazon Kinesis Data Firehose delivery stream.+action_firehose :: Lens.Lens' Action (Prelude.Maybe FirehoseAction)+action_firehose = Lens.lens (\Action' {firehose} -> firehose) (\s@Action' {} a -> s {firehose = a} :: Action)++-- | Sends AWS IoT Events input, which passes information about the detector+-- model instance and the event that triggered the action.+action_iotEvents :: Lens.Lens' Action (Prelude.Maybe IotEventsAction)+action_iotEvents = Lens.lens (\Action' {iotEvents} -> iotEvents) (\s@Action' {} a -> s {iotEvents = a} :: Action)++-- | Sends information about the detector model instance and the event that+-- triggered the action to an asset property in AWS IoT SiteWise .+action_iotSiteWise :: Lens.Lens' Action (Prelude.Maybe IotSiteWiseAction)+action_iotSiteWise = Lens.lens (\Action' {iotSiteWise} -> iotSiteWise) (\s@Action' {} a -> s {iotSiteWise = a} :: Action)++-- | Publishes an MQTT message with the given topic to the AWS IoT message+-- broker.+action_iotTopicPublish :: Lens.Lens' Action (Prelude.Maybe IotTopicPublishAction)+action_iotTopicPublish = Lens.lens (\Action' {iotTopicPublish} -> iotTopicPublish) (\s@Action' {} a -> s {iotTopicPublish = a} :: Action)++-- | Calls a Lambda function, passing in information about the detector model+-- instance and the event that triggered the action.+action_lambda :: Lens.Lens' Action (Prelude.Maybe LambdaAction)+action_lambda = Lens.lens (\Action' {lambda} -> lambda) (\s@Action' {} a -> s {lambda = a} :: Action)++-- | Information needed to reset the timer.+action_resetTimer :: Lens.Lens' Action (Prelude.Maybe ResetTimerAction)+action_resetTimer = Lens.lens (\Action' {resetTimer} -> resetTimer) (\s@Action' {} a -> s {resetTimer = a} :: Action)++-- | Information needed to set the timer.+action_setTimer :: Lens.Lens' Action (Prelude.Maybe SetTimerAction)+action_setTimer = Lens.lens (\Action' {setTimer} -> setTimer) (\s@Action' {} a -> s {setTimer = a} :: Action)++-- | Sets a variable to a specified value.+action_setVariable :: Lens.Lens' Action (Prelude.Maybe SetVariableAction)+action_setVariable = Lens.lens (\Action' {setVariable} -> setVariable) (\s@Action' {} a -> s {setVariable = a} :: Action)++-- | Sends an Amazon SNS message.+action_sns :: Lens.Lens' Action (Prelude.Maybe SNSTopicPublishAction)+action_sns = Lens.lens (\Action' {sns} -> sns) (\s@Action' {} a -> s {sns = a} :: Action)++-- | Sends information about the detector model instance and the event that+-- triggered the action to an Amazon SQS queue.+action_sqs :: Lens.Lens' Action (Prelude.Maybe SqsAction)+action_sqs = Lens.lens (\Action' {sqs} -> sqs) (\s@Action' {} a -> s {sqs = a} :: Action)++instance Data.FromJSON Action where+  parseJSON =+    Data.withObject+      "Action"+      ( \x ->+          Action'+            Prelude.<$> (x Data..:? "clearTimer")+            Prelude.<*> (x Data..:? "dynamoDB")+            Prelude.<*> (x Data..:? "dynamoDBv2")+            Prelude.<*> (x Data..:? "firehose")+            Prelude.<*> (x Data..:? "iotEvents")+            Prelude.<*> (x Data..:? "iotSiteWise")+            Prelude.<*> (x Data..:? "iotTopicPublish")+            Prelude.<*> (x Data..:? "lambda")+            Prelude.<*> (x Data..:? "resetTimer")+            Prelude.<*> (x Data..:? "setTimer")+            Prelude.<*> (x Data..:? "setVariable")+            Prelude.<*> (x Data..:? "sns")+            Prelude.<*> (x Data..:? "sqs")+      )++instance Prelude.Hashable Action where+  hashWithSalt _salt Action' {..} =+    _salt+      `Prelude.hashWithSalt` clearTimer+      `Prelude.hashWithSalt` dynamoDB+      `Prelude.hashWithSalt` dynamoDBv2+      `Prelude.hashWithSalt` firehose+      `Prelude.hashWithSalt` iotEvents+      `Prelude.hashWithSalt` iotSiteWise+      `Prelude.hashWithSalt` iotTopicPublish+      `Prelude.hashWithSalt` lambda+      `Prelude.hashWithSalt` resetTimer+      `Prelude.hashWithSalt` setTimer+      `Prelude.hashWithSalt` setVariable+      `Prelude.hashWithSalt` sns+      `Prelude.hashWithSalt` sqs++instance Prelude.NFData Action where+  rnf Action' {..} =+    Prelude.rnf clearTimer+      `Prelude.seq` Prelude.rnf dynamoDB+      `Prelude.seq` Prelude.rnf dynamoDBv2+      `Prelude.seq` Prelude.rnf firehose+      `Prelude.seq` Prelude.rnf iotEvents+      `Prelude.seq` Prelude.rnf iotSiteWise+      `Prelude.seq` Prelude.rnf iotTopicPublish+      `Prelude.seq` Prelude.rnf lambda+      `Prelude.seq` Prelude.rnf resetTimer+      `Prelude.seq` Prelude.rnf setTimer+      `Prelude.seq` Prelude.rnf setVariable+      `Prelude.seq` Prelude.rnf sns+      `Prelude.seq` Prelude.rnf sqs++instance Data.ToJSON Action where+  toJSON Action' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clearTimer" Data..=) Prelude.<$> clearTimer,+            ("dynamoDB" Data..=) Prelude.<$> dynamoDB,+            ("dynamoDBv2" Data..=) Prelude.<$> dynamoDBv2,+            ("firehose" Data..=) Prelude.<$> firehose,+            ("iotEvents" Data..=) Prelude.<$> iotEvents,+            ("iotSiteWise" Data..=) Prelude.<$> iotSiteWise,+            ("iotTopicPublish" Data..=)+              Prelude.<$> iotTopicPublish,+            ("lambda" Data..=) Prelude.<$> lambda,+            ("resetTimer" Data..=) Prelude.<$> resetTimer,+            ("setTimer" Data..=) Prelude.<$> setTimer,+            ("setVariable" Data..=) Prelude.<$> setVariable,+            ("sns" Data..=) Prelude.<$> sns,+            ("sqs" Data..=) Prelude.<$> sqs+          ]+      )
+ gen/Amazonka/IoTEvents/Types/AlarmAction.hs view
@@ -0,0 +1,186 @@+{-# 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.IoTEvents.Types.AlarmAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.AlarmAction where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.DynamoDBAction+import Amazonka.IoTEvents.Types.DynamoDBv2Action+import Amazonka.IoTEvents.Types.FirehoseAction+import Amazonka.IoTEvents.Types.IotEventsAction+import Amazonka.IoTEvents.Types.IotSiteWiseAction+import Amazonka.IoTEvents.Types.IotTopicPublishAction+import Amazonka.IoTEvents.Types.LambdaAction+import Amazonka.IoTEvents.Types.SNSTopicPublishAction+import Amazonka.IoTEvents.Types.SqsAction+import qualified Amazonka.Prelude as Prelude++-- | Specifies one of the following actions to receive notifications when the+-- alarm state changes.+--+-- /See:/ 'newAlarmAction' smart constructor.+data AlarmAction = AlarmAction'+  { dynamoDB :: Prelude.Maybe DynamoDBAction,+    dynamoDBv2 :: Prelude.Maybe DynamoDBv2Action,+    firehose :: Prelude.Maybe FirehoseAction,+    iotEvents :: Prelude.Maybe IotEventsAction,+    iotSiteWise :: Prelude.Maybe IotSiteWiseAction,+    iotTopicPublish :: Prelude.Maybe IotTopicPublishAction,+    lambda :: Prelude.Maybe LambdaAction,+    sns :: Prelude.Maybe SNSTopicPublishAction,+    sqs :: Prelude.Maybe SqsAction+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AlarmAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dynamoDB', 'alarmAction_dynamoDB' - Undocumented member.+--+-- 'dynamoDBv2', 'alarmAction_dynamoDBv2' - Undocumented member.+--+-- 'firehose', 'alarmAction_firehose' - Undocumented member.+--+-- 'iotEvents', 'alarmAction_iotEvents' - Undocumented member.+--+-- 'iotSiteWise', 'alarmAction_iotSiteWise' - Undocumented member.+--+-- 'iotTopicPublish', 'alarmAction_iotTopicPublish' - Undocumented member.+--+-- 'lambda', 'alarmAction_lambda' - Undocumented member.+--+-- 'sns', 'alarmAction_sns' - Undocumented member.+--+-- 'sqs', 'alarmAction_sqs' - Undocumented member.+newAlarmAction ::+  AlarmAction+newAlarmAction =+  AlarmAction'+    { dynamoDB = Prelude.Nothing,+      dynamoDBv2 = Prelude.Nothing,+      firehose = Prelude.Nothing,+      iotEvents = Prelude.Nothing,+      iotSiteWise = Prelude.Nothing,+      iotTopicPublish = Prelude.Nothing,+      lambda = Prelude.Nothing,+      sns = Prelude.Nothing,+      sqs = Prelude.Nothing+    }++-- | Undocumented member.+alarmAction_dynamoDB :: Lens.Lens' AlarmAction (Prelude.Maybe DynamoDBAction)+alarmAction_dynamoDB = Lens.lens (\AlarmAction' {dynamoDB} -> dynamoDB) (\s@AlarmAction' {} a -> s {dynamoDB = a} :: AlarmAction)++-- | Undocumented member.+alarmAction_dynamoDBv2 :: Lens.Lens' AlarmAction (Prelude.Maybe DynamoDBv2Action)+alarmAction_dynamoDBv2 = Lens.lens (\AlarmAction' {dynamoDBv2} -> dynamoDBv2) (\s@AlarmAction' {} a -> s {dynamoDBv2 = a} :: AlarmAction)++-- | Undocumented member.+alarmAction_firehose :: Lens.Lens' AlarmAction (Prelude.Maybe FirehoseAction)+alarmAction_firehose = Lens.lens (\AlarmAction' {firehose} -> firehose) (\s@AlarmAction' {} a -> s {firehose = a} :: AlarmAction)++-- | Undocumented member.+alarmAction_iotEvents :: Lens.Lens' AlarmAction (Prelude.Maybe IotEventsAction)+alarmAction_iotEvents = Lens.lens (\AlarmAction' {iotEvents} -> iotEvents) (\s@AlarmAction' {} a -> s {iotEvents = a} :: AlarmAction)++-- | Undocumented member.+alarmAction_iotSiteWise :: Lens.Lens' AlarmAction (Prelude.Maybe IotSiteWiseAction)+alarmAction_iotSiteWise = Lens.lens (\AlarmAction' {iotSiteWise} -> iotSiteWise) (\s@AlarmAction' {} a -> s {iotSiteWise = a} :: AlarmAction)++-- | Undocumented member.+alarmAction_iotTopicPublish :: Lens.Lens' AlarmAction (Prelude.Maybe IotTopicPublishAction)+alarmAction_iotTopicPublish = Lens.lens (\AlarmAction' {iotTopicPublish} -> iotTopicPublish) (\s@AlarmAction' {} a -> s {iotTopicPublish = a} :: AlarmAction)++-- | Undocumented member.+alarmAction_lambda :: Lens.Lens' AlarmAction (Prelude.Maybe LambdaAction)+alarmAction_lambda = Lens.lens (\AlarmAction' {lambda} -> lambda) (\s@AlarmAction' {} a -> s {lambda = a} :: AlarmAction)++-- | Undocumented member.+alarmAction_sns :: Lens.Lens' AlarmAction (Prelude.Maybe SNSTopicPublishAction)+alarmAction_sns = Lens.lens (\AlarmAction' {sns} -> sns) (\s@AlarmAction' {} a -> s {sns = a} :: AlarmAction)++-- | Undocumented member.+alarmAction_sqs :: Lens.Lens' AlarmAction (Prelude.Maybe SqsAction)+alarmAction_sqs = Lens.lens (\AlarmAction' {sqs} -> sqs) (\s@AlarmAction' {} a -> s {sqs = a} :: AlarmAction)++instance Data.FromJSON AlarmAction where+  parseJSON =+    Data.withObject+      "AlarmAction"+      ( \x ->+          AlarmAction'+            Prelude.<$> (x Data..:? "dynamoDB")+            Prelude.<*> (x Data..:? "dynamoDBv2")+            Prelude.<*> (x Data..:? "firehose")+            Prelude.<*> (x Data..:? "iotEvents")+            Prelude.<*> (x Data..:? "iotSiteWise")+            Prelude.<*> (x Data..:? "iotTopicPublish")+            Prelude.<*> (x Data..:? "lambda")+            Prelude.<*> (x Data..:? "sns")+            Prelude.<*> (x Data..:? "sqs")+      )++instance Prelude.Hashable AlarmAction where+  hashWithSalt _salt AlarmAction' {..} =+    _salt+      `Prelude.hashWithSalt` dynamoDB+      `Prelude.hashWithSalt` dynamoDBv2+      `Prelude.hashWithSalt` firehose+      `Prelude.hashWithSalt` iotEvents+      `Prelude.hashWithSalt` iotSiteWise+      `Prelude.hashWithSalt` iotTopicPublish+      `Prelude.hashWithSalt` lambda+      `Prelude.hashWithSalt` sns+      `Prelude.hashWithSalt` sqs++instance Prelude.NFData AlarmAction where+  rnf AlarmAction' {..} =+    Prelude.rnf dynamoDB+      `Prelude.seq` Prelude.rnf dynamoDBv2+      `Prelude.seq` Prelude.rnf firehose+      `Prelude.seq` Prelude.rnf iotEvents+      `Prelude.seq` Prelude.rnf iotSiteWise+      `Prelude.seq` Prelude.rnf iotTopicPublish+      `Prelude.seq` Prelude.rnf lambda+      `Prelude.seq` Prelude.rnf sns+      `Prelude.seq` Prelude.rnf sqs++instance Data.ToJSON AlarmAction where+  toJSON AlarmAction' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("dynamoDB" Data..=) Prelude.<$> dynamoDB,+            ("dynamoDBv2" Data..=) Prelude.<$> dynamoDBv2,+            ("firehose" Data..=) Prelude.<$> firehose,+            ("iotEvents" Data..=) Prelude.<$> iotEvents,+            ("iotSiteWise" Data..=) Prelude.<$> iotSiteWise,+            ("iotTopicPublish" Data..=)+              Prelude.<$> iotTopicPublish,+            ("lambda" Data..=) Prelude.<$> lambda,+            ("sns" Data..=) Prelude.<$> sns,+            ("sqs" Data..=) Prelude.<$> sqs+          ]+      )
+ gen/Amazonka/IoTEvents/Types/AlarmCapabilities.hs view
@@ -0,0 +1,101 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.AlarmCapabilities+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.AlarmCapabilities where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.AcknowledgeFlow+import Amazonka.IoTEvents.Types.InitializationConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Contains the configuration information of alarm state changes.+--+-- /See:/ 'newAlarmCapabilities' smart constructor.+data AlarmCapabilities = AlarmCapabilities'+  { -- | Specifies whether to get notified for alarm state changes.+    acknowledgeFlow :: Prelude.Maybe AcknowledgeFlow,+    -- | Specifies the default alarm state. The configuration applies to all+    -- alarms that were created based on this alarm model.+    initializationConfiguration :: Prelude.Maybe InitializationConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AlarmCapabilities' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'acknowledgeFlow', 'alarmCapabilities_acknowledgeFlow' - Specifies whether to get notified for alarm state changes.+--+-- 'initializationConfiguration', 'alarmCapabilities_initializationConfiguration' - Specifies the default alarm state. The configuration applies to all+-- alarms that were created based on this alarm model.+newAlarmCapabilities ::+  AlarmCapabilities+newAlarmCapabilities =+  AlarmCapabilities'+    { acknowledgeFlow =+        Prelude.Nothing,+      initializationConfiguration = Prelude.Nothing+    }++-- | Specifies whether to get notified for alarm state changes.+alarmCapabilities_acknowledgeFlow :: Lens.Lens' AlarmCapabilities (Prelude.Maybe AcknowledgeFlow)+alarmCapabilities_acknowledgeFlow = Lens.lens (\AlarmCapabilities' {acknowledgeFlow} -> acknowledgeFlow) (\s@AlarmCapabilities' {} a -> s {acknowledgeFlow = a} :: AlarmCapabilities)++-- | Specifies the default alarm state. The configuration applies to all+-- alarms that were created based on this alarm model.+alarmCapabilities_initializationConfiguration :: Lens.Lens' AlarmCapabilities (Prelude.Maybe InitializationConfiguration)+alarmCapabilities_initializationConfiguration = Lens.lens (\AlarmCapabilities' {initializationConfiguration} -> initializationConfiguration) (\s@AlarmCapabilities' {} a -> s {initializationConfiguration = a} :: AlarmCapabilities)++instance Data.FromJSON AlarmCapabilities where+  parseJSON =+    Data.withObject+      "AlarmCapabilities"+      ( \x ->+          AlarmCapabilities'+            Prelude.<$> (x Data..:? "acknowledgeFlow")+            Prelude.<*> (x Data..:? "initializationConfiguration")+      )++instance Prelude.Hashable AlarmCapabilities where+  hashWithSalt _salt AlarmCapabilities' {..} =+    _salt+      `Prelude.hashWithSalt` acknowledgeFlow+      `Prelude.hashWithSalt` initializationConfiguration++instance Prelude.NFData AlarmCapabilities where+  rnf AlarmCapabilities' {..} =+    Prelude.rnf acknowledgeFlow+      `Prelude.seq` Prelude.rnf initializationConfiguration++instance Data.ToJSON AlarmCapabilities where+  toJSON AlarmCapabilities' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("acknowledgeFlow" Data..=)+              Prelude.<$> acknowledgeFlow,+            ("initializationConfiguration" Data..=)+              Prelude.<$> initializationConfiguration+          ]+      )
+ gen/Amazonka/IoTEvents/Types/AlarmEventActions.hs view
@@ -0,0 +1,79 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.AlarmEventActions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.AlarmEventActions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.AlarmAction+import qualified Amazonka.Prelude as Prelude++-- | Contains information about one or more alarm actions.+--+-- /See:/ 'newAlarmEventActions' smart constructor.+data AlarmEventActions = AlarmEventActions'+  { -- | Specifies one or more supported actions to receive notifications when+    -- the alarm state changes.+    alarmActions :: Prelude.Maybe [AlarmAction]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AlarmEventActions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'alarmActions', 'alarmEventActions_alarmActions' - Specifies one or more supported actions to receive notifications when+-- the alarm state changes.+newAlarmEventActions ::+  AlarmEventActions+newAlarmEventActions =+  AlarmEventActions' {alarmActions = Prelude.Nothing}++-- | Specifies one or more supported actions to receive notifications when+-- the alarm state changes.+alarmEventActions_alarmActions :: Lens.Lens' AlarmEventActions (Prelude.Maybe [AlarmAction])+alarmEventActions_alarmActions = Lens.lens (\AlarmEventActions' {alarmActions} -> alarmActions) (\s@AlarmEventActions' {} a -> s {alarmActions = a} :: AlarmEventActions) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON AlarmEventActions where+  parseJSON =+    Data.withObject+      "AlarmEventActions"+      ( \x ->+          AlarmEventActions'+            Prelude.<$> (x Data..:? "alarmActions" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable AlarmEventActions where+  hashWithSalt _salt AlarmEventActions' {..} =+    _salt `Prelude.hashWithSalt` alarmActions++instance Prelude.NFData AlarmEventActions where+  rnf AlarmEventActions' {..} = Prelude.rnf alarmActions++instance Data.ToJSON AlarmEventActions where+  toJSON AlarmEventActions' {..} =+    Data.object+      ( Prelude.catMaybes+          [("alarmActions" Data..=) Prelude.<$> alarmActions]+      )
+ gen/Amazonka/IoTEvents/Types/AlarmModelSummary.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.AlarmModelSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.AlarmModelSummary 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 summary of an alarm model.+--+-- /See:/ 'newAlarmModelSummary' smart constructor.+data AlarmModelSummary = AlarmModelSummary'+  { -- | The description of the alarm model.+    alarmModelDescription :: Prelude.Maybe Prelude.Text,+    -- | The name of the alarm model.+    alarmModelName :: Prelude.Maybe Prelude.Text,+    -- | The time the alarm model was created, in the Unix epoch format.+    creationTime :: Prelude.Maybe Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AlarmModelSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'alarmModelDescription', 'alarmModelSummary_alarmModelDescription' - The description of the alarm model.+--+-- 'alarmModelName', 'alarmModelSummary_alarmModelName' - The name of the alarm model.+--+-- 'creationTime', 'alarmModelSummary_creationTime' - The time the alarm model was created, in the Unix epoch format.+newAlarmModelSummary ::+  AlarmModelSummary+newAlarmModelSummary =+  AlarmModelSummary'+    { alarmModelDescription =+        Prelude.Nothing,+      alarmModelName = Prelude.Nothing,+      creationTime = Prelude.Nothing+    }++-- | The description of the alarm model.+alarmModelSummary_alarmModelDescription :: Lens.Lens' AlarmModelSummary (Prelude.Maybe Prelude.Text)+alarmModelSummary_alarmModelDescription = Lens.lens (\AlarmModelSummary' {alarmModelDescription} -> alarmModelDescription) (\s@AlarmModelSummary' {} a -> s {alarmModelDescription = a} :: AlarmModelSummary)++-- | The name of the alarm model.+alarmModelSummary_alarmModelName :: Lens.Lens' AlarmModelSummary (Prelude.Maybe Prelude.Text)+alarmModelSummary_alarmModelName = Lens.lens (\AlarmModelSummary' {alarmModelName} -> alarmModelName) (\s@AlarmModelSummary' {} a -> s {alarmModelName = a} :: AlarmModelSummary)++-- | The time the alarm model was created, in the Unix epoch format.+alarmModelSummary_creationTime :: Lens.Lens' AlarmModelSummary (Prelude.Maybe Prelude.UTCTime)+alarmModelSummary_creationTime = Lens.lens (\AlarmModelSummary' {creationTime} -> creationTime) (\s@AlarmModelSummary' {} a -> s {creationTime = a} :: AlarmModelSummary) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON AlarmModelSummary where+  parseJSON =+    Data.withObject+      "AlarmModelSummary"+      ( \x ->+          AlarmModelSummary'+            Prelude.<$> (x Data..:? "alarmModelDescription")+            Prelude.<*> (x Data..:? "alarmModelName")+            Prelude.<*> (x Data..:? "creationTime")+      )++instance Prelude.Hashable AlarmModelSummary where+  hashWithSalt _salt AlarmModelSummary' {..} =+    _salt+      `Prelude.hashWithSalt` alarmModelDescription+      `Prelude.hashWithSalt` alarmModelName+      `Prelude.hashWithSalt` creationTime++instance Prelude.NFData AlarmModelSummary where+  rnf AlarmModelSummary' {..} =+    Prelude.rnf alarmModelDescription+      `Prelude.seq` Prelude.rnf alarmModelName+      `Prelude.seq` Prelude.rnf creationTime
+ gen/Amazonka/IoTEvents/Types/AlarmModelVersionStatus.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.IoTEvents.Types.AlarmModelVersionStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.AlarmModelVersionStatus+  ( AlarmModelVersionStatus+      ( ..,+        AlarmModelVersionStatus_ACTIVATING,+        AlarmModelVersionStatus_ACTIVE,+        AlarmModelVersionStatus_FAILED,+        AlarmModelVersionStatus_INACTIVE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AlarmModelVersionStatus = AlarmModelVersionStatus'+  { fromAlarmModelVersionStatus ::+      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 AlarmModelVersionStatus_ACTIVATING :: AlarmModelVersionStatus+pattern AlarmModelVersionStatus_ACTIVATING = AlarmModelVersionStatus' "ACTIVATING"++pattern AlarmModelVersionStatus_ACTIVE :: AlarmModelVersionStatus+pattern AlarmModelVersionStatus_ACTIVE = AlarmModelVersionStatus' "ACTIVE"++pattern AlarmModelVersionStatus_FAILED :: AlarmModelVersionStatus+pattern AlarmModelVersionStatus_FAILED = AlarmModelVersionStatus' "FAILED"++pattern AlarmModelVersionStatus_INACTIVE :: AlarmModelVersionStatus+pattern AlarmModelVersionStatus_INACTIVE = AlarmModelVersionStatus' "INACTIVE"++{-# COMPLETE+  AlarmModelVersionStatus_ACTIVATING,+  AlarmModelVersionStatus_ACTIVE,+  AlarmModelVersionStatus_FAILED,+  AlarmModelVersionStatus_INACTIVE,+  AlarmModelVersionStatus'+  #-}
+ gen/Amazonka/IoTEvents/Types/AlarmModelVersionSummary.hs view
@@ -0,0 +1,215 @@+{-# 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.IoTEvents.Types.AlarmModelVersionSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.AlarmModelVersionSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.AlarmModelVersionStatus+import qualified Amazonka.Prelude as Prelude++-- | Contains a summary of an alarm model version.+--+-- /See:/ 'newAlarmModelVersionSummary' smart constructor.+data AlarmModelVersionSummary = AlarmModelVersionSummary'+  { -- | The ARN of the alarm model. For more information, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    alarmModelArn :: Prelude.Maybe Prelude.Text,+    -- | The name of the alarm model.+    alarmModelName :: Prelude.Maybe Prelude.Text,+    -- | The version of the alarm model.+    alarmModelVersion :: Prelude.Maybe Prelude.Text,+    -- | The time the alarm model was created, in the Unix epoch format.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The time the alarm model was last updated, in the Unix epoch format.+    lastUpdateTime :: Prelude.Maybe Data.POSIX,+    -- | The ARN of the IAM role that allows the alarm to perform actions and+    -- access AWS resources. For more information, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The status of the alarm model. The status can be one of the following+    -- values:+    --+    -- -   @ACTIVE@ - The alarm model is active and it\'s ready to evaluate+    --     data.+    --+    -- -   @ACTIVATING@ - AWS IoT Events is activating your alarm model.+    --     Activating an alarm model can take up to a few minutes.+    --+    -- -   @INACTIVE@ - The alarm model is inactive, so it isn\'t ready to+    --     evaluate data. Check your alarm model information and update the+    --     alarm model.+    --+    -- -   @FAILED@ - You couldn\'t create or update the alarm model. Check+    --     your alarm model information and try again.+    status :: Prelude.Maybe AlarmModelVersionStatus,+    -- | Contains information about the status of the alarm model version.+    statusMessage :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AlarmModelVersionSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'alarmModelArn', 'alarmModelVersionSummary_alarmModelArn' - The ARN of the alarm model. For more information, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'alarmModelName', 'alarmModelVersionSummary_alarmModelName' - The name of the alarm model.+--+-- 'alarmModelVersion', 'alarmModelVersionSummary_alarmModelVersion' - The version of the alarm model.+--+-- 'creationTime', 'alarmModelVersionSummary_creationTime' - The time the alarm model was created, in the Unix epoch format.+--+-- 'lastUpdateTime', 'alarmModelVersionSummary_lastUpdateTime' - The time the alarm model was last updated, in the Unix epoch format.+--+-- 'roleArn', 'alarmModelVersionSummary_roleArn' - The ARN of the IAM role that allows the alarm to perform actions and+-- access AWS resources. For more information, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'status', 'alarmModelVersionSummary_status' - The status of the alarm model. The status can be one of the following+-- values:+--+-- -   @ACTIVE@ - The alarm model is active and it\'s ready to evaluate+--     data.+--+-- -   @ACTIVATING@ - AWS IoT Events is activating your alarm model.+--     Activating an alarm model can take up to a few minutes.+--+-- -   @INACTIVE@ - The alarm model is inactive, so it isn\'t ready to+--     evaluate data. Check your alarm model information and update the+--     alarm model.+--+-- -   @FAILED@ - You couldn\'t create or update the alarm model. Check+--     your alarm model information and try again.+--+-- 'statusMessage', 'alarmModelVersionSummary_statusMessage' - Contains information about the status of the alarm model version.+newAlarmModelVersionSummary ::+  AlarmModelVersionSummary+newAlarmModelVersionSummary =+  AlarmModelVersionSummary'+    { alarmModelArn =+        Prelude.Nothing,+      alarmModelName = Prelude.Nothing,+      alarmModelVersion = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      lastUpdateTime = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      status = Prelude.Nothing,+      statusMessage = Prelude.Nothing+    }++-- | The ARN of the alarm model. For more information, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+alarmModelVersionSummary_alarmModelArn :: Lens.Lens' AlarmModelVersionSummary (Prelude.Maybe Prelude.Text)+alarmModelVersionSummary_alarmModelArn = Lens.lens (\AlarmModelVersionSummary' {alarmModelArn} -> alarmModelArn) (\s@AlarmModelVersionSummary' {} a -> s {alarmModelArn = a} :: AlarmModelVersionSummary)++-- | The name of the alarm model.+alarmModelVersionSummary_alarmModelName :: Lens.Lens' AlarmModelVersionSummary (Prelude.Maybe Prelude.Text)+alarmModelVersionSummary_alarmModelName = Lens.lens (\AlarmModelVersionSummary' {alarmModelName} -> alarmModelName) (\s@AlarmModelVersionSummary' {} a -> s {alarmModelName = a} :: AlarmModelVersionSummary)++-- | The version of the alarm model.+alarmModelVersionSummary_alarmModelVersion :: Lens.Lens' AlarmModelVersionSummary (Prelude.Maybe Prelude.Text)+alarmModelVersionSummary_alarmModelVersion = Lens.lens (\AlarmModelVersionSummary' {alarmModelVersion} -> alarmModelVersion) (\s@AlarmModelVersionSummary' {} a -> s {alarmModelVersion = a} :: AlarmModelVersionSummary)++-- | The time the alarm model was created, in the Unix epoch format.+alarmModelVersionSummary_creationTime :: Lens.Lens' AlarmModelVersionSummary (Prelude.Maybe Prelude.UTCTime)+alarmModelVersionSummary_creationTime = Lens.lens (\AlarmModelVersionSummary' {creationTime} -> creationTime) (\s@AlarmModelVersionSummary' {} a -> s {creationTime = a} :: AlarmModelVersionSummary) Prelude.. Lens.mapping Data._Time++-- | The time the alarm model was last updated, in the Unix epoch format.+alarmModelVersionSummary_lastUpdateTime :: Lens.Lens' AlarmModelVersionSummary (Prelude.Maybe Prelude.UTCTime)+alarmModelVersionSummary_lastUpdateTime = Lens.lens (\AlarmModelVersionSummary' {lastUpdateTime} -> lastUpdateTime) (\s@AlarmModelVersionSummary' {} a -> s {lastUpdateTime = a} :: AlarmModelVersionSummary) Prelude.. Lens.mapping Data._Time++-- | The ARN of the IAM role that allows the alarm to perform actions and+-- access AWS resources. For more information, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+alarmModelVersionSummary_roleArn :: Lens.Lens' AlarmModelVersionSummary (Prelude.Maybe Prelude.Text)+alarmModelVersionSummary_roleArn = Lens.lens (\AlarmModelVersionSummary' {roleArn} -> roleArn) (\s@AlarmModelVersionSummary' {} a -> s {roleArn = a} :: AlarmModelVersionSummary)++-- | The status of the alarm model. The status can be one of the following+-- values:+--+-- -   @ACTIVE@ - The alarm model is active and it\'s ready to evaluate+--     data.+--+-- -   @ACTIVATING@ - AWS IoT Events is activating your alarm model.+--     Activating an alarm model can take up to a few minutes.+--+-- -   @INACTIVE@ - The alarm model is inactive, so it isn\'t ready to+--     evaluate data. Check your alarm model information and update the+--     alarm model.+--+-- -   @FAILED@ - You couldn\'t create or update the alarm model. Check+--     your alarm model information and try again.+alarmModelVersionSummary_status :: Lens.Lens' AlarmModelVersionSummary (Prelude.Maybe AlarmModelVersionStatus)+alarmModelVersionSummary_status = Lens.lens (\AlarmModelVersionSummary' {status} -> status) (\s@AlarmModelVersionSummary' {} a -> s {status = a} :: AlarmModelVersionSummary)++-- | Contains information about the status of the alarm model version.+alarmModelVersionSummary_statusMessage :: Lens.Lens' AlarmModelVersionSummary (Prelude.Maybe Prelude.Text)+alarmModelVersionSummary_statusMessage = Lens.lens (\AlarmModelVersionSummary' {statusMessage} -> statusMessage) (\s@AlarmModelVersionSummary' {} a -> s {statusMessage = a} :: AlarmModelVersionSummary)++instance Data.FromJSON AlarmModelVersionSummary where+  parseJSON =+    Data.withObject+      "AlarmModelVersionSummary"+      ( \x ->+          AlarmModelVersionSummary'+            Prelude.<$> (x Data..:? "alarmModelArn")+            Prelude.<*> (x Data..:? "alarmModelName")+            Prelude.<*> (x Data..:? "alarmModelVersion")+            Prelude.<*> (x Data..:? "creationTime")+            Prelude.<*> (x Data..:? "lastUpdateTime")+            Prelude.<*> (x Data..:? "roleArn")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..:? "statusMessage")+      )++instance Prelude.Hashable AlarmModelVersionSummary where+  hashWithSalt _salt AlarmModelVersionSummary' {..} =+    _salt+      `Prelude.hashWithSalt` alarmModelArn+      `Prelude.hashWithSalt` alarmModelName+      `Prelude.hashWithSalt` alarmModelVersion+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` lastUpdateTime+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` statusMessage++instance Prelude.NFData AlarmModelVersionSummary where+  rnf AlarmModelVersionSummary' {..} =+    Prelude.rnf alarmModelArn+      `Prelude.seq` Prelude.rnf alarmModelName+      `Prelude.seq` Prelude.rnf alarmModelVersion+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf lastUpdateTime+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf statusMessage
+ gen/Amazonka/IoTEvents/Types/AlarmNotification.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.IoTEvents.Types.AlarmNotification+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.AlarmNotification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.NotificationAction+import qualified Amazonka.Prelude as Prelude++-- | Contains information about one or more notification actions.+--+-- /See:/ 'newAlarmNotification' smart constructor.+data AlarmNotification = AlarmNotification'+  { -- | Contains the notification settings of an alarm model. The settings apply+    -- to all alarms that were created based on this alarm model.+    notificationActions :: Prelude.Maybe (Prelude.NonEmpty NotificationAction)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AlarmNotification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'notificationActions', 'alarmNotification_notificationActions' - Contains the notification settings of an alarm model. The settings apply+-- to all alarms that were created based on this alarm model.+newAlarmNotification ::+  AlarmNotification+newAlarmNotification =+  AlarmNotification'+    { notificationActions =+        Prelude.Nothing+    }++-- | Contains the notification settings of an alarm model. The settings apply+-- to all alarms that were created based on this alarm model.+alarmNotification_notificationActions :: Lens.Lens' AlarmNotification (Prelude.Maybe (Prelude.NonEmpty NotificationAction))+alarmNotification_notificationActions = Lens.lens (\AlarmNotification' {notificationActions} -> notificationActions) (\s@AlarmNotification' {} a -> s {notificationActions = a} :: AlarmNotification) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON AlarmNotification where+  parseJSON =+    Data.withObject+      "AlarmNotification"+      ( \x ->+          AlarmNotification'+            Prelude.<$> (x Data..:? "notificationActions")+      )++instance Prelude.Hashable AlarmNotification where+  hashWithSalt _salt AlarmNotification' {..} =+    _salt `Prelude.hashWithSalt` notificationActions++instance Prelude.NFData AlarmNotification where+  rnf AlarmNotification' {..} =+    Prelude.rnf notificationActions++instance Data.ToJSON AlarmNotification where+  toJSON AlarmNotification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("notificationActions" Data..=)+              Prelude.<$> notificationActions+          ]+      )
+ gen/Amazonka/IoTEvents/Types/AlarmRule.hs view
@@ -0,0 +1,78 @@+{-# 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.IoTEvents.Types.AlarmRule+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.AlarmRule where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.SimpleRule+import qualified Amazonka.Prelude as Prelude++-- | Defines when your alarm is invoked.+--+-- /See:/ 'newAlarmRule' smart constructor.+data AlarmRule = AlarmRule'+  { -- | A rule that compares an input property value to a threshold value with a+    -- comparison operator.+    simpleRule :: Prelude.Maybe SimpleRule+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AlarmRule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'simpleRule', 'alarmRule_simpleRule' - A rule that compares an input property value to a threshold value with a+-- comparison operator.+newAlarmRule ::+  AlarmRule+newAlarmRule =+  AlarmRule' {simpleRule = Prelude.Nothing}++-- | A rule that compares an input property value to a threshold value with a+-- comparison operator.+alarmRule_simpleRule :: Lens.Lens' AlarmRule (Prelude.Maybe SimpleRule)+alarmRule_simpleRule = Lens.lens (\AlarmRule' {simpleRule} -> simpleRule) (\s@AlarmRule' {} a -> s {simpleRule = a} :: AlarmRule)++instance Data.FromJSON AlarmRule where+  parseJSON =+    Data.withObject+      "AlarmRule"+      ( \x ->+          AlarmRule' Prelude.<$> (x Data..:? "simpleRule")+      )++instance Prelude.Hashable AlarmRule where+  hashWithSalt _salt AlarmRule' {..} =+    _salt `Prelude.hashWithSalt` simpleRule++instance Prelude.NFData AlarmRule where+  rnf AlarmRule' {..} = Prelude.rnf simpleRule++instance Data.ToJSON AlarmRule where+  toJSON AlarmRule' {..} =+    Data.object+      ( Prelude.catMaybes+          [("simpleRule" Data..=) Prelude.<$> simpleRule]+      )
+ gen/Amazonka/IoTEvents/Types/AnalysisResult.hs view
@@ -0,0 +1,239 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.AnalysisResult+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.AnalysisResult where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.AnalysisResultLevel+import Amazonka.IoTEvents.Types.AnalysisResultLocation+import qualified Amazonka.Prelude as Prelude++-- | Contains the result of the analysis.+--+-- /See:/ 'newAnalysisResult' smart constructor.+data AnalysisResult = AnalysisResult'+  { -- | The severity level of the analysis result. Based on the severity level,+    -- analysis results fall into three general categories:+    --+    -- -   @INFO@ - An information result tells you about a significant field+    --     in your detector model. This type of result usually doesn\'t require+    --     immediate action.+    --+    -- -   @WARNING@ - A warning result draws special attention to fields that+    --     might cause issues for your detector model. We recommend that you+    --     review warnings and take necessary actions before you use your+    --     detector model in production environments. Otherwise, the detector+    --     model might not work as expected.+    --+    -- -   @ERROR@ - An error result notifies you about a problem found in your+    --     detector model. You must fix all errors before you can publish your+    --     detector model.+    level :: Prelude.Maybe AnalysisResultLevel,+    -- | Contains one or more locations that you can use to locate the fields in+    -- your detector model that the analysis result references.+    locations :: Prelude.Maybe [AnalysisResultLocation],+    -- | Contains additional information about the analysis result.+    message :: Prelude.Maybe Prelude.Text,+    -- | The type of the analysis result. Analyses fall into the following types+    -- based on the validators used to generate the analysis result:+    --+    -- -   @supported-actions@ - You must specify AWS IoT Events supported+    --     actions that work with other AWS services in a supported AWS Region.+    --+    -- -   @service-limits@ - Resources or API operations can\'t exceed service+    --     quotas (also known as limits). Update your detector model or request+    --     a quota increase.+    --+    -- -   @structure@ - The detector model must follow a structure that AWS+    --     IoT Events supports.+    --+    -- -   @expression-syntax@ - Your expression must follow the required+    --     syntax.+    --+    -- -   @data-type@ - Data types referenced in the detector model must be+    --     compatible.+    --+    -- -   @referenced-data@ - You must define the data referenced in your+    --     detector model before you can use the data.+    --+    -- -   @referenced-resource@ - Resources that the detector model uses must+    --     be available.+    --+    -- For more information, see+    -- <https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-analyze-api.html Running detector model analyses>+    -- in the /AWS IoT Events Developer Guide/.+    type' :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnalysisResult' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'level', 'analysisResult_level' - The severity level of the analysis result. Based on the severity level,+-- analysis results fall into three general categories:+--+-- -   @INFO@ - An information result tells you about a significant field+--     in your detector model. This type of result usually doesn\'t require+--     immediate action.+--+-- -   @WARNING@ - A warning result draws special attention to fields that+--     might cause issues for your detector model. We recommend that you+--     review warnings and take necessary actions before you use your+--     detector model in production environments. Otherwise, the detector+--     model might not work as expected.+--+-- -   @ERROR@ - An error result notifies you about a problem found in your+--     detector model. You must fix all errors before you can publish your+--     detector model.+--+-- 'locations', 'analysisResult_locations' - Contains one or more locations that you can use to locate the fields in+-- your detector model that the analysis result references.+--+-- 'message', 'analysisResult_message' - Contains additional information about the analysis result.+--+-- 'type'', 'analysisResult_type' - The type of the analysis result. Analyses fall into the following types+-- based on the validators used to generate the analysis result:+--+-- -   @supported-actions@ - You must specify AWS IoT Events supported+--     actions that work with other AWS services in a supported AWS Region.+--+-- -   @service-limits@ - Resources or API operations can\'t exceed service+--     quotas (also known as limits). Update your detector model or request+--     a quota increase.+--+-- -   @structure@ - The detector model must follow a structure that AWS+--     IoT Events supports.+--+-- -   @expression-syntax@ - Your expression must follow the required+--     syntax.+--+-- -   @data-type@ - Data types referenced in the detector model must be+--     compatible.+--+-- -   @referenced-data@ - You must define the data referenced in your+--     detector model before you can use the data.+--+-- -   @referenced-resource@ - Resources that the detector model uses must+--     be available.+--+-- For more information, see+-- <https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-analyze-api.html Running detector model analyses>+-- in the /AWS IoT Events Developer Guide/.+newAnalysisResult ::+  AnalysisResult+newAnalysisResult =+  AnalysisResult'+    { level = Prelude.Nothing,+      locations = Prelude.Nothing,+      message = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The severity level of the analysis result. Based on the severity level,+-- analysis results fall into three general categories:+--+-- -   @INFO@ - An information result tells you about a significant field+--     in your detector model. This type of result usually doesn\'t require+--     immediate action.+--+-- -   @WARNING@ - A warning result draws special attention to fields that+--     might cause issues for your detector model. We recommend that you+--     review warnings and take necessary actions before you use your+--     detector model in production environments. Otherwise, the detector+--     model might not work as expected.+--+-- -   @ERROR@ - An error result notifies you about a problem found in your+--     detector model. You must fix all errors before you can publish your+--     detector model.+analysisResult_level :: Lens.Lens' AnalysisResult (Prelude.Maybe AnalysisResultLevel)+analysisResult_level = Lens.lens (\AnalysisResult' {level} -> level) (\s@AnalysisResult' {} a -> s {level = a} :: AnalysisResult)++-- | Contains one or more locations that you can use to locate the fields in+-- your detector model that the analysis result references.+analysisResult_locations :: Lens.Lens' AnalysisResult (Prelude.Maybe [AnalysisResultLocation])+analysisResult_locations = Lens.lens (\AnalysisResult' {locations} -> locations) (\s@AnalysisResult' {} a -> s {locations = a} :: AnalysisResult) Prelude.. Lens.mapping Lens.coerced++-- | Contains additional information about the analysis result.+analysisResult_message :: Lens.Lens' AnalysisResult (Prelude.Maybe Prelude.Text)+analysisResult_message = Lens.lens (\AnalysisResult' {message} -> message) (\s@AnalysisResult' {} a -> s {message = a} :: AnalysisResult)++-- | The type of the analysis result. Analyses fall into the following types+-- based on the validators used to generate the analysis result:+--+-- -   @supported-actions@ - You must specify AWS IoT Events supported+--     actions that work with other AWS services in a supported AWS Region.+--+-- -   @service-limits@ - Resources or API operations can\'t exceed service+--     quotas (also known as limits). Update your detector model or request+--     a quota increase.+--+-- -   @structure@ - The detector model must follow a structure that AWS+--     IoT Events supports.+--+-- -   @expression-syntax@ - Your expression must follow the required+--     syntax.+--+-- -   @data-type@ - Data types referenced in the detector model must be+--     compatible.+--+-- -   @referenced-data@ - You must define the data referenced in your+--     detector model before you can use the data.+--+-- -   @referenced-resource@ - Resources that the detector model uses must+--     be available.+--+-- For more information, see+-- <https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-analyze-api.html Running detector model analyses>+-- in the /AWS IoT Events Developer Guide/.+analysisResult_type :: Lens.Lens' AnalysisResult (Prelude.Maybe Prelude.Text)+analysisResult_type = Lens.lens (\AnalysisResult' {type'} -> type') (\s@AnalysisResult' {} a -> s {type' = a} :: AnalysisResult)++instance Data.FromJSON AnalysisResult where+  parseJSON =+    Data.withObject+      "AnalysisResult"+      ( \x ->+          AnalysisResult'+            Prelude.<$> (x Data..:? "level")+            Prelude.<*> (x Data..:? "locations" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "message")+            Prelude.<*> (x Data..:? "type")+      )++instance Prelude.Hashable AnalysisResult where+  hashWithSalt _salt AnalysisResult' {..} =+    _salt+      `Prelude.hashWithSalt` level+      `Prelude.hashWithSalt` locations+      `Prelude.hashWithSalt` message+      `Prelude.hashWithSalt` type'++instance Prelude.NFData AnalysisResult where+  rnf AnalysisResult' {..} =+    Prelude.rnf level+      `Prelude.seq` Prelude.rnf locations+      `Prelude.seq` Prelude.rnf message+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/IoTEvents/Types/AnalysisResultLevel.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.IoTEvents.Types.AnalysisResultLevel+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.AnalysisResultLevel+  ( AnalysisResultLevel+      ( ..,+        AnalysisResultLevel_ERROR,+        AnalysisResultLevel_INFO,+        AnalysisResultLevel_WARNING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AnalysisResultLevel = AnalysisResultLevel'+  { fromAnalysisResultLevel ::+      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 AnalysisResultLevel_ERROR :: AnalysisResultLevel+pattern AnalysisResultLevel_ERROR = AnalysisResultLevel' "ERROR"++pattern AnalysisResultLevel_INFO :: AnalysisResultLevel+pattern AnalysisResultLevel_INFO = AnalysisResultLevel' "INFO"++pattern AnalysisResultLevel_WARNING :: AnalysisResultLevel+pattern AnalysisResultLevel_WARNING = AnalysisResultLevel' "WARNING"++{-# COMPLETE+  AnalysisResultLevel_ERROR,+  AnalysisResultLevel_INFO,+  AnalysisResultLevel_WARNING,+  AnalysisResultLevel'+  #-}
+ gen/Amazonka/IoTEvents/Types/AnalysisResultLocation.hs view
@@ -0,0 +1,72 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.AnalysisResultLocation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.AnalysisResultLocation 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 that you can use to locate the field in your+-- detector model that the analysis result references.+--+-- /See:/ 'newAnalysisResultLocation' smart constructor.+data AnalysisResultLocation = AnalysisResultLocation'+  { -- | A <https://github.com/json-path/JsonPath JsonPath> expression that+    -- identifies the error field in your detector model.+    path :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnalysisResultLocation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'path', 'analysisResultLocation_path' - A <https://github.com/json-path/JsonPath JsonPath> expression that+-- identifies the error field in your detector model.+newAnalysisResultLocation ::+  AnalysisResultLocation+newAnalysisResultLocation =+  AnalysisResultLocation' {path = Prelude.Nothing}++-- | A <https://github.com/json-path/JsonPath JsonPath> expression that+-- identifies the error field in your detector model.+analysisResultLocation_path :: Lens.Lens' AnalysisResultLocation (Prelude.Maybe Prelude.Text)+analysisResultLocation_path = Lens.lens (\AnalysisResultLocation' {path} -> path) (\s@AnalysisResultLocation' {} a -> s {path = a} :: AnalysisResultLocation)++instance Data.FromJSON AnalysisResultLocation where+  parseJSON =+    Data.withObject+      "AnalysisResultLocation"+      ( \x ->+          AnalysisResultLocation'+            Prelude.<$> (x Data..:? "path")+      )++instance Prelude.Hashable AnalysisResultLocation where+  hashWithSalt _salt AnalysisResultLocation' {..} =+    _salt `Prelude.hashWithSalt` path++instance Prelude.NFData AnalysisResultLocation where+  rnf AnalysisResultLocation' {..} = Prelude.rnf path
+ gen/Amazonka/IoTEvents/Types/AnalysisStatus.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.IoTEvents.Types.AnalysisStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.AnalysisStatus+  ( AnalysisStatus+      ( ..,+        AnalysisStatus_COMPLETE,+        AnalysisStatus_FAILED,+        AnalysisStatus_RUNNING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AnalysisStatus = AnalysisStatus'+  { fromAnalysisStatus ::+      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 AnalysisStatus_COMPLETE :: AnalysisStatus+pattern AnalysisStatus_COMPLETE = AnalysisStatus' "COMPLETE"++pattern AnalysisStatus_FAILED :: AnalysisStatus+pattern AnalysisStatus_FAILED = AnalysisStatus' "FAILED"++pattern AnalysisStatus_RUNNING :: AnalysisStatus+pattern AnalysisStatus_RUNNING = AnalysisStatus' "RUNNING"++{-# COMPLETE+  AnalysisStatus_COMPLETE,+  AnalysisStatus_FAILED,+  AnalysisStatus_RUNNING,+  AnalysisStatus'+  #-}
+ gen/Amazonka/IoTEvents/Types/AssetPropertyTimestamp.hs view
@@ -0,0 +1,134 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.AssetPropertyTimestamp+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.AssetPropertyTimestamp where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A structure that contains timestamp information. For more information,+-- see+-- <https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_TimeInNanos.html TimeInNanos>+-- in the /AWS IoT SiteWise API Reference/.+--+-- You must use expressions for all parameters in @AssetPropertyTimestamp@.+-- The expressions accept literals, operators, functions, references, and+-- substitution templates.+--+-- __Examples__+--+-- -   For literal values, the expressions must contain single quotes. For+--     example, the value for the @timeInSeconds@ parameter can be+--     @\'1586400675\'@.+--+-- -   For references, you must specify either variables or input values.+--     For example, the value for the @offsetInNanos@ parameter can be+--     @$variable.time@.+--+-- -   For a substitution template, you must use @${}@, and the template+--     must be in single quotes. A substitution template can also contain a+--     combination of literals, operators, functions, references, and+--     substitution templates.+--+--     In the following example, the value for the @timeInSeconds@+--     parameter uses a substitution template.+--+--     @\'${$input.TemperatureInput.sensorData.timestamp \/ 1000}\'@+--+-- For more information, see+-- <https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-expressions.html Expressions>+-- in the /AWS IoT Events Developer Guide/.+--+-- /See:/ 'newAssetPropertyTimestamp' smart constructor.+data AssetPropertyTimestamp = AssetPropertyTimestamp'+  { -- | The nanosecond offset converted from @timeInSeconds@. The valid range is+    -- between 0-999999999.+    offsetInNanos :: Prelude.Maybe Prelude.Text,+    -- | The timestamp, in seconds, in the Unix epoch format. The valid range is+    -- between 1-31556889864403199.+    timeInSeconds :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssetPropertyTimestamp' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'offsetInNanos', 'assetPropertyTimestamp_offsetInNanos' - The nanosecond offset converted from @timeInSeconds@. The valid range is+-- between 0-999999999.+--+-- 'timeInSeconds', 'assetPropertyTimestamp_timeInSeconds' - The timestamp, in seconds, in the Unix epoch format. The valid range is+-- between 1-31556889864403199.+newAssetPropertyTimestamp ::+  -- | 'timeInSeconds'+  Prelude.Text ->+  AssetPropertyTimestamp+newAssetPropertyTimestamp pTimeInSeconds_ =+  AssetPropertyTimestamp'+    { offsetInNanos =+        Prelude.Nothing,+      timeInSeconds = pTimeInSeconds_+    }++-- | The nanosecond offset converted from @timeInSeconds@. The valid range is+-- between 0-999999999.+assetPropertyTimestamp_offsetInNanos :: Lens.Lens' AssetPropertyTimestamp (Prelude.Maybe Prelude.Text)+assetPropertyTimestamp_offsetInNanos = Lens.lens (\AssetPropertyTimestamp' {offsetInNanos} -> offsetInNanos) (\s@AssetPropertyTimestamp' {} a -> s {offsetInNanos = a} :: AssetPropertyTimestamp)++-- | The timestamp, in seconds, in the Unix epoch format. The valid range is+-- between 1-31556889864403199.+assetPropertyTimestamp_timeInSeconds :: Lens.Lens' AssetPropertyTimestamp Prelude.Text+assetPropertyTimestamp_timeInSeconds = Lens.lens (\AssetPropertyTimestamp' {timeInSeconds} -> timeInSeconds) (\s@AssetPropertyTimestamp' {} a -> s {timeInSeconds = a} :: AssetPropertyTimestamp)++instance Data.FromJSON AssetPropertyTimestamp where+  parseJSON =+    Data.withObject+      "AssetPropertyTimestamp"+      ( \x ->+          AssetPropertyTimestamp'+            Prelude.<$> (x Data..:? "offsetInNanos")+            Prelude.<*> (x Data..: "timeInSeconds")+      )++instance Prelude.Hashable AssetPropertyTimestamp where+  hashWithSalt _salt AssetPropertyTimestamp' {..} =+    _salt+      `Prelude.hashWithSalt` offsetInNanos+      `Prelude.hashWithSalt` timeInSeconds++instance Prelude.NFData AssetPropertyTimestamp where+  rnf AssetPropertyTimestamp' {..} =+    Prelude.rnf offsetInNanos+      `Prelude.seq` Prelude.rnf timeInSeconds++instance Data.ToJSON AssetPropertyTimestamp where+  toJSON AssetPropertyTimestamp' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("offsetInNanos" Data..=) Prelude.<$> offsetInNanos,+            Prelude.Just+              ("timeInSeconds" Data..= timeInSeconds)+          ]+      )
+ gen/Amazonka/IoTEvents/Types/AssetPropertyValue.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.IoTEvents.Types.AssetPropertyValue+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.AssetPropertyValue where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.AssetPropertyTimestamp+import Amazonka.IoTEvents.Types.AssetPropertyVariant+import qualified Amazonka.Prelude as Prelude++-- | A structure that contains value information. For more information, see+-- <https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_AssetPropertyValue.html AssetPropertyValue>+-- in the /AWS IoT SiteWise API Reference/.+--+-- You must use expressions for all parameters in @AssetPropertyValue@. The+-- expressions accept literals, operators, functions, references, and+-- substitution templates.+--+-- __Examples__+--+-- -   For literal values, the expressions must contain single quotes. For+--     example, the value for the @quality@ parameter can be @\'GOOD\'@.+--+-- -   For references, you must specify either variables or input values.+--     For example, the value for the @quality@ parameter can be+--     @$input.TemperatureInput.sensorData.quality@.+--+-- For more information, see+-- <https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-expressions.html Expressions>+-- in the /AWS IoT Events Developer Guide/.+--+-- /See:/ 'newAssetPropertyValue' smart constructor.+data AssetPropertyValue = AssetPropertyValue'+  { -- | The quality of the asset property value. The value must be @\'GOOD\'@,+    -- @\'BAD\'@, or @\'UNCERTAIN\'@.+    quality :: Prelude.Maybe Prelude.Text,+    -- | The timestamp associated with the asset property value. The default is+    -- the current event time.+    timestamp :: Prelude.Maybe AssetPropertyTimestamp,+    -- | The value to send to an asset property.+    value :: Prelude.Maybe AssetPropertyVariant+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssetPropertyValue' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'quality', 'assetPropertyValue_quality' - The quality of the asset property value. The value must be @\'GOOD\'@,+-- @\'BAD\'@, or @\'UNCERTAIN\'@.+--+-- 'timestamp', 'assetPropertyValue_timestamp' - The timestamp associated with the asset property value. The default is+-- the current event time.+--+-- 'value', 'assetPropertyValue_value' - The value to send to an asset property.+newAssetPropertyValue ::+  AssetPropertyValue+newAssetPropertyValue =+  AssetPropertyValue'+    { quality = Prelude.Nothing,+      timestamp = Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | The quality of the asset property value. The value must be @\'GOOD\'@,+-- @\'BAD\'@, or @\'UNCERTAIN\'@.+assetPropertyValue_quality :: Lens.Lens' AssetPropertyValue (Prelude.Maybe Prelude.Text)+assetPropertyValue_quality = Lens.lens (\AssetPropertyValue' {quality} -> quality) (\s@AssetPropertyValue' {} a -> s {quality = a} :: AssetPropertyValue)++-- | The timestamp associated with the asset property value. The default is+-- the current event time.+assetPropertyValue_timestamp :: Lens.Lens' AssetPropertyValue (Prelude.Maybe AssetPropertyTimestamp)+assetPropertyValue_timestamp = Lens.lens (\AssetPropertyValue' {timestamp} -> timestamp) (\s@AssetPropertyValue' {} a -> s {timestamp = a} :: AssetPropertyValue)++-- | The value to send to an asset property.+assetPropertyValue_value :: Lens.Lens' AssetPropertyValue (Prelude.Maybe AssetPropertyVariant)+assetPropertyValue_value = Lens.lens (\AssetPropertyValue' {value} -> value) (\s@AssetPropertyValue' {} a -> s {value = a} :: AssetPropertyValue)++instance Data.FromJSON AssetPropertyValue where+  parseJSON =+    Data.withObject+      "AssetPropertyValue"+      ( \x ->+          AssetPropertyValue'+            Prelude.<$> (x Data..:? "quality")+            Prelude.<*> (x Data..:? "timestamp")+            Prelude.<*> (x Data..:? "value")+      )++instance Prelude.Hashable AssetPropertyValue where+  hashWithSalt _salt AssetPropertyValue' {..} =+    _salt+      `Prelude.hashWithSalt` quality+      `Prelude.hashWithSalt` timestamp+      `Prelude.hashWithSalt` value++instance Prelude.NFData AssetPropertyValue where+  rnf AssetPropertyValue' {..} =+    Prelude.rnf quality+      `Prelude.seq` Prelude.rnf timestamp+      `Prelude.seq` Prelude.rnf value++instance Data.ToJSON AssetPropertyValue where+  toJSON AssetPropertyValue' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("quality" Data..=) Prelude.<$> quality,+            ("timestamp" Data..=) Prelude.<$> timestamp,+            ("value" Data..=) Prelude.<$> value+          ]+      )
+ gen/Amazonka/IoTEvents/Types/AssetPropertyVariant.hs view
@@ -0,0 +1,171 @@+{-# 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.IoTEvents.Types.AssetPropertyVariant+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.AssetPropertyVariant where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A structure that contains an asset property value. For more information,+-- see+-- <https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_Variant.html Variant>+-- in the /AWS IoT SiteWise API Reference/.+--+-- You must use expressions for all parameters in @AssetPropertyVariant@.+-- The expressions accept literals, operators, functions, references, and+-- substitution templates.+--+-- __Examples__+--+-- -   For literal values, the expressions must contain single quotes. For+--     example, the value for the @integerValue@ parameter can be+--     @\'100\'@.+--+-- -   For references, you must specify either variables or parameters. For+--     example, the value for the @booleanValue@ parameter can be+--     @$variable.offline@.+--+-- -   For a substitution template, you must use @${}@, and the template+--     must be in single quotes. A substitution template can also contain a+--     combination of literals, operators, functions, references, and+--     substitution templates.+--+--     In the following example, the value for the @doubleValue@ parameter+--     uses a substitution template.+--+--     @\'${$input.TemperatureInput.sensorData.temperature * 6 \/ 5 + 32}\'@+--+-- For more information, see+-- <https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-expressions.html Expressions>+-- in the /AWS IoT Events Developer Guide/.+--+-- You must specify one of the following value types, depending on the+-- @dataType@ of the specified asset property. For more information, see+-- <https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_AssetProperty.html AssetProperty>+-- in the /AWS IoT SiteWise API Reference/.+--+-- /See:/ 'newAssetPropertyVariant' smart constructor.+data AssetPropertyVariant = AssetPropertyVariant'+  { -- | The asset property value is a Boolean value that must be @\'TRUE\'@ or+    -- @\'FALSE\'@. You must use an expression, and the evaluated result should+    -- be a Boolean value.+    booleanValue :: Prelude.Maybe Prelude.Text,+    -- | The asset property value is a double. You must use an expression, and+    -- the evaluated result should be a double.+    doubleValue :: Prelude.Maybe Prelude.Text,+    -- | The asset property value is an integer. You must use an expression, and+    -- the evaluated result should be an integer.+    integerValue :: Prelude.Maybe Prelude.Text,+    -- | The asset property value is a string. You must use an expression, and+    -- the evaluated result should be a string.+    stringValue :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssetPropertyVariant' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'booleanValue', 'assetPropertyVariant_booleanValue' - The asset property value is a Boolean value that must be @\'TRUE\'@ or+-- @\'FALSE\'@. You must use an expression, and the evaluated result should+-- be a Boolean value.+--+-- 'doubleValue', 'assetPropertyVariant_doubleValue' - The asset property value is a double. You must use an expression, and+-- the evaluated result should be a double.+--+-- 'integerValue', 'assetPropertyVariant_integerValue' - The asset property value is an integer. You must use an expression, and+-- the evaluated result should be an integer.+--+-- 'stringValue', 'assetPropertyVariant_stringValue' - The asset property value is a string. You must use an expression, and+-- the evaluated result should be a string.+newAssetPropertyVariant ::+  AssetPropertyVariant+newAssetPropertyVariant =+  AssetPropertyVariant'+    { booleanValue =+        Prelude.Nothing,+      doubleValue = Prelude.Nothing,+      integerValue = Prelude.Nothing,+      stringValue = Prelude.Nothing+    }++-- | The asset property value is a Boolean value that must be @\'TRUE\'@ or+-- @\'FALSE\'@. You must use an expression, and the evaluated result should+-- be a Boolean value.+assetPropertyVariant_booleanValue :: Lens.Lens' AssetPropertyVariant (Prelude.Maybe Prelude.Text)+assetPropertyVariant_booleanValue = Lens.lens (\AssetPropertyVariant' {booleanValue} -> booleanValue) (\s@AssetPropertyVariant' {} a -> s {booleanValue = a} :: AssetPropertyVariant)++-- | The asset property value is a double. You must use an expression, and+-- the evaluated result should be a double.+assetPropertyVariant_doubleValue :: Lens.Lens' AssetPropertyVariant (Prelude.Maybe Prelude.Text)+assetPropertyVariant_doubleValue = Lens.lens (\AssetPropertyVariant' {doubleValue} -> doubleValue) (\s@AssetPropertyVariant' {} a -> s {doubleValue = a} :: AssetPropertyVariant)++-- | The asset property value is an integer. You must use an expression, and+-- the evaluated result should be an integer.+assetPropertyVariant_integerValue :: Lens.Lens' AssetPropertyVariant (Prelude.Maybe Prelude.Text)+assetPropertyVariant_integerValue = Lens.lens (\AssetPropertyVariant' {integerValue} -> integerValue) (\s@AssetPropertyVariant' {} a -> s {integerValue = a} :: AssetPropertyVariant)++-- | The asset property value is a string. You must use an expression, and+-- the evaluated result should be a string.+assetPropertyVariant_stringValue :: Lens.Lens' AssetPropertyVariant (Prelude.Maybe Prelude.Text)+assetPropertyVariant_stringValue = Lens.lens (\AssetPropertyVariant' {stringValue} -> stringValue) (\s@AssetPropertyVariant' {} a -> s {stringValue = a} :: AssetPropertyVariant)++instance Data.FromJSON AssetPropertyVariant where+  parseJSON =+    Data.withObject+      "AssetPropertyVariant"+      ( \x ->+          AssetPropertyVariant'+            Prelude.<$> (x Data..:? "booleanValue")+            Prelude.<*> (x Data..:? "doubleValue")+            Prelude.<*> (x Data..:? "integerValue")+            Prelude.<*> (x Data..:? "stringValue")+      )++instance Prelude.Hashable AssetPropertyVariant where+  hashWithSalt _salt AssetPropertyVariant' {..} =+    _salt+      `Prelude.hashWithSalt` booleanValue+      `Prelude.hashWithSalt` doubleValue+      `Prelude.hashWithSalt` integerValue+      `Prelude.hashWithSalt` stringValue++instance Prelude.NFData AssetPropertyVariant where+  rnf AssetPropertyVariant' {..} =+    Prelude.rnf booleanValue+      `Prelude.seq` Prelude.rnf doubleValue+      `Prelude.seq` Prelude.rnf integerValue+      `Prelude.seq` Prelude.rnf stringValue++instance Data.ToJSON AssetPropertyVariant where+  toJSON AssetPropertyVariant' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("booleanValue" Data..=) Prelude.<$> booleanValue,+            ("doubleValue" Data..=) Prelude.<$> doubleValue,+            ("integerValue" Data..=) Prelude.<$> integerValue,+            ("stringValue" Data..=) Prelude.<$> stringValue+          ]+      )
+ gen/Amazonka/IoTEvents/Types/Attribute.hs view
@@ -0,0 +1,101 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.Attribute+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.Attribute where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The attributes from the JSON payload that are made available by the+-- input. Inputs are derived from messages sent to the AWS IoT Events+-- system using @BatchPutMessage@. Each such message contains a JSON+-- payload. Those attributes (and their paired values) specified here are+-- available for use in the @condition@ expressions used by detectors.+--+-- /See:/ 'newAttribute' smart constructor.+data Attribute = Attribute'+  { -- | An expression that specifies an attribute-value pair in a JSON+    -- structure. Use this to specify an attribute from the JSON payload that+    -- is made available by the input. Inputs are derived from messages sent to+    -- AWS IoT Events (@BatchPutMessage@). Each such message contains a JSON+    -- payload. The attribute (and its paired value) specified here are+    -- available for use in the @condition@ expressions used by detectors.+    --+    -- Syntax: @\<field-name>.\<field-name>...@+    jsonPath :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Attribute' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jsonPath', 'attribute_jsonPath' - An expression that specifies an attribute-value pair in a JSON+-- structure. Use this to specify an attribute from the JSON payload that+-- is made available by the input. Inputs are derived from messages sent to+-- AWS IoT Events (@BatchPutMessage@). Each such message contains a JSON+-- payload. The attribute (and its paired value) specified here are+-- available for use in the @condition@ expressions used by detectors.+--+-- Syntax: @\<field-name>.\<field-name>...@+newAttribute ::+  -- | 'jsonPath'+  Prelude.Text ->+  Attribute+newAttribute pJsonPath_ =+  Attribute' {jsonPath = pJsonPath_}++-- | An expression that specifies an attribute-value pair in a JSON+-- structure. Use this to specify an attribute from the JSON payload that+-- is made available by the input. Inputs are derived from messages sent to+-- AWS IoT Events (@BatchPutMessage@). Each such message contains a JSON+-- payload. The attribute (and its paired value) specified here are+-- available for use in the @condition@ expressions used by detectors.+--+-- Syntax: @\<field-name>.\<field-name>...@+attribute_jsonPath :: Lens.Lens' Attribute Prelude.Text+attribute_jsonPath = Lens.lens (\Attribute' {jsonPath} -> jsonPath) (\s@Attribute' {} a -> s {jsonPath = a} :: Attribute)++instance Data.FromJSON Attribute where+  parseJSON =+    Data.withObject+      "Attribute"+      ( \x ->+          Attribute' Prelude.<$> (x Data..: "jsonPath")+      )++instance Prelude.Hashable Attribute where+  hashWithSalt _salt Attribute' {..} =+    _salt `Prelude.hashWithSalt` jsonPath++instance Prelude.NFData Attribute where+  rnf Attribute' {..} = Prelude.rnf jsonPath++instance Data.ToJSON Attribute where+  toJSON Attribute' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("jsonPath" Data..= jsonPath)]+      )
+ gen/Amazonka/IoTEvents/Types/ClearTimerAction.hs view
@@ -0,0 +1,77 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.ClearTimerAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.ClearTimerAction where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information needed to clear the timer.+--+-- /See:/ 'newClearTimerAction' smart constructor.+data ClearTimerAction = ClearTimerAction'+  { -- | The name of the timer to clear.+    timerName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ClearTimerAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'timerName', 'clearTimerAction_timerName' - The name of the timer to clear.+newClearTimerAction ::+  -- | 'timerName'+  Prelude.Text ->+  ClearTimerAction+newClearTimerAction pTimerName_ =+  ClearTimerAction' {timerName = pTimerName_}++-- | The name of the timer to clear.+clearTimerAction_timerName :: Lens.Lens' ClearTimerAction Prelude.Text+clearTimerAction_timerName = Lens.lens (\ClearTimerAction' {timerName} -> timerName) (\s@ClearTimerAction' {} a -> s {timerName = a} :: ClearTimerAction)++instance Data.FromJSON ClearTimerAction where+  parseJSON =+    Data.withObject+      "ClearTimerAction"+      ( \x ->+          ClearTimerAction'+            Prelude.<$> (x Data..: "timerName")+      )++instance Prelude.Hashable ClearTimerAction where+  hashWithSalt _salt ClearTimerAction' {..} =+    _salt `Prelude.hashWithSalt` timerName++instance Prelude.NFData ClearTimerAction where+  rnf ClearTimerAction' {..} = Prelude.rnf timerName++instance Data.ToJSON ClearTimerAction where+  toJSON ClearTimerAction' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("timerName" Data..= timerName)]+      )
+ gen/Amazonka/IoTEvents/Types/ComparisonOperator.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.ComparisonOperator+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.ComparisonOperator+  ( ComparisonOperator+      ( ..,+        ComparisonOperator_EQUAL,+        ComparisonOperator_GREATER,+        ComparisonOperator_GREATER_OR_EQUAL,+        ComparisonOperator_LESS,+        ComparisonOperator_LESS_OR_EQUAL,+        ComparisonOperator_NOT_EQUAL+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ComparisonOperator = ComparisonOperator'+  { fromComparisonOperator ::+      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 ComparisonOperator_EQUAL :: ComparisonOperator+pattern ComparisonOperator_EQUAL = ComparisonOperator' "EQUAL"++pattern ComparisonOperator_GREATER :: ComparisonOperator+pattern ComparisonOperator_GREATER = ComparisonOperator' "GREATER"++pattern ComparisonOperator_GREATER_OR_EQUAL :: ComparisonOperator+pattern ComparisonOperator_GREATER_OR_EQUAL = ComparisonOperator' "GREATER_OR_EQUAL"++pattern ComparisonOperator_LESS :: ComparisonOperator+pattern ComparisonOperator_LESS = ComparisonOperator' "LESS"++pattern ComparisonOperator_LESS_OR_EQUAL :: ComparisonOperator+pattern ComparisonOperator_LESS_OR_EQUAL = ComparisonOperator' "LESS_OR_EQUAL"++pattern ComparisonOperator_NOT_EQUAL :: ComparisonOperator+pattern ComparisonOperator_NOT_EQUAL = ComparisonOperator' "NOT_EQUAL"++{-# COMPLETE+  ComparisonOperator_EQUAL,+  ComparisonOperator_GREATER,+  ComparisonOperator_GREATER_OR_EQUAL,+  ComparisonOperator_LESS,+  ComparisonOperator_LESS_OR_EQUAL,+  ComparisonOperator_NOT_EQUAL,+  ComparisonOperator'+  #-}
+ gen/Amazonka/IoTEvents/Types/DetectorDebugOption.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.IoTEvents.Types.DetectorDebugOption+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.DetectorDebugOption where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The detector model and the specific detectors (instances) for which the+-- logging level is given.+--+-- /See:/ 'newDetectorDebugOption' smart constructor.+data DetectorDebugOption = DetectorDebugOption'+  { -- | The value of the input attribute key used to create the detector (the+    -- instance of the detector model).+    keyValue :: Prelude.Maybe Prelude.Text,+    -- | The name of the detector model.+    detectorModelName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DetectorDebugOption' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'keyValue', 'detectorDebugOption_keyValue' - The value of the input attribute key used to create the detector (the+-- instance of the detector model).+--+-- 'detectorModelName', 'detectorDebugOption_detectorModelName' - The name of the detector model.+newDetectorDebugOption ::+  -- | 'detectorModelName'+  Prelude.Text ->+  DetectorDebugOption+newDetectorDebugOption pDetectorModelName_ =+  DetectorDebugOption'+    { keyValue = Prelude.Nothing,+      detectorModelName = pDetectorModelName_+    }++-- | The value of the input attribute key used to create the detector (the+-- instance of the detector model).+detectorDebugOption_keyValue :: Lens.Lens' DetectorDebugOption (Prelude.Maybe Prelude.Text)+detectorDebugOption_keyValue = Lens.lens (\DetectorDebugOption' {keyValue} -> keyValue) (\s@DetectorDebugOption' {} a -> s {keyValue = a} :: DetectorDebugOption)++-- | The name of the detector model.+detectorDebugOption_detectorModelName :: Lens.Lens' DetectorDebugOption Prelude.Text+detectorDebugOption_detectorModelName = Lens.lens (\DetectorDebugOption' {detectorModelName} -> detectorModelName) (\s@DetectorDebugOption' {} a -> s {detectorModelName = a} :: DetectorDebugOption)++instance Data.FromJSON DetectorDebugOption where+  parseJSON =+    Data.withObject+      "DetectorDebugOption"+      ( \x ->+          DetectorDebugOption'+            Prelude.<$> (x Data..:? "keyValue")+            Prelude.<*> (x Data..: "detectorModelName")+      )++instance Prelude.Hashable DetectorDebugOption where+  hashWithSalt _salt DetectorDebugOption' {..} =+    _salt+      `Prelude.hashWithSalt` keyValue+      `Prelude.hashWithSalt` detectorModelName++instance Prelude.NFData DetectorDebugOption where+  rnf DetectorDebugOption' {..} =+    Prelude.rnf keyValue+      `Prelude.seq` Prelude.rnf detectorModelName++instance Data.ToJSON DetectorDebugOption where+  toJSON DetectorDebugOption' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("keyValue" Data..=) Prelude.<$> keyValue,+            Prelude.Just+              ("detectorModelName" Data..= detectorModelName)+          ]+      )
+ gen/Amazonka/IoTEvents/Types/DetectorModel.hs view
@@ -0,0 +1,87 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.DetectorModel+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.DetectorModel where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.DetectorModelConfiguration+import Amazonka.IoTEvents.Types.DetectorModelDefinition+import qualified Amazonka.Prelude as Prelude++-- | Information about the detector model.+--+-- /See:/ 'newDetectorModel' smart constructor.+data DetectorModel = DetectorModel'+  { -- | Information about how the detector is configured.+    detectorModelConfiguration :: Prelude.Maybe DetectorModelConfiguration,+    -- | Information that defines how a detector operates.+    detectorModelDefinition :: Prelude.Maybe DetectorModelDefinition+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DetectorModel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectorModelConfiguration', 'detectorModel_detectorModelConfiguration' - Information about how the detector is configured.+--+-- 'detectorModelDefinition', 'detectorModel_detectorModelDefinition' - Information that defines how a detector operates.+newDetectorModel ::+  DetectorModel+newDetectorModel =+  DetectorModel'+    { detectorModelConfiguration =+        Prelude.Nothing,+      detectorModelDefinition = Prelude.Nothing+    }++-- | Information about how the detector is configured.+detectorModel_detectorModelConfiguration :: Lens.Lens' DetectorModel (Prelude.Maybe DetectorModelConfiguration)+detectorModel_detectorModelConfiguration = Lens.lens (\DetectorModel' {detectorModelConfiguration} -> detectorModelConfiguration) (\s@DetectorModel' {} a -> s {detectorModelConfiguration = a} :: DetectorModel)++-- | Information that defines how a detector operates.+detectorModel_detectorModelDefinition :: Lens.Lens' DetectorModel (Prelude.Maybe DetectorModelDefinition)+detectorModel_detectorModelDefinition = Lens.lens (\DetectorModel' {detectorModelDefinition} -> detectorModelDefinition) (\s@DetectorModel' {} a -> s {detectorModelDefinition = a} :: DetectorModel)++instance Data.FromJSON DetectorModel where+  parseJSON =+    Data.withObject+      "DetectorModel"+      ( \x ->+          DetectorModel'+            Prelude.<$> (x Data..:? "detectorModelConfiguration")+            Prelude.<*> (x Data..:? "detectorModelDefinition")+      )++instance Prelude.Hashable DetectorModel where+  hashWithSalt _salt DetectorModel' {..} =+    _salt+      `Prelude.hashWithSalt` detectorModelConfiguration+      `Prelude.hashWithSalt` detectorModelDefinition++instance Prelude.NFData DetectorModel where+  rnf DetectorModel' {..} =+    Prelude.rnf detectorModelConfiguration+      `Prelude.seq` Prelude.rnf detectorModelDefinition
+ gen/Amazonka/IoTEvents/Types/DetectorModelConfiguration.hs view
@@ -0,0 +1,213 @@+{-# 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.IoTEvents.Types.DetectorModelConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.DetectorModelConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.DetectorModelVersionStatus+import Amazonka.IoTEvents.Types.EvaluationMethod+import qualified Amazonka.Prelude as Prelude++-- | Information about how the detector model is configured.+--+-- /See:/ 'newDetectorModelConfiguration' smart constructor.+data DetectorModelConfiguration = DetectorModelConfiguration'+  { -- | The time the detector model was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The ARN of the detector model.+    detectorModelArn :: Prelude.Maybe Prelude.Text,+    -- | A brief description of the detector model.+    detectorModelDescription :: Prelude.Maybe Prelude.Text,+    -- | The name of the detector model.+    detectorModelName :: Prelude.Maybe Prelude.Text,+    -- | The version of the detector model.+    detectorModelVersion :: Prelude.Maybe Prelude.Text,+    -- | Information about the order in which events are evaluated and how+    -- actions are executed.+    evaluationMethod :: Prelude.Maybe EvaluationMethod,+    -- | The value used to identify a detector instance. When a device or system+    -- sends input, a new detector instance with a unique key value is created.+    -- AWS IoT Events can continue to route input to its corresponding detector+    -- instance based on this identifying information.+    --+    -- This parameter uses a JSON-path expression to select the attribute-value+    -- pair in the message payload that is used for identification. To route+    -- the message to the correct detector instance, the device must send a+    -- message payload that contains the same attribute-value.+    key :: Prelude.Maybe Prelude.Text,+    -- | The time the detector model was last updated.+    lastUpdateTime :: Prelude.Maybe Data.POSIX,+    -- | The ARN of the role that grants permission to AWS IoT Events to perform+    -- its operations.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The status of the detector model.+    status :: Prelude.Maybe DetectorModelVersionStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DetectorModelConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationTime', 'detectorModelConfiguration_creationTime' - The time the detector model was created.+--+-- 'detectorModelArn', 'detectorModelConfiguration_detectorModelArn' - The ARN of the detector model.+--+-- 'detectorModelDescription', 'detectorModelConfiguration_detectorModelDescription' - A brief description of the detector model.+--+-- 'detectorModelName', 'detectorModelConfiguration_detectorModelName' - The name of the detector model.+--+-- 'detectorModelVersion', 'detectorModelConfiguration_detectorModelVersion' - The version of the detector model.+--+-- 'evaluationMethod', 'detectorModelConfiguration_evaluationMethod' - Information about the order in which events are evaluated and how+-- actions are executed.+--+-- 'key', 'detectorModelConfiguration_key' - The value used to identify a detector instance. When a device or system+-- sends input, a new detector instance with a unique key value is created.+-- AWS IoT Events can continue to route input to its corresponding detector+-- instance based on this identifying information.+--+-- This parameter uses a JSON-path expression to select the attribute-value+-- pair in the message payload that is used for identification. To route+-- the message to the correct detector instance, the device must send a+-- message payload that contains the same attribute-value.+--+-- 'lastUpdateTime', 'detectorModelConfiguration_lastUpdateTime' - The time the detector model was last updated.+--+-- 'roleArn', 'detectorModelConfiguration_roleArn' - The ARN of the role that grants permission to AWS IoT Events to perform+-- its operations.+--+-- 'status', 'detectorModelConfiguration_status' - The status of the detector model.+newDetectorModelConfiguration ::+  DetectorModelConfiguration+newDetectorModelConfiguration =+  DetectorModelConfiguration'+    { creationTime =+        Prelude.Nothing,+      detectorModelArn = Prelude.Nothing,+      detectorModelDescription = Prelude.Nothing,+      detectorModelName = Prelude.Nothing,+      detectorModelVersion = Prelude.Nothing,+      evaluationMethod = Prelude.Nothing,+      key = Prelude.Nothing,+      lastUpdateTime = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The time the detector model was created.+detectorModelConfiguration_creationTime :: Lens.Lens' DetectorModelConfiguration (Prelude.Maybe Prelude.UTCTime)+detectorModelConfiguration_creationTime = Lens.lens (\DetectorModelConfiguration' {creationTime} -> creationTime) (\s@DetectorModelConfiguration' {} a -> s {creationTime = a} :: DetectorModelConfiguration) Prelude.. Lens.mapping Data._Time++-- | The ARN of the detector model.+detectorModelConfiguration_detectorModelArn :: Lens.Lens' DetectorModelConfiguration (Prelude.Maybe Prelude.Text)+detectorModelConfiguration_detectorModelArn = Lens.lens (\DetectorModelConfiguration' {detectorModelArn} -> detectorModelArn) (\s@DetectorModelConfiguration' {} a -> s {detectorModelArn = a} :: DetectorModelConfiguration)++-- | A brief description of the detector model.+detectorModelConfiguration_detectorModelDescription :: Lens.Lens' DetectorModelConfiguration (Prelude.Maybe Prelude.Text)+detectorModelConfiguration_detectorModelDescription = Lens.lens (\DetectorModelConfiguration' {detectorModelDescription} -> detectorModelDescription) (\s@DetectorModelConfiguration' {} a -> s {detectorModelDescription = a} :: DetectorModelConfiguration)++-- | The name of the detector model.+detectorModelConfiguration_detectorModelName :: Lens.Lens' DetectorModelConfiguration (Prelude.Maybe Prelude.Text)+detectorModelConfiguration_detectorModelName = Lens.lens (\DetectorModelConfiguration' {detectorModelName} -> detectorModelName) (\s@DetectorModelConfiguration' {} a -> s {detectorModelName = a} :: DetectorModelConfiguration)++-- | The version of the detector model.+detectorModelConfiguration_detectorModelVersion :: Lens.Lens' DetectorModelConfiguration (Prelude.Maybe Prelude.Text)+detectorModelConfiguration_detectorModelVersion = Lens.lens (\DetectorModelConfiguration' {detectorModelVersion} -> detectorModelVersion) (\s@DetectorModelConfiguration' {} a -> s {detectorModelVersion = a} :: DetectorModelConfiguration)++-- | Information about the order in which events are evaluated and how+-- actions are executed.+detectorModelConfiguration_evaluationMethod :: Lens.Lens' DetectorModelConfiguration (Prelude.Maybe EvaluationMethod)+detectorModelConfiguration_evaluationMethod = Lens.lens (\DetectorModelConfiguration' {evaluationMethod} -> evaluationMethod) (\s@DetectorModelConfiguration' {} a -> s {evaluationMethod = a} :: DetectorModelConfiguration)++-- | The value used to identify a detector instance. When a device or system+-- sends input, a new detector instance with a unique key value is created.+-- AWS IoT Events can continue to route input to its corresponding detector+-- instance based on this identifying information.+--+-- This parameter uses a JSON-path expression to select the attribute-value+-- pair in the message payload that is used for identification. To route+-- the message to the correct detector instance, the device must send a+-- message payload that contains the same attribute-value.+detectorModelConfiguration_key :: Lens.Lens' DetectorModelConfiguration (Prelude.Maybe Prelude.Text)+detectorModelConfiguration_key = Lens.lens (\DetectorModelConfiguration' {key} -> key) (\s@DetectorModelConfiguration' {} a -> s {key = a} :: DetectorModelConfiguration)++-- | The time the detector model was last updated.+detectorModelConfiguration_lastUpdateTime :: Lens.Lens' DetectorModelConfiguration (Prelude.Maybe Prelude.UTCTime)+detectorModelConfiguration_lastUpdateTime = Lens.lens (\DetectorModelConfiguration' {lastUpdateTime} -> lastUpdateTime) (\s@DetectorModelConfiguration' {} a -> s {lastUpdateTime = a} :: DetectorModelConfiguration) Prelude.. Lens.mapping Data._Time++-- | The ARN of the role that grants permission to AWS IoT Events to perform+-- its operations.+detectorModelConfiguration_roleArn :: Lens.Lens' DetectorModelConfiguration (Prelude.Maybe Prelude.Text)+detectorModelConfiguration_roleArn = Lens.lens (\DetectorModelConfiguration' {roleArn} -> roleArn) (\s@DetectorModelConfiguration' {} a -> s {roleArn = a} :: DetectorModelConfiguration)++-- | The status of the detector model.+detectorModelConfiguration_status :: Lens.Lens' DetectorModelConfiguration (Prelude.Maybe DetectorModelVersionStatus)+detectorModelConfiguration_status = Lens.lens (\DetectorModelConfiguration' {status} -> status) (\s@DetectorModelConfiguration' {} a -> s {status = a} :: DetectorModelConfiguration)++instance Data.FromJSON DetectorModelConfiguration where+  parseJSON =+    Data.withObject+      "DetectorModelConfiguration"+      ( \x ->+          DetectorModelConfiguration'+            Prelude.<$> (x Data..:? "creationTime")+            Prelude.<*> (x Data..:? "detectorModelArn")+            Prelude.<*> (x Data..:? "detectorModelDescription")+            Prelude.<*> (x Data..:? "detectorModelName")+            Prelude.<*> (x Data..:? "detectorModelVersion")+            Prelude.<*> (x Data..:? "evaluationMethod")+            Prelude.<*> (x Data..:? "key")+            Prelude.<*> (x Data..:? "lastUpdateTime")+            Prelude.<*> (x Data..:? "roleArn")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable DetectorModelConfiguration where+  hashWithSalt _salt DetectorModelConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` detectorModelArn+      `Prelude.hashWithSalt` detectorModelDescription+      `Prelude.hashWithSalt` detectorModelName+      `Prelude.hashWithSalt` detectorModelVersion+      `Prelude.hashWithSalt` evaluationMethod+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` lastUpdateTime+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` status++instance Prelude.NFData DetectorModelConfiguration where+  rnf DetectorModelConfiguration' {..} =+    Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf detectorModelArn+      `Prelude.seq` Prelude.rnf detectorModelDescription+      `Prelude.seq` Prelude.rnf detectorModelName+      `Prelude.seq` Prelude.rnf detectorModelVersion+      `Prelude.seq` Prelude.rnf evaluationMethod+      `Prelude.seq` Prelude.rnf key+      `Prelude.seq` Prelude.rnf lastUpdateTime+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/IoTEvents/Types/DetectorModelDefinition.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.IoTEvents.Types.DetectorModelDefinition+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.DetectorModelDefinition where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.State+import qualified Amazonka.Prelude as Prelude++-- | Information that defines how a detector operates.+--+-- /See:/ 'newDetectorModelDefinition' smart constructor.+data DetectorModelDefinition = DetectorModelDefinition'+  { -- | Information about the states of the detector.+    states :: Prelude.NonEmpty State,+    -- | The state that is entered at the creation of each detector (instance).+    initialStateName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DetectorModelDefinition' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'states', 'detectorModelDefinition_states' - Information about the states of the detector.+--+-- 'initialStateName', 'detectorModelDefinition_initialStateName' - The state that is entered at the creation of each detector (instance).+newDetectorModelDefinition ::+  -- | 'states'+  Prelude.NonEmpty State ->+  -- | 'initialStateName'+  Prelude.Text ->+  DetectorModelDefinition+newDetectorModelDefinition+  pStates_+  pInitialStateName_ =+    DetectorModelDefinition'+      { states =+          Lens.coerced Lens.# pStates_,+        initialStateName = pInitialStateName_+      }++-- | Information about the states of the detector.+detectorModelDefinition_states :: Lens.Lens' DetectorModelDefinition (Prelude.NonEmpty State)+detectorModelDefinition_states = Lens.lens (\DetectorModelDefinition' {states} -> states) (\s@DetectorModelDefinition' {} a -> s {states = a} :: DetectorModelDefinition) Prelude.. Lens.coerced++-- | The state that is entered at the creation of each detector (instance).+detectorModelDefinition_initialStateName :: Lens.Lens' DetectorModelDefinition Prelude.Text+detectorModelDefinition_initialStateName = Lens.lens (\DetectorModelDefinition' {initialStateName} -> initialStateName) (\s@DetectorModelDefinition' {} a -> s {initialStateName = a} :: DetectorModelDefinition)++instance Data.FromJSON DetectorModelDefinition where+  parseJSON =+    Data.withObject+      "DetectorModelDefinition"+      ( \x ->+          DetectorModelDefinition'+            Prelude.<$> (x Data..: "states")+            Prelude.<*> (x Data..: "initialStateName")+      )++instance Prelude.Hashable DetectorModelDefinition where+  hashWithSalt _salt DetectorModelDefinition' {..} =+    _salt+      `Prelude.hashWithSalt` states+      `Prelude.hashWithSalt` initialStateName++instance Prelude.NFData DetectorModelDefinition where+  rnf DetectorModelDefinition' {..} =+    Prelude.rnf states+      `Prelude.seq` Prelude.rnf initialStateName++instance Data.ToJSON DetectorModelDefinition where+  toJSON DetectorModelDefinition' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("states" Data..= states),+            Prelude.Just+              ("initialStateName" Data..= initialStateName)+          ]+      )
+ gen/Amazonka/IoTEvents/Types/DetectorModelSummary.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.DetectorModelSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.DetectorModelSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about the detector model.+--+-- /See:/ 'newDetectorModelSummary' smart constructor.+data DetectorModelSummary = DetectorModelSummary'+  { -- | The time the detector model was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | A brief description of the detector model.+    detectorModelDescription :: Prelude.Maybe Prelude.Text,+    -- | The name of the detector model.+    detectorModelName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DetectorModelSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationTime', 'detectorModelSummary_creationTime' - The time the detector model was created.+--+-- 'detectorModelDescription', 'detectorModelSummary_detectorModelDescription' - A brief description of the detector model.+--+-- 'detectorModelName', 'detectorModelSummary_detectorModelName' - The name of the detector model.+newDetectorModelSummary ::+  DetectorModelSummary+newDetectorModelSummary =+  DetectorModelSummary'+    { creationTime =+        Prelude.Nothing,+      detectorModelDescription = Prelude.Nothing,+      detectorModelName = Prelude.Nothing+    }++-- | The time the detector model was created.+detectorModelSummary_creationTime :: Lens.Lens' DetectorModelSummary (Prelude.Maybe Prelude.UTCTime)+detectorModelSummary_creationTime = Lens.lens (\DetectorModelSummary' {creationTime} -> creationTime) (\s@DetectorModelSummary' {} a -> s {creationTime = a} :: DetectorModelSummary) Prelude.. Lens.mapping Data._Time++-- | A brief description of the detector model.+detectorModelSummary_detectorModelDescription :: Lens.Lens' DetectorModelSummary (Prelude.Maybe Prelude.Text)+detectorModelSummary_detectorModelDescription = Lens.lens (\DetectorModelSummary' {detectorModelDescription} -> detectorModelDescription) (\s@DetectorModelSummary' {} a -> s {detectorModelDescription = a} :: DetectorModelSummary)++-- | The name of the detector model.+detectorModelSummary_detectorModelName :: Lens.Lens' DetectorModelSummary (Prelude.Maybe Prelude.Text)+detectorModelSummary_detectorModelName = Lens.lens (\DetectorModelSummary' {detectorModelName} -> detectorModelName) (\s@DetectorModelSummary' {} a -> s {detectorModelName = a} :: DetectorModelSummary)++instance Data.FromJSON DetectorModelSummary where+  parseJSON =+    Data.withObject+      "DetectorModelSummary"+      ( \x ->+          DetectorModelSummary'+            Prelude.<$> (x Data..:? "creationTime")+            Prelude.<*> (x Data..:? "detectorModelDescription")+            Prelude.<*> (x Data..:? "detectorModelName")+      )++instance Prelude.Hashable DetectorModelSummary where+  hashWithSalt _salt DetectorModelSummary' {..} =+    _salt+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` detectorModelDescription+      `Prelude.hashWithSalt` detectorModelName++instance Prelude.NFData DetectorModelSummary where+  rnf DetectorModelSummary' {..} =+    Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf detectorModelDescription+      `Prelude.seq` Prelude.rnf detectorModelName
+ gen/Amazonka/IoTEvents/Types/DetectorModelVersionStatus.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.IoTEvents.Types.DetectorModelVersionStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.DetectorModelVersionStatus+  ( DetectorModelVersionStatus+      ( ..,+        DetectorModelVersionStatus_ACTIVATING,+        DetectorModelVersionStatus_ACTIVE,+        DetectorModelVersionStatus_DEPRECATED,+        DetectorModelVersionStatus_DRAFT,+        DetectorModelVersionStatus_FAILED,+        DetectorModelVersionStatus_INACTIVE,+        DetectorModelVersionStatus_PAUSED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DetectorModelVersionStatus = DetectorModelVersionStatus'+  { fromDetectorModelVersionStatus ::+      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 DetectorModelVersionStatus_ACTIVATING :: DetectorModelVersionStatus+pattern DetectorModelVersionStatus_ACTIVATING = DetectorModelVersionStatus' "ACTIVATING"++pattern DetectorModelVersionStatus_ACTIVE :: DetectorModelVersionStatus+pattern DetectorModelVersionStatus_ACTIVE = DetectorModelVersionStatus' "ACTIVE"++pattern DetectorModelVersionStatus_DEPRECATED :: DetectorModelVersionStatus+pattern DetectorModelVersionStatus_DEPRECATED = DetectorModelVersionStatus' "DEPRECATED"++pattern DetectorModelVersionStatus_DRAFT :: DetectorModelVersionStatus+pattern DetectorModelVersionStatus_DRAFT = DetectorModelVersionStatus' "DRAFT"++pattern DetectorModelVersionStatus_FAILED :: DetectorModelVersionStatus+pattern DetectorModelVersionStatus_FAILED = DetectorModelVersionStatus' "FAILED"++pattern DetectorModelVersionStatus_INACTIVE :: DetectorModelVersionStatus+pattern DetectorModelVersionStatus_INACTIVE = DetectorModelVersionStatus' "INACTIVE"++pattern DetectorModelVersionStatus_PAUSED :: DetectorModelVersionStatus+pattern DetectorModelVersionStatus_PAUSED = DetectorModelVersionStatus' "PAUSED"++{-# COMPLETE+  DetectorModelVersionStatus_ACTIVATING,+  DetectorModelVersionStatus_ACTIVE,+  DetectorModelVersionStatus_DEPRECATED,+  DetectorModelVersionStatus_DRAFT,+  DetectorModelVersionStatus_FAILED,+  DetectorModelVersionStatus_INACTIVE,+  DetectorModelVersionStatus_PAUSED,+  DetectorModelVersionStatus'+  #-}
+ gen/Amazonka/IoTEvents/Types/DetectorModelVersionSummary.hs view
@@ -0,0 +1,165 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.DetectorModelVersionSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.DetectorModelVersionSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.DetectorModelVersionStatus+import Amazonka.IoTEvents.Types.EvaluationMethod+import qualified Amazonka.Prelude as Prelude++-- | Information about the detector model version.+--+-- /See:/ 'newDetectorModelVersionSummary' smart constructor.+data DetectorModelVersionSummary = DetectorModelVersionSummary'+  { -- | The time the detector model version was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The ARN of the detector model version.+    detectorModelArn :: Prelude.Maybe Prelude.Text,+    -- | The name of the detector model.+    detectorModelName :: Prelude.Maybe Prelude.Text,+    -- | The ID of the detector model version.+    detectorModelVersion :: Prelude.Maybe Prelude.Text,+    -- | Information about the order in which events are evaluated and how+    -- actions are executed.+    evaluationMethod :: Prelude.Maybe EvaluationMethod,+    -- | The last time the detector model version was updated.+    lastUpdateTime :: Prelude.Maybe Data.POSIX,+    -- | The ARN of the role that grants the detector model permission to perform+    -- its tasks.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The status of the detector model version.+    status :: Prelude.Maybe DetectorModelVersionStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DetectorModelVersionSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationTime', 'detectorModelVersionSummary_creationTime' - The time the detector model version was created.+--+-- 'detectorModelArn', 'detectorModelVersionSummary_detectorModelArn' - The ARN of the detector model version.+--+-- 'detectorModelName', 'detectorModelVersionSummary_detectorModelName' - The name of the detector model.+--+-- 'detectorModelVersion', 'detectorModelVersionSummary_detectorModelVersion' - The ID of the detector model version.+--+-- 'evaluationMethod', 'detectorModelVersionSummary_evaluationMethod' - Information about the order in which events are evaluated and how+-- actions are executed.+--+-- 'lastUpdateTime', 'detectorModelVersionSummary_lastUpdateTime' - The last time the detector model version was updated.+--+-- 'roleArn', 'detectorModelVersionSummary_roleArn' - The ARN of the role that grants the detector model permission to perform+-- its tasks.+--+-- 'status', 'detectorModelVersionSummary_status' - The status of the detector model version.+newDetectorModelVersionSummary ::+  DetectorModelVersionSummary+newDetectorModelVersionSummary =+  DetectorModelVersionSummary'+    { creationTime =+        Prelude.Nothing,+      detectorModelArn = Prelude.Nothing,+      detectorModelName = Prelude.Nothing,+      detectorModelVersion = Prelude.Nothing,+      evaluationMethod = Prelude.Nothing,+      lastUpdateTime = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The time the detector model version was created.+detectorModelVersionSummary_creationTime :: Lens.Lens' DetectorModelVersionSummary (Prelude.Maybe Prelude.UTCTime)+detectorModelVersionSummary_creationTime = Lens.lens (\DetectorModelVersionSummary' {creationTime} -> creationTime) (\s@DetectorModelVersionSummary' {} a -> s {creationTime = a} :: DetectorModelVersionSummary) Prelude.. Lens.mapping Data._Time++-- | The ARN of the detector model version.+detectorModelVersionSummary_detectorModelArn :: Lens.Lens' DetectorModelVersionSummary (Prelude.Maybe Prelude.Text)+detectorModelVersionSummary_detectorModelArn = Lens.lens (\DetectorModelVersionSummary' {detectorModelArn} -> detectorModelArn) (\s@DetectorModelVersionSummary' {} a -> s {detectorModelArn = a} :: DetectorModelVersionSummary)++-- | The name of the detector model.+detectorModelVersionSummary_detectorModelName :: Lens.Lens' DetectorModelVersionSummary (Prelude.Maybe Prelude.Text)+detectorModelVersionSummary_detectorModelName = Lens.lens (\DetectorModelVersionSummary' {detectorModelName} -> detectorModelName) (\s@DetectorModelVersionSummary' {} a -> s {detectorModelName = a} :: DetectorModelVersionSummary)++-- | The ID of the detector model version.+detectorModelVersionSummary_detectorModelVersion :: Lens.Lens' DetectorModelVersionSummary (Prelude.Maybe Prelude.Text)+detectorModelVersionSummary_detectorModelVersion = Lens.lens (\DetectorModelVersionSummary' {detectorModelVersion} -> detectorModelVersion) (\s@DetectorModelVersionSummary' {} a -> s {detectorModelVersion = a} :: DetectorModelVersionSummary)++-- | Information about the order in which events are evaluated and how+-- actions are executed.+detectorModelVersionSummary_evaluationMethod :: Lens.Lens' DetectorModelVersionSummary (Prelude.Maybe EvaluationMethod)+detectorModelVersionSummary_evaluationMethod = Lens.lens (\DetectorModelVersionSummary' {evaluationMethod} -> evaluationMethod) (\s@DetectorModelVersionSummary' {} a -> s {evaluationMethod = a} :: DetectorModelVersionSummary)++-- | The last time the detector model version was updated.+detectorModelVersionSummary_lastUpdateTime :: Lens.Lens' DetectorModelVersionSummary (Prelude.Maybe Prelude.UTCTime)+detectorModelVersionSummary_lastUpdateTime = Lens.lens (\DetectorModelVersionSummary' {lastUpdateTime} -> lastUpdateTime) (\s@DetectorModelVersionSummary' {} a -> s {lastUpdateTime = a} :: DetectorModelVersionSummary) Prelude.. Lens.mapping Data._Time++-- | The ARN of the role that grants the detector model permission to perform+-- its tasks.+detectorModelVersionSummary_roleArn :: Lens.Lens' DetectorModelVersionSummary (Prelude.Maybe Prelude.Text)+detectorModelVersionSummary_roleArn = Lens.lens (\DetectorModelVersionSummary' {roleArn} -> roleArn) (\s@DetectorModelVersionSummary' {} a -> s {roleArn = a} :: DetectorModelVersionSummary)++-- | The status of the detector model version.+detectorModelVersionSummary_status :: Lens.Lens' DetectorModelVersionSummary (Prelude.Maybe DetectorModelVersionStatus)+detectorModelVersionSummary_status = Lens.lens (\DetectorModelVersionSummary' {status} -> status) (\s@DetectorModelVersionSummary' {} a -> s {status = a} :: DetectorModelVersionSummary)++instance Data.FromJSON DetectorModelVersionSummary where+  parseJSON =+    Data.withObject+      "DetectorModelVersionSummary"+      ( \x ->+          DetectorModelVersionSummary'+            Prelude.<$> (x Data..:? "creationTime")+            Prelude.<*> (x Data..:? "detectorModelArn")+            Prelude.<*> (x Data..:? "detectorModelName")+            Prelude.<*> (x Data..:? "detectorModelVersion")+            Prelude.<*> (x Data..:? "evaluationMethod")+            Prelude.<*> (x Data..:? "lastUpdateTime")+            Prelude.<*> (x Data..:? "roleArn")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable DetectorModelVersionSummary where+  hashWithSalt _salt DetectorModelVersionSummary' {..} =+    _salt+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` detectorModelArn+      `Prelude.hashWithSalt` detectorModelName+      `Prelude.hashWithSalt` detectorModelVersion+      `Prelude.hashWithSalt` evaluationMethod+      `Prelude.hashWithSalt` lastUpdateTime+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` status++instance Prelude.NFData DetectorModelVersionSummary where+  rnf DetectorModelVersionSummary' {..} =+    Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf detectorModelArn+      `Prelude.seq` Prelude.rnf detectorModelName+      `Prelude.seq` Prelude.rnf detectorModelVersion+      `Prelude.seq` Prelude.rnf evaluationMethod+      `Prelude.seq` Prelude.rnf lastUpdateTime+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/IoTEvents/Types/DynamoDBAction.hs view
@@ -0,0 +1,374 @@+{-# 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.IoTEvents.Types.DynamoDBAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.DynamoDBAction where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.Payload+import qualified Amazonka.Prelude as Prelude++-- | Defines an action to write to the Amazon DynamoDB table that you+-- created. The standard action payload contains all the information about+-- the detector model instance and the event that triggered the action. You+-- can customize the+-- <https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html payload>.+-- One column of the DynamoDB table receives all attribute-value pairs in+-- the payload that you specify.+--+-- You must use expressions for all parameters in @DynamoDBAction@. The+-- expressions accept literals, operators, functions, references, and+-- substitution templates.+--+-- __Examples__+--+-- -   For literal values, the expressions must contain single quotes. For+--     example, the value for the @hashKeyType@ parameter can be+--     @\'STRING\'@.+--+-- -   For references, you must specify either variables or input values.+--     For example, the value for the @hashKeyField@ parameter can be+--     @$input.GreenhouseInput.name@.+--+-- -   For a substitution template, you must use @${}@, and the template+--     must be in single quotes. A substitution template can also contain a+--     combination of literals, operators, functions, references, and+--     substitution templates.+--+--     In the following example, the value for the @hashKeyValue@ parameter+--     uses a substitution template.+--+--     @\'${$input.GreenhouseInput.temperature * 6 \/ 5 + 32} in Fahrenheit\'@+--+-- -   For a string concatenation, you must use @+@. A string concatenation+--     can also contain a combination of literals, operators, functions,+--     references, and substitution templates.+--+--     In the following example, the value for the @tableName@ parameter+--     uses a string concatenation.+--+--     @\'GreenhouseTemperatureTable \' + $input.GreenhouseInput.date@+--+-- For more information, see+-- <https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-expressions.html Expressions>+-- in the /AWS IoT Events Developer Guide/.+--+-- If the defined payload type is a string, @DynamoDBAction@ writes+-- non-JSON data to the DynamoDB table as binary data. The DynamoDB console+-- displays the data as Base64-encoded text. The value for the+-- @payloadField@ parameter is @\<payload-field>_raw@.+--+-- /See:/ 'newDynamoDBAction' smart constructor.+data DynamoDBAction = DynamoDBAction'+  { -- | The data type for the hash key (also called the partition key). You can+    -- specify the following values:+    --+    -- -   @\'STRING\'@ - The hash key is a string.+    --+    -- -   @\'NUMBER\'@ - The hash key is a number.+    --+    -- If you don\'t specify @hashKeyType@, the default value is @\'STRING\'@.+    hashKeyType :: Prelude.Maybe Prelude.Text,+    -- | The type of operation to perform. You can specify the following values:+    --+    -- -   @\'INSERT\'@ - Insert data as a new item into the DynamoDB table.+    --     This item uses the specified hash key as a partition key. If you+    --     specified a range key, the item uses the range key as a sort key.+    --+    -- -   @\'UPDATE\'@ - Update an existing item of the DynamoDB table with+    --     new data. This item\'s partition key must match the specified hash+    --     key. If you specified a range key, the range key must match the+    --     item\'s sort key.+    --+    -- -   @\'DELETE\'@ - Delete an existing item of the DynamoDB table. This+    --     item\'s partition key must match the specified hash key. If you+    --     specified a range key, the range key must match the item\'s sort+    --     key.+    --+    -- If you don\'t specify this parameter, AWS IoT Events triggers the+    -- @\'INSERT\'@ operation.+    operation :: Prelude.Maybe Prelude.Text,+    payload :: Prelude.Maybe Payload,+    -- | The name of the DynamoDB column that receives the action payload.+    --+    -- If you don\'t specify this parameter, the name of the DynamoDB column is+    -- @payload@.+    payloadField :: Prelude.Maybe Prelude.Text,+    -- | The name of the range key (also called the sort key). The+    -- @rangeKeyField@ value must match the sort key of the target DynamoDB+    -- table.+    rangeKeyField :: Prelude.Maybe Prelude.Text,+    -- | The data type for the range key (also called the sort key), You can+    -- specify the following values:+    --+    -- -   @\'STRING\'@ - The range key is a string.+    --+    -- -   @\'NUMBER\'@ - The range key is number.+    --+    -- If you don\'t specify @rangeKeyField@, the default value is+    -- @\'STRING\'@.+    rangeKeyType :: Prelude.Maybe Prelude.Text,+    -- | The value of the range key (also called the sort key).+    rangeKeyValue :: Prelude.Maybe Prelude.Text,+    -- | The name of the hash key (also called the partition key). The+    -- @hashKeyField@ value must match the partition key of the target DynamoDB+    -- table.+    hashKeyField :: Prelude.Text,+    -- | The value of the hash key (also called the partition key).+    hashKeyValue :: Prelude.Text,+    -- | The name of the DynamoDB table. The @tableName@ value must match the+    -- table name of the target DynamoDB table.+    tableName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DynamoDBAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'hashKeyType', 'dynamoDBAction_hashKeyType' - The data type for the hash key (also called the partition key). You can+-- specify the following values:+--+-- -   @\'STRING\'@ - The hash key is a string.+--+-- -   @\'NUMBER\'@ - The hash key is a number.+--+-- If you don\'t specify @hashKeyType@, the default value is @\'STRING\'@.+--+-- 'operation', 'dynamoDBAction_operation' - The type of operation to perform. You can specify the following values:+--+-- -   @\'INSERT\'@ - Insert data as a new item into the DynamoDB table.+--     This item uses the specified hash key as a partition key. If you+--     specified a range key, the item uses the range key as a sort key.+--+-- -   @\'UPDATE\'@ - Update an existing item of the DynamoDB table with+--     new data. This item\'s partition key must match the specified hash+--     key. If you specified a range key, the range key must match the+--     item\'s sort key.+--+-- -   @\'DELETE\'@ - Delete an existing item of the DynamoDB table. This+--     item\'s partition key must match the specified hash key. If you+--     specified a range key, the range key must match the item\'s sort+--     key.+--+-- If you don\'t specify this parameter, AWS IoT Events triggers the+-- @\'INSERT\'@ operation.+--+-- 'payload', 'dynamoDBAction_payload' - Undocumented member.+--+-- 'payloadField', 'dynamoDBAction_payloadField' - The name of the DynamoDB column that receives the action payload.+--+-- If you don\'t specify this parameter, the name of the DynamoDB column is+-- @payload@.+--+-- 'rangeKeyField', 'dynamoDBAction_rangeKeyField' - The name of the range key (also called the sort key). The+-- @rangeKeyField@ value must match the sort key of the target DynamoDB+-- table.+--+-- 'rangeKeyType', 'dynamoDBAction_rangeKeyType' - The data type for the range key (also called the sort key), You can+-- specify the following values:+--+-- -   @\'STRING\'@ - The range key is a string.+--+-- -   @\'NUMBER\'@ - The range key is number.+--+-- If you don\'t specify @rangeKeyField@, the default value is+-- @\'STRING\'@.+--+-- 'rangeKeyValue', 'dynamoDBAction_rangeKeyValue' - The value of the range key (also called the sort key).+--+-- 'hashKeyField', 'dynamoDBAction_hashKeyField' - The name of the hash key (also called the partition key). The+-- @hashKeyField@ value must match the partition key of the target DynamoDB+-- table.+--+-- 'hashKeyValue', 'dynamoDBAction_hashKeyValue' - The value of the hash key (also called the partition key).+--+-- 'tableName', 'dynamoDBAction_tableName' - The name of the DynamoDB table. The @tableName@ value must match the+-- table name of the target DynamoDB table.+newDynamoDBAction ::+  -- | 'hashKeyField'+  Prelude.Text ->+  -- | 'hashKeyValue'+  Prelude.Text ->+  -- | 'tableName'+  Prelude.Text ->+  DynamoDBAction+newDynamoDBAction+  pHashKeyField_+  pHashKeyValue_+  pTableName_ =+    DynamoDBAction'+      { hashKeyType = Prelude.Nothing,+        operation = Prelude.Nothing,+        payload = Prelude.Nothing,+        payloadField = Prelude.Nothing,+        rangeKeyField = Prelude.Nothing,+        rangeKeyType = Prelude.Nothing,+        rangeKeyValue = Prelude.Nothing,+        hashKeyField = pHashKeyField_,+        hashKeyValue = pHashKeyValue_,+        tableName = pTableName_+      }++-- | The data type for the hash key (also called the partition key). You can+-- specify the following values:+--+-- -   @\'STRING\'@ - The hash key is a string.+--+-- -   @\'NUMBER\'@ - The hash key is a number.+--+-- If you don\'t specify @hashKeyType@, the default value is @\'STRING\'@.+dynamoDBAction_hashKeyType :: Lens.Lens' DynamoDBAction (Prelude.Maybe Prelude.Text)+dynamoDBAction_hashKeyType = Lens.lens (\DynamoDBAction' {hashKeyType} -> hashKeyType) (\s@DynamoDBAction' {} a -> s {hashKeyType = a} :: DynamoDBAction)++-- | The type of operation to perform. You can specify the following values:+--+-- -   @\'INSERT\'@ - Insert data as a new item into the DynamoDB table.+--     This item uses the specified hash key as a partition key. If you+--     specified a range key, the item uses the range key as a sort key.+--+-- -   @\'UPDATE\'@ - Update an existing item of the DynamoDB table with+--     new data. This item\'s partition key must match the specified hash+--     key. If you specified a range key, the range key must match the+--     item\'s sort key.+--+-- -   @\'DELETE\'@ - Delete an existing item of the DynamoDB table. This+--     item\'s partition key must match the specified hash key. If you+--     specified a range key, the range key must match the item\'s sort+--     key.+--+-- If you don\'t specify this parameter, AWS IoT Events triggers the+-- @\'INSERT\'@ operation.+dynamoDBAction_operation :: Lens.Lens' DynamoDBAction (Prelude.Maybe Prelude.Text)+dynamoDBAction_operation = Lens.lens (\DynamoDBAction' {operation} -> operation) (\s@DynamoDBAction' {} a -> s {operation = a} :: DynamoDBAction)++-- | Undocumented member.+dynamoDBAction_payload :: Lens.Lens' DynamoDBAction (Prelude.Maybe Payload)+dynamoDBAction_payload = Lens.lens (\DynamoDBAction' {payload} -> payload) (\s@DynamoDBAction' {} a -> s {payload = a} :: DynamoDBAction)++-- | The name of the DynamoDB column that receives the action payload.+--+-- If you don\'t specify this parameter, the name of the DynamoDB column is+-- @payload@.+dynamoDBAction_payloadField :: Lens.Lens' DynamoDBAction (Prelude.Maybe Prelude.Text)+dynamoDBAction_payloadField = Lens.lens (\DynamoDBAction' {payloadField} -> payloadField) (\s@DynamoDBAction' {} a -> s {payloadField = a} :: DynamoDBAction)++-- | The name of the range key (also called the sort key). The+-- @rangeKeyField@ value must match the sort key of the target DynamoDB+-- table.+dynamoDBAction_rangeKeyField :: Lens.Lens' DynamoDBAction (Prelude.Maybe Prelude.Text)+dynamoDBAction_rangeKeyField = Lens.lens (\DynamoDBAction' {rangeKeyField} -> rangeKeyField) (\s@DynamoDBAction' {} a -> s {rangeKeyField = a} :: DynamoDBAction)++-- | The data type for the range key (also called the sort key), You can+-- specify the following values:+--+-- -   @\'STRING\'@ - The range key is a string.+--+-- -   @\'NUMBER\'@ - The range key is number.+--+-- If you don\'t specify @rangeKeyField@, the default value is+-- @\'STRING\'@.+dynamoDBAction_rangeKeyType :: Lens.Lens' DynamoDBAction (Prelude.Maybe Prelude.Text)+dynamoDBAction_rangeKeyType = Lens.lens (\DynamoDBAction' {rangeKeyType} -> rangeKeyType) (\s@DynamoDBAction' {} a -> s {rangeKeyType = a} :: DynamoDBAction)++-- | The value of the range key (also called the sort key).+dynamoDBAction_rangeKeyValue :: Lens.Lens' DynamoDBAction (Prelude.Maybe Prelude.Text)+dynamoDBAction_rangeKeyValue = Lens.lens (\DynamoDBAction' {rangeKeyValue} -> rangeKeyValue) (\s@DynamoDBAction' {} a -> s {rangeKeyValue = a} :: DynamoDBAction)++-- | The name of the hash key (also called the partition key). The+-- @hashKeyField@ value must match the partition key of the target DynamoDB+-- table.+dynamoDBAction_hashKeyField :: Lens.Lens' DynamoDBAction Prelude.Text+dynamoDBAction_hashKeyField = Lens.lens (\DynamoDBAction' {hashKeyField} -> hashKeyField) (\s@DynamoDBAction' {} a -> s {hashKeyField = a} :: DynamoDBAction)++-- | The value of the hash key (also called the partition key).+dynamoDBAction_hashKeyValue :: Lens.Lens' DynamoDBAction Prelude.Text+dynamoDBAction_hashKeyValue = Lens.lens (\DynamoDBAction' {hashKeyValue} -> hashKeyValue) (\s@DynamoDBAction' {} a -> s {hashKeyValue = a} :: DynamoDBAction)++-- | The name of the DynamoDB table. The @tableName@ value must match the+-- table name of the target DynamoDB table.+dynamoDBAction_tableName :: Lens.Lens' DynamoDBAction Prelude.Text+dynamoDBAction_tableName = Lens.lens (\DynamoDBAction' {tableName} -> tableName) (\s@DynamoDBAction' {} a -> s {tableName = a} :: DynamoDBAction)++instance Data.FromJSON DynamoDBAction where+  parseJSON =+    Data.withObject+      "DynamoDBAction"+      ( \x ->+          DynamoDBAction'+            Prelude.<$> (x Data..:? "hashKeyType")+            Prelude.<*> (x Data..:? "operation")+            Prelude.<*> (x Data..:? "payload")+            Prelude.<*> (x Data..:? "payloadField")+            Prelude.<*> (x Data..:? "rangeKeyField")+            Prelude.<*> (x Data..:? "rangeKeyType")+            Prelude.<*> (x Data..:? "rangeKeyValue")+            Prelude.<*> (x Data..: "hashKeyField")+            Prelude.<*> (x Data..: "hashKeyValue")+            Prelude.<*> (x Data..: "tableName")+      )++instance Prelude.Hashable DynamoDBAction where+  hashWithSalt _salt DynamoDBAction' {..} =+    _salt+      `Prelude.hashWithSalt` hashKeyType+      `Prelude.hashWithSalt` operation+      `Prelude.hashWithSalt` payload+      `Prelude.hashWithSalt` payloadField+      `Prelude.hashWithSalt` rangeKeyField+      `Prelude.hashWithSalt` rangeKeyType+      `Prelude.hashWithSalt` rangeKeyValue+      `Prelude.hashWithSalt` hashKeyField+      `Prelude.hashWithSalt` hashKeyValue+      `Prelude.hashWithSalt` tableName++instance Prelude.NFData DynamoDBAction where+  rnf DynamoDBAction' {..} =+    Prelude.rnf hashKeyType+      `Prelude.seq` Prelude.rnf operation+      `Prelude.seq` Prelude.rnf payload+      `Prelude.seq` Prelude.rnf payloadField+      `Prelude.seq` Prelude.rnf rangeKeyField+      `Prelude.seq` Prelude.rnf rangeKeyType+      `Prelude.seq` Prelude.rnf rangeKeyValue+      `Prelude.seq` Prelude.rnf hashKeyField+      `Prelude.seq` Prelude.rnf hashKeyValue+      `Prelude.seq` Prelude.rnf tableName++instance Data.ToJSON DynamoDBAction where+  toJSON DynamoDBAction' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("hashKeyType" Data..=) Prelude.<$> hashKeyType,+            ("operation" Data..=) Prelude.<$> operation,+            ("payload" Data..=) Prelude.<$> payload,+            ("payloadField" Data..=) Prelude.<$> payloadField,+            ("rangeKeyField" Data..=) Prelude.<$> rangeKeyField,+            ("rangeKeyType" Data..=) Prelude.<$> rangeKeyType,+            ("rangeKeyValue" Data..=) Prelude.<$> rangeKeyValue,+            Prelude.Just ("hashKeyField" Data..= hashKeyField),+            Prelude.Just ("hashKeyValue" Data..= hashKeyValue),+            Prelude.Just ("tableName" Data..= tableName)+          ]+      )
+ gen/Amazonka/IoTEvents/Types/DynamoDBv2Action.hs view
@@ -0,0 +1,140 @@+{-# 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.IoTEvents.Types.DynamoDBv2Action+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.DynamoDBv2Action where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.Payload+import qualified Amazonka.Prelude as Prelude++-- | Defines an action to write to the Amazon DynamoDB table that you+-- created. The default action payload contains all the information about+-- the detector model instance and the event that triggered the action. You+-- can customize the+-- <https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html payload>.+-- A separate column of the DynamoDB table receives one attribute-value+-- pair in the payload that you specify.+--+-- You must use expressions for all parameters in @DynamoDBv2Action@. The+-- expressions accept literals, operators, functions, references, and+-- substitution templates.+--+-- __Examples__+--+-- -   For literal values, the expressions must contain single quotes. For+--     example, the value for the @tableName@ parameter can be+--     @\'GreenhouseTemperatureTable\'@.+--+-- -   For references, you must specify either variables or input values.+--     For example, the value for the @tableName@ parameter can be+--     @$variable.ddbtableName@.+--+-- -   For a substitution template, you must use @${}@, and the template+--     must be in single quotes. A substitution template can also contain a+--     combination of literals, operators, functions, references, and+--     substitution templates.+--+--     In the following example, the value for the @contentExpression@+--     parameter in @Payload@ uses a substitution template.+--+--     @\'{\\\"sensorID\\\": \\\"${$input.GreenhouseInput.sensor_id}\\\", \\\"temperature\\\": \\\"${$input.GreenhouseInput.temperature * 9 \/ 5 + 32}\\\"}\'@+--+-- -   For a string concatenation, you must use @+@. A string concatenation+--     can also contain a combination of literals, operators, functions,+--     references, and substitution templates.+--+--     In the following example, the value for the @tableName@ parameter+--     uses a string concatenation.+--+--     @\'GreenhouseTemperatureTable \' + $input.GreenhouseInput.date@+--+-- For more information, see+-- <https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-expressions.html Expressions>+-- in the /AWS IoT Events Developer Guide/.+--+-- The value for the @type@ parameter in @Payload@ must be @JSON@.+--+-- /See:/ 'newDynamoDBv2Action' smart constructor.+data DynamoDBv2Action = DynamoDBv2Action'+  { payload :: Prelude.Maybe Payload,+    -- | The name of the DynamoDB table.+    tableName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DynamoDBv2Action' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'payload', 'dynamoDBv2Action_payload' - Undocumented member.+--+-- 'tableName', 'dynamoDBv2Action_tableName' - The name of the DynamoDB table.+newDynamoDBv2Action ::+  -- | 'tableName'+  Prelude.Text ->+  DynamoDBv2Action+newDynamoDBv2Action pTableName_ =+  DynamoDBv2Action'+    { payload = Prelude.Nothing,+      tableName = pTableName_+    }++-- | Undocumented member.+dynamoDBv2Action_payload :: Lens.Lens' DynamoDBv2Action (Prelude.Maybe Payload)+dynamoDBv2Action_payload = Lens.lens (\DynamoDBv2Action' {payload} -> payload) (\s@DynamoDBv2Action' {} a -> s {payload = a} :: DynamoDBv2Action)++-- | The name of the DynamoDB table.+dynamoDBv2Action_tableName :: Lens.Lens' DynamoDBv2Action Prelude.Text+dynamoDBv2Action_tableName = Lens.lens (\DynamoDBv2Action' {tableName} -> tableName) (\s@DynamoDBv2Action' {} a -> s {tableName = a} :: DynamoDBv2Action)++instance Data.FromJSON DynamoDBv2Action where+  parseJSON =+    Data.withObject+      "DynamoDBv2Action"+      ( \x ->+          DynamoDBv2Action'+            Prelude.<$> (x Data..:? "payload")+            Prelude.<*> (x Data..: "tableName")+      )++instance Prelude.Hashable DynamoDBv2Action where+  hashWithSalt _salt DynamoDBv2Action' {..} =+    _salt+      `Prelude.hashWithSalt` payload+      `Prelude.hashWithSalt` tableName++instance Prelude.NFData DynamoDBv2Action where+  rnf DynamoDBv2Action' {..} =+    Prelude.rnf payload+      `Prelude.seq` Prelude.rnf tableName++instance Data.ToJSON DynamoDBv2Action where+  toJSON DynamoDBv2Action' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("payload" Data..=) Prelude.<$> payload,+            Prelude.Just ("tableName" Data..= tableName)+          ]+      )
+ gen/Amazonka/IoTEvents/Types/EmailConfiguration.hs view
@@ -0,0 +1,136 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.EmailConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.EmailConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.EmailContent+import Amazonka.IoTEvents.Types.EmailRecipients+import qualified Amazonka.Prelude as Prelude++-- | Contains the configuration information of email notifications.+--+-- /See:/ 'newEmailConfiguration' smart constructor.+data EmailConfiguration = EmailConfiguration'+  { -- | Contains the subject and message of an email.+    content :: Prelude.Maybe EmailContent,+    -- | The email address that sends emails.+    --+    -- If you use the AWS IoT Events managed AWS Lambda function to manage your+    -- emails, you must+    -- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-email-addresses.html verify the email address that sends emails in Amazon SES>.+    from :: Prelude.Text,+    -- | Contains the information of one or more recipients who receive the+    -- emails.+    --+    -- You must+    -- <https://docs.aws.amazon.com/singlesignon/latest/userguide/addusers.html add the users that receive emails to your AWS SSO store>.+    recipients :: EmailRecipients+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EmailConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'content', 'emailConfiguration_content' - Contains the subject and message of an email.+--+-- 'from', 'emailConfiguration_from' - The email address that sends emails.+--+-- If you use the AWS IoT Events managed AWS Lambda function to manage your+-- emails, you must+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-email-addresses.html verify the email address that sends emails in Amazon SES>.+--+-- 'recipients', 'emailConfiguration_recipients' - Contains the information of one or more recipients who receive the+-- emails.+--+-- You must+-- <https://docs.aws.amazon.com/singlesignon/latest/userguide/addusers.html add the users that receive emails to your AWS SSO store>.+newEmailConfiguration ::+  -- | 'from'+  Prelude.Text ->+  -- | 'recipients'+  EmailRecipients ->+  EmailConfiguration+newEmailConfiguration pFrom_ pRecipients_ =+  EmailConfiguration'+    { content = Prelude.Nothing,+      from = pFrom_,+      recipients = pRecipients_+    }++-- | Contains the subject and message of an email.+emailConfiguration_content :: Lens.Lens' EmailConfiguration (Prelude.Maybe EmailContent)+emailConfiguration_content = Lens.lens (\EmailConfiguration' {content} -> content) (\s@EmailConfiguration' {} a -> s {content = a} :: EmailConfiguration)++-- | The email address that sends emails.+--+-- If you use the AWS IoT Events managed AWS Lambda function to manage your+-- emails, you must+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-email-addresses.html verify the email address that sends emails in Amazon SES>.+emailConfiguration_from :: Lens.Lens' EmailConfiguration Prelude.Text+emailConfiguration_from = Lens.lens (\EmailConfiguration' {from} -> from) (\s@EmailConfiguration' {} a -> s {from = a} :: EmailConfiguration)++-- | Contains the information of one or more recipients who receive the+-- emails.+--+-- You must+-- <https://docs.aws.amazon.com/singlesignon/latest/userguide/addusers.html add the users that receive emails to your AWS SSO store>.+emailConfiguration_recipients :: Lens.Lens' EmailConfiguration EmailRecipients+emailConfiguration_recipients = Lens.lens (\EmailConfiguration' {recipients} -> recipients) (\s@EmailConfiguration' {} a -> s {recipients = a} :: EmailConfiguration)++instance Data.FromJSON EmailConfiguration where+  parseJSON =+    Data.withObject+      "EmailConfiguration"+      ( \x ->+          EmailConfiguration'+            Prelude.<$> (x Data..:? "content")+            Prelude.<*> (x Data..: "from")+            Prelude.<*> (x Data..: "recipients")+      )++instance Prelude.Hashable EmailConfiguration where+  hashWithSalt _salt EmailConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` content+      `Prelude.hashWithSalt` from+      `Prelude.hashWithSalt` recipients++instance Prelude.NFData EmailConfiguration where+  rnf EmailConfiguration' {..} =+    Prelude.rnf content+      `Prelude.seq` Prelude.rnf from+      `Prelude.seq` Prelude.rnf recipients++instance Data.ToJSON EmailConfiguration where+  toJSON EmailConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("content" Data..=) Prelude.<$> content,+            Prelude.Just ("from" Data..= from),+            Prelude.Just ("recipients" Data..= recipients)+          ]+      )
+ gen/Amazonka/IoTEvents/Types/EmailContent.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.EmailContent+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.EmailContent where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Contains the subject and message of an email.+--+-- /See:/ 'newEmailContent' smart constructor.+data EmailContent = EmailContent'+  { -- | The message that you want to send. The message can be up to 200+    -- characters.+    additionalMessage :: Prelude.Maybe Prelude.Text,+    -- | The subject of the email.+    subject :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EmailContent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'additionalMessage', 'emailContent_additionalMessage' - The message that you want to send. The message can be up to 200+-- characters.+--+-- 'subject', 'emailContent_subject' - The subject of the email.+newEmailContent ::+  EmailContent+newEmailContent =+  EmailContent'+    { additionalMessage = Prelude.Nothing,+      subject = Prelude.Nothing+    }++-- | The message that you want to send. The message can be up to 200+-- characters.+emailContent_additionalMessage :: Lens.Lens' EmailContent (Prelude.Maybe Prelude.Text)+emailContent_additionalMessage = Lens.lens (\EmailContent' {additionalMessage} -> additionalMessage) (\s@EmailContent' {} a -> s {additionalMessage = a} :: EmailContent)++-- | The subject of the email.+emailContent_subject :: Lens.Lens' EmailContent (Prelude.Maybe Prelude.Text)+emailContent_subject = Lens.lens (\EmailContent' {subject} -> subject) (\s@EmailContent' {} a -> s {subject = a} :: EmailContent)++instance Data.FromJSON EmailContent where+  parseJSON =+    Data.withObject+      "EmailContent"+      ( \x ->+          EmailContent'+            Prelude.<$> (x Data..:? "additionalMessage")+            Prelude.<*> (x Data..:? "subject")+      )++instance Prelude.Hashable EmailContent where+  hashWithSalt _salt EmailContent' {..} =+    _salt+      `Prelude.hashWithSalt` additionalMessage+      `Prelude.hashWithSalt` subject++instance Prelude.NFData EmailContent where+  rnf EmailContent' {..} =+    Prelude.rnf additionalMessage+      `Prelude.seq` Prelude.rnf subject++instance Data.ToJSON EmailContent where+  toJSON EmailContent' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("additionalMessage" Data..=)+              Prelude.<$> additionalMessage,+            ("subject" Data..=) Prelude.<$> subject+          ]+      )
+ gen/Amazonka/IoTEvents/Types/EmailRecipients.hs view
@@ -0,0 +1,77 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.EmailRecipients+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.EmailRecipients where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.RecipientDetail+import qualified Amazonka.Prelude as Prelude++-- | Contains the information of one or more recipients who receive the+-- emails.+--+-- You must+-- <https://docs.aws.amazon.com/singlesignon/latest/userguide/addusers.html add the users that receive emails to your AWS SSO store>.+--+-- /See:/ 'newEmailRecipients' smart constructor.+data EmailRecipients = EmailRecipients'+  { -- | Specifies one or more recipients who receive the email.+    to :: Prelude.Maybe (Prelude.NonEmpty RecipientDetail)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EmailRecipients' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'to', 'emailRecipients_to' - Specifies one or more recipients who receive the email.+newEmailRecipients ::+  EmailRecipients+newEmailRecipients =+  EmailRecipients' {to = Prelude.Nothing}++-- | Specifies one or more recipients who receive the email.+emailRecipients_to :: Lens.Lens' EmailRecipients (Prelude.Maybe (Prelude.NonEmpty RecipientDetail))+emailRecipients_to = Lens.lens (\EmailRecipients' {to} -> to) (\s@EmailRecipients' {} a -> s {to = a} :: EmailRecipients) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON EmailRecipients where+  parseJSON =+    Data.withObject+      "EmailRecipients"+      ( \x ->+          EmailRecipients' Prelude.<$> (x Data..:? "to")+      )++instance Prelude.Hashable EmailRecipients where+  hashWithSalt _salt EmailRecipients' {..} =+    _salt `Prelude.hashWithSalt` to++instance Prelude.NFData EmailRecipients where+  rnf EmailRecipients' {..} = Prelude.rnf to++instance Data.ToJSON EmailRecipients where+  toJSON EmailRecipients' {..} =+    Data.object+      (Prelude.catMaybes [("to" Data..=) Prelude.<$> to])
+ gen/Amazonka/IoTEvents/Types/EvaluationMethod.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.IoTEvents.Types.EvaluationMethod+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.EvaluationMethod+  ( EvaluationMethod+      ( ..,+        EvaluationMethod_BATCH,+        EvaluationMethod_SERIAL+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EvaluationMethod = EvaluationMethod'+  { fromEvaluationMethod ::+      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 EvaluationMethod_BATCH :: EvaluationMethod+pattern EvaluationMethod_BATCH = EvaluationMethod' "BATCH"++pattern EvaluationMethod_SERIAL :: EvaluationMethod+pattern EvaluationMethod_SERIAL = EvaluationMethod' "SERIAL"++{-# COMPLETE+  EvaluationMethod_BATCH,+  EvaluationMethod_SERIAL,+  EvaluationMethod'+  #-}
+ gen/Amazonka/IoTEvents/Types/Event.hs view
@@ -0,0 +1,119 @@+{-# 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.IoTEvents.Types.Event+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.Event where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.Action+import qualified Amazonka.Prelude as Prelude++-- | Specifies the @actions@ to be performed when the @condition@ evaluates+-- to TRUE.+--+-- /See:/ 'newEvent' smart constructor.+data Event = Event'+  { -- | The actions to be performed.+    actions :: Prelude.Maybe [Action],+    -- | Optional. The Boolean expression that, when TRUE, causes the @actions@+    -- to be performed. If not present, the actions are performed (=TRUE). If+    -- the expression result is not a Boolean value, the actions are not+    -- performed (=FALSE).+    condition :: Prelude.Maybe Prelude.Text,+    -- | The name of the event.+    eventName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Event' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'actions', 'event_actions' - The actions to be performed.+--+-- 'condition', 'event_condition' - Optional. The Boolean expression that, when TRUE, causes the @actions@+-- to be performed. If not present, the actions are performed (=TRUE). If+-- the expression result is not a Boolean value, the actions are not+-- performed (=FALSE).+--+-- 'eventName', 'event_eventName' - The name of the event.+newEvent ::+  -- | 'eventName'+  Prelude.Text ->+  Event+newEvent pEventName_ =+  Event'+    { actions = Prelude.Nothing,+      condition = Prelude.Nothing,+      eventName = pEventName_+    }++-- | The actions to be performed.+event_actions :: Lens.Lens' Event (Prelude.Maybe [Action])+event_actions = Lens.lens (\Event' {actions} -> actions) (\s@Event' {} a -> s {actions = a} :: Event) Prelude.. Lens.mapping Lens.coerced++-- | Optional. The Boolean expression that, when TRUE, causes the @actions@+-- to be performed. If not present, the actions are performed (=TRUE). If+-- the expression result is not a Boolean value, the actions are not+-- performed (=FALSE).+event_condition :: Lens.Lens' Event (Prelude.Maybe Prelude.Text)+event_condition = Lens.lens (\Event' {condition} -> condition) (\s@Event' {} a -> s {condition = a} :: Event)++-- | The name of the event.+event_eventName :: Lens.Lens' Event Prelude.Text+event_eventName = Lens.lens (\Event' {eventName} -> eventName) (\s@Event' {} a -> s {eventName = a} :: Event)++instance Data.FromJSON Event where+  parseJSON =+    Data.withObject+      "Event"+      ( \x ->+          Event'+            Prelude.<$> (x Data..:? "actions" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "condition")+            Prelude.<*> (x Data..: "eventName")+      )++instance Prelude.Hashable Event where+  hashWithSalt _salt Event' {..} =+    _salt+      `Prelude.hashWithSalt` actions+      `Prelude.hashWithSalt` condition+      `Prelude.hashWithSalt` eventName++instance Prelude.NFData Event where+  rnf Event' {..} =+    Prelude.rnf actions+      `Prelude.seq` Prelude.rnf condition+      `Prelude.seq` Prelude.rnf eventName++instance Data.ToJSON Event where+  toJSON Event' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("actions" Data..=) Prelude.<$> actions,+            ("condition" Data..=) Prelude.<$> condition,+            Prelude.Just ("eventName" Data..= eventName)+          ]+      )
+ gen/Amazonka/IoTEvents/Types/FirehoseAction.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.IoTEvents.Types.FirehoseAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.FirehoseAction where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.Payload+import qualified Amazonka.Prelude as Prelude++-- | Sends information about the detector model instance and the event that+-- triggered the action to an Amazon Kinesis Data Firehose delivery stream.+--+-- /See:/ 'newFirehoseAction' smart constructor.+data FirehoseAction = FirehoseAction'+  { -- | You can configure the action payload when you send a message to an+    -- Amazon Kinesis Data Firehose delivery stream.+    payload :: Prelude.Maybe Payload,+    -- | A character separator that is used to separate records written to the+    -- Kinesis Data Firehose delivery stream. Valid values are: \'\\n\'+    -- (newline), \'\\t\' (tab), \'\\r\\n\' (Windows newline), \',\' (comma).+    separator :: Prelude.Maybe Prelude.Text,+    -- | The name of the Kinesis Data Firehose delivery stream where the data is+    -- written.+    deliveryStreamName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FirehoseAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'payload', 'firehoseAction_payload' - You can configure the action payload when you send a message to an+-- Amazon Kinesis Data Firehose delivery stream.+--+-- 'separator', 'firehoseAction_separator' - A character separator that is used to separate records written to the+-- Kinesis Data Firehose delivery stream. Valid values are: \'\\n\'+-- (newline), \'\\t\' (tab), \'\\r\\n\' (Windows newline), \',\' (comma).+--+-- 'deliveryStreamName', 'firehoseAction_deliveryStreamName' - The name of the Kinesis Data Firehose delivery stream where the data is+-- written.+newFirehoseAction ::+  -- | 'deliveryStreamName'+  Prelude.Text ->+  FirehoseAction+newFirehoseAction pDeliveryStreamName_ =+  FirehoseAction'+    { payload = Prelude.Nothing,+      separator = Prelude.Nothing,+      deliveryStreamName = pDeliveryStreamName_+    }++-- | You can configure the action payload when you send a message to an+-- Amazon Kinesis Data Firehose delivery stream.+firehoseAction_payload :: Lens.Lens' FirehoseAction (Prelude.Maybe Payload)+firehoseAction_payload = Lens.lens (\FirehoseAction' {payload} -> payload) (\s@FirehoseAction' {} a -> s {payload = a} :: FirehoseAction)++-- | A character separator that is used to separate records written to the+-- Kinesis Data Firehose delivery stream. Valid values are: \'\\n\'+-- (newline), \'\\t\' (tab), \'\\r\\n\' (Windows newline), \',\' (comma).+firehoseAction_separator :: Lens.Lens' FirehoseAction (Prelude.Maybe Prelude.Text)+firehoseAction_separator = Lens.lens (\FirehoseAction' {separator} -> separator) (\s@FirehoseAction' {} a -> s {separator = a} :: FirehoseAction)++-- | The name of the Kinesis Data Firehose delivery stream where the data is+-- written.+firehoseAction_deliveryStreamName :: Lens.Lens' FirehoseAction Prelude.Text+firehoseAction_deliveryStreamName = Lens.lens (\FirehoseAction' {deliveryStreamName} -> deliveryStreamName) (\s@FirehoseAction' {} a -> s {deliveryStreamName = a} :: FirehoseAction)++instance Data.FromJSON FirehoseAction where+  parseJSON =+    Data.withObject+      "FirehoseAction"+      ( \x ->+          FirehoseAction'+            Prelude.<$> (x Data..:? "payload")+            Prelude.<*> (x Data..:? "separator")+            Prelude.<*> (x Data..: "deliveryStreamName")+      )++instance Prelude.Hashable FirehoseAction where+  hashWithSalt _salt FirehoseAction' {..} =+    _salt+      `Prelude.hashWithSalt` payload+      `Prelude.hashWithSalt` separator+      `Prelude.hashWithSalt` deliveryStreamName++instance Prelude.NFData FirehoseAction where+  rnf FirehoseAction' {..} =+    Prelude.rnf payload+      `Prelude.seq` Prelude.rnf separator+      `Prelude.seq` Prelude.rnf deliveryStreamName++instance Data.ToJSON FirehoseAction where+  toJSON FirehoseAction' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("payload" Data..=) Prelude.<$> payload,+            ("separator" Data..=) Prelude.<$> separator,+            Prelude.Just+              ("deliveryStreamName" Data..= deliveryStreamName)+          ]+      )
+ gen/Amazonka/IoTEvents/Types/InitializationConfiguration.hs view
@@ -0,0 +1,94 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.InitializationConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.InitializationConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Specifies the default alarm state. The configuration applies to all+-- alarms that were created based on this alarm model.+--+-- /See:/ 'newInitializationConfiguration' smart constructor.+data InitializationConfiguration = InitializationConfiguration'+  { -- | The value must be @TRUE@ or @FALSE@. If @FALSE@, all alarm instances+    -- created based on the alarm model are activated. The default value is+    -- @TRUE@.+    disabledOnInitialization :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InitializationConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'disabledOnInitialization', 'initializationConfiguration_disabledOnInitialization' - The value must be @TRUE@ or @FALSE@. If @FALSE@, all alarm instances+-- created based on the alarm model are activated. The default value is+-- @TRUE@.+newInitializationConfiguration ::+  -- | 'disabledOnInitialization'+  Prelude.Bool ->+  InitializationConfiguration+newInitializationConfiguration+  pDisabledOnInitialization_ =+    InitializationConfiguration'+      { disabledOnInitialization =+          pDisabledOnInitialization_+      }++-- | The value must be @TRUE@ or @FALSE@. If @FALSE@, all alarm instances+-- created based on the alarm model are activated. The default value is+-- @TRUE@.+initializationConfiguration_disabledOnInitialization :: Lens.Lens' InitializationConfiguration Prelude.Bool+initializationConfiguration_disabledOnInitialization = Lens.lens (\InitializationConfiguration' {disabledOnInitialization} -> disabledOnInitialization) (\s@InitializationConfiguration' {} a -> s {disabledOnInitialization = a} :: InitializationConfiguration)++instance Data.FromJSON InitializationConfiguration where+  parseJSON =+    Data.withObject+      "InitializationConfiguration"+      ( \x ->+          InitializationConfiguration'+            Prelude.<$> (x Data..: "disabledOnInitialization")+      )++instance Prelude.Hashable InitializationConfiguration where+  hashWithSalt _salt InitializationConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` disabledOnInitialization++instance Prelude.NFData InitializationConfiguration where+  rnf InitializationConfiguration' {..} =+    Prelude.rnf disabledOnInitialization++instance Data.ToJSON InitializationConfiguration where+  toJSON InitializationConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "disabledOnInitialization"+                  Data..= disabledOnInitialization+              )+          ]+      )
+ gen/Amazonka/IoTEvents/Types/Input.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.Input+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.Input where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.InputConfiguration+import Amazonka.IoTEvents.Types.InputDefinition+import qualified Amazonka.Prelude as Prelude++-- | Information about the input.+--+-- /See:/ 'newInput' smart constructor.+data Input = Input'+  { -- | Information about the configuration of an input.+    inputConfiguration :: Prelude.Maybe InputConfiguration,+    -- | The definition of the input.+    inputDefinition :: Prelude.Maybe InputDefinition+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Input' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'inputConfiguration', 'input_inputConfiguration' - Information about the configuration of an input.+--+-- 'inputDefinition', 'input_inputDefinition' - The definition of the input.+newInput ::+  Input+newInput =+  Input'+    { inputConfiguration = Prelude.Nothing,+      inputDefinition = Prelude.Nothing+    }++-- | Information about the configuration of an input.+input_inputConfiguration :: Lens.Lens' Input (Prelude.Maybe InputConfiguration)+input_inputConfiguration = Lens.lens (\Input' {inputConfiguration} -> inputConfiguration) (\s@Input' {} a -> s {inputConfiguration = a} :: Input)++-- | The definition of the input.+input_inputDefinition :: Lens.Lens' Input (Prelude.Maybe InputDefinition)+input_inputDefinition = Lens.lens (\Input' {inputDefinition} -> inputDefinition) (\s@Input' {} a -> s {inputDefinition = a} :: Input)++instance Data.FromJSON Input where+  parseJSON =+    Data.withObject+      "Input"+      ( \x ->+          Input'+            Prelude.<$> (x Data..:? "inputConfiguration")+            Prelude.<*> (x Data..:? "inputDefinition")+      )++instance Prelude.Hashable Input where+  hashWithSalt _salt Input' {..} =+    _salt+      `Prelude.hashWithSalt` inputConfiguration+      `Prelude.hashWithSalt` inputDefinition++instance Prelude.NFData Input where+  rnf Input' {..} =+    Prelude.rnf inputConfiguration+      `Prelude.seq` Prelude.rnf inputDefinition
+ gen/Amazonka/IoTEvents/Types/InputConfiguration.hs view
@@ -0,0 +1,149 @@+{-# 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.IoTEvents.Types.InputConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.InputConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.InputStatus+import qualified Amazonka.Prelude as Prelude++-- | Information about the configuration of an input.+--+-- /See:/ 'newInputConfiguration' smart constructor.+data InputConfiguration = InputConfiguration'+  { -- | A brief description of the input.+    inputDescription :: Prelude.Maybe Prelude.Text,+    -- | The name of the input.+    inputName :: Prelude.Text,+    -- | The ARN of the input.+    inputArn :: Prelude.Text,+    -- | The time the input was created.+    creationTime :: Data.POSIX,+    -- | The last time the input was updated.+    lastUpdateTime :: Data.POSIX,+    -- | The status of the input.+    status :: InputStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InputConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'inputDescription', 'inputConfiguration_inputDescription' - A brief description of the input.+--+-- 'inputName', 'inputConfiguration_inputName' - The name of the input.+--+-- 'inputArn', 'inputConfiguration_inputArn' - The ARN of the input.+--+-- 'creationTime', 'inputConfiguration_creationTime' - The time the input was created.+--+-- 'lastUpdateTime', 'inputConfiguration_lastUpdateTime' - The last time the input was updated.+--+-- 'status', 'inputConfiguration_status' - The status of the input.+newInputConfiguration ::+  -- | 'inputName'+  Prelude.Text ->+  -- | 'inputArn'+  Prelude.Text ->+  -- | 'creationTime'+  Prelude.UTCTime ->+  -- | 'lastUpdateTime'+  Prelude.UTCTime ->+  -- | 'status'+  InputStatus ->+  InputConfiguration+newInputConfiguration+  pInputName_+  pInputArn_+  pCreationTime_+  pLastUpdateTime_+  pStatus_ =+    InputConfiguration'+      { inputDescription =+          Prelude.Nothing,+        inputName = pInputName_,+        inputArn = pInputArn_,+        creationTime = Data._Time Lens.# pCreationTime_,+        lastUpdateTime = Data._Time Lens.# pLastUpdateTime_,+        status = pStatus_+      }++-- | A brief description of the input.+inputConfiguration_inputDescription :: Lens.Lens' InputConfiguration (Prelude.Maybe Prelude.Text)+inputConfiguration_inputDescription = Lens.lens (\InputConfiguration' {inputDescription} -> inputDescription) (\s@InputConfiguration' {} a -> s {inputDescription = a} :: InputConfiguration)++-- | The name of the input.+inputConfiguration_inputName :: Lens.Lens' InputConfiguration Prelude.Text+inputConfiguration_inputName = Lens.lens (\InputConfiguration' {inputName} -> inputName) (\s@InputConfiguration' {} a -> s {inputName = a} :: InputConfiguration)++-- | The ARN of the input.+inputConfiguration_inputArn :: Lens.Lens' InputConfiguration Prelude.Text+inputConfiguration_inputArn = Lens.lens (\InputConfiguration' {inputArn} -> inputArn) (\s@InputConfiguration' {} a -> s {inputArn = a} :: InputConfiguration)++-- | The time the input was created.+inputConfiguration_creationTime :: Lens.Lens' InputConfiguration Prelude.UTCTime+inputConfiguration_creationTime = Lens.lens (\InputConfiguration' {creationTime} -> creationTime) (\s@InputConfiguration' {} a -> s {creationTime = a} :: InputConfiguration) Prelude.. Data._Time++-- | The last time the input was updated.+inputConfiguration_lastUpdateTime :: Lens.Lens' InputConfiguration Prelude.UTCTime+inputConfiguration_lastUpdateTime = Lens.lens (\InputConfiguration' {lastUpdateTime} -> lastUpdateTime) (\s@InputConfiguration' {} a -> s {lastUpdateTime = a} :: InputConfiguration) Prelude.. Data._Time++-- | The status of the input.+inputConfiguration_status :: Lens.Lens' InputConfiguration InputStatus+inputConfiguration_status = Lens.lens (\InputConfiguration' {status} -> status) (\s@InputConfiguration' {} a -> s {status = a} :: InputConfiguration)++instance Data.FromJSON InputConfiguration where+  parseJSON =+    Data.withObject+      "InputConfiguration"+      ( \x ->+          InputConfiguration'+            Prelude.<$> (x Data..:? "inputDescription")+            Prelude.<*> (x Data..: "inputName")+            Prelude.<*> (x Data..: "inputArn")+            Prelude.<*> (x Data..: "creationTime")+            Prelude.<*> (x Data..: "lastUpdateTime")+            Prelude.<*> (x Data..: "status")+      )++instance Prelude.Hashable InputConfiguration where+  hashWithSalt _salt InputConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` inputDescription+      `Prelude.hashWithSalt` inputName+      `Prelude.hashWithSalt` inputArn+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` lastUpdateTime+      `Prelude.hashWithSalt` status++instance Prelude.NFData InputConfiguration where+  rnf InputConfiguration' {..} =+    Prelude.rnf inputDescription+      `Prelude.seq` Prelude.rnf inputName+      `Prelude.seq` Prelude.rnf inputArn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf lastUpdateTime+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/IoTEvents/Types/InputDefinition.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.InputDefinition+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.InputDefinition where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.Attribute+import qualified Amazonka.Prelude as Prelude++-- | The definition of the input.+--+-- /See:/ 'newInputDefinition' smart constructor.+data InputDefinition = InputDefinition'+  { -- | The attributes from the JSON payload that are made available by the+    -- input. Inputs are derived from messages sent to the AWS IoT Events+    -- system using @BatchPutMessage@. Each such message contains a JSON+    -- payload, and those attributes (and their paired values) specified here+    -- are available for use in the @condition@ expressions used by detectors+    -- that monitor this input.+    attributes :: Prelude.NonEmpty Attribute+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InputDefinition' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'inputDefinition_attributes' - The attributes from the JSON payload that are made available by the+-- input. Inputs are derived from messages sent to the AWS IoT Events+-- system using @BatchPutMessage@. Each such message contains a JSON+-- payload, and those attributes (and their paired values) specified here+-- are available for use in the @condition@ expressions used by detectors+-- that monitor this input.+newInputDefinition ::+  -- | 'attributes'+  Prelude.NonEmpty Attribute ->+  InputDefinition+newInputDefinition pAttributes_ =+  InputDefinition'+    { attributes =+        Lens.coerced Lens.# pAttributes_+    }++-- | The attributes from the JSON payload that are made available by the+-- input. Inputs are derived from messages sent to the AWS IoT Events+-- system using @BatchPutMessage@. Each such message contains a JSON+-- payload, and those attributes (and their paired values) specified here+-- are available for use in the @condition@ expressions used by detectors+-- that monitor this input.+inputDefinition_attributes :: Lens.Lens' InputDefinition (Prelude.NonEmpty Attribute)+inputDefinition_attributes = Lens.lens (\InputDefinition' {attributes} -> attributes) (\s@InputDefinition' {} a -> s {attributes = a} :: InputDefinition) Prelude.. Lens.coerced++instance Data.FromJSON InputDefinition where+  parseJSON =+    Data.withObject+      "InputDefinition"+      ( \x ->+          InputDefinition'+            Prelude.<$> (x Data..: "attributes")+      )++instance Prelude.Hashable InputDefinition where+  hashWithSalt _salt InputDefinition' {..} =+    _salt `Prelude.hashWithSalt` attributes++instance Prelude.NFData InputDefinition where+  rnf InputDefinition' {..} = Prelude.rnf attributes++instance Data.ToJSON InputDefinition where+  toJSON InputDefinition' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("attributes" Data..= attributes)]+      )
+ gen/Amazonka/IoTEvents/Types/InputIdentifier.hs view
@@ -0,0 +1,88 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.InputIdentifier+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.InputIdentifier where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.IotEventsInputIdentifier+import Amazonka.IoTEvents.Types.IotSiteWiseInputIdentifier+import qualified Amazonka.Prelude as Prelude++-- | The identifer of the input.+--+-- /See:/ 'newInputIdentifier' smart constructor.+data InputIdentifier = InputIdentifier'+  { -- | The identifier of the input routed to AWS IoT Events.+    iotEventsInputIdentifier :: Prelude.Maybe IotEventsInputIdentifier,+    -- | The identifer of the input routed from AWS IoT SiteWise.+    iotSiteWiseInputIdentifier :: Prelude.Maybe IotSiteWiseInputIdentifier+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InputIdentifier' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'iotEventsInputIdentifier', 'inputIdentifier_iotEventsInputIdentifier' - The identifier of the input routed to AWS IoT Events.+--+-- 'iotSiteWiseInputIdentifier', 'inputIdentifier_iotSiteWiseInputIdentifier' - The identifer of the input routed from AWS IoT SiteWise.+newInputIdentifier ::+  InputIdentifier+newInputIdentifier =+  InputIdentifier'+    { iotEventsInputIdentifier =+        Prelude.Nothing,+      iotSiteWiseInputIdentifier = Prelude.Nothing+    }++-- | The identifier of the input routed to AWS IoT Events.+inputIdentifier_iotEventsInputIdentifier :: Lens.Lens' InputIdentifier (Prelude.Maybe IotEventsInputIdentifier)+inputIdentifier_iotEventsInputIdentifier = Lens.lens (\InputIdentifier' {iotEventsInputIdentifier} -> iotEventsInputIdentifier) (\s@InputIdentifier' {} a -> s {iotEventsInputIdentifier = a} :: InputIdentifier)++-- | The identifer of the input routed from AWS IoT SiteWise.+inputIdentifier_iotSiteWiseInputIdentifier :: Lens.Lens' InputIdentifier (Prelude.Maybe IotSiteWiseInputIdentifier)+inputIdentifier_iotSiteWiseInputIdentifier = Lens.lens (\InputIdentifier' {iotSiteWiseInputIdentifier} -> iotSiteWiseInputIdentifier) (\s@InputIdentifier' {} a -> s {iotSiteWiseInputIdentifier = a} :: InputIdentifier)++instance Prelude.Hashable InputIdentifier where+  hashWithSalt _salt InputIdentifier' {..} =+    _salt+      `Prelude.hashWithSalt` iotEventsInputIdentifier+      `Prelude.hashWithSalt` iotSiteWiseInputIdentifier++instance Prelude.NFData InputIdentifier where+  rnf InputIdentifier' {..} =+    Prelude.rnf iotEventsInputIdentifier+      `Prelude.seq` Prelude.rnf iotSiteWiseInputIdentifier++instance Data.ToJSON InputIdentifier where+  toJSON InputIdentifier' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("iotEventsInputIdentifier" Data..=)+              Prelude.<$> iotEventsInputIdentifier,+            ("iotSiteWiseInputIdentifier" Data..=)+              Prelude.<$> iotSiteWiseInputIdentifier+          ]+      )
+ gen/Amazonka/IoTEvents/Types/InputStatus.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.IoTEvents.Types.InputStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.InputStatus+  ( InputStatus+      ( ..,+        InputStatus_ACTIVE,+        InputStatus_CREATING,+        InputStatus_DELETING,+        InputStatus_UPDATING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype InputStatus = InputStatus'+  { fromInputStatus ::+      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 InputStatus_ACTIVE :: InputStatus+pattern InputStatus_ACTIVE = InputStatus' "ACTIVE"++pattern InputStatus_CREATING :: InputStatus+pattern InputStatus_CREATING = InputStatus' "CREATING"++pattern InputStatus_DELETING :: InputStatus+pattern InputStatus_DELETING = InputStatus' "DELETING"++pattern InputStatus_UPDATING :: InputStatus+pattern InputStatus_UPDATING = InputStatus' "UPDATING"++{-# COMPLETE+  InputStatus_ACTIVE,+  InputStatus_CREATING,+  InputStatus_DELETING,+  InputStatus_UPDATING,+  InputStatus'+  #-}
+ gen/Amazonka/IoTEvents/Types/InputSummary.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.IoTEvents.Types.InputSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.InputSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.InputStatus+import qualified Amazonka.Prelude as Prelude++-- | Information about the input.+--+-- /See:/ 'newInputSummary' smart constructor.+data InputSummary = InputSummary'+  { -- | The time the input was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The ARN of the input.+    inputArn :: Prelude.Maybe Prelude.Text,+    -- | A brief description of the input.+    inputDescription :: Prelude.Maybe Prelude.Text,+    -- | The name of the input.+    inputName :: Prelude.Maybe Prelude.Text,+    -- | The last time the input was updated.+    lastUpdateTime :: Prelude.Maybe Data.POSIX,+    -- | The status of the input.+    status :: Prelude.Maybe InputStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InputSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationTime', 'inputSummary_creationTime' - The time the input was created.+--+-- 'inputArn', 'inputSummary_inputArn' - The ARN of the input.+--+-- 'inputDescription', 'inputSummary_inputDescription' - A brief description of the input.+--+-- 'inputName', 'inputSummary_inputName' - The name of the input.+--+-- 'lastUpdateTime', 'inputSummary_lastUpdateTime' - The last time the input was updated.+--+-- 'status', 'inputSummary_status' - The status of the input.+newInputSummary ::+  InputSummary+newInputSummary =+  InputSummary'+    { creationTime = Prelude.Nothing,+      inputArn = Prelude.Nothing,+      inputDescription = Prelude.Nothing,+      inputName = Prelude.Nothing,+      lastUpdateTime = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The time the input was created.+inputSummary_creationTime :: Lens.Lens' InputSummary (Prelude.Maybe Prelude.UTCTime)+inputSummary_creationTime = Lens.lens (\InputSummary' {creationTime} -> creationTime) (\s@InputSummary' {} a -> s {creationTime = a} :: InputSummary) Prelude.. Lens.mapping Data._Time++-- | The ARN of the input.+inputSummary_inputArn :: Lens.Lens' InputSummary (Prelude.Maybe Prelude.Text)+inputSummary_inputArn = Lens.lens (\InputSummary' {inputArn} -> inputArn) (\s@InputSummary' {} a -> s {inputArn = a} :: InputSummary)++-- | A brief description of the input.+inputSummary_inputDescription :: Lens.Lens' InputSummary (Prelude.Maybe Prelude.Text)+inputSummary_inputDescription = Lens.lens (\InputSummary' {inputDescription} -> inputDescription) (\s@InputSummary' {} a -> s {inputDescription = a} :: InputSummary)++-- | The name of the input.+inputSummary_inputName :: Lens.Lens' InputSummary (Prelude.Maybe Prelude.Text)+inputSummary_inputName = Lens.lens (\InputSummary' {inputName} -> inputName) (\s@InputSummary' {} a -> s {inputName = a} :: InputSummary)++-- | The last time the input was updated.+inputSummary_lastUpdateTime :: Lens.Lens' InputSummary (Prelude.Maybe Prelude.UTCTime)+inputSummary_lastUpdateTime = Lens.lens (\InputSummary' {lastUpdateTime} -> lastUpdateTime) (\s@InputSummary' {} a -> s {lastUpdateTime = a} :: InputSummary) Prelude.. Lens.mapping Data._Time++-- | The status of the input.+inputSummary_status :: Lens.Lens' InputSummary (Prelude.Maybe InputStatus)+inputSummary_status = Lens.lens (\InputSummary' {status} -> status) (\s@InputSummary' {} a -> s {status = a} :: InputSummary)++instance Data.FromJSON InputSummary where+  parseJSON =+    Data.withObject+      "InputSummary"+      ( \x ->+          InputSummary'+            Prelude.<$> (x Data..:? "creationTime")+            Prelude.<*> (x Data..:? "inputArn")+            Prelude.<*> (x Data..:? "inputDescription")+            Prelude.<*> (x Data..:? "inputName")+            Prelude.<*> (x Data..:? "lastUpdateTime")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable InputSummary where+  hashWithSalt _salt InputSummary' {..} =+    _salt+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` inputArn+      `Prelude.hashWithSalt` inputDescription+      `Prelude.hashWithSalt` inputName+      `Prelude.hashWithSalt` lastUpdateTime+      `Prelude.hashWithSalt` status++instance Prelude.NFData InputSummary where+  rnf InputSummary' {..} =+    Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf inputArn+      `Prelude.seq` Prelude.rnf inputDescription+      `Prelude.seq` Prelude.rnf inputName+      `Prelude.seq` Prelude.rnf lastUpdateTime+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/IoTEvents/Types/IotEventsAction.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.IoTEvents.Types.IotEventsAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.IotEventsAction where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.Payload+import qualified Amazonka.Prelude as Prelude++-- | Sends an AWS IoT Events input, passing in information about the detector+-- model instance and the event that triggered the action.+--+-- /See:/ 'newIotEventsAction' smart constructor.+data IotEventsAction = IotEventsAction'+  { -- | You can configure the action payload when you send a message to an AWS+    -- IoT Events input.+    payload :: Prelude.Maybe Payload,+    -- | The name of the AWS IoT Events input where the data is sent.+    inputName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IotEventsAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'payload', 'iotEventsAction_payload' - You can configure the action payload when you send a message to an AWS+-- IoT Events input.+--+-- 'inputName', 'iotEventsAction_inputName' - The name of the AWS IoT Events input where the data is sent.+newIotEventsAction ::+  -- | 'inputName'+  Prelude.Text ->+  IotEventsAction+newIotEventsAction pInputName_ =+  IotEventsAction'+    { payload = Prelude.Nothing,+      inputName = pInputName_+    }++-- | You can configure the action payload when you send a message to an AWS+-- IoT Events input.+iotEventsAction_payload :: Lens.Lens' IotEventsAction (Prelude.Maybe Payload)+iotEventsAction_payload = Lens.lens (\IotEventsAction' {payload} -> payload) (\s@IotEventsAction' {} a -> s {payload = a} :: IotEventsAction)++-- | The name of the AWS IoT Events input where the data is sent.+iotEventsAction_inputName :: Lens.Lens' IotEventsAction Prelude.Text+iotEventsAction_inputName = Lens.lens (\IotEventsAction' {inputName} -> inputName) (\s@IotEventsAction' {} a -> s {inputName = a} :: IotEventsAction)++instance Data.FromJSON IotEventsAction where+  parseJSON =+    Data.withObject+      "IotEventsAction"+      ( \x ->+          IotEventsAction'+            Prelude.<$> (x Data..:? "payload")+            Prelude.<*> (x Data..: "inputName")+      )++instance Prelude.Hashable IotEventsAction where+  hashWithSalt _salt IotEventsAction' {..} =+    _salt+      `Prelude.hashWithSalt` payload+      `Prelude.hashWithSalt` inputName++instance Prelude.NFData IotEventsAction where+  rnf IotEventsAction' {..} =+    Prelude.rnf payload+      `Prelude.seq` Prelude.rnf inputName++instance Data.ToJSON IotEventsAction where+  toJSON IotEventsAction' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("payload" Data..=) Prelude.<$> payload,+            Prelude.Just ("inputName" Data..= inputName)+          ]+      )
+ gen/Amazonka/IoTEvents/Types/IotEventsInputIdentifier.hs view
@@ -0,0 +1,69 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.IotEventsInputIdentifier+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.IotEventsInputIdentifier where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The identifier of the input routed to AWS IoT Events.+--+-- /See:/ 'newIotEventsInputIdentifier' smart constructor.+data IotEventsInputIdentifier = IotEventsInputIdentifier'+  { -- | The name of the input routed to AWS IoT Events.+    inputName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IotEventsInputIdentifier' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'inputName', 'iotEventsInputIdentifier_inputName' - The name of the input routed to AWS IoT Events.+newIotEventsInputIdentifier ::+  -- | 'inputName'+  Prelude.Text ->+  IotEventsInputIdentifier+newIotEventsInputIdentifier pInputName_ =+  IotEventsInputIdentifier' {inputName = pInputName_}++-- | The name of the input routed to AWS IoT Events.+iotEventsInputIdentifier_inputName :: Lens.Lens' IotEventsInputIdentifier Prelude.Text+iotEventsInputIdentifier_inputName = Lens.lens (\IotEventsInputIdentifier' {inputName} -> inputName) (\s@IotEventsInputIdentifier' {} a -> s {inputName = a} :: IotEventsInputIdentifier)++instance Prelude.Hashable IotEventsInputIdentifier where+  hashWithSalt _salt IotEventsInputIdentifier' {..} =+    _salt `Prelude.hashWithSalt` inputName++instance Prelude.NFData IotEventsInputIdentifier where+  rnf IotEventsInputIdentifier' {..} =+    Prelude.rnf inputName++instance Data.ToJSON IotEventsInputIdentifier where+  toJSON IotEventsInputIdentifier' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("inputName" Data..= inputName)]+      )
+ gen/Amazonka/IoTEvents/Types/IotSiteWiseAction.hs view
@@ -0,0 +1,174 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.IotSiteWiseAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.IotSiteWiseAction where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.AssetPropertyValue+import qualified Amazonka.Prelude as Prelude++-- | Sends information about the detector model instance and the event that+-- triggered the action to a specified asset property in AWS IoT SiteWise.+--+-- You must use expressions for all parameters in @IotSiteWiseAction@. The+-- expressions accept literals, operators, functions, references, and+-- substitutions templates.+--+-- __Examples__+--+-- -   For literal values, the expressions must contain single quotes. For+--     example, the value for the @propertyAlias@ parameter can be+--     @\'\/company\/windfarm\/3\/turbine\/7\/temperature\'@.+--+-- -   For references, you must specify either variables or input values.+--     For example, the value for the @assetId@ parameter can be+--     @$input.TurbineInput.assetId1@.+--+-- -   For a substitution template, you must use @${}@, and the template+--     must be in single quotes. A substitution template can also contain a+--     combination of literals, operators, functions, references, and+--     substitution templates.+--+--     In the following example, the value for the @propertyAlias@+--     parameter uses a substitution template.+--+--     @\'company\/windfarm\/${$input.TemperatureInput.sensorData.windfarmID}\/turbine\/ ${$input.TemperatureInput.sensorData.turbineID}\/temperature\'@+--+-- You must specify either @propertyAlias@ or both @assetId@ and+-- @propertyId@ to identify the target asset property in AWS IoT SiteWise.+--+-- For more information, see+-- <https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-expressions.html Expressions>+-- in the /AWS IoT Events Developer Guide/.+--+-- /See:/ 'newIotSiteWiseAction' smart constructor.+data IotSiteWiseAction = IotSiteWiseAction'+  { -- | The ID of the asset that has the specified property.+    assetId :: Prelude.Maybe Prelude.Text,+    -- | A unique identifier for this entry. You can use the entry ID to track+    -- which data entry causes an error in case of failure. The default is a+    -- new unique identifier.+    entryId :: Prelude.Maybe Prelude.Text,+    -- | The alias of the asset property.+    propertyAlias :: Prelude.Maybe Prelude.Text,+    -- | The ID of the asset property.+    propertyId :: Prelude.Maybe Prelude.Text,+    -- | The value to send to the asset property. This value contains timestamp,+    -- quality, and value (TQV) information.+    propertyValue :: Prelude.Maybe AssetPropertyValue+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IotSiteWiseAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'assetId', 'iotSiteWiseAction_assetId' - The ID of the asset that has the specified property.+--+-- 'entryId', 'iotSiteWiseAction_entryId' - A unique identifier for this entry. You can use the entry ID to track+-- which data entry causes an error in case of failure. The default is a+-- new unique identifier.+--+-- 'propertyAlias', 'iotSiteWiseAction_propertyAlias' - The alias of the asset property.+--+-- 'propertyId', 'iotSiteWiseAction_propertyId' - The ID of the asset property.+--+-- 'propertyValue', 'iotSiteWiseAction_propertyValue' - The value to send to the asset property. This value contains timestamp,+-- quality, and value (TQV) information.+newIotSiteWiseAction ::+  IotSiteWiseAction+newIotSiteWiseAction =+  IotSiteWiseAction'+    { assetId = Prelude.Nothing,+      entryId = Prelude.Nothing,+      propertyAlias = Prelude.Nothing,+      propertyId = Prelude.Nothing,+      propertyValue = Prelude.Nothing+    }++-- | The ID of the asset that has the specified property.+iotSiteWiseAction_assetId :: Lens.Lens' IotSiteWiseAction (Prelude.Maybe Prelude.Text)+iotSiteWiseAction_assetId = Lens.lens (\IotSiteWiseAction' {assetId} -> assetId) (\s@IotSiteWiseAction' {} a -> s {assetId = a} :: IotSiteWiseAction)++-- | A unique identifier for this entry. You can use the entry ID to track+-- which data entry causes an error in case of failure. The default is a+-- new unique identifier.+iotSiteWiseAction_entryId :: Lens.Lens' IotSiteWiseAction (Prelude.Maybe Prelude.Text)+iotSiteWiseAction_entryId = Lens.lens (\IotSiteWiseAction' {entryId} -> entryId) (\s@IotSiteWiseAction' {} a -> s {entryId = a} :: IotSiteWiseAction)++-- | The alias of the asset property.+iotSiteWiseAction_propertyAlias :: Lens.Lens' IotSiteWiseAction (Prelude.Maybe Prelude.Text)+iotSiteWiseAction_propertyAlias = Lens.lens (\IotSiteWiseAction' {propertyAlias} -> propertyAlias) (\s@IotSiteWiseAction' {} a -> s {propertyAlias = a} :: IotSiteWiseAction)++-- | The ID of the asset property.+iotSiteWiseAction_propertyId :: Lens.Lens' IotSiteWiseAction (Prelude.Maybe Prelude.Text)+iotSiteWiseAction_propertyId = Lens.lens (\IotSiteWiseAction' {propertyId} -> propertyId) (\s@IotSiteWiseAction' {} a -> s {propertyId = a} :: IotSiteWiseAction)++-- | The value to send to the asset property. This value contains timestamp,+-- quality, and value (TQV) information.+iotSiteWiseAction_propertyValue :: Lens.Lens' IotSiteWiseAction (Prelude.Maybe AssetPropertyValue)+iotSiteWiseAction_propertyValue = Lens.lens (\IotSiteWiseAction' {propertyValue} -> propertyValue) (\s@IotSiteWiseAction' {} a -> s {propertyValue = a} :: IotSiteWiseAction)++instance Data.FromJSON IotSiteWiseAction where+  parseJSON =+    Data.withObject+      "IotSiteWiseAction"+      ( \x ->+          IotSiteWiseAction'+            Prelude.<$> (x Data..:? "assetId")+            Prelude.<*> (x Data..:? "entryId")+            Prelude.<*> (x Data..:? "propertyAlias")+            Prelude.<*> (x Data..:? "propertyId")+            Prelude.<*> (x Data..:? "propertyValue")+      )++instance Prelude.Hashable IotSiteWiseAction where+  hashWithSalt _salt IotSiteWiseAction' {..} =+    _salt+      `Prelude.hashWithSalt` assetId+      `Prelude.hashWithSalt` entryId+      `Prelude.hashWithSalt` propertyAlias+      `Prelude.hashWithSalt` propertyId+      `Prelude.hashWithSalt` propertyValue++instance Prelude.NFData IotSiteWiseAction where+  rnf IotSiteWiseAction' {..} =+    Prelude.rnf assetId+      `Prelude.seq` Prelude.rnf entryId+      `Prelude.seq` Prelude.rnf propertyAlias+      `Prelude.seq` Prelude.rnf propertyId+      `Prelude.seq` Prelude.rnf propertyValue++instance Data.ToJSON IotSiteWiseAction where+  toJSON IotSiteWiseAction' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("assetId" Data..=) Prelude.<$> assetId,+            ("entryId" Data..=) Prelude.<$> entryId,+            ("propertyAlias" Data..=) Prelude.<$> propertyAlias,+            ("propertyId" Data..=) Prelude.<$> propertyId,+            ("propertyValue" Data..=) Prelude.<$> propertyValue+          ]+      )
+ gen/Amazonka/IoTEvents/Types/IotSiteWiseAssetModelPropertyIdentifier.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.IoTEvents.Types.IotSiteWiseAssetModelPropertyIdentifier+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.IotSiteWiseAssetModelPropertyIdentifier where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The asset model property identifer of the input routed from AWS IoT+-- SiteWise.+--+-- /See:/ 'newIotSiteWiseAssetModelPropertyIdentifier' smart constructor.+data IotSiteWiseAssetModelPropertyIdentifier = IotSiteWiseAssetModelPropertyIdentifier'+  { -- | The ID of the AWS IoT SiteWise asset model.+    assetModelId :: Prelude.Text,+    -- | The ID of the AWS IoT SiteWise asset property.+    propertyId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IotSiteWiseAssetModelPropertyIdentifier' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'assetModelId', 'iotSiteWiseAssetModelPropertyIdentifier_assetModelId' - The ID of the AWS IoT SiteWise asset model.+--+-- 'propertyId', 'iotSiteWiseAssetModelPropertyIdentifier_propertyId' - The ID of the AWS IoT SiteWise asset property.+newIotSiteWiseAssetModelPropertyIdentifier ::+  -- | 'assetModelId'+  Prelude.Text ->+  -- | 'propertyId'+  Prelude.Text ->+  IotSiteWiseAssetModelPropertyIdentifier+newIotSiteWiseAssetModelPropertyIdentifier+  pAssetModelId_+  pPropertyId_ =+    IotSiteWiseAssetModelPropertyIdentifier'+      { assetModelId =+          pAssetModelId_,+        propertyId = pPropertyId_+      }++-- | The ID of the AWS IoT SiteWise asset model.+iotSiteWiseAssetModelPropertyIdentifier_assetModelId :: Lens.Lens' IotSiteWiseAssetModelPropertyIdentifier Prelude.Text+iotSiteWiseAssetModelPropertyIdentifier_assetModelId = Lens.lens (\IotSiteWiseAssetModelPropertyIdentifier' {assetModelId} -> assetModelId) (\s@IotSiteWiseAssetModelPropertyIdentifier' {} a -> s {assetModelId = a} :: IotSiteWiseAssetModelPropertyIdentifier)++-- | The ID of the AWS IoT SiteWise asset property.+iotSiteWiseAssetModelPropertyIdentifier_propertyId :: Lens.Lens' IotSiteWiseAssetModelPropertyIdentifier Prelude.Text+iotSiteWiseAssetModelPropertyIdentifier_propertyId = Lens.lens (\IotSiteWiseAssetModelPropertyIdentifier' {propertyId} -> propertyId) (\s@IotSiteWiseAssetModelPropertyIdentifier' {} a -> s {propertyId = a} :: IotSiteWiseAssetModelPropertyIdentifier)++instance+  Prelude.Hashable+    IotSiteWiseAssetModelPropertyIdentifier+  where+  hashWithSalt+    _salt+    IotSiteWiseAssetModelPropertyIdentifier' {..} =+      _salt+        `Prelude.hashWithSalt` assetModelId+        `Prelude.hashWithSalt` propertyId++instance+  Prelude.NFData+    IotSiteWiseAssetModelPropertyIdentifier+  where+  rnf IotSiteWiseAssetModelPropertyIdentifier' {..} =+    Prelude.rnf assetModelId+      `Prelude.seq` Prelude.rnf propertyId++instance+  Data.ToJSON+    IotSiteWiseAssetModelPropertyIdentifier+  where+  toJSON IotSiteWiseAssetModelPropertyIdentifier' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("assetModelId" Data..= assetModelId),+            Prelude.Just ("propertyId" Data..= propertyId)+          ]+      )
+ gen/Amazonka/IoTEvents/Types/IotSiteWiseInputIdentifier.hs view
@@ -0,0 +1,74 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.IotSiteWiseInputIdentifier+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.IotSiteWiseInputIdentifier where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.IotSiteWiseAssetModelPropertyIdentifier+import qualified Amazonka.Prelude as Prelude++-- | The identifer of the input routed from AWS IoT SiteWise.+--+-- /See:/ 'newIotSiteWiseInputIdentifier' smart constructor.+data IotSiteWiseInputIdentifier = IotSiteWiseInputIdentifier'+  { -- | The identifier of the AWS IoT SiteWise asset model property.+    iotSiteWiseAssetModelPropertyIdentifier :: Prelude.Maybe IotSiteWiseAssetModelPropertyIdentifier+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IotSiteWiseInputIdentifier' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'iotSiteWiseAssetModelPropertyIdentifier', 'iotSiteWiseInputIdentifier_iotSiteWiseAssetModelPropertyIdentifier' - The identifier of the AWS IoT SiteWise asset model property.+newIotSiteWiseInputIdentifier ::+  IotSiteWiseInputIdentifier+newIotSiteWiseInputIdentifier =+  IotSiteWiseInputIdentifier'+    { iotSiteWiseAssetModelPropertyIdentifier =+        Prelude.Nothing+    }++-- | The identifier of the AWS IoT SiteWise asset model property.+iotSiteWiseInputIdentifier_iotSiteWiseAssetModelPropertyIdentifier :: Lens.Lens' IotSiteWiseInputIdentifier (Prelude.Maybe IotSiteWiseAssetModelPropertyIdentifier)+iotSiteWiseInputIdentifier_iotSiteWiseAssetModelPropertyIdentifier = Lens.lens (\IotSiteWiseInputIdentifier' {iotSiteWiseAssetModelPropertyIdentifier} -> iotSiteWiseAssetModelPropertyIdentifier) (\s@IotSiteWiseInputIdentifier' {} a -> s {iotSiteWiseAssetModelPropertyIdentifier = a} :: IotSiteWiseInputIdentifier)++instance Prelude.Hashable IotSiteWiseInputIdentifier where+  hashWithSalt _salt IotSiteWiseInputIdentifier' {..} =+    _salt+      `Prelude.hashWithSalt` iotSiteWiseAssetModelPropertyIdentifier++instance Prelude.NFData IotSiteWiseInputIdentifier where+  rnf IotSiteWiseInputIdentifier' {..} =+    Prelude.rnf iotSiteWiseAssetModelPropertyIdentifier++instance Data.ToJSON IotSiteWiseInputIdentifier where+  toJSON IotSiteWiseInputIdentifier' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("iotSiteWiseAssetModelPropertyIdentifier" Data..=)+              Prelude.<$> iotSiteWiseAssetModelPropertyIdentifier+          ]+      )
+ gen/Amazonka/IoTEvents/Types/IotTopicPublishAction.hs view
@@ -0,0 +1,106 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.IotTopicPublishAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.IotTopicPublishAction where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.Payload+import qualified Amazonka.Prelude as Prelude++-- | Information required to publish the MQTT message through the AWS IoT+-- message broker.+--+-- /See:/ 'newIotTopicPublishAction' smart constructor.+data IotTopicPublishAction = IotTopicPublishAction'+  { -- | You can configure the action payload when you publish a message to an+    -- AWS IoT Core topic.+    payload :: Prelude.Maybe Payload,+    -- | The MQTT topic of the message. You can use a string expression that+    -- includes variables (@$variable.\<variable-name>@) and input values+    -- (@$input.\<input-name>.\<path-to-datum>@) as the topic string.+    mqttTopic :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IotTopicPublishAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'payload', 'iotTopicPublishAction_payload' - You can configure the action payload when you publish a message to an+-- AWS IoT Core topic.+--+-- 'mqttTopic', 'iotTopicPublishAction_mqttTopic' - The MQTT topic of the message. You can use a string expression that+-- includes variables (@$variable.\<variable-name>@) and input values+-- (@$input.\<input-name>.\<path-to-datum>@) as the topic string.+newIotTopicPublishAction ::+  -- | 'mqttTopic'+  Prelude.Text ->+  IotTopicPublishAction+newIotTopicPublishAction pMqttTopic_ =+  IotTopicPublishAction'+    { payload = Prelude.Nothing,+      mqttTopic = pMqttTopic_+    }++-- | You can configure the action payload when you publish a message to an+-- AWS IoT Core topic.+iotTopicPublishAction_payload :: Lens.Lens' IotTopicPublishAction (Prelude.Maybe Payload)+iotTopicPublishAction_payload = Lens.lens (\IotTopicPublishAction' {payload} -> payload) (\s@IotTopicPublishAction' {} a -> s {payload = a} :: IotTopicPublishAction)++-- | The MQTT topic of the message. You can use a string expression that+-- includes variables (@$variable.\<variable-name>@) and input values+-- (@$input.\<input-name>.\<path-to-datum>@) as the topic string.+iotTopicPublishAction_mqttTopic :: Lens.Lens' IotTopicPublishAction Prelude.Text+iotTopicPublishAction_mqttTopic = Lens.lens (\IotTopicPublishAction' {mqttTopic} -> mqttTopic) (\s@IotTopicPublishAction' {} a -> s {mqttTopic = a} :: IotTopicPublishAction)++instance Data.FromJSON IotTopicPublishAction where+  parseJSON =+    Data.withObject+      "IotTopicPublishAction"+      ( \x ->+          IotTopicPublishAction'+            Prelude.<$> (x Data..:? "payload")+            Prelude.<*> (x Data..: "mqttTopic")+      )++instance Prelude.Hashable IotTopicPublishAction where+  hashWithSalt _salt IotTopicPublishAction' {..} =+    _salt+      `Prelude.hashWithSalt` payload+      `Prelude.hashWithSalt` mqttTopic++instance Prelude.NFData IotTopicPublishAction where+  rnf IotTopicPublishAction' {..} =+    Prelude.rnf payload+      `Prelude.seq` Prelude.rnf mqttTopic++instance Data.ToJSON IotTopicPublishAction where+  toJSON IotTopicPublishAction' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("payload" Data..=) Prelude.<$> payload,+            Prelude.Just ("mqttTopic" Data..= mqttTopic)+          ]+      )
+ gen/Amazonka/IoTEvents/Types/LambdaAction.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.IoTEvents.Types.LambdaAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.LambdaAction where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.Payload+import qualified Amazonka.Prelude as Prelude++-- | Calls a Lambda function, passing in information about the detector model+-- instance and the event that triggered the action.+--+-- /See:/ 'newLambdaAction' smart constructor.+data LambdaAction = LambdaAction'+  { -- | You can configure the action payload when you send a message to a Lambda+    -- function.+    payload :: Prelude.Maybe Payload,+    -- | The ARN of the Lambda function that is executed.+    functionArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LambdaAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'payload', 'lambdaAction_payload' - You can configure the action payload when you send a message to a Lambda+-- function.+--+-- 'functionArn', 'lambdaAction_functionArn' - The ARN of the Lambda function that is executed.+newLambdaAction ::+  -- | 'functionArn'+  Prelude.Text ->+  LambdaAction+newLambdaAction pFunctionArn_ =+  LambdaAction'+    { payload = Prelude.Nothing,+      functionArn = pFunctionArn_+    }++-- | You can configure the action payload when you send a message to a Lambda+-- function.+lambdaAction_payload :: Lens.Lens' LambdaAction (Prelude.Maybe Payload)+lambdaAction_payload = Lens.lens (\LambdaAction' {payload} -> payload) (\s@LambdaAction' {} a -> s {payload = a} :: LambdaAction)++-- | The ARN of the Lambda function that is executed.+lambdaAction_functionArn :: Lens.Lens' LambdaAction Prelude.Text+lambdaAction_functionArn = Lens.lens (\LambdaAction' {functionArn} -> functionArn) (\s@LambdaAction' {} a -> s {functionArn = a} :: LambdaAction)++instance Data.FromJSON LambdaAction where+  parseJSON =+    Data.withObject+      "LambdaAction"+      ( \x ->+          LambdaAction'+            Prelude.<$> (x Data..:? "payload")+            Prelude.<*> (x Data..: "functionArn")+      )++instance Prelude.Hashable LambdaAction where+  hashWithSalt _salt LambdaAction' {..} =+    _salt+      `Prelude.hashWithSalt` payload+      `Prelude.hashWithSalt` functionArn++instance Prelude.NFData LambdaAction where+  rnf LambdaAction' {..} =+    Prelude.rnf payload+      `Prelude.seq` Prelude.rnf functionArn++instance Data.ToJSON LambdaAction where+  toJSON LambdaAction' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("payload" Data..=) Prelude.<$> payload,+            Prelude.Just ("functionArn" Data..= functionArn)+          ]+      )
+ gen/Amazonka/IoTEvents/Types/LoggingLevel.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.IoTEvents.Types.LoggingLevel+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.LoggingLevel+  ( LoggingLevel+      ( ..,+        LoggingLevel_DEBUG,+        LoggingLevel_ERROR,+        LoggingLevel_INFO+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LoggingLevel = LoggingLevel'+  { fromLoggingLevel ::+      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 LoggingLevel_DEBUG :: LoggingLevel+pattern LoggingLevel_DEBUG = LoggingLevel' "DEBUG"++pattern LoggingLevel_ERROR :: LoggingLevel+pattern LoggingLevel_ERROR = LoggingLevel' "ERROR"++pattern LoggingLevel_INFO :: LoggingLevel+pattern LoggingLevel_INFO = LoggingLevel' "INFO"++{-# COMPLETE+  LoggingLevel_DEBUG,+  LoggingLevel_ERROR,+  LoggingLevel_INFO,+  LoggingLevel'+  #-}
+ gen/Amazonka/IoTEvents/Types/LoggingOptions.hs view
@@ -0,0 +1,135 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.LoggingOptions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.LoggingOptions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.DetectorDebugOption+import Amazonka.IoTEvents.Types.LoggingLevel+import qualified Amazonka.Prelude as Prelude++-- | The values of the AWS IoT Events logging options.+--+-- /See:/ 'newLoggingOptions' smart constructor.+data LoggingOptions = LoggingOptions'+  { -- | Information that identifies those detector models and their detectors+    -- (instances) for which the logging level is given.+    detectorDebugOptions :: Prelude.Maybe (Prelude.NonEmpty DetectorDebugOption),+    -- | The ARN of the role that grants permission to AWS IoT Events to perform+    -- logging.+    roleArn :: Prelude.Text,+    -- | The logging level.+    level :: LoggingLevel,+    -- | If TRUE, logging is enabled for AWS IoT Events.+    enabled :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LoggingOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectorDebugOptions', 'loggingOptions_detectorDebugOptions' - Information that identifies those detector models and their detectors+-- (instances) for which the logging level is given.+--+-- 'roleArn', 'loggingOptions_roleArn' - The ARN of the role that grants permission to AWS IoT Events to perform+-- logging.+--+-- 'level', 'loggingOptions_level' - The logging level.+--+-- 'enabled', 'loggingOptions_enabled' - If TRUE, logging is enabled for AWS IoT Events.+newLoggingOptions ::+  -- | 'roleArn'+  Prelude.Text ->+  -- | 'level'+  LoggingLevel ->+  -- | 'enabled'+  Prelude.Bool ->+  LoggingOptions+newLoggingOptions pRoleArn_ pLevel_ pEnabled_ =+  LoggingOptions'+    { detectorDebugOptions =+        Prelude.Nothing,+      roleArn = pRoleArn_,+      level = pLevel_,+      enabled = pEnabled_+    }++-- | Information that identifies those detector models and their detectors+-- (instances) for which the logging level is given.+loggingOptions_detectorDebugOptions :: Lens.Lens' LoggingOptions (Prelude.Maybe (Prelude.NonEmpty DetectorDebugOption))+loggingOptions_detectorDebugOptions = Lens.lens (\LoggingOptions' {detectorDebugOptions} -> detectorDebugOptions) (\s@LoggingOptions' {} a -> s {detectorDebugOptions = a} :: LoggingOptions) Prelude.. Lens.mapping Lens.coerced++-- | The ARN of the role that grants permission to AWS IoT Events to perform+-- logging.+loggingOptions_roleArn :: Lens.Lens' LoggingOptions Prelude.Text+loggingOptions_roleArn = Lens.lens (\LoggingOptions' {roleArn} -> roleArn) (\s@LoggingOptions' {} a -> s {roleArn = a} :: LoggingOptions)++-- | The logging level.+loggingOptions_level :: Lens.Lens' LoggingOptions LoggingLevel+loggingOptions_level = Lens.lens (\LoggingOptions' {level} -> level) (\s@LoggingOptions' {} a -> s {level = a} :: LoggingOptions)++-- | If TRUE, logging is enabled for AWS IoT Events.+loggingOptions_enabled :: Lens.Lens' LoggingOptions Prelude.Bool+loggingOptions_enabled = Lens.lens (\LoggingOptions' {enabled} -> enabled) (\s@LoggingOptions' {} a -> s {enabled = a} :: LoggingOptions)++instance Data.FromJSON LoggingOptions where+  parseJSON =+    Data.withObject+      "LoggingOptions"+      ( \x ->+          LoggingOptions'+            Prelude.<$> (x Data..:? "detectorDebugOptions")+            Prelude.<*> (x Data..: "roleArn")+            Prelude.<*> (x Data..: "level")+            Prelude.<*> (x Data..: "enabled")+      )++instance Prelude.Hashable LoggingOptions where+  hashWithSalt _salt LoggingOptions' {..} =+    _salt+      `Prelude.hashWithSalt` detectorDebugOptions+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` level+      `Prelude.hashWithSalt` enabled++instance Prelude.NFData LoggingOptions where+  rnf LoggingOptions' {..} =+    Prelude.rnf detectorDebugOptions+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf level+      `Prelude.seq` Prelude.rnf enabled++instance Data.ToJSON LoggingOptions where+  toJSON LoggingOptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("detectorDebugOptions" Data..=)+              Prelude.<$> detectorDebugOptions,+            Prelude.Just ("roleArn" Data..= roleArn),+            Prelude.Just ("level" Data..= level),+            Prelude.Just ("enabled" Data..= enabled)+          ]+      )
+ gen/Amazonka/IoTEvents/Types/NotificationAction.hs view
@@ -0,0 +1,121 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.NotificationAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.NotificationAction where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.EmailConfiguration+import Amazonka.IoTEvents.Types.NotificationTargetActions+import Amazonka.IoTEvents.Types.SMSConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Contains the notification settings of an alarm model. The settings apply+-- to all alarms that were created based on this alarm model.+--+-- /See:/ 'newNotificationAction' smart constructor.+data NotificationAction = NotificationAction'+  { -- | Contains the configuration information of email notifications.+    emailConfigurations :: Prelude.Maybe (Prelude.NonEmpty EmailConfiguration),+    -- | Contains the configuration information of SMS notifications.+    smsConfigurations :: Prelude.Maybe (Prelude.NonEmpty SMSConfiguration),+    -- | Specifies an AWS Lambda function to manage alarm notifications. You can+    -- create one or use the+    -- <https://docs.aws.amazon.com/iotevents/latest/developerguide/lambda-support.html AWS Lambda function provided by AWS IoT Events>.+    action :: NotificationTargetActions+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NotificationAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'emailConfigurations', 'notificationAction_emailConfigurations' - Contains the configuration information of email notifications.+--+-- 'smsConfigurations', 'notificationAction_smsConfigurations' - Contains the configuration information of SMS notifications.+--+-- 'action', 'notificationAction_action' - Specifies an AWS Lambda function to manage alarm notifications. You can+-- create one or use the+-- <https://docs.aws.amazon.com/iotevents/latest/developerguide/lambda-support.html AWS Lambda function provided by AWS IoT Events>.+newNotificationAction ::+  -- | 'action'+  NotificationTargetActions ->+  NotificationAction+newNotificationAction pAction_ =+  NotificationAction'+    { emailConfigurations =+        Prelude.Nothing,+      smsConfigurations = Prelude.Nothing,+      action = pAction_+    }++-- | Contains the configuration information of email notifications.+notificationAction_emailConfigurations :: Lens.Lens' NotificationAction (Prelude.Maybe (Prelude.NonEmpty EmailConfiguration))+notificationAction_emailConfigurations = Lens.lens (\NotificationAction' {emailConfigurations} -> emailConfigurations) (\s@NotificationAction' {} a -> s {emailConfigurations = a} :: NotificationAction) Prelude.. Lens.mapping Lens.coerced++-- | Contains the configuration information of SMS notifications.+notificationAction_smsConfigurations :: Lens.Lens' NotificationAction (Prelude.Maybe (Prelude.NonEmpty SMSConfiguration))+notificationAction_smsConfigurations = Lens.lens (\NotificationAction' {smsConfigurations} -> smsConfigurations) (\s@NotificationAction' {} a -> s {smsConfigurations = a} :: NotificationAction) Prelude.. Lens.mapping Lens.coerced++-- | Specifies an AWS Lambda function to manage alarm notifications. You can+-- create one or use the+-- <https://docs.aws.amazon.com/iotevents/latest/developerguide/lambda-support.html AWS Lambda function provided by AWS IoT Events>.+notificationAction_action :: Lens.Lens' NotificationAction NotificationTargetActions+notificationAction_action = Lens.lens (\NotificationAction' {action} -> action) (\s@NotificationAction' {} a -> s {action = a} :: NotificationAction)++instance Data.FromJSON NotificationAction where+  parseJSON =+    Data.withObject+      "NotificationAction"+      ( \x ->+          NotificationAction'+            Prelude.<$> (x Data..:? "emailConfigurations")+            Prelude.<*> (x Data..:? "smsConfigurations")+            Prelude.<*> (x Data..: "action")+      )++instance Prelude.Hashable NotificationAction where+  hashWithSalt _salt NotificationAction' {..} =+    _salt+      `Prelude.hashWithSalt` emailConfigurations+      `Prelude.hashWithSalt` smsConfigurations+      `Prelude.hashWithSalt` action++instance Prelude.NFData NotificationAction where+  rnf NotificationAction' {..} =+    Prelude.rnf emailConfigurations+      `Prelude.seq` Prelude.rnf smsConfigurations+      `Prelude.seq` Prelude.rnf action++instance Data.ToJSON NotificationAction where+  toJSON NotificationAction' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("emailConfigurations" Data..=)+              Prelude.<$> emailConfigurations,+            ("smsConfigurations" Data..=)+              Prelude.<$> smsConfigurations,+            Prelude.Just ("action" Data..= action)+          ]+      )
+ gen/Amazonka/IoTEvents/Types/NotificationTargetActions.hs view
@@ -0,0 +1,81 @@+{-# 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.IoTEvents.Types.NotificationTargetActions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.NotificationTargetActions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.LambdaAction+import qualified Amazonka.Prelude as Prelude++-- | Specifies an AWS Lambda function to manage alarm notifications. You can+-- create one or use the+-- <https://docs.aws.amazon.com/iotevents/latest/developerguide/lambda-support.html AWS Lambda function provided by AWS IoT Events>.+--+-- /See:/ 'newNotificationTargetActions' smart constructor.+data NotificationTargetActions = NotificationTargetActions'+  { lambdaAction :: Prelude.Maybe LambdaAction+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NotificationTargetActions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'lambdaAction', 'notificationTargetActions_lambdaAction' - Undocumented member.+newNotificationTargetActions ::+  NotificationTargetActions+newNotificationTargetActions =+  NotificationTargetActions'+    { lambdaAction =+        Prelude.Nothing+    }++-- | Undocumented member.+notificationTargetActions_lambdaAction :: Lens.Lens' NotificationTargetActions (Prelude.Maybe LambdaAction)+notificationTargetActions_lambdaAction = Lens.lens (\NotificationTargetActions' {lambdaAction} -> lambdaAction) (\s@NotificationTargetActions' {} a -> s {lambdaAction = a} :: NotificationTargetActions)++instance Data.FromJSON NotificationTargetActions where+  parseJSON =+    Data.withObject+      "NotificationTargetActions"+      ( \x ->+          NotificationTargetActions'+            Prelude.<$> (x Data..:? "lambdaAction")+      )++instance Prelude.Hashable NotificationTargetActions where+  hashWithSalt _salt NotificationTargetActions' {..} =+    _salt `Prelude.hashWithSalt` lambdaAction++instance Prelude.NFData NotificationTargetActions where+  rnf NotificationTargetActions' {..} =+    Prelude.rnf lambdaAction++instance Data.ToJSON NotificationTargetActions where+  toJSON NotificationTargetActions' {..} =+    Data.object+      ( Prelude.catMaybes+          [("lambdaAction" Data..=) Prelude.<$> lambdaAction]+      )
+ gen/Amazonka/IoTEvents/Types/OnEnterLifecycle.hs view
@@ -0,0 +1,80 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.OnEnterLifecycle+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.OnEnterLifecycle where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.Event+import qualified Amazonka.Prelude as Prelude++-- | When entering this state, perform these @actions@ if the @condition@ is+-- TRUE.+--+-- /See:/ 'newOnEnterLifecycle' smart constructor.+data OnEnterLifecycle = OnEnterLifecycle'+  { -- | Specifies the actions that are performed when the state is entered and+    -- the @condition@ is @TRUE@.+    events :: Prelude.Maybe [Event]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OnEnterLifecycle' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'events', 'onEnterLifecycle_events' - Specifies the actions that are performed when the state is entered and+-- the @condition@ is @TRUE@.+newOnEnterLifecycle ::+  OnEnterLifecycle+newOnEnterLifecycle =+  OnEnterLifecycle' {events = Prelude.Nothing}++-- | Specifies the actions that are performed when the state is entered and+-- the @condition@ is @TRUE@.+onEnterLifecycle_events :: Lens.Lens' OnEnterLifecycle (Prelude.Maybe [Event])+onEnterLifecycle_events = Lens.lens (\OnEnterLifecycle' {events} -> events) (\s@OnEnterLifecycle' {} a -> s {events = a} :: OnEnterLifecycle) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON OnEnterLifecycle where+  parseJSON =+    Data.withObject+      "OnEnterLifecycle"+      ( \x ->+          OnEnterLifecycle'+            Prelude.<$> (x Data..:? "events" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable OnEnterLifecycle where+  hashWithSalt _salt OnEnterLifecycle' {..} =+    _salt `Prelude.hashWithSalt` events++instance Prelude.NFData OnEnterLifecycle where+  rnf OnEnterLifecycle' {..} = Prelude.rnf events++instance Data.ToJSON OnEnterLifecycle where+  toJSON OnEnterLifecycle' {..} =+    Data.object+      ( Prelude.catMaybes+          [("events" Data..=) Prelude.<$> events]+      )
+ gen/Amazonka/IoTEvents/Types/OnExitLifecycle.hs view
@@ -0,0 +1,80 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.OnExitLifecycle+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.OnExitLifecycle where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.Event+import qualified Amazonka.Prelude as Prelude++-- | When exiting this state, perform these @actions@ if the specified+-- @condition@ is @TRUE@.+--+-- /See:/ 'newOnExitLifecycle' smart constructor.+data OnExitLifecycle = OnExitLifecycle'+  { -- | Specifies the @actions@ that are performed when the state is exited and+    -- the @condition@ is @TRUE@.+    events :: Prelude.Maybe [Event]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OnExitLifecycle' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'events', 'onExitLifecycle_events' - Specifies the @actions@ that are performed when the state is exited and+-- the @condition@ is @TRUE@.+newOnExitLifecycle ::+  OnExitLifecycle+newOnExitLifecycle =+  OnExitLifecycle' {events = Prelude.Nothing}++-- | Specifies the @actions@ that are performed when the state is exited and+-- the @condition@ is @TRUE@.+onExitLifecycle_events :: Lens.Lens' OnExitLifecycle (Prelude.Maybe [Event])+onExitLifecycle_events = Lens.lens (\OnExitLifecycle' {events} -> events) (\s@OnExitLifecycle' {} a -> s {events = a} :: OnExitLifecycle) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON OnExitLifecycle where+  parseJSON =+    Data.withObject+      "OnExitLifecycle"+      ( \x ->+          OnExitLifecycle'+            Prelude.<$> (x Data..:? "events" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable OnExitLifecycle where+  hashWithSalt _salt OnExitLifecycle' {..} =+    _salt `Prelude.hashWithSalt` events++instance Prelude.NFData OnExitLifecycle where+  rnf OnExitLifecycle' {..} = Prelude.rnf events++instance Data.ToJSON OnExitLifecycle where+  toJSON OnExitLifecycle' {..} =+    Data.object+      ( Prelude.catMaybes+          [("events" Data..=) Prelude.<$> events]+      )
+ gen/Amazonka/IoTEvents/Types/OnInputLifecycle.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.IoTEvents.Types.OnInputLifecycle+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.OnInputLifecycle where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.Event+import Amazonka.IoTEvents.Types.TransitionEvent+import qualified Amazonka.Prelude as Prelude++-- | Specifies the actions performed when the @condition@ evaluates to TRUE.+--+-- /See:/ 'newOnInputLifecycle' smart constructor.+data OnInputLifecycle = OnInputLifecycle'+  { -- | Specifies the actions performed when the @condition@ evaluates to TRUE.+    events :: Prelude.Maybe [Event],+    -- | Specifies the actions performed, and the next state entered, when a+    -- @condition@ evaluates to TRUE.+    transitionEvents :: Prelude.Maybe [TransitionEvent]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OnInputLifecycle' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'events', 'onInputLifecycle_events' - Specifies the actions performed when the @condition@ evaluates to TRUE.+--+-- 'transitionEvents', 'onInputLifecycle_transitionEvents' - Specifies the actions performed, and the next state entered, when a+-- @condition@ evaluates to TRUE.+newOnInputLifecycle ::+  OnInputLifecycle+newOnInputLifecycle =+  OnInputLifecycle'+    { events = Prelude.Nothing,+      transitionEvents = Prelude.Nothing+    }++-- | Specifies the actions performed when the @condition@ evaluates to TRUE.+onInputLifecycle_events :: Lens.Lens' OnInputLifecycle (Prelude.Maybe [Event])+onInputLifecycle_events = Lens.lens (\OnInputLifecycle' {events} -> events) (\s@OnInputLifecycle' {} a -> s {events = a} :: OnInputLifecycle) Prelude.. Lens.mapping Lens.coerced++-- | Specifies the actions performed, and the next state entered, when a+-- @condition@ evaluates to TRUE.+onInputLifecycle_transitionEvents :: Lens.Lens' OnInputLifecycle (Prelude.Maybe [TransitionEvent])+onInputLifecycle_transitionEvents = Lens.lens (\OnInputLifecycle' {transitionEvents} -> transitionEvents) (\s@OnInputLifecycle' {} a -> s {transitionEvents = a} :: OnInputLifecycle) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON OnInputLifecycle where+  parseJSON =+    Data.withObject+      "OnInputLifecycle"+      ( \x ->+          OnInputLifecycle'+            Prelude.<$> (x Data..:? "events" Data..!= Prelude.mempty)+            Prelude.<*> ( x+                            Data..:? "transitionEvents"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable OnInputLifecycle where+  hashWithSalt _salt OnInputLifecycle' {..} =+    _salt+      `Prelude.hashWithSalt` events+      `Prelude.hashWithSalt` transitionEvents++instance Prelude.NFData OnInputLifecycle where+  rnf OnInputLifecycle' {..} =+    Prelude.rnf events+      `Prelude.seq` Prelude.rnf transitionEvents++instance Data.ToJSON OnInputLifecycle where+  toJSON OnInputLifecycle' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("events" Data..=) Prelude.<$> events,+            ("transitionEvents" Data..=)+              Prelude.<$> transitionEvents+          ]+      )
+ gen/Amazonka/IoTEvents/Types/Payload.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.IoTEvents.Types.Payload+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.Payload where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.PayloadType+import qualified Amazonka.Prelude as Prelude++-- | Information needed to configure the payload.+--+-- By default, AWS IoT Events generates a standard payload in JSON for any+-- action. This action payload contains all attribute-value pairs that have+-- the information about the detector model instance and the event+-- triggered the action. To configure the action payload, you can use+-- @contentExpression@.+--+-- /See:/ 'newPayload' smart constructor.+data Payload = Payload'+  { -- | The content of the payload. You can use a string expression that+    -- includes quoted strings (@\'\<string>\'@), variables+    -- (@$variable.\<variable-name>@), input values+    -- (@$input.\<input-name>.\<path-to-datum>@), string concatenations, and+    -- quoted strings that contain @${}@ as the content. The recommended+    -- maximum size of a content expression is 1 KB.+    contentExpression :: Prelude.Text,+    -- | The value of the payload type can be either @STRING@ or @JSON@.+    type' :: PayloadType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Payload' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contentExpression', 'payload_contentExpression' - The content of the payload. You can use a string expression that+-- includes quoted strings (@\'\<string>\'@), variables+-- (@$variable.\<variable-name>@), input values+-- (@$input.\<input-name>.\<path-to-datum>@), string concatenations, and+-- quoted strings that contain @${}@ as the content. The recommended+-- maximum size of a content expression is 1 KB.+--+-- 'type'', 'payload_type' - The value of the payload type can be either @STRING@ or @JSON@.+newPayload ::+  -- | 'contentExpression'+  Prelude.Text ->+  -- | 'type''+  PayloadType ->+  Payload+newPayload pContentExpression_ pType_ =+  Payload'+    { contentExpression = pContentExpression_,+      type' = pType_+    }++-- | The content of the payload. You can use a string expression that+-- includes quoted strings (@\'\<string>\'@), variables+-- (@$variable.\<variable-name>@), input values+-- (@$input.\<input-name>.\<path-to-datum>@), string concatenations, and+-- quoted strings that contain @${}@ as the content. The recommended+-- maximum size of a content expression is 1 KB.+payload_contentExpression :: Lens.Lens' Payload Prelude.Text+payload_contentExpression = Lens.lens (\Payload' {contentExpression} -> contentExpression) (\s@Payload' {} a -> s {contentExpression = a} :: Payload)++-- | The value of the payload type can be either @STRING@ or @JSON@.+payload_type :: Lens.Lens' Payload PayloadType+payload_type = Lens.lens (\Payload' {type'} -> type') (\s@Payload' {} a -> s {type' = a} :: Payload)++instance Data.FromJSON Payload where+  parseJSON =+    Data.withObject+      "Payload"+      ( \x ->+          Payload'+            Prelude.<$> (x Data..: "contentExpression")+            Prelude.<*> (x Data..: "type")+      )++instance Prelude.Hashable Payload where+  hashWithSalt _salt Payload' {..} =+    _salt+      `Prelude.hashWithSalt` contentExpression+      `Prelude.hashWithSalt` type'++instance Prelude.NFData Payload where+  rnf Payload' {..} =+    Prelude.rnf contentExpression+      `Prelude.seq` Prelude.rnf type'++instance Data.ToJSON Payload where+  toJSON Payload' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("contentExpression" Data..= contentExpression),+            Prelude.Just ("type" Data..= type')+          ]+      )
+ gen/Amazonka/IoTEvents/Types/PayloadType.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.IoTEvents.Types.PayloadType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.PayloadType+  ( PayloadType+      ( ..,+        PayloadType_JSON,+        PayloadType_STRING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PayloadType = PayloadType'+  { fromPayloadType ::+      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 PayloadType_JSON :: PayloadType+pattern PayloadType_JSON = PayloadType' "JSON"++pattern PayloadType_STRING :: PayloadType+pattern PayloadType_STRING = PayloadType' "STRING"++{-# COMPLETE+  PayloadType_JSON,+  PayloadType_STRING,+  PayloadType'+  #-}
+ gen/Amazonka/IoTEvents/Types/RecipientDetail.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.RecipientDetail+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.RecipientDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.SSOIdentity+import qualified Amazonka.Prelude as Prelude++-- | The information that identifies the recipient.+--+-- /See:/ 'newRecipientDetail' smart constructor.+data RecipientDetail = RecipientDetail'+  { -- | The AWS Single Sign-On (AWS SSO) authentication information.+    ssoIdentity :: Prelude.Maybe SSOIdentity+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RecipientDetail' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ssoIdentity', 'recipientDetail_ssoIdentity' - The AWS Single Sign-On (AWS SSO) authentication information.+newRecipientDetail ::+  RecipientDetail+newRecipientDetail =+  RecipientDetail' {ssoIdentity = Prelude.Nothing}++-- | The AWS Single Sign-On (AWS SSO) authentication information.+recipientDetail_ssoIdentity :: Lens.Lens' RecipientDetail (Prelude.Maybe SSOIdentity)+recipientDetail_ssoIdentity = Lens.lens (\RecipientDetail' {ssoIdentity} -> ssoIdentity) (\s@RecipientDetail' {} a -> s {ssoIdentity = a} :: RecipientDetail)++instance Data.FromJSON RecipientDetail where+  parseJSON =+    Data.withObject+      "RecipientDetail"+      ( \x ->+          RecipientDetail'+            Prelude.<$> (x Data..:? "ssoIdentity")+      )++instance Prelude.Hashable RecipientDetail where+  hashWithSalt _salt RecipientDetail' {..} =+    _salt `Prelude.hashWithSalt` ssoIdentity++instance Prelude.NFData RecipientDetail where+  rnf RecipientDetail' {..} = Prelude.rnf ssoIdentity++instance Data.ToJSON RecipientDetail where+  toJSON RecipientDetail' {..} =+    Data.object+      ( Prelude.catMaybes+          [("ssoIdentity" Data..=) Prelude.<$> ssoIdentity]+      )
+ gen/Amazonka/IoTEvents/Types/ResetTimerAction.hs view
@@ -0,0 +1,79 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.ResetTimerAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.ResetTimerAction where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information required to reset the timer. The timer is reset to the+-- previously evaluated result of the duration. The duration expression+-- isn\'t reevaluated when you reset the timer.+--+-- /See:/ 'newResetTimerAction' smart constructor.+data ResetTimerAction = ResetTimerAction'+  { -- | The name of the timer to reset.+    timerName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResetTimerAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'timerName', 'resetTimerAction_timerName' - The name of the timer to reset.+newResetTimerAction ::+  -- | 'timerName'+  Prelude.Text ->+  ResetTimerAction+newResetTimerAction pTimerName_ =+  ResetTimerAction' {timerName = pTimerName_}++-- | The name of the timer to reset.+resetTimerAction_timerName :: Lens.Lens' ResetTimerAction Prelude.Text+resetTimerAction_timerName = Lens.lens (\ResetTimerAction' {timerName} -> timerName) (\s@ResetTimerAction' {} a -> s {timerName = a} :: ResetTimerAction)++instance Data.FromJSON ResetTimerAction where+  parseJSON =+    Data.withObject+      "ResetTimerAction"+      ( \x ->+          ResetTimerAction'+            Prelude.<$> (x Data..: "timerName")+      )++instance Prelude.Hashable ResetTimerAction where+  hashWithSalt _salt ResetTimerAction' {..} =+    _salt `Prelude.hashWithSalt` timerName++instance Prelude.NFData ResetTimerAction where+  rnf ResetTimerAction' {..} = Prelude.rnf timerName++instance Data.ToJSON ResetTimerAction where+  toJSON ResetTimerAction' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("timerName" Data..= timerName)]+      )
+ gen/Amazonka/IoTEvents/Types/RoutedResource.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.IoTEvents.Types.RoutedResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.RoutedResource 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 routed resource.+--+-- /See:/ 'newRoutedResource' smart constructor.+data RoutedResource = RoutedResource'+  { -- | The ARN of the routed resource. For more information, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The name of the routed resource.+    name :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RoutedResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'routedResource_arn' - The ARN of the routed resource. For more information, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'name', 'routedResource_name' - The name of the routed resource.+newRoutedResource ::+  RoutedResource+newRoutedResource =+  RoutedResource'+    { arn = Prelude.Nothing,+      name = Prelude.Nothing+    }++-- | The ARN of the routed resource. For more information, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+routedResource_arn :: Lens.Lens' RoutedResource (Prelude.Maybe Prelude.Text)+routedResource_arn = Lens.lens (\RoutedResource' {arn} -> arn) (\s@RoutedResource' {} a -> s {arn = a} :: RoutedResource)++-- | The name of the routed resource.+routedResource_name :: Lens.Lens' RoutedResource (Prelude.Maybe Prelude.Text)+routedResource_name = Lens.lens (\RoutedResource' {name} -> name) (\s@RoutedResource' {} a -> s {name = a} :: RoutedResource)++instance Data.FromJSON RoutedResource where+  parseJSON =+    Data.withObject+      "RoutedResource"+      ( \x ->+          RoutedResource'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "name")+      )++instance Prelude.Hashable RoutedResource where+  hashWithSalt _salt RoutedResource' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` name++instance Prelude.NFData RoutedResource where+  rnf RoutedResource' {..} =+    Prelude.rnf arn `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/IoTEvents/Types/SMSConfiguration.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.IoTEvents.Types.SMSConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.SMSConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.RecipientDetail+import qualified Amazonka.Prelude as Prelude++-- | Contains the configuration information of SMS notifications.+--+-- /See:/ 'newSMSConfiguration' smart constructor.+data SMSConfiguration = SMSConfiguration'+  { -- | The message that you want to send. The message can be up to 200+    -- characters.+    additionalMessage :: Prelude.Maybe Prelude.Text,+    -- | The sender ID.+    senderId :: Prelude.Maybe Prelude.Text,+    -- | Specifies one or more recipients who receive the message.+    --+    -- You must+    -- <https://docs.aws.amazon.com/singlesignon/latest/userguide/addusers.html add the users that receive SMS messages to your AWS SSO store>.+    recipients :: Prelude.NonEmpty RecipientDetail+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SMSConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'additionalMessage', 'sMSConfiguration_additionalMessage' - The message that you want to send. The message can be up to 200+-- characters.+--+-- 'senderId', 'sMSConfiguration_senderId' - The sender ID.+--+-- 'recipients', 'sMSConfiguration_recipients' - Specifies one or more recipients who receive the message.+--+-- You must+-- <https://docs.aws.amazon.com/singlesignon/latest/userguide/addusers.html add the users that receive SMS messages to your AWS SSO store>.+newSMSConfiguration ::+  -- | 'recipients'+  Prelude.NonEmpty RecipientDetail ->+  SMSConfiguration+newSMSConfiguration pRecipients_ =+  SMSConfiguration'+    { additionalMessage =+        Prelude.Nothing,+      senderId = Prelude.Nothing,+      recipients = Lens.coerced Lens.# pRecipients_+    }++-- | The message that you want to send. The message can be up to 200+-- characters.+sMSConfiguration_additionalMessage :: Lens.Lens' SMSConfiguration (Prelude.Maybe Prelude.Text)+sMSConfiguration_additionalMessage = Lens.lens (\SMSConfiguration' {additionalMessage} -> additionalMessage) (\s@SMSConfiguration' {} a -> s {additionalMessage = a} :: SMSConfiguration)++-- | The sender ID.+sMSConfiguration_senderId :: Lens.Lens' SMSConfiguration (Prelude.Maybe Prelude.Text)+sMSConfiguration_senderId = Lens.lens (\SMSConfiguration' {senderId} -> senderId) (\s@SMSConfiguration' {} a -> s {senderId = a} :: SMSConfiguration)++-- | Specifies one or more recipients who receive the message.+--+-- You must+-- <https://docs.aws.amazon.com/singlesignon/latest/userguide/addusers.html add the users that receive SMS messages to your AWS SSO store>.+sMSConfiguration_recipients :: Lens.Lens' SMSConfiguration (Prelude.NonEmpty RecipientDetail)+sMSConfiguration_recipients = Lens.lens (\SMSConfiguration' {recipients} -> recipients) (\s@SMSConfiguration' {} a -> s {recipients = a} :: SMSConfiguration) Prelude.. Lens.coerced++instance Data.FromJSON SMSConfiguration where+  parseJSON =+    Data.withObject+      "SMSConfiguration"+      ( \x ->+          SMSConfiguration'+            Prelude.<$> (x Data..:? "additionalMessage")+            Prelude.<*> (x Data..:? "senderId")+            Prelude.<*> (x Data..: "recipients")+      )++instance Prelude.Hashable SMSConfiguration where+  hashWithSalt _salt SMSConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` additionalMessage+      `Prelude.hashWithSalt` senderId+      `Prelude.hashWithSalt` recipients++instance Prelude.NFData SMSConfiguration where+  rnf SMSConfiguration' {..} =+    Prelude.rnf additionalMessage+      `Prelude.seq` Prelude.rnf senderId+      `Prelude.seq` Prelude.rnf recipients++instance Data.ToJSON SMSConfiguration where+  toJSON SMSConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("additionalMessage" Data..=)+              Prelude.<$> additionalMessage,+            ("senderId" Data..=) Prelude.<$> senderId,+            Prelude.Just ("recipients" Data..= recipients)+          ]+      )
+ gen/Amazonka/IoTEvents/Types/SNSTopicPublishAction.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.SNSTopicPublishAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.SNSTopicPublishAction where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.Payload+import qualified Amazonka.Prelude as Prelude++-- | Information required to publish the Amazon SNS message.+--+-- /See:/ 'newSNSTopicPublishAction' smart constructor.+data SNSTopicPublishAction = SNSTopicPublishAction'+  { -- | You can configure the action payload when you send a message as an+    -- Amazon SNS push notification.+    payload :: Prelude.Maybe Payload,+    -- | The ARN of the Amazon SNS target where the message is sent.+    targetArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SNSTopicPublishAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'payload', 'sNSTopicPublishAction_payload' - You can configure the action payload when you send a message as an+-- Amazon SNS push notification.+--+-- 'targetArn', 'sNSTopicPublishAction_targetArn' - The ARN of the Amazon SNS target where the message is sent.+newSNSTopicPublishAction ::+  -- | 'targetArn'+  Prelude.Text ->+  SNSTopicPublishAction+newSNSTopicPublishAction pTargetArn_ =+  SNSTopicPublishAction'+    { payload = Prelude.Nothing,+      targetArn = pTargetArn_+    }++-- | You can configure the action payload when you send a message as an+-- Amazon SNS push notification.+sNSTopicPublishAction_payload :: Lens.Lens' SNSTopicPublishAction (Prelude.Maybe Payload)+sNSTopicPublishAction_payload = Lens.lens (\SNSTopicPublishAction' {payload} -> payload) (\s@SNSTopicPublishAction' {} a -> s {payload = a} :: SNSTopicPublishAction)++-- | The ARN of the Amazon SNS target where the message is sent.+sNSTopicPublishAction_targetArn :: Lens.Lens' SNSTopicPublishAction Prelude.Text+sNSTopicPublishAction_targetArn = Lens.lens (\SNSTopicPublishAction' {targetArn} -> targetArn) (\s@SNSTopicPublishAction' {} a -> s {targetArn = a} :: SNSTopicPublishAction)++instance Data.FromJSON SNSTopicPublishAction where+  parseJSON =+    Data.withObject+      "SNSTopicPublishAction"+      ( \x ->+          SNSTopicPublishAction'+            Prelude.<$> (x Data..:? "payload")+            Prelude.<*> (x Data..: "targetArn")+      )++instance Prelude.Hashable SNSTopicPublishAction where+  hashWithSalt _salt SNSTopicPublishAction' {..} =+    _salt+      `Prelude.hashWithSalt` payload+      `Prelude.hashWithSalt` targetArn++instance Prelude.NFData SNSTopicPublishAction where+  rnf SNSTopicPublishAction' {..} =+    Prelude.rnf payload+      `Prelude.seq` Prelude.rnf targetArn++instance Data.ToJSON SNSTopicPublishAction where+  toJSON SNSTopicPublishAction' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("payload" Data..=) Prelude.<$> payload,+            Prelude.Just ("targetArn" Data..= targetArn)+          ]+      )
+ gen/Amazonka/IoTEvents/Types/SSOIdentity.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.SSOIdentity+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.SSOIdentity 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 your identity source in AWS Single Sign-On.+-- For more information, see the+-- <https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html AWS Single Sign-On User Guide>.+--+-- /See:/ 'newSSOIdentity' smart constructor.+data SSOIdentity = SSOIdentity'+  { -- | The user ID.+    userId :: Prelude.Maybe Prelude.Text,+    -- | The ID of the AWS SSO identity store.+    identityStoreId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SSOIdentity' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'userId', 'sSOIdentity_userId' - The user ID.+--+-- 'identityStoreId', 'sSOIdentity_identityStoreId' - The ID of the AWS SSO identity store.+newSSOIdentity ::+  -- | 'identityStoreId'+  Prelude.Text ->+  SSOIdentity+newSSOIdentity pIdentityStoreId_ =+  SSOIdentity'+    { userId = Prelude.Nothing,+      identityStoreId = pIdentityStoreId_+    }++-- | The user ID.+sSOIdentity_userId :: Lens.Lens' SSOIdentity (Prelude.Maybe Prelude.Text)+sSOIdentity_userId = Lens.lens (\SSOIdentity' {userId} -> userId) (\s@SSOIdentity' {} a -> s {userId = a} :: SSOIdentity)++-- | The ID of the AWS SSO identity store.+sSOIdentity_identityStoreId :: Lens.Lens' SSOIdentity Prelude.Text+sSOIdentity_identityStoreId = Lens.lens (\SSOIdentity' {identityStoreId} -> identityStoreId) (\s@SSOIdentity' {} a -> s {identityStoreId = a} :: SSOIdentity)++instance Data.FromJSON SSOIdentity where+  parseJSON =+    Data.withObject+      "SSOIdentity"+      ( \x ->+          SSOIdentity'+            Prelude.<$> (x Data..:? "userId")+            Prelude.<*> (x Data..: "identityStoreId")+      )++instance Prelude.Hashable SSOIdentity where+  hashWithSalt _salt SSOIdentity' {..} =+    _salt+      `Prelude.hashWithSalt` userId+      `Prelude.hashWithSalt` identityStoreId++instance Prelude.NFData SSOIdentity where+  rnf SSOIdentity' {..} =+    Prelude.rnf userId+      `Prelude.seq` Prelude.rnf identityStoreId++instance Data.ToJSON SSOIdentity where+  toJSON SSOIdentity' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("userId" Data..=) Prelude.<$> userId,+            Prelude.Just+              ("identityStoreId" Data..= identityStoreId)+          ]+      )
+ gen/Amazonka/IoTEvents/Types/SetTimerAction.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.SetTimerAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.SetTimerAction where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information needed to set the timer.+--+-- /See:/ 'newSetTimerAction' smart constructor.+data SetTimerAction = SetTimerAction'+  { -- | The duration of the timer, in seconds. You can use a string expression+    -- that includes numbers, variables (@$variable.\<variable-name>@), and+    -- input values (@$input.\<input-name>.\<path-to-datum>@) as the duration.+    -- The range of the duration is 1-31622400 seconds. To ensure accuracy, the+    -- minimum duration is 60 seconds. The evaluated result of the duration is+    -- rounded down to the nearest whole number.+    durationExpression :: Prelude.Maybe Prelude.Text,+    -- | The number of seconds until the timer expires. The minimum value is 60+    -- seconds to ensure accuracy. The maximum value is 31622400 seconds.+    seconds :: Prelude.Maybe Prelude.Natural,+    -- | The name of the timer.+    timerName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SetTimerAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'durationExpression', 'setTimerAction_durationExpression' - The duration of the timer, in seconds. You can use a string expression+-- that includes numbers, variables (@$variable.\<variable-name>@), and+-- input values (@$input.\<input-name>.\<path-to-datum>@) as the duration.+-- The range of the duration is 1-31622400 seconds. To ensure accuracy, the+-- minimum duration is 60 seconds. The evaluated result of the duration is+-- rounded down to the nearest whole number.+--+-- 'seconds', 'setTimerAction_seconds' - The number of seconds until the timer expires. The minimum value is 60+-- seconds to ensure accuracy. The maximum value is 31622400 seconds.+--+-- 'timerName', 'setTimerAction_timerName' - The name of the timer.+newSetTimerAction ::+  -- | 'timerName'+  Prelude.Text ->+  SetTimerAction+newSetTimerAction pTimerName_ =+  SetTimerAction'+    { durationExpression =+        Prelude.Nothing,+      seconds = Prelude.Nothing,+      timerName = pTimerName_+    }++-- | The duration of the timer, in seconds. You can use a string expression+-- that includes numbers, variables (@$variable.\<variable-name>@), and+-- input values (@$input.\<input-name>.\<path-to-datum>@) as the duration.+-- The range of the duration is 1-31622400 seconds. To ensure accuracy, the+-- minimum duration is 60 seconds. The evaluated result of the duration is+-- rounded down to the nearest whole number.+setTimerAction_durationExpression :: Lens.Lens' SetTimerAction (Prelude.Maybe Prelude.Text)+setTimerAction_durationExpression = Lens.lens (\SetTimerAction' {durationExpression} -> durationExpression) (\s@SetTimerAction' {} a -> s {durationExpression = a} :: SetTimerAction)++-- | The number of seconds until the timer expires. The minimum value is 60+-- seconds to ensure accuracy. The maximum value is 31622400 seconds.+setTimerAction_seconds :: Lens.Lens' SetTimerAction (Prelude.Maybe Prelude.Natural)+setTimerAction_seconds = Lens.lens (\SetTimerAction' {seconds} -> seconds) (\s@SetTimerAction' {} a -> s {seconds = a} :: SetTimerAction)++-- | The name of the timer.+setTimerAction_timerName :: Lens.Lens' SetTimerAction Prelude.Text+setTimerAction_timerName = Lens.lens (\SetTimerAction' {timerName} -> timerName) (\s@SetTimerAction' {} a -> s {timerName = a} :: SetTimerAction)++instance Data.FromJSON SetTimerAction where+  parseJSON =+    Data.withObject+      "SetTimerAction"+      ( \x ->+          SetTimerAction'+            Prelude.<$> (x Data..:? "durationExpression")+            Prelude.<*> (x Data..:? "seconds")+            Prelude.<*> (x Data..: "timerName")+      )++instance Prelude.Hashable SetTimerAction where+  hashWithSalt _salt SetTimerAction' {..} =+    _salt+      `Prelude.hashWithSalt` durationExpression+      `Prelude.hashWithSalt` seconds+      `Prelude.hashWithSalt` timerName++instance Prelude.NFData SetTimerAction where+  rnf SetTimerAction' {..} =+    Prelude.rnf durationExpression+      `Prelude.seq` Prelude.rnf seconds+      `Prelude.seq` Prelude.rnf timerName++instance Data.ToJSON SetTimerAction where+  toJSON SetTimerAction' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("durationExpression" Data..=)+              Prelude.<$> durationExpression,+            ("seconds" Data..=) Prelude.<$> seconds,+            Prelude.Just ("timerName" Data..= timerName)+          ]+      )
+ gen/Amazonka/IoTEvents/Types/SetVariableAction.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.SetVariableAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.SetVariableAction where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about the variable and its new value.+--+-- /See:/ 'newSetVariableAction' smart constructor.+data SetVariableAction = SetVariableAction'+  { -- | The name of the variable.+    variableName :: Prelude.Text,+    -- | The new value of the variable.+    value :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SetVariableAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'variableName', 'setVariableAction_variableName' - The name of the variable.+--+-- 'value', 'setVariableAction_value' - The new value of the variable.+newSetVariableAction ::+  -- | 'variableName'+  Prelude.Text ->+  -- | 'value'+  Prelude.Text ->+  SetVariableAction+newSetVariableAction pVariableName_ pValue_ =+  SetVariableAction'+    { variableName = pVariableName_,+      value = pValue_+    }++-- | The name of the variable.+setVariableAction_variableName :: Lens.Lens' SetVariableAction Prelude.Text+setVariableAction_variableName = Lens.lens (\SetVariableAction' {variableName} -> variableName) (\s@SetVariableAction' {} a -> s {variableName = a} :: SetVariableAction)++-- | The new value of the variable.+setVariableAction_value :: Lens.Lens' SetVariableAction Prelude.Text+setVariableAction_value = Lens.lens (\SetVariableAction' {value} -> value) (\s@SetVariableAction' {} a -> s {value = a} :: SetVariableAction)++instance Data.FromJSON SetVariableAction where+  parseJSON =+    Data.withObject+      "SetVariableAction"+      ( \x ->+          SetVariableAction'+            Prelude.<$> (x Data..: "variableName")+            Prelude.<*> (x Data..: "value")+      )++instance Prelude.Hashable SetVariableAction where+  hashWithSalt _salt SetVariableAction' {..} =+    _salt+      `Prelude.hashWithSalt` variableName+      `Prelude.hashWithSalt` value++instance Prelude.NFData SetVariableAction where+  rnf SetVariableAction' {..} =+    Prelude.rnf variableName+      `Prelude.seq` Prelude.rnf value++instance Data.ToJSON SetVariableAction where+  toJSON SetVariableAction' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("variableName" Data..= variableName),+            Prelude.Just ("value" Data..= value)+          ]+      )
+ gen/Amazonka/IoTEvents/Types/SimpleRule.hs view
@@ -0,0 +1,125 @@+{-# 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.IoTEvents.Types.SimpleRule+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.SimpleRule where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.ComparisonOperator+import qualified Amazonka.Prelude as Prelude++-- | A rule that compares an input property value to a threshold value with a+-- comparison operator.+--+-- /See:/ 'newSimpleRule' smart constructor.+data SimpleRule = SimpleRule'+  { -- | The value on the left side of the comparison operator. You can specify+    -- an AWS IoT Events input attribute as an input property.+    inputProperty :: Prelude.Text,+    -- | The comparison operator.+    comparisonOperator :: ComparisonOperator,+    -- | The value on the right side of the comparison operator. You can enter a+    -- number or specify an AWS IoT Events input attribute.+    threshold :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SimpleRule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'inputProperty', 'simpleRule_inputProperty' - The value on the left side of the comparison operator. You can specify+-- an AWS IoT Events input attribute as an input property.+--+-- 'comparisonOperator', 'simpleRule_comparisonOperator' - The comparison operator.+--+-- 'threshold', 'simpleRule_threshold' - The value on the right side of the comparison operator. You can enter a+-- number or specify an AWS IoT Events input attribute.+newSimpleRule ::+  -- | 'inputProperty'+  Prelude.Text ->+  -- | 'comparisonOperator'+  ComparisonOperator ->+  -- | 'threshold'+  Prelude.Text ->+  SimpleRule+newSimpleRule+  pInputProperty_+  pComparisonOperator_+  pThreshold_ =+    SimpleRule'+      { inputProperty = pInputProperty_,+        comparisonOperator = pComparisonOperator_,+        threshold = pThreshold_+      }++-- | The value on the left side of the comparison operator. You can specify+-- an AWS IoT Events input attribute as an input property.+simpleRule_inputProperty :: Lens.Lens' SimpleRule Prelude.Text+simpleRule_inputProperty = Lens.lens (\SimpleRule' {inputProperty} -> inputProperty) (\s@SimpleRule' {} a -> s {inputProperty = a} :: SimpleRule)++-- | The comparison operator.+simpleRule_comparisonOperator :: Lens.Lens' SimpleRule ComparisonOperator+simpleRule_comparisonOperator = Lens.lens (\SimpleRule' {comparisonOperator} -> comparisonOperator) (\s@SimpleRule' {} a -> s {comparisonOperator = a} :: SimpleRule)++-- | The value on the right side of the comparison operator. You can enter a+-- number or specify an AWS IoT Events input attribute.+simpleRule_threshold :: Lens.Lens' SimpleRule Prelude.Text+simpleRule_threshold = Lens.lens (\SimpleRule' {threshold} -> threshold) (\s@SimpleRule' {} a -> s {threshold = a} :: SimpleRule)++instance Data.FromJSON SimpleRule where+  parseJSON =+    Data.withObject+      "SimpleRule"+      ( \x ->+          SimpleRule'+            Prelude.<$> (x Data..: "inputProperty")+            Prelude.<*> (x Data..: "comparisonOperator")+            Prelude.<*> (x Data..: "threshold")+      )++instance Prelude.Hashable SimpleRule where+  hashWithSalt _salt SimpleRule' {..} =+    _salt+      `Prelude.hashWithSalt` inputProperty+      `Prelude.hashWithSalt` comparisonOperator+      `Prelude.hashWithSalt` threshold++instance Prelude.NFData SimpleRule where+  rnf SimpleRule' {..} =+    Prelude.rnf inputProperty+      `Prelude.seq` Prelude.rnf comparisonOperator+      `Prelude.seq` Prelude.rnf threshold++instance Data.ToJSON SimpleRule where+  toJSON SimpleRule' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("inputProperty" Data..= inputProperty),+            Prelude.Just+              ("comparisonOperator" Data..= comparisonOperator),+            Prelude.Just ("threshold" Data..= threshold)+          ]+      )
+ gen/Amazonka/IoTEvents/Types/SqsAction.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.IoTEvents.Types.SqsAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.SqsAction where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.Payload+import qualified Amazonka.Prelude as Prelude++-- | Sends information about the detector model instance and the event that+-- triggered the action to an Amazon SQS queue.+--+-- /See:/ 'newSqsAction' smart constructor.+data SqsAction = SqsAction'+  { -- | You can configure the action payload when you send a message to an+    -- Amazon SQS queue.+    payload :: Prelude.Maybe Payload,+    -- | Set this to TRUE if you want the data to be base-64 encoded before it is+    -- written to the queue. Otherwise, set this to FALSE.+    useBase64 :: Prelude.Maybe Prelude.Bool,+    -- | The URL of the SQS queue where the data is written.+    queueUrl :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SqsAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'payload', 'sqsAction_payload' - You can configure the action payload when you send a message to an+-- Amazon SQS queue.+--+-- 'useBase64', 'sqsAction_useBase64' - Set this to TRUE if you want the data to be base-64 encoded before it is+-- written to the queue. Otherwise, set this to FALSE.+--+-- 'queueUrl', 'sqsAction_queueUrl' - The URL of the SQS queue where the data is written.+newSqsAction ::+  -- | 'queueUrl'+  Prelude.Text ->+  SqsAction+newSqsAction pQueueUrl_ =+  SqsAction'+    { payload = Prelude.Nothing,+      useBase64 = Prelude.Nothing,+      queueUrl = pQueueUrl_+    }++-- | You can configure the action payload when you send a message to an+-- Amazon SQS queue.+sqsAction_payload :: Lens.Lens' SqsAction (Prelude.Maybe Payload)+sqsAction_payload = Lens.lens (\SqsAction' {payload} -> payload) (\s@SqsAction' {} a -> s {payload = a} :: SqsAction)++-- | Set this to TRUE if you want the data to be base-64 encoded before it is+-- written to the queue. Otherwise, set this to FALSE.+sqsAction_useBase64 :: Lens.Lens' SqsAction (Prelude.Maybe Prelude.Bool)+sqsAction_useBase64 = Lens.lens (\SqsAction' {useBase64} -> useBase64) (\s@SqsAction' {} a -> s {useBase64 = a} :: SqsAction)++-- | The URL of the SQS queue where the data is written.+sqsAction_queueUrl :: Lens.Lens' SqsAction Prelude.Text+sqsAction_queueUrl = Lens.lens (\SqsAction' {queueUrl} -> queueUrl) (\s@SqsAction' {} a -> s {queueUrl = a} :: SqsAction)++instance Data.FromJSON SqsAction where+  parseJSON =+    Data.withObject+      "SqsAction"+      ( \x ->+          SqsAction'+            Prelude.<$> (x Data..:? "payload")+            Prelude.<*> (x Data..:? "useBase64")+            Prelude.<*> (x Data..: "queueUrl")+      )++instance Prelude.Hashable SqsAction where+  hashWithSalt _salt SqsAction' {..} =+    _salt+      `Prelude.hashWithSalt` payload+      `Prelude.hashWithSalt` useBase64+      `Prelude.hashWithSalt` queueUrl++instance Prelude.NFData SqsAction where+  rnf SqsAction' {..} =+    Prelude.rnf payload+      `Prelude.seq` Prelude.rnf useBase64+      `Prelude.seq` Prelude.rnf queueUrl++instance Data.ToJSON SqsAction where+  toJSON SqsAction' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("payload" Data..=) Prelude.<$> payload,+            ("useBase64" Data..=) Prelude.<$> useBase64,+            Prelude.Just ("queueUrl" Data..= queueUrl)+          ]+      )
+ gen/Amazonka/IoTEvents/Types/State.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.IoTEvents.Types.State+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.State where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.OnEnterLifecycle+import Amazonka.IoTEvents.Types.OnExitLifecycle+import Amazonka.IoTEvents.Types.OnInputLifecycle+import qualified Amazonka.Prelude as Prelude++-- | Information that defines a state of a detector.+--+-- /See:/ 'newState' smart constructor.+data State = State'+  { -- | When entering this state, perform these @actions@ if the @condition@ is+    -- TRUE.+    onEnter :: Prelude.Maybe OnEnterLifecycle,+    -- | When exiting this state, perform these @actions@ if the specified+    -- @condition@ is @TRUE@.+    onExit :: Prelude.Maybe OnExitLifecycle,+    -- | When an input is received and the @condition@ is TRUE, perform the+    -- specified @actions@.+    onInput :: Prelude.Maybe OnInputLifecycle,+    -- | The name of the state.+    stateName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'State' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'onEnter', 'state_onEnter' - When entering this state, perform these @actions@ if the @condition@ is+-- TRUE.+--+-- 'onExit', 'state_onExit' - When exiting this state, perform these @actions@ if the specified+-- @condition@ is @TRUE@.+--+-- 'onInput', 'state_onInput' - When an input is received and the @condition@ is TRUE, perform the+-- specified @actions@.+--+-- 'stateName', 'state_stateName' - The name of the state.+newState ::+  -- | 'stateName'+  Prelude.Text ->+  State+newState pStateName_ =+  State'+    { onEnter = Prelude.Nothing,+      onExit = Prelude.Nothing,+      onInput = Prelude.Nothing,+      stateName = pStateName_+    }++-- | When entering this state, perform these @actions@ if the @condition@ is+-- TRUE.+state_onEnter :: Lens.Lens' State (Prelude.Maybe OnEnterLifecycle)+state_onEnter = Lens.lens (\State' {onEnter} -> onEnter) (\s@State' {} a -> s {onEnter = a} :: State)++-- | When exiting this state, perform these @actions@ if the specified+-- @condition@ is @TRUE@.+state_onExit :: Lens.Lens' State (Prelude.Maybe OnExitLifecycle)+state_onExit = Lens.lens (\State' {onExit} -> onExit) (\s@State' {} a -> s {onExit = a} :: State)++-- | When an input is received and the @condition@ is TRUE, perform the+-- specified @actions@.+state_onInput :: Lens.Lens' State (Prelude.Maybe OnInputLifecycle)+state_onInput = Lens.lens (\State' {onInput} -> onInput) (\s@State' {} a -> s {onInput = a} :: State)++-- | The name of the state.+state_stateName :: Lens.Lens' State Prelude.Text+state_stateName = Lens.lens (\State' {stateName} -> stateName) (\s@State' {} a -> s {stateName = a} :: State)++instance Data.FromJSON State where+  parseJSON =+    Data.withObject+      "State"+      ( \x ->+          State'+            Prelude.<$> (x Data..:? "onEnter")+            Prelude.<*> (x Data..:? "onExit")+            Prelude.<*> (x Data..:? "onInput")+            Prelude.<*> (x Data..: "stateName")+      )++instance Prelude.Hashable State where+  hashWithSalt _salt State' {..} =+    _salt+      `Prelude.hashWithSalt` onEnter+      `Prelude.hashWithSalt` onExit+      `Prelude.hashWithSalt` onInput+      `Prelude.hashWithSalt` stateName++instance Prelude.NFData State where+  rnf State' {..} =+    Prelude.rnf onEnter+      `Prelude.seq` Prelude.rnf onExit+      `Prelude.seq` Prelude.rnf onInput+      `Prelude.seq` Prelude.rnf stateName++instance Data.ToJSON State where+  toJSON State' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("onEnter" Data..=) Prelude.<$> onEnter,+            ("onExit" Data..=) Prelude.<$> onExit,+            ("onInput" Data..=) Prelude.<$> onInput,+            Prelude.Just ("stateName" Data..= stateName)+          ]+      )
+ gen/Amazonka/IoTEvents/Types/Tag.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.Types.Tag+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.Tag where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Metadata that can be used to manage the resource.+--+-- /See:/ 'newTag' smart constructor.+data Tag = Tag'+  { -- | The tag\'s key.+    key :: Prelude.Text,+    -- | The tag\'s value.+    value :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Tag' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'key', 'tag_key' - The tag\'s key.+--+-- 'value', 'tag_value' - The tag\'s value.+newTag ::+  -- | 'key'+  Prelude.Text ->+  -- | 'value'+  Prelude.Text ->+  Tag+newTag pKey_ pValue_ =+  Tag' {key = pKey_, value = pValue_}++-- | The tag\'s key.+tag_key :: Lens.Lens' Tag Prelude.Text+tag_key = Lens.lens (\Tag' {key} -> key) (\s@Tag' {} a -> s {key = a} :: Tag)++-- | The tag\'s value.+tag_value :: Lens.Lens' Tag Prelude.Text+tag_value = Lens.lens (\Tag' {value} -> value) (\s@Tag' {} a -> s {value = a} :: Tag)++instance Data.FromJSON Tag where+  parseJSON =+    Data.withObject+      "Tag"+      ( \x ->+          Tag'+            Prelude.<$> (x Data..: "key")+            Prelude.<*> (x Data..: "value")+      )++instance Prelude.Hashable Tag where+  hashWithSalt _salt Tag' {..} =+    _salt+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` value++instance Prelude.NFData Tag where+  rnf Tag' {..} =+    Prelude.rnf key `Prelude.seq` Prelude.rnf value++instance Data.ToJSON Tag where+  toJSON Tag' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("key" Data..= key),+            Prelude.Just ("value" Data..= value)+          ]+      )
+ gen/Amazonka/IoTEvents/Types/TransitionEvent.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.IoTEvents.Types.TransitionEvent+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTEvents.Types.TransitionEvent where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types.Action+import qualified Amazonka.Prelude as Prelude++-- | Specifies the actions performed and the next state entered when a+-- @condition@ evaluates to TRUE.+--+-- /See:/ 'newTransitionEvent' smart constructor.+data TransitionEvent = TransitionEvent'+  { -- | The actions to be performed.+    actions :: Prelude.Maybe [Action],+    -- | The name of the transition event.+    eventName :: Prelude.Text,+    -- | Required. A Boolean expression that when TRUE causes the actions to be+    -- performed and the @nextState@ to be entered.+    condition :: Prelude.Text,+    -- | The next state to enter.+    nextState :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TransitionEvent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'actions', 'transitionEvent_actions' - The actions to be performed.+--+-- 'eventName', 'transitionEvent_eventName' - The name of the transition event.+--+-- 'condition', 'transitionEvent_condition' - Required. A Boolean expression that when TRUE causes the actions to be+-- performed and the @nextState@ to be entered.+--+-- 'nextState', 'transitionEvent_nextState' - The next state to enter.+newTransitionEvent ::+  -- | 'eventName'+  Prelude.Text ->+  -- | 'condition'+  Prelude.Text ->+  -- | 'nextState'+  Prelude.Text ->+  TransitionEvent+newTransitionEvent+  pEventName_+  pCondition_+  pNextState_ =+    TransitionEvent'+      { actions = Prelude.Nothing,+        eventName = pEventName_,+        condition = pCondition_,+        nextState = pNextState_+      }++-- | The actions to be performed.+transitionEvent_actions :: Lens.Lens' TransitionEvent (Prelude.Maybe [Action])+transitionEvent_actions = Lens.lens (\TransitionEvent' {actions} -> actions) (\s@TransitionEvent' {} a -> s {actions = a} :: TransitionEvent) Prelude.. Lens.mapping Lens.coerced++-- | The name of the transition event.+transitionEvent_eventName :: Lens.Lens' TransitionEvent Prelude.Text+transitionEvent_eventName = Lens.lens (\TransitionEvent' {eventName} -> eventName) (\s@TransitionEvent' {} a -> s {eventName = a} :: TransitionEvent)++-- | Required. A Boolean expression that when TRUE causes the actions to be+-- performed and the @nextState@ to be entered.+transitionEvent_condition :: Lens.Lens' TransitionEvent Prelude.Text+transitionEvent_condition = Lens.lens (\TransitionEvent' {condition} -> condition) (\s@TransitionEvent' {} a -> s {condition = a} :: TransitionEvent)++-- | The next state to enter.+transitionEvent_nextState :: Lens.Lens' TransitionEvent Prelude.Text+transitionEvent_nextState = Lens.lens (\TransitionEvent' {nextState} -> nextState) (\s@TransitionEvent' {} a -> s {nextState = a} :: TransitionEvent)++instance Data.FromJSON TransitionEvent where+  parseJSON =+    Data.withObject+      "TransitionEvent"+      ( \x ->+          TransitionEvent'+            Prelude.<$> (x Data..:? "actions" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "eventName")+            Prelude.<*> (x Data..: "condition")+            Prelude.<*> (x Data..: "nextState")+      )++instance Prelude.Hashable TransitionEvent where+  hashWithSalt _salt TransitionEvent' {..} =+    _salt+      `Prelude.hashWithSalt` actions+      `Prelude.hashWithSalt` eventName+      `Prelude.hashWithSalt` condition+      `Prelude.hashWithSalt` nextState++instance Prelude.NFData TransitionEvent where+  rnf TransitionEvent' {..} =+    Prelude.rnf actions+      `Prelude.seq` Prelude.rnf eventName+      `Prelude.seq` Prelude.rnf condition+      `Prelude.seq` Prelude.rnf nextState++instance Data.ToJSON TransitionEvent where+  toJSON TransitionEvent' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("actions" Data..=) Prelude.<$> actions,+            Prelude.Just ("eventName" Data..= eventName),+            Prelude.Just ("condition" Data..= condition),+            Prelude.Just ("nextState" Data..= nextState)+          ]+      )
+ gen/Amazonka/IoTEvents/UntagResource.hs view
@@ -0,0 +1,154 @@+{-# 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.IoTEvents.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 the given tags (metadata) from the resource.+module Amazonka.IoTEvents.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.IoTEvents.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 ARN of the resource.+    resourceArn :: Prelude.Text,+    -- | A list of the keys of the tags to be removed from the resource.+    tagKeys :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'untagResource_resourceArn' - The ARN of the resource.+--+-- 'tagKeys', 'untagResource_tagKeys' - A list of the keys of the tags to be removed from the resource.+newUntagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  UntagResource+newUntagResource pResourceArn_ =+  UntagResource'+    { resourceArn = pResourceArn_,+      tagKeys = Prelude.mempty+    }++-- | The ARN of the resource.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | A list of the keys of the tags to be removed from the resource.+untagResource_tagKeys :: Lens.Lens' UntagResource [Prelude.Text]+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++instance Core.AWSRequest UntagResource where+  type+    AWSResponse UntagResource =+      UntagResourceResponse+  request overrides =+    Request.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 = Prelude.const "/tags"++instance Data.ToQuery UntagResource where+  toQuery UntagResource' {..} =+    Prelude.mconcat+      [ "resourceArn" Data.=: resourceArn,+        "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/IoTEvents/UpdateAlarmModel.hs view
@@ -0,0 +1,371 @@+{-# 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.IoTEvents.UpdateAlarmModel+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an alarm model. Any alarms that were created based on the+-- previous version are deleted and then created again as new data arrives.+module Amazonka.IoTEvents.UpdateAlarmModel+  ( -- * Creating a Request+    UpdateAlarmModel (..),+    newUpdateAlarmModel,++    -- * Request Lenses+    updateAlarmModel_alarmCapabilities,+    updateAlarmModel_alarmEventActions,+    updateAlarmModel_alarmModelDescription,+    updateAlarmModel_alarmNotification,+    updateAlarmModel_severity,+    updateAlarmModel_alarmModelName,+    updateAlarmModel_roleArn,+    updateAlarmModel_alarmRule,++    -- * Destructuring the Response+    UpdateAlarmModelResponse (..),+    newUpdateAlarmModelResponse,++    -- * Response Lenses+    updateAlarmModelResponse_alarmModelArn,+    updateAlarmModelResponse_alarmModelVersion,+    updateAlarmModelResponse_creationTime,+    updateAlarmModelResponse_lastUpdateTime,+    updateAlarmModelResponse_status,+    updateAlarmModelResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateAlarmModel' smart constructor.+data UpdateAlarmModel = UpdateAlarmModel'+  { -- | Contains the configuration information of alarm state changes.+    alarmCapabilities :: Prelude.Maybe AlarmCapabilities,+    -- | Contains information about one or more alarm actions.+    alarmEventActions :: Prelude.Maybe AlarmEventActions,+    -- | The description of the alarm model.+    alarmModelDescription :: Prelude.Maybe Prelude.Text,+    -- | Contains information about one or more notification actions.+    alarmNotification :: Prelude.Maybe AlarmNotification,+    -- | A non-negative integer that reflects the severity level of the alarm.+    severity :: Prelude.Maybe Prelude.Natural,+    -- | The name of the alarm model.+    alarmModelName :: Prelude.Text,+    -- | The ARN of the IAM role that allows the alarm to perform actions and+    -- access AWS resources. For more information, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    roleArn :: Prelude.Text,+    -- | Defines when your alarm is invoked.+    alarmRule :: AlarmRule+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAlarmModel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'alarmCapabilities', 'updateAlarmModel_alarmCapabilities' - Contains the configuration information of alarm state changes.+--+-- 'alarmEventActions', 'updateAlarmModel_alarmEventActions' - Contains information about one or more alarm actions.+--+-- 'alarmModelDescription', 'updateAlarmModel_alarmModelDescription' - The description of the alarm model.+--+-- 'alarmNotification', 'updateAlarmModel_alarmNotification' - Contains information about one or more notification actions.+--+-- 'severity', 'updateAlarmModel_severity' - A non-negative integer that reflects the severity level of the alarm.+--+-- 'alarmModelName', 'updateAlarmModel_alarmModelName' - The name of the alarm model.+--+-- 'roleArn', 'updateAlarmModel_roleArn' - The ARN of the IAM role that allows the alarm to perform actions and+-- access AWS resources. For more information, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'alarmRule', 'updateAlarmModel_alarmRule' - Defines when your alarm is invoked.+newUpdateAlarmModel ::+  -- | 'alarmModelName'+  Prelude.Text ->+  -- | 'roleArn'+  Prelude.Text ->+  -- | 'alarmRule'+  AlarmRule ->+  UpdateAlarmModel+newUpdateAlarmModel+  pAlarmModelName_+  pRoleArn_+  pAlarmRule_ =+    UpdateAlarmModel'+      { alarmCapabilities =+          Prelude.Nothing,+        alarmEventActions = Prelude.Nothing,+        alarmModelDescription = Prelude.Nothing,+        alarmNotification = Prelude.Nothing,+        severity = Prelude.Nothing,+        alarmModelName = pAlarmModelName_,+        roleArn = pRoleArn_,+        alarmRule = pAlarmRule_+      }++-- | Contains the configuration information of alarm state changes.+updateAlarmModel_alarmCapabilities :: Lens.Lens' UpdateAlarmModel (Prelude.Maybe AlarmCapabilities)+updateAlarmModel_alarmCapabilities = Lens.lens (\UpdateAlarmModel' {alarmCapabilities} -> alarmCapabilities) (\s@UpdateAlarmModel' {} a -> s {alarmCapabilities = a} :: UpdateAlarmModel)++-- | Contains information about one or more alarm actions.+updateAlarmModel_alarmEventActions :: Lens.Lens' UpdateAlarmModel (Prelude.Maybe AlarmEventActions)+updateAlarmModel_alarmEventActions = Lens.lens (\UpdateAlarmModel' {alarmEventActions} -> alarmEventActions) (\s@UpdateAlarmModel' {} a -> s {alarmEventActions = a} :: UpdateAlarmModel)++-- | The description of the alarm model.+updateAlarmModel_alarmModelDescription :: Lens.Lens' UpdateAlarmModel (Prelude.Maybe Prelude.Text)+updateAlarmModel_alarmModelDescription = Lens.lens (\UpdateAlarmModel' {alarmModelDescription} -> alarmModelDescription) (\s@UpdateAlarmModel' {} a -> s {alarmModelDescription = a} :: UpdateAlarmModel)++-- | Contains information about one or more notification actions.+updateAlarmModel_alarmNotification :: Lens.Lens' UpdateAlarmModel (Prelude.Maybe AlarmNotification)+updateAlarmModel_alarmNotification = Lens.lens (\UpdateAlarmModel' {alarmNotification} -> alarmNotification) (\s@UpdateAlarmModel' {} a -> s {alarmNotification = a} :: UpdateAlarmModel)++-- | A non-negative integer that reflects the severity level of the alarm.+updateAlarmModel_severity :: Lens.Lens' UpdateAlarmModel (Prelude.Maybe Prelude.Natural)+updateAlarmModel_severity = Lens.lens (\UpdateAlarmModel' {severity} -> severity) (\s@UpdateAlarmModel' {} a -> s {severity = a} :: UpdateAlarmModel)++-- | The name of the alarm model.+updateAlarmModel_alarmModelName :: Lens.Lens' UpdateAlarmModel Prelude.Text+updateAlarmModel_alarmModelName = Lens.lens (\UpdateAlarmModel' {alarmModelName} -> alarmModelName) (\s@UpdateAlarmModel' {} a -> s {alarmModelName = a} :: UpdateAlarmModel)++-- | The ARN of the IAM role that allows the alarm to perform actions and+-- access AWS resources. For more information, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+updateAlarmModel_roleArn :: Lens.Lens' UpdateAlarmModel Prelude.Text+updateAlarmModel_roleArn = Lens.lens (\UpdateAlarmModel' {roleArn} -> roleArn) (\s@UpdateAlarmModel' {} a -> s {roleArn = a} :: UpdateAlarmModel)++-- | Defines when your alarm is invoked.+updateAlarmModel_alarmRule :: Lens.Lens' UpdateAlarmModel AlarmRule+updateAlarmModel_alarmRule = Lens.lens (\UpdateAlarmModel' {alarmRule} -> alarmRule) (\s@UpdateAlarmModel' {} a -> s {alarmRule = a} :: UpdateAlarmModel)++instance Core.AWSRequest UpdateAlarmModel where+  type+    AWSResponse UpdateAlarmModel =+      UpdateAlarmModelResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateAlarmModelResponse'+            Prelude.<$> (x Data..?> "alarmModelArn")+            Prelude.<*> (x Data..?> "alarmModelVersion")+            Prelude.<*> (x Data..?> "creationTime")+            Prelude.<*> (x Data..?> "lastUpdateTime")+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateAlarmModel where+  hashWithSalt _salt UpdateAlarmModel' {..} =+    _salt+      `Prelude.hashWithSalt` alarmCapabilities+      `Prelude.hashWithSalt` alarmEventActions+      `Prelude.hashWithSalt` alarmModelDescription+      `Prelude.hashWithSalt` alarmNotification+      `Prelude.hashWithSalt` severity+      `Prelude.hashWithSalt` alarmModelName+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` alarmRule++instance Prelude.NFData UpdateAlarmModel where+  rnf UpdateAlarmModel' {..} =+    Prelude.rnf alarmCapabilities+      `Prelude.seq` Prelude.rnf alarmEventActions+      `Prelude.seq` Prelude.rnf alarmModelDescription+      `Prelude.seq` Prelude.rnf alarmNotification+      `Prelude.seq` Prelude.rnf severity+      `Prelude.seq` Prelude.rnf alarmModelName+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf alarmRule++instance Data.ToHeaders UpdateAlarmModel where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON UpdateAlarmModel where+  toJSON UpdateAlarmModel' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("alarmCapabilities" Data..=)+              Prelude.<$> alarmCapabilities,+            ("alarmEventActions" Data..=)+              Prelude.<$> alarmEventActions,+            ("alarmModelDescription" Data..=)+              Prelude.<$> alarmModelDescription,+            ("alarmNotification" Data..=)+              Prelude.<$> alarmNotification,+            ("severity" Data..=) Prelude.<$> severity,+            Prelude.Just ("roleArn" Data..= roleArn),+            Prelude.Just ("alarmRule" Data..= alarmRule)+          ]+      )++instance Data.ToPath UpdateAlarmModel where+  toPath UpdateAlarmModel' {..} =+    Prelude.mconcat+      ["/alarm-models/", Data.toBS alarmModelName]++instance Data.ToQuery UpdateAlarmModel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateAlarmModelResponse' smart constructor.+data UpdateAlarmModelResponse = UpdateAlarmModelResponse'+  { -- | The ARN of the alarm model. For more information, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    alarmModelArn :: Prelude.Maybe Prelude.Text,+    -- | The version of the alarm model.+    alarmModelVersion :: Prelude.Maybe Prelude.Text,+    -- | The time the alarm model was created, in the Unix epoch format.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The time the alarm model was last updated, in the Unix epoch format.+    lastUpdateTime :: Prelude.Maybe Data.POSIX,+    -- | The status of the alarm model. The status can be one of the following+    -- values:+    --+    -- -   @ACTIVE@ - The alarm model is active and it\'s ready to evaluate+    --     data.+    --+    -- -   @ACTIVATING@ - AWS IoT Events is activating your alarm model.+    --     Activating an alarm model can take up to a few minutes.+    --+    -- -   @INACTIVE@ - The alarm model is inactive, so it isn\'t ready to+    --     evaluate data. Check your alarm model information and update the+    --     alarm model.+    --+    -- -   @FAILED@ - You couldn\'t create or update the alarm model. Check+    --     your alarm model information and try again.+    status :: Prelude.Maybe AlarmModelVersionStatus,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAlarmModelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'alarmModelArn', 'updateAlarmModelResponse_alarmModelArn' - The ARN of the alarm model. For more information, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'alarmModelVersion', 'updateAlarmModelResponse_alarmModelVersion' - The version of the alarm model.+--+-- 'creationTime', 'updateAlarmModelResponse_creationTime' - The time the alarm model was created, in the Unix epoch format.+--+-- 'lastUpdateTime', 'updateAlarmModelResponse_lastUpdateTime' - The time the alarm model was last updated, in the Unix epoch format.+--+-- 'status', 'updateAlarmModelResponse_status' - The status of the alarm model. The status can be one of the following+-- values:+--+-- -   @ACTIVE@ - The alarm model is active and it\'s ready to evaluate+--     data.+--+-- -   @ACTIVATING@ - AWS IoT Events is activating your alarm model.+--     Activating an alarm model can take up to a few minutes.+--+-- -   @INACTIVE@ - The alarm model is inactive, so it isn\'t ready to+--     evaluate data. Check your alarm model information and update the+--     alarm model.+--+-- -   @FAILED@ - You couldn\'t create or update the alarm model. Check+--     your alarm model information and try again.+--+-- 'httpStatus', 'updateAlarmModelResponse_httpStatus' - The response's http status code.+newUpdateAlarmModelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateAlarmModelResponse+newUpdateAlarmModelResponse pHttpStatus_ =+  UpdateAlarmModelResponse'+    { alarmModelArn =+        Prelude.Nothing,+      alarmModelVersion = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      lastUpdateTime = Prelude.Nothing,+      status = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the alarm model. For more information, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+updateAlarmModelResponse_alarmModelArn :: Lens.Lens' UpdateAlarmModelResponse (Prelude.Maybe Prelude.Text)+updateAlarmModelResponse_alarmModelArn = Lens.lens (\UpdateAlarmModelResponse' {alarmModelArn} -> alarmModelArn) (\s@UpdateAlarmModelResponse' {} a -> s {alarmModelArn = a} :: UpdateAlarmModelResponse)++-- | The version of the alarm model.+updateAlarmModelResponse_alarmModelVersion :: Lens.Lens' UpdateAlarmModelResponse (Prelude.Maybe Prelude.Text)+updateAlarmModelResponse_alarmModelVersion = Lens.lens (\UpdateAlarmModelResponse' {alarmModelVersion} -> alarmModelVersion) (\s@UpdateAlarmModelResponse' {} a -> s {alarmModelVersion = a} :: UpdateAlarmModelResponse)++-- | The time the alarm model was created, in the Unix epoch format.+updateAlarmModelResponse_creationTime :: Lens.Lens' UpdateAlarmModelResponse (Prelude.Maybe Prelude.UTCTime)+updateAlarmModelResponse_creationTime = Lens.lens (\UpdateAlarmModelResponse' {creationTime} -> creationTime) (\s@UpdateAlarmModelResponse' {} a -> s {creationTime = a} :: UpdateAlarmModelResponse) Prelude.. Lens.mapping Data._Time++-- | The time the alarm model was last updated, in the Unix epoch format.+updateAlarmModelResponse_lastUpdateTime :: Lens.Lens' UpdateAlarmModelResponse (Prelude.Maybe Prelude.UTCTime)+updateAlarmModelResponse_lastUpdateTime = Lens.lens (\UpdateAlarmModelResponse' {lastUpdateTime} -> lastUpdateTime) (\s@UpdateAlarmModelResponse' {} a -> s {lastUpdateTime = a} :: UpdateAlarmModelResponse) Prelude.. Lens.mapping Data._Time++-- | The status of the alarm model. The status can be one of the following+-- values:+--+-- -   @ACTIVE@ - The alarm model is active and it\'s ready to evaluate+--     data.+--+-- -   @ACTIVATING@ - AWS IoT Events is activating your alarm model.+--     Activating an alarm model can take up to a few minutes.+--+-- -   @INACTIVE@ - The alarm model is inactive, so it isn\'t ready to+--     evaluate data. Check your alarm model information and update the+--     alarm model.+--+-- -   @FAILED@ - You couldn\'t create or update the alarm model. Check+--     your alarm model information and try again.+updateAlarmModelResponse_status :: Lens.Lens' UpdateAlarmModelResponse (Prelude.Maybe AlarmModelVersionStatus)+updateAlarmModelResponse_status = Lens.lens (\UpdateAlarmModelResponse' {status} -> status) (\s@UpdateAlarmModelResponse' {} a -> s {status = a} :: UpdateAlarmModelResponse)++-- | The response's http status code.+updateAlarmModelResponse_httpStatus :: Lens.Lens' UpdateAlarmModelResponse Prelude.Int+updateAlarmModelResponse_httpStatus = Lens.lens (\UpdateAlarmModelResponse' {httpStatus} -> httpStatus) (\s@UpdateAlarmModelResponse' {} a -> s {httpStatus = a} :: UpdateAlarmModelResponse)++instance Prelude.NFData UpdateAlarmModelResponse where+  rnf UpdateAlarmModelResponse' {..} =+    Prelude.rnf alarmModelArn+      `Prelude.seq` Prelude.rnf alarmModelVersion+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf lastUpdateTime+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTEvents/UpdateDetectorModel.hs view
@@ -0,0 +1,234 @@+{-# 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.IoTEvents.UpdateDetectorModel+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a detector model. Detectors (instances) spawned by the previous+-- version are deleted and then re-created as new inputs arrive.+module Amazonka.IoTEvents.UpdateDetectorModel+  ( -- * Creating a Request+    UpdateDetectorModel (..),+    newUpdateDetectorModel,++    -- * Request Lenses+    updateDetectorModel_detectorModelDescription,+    updateDetectorModel_evaluationMethod,+    updateDetectorModel_detectorModelName,+    updateDetectorModel_detectorModelDefinition,+    updateDetectorModel_roleArn,++    -- * Destructuring the Response+    UpdateDetectorModelResponse (..),+    newUpdateDetectorModelResponse,++    -- * Response Lenses+    updateDetectorModelResponse_detectorModelConfiguration,+    updateDetectorModelResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateDetectorModel' smart constructor.+data UpdateDetectorModel = UpdateDetectorModel'+  { -- | A brief description of the detector model.+    detectorModelDescription :: Prelude.Maybe Prelude.Text,+    -- | Information about the order in which events are evaluated and how+    -- actions are executed.+    evaluationMethod :: Prelude.Maybe EvaluationMethod,+    -- | The name of the detector model that is updated.+    detectorModelName :: Prelude.Text,+    -- | Information that defines how a detector operates.+    detectorModelDefinition :: DetectorModelDefinition,+    -- | The ARN of the role that grants permission to AWS IoT Events to perform+    -- its operations.+    roleArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDetectorModel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectorModelDescription', 'updateDetectorModel_detectorModelDescription' - A brief description of the detector model.+--+-- 'evaluationMethod', 'updateDetectorModel_evaluationMethod' - Information about the order in which events are evaluated and how+-- actions are executed.+--+-- 'detectorModelName', 'updateDetectorModel_detectorModelName' - The name of the detector model that is updated.+--+-- 'detectorModelDefinition', 'updateDetectorModel_detectorModelDefinition' - Information that defines how a detector operates.+--+-- 'roleArn', 'updateDetectorModel_roleArn' - The ARN of the role that grants permission to AWS IoT Events to perform+-- its operations.+newUpdateDetectorModel ::+  -- | 'detectorModelName'+  Prelude.Text ->+  -- | 'detectorModelDefinition'+  DetectorModelDefinition ->+  -- | 'roleArn'+  Prelude.Text ->+  UpdateDetectorModel+newUpdateDetectorModel+  pDetectorModelName_+  pDetectorModelDefinition_+  pRoleArn_ =+    UpdateDetectorModel'+      { detectorModelDescription =+          Prelude.Nothing,+        evaluationMethod = Prelude.Nothing,+        detectorModelName = pDetectorModelName_,+        detectorModelDefinition = pDetectorModelDefinition_,+        roleArn = pRoleArn_+      }++-- | A brief description of the detector model.+updateDetectorModel_detectorModelDescription :: Lens.Lens' UpdateDetectorModel (Prelude.Maybe Prelude.Text)+updateDetectorModel_detectorModelDescription = Lens.lens (\UpdateDetectorModel' {detectorModelDescription} -> detectorModelDescription) (\s@UpdateDetectorModel' {} a -> s {detectorModelDescription = a} :: UpdateDetectorModel)++-- | Information about the order in which events are evaluated and how+-- actions are executed.+updateDetectorModel_evaluationMethod :: Lens.Lens' UpdateDetectorModel (Prelude.Maybe EvaluationMethod)+updateDetectorModel_evaluationMethod = Lens.lens (\UpdateDetectorModel' {evaluationMethod} -> evaluationMethod) (\s@UpdateDetectorModel' {} a -> s {evaluationMethod = a} :: UpdateDetectorModel)++-- | The name of the detector model that is updated.+updateDetectorModel_detectorModelName :: Lens.Lens' UpdateDetectorModel Prelude.Text+updateDetectorModel_detectorModelName = Lens.lens (\UpdateDetectorModel' {detectorModelName} -> detectorModelName) (\s@UpdateDetectorModel' {} a -> s {detectorModelName = a} :: UpdateDetectorModel)++-- | Information that defines how a detector operates.+updateDetectorModel_detectorModelDefinition :: Lens.Lens' UpdateDetectorModel DetectorModelDefinition+updateDetectorModel_detectorModelDefinition = Lens.lens (\UpdateDetectorModel' {detectorModelDefinition} -> detectorModelDefinition) (\s@UpdateDetectorModel' {} a -> s {detectorModelDefinition = a} :: UpdateDetectorModel)++-- | The ARN of the role that grants permission to AWS IoT Events to perform+-- its operations.+updateDetectorModel_roleArn :: Lens.Lens' UpdateDetectorModel Prelude.Text+updateDetectorModel_roleArn = Lens.lens (\UpdateDetectorModel' {roleArn} -> roleArn) (\s@UpdateDetectorModel' {} a -> s {roleArn = a} :: UpdateDetectorModel)++instance Core.AWSRequest UpdateDetectorModel where+  type+    AWSResponse UpdateDetectorModel =+      UpdateDetectorModelResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateDetectorModelResponse'+            Prelude.<$> (x Data..?> "detectorModelConfiguration")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateDetectorModel where+  hashWithSalt _salt UpdateDetectorModel' {..} =+    _salt+      `Prelude.hashWithSalt` detectorModelDescription+      `Prelude.hashWithSalt` evaluationMethod+      `Prelude.hashWithSalt` detectorModelName+      `Prelude.hashWithSalt` detectorModelDefinition+      `Prelude.hashWithSalt` roleArn++instance Prelude.NFData UpdateDetectorModel where+  rnf UpdateDetectorModel' {..} =+    Prelude.rnf detectorModelDescription+      `Prelude.seq` Prelude.rnf evaluationMethod+      `Prelude.seq` Prelude.rnf detectorModelName+      `Prelude.seq` Prelude.rnf detectorModelDefinition+      `Prelude.seq` Prelude.rnf roleArn++instance Data.ToHeaders UpdateDetectorModel where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON UpdateDetectorModel where+  toJSON UpdateDetectorModel' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("detectorModelDescription" Data..=)+              Prelude.<$> detectorModelDescription,+            ("evaluationMethod" Data..=)+              Prelude.<$> evaluationMethod,+            Prelude.Just+              ( "detectorModelDefinition"+                  Data..= detectorModelDefinition+              ),+            Prelude.Just ("roleArn" Data..= roleArn)+          ]+      )++instance Data.ToPath UpdateDetectorModel where+  toPath UpdateDetectorModel' {..} =+    Prelude.mconcat+      ["/detector-models/", Data.toBS detectorModelName]++instance Data.ToQuery UpdateDetectorModel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateDetectorModelResponse' smart constructor.+data UpdateDetectorModelResponse = UpdateDetectorModelResponse'+  { -- | Information about how the detector model is configured.+    detectorModelConfiguration :: Prelude.Maybe DetectorModelConfiguration,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDetectorModelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectorModelConfiguration', 'updateDetectorModelResponse_detectorModelConfiguration' - Information about how the detector model is configured.+--+-- 'httpStatus', 'updateDetectorModelResponse_httpStatus' - The response's http status code.+newUpdateDetectorModelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateDetectorModelResponse+newUpdateDetectorModelResponse pHttpStatus_ =+  UpdateDetectorModelResponse'+    { detectorModelConfiguration =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about how the detector model is configured.+updateDetectorModelResponse_detectorModelConfiguration :: Lens.Lens' UpdateDetectorModelResponse (Prelude.Maybe DetectorModelConfiguration)+updateDetectorModelResponse_detectorModelConfiguration = Lens.lens (\UpdateDetectorModelResponse' {detectorModelConfiguration} -> detectorModelConfiguration) (\s@UpdateDetectorModelResponse' {} a -> s {detectorModelConfiguration = a} :: UpdateDetectorModelResponse)++-- | The response's http status code.+updateDetectorModelResponse_httpStatus :: Lens.Lens' UpdateDetectorModelResponse Prelude.Int+updateDetectorModelResponse_httpStatus = Lens.lens (\UpdateDetectorModelResponse' {httpStatus} -> httpStatus) (\s@UpdateDetectorModelResponse' {} a -> s {httpStatus = a} :: UpdateDetectorModelResponse)++instance Prelude.NFData UpdateDetectorModelResponse where+  rnf UpdateDetectorModelResponse' {..} =+    Prelude.rnf detectorModelConfiguration+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTEvents/UpdateInput.hs view
@@ -0,0 +1,189 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTEvents.UpdateInput+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an input.+module Amazonka.IoTEvents.UpdateInput+  ( -- * Creating a Request+    UpdateInput (..),+    newUpdateInput,++    -- * Request Lenses+    updateInput_inputDescription,+    updateInput_inputName,+    updateInput_inputDefinition,++    -- * Destructuring the Response+    UpdateInputResponse (..),+    newUpdateInputResponse,++    -- * Response Lenses+    updateInputResponse_inputConfiguration,+    updateInputResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateInput' smart constructor.+data UpdateInput = UpdateInput'+  { -- | A brief description of the input.+    inputDescription :: Prelude.Maybe Prelude.Text,+    -- | The name of the input you want to update.+    inputName :: Prelude.Text,+    -- | The definition of the input.+    inputDefinition :: InputDefinition+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateInput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'inputDescription', 'updateInput_inputDescription' - A brief description of the input.+--+-- 'inputName', 'updateInput_inputName' - The name of the input you want to update.+--+-- 'inputDefinition', 'updateInput_inputDefinition' - The definition of the input.+newUpdateInput ::+  -- | 'inputName'+  Prelude.Text ->+  -- | 'inputDefinition'+  InputDefinition ->+  UpdateInput+newUpdateInput pInputName_ pInputDefinition_ =+  UpdateInput'+    { inputDescription = Prelude.Nothing,+      inputName = pInputName_,+      inputDefinition = pInputDefinition_+    }++-- | A brief description of the input.+updateInput_inputDescription :: Lens.Lens' UpdateInput (Prelude.Maybe Prelude.Text)+updateInput_inputDescription = Lens.lens (\UpdateInput' {inputDescription} -> inputDescription) (\s@UpdateInput' {} a -> s {inputDescription = a} :: UpdateInput)++-- | The name of the input you want to update.+updateInput_inputName :: Lens.Lens' UpdateInput Prelude.Text+updateInput_inputName = Lens.lens (\UpdateInput' {inputName} -> inputName) (\s@UpdateInput' {} a -> s {inputName = a} :: UpdateInput)++-- | The definition of the input.+updateInput_inputDefinition :: Lens.Lens' UpdateInput InputDefinition+updateInput_inputDefinition = Lens.lens (\UpdateInput' {inputDefinition} -> inputDefinition) (\s@UpdateInput' {} a -> s {inputDefinition = a} :: UpdateInput)++instance Core.AWSRequest UpdateInput where+  type AWSResponse UpdateInput = UpdateInputResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateInputResponse'+            Prelude.<$> (x Data..?> "inputConfiguration")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateInput where+  hashWithSalt _salt UpdateInput' {..} =+    _salt+      `Prelude.hashWithSalt` inputDescription+      `Prelude.hashWithSalt` inputName+      `Prelude.hashWithSalt` inputDefinition++instance Prelude.NFData UpdateInput where+  rnf UpdateInput' {..} =+    Prelude.rnf inputDescription+      `Prelude.seq` Prelude.rnf inputName+      `Prelude.seq` Prelude.rnf inputDefinition++instance Data.ToHeaders UpdateInput where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON UpdateInput where+  toJSON UpdateInput' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("inputDescription" Data..=)+              Prelude.<$> inputDescription,+            Prelude.Just+              ("inputDefinition" Data..= inputDefinition)+          ]+      )++instance Data.ToPath UpdateInput where+  toPath UpdateInput' {..} =+    Prelude.mconcat ["/inputs/", Data.toBS inputName]++instance Data.ToQuery UpdateInput where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateInputResponse' smart constructor.+data UpdateInputResponse = UpdateInputResponse'+  { -- | Information about the configuration of the input.+    inputConfiguration :: Prelude.Maybe InputConfiguration,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateInputResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'inputConfiguration', 'updateInputResponse_inputConfiguration' - Information about the configuration of the input.+--+-- 'httpStatus', 'updateInputResponse_httpStatus' - The response's http status code.+newUpdateInputResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateInputResponse+newUpdateInputResponse pHttpStatus_ =+  UpdateInputResponse'+    { inputConfiguration =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about the configuration of the input.+updateInputResponse_inputConfiguration :: Lens.Lens' UpdateInputResponse (Prelude.Maybe InputConfiguration)+updateInputResponse_inputConfiguration = Lens.lens (\UpdateInputResponse' {inputConfiguration} -> inputConfiguration) (\s@UpdateInputResponse' {} a -> s {inputConfiguration = a} :: UpdateInputResponse)++-- | The response's http status code.+updateInputResponse_httpStatus :: Lens.Lens' UpdateInputResponse Prelude.Int+updateInputResponse_httpStatus = Lens.lens (\UpdateInputResponse' {httpStatus} -> httpStatus) (\s@UpdateInputResponse' {} a -> s {httpStatus = a} :: UpdateInputResponse)++instance Prelude.NFData UpdateInputResponse where+  rnf UpdateInputResponse' {..} =+    Prelude.rnf inputConfiguration+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTEvents/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.IoTEvents.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.IoTEvents.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTEvents.Lens+import Amazonka.IoTEvents.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.IoTEvents+import Test.Amazonka.IoTEvents.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "IoTEvents"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/Gen/IoTEvents.hs view
@@ -0,0 +1,558 @@+{-# 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.IoTEvents+-- Copyright   : (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.IoTEvents where++import Amazonka.IoTEvents+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.IoTEvents.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"+--         [ requestCreateAlarmModel $+--             newCreateAlarmModel+--+--         , requestCreateDetectorModel $+--             newCreateDetectorModel+--+--         , requestCreateInput $+--             newCreateInput+--+--         , requestDeleteAlarmModel $+--             newDeleteAlarmModel+--+--         , requestDeleteDetectorModel $+--             newDeleteDetectorModel+--+--         , requestDeleteInput $+--             newDeleteInput+--+--         , requestDescribeAlarmModel $+--             newDescribeAlarmModel+--+--         , requestDescribeDetectorModel $+--             newDescribeDetectorModel+--+--         , requestDescribeDetectorModelAnalysis $+--             newDescribeDetectorModelAnalysis+--+--         , requestDescribeInput $+--             newDescribeInput+--+--         , requestDescribeLoggingOptions $+--             newDescribeLoggingOptions+--+--         , requestGetDetectorModelAnalysisResults $+--             newGetDetectorModelAnalysisResults+--+--         , requestListAlarmModelVersions $+--             newListAlarmModelVersions+--+--         , requestListAlarmModels $+--             newListAlarmModels+--+--         , requestListDetectorModelVersions $+--             newListDetectorModelVersions+--+--         , requestListDetectorModels $+--             newListDetectorModels+--+--         , requestListInputRoutings $+--             newListInputRoutings+--+--         , requestListInputs $+--             newListInputs+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestPutLoggingOptions $+--             newPutLoggingOptions+--+--         , requestStartDetectorModelAnalysis $+--             newStartDetectorModelAnalysis+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateAlarmModel $+--             newUpdateAlarmModel+--+--         , requestUpdateDetectorModel $+--             newUpdateDetectorModel+--+--         , requestUpdateInput $+--             newUpdateInput+--+--           ]++--     , testGroup "response"+--         [ responseCreateAlarmModel $+--             newCreateAlarmModelResponse+--+--         , responseCreateDetectorModel $+--             newCreateDetectorModelResponse+--+--         , responseCreateInput $+--             newCreateInputResponse+--+--         , responseDeleteAlarmModel $+--             newDeleteAlarmModelResponse+--+--         , responseDeleteDetectorModel $+--             newDeleteDetectorModelResponse+--+--         , responseDeleteInput $+--             newDeleteInputResponse+--+--         , responseDescribeAlarmModel $+--             newDescribeAlarmModelResponse+--+--         , responseDescribeDetectorModel $+--             newDescribeDetectorModelResponse+--+--         , responseDescribeDetectorModelAnalysis $+--             newDescribeDetectorModelAnalysisResponse+--+--         , responseDescribeInput $+--             newDescribeInputResponse+--+--         , responseDescribeLoggingOptions $+--             newDescribeLoggingOptionsResponse+--+--         , responseGetDetectorModelAnalysisResults $+--             newGetDetectorModelAnalysisResultsResponse+--+--         , responseListAlarmModelVersions $+--             newListAlarmModelVersionsResponse+--+--         , responseListAlarmModels $+--             newListAlarmModelsResponse+--+--         , responseListDetectorModelVersions $+--             newListDetectorModelVersionsResponse+--+--         , responseListDetectorModels $+--             newListDetectorModelsResponse+--+--         , responseListInputRoutings $+--             newListInputRoutingsResponse+--+--         , responseListInputs $+--             newListInputsResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responsePutLoggingOptions $+--             newPutLoggingOptionsResponse+--+--         , responseStartDetectorModelAnalysis $+--             newStartDetectorModelAnalysisResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateAlarmModel $+--             newUpdateAlarmModelResponse+--+--         , responseUpdateDetectorModel $+--             newUpdateDetectorModelResponse+--+--         , responseUpdateInput $+--             newUpdateInputResponse+--+--           ]+--     ]++-- Requests++requestCreateAlarmModel :: CreateAlarmModel -> TestTree+requestCreateAlarmModel =+  req+    "CreateAlarmModel"+    "fixture/CreateAlarmModel.yaml"++requestCreateDetectorModel :: CreateDetectorModel -> TestTree+requestCreateDetectorModel =+  req+    "CreateDetectorModel"+    "fixture/CreateDetectorModel.yaml"++requestCreateInput :: CreateInput -> TestTree+requestCreateInput =+  req+    "CreateInput"+    "fixture/CreateInput.yaml"++requestDeleteAlarmModel :: DeleteAlarmModel -> TestTree+requestDeleteAlarmModel =+  req+    "DeleteAlarmModel"+    "fixture/DeleteAlarmModel.yaml"++requestDeleteDetectorModel :: DeleteDetectorModel -> TestTree+requestDeleteDetectorModel =+  req+    "DeleteDetectorModel"+    "fixture/DeleteDetectorModel.yaml"++requestDeleteInput :: DeleteInput -> TestTree+requestDeleteInput =+  req+    "DeleteInput"+    "fixture/DeleteInput.yaml"++requestDescribeAlarmModel :: DescribeAlarmModel -> TestTree+requestDescribeAlarmModel =+  req+    "DescribeAlarmModel"+    "fixture/DescribeAlarmModel.yaml"++requestDescribeDetectorModel :: DescribeDetectorModel -> TestTree+requestDescribeDetectorModel =+  req+    "DescribeDetectorModel"+    "fixture/DescribeDetectorModel.yaml"++requestDescribeDetectorModelAnalysis :: DescribeDetectorModelAnalysis -> TestTree+requestDescribeDetectorModelAnalysis =+  req+    "DescribeDetectorModelAnalysis"+    "fixture/DescribeDetectorModelAnalysis.yaml"++requestDescribeInput :: DescribeInput -> TestTree+requestDescribeInput =+  req+    "DescribeInput"+    "fixture/DescribeInput.yaml"++requestDescribeLoggingOptions :: DescribeLoggingOptions -> TestTree+requestDescribeLoggingOptions =+  req+    "DescribeLoggingOptions"+    "fixture/DescribeLoggingOptions.yaml"++requestGetDetectorModelAnalysisResults :: GetDetectorModelAnalysisResults -> TestTree+requestGetDetectorModelAnalysisResults =+  req+    "GetDetectorModelAnalysisResults"+    "fixture/GetDetectorModelAnalysisResults.yaml"++requestListAlarmModelVersions :: ListAlarmModelVersions -> TestTree+requestListAlarmModelVersions =+  req+    "ListAlarmModelVersions"+    "fixture/ListAlarmModelVersions.yaml"++requestListAlarmModels :: ListAlarmModels -> TestTree+requestListAlarmModels =+  req+    "ListAlarmModels"+    "fixture/ListAlarmModels.yaml"++requestListDetectorModelVersions :: ListDetectorModelVersions -> TestTree+requestListDetectorModelVersions =+  req+    "ListDetectorModelVersions"+    "fixture/ListDetectorModelVersions.yaml"++requestListDetectorModels :: ListDetectorModels -> TestTree+requestListDetectorModels =+  req+    "ListDetectorModels"+    "fixture/ListDetectorModels.yaml"++requestListInputRoutings :: ListInputRoutings -> TestTree+requestListInputRoutings =+  req+    "ListInputRoutings"+    "fixture/ListInputRoutings.yaml"++requestListInputs :: ListInputs -> TestTree+requestListInputs =+  req+    "ListInputs"+    "fixture/ListInputs.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestPutLoggingOptions :: PutLoggingOptions -> TestTree+requestPutLoggingOptions =+  req+    "PutLoggingOptions"+    "fixture/PutLoggingOptions.yaml"++requestStartDetectorModelAnalysis :: StartDetectorModelAnalysis -> TestTree+requestStartDetectorModelAnalysis =+  req+    "StartDetectorModelAnalysis"+    "fixture/StartDetectorModelAnalysis.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateAlarmModel :: UpdateAlarmModel -> TestTree+requestUpdateAlarmModel =+  req+    "UpdateAlarmModel"+    "fixture/UpdateAlarmModel.yaml"++requestUpdateDetectorModel :: UpdateDetectorModel -> TestTree+requestUpdateDetectorModel =+  req+    "UpdateDetectorModel"+    "fixture/UpdateDetectorModel.yaml"++requestUpdateInput :: UpdateInput -> TestTree+requestUpdateInput =+  req+    "UpdateInput"+    "fixture/UpdateInput.yaml"++-- Responses++responseCreateAlarmModel :: CreateAlarmModelResponse -> TestTree+responseCreateAlarmModel =+  res+    "CreateAlarmModelResponse"+    "fixture/CreateAlarmModelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateAlarmModel)++responseCreateDetectorModel :: CreateDetectorModelResponse -> TestTree+responseCreateDetectorModel =+  res+    "CreateDetectorModelResponse"+    "fixture/CreateDetectorModelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDetectorModel)++responseCreateInput :: CreateInputResponse -> TestTree+responseCreateInput =+  res+    "CreateInputResponse"+    "fixture/CreateInputResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateInput)++responseDeleteAlarmModel :: DeleteAlarmModelResponse -> TestTree+responseDeleteAlarmModel =+  res+    "DeleteAlarmModelResponse"+    "fixture/DeleteAlarmModelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteAlarmModel)++responseDeleteDetectorModel :: DeleteDetectorModelResponse -> TestTree+responseDeleteDetectorModel =+  res+    "DeleteDetectorModelResponse"+    "fixture/DeleteDetectorModelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteDetectorModel)++responseDeleteInput :: DeleteInputResponse -> TestTree+responseDeleteInput =+  res+    "DeleteInputResponse"+    "fixture/DeleteInputResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteInput)++responseDescribeAlarmModel :: DescribeAlarmModelResponse -> TestTree+responseDescribeAlarmModel =+  res+    "DescribeAlarmModelResponse"+    "fixture/DescribeAlarmModelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeAlarmModel)++responseDescribeDetectorModel :: DescribeDetectorModelResponse -> TestTree+responseDescribeDetectorModel =+  res+    "DescribeDetectorModelResponse"+    "fixture/DescribeDetectorModelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeDetectorModel)++responseDescribeDetectorModelAnalysis :: DescribeDetectorModelAnalysisResponse -> TestTree+responseDescribeDetectorModelAnalysis =+  res+    "DescribeDetectorModelAnalysisResponse"+    "fixture/DescribeDetectorModelAnalysisResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeDetectorModelAnalysis)++responseDescribeInput :: DescribeInputResponse -> TestTree+responseDescribeInput =+  res+    "DescribeInputResponse"+    "fixture/DescribeInputResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeInput)++responseDescribeLoggingOptions :: DescribeLoggingOptionsResponse -> TestTree+responseDescribeLoggingOptions =+  res+    "DescribeLoggingOptionsResponse"+    "fixture/DescribeLoggingOptionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeLoggingOptions)++responseGetDetectorModelAnalysisResults :: GetDetectorModelAnalysisResultsResponse -> TestTree+responseGetDetectorModelAnalysisResults =+  res+    "GetDetectorModelAnalysisResultsResponse"+    "fixture/GetDetectorModelAnalysisResultsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetDetectorModelAnalysisResults)++responseListAlarmModelVersions :: ListAlarmModelVersionsResponse -> TestTree+responseListAlarmModelVersions =+  res+    "ListAlarmModelVersionsResponse"+    "fixture/ListAlarmModelVersionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListAlarmModelVersions)++responseListAlarmModels :: ListAlarmModelsResponse -> TestTree+responseListAlarmModels =+  res+    "ListAlarmModelsResponse"+    "fixture/ListAlarmModelsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListAlarmModels)++responseListDetectorModelVersions :: ListDetectorModelVersionsResponse -> TestTree+responseListDetectorModelVersions =+  res+    "ListDetectorModelVersionsResponse"+    "fixture/ListDetectorModelVersionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListDetectorModelVersions)++responseListDetectorModels :: ListDetectorModelsResponse -> TestTree+responseListDetectorModels =+  res+    "ListDetectorModelsResponse"+    "fixture/ListDetectorModelsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListDetectorModels)++responseListInputRoutings :: ListInputRoutingsResponse -> TestTree+responseListInputRoutings =+  res+    "ListInputRoutingsResponse"+    "fixture/ListInputRoutingsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListInputRoutings)++responseListInputs :: ListInputsResponse -> TestTree+responseListInputs =+  res+    "ListInputsResponse"+    "fixture/ListInputsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListInputs)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responsePutLoggingOptions :: PutLoggingOptionsResponse -> TestTree+responsePutLoggingOptions =+  res+    "PutLoggingOptionsResponse"+    "fixture/PutLoggingOptionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PutLoggingOptions)++responseStartDetectorModelAnalysis :: StartDetectorModelAnalysisResponse -> TestTree+responseStartDetectorModelAnalysis =+  res+    "StartDetectorModelAnalysisResponse"+    "fixture/StartDetectorModelAnalysisResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartDetectorModelAnalysis)++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)++responseUpdateAlarmModel :: UpdateAlarmModelResponse -> TestTree+responseUpdateAlarmModel =+  res+    "UpdateAlarmModelResponse"+    "fixture/UpdateAlarmModelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateAlarmModel)++responseUpdateDetectorModel :: UpdateDetectorModelResponse -> TestTree+responseUpdateDetectorModel =+  res+    "UpdateDetectorModelResponse"+    "fixture/UpdateDetectorModelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateDetectorModel)++responseUpdateInput :: UpdateInputResponse -> TestTree+responseUpdateInput =+  res+    "UpdateInputResponse"+    "fixture/UpdateInputResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateInput)
+ test/Test/Amazonka/IoTEvents.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.IoTEvents+-- Copyright   : (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.IoTEvents+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/IoTEvents/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.IoTEvents.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.IoTEvents.Internal where