packages feed

amazonka-lookoutmetrics (empty) → 2.0

raw patch · 172 files changed

+17318/−0 lines, 172 filesdep +amazonka-coredep +amazonka-lookoutmetricsdep +amazonka-test

Dependencies added: amazonka-core, amazonka-lookoutmetrics, 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 Lookout for Metrics SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2017-07-25@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-lookoutmetrics)+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.LookoutMetrics](http://hackage.haskell.org/package/amazonka-lookoutmetrics/docs/Amazonka-LookoutMetrics.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-lookoutmetrics` 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-lookoutmetrics.cabal view
@@ -0,0 +1,183 @@+cabal-version:      2.2+name:               amazonka-lookoutmetrics+version:            2.0+synopsis:           Amazon Lookout for Metrics SDK.+homepage:           https://github.com/brendanhay/amazonka+bug-reports:        https://github.com/brendanhay/amazonka/issues+license:            MPL-2.0+license-file:       LICENSE+author:             Brendan Hay+maintainer:+  Brendan Hay <brendan.g.hay+amazonka@gmail.com>, Jack Kelly <jack@jackkelly.name>++copyright:          Copyright (c) 2013-2023 Brendan Hay+category:           AWS+build-type:         Simple+extra-source-files:+  fixture/*.proto+  fixture/*.yaml+  README.md+  src/.gitkeep++description:+  Derived from API version @2017-07-25@ 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.LookoutMetrics.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.LookoutMetrics" 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-lookoutmetrics++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.LookoutMetrics+    Amazonka.LookoutMetrics.ActivateAnomalyDetector+    Amazonka.LookoutMetrics.BackTestAnomalyDetector+    Amazonka.LookoutMetrics.CreateAlert+    Amazonka.LookoutMetrics.CreateAnomalyDetector+    Amazonka.LookoutMetrics.CreateMetricSet+    Amazonka.LookoutMetrics.DeactivateAnomalyDetector+    Amazonka.LookoutMetrics.DeleteAlert+    Amazonka.LookoutMetrics.DeleteAnomalyDetector+    Amazonka.LookoutMetrics.DescribeAlert+    Amazonka.LookoutMetrics.DescribeAnomalyDetectionExecutions+    Amazonka.LookoutMetrics.DescribeAnomalyDetector+    Amazonka.LookoutMetrics.DescribeMetricSet+    Amazonka.LookoutMetrics.DetectMetricSetConfig+    Amazonka.LookoutMetrics.GetAnomalyGroup+    Amazonka.LookoutMetrics.GetDataQualityMetrics+    Amazonka.LookoutMetrics.GetFeedback+    Amazonka.LookoutMetrics.GetSampleData+    Amazonka.LookoutMetrics.Lens+    Amazonka.LookoutMetrics.ListAlerts+    Amazonka.LookoutMetrics.ListAnomalyDetectors+    Amazonka.LookoutMetrics.ListAnomalyGroupRelatedMetrics+    Amazonka.LookoutMetrics.ListAnomalyGroupSummaries+    Amazonka.LookoutMetrics.ListAnomalyGroupTimeSeries+    Amazonka.LookoutMetrics.ListMetricSets+    Amazonka.LookoutMetrics.ListTagsForResource+    Amazonka.LookoutMetrics.PutFeedback+    Amazonka.LookoutMetrics.TagResource+    Amazonka.LookoutMetrics.Types+    Amazonka.LookoutMetrics.Types.Action+    Amazonka.LookoutMetrics.Types.AggregationFunction+    Amazonka.LookoutMetrics.Types.Alert+    Amazonka.LookoutMetrics.Types.AlertFilters+    Amazonka.LookoutMetrics.Types.AlertStatus+    Amazonka.LookoutMetrics.Types.AlertSummary+    Amazonka.LookoutMetrics.Types.AlertType+    Amazonka.LookoutMetrics.Types.AnomalyDetectionTaskStatus+    Amazonka.LookoutMetrics.Types.AnomalyDetectorConfig+    Amazonka.LookoutMetrics.Types.AnomalyDetectorConfigSummary+    Amazonka.LookoutMetrics.Types.AnomalyDetectorDataQualityMetric+    Amazonka.LookoutMetrics.Types.AnomalyDetectorFailureType+    Amazonka.LookoutMetrics.Types.AnomalyDetectorStatus+    Amazonka.LookoutMetrics.Types.AnomalyDetectorSummary+    Amazonka.LookoutMetrics.Types.AnomalyGroup+    Amazonka.LookoutMetrics.Types.AnomalyGroupStatistics+    Amazonka.LookoutMetrics.Types.AnomalyGroupSummary+    Amazonka.LookoutMetrics.Types.AnomalyGroupTimeSeries+    Amazonka.LookoutMetrics.Types.AnomalyGroupTimeSeriesFeedback+    Amazonka.LookoutMetrics.Types.AppFlowConfig+    Amazonka.LookoutMetrics.Types.AthenaSourceConfig+    Amazonka.LookoutMetrics.Types.AttributeValue+    Amazonka.LookoutMetrics.Types.AutoDetectionMetricSource+    Amazonka.LookoutMetrics.Types.AutoDetectionS3SourceConfig+    Amazonka.LookoutMetrics.Types.BackTestConfiguration+    Amazonka.LookoutMetrics.Types.CloudWatchConfig+    Amazonka.LookoutMetrics.Types.Confidence+    Amazonka.LookoutMetrics.Types.ContributionMatrix+    Amazonka.LookoutMetrics.Types.CSVFileCompression+    Amazonka.LookoutMetrics.Types.CsvFormatDescriptor+    Amazonka.LookoutMetrics.Types.DataQualityMetric+    Amazonka.LookoutMetrics.Types.DataQualityMetricType+    Amazonka.LookoutMetrics.Types.DetectedCsvFormatDescriptor+    Amazonka.LookoutMetrics.Types.DetectedField+    Amazonka.LookoutMetrics.Types.DetectedFileFormatDescriptor+    Amazonka.LookoutMetrics.Types.DetectedJsonFormatDescriptor+    Amazonka.LookoutMetrics.Types.DetectedMetricSetConfig+    Amazonka.LookoutMetrics.Types.DetectedMetricSource+    Amazonka.LookoutMetrics.Types.DetectedS3SourceConfig+    Amazonka.LookoutMetrics.Types.DimensionContribution+    Amazonka.LookoutMetrics.Types.DimensionFilter+    Amazonka.LookoutMetrics.Types.DimensionNameValue+    Amazonka.LookoutMetrics.Types.DimensionValueContribution+    Amazonka.LookoutMetrics.Types.ExecutionStatus+    Amazonka.LookoutMetrics.Types.FileFormatDescriptor+    Amazonka.LookoutMetrics.Types.Filter+    Amazonka.LookoutMetrics.Types.FilterOperation+    Amazonka.LookoutMetrics.Types.Frequency+    Amazonka.LookoutMetrics.Types.InterMetricImpactDetails+    Amazonka.LookoutMetrics.Types.ItemizedMetricStats+    Amazonka.LookoutMetrics.Types.JsonFileCompression+    Amazonka.LookoutMetrics.Types.JsonFormatDescriptor+    Amazonka.LookoutMetrics.Types.LambdaConfiguration+    Amazonka.LookoutMetrics.Types.Metric+    Amazonka.LookoutMetrics.Types.MetricLevelImpact+    Amazonka.LookoutMetrics.Types.MetricSetDataQualityMetric+    Amazonka.LookoutMetrics.Types.MetricSetDimensionFilter+    Amazonka.LookoutMetrics.Types.MetricSetSummary+    Amazonka.LookoutMetrics.Types.MetricSource+    Amazonka.LookoutMetrics.Types.RDSSourceConfig+    Amazonka.LookoutMetrics.Types.RedshiftSourceConfig+    Amazonka.LookoutMetrics.Types.RelationshipType+    Amazonka.LookoutMetrics.Types.S3SourceConfig+    Amazonka.LookoutMetrics.Types.SampleDataS3SourceConfig+    Amazonka.LookoutMetrics.Types.SNSConfiguration+    Amazonka.LookoutMetrics.Types.SnsFormat+    Amazonka.LookoutMetrics.Types.TimeSeries+    Amazonka.LookoutMetrics.Types.TimeSeriesFeedback+    Amazonka.LookoutMetrics.Types.TimestampColumn+    Amazonka.LookoutMetrics.Types.VpcConfiguration+    Amazonka.LookoutMetrics.UntagResource+    Amazonka.LookoutMetrics.UpdateAlert+    Amazonka.LookoutMetrics.UpdateAnomalyDetector+    Amazonka.LookoutMetrics.UpdateMetricSet+    Amazonka.LookoutMetrics.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-lookoutmetrics-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.LookoutMetrics+    Test.Amazonka.LookoutMetrics+    Test.Amazonka.LookoutMetrics.Internal++  build-depends:+    , amazonka-core            >=2.0 && <2.1+    , amazonka-lookoutmetrics+    , amazonka-test            >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/ActivateAnomalyDetector.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/ActivateAnomalyDetectorResponse.proto view
+ fixture/BackTestAnomalyDetector.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/BackTestAnomalyDetectorResponse.proto view
+ fixture/CreateAlert.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/CreateAlertResponse.proto view
+ fixture/CreateAnomalyDetector.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/CreateAnomalyDetectorResponse.proto view
+ fixture/CreateMetricSet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/CreateMetricSetResponse.proto view
+ fixture/DeactivateAnomalyDetector.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/DeactivateAnomalyDetectorResponse.proto view
+ fixture/DeleteAlert.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/DeleteAlertResponse.proto view
+ fixture/DeleteAnomalyDetector.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/DeleteAnomalyDetectorResponse.proto view
+ fixture/DescribeAlert.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/DescribeAlertResponse.proto view
+ fixture/DescribeAnomalyDetectionExecutions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/DescribeAnomalyDetectionExecutionsResponse.proto view
+ fixture/DescribeAnomalyDetector.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/DescribeAnomalyDetectorResponse.proto view
+ fixture/DescribeMetricSet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/DescribeMetricSetResponse.proto view
+ fixture/DetectMetricSetConfig.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/DetectMetricSetConfigResponse.proto view
+ fixture/GetAnomalyGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/GetAnomalyGroupResponse.proto view
+ fixture/GetDataQualityMetrics.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/GetDataQualityMetricsResponse.proto view
+ fixture/GetFeedback.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/GetFeedbackResponse.proto view
+ fixture/GetSampleData.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/GetSampleDataResponse.proto view
+ fixture/ListAlerts.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/ListAlertsResponse.proto view
+ fixture/ListAnomalyDetectors.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/ListAnomalyDetectorsResponse.proto view
+ fixture/ListAnomalyGroupRelatedMetrics.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/ListAnomalyGroupRelatedMetricsResponse.proto view
+ fixture/ListAnomalyGroupSummaries.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/ListAnomalyGroupSummariesResponse.proto view
+ fixture/ListAnomalyGroupTimeSeries.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/ListAnomalyGroupTimeSeriesResponse.proto view
+ fixture/ListMetricSets.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/ListMetricSetsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/PutFeedback.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/PutFeedbackResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/UpdateAlert.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/UpdateAlertResponse.proto view
+ fixture/UpdateAnomalyDetector.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/UpdateAnomalyDetectorResponse.proto view
+ fixture/UpdateMetricSet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutmetrics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutmetrics.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/UpdateMetricSetResponse.proto view
+ gen/Amazonka/LookoutMetrics.hs view
@@ -0,0 +1,560 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.LookoutMetrics+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Derived from API version @2017-07-25@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- This is the /Amazon Lookout for Metrics API Reference/. For an+-- introduction to the service with tutorials for getting started, visit+-- <https://docs.aws.amazon.com/lookoutmetrics/latest/dev Amazon Lookout for Metrics Developer Guide>.+module Amazonka.LookoutMetrics+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** AccessDeniedException+    _AccessDeniedException,++    -- ** ConflictException+    _ConflictException,++    -- ** InternalServerException+    _InternalServerException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ServiceQuotaExceededException+    _ServiceQuotaExceededException,++    -- ** TooManyRequestsException+    _TooManyRequestsException,++    -- ** ValidationException+    _ValidationException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** ActivateAnomalyDetector+    ActivateAnomalyDetector (ActivateAnomalyDetector'),+    newActivateAnomalyDetector,+    ActivateAnomalyDetectorResponse (ActivateAnomalyDetectorResponse'),+    newActivateAnomalyDetectorResponse,++    -- ** BackTestAnomalyDetector+    BackTestAnomalyDetector (BackTestAnomalyDetector'),+    newBackTestAnomalyDetector,+    BackTestAnomalyDetectorResponse (BackTestAnomalyDetectorResponse'),+    newBackTestAnomalyDetectorResponse,++    -- ** CreateAlert+    CreateAlert (CreateAlert'),+    newCreateAlert,+    CreateAlertResponse (CreateAlertResponse'),+    newCreateAlertResponse,++    -- ** CreateAnomalyDetector+    CreateAnomalyDetector (CreateAnomalyDetector'),+    newCreateAnomalyDetector,+    CreateAnomalyDetectorResponse (CreateAnomalyDetectorResponse'),+    newCreateAnomalyDetectorResponse,++    -- ** CreateMetricSet+    CreateMetricSet (CreateMetricSet'),+    newCreateMetricSet,+    CreateMetricSetResponse (CreateMetricSetResponse'),+    newCreateMetricSetResponse,++    -- ** DeactivateAnomalyDetector+    DeactivateAnomalyDetector (DeactivateAnomalyDetector'),+    newDeactivateAnomalyDetector,+    DeactivateAnomalyDetectorResponse (DeactivateAnomalyDetectorResponse'),+    newDeactivateAnomalyDetectorResponse,++    -- ** DeleteAlert+    DeleteAlert (DeleteAlert'),+    newDeleteAlert,+    DeleteAlertResponse (DeleteAlertResponse'),+    newDeleteAlertResponse,++    -- ** DeleteAnomalyDetector+    DeleteAnomalyDetector (DeleteAnomalyDetector'),+    newDeleteAnomalyDetector,+    DeleteAnomalyDetectorResponse (DeleteAnomalyDetectorResponse'),+    newDeleteAnomalyDetectorResponse,++    -- ** DescribeAlert+    DescribeAlert (DescribeAlert'),+    newDescribeAlert,+    DescribeAlertResponse (DescribeAlertResponse'),+    newDescribeAlertResponse,++    -- ** DescribeAnomalyDetectionExecutions+    DescribeAnomalyDetectionExecutions (DescribeAnomalyDetectionExecutions'),+    newDescribeAnomalyDetectionExecutions,+    DescribeAnomalyDetectionExecutionsResponse (DescribeAnomalyDetectionExecutionsResponse'),+    newDescribeAnomalyDetectionExecutionsResponse,++    -- ** DescribeAnomalyDetector+    DescribeAnomalyDetector (DescribeAnomalyDetector'),+    newDescribeAnomalyDetector,+    DescribeAnomalyDetectorResponse (DescribeAnomalyDetectorResponse'),+    newDescribeAnomalyDetectorResponse,++    -- ** DescribeMetricSet+    DescribeMetricSet (DescribeMetricSet'),+    newDescribeMetricSet,+    DescribeMetricSetResponse (DescribeMetricSetResponse'),+    newDescribeMetricSetResponse,++    -- ** DetectMetricSetConfig+    DetectMetricSetConfig (DetectMetricSetConfig'),+    newDetectMetricSetConfig,+    DetectMetricSetConfigResponse (DetectMetricSetConfigResponse'),+    newDetectMetricSetConfigResponse,++    -- ** GetAnomalyGroup+    GetAnomalyGroup (GetAnomalyGroup'),+    newGetAnomalyGroup,+    GetAnomalyGroupResponse (GetAnomalyGroupResponse'),+    newGetAnomalyGroupResponse,++    -- ** GetDataQualityMetrics+    GetDataQualityMetrics (GetDataQualityMetrics'),+    newGetDataQualityMetrics,+    GetDataQualityMetricsResponse (GetDataQualityMetricsResponse'),+    newGetDataQualityMetricsResponse,++    -- ** GetFeedback+    GetFeedback (GetFeedback'),+    newGetFeedback,+    GetFeedbackResponse (GetFeedbackResponse'),+    newGetFeedbackResponse,++    -- ** GetSampleData+    GetSampleData (GetSampleData'),+    newGetSampleData,+    GetSampleDataResponse (GetSampleDataResponse'),+    newGetSampleDataResponse,++    -- ** ListAlerts+    ListAlerts (ListAlerts'),+    newListAlerts,+    ListAlertsResponse (ListAlertsResponse'),+    newListAlertsResponse,++    -- ** ListAnomalyDetectors+    ListAnomalyDetectors (ListAnomalyDetectors'),+    newListAnomalyDetectors,+    ListAnomalyDetectorsResponse (ListAnomalyDetectorsResponse'),+    newListAnomalyDetectorsResponse,++    -- ** ListAnomalyGroupRelatedMetrics+    ListAnomalyGroupRelatedMetrics (ListAnomalyGroupRelatedMetrics'),+    newListAnomalyGroupRelatedMetrics,+    ListAnomalyGroupRelatedMetricsResponse (ListAnomalyGroupRelatedMetricsResponse'),+    newListAnomalyGroupRelatedMetricsResponse,++    -- ** ListAnomalyGroupSummaries+    ListAnomalyGroupSummaries (ListAnomalyGroupSummaries'),+    newListAnomalyGroupSummaries,+    ListAnomalyGroupSummariesResponse (ListAnomalyGroupSummariesResponse'),+    newListAnomalyGroupSummariesResponse,++    -- ** ListAnomalyGroupTimeSeries+    ListAnomalyGroupTimeSeries (ListAnomalyGroupTimeSeries'),+    newListAnomalyGroupTimeSeries,+    ListAnomalyGroupTimeSeriesResponse (ListAnomalyGroupTimeSeriesResponse'),+    newListAnomalyGroupTimeSeriesResponse,++    -- ** ListMetricSets+    ListMetricSets (ListMetricSets'),+    newListMetricSets,+    ListMetricSetsResponse (ListMetricSetsResponse'),+    newListMetricSetsResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** PutFeedback+    PutFeedback (PutFeedback'),+    newPutFeedback,+    PutFeedbackResponse (PutFeedbackResponse'),+    newPutFeedbackResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateAlert+    UpdateAlert (UpdateAlert'),+    newUpdateAlert,+    UpdateAlertResponse (UpdateAlertResponse'),+    newUpdateAlertResponse,++    -- ** UpdateAnomalyDetector+    UpdateAnomalyDetector (UpdateAnomalyDetector'),+    newUpdateAnomalyDetector,+    UpdateAnomalyDetectorResponse (UpdateAnomalyDetectorResponse'),+    newUpdateAnomalyDetectorResponse,++    -- ** UpdateMetricSet+    UpdateMetricSet (UpdateMetricSet'),+    newUpdateMetricSet,+    UpdateMetricSetResponse (UpdateMetricSetResponse'),+    newUpdateMetricSetResponse,++    -- * Types++    -- ** AggregationFunction+    AggregationFunction (..),++    -- ** AlertStatus+    AlertStatus (..),++    -- ** AlertType+    AlertType (..),++    -- ** AnomalyDetectionTaskStatus+    AnomalyDetectionTaskStatus (..),++    -- ** AnomalyDetectorFailureType+    AnomalyDetectorFailureType (..),++    -- ** AnomalyDetectorStatus+    AnomalyDetectorStatus (..),++    -- ** CSVFileCompression+    CSVFileCompression (..),++    -- ** Confidence+    Confidence (..),++    -- ** DataQualityMetricType+    DataQualityMetricType (..),++    -- ** FilterOperation+    FilterOperation (..),++    -- ** Frequency+    Frequency (..),++    -- ** JsonFileCompression+    JsonFileCompression (..),++    -- ** RelationshipType+    RelationshipType (..),++    -- ** SnsFormat+    SnsFormat (..),++    -- ** Action+    Action (Action'),+    newAction,++    -- ** Alert+    Alert (Alert'),+    newAlert,++    -- ** AlertFilters+    AlertFilters (AlertFilters'),+    newAlertFilters,++    -- ** AlertSummary+    AlertSummary (AlertSummary'),+    newAlertSummary,++    -- ** AnomalyDetectorConfig+    AnomalyDetectorConfig (AnomalyDetectorConfig'),+    newAnomalyDetectorConfig,++    -- ** AnomalyDetectorConfigSummary+    AnomalyDetectorConfigSummary (AnomalyDetectorConfigSummary'),+    newAnomalyDetectorConfigSummary,++    -- ** AnomalyDetectorDataQualityMetric+    AnomalyDetectorDataQualityMetric (AnomalyDetectorDataQualityMetric'),+    newAnomalyDetectorDataQualityMetric,++    -- ** AnomalyDetectorSummary+    AnomalyDetectorSummary (AnomalyDetectorSummary'),+    newAnomalyDetectorSummary,++    -- ** AnomalyGroup+    AnomalyGroup (AnomalyGroup'),+    newAnomalyGroup,++    -- ** AnomalyGroupStatistics+    AnomalyGroupStatistics (AnomalyGroupStatistics'),+    newAnomalyGroupStatistics,++    -- ** AnomalyGroupSummary+    AnomalyGroupSummary (AnomalyGroupSummary'),+    newAnomalyGroupSummary,++    -- ** AnomalyGroupTimeSeries+    AnomalyGroupTimeSeries (AnomalyGroupTimeSeries'),+    newAnomalyGroupTimeSeries,++    -- ** AnomalyGroupTimeSeriesFeedback+    AnomalyGroupTimeSeriesFeedback (AnomalyGroupTimeSeriesFeedback'),+    newAnomalyGroupTimeSeriesFeedback,++    -- ** AppFlowConfig+    AppFlowConfig (AppFlowConfig'),+    newAppFlowConfig,++    -- ** AthenaSourceConfig+    AthenaSourceConfig (AthenaSourceConfig'),+    newAthenaSourceConfig,++    -- ** AttributeValue+    AttributeValue (AttributeValue'),+    newAttributeValue,++    -- ** AutoDetectionMetricSource+    AutoDetectionMetricSource (AutoDetectionMetricSource'),+    newAutoDetectionMetricSource,++    -- ** AutoDetectionS3SourceConfig+    AutoDetectionS3SourceConfig (AutoDetectionS3SourceConfig'),+    newAutoDetectionS3SourceConfig,++    -- ** BackTestConfiguration+    BackTestConfiguration (BackTestConfiguration'),+    newBackTestConfiguration,++    -- ** CloudWatchConfig+    CloudWatchConfig (CloudWatchConfig'),+    newCloudWatchConfig,++    -- ** ContributionMatrix+    ContributionMatrix (ContributionMatrix'),+    newContributionMatrix,++    -- ** CsvFormatDescriptor+    CsvFormatDescriptor (CsvFormatDescriptor'),+    newCsvFormatDescriptor,++    -- ** DataQualityMetric+    DataQualityMetric (DataQualityMetric'),+    newDataQualityMetric,++    -- ** DetectedCsvFormatDescriptor+    DetectedCsvFormatDescriptor (DetectedCsvFormatDescriptor'),+    newDetectedCsvFormatDescriptor,++    -- ** DetectedField+    DetectedField (DetectedField'),+    newDetectedField,++    -- ** DetectedFileFormatDescriptor+    DetectedFileFormatDescriptor (DetectedFileFormatDescriptor'),+    newDetectedFileFormatDescriptor,++    -- ** DetectedJsonFormatDescriptor+    DetectedJsonFormatDescriptor (DetectedJsonFormatDescriptor'),+    newDetectedJsonFormatDescriptor,++    -- ** DetectedMetricSetConfig+    DetectedMetricSetConfig (DetectedMetricSetConfig'),+    newDetectedMetricSetConfig,++    -- ** DetectedMetricSource+    DetectedMetricSource (DetectedMetricSource'),+    newDetectedMetricSource,++    -- ** DetectedS3SourceConfig+    DetectedS3SourceConfig (DetectedS3SourceConfig'),+    newDetectedS3SourceConfig,++    -- ** DimensionContribution+    DimensionContribution (DimensionContribution'),+    newDimensionContribution,++    -- ** DimensionFilter+    DimensionFilter (DimensionFilter'),+    newDimensionFilter,++    -- ** DimensionNameValue+    DimensionNameValue (DimensionNameValue'),+    newDimensionNameValue,++    -- ** DimensionValueContribution+    DimensionValueContribution (DimensionValueContribution'),+    newDimensionValueContribution,++    -- ** ExecutionStatus+    ExecutionStatus (ExecutionStatus'),+    newExecutionStatus,++    -- ** FileFormatDescriptor+    FileFormatDescriptor (FileFormatDescriptor'),+    newFileFormatDescriptor,++    -- ** Filter+    Filter (Filter'),+    newFilter,++    -- ** InterMetricImpactDetails+    InterMetricImpactDetails (InterMetricImpactDetails'),+    newInterMetricImpactDetails,++    -- ** ItemizedMetricStats+    ItemizedMetricStats (ItemizedMetricStats'),+    newItemizedMetricStats,++    -- ** JsonFormatDescriptor+    JsonFormatDescriptor (JsonFormatDescriptor'),+    newJsonFormatDescriptor,++    -- ** LambdaConfiguration+    LambdaConfiguration (LambdaConfiguration'),+    newLambdaConfiguration,++    -- ** Metric+    Metric (Metric'),+    newMetric,++    -- ** MetricLevelImpact+    MetricLevelImpact (MetricLevelImpact'),+    newMetricLevelImpact,++    -- ** MetricSetDataQualityMetric+    MetricSetDataQualityMetric (MetricSetDataQualityMetric'),+    newMetricSetDataQualityMetric,++    -- ** MetricSetDimensionFilter+    MetricSetDimensionFilter (MetricSetDimensionFilter'),+    newMetricSetDimensionFilter,++    -- ** MetricSetSummary+    MetricSetSummary (MetricSetSummary'),+    newMetricSetSummary,++    -- ** MetricSource+    MetricSource (MetricSource'),+    newMetricSource,++    -- ** RDSSourceConfig+    RDSSourceConfig (RDSSourceConfig'),+    newRDSSourceConfig,++    -- ** RedshiftSourceConfig+    RedshiftSourceConfig (RedshiftSourceConfig'),+    newRedshiftSourceConfig,++    -- ** S3SourceConfig+    S3SourceConfig (S3SourceConfig'),+    newS3SourceConfig,++    -- ** SNSConfiguration+    SNSConfiguration (SNSConfiguration'),+    newSNSConfiguration,++    -- ** SampleDataS3SourceConfig+    SampleDataS3SourceConfig (SampleDataS3SourceConfig'),+    newSampleDataS3SourceConfig,++    -- ** TimeSeries+    TimeSeries (TimeSeries'),+    newTimeSeries,++    -- ** TimeSeriesFeedback+    TimeSeriesFeedback (TimeSeriesFeedback'),+    newTimeSeriesFeedback,++    -- ** TimestampColumn+    TimestampColumn (TimestampColumn'),+    newTimestampColumn,++    -- ** VpcConfiguration+    VpcConfiguration (VpcConfiguration'),+    newVpcConfiguration,+  )+where++import Amazonka.LookoutMetrics.ActivateAnomalyDetector+import Amazonka.LookoutMetrics.BackTestAnomalyDetector+import Amazonka.LookoutMetrics.CreateAlert+import Amazonka.LookoutMetrics.CreateAnomalyDetector+import Amazonka.LookoutMetrics.CreateMetricSet+import Amazonka.LookoutMetrics.DeactivateAnomalyDetector+import Amazonka.LookoutMetrics.DeleteAlert+import Amazonka.LookoutMetrics.DeleteAnomalyDetector+import Amazonka.LookoutMetrics.DescribeAlert+import Amazonka.LookoutMetrics.DescribeAnomalyDetectionExecutions+import Amazonka.LookoutMetrics.DescribeAnomalyDetector+import Amazonka.LookoutMetrics.DescribeMetricSet+import Amazonka.LookoutMetrics.DetectMetricSetConfig+import Amazonka.LookoutMetrics.GetAnomalyGroup+import Amazonka.LookoutMetrics.GetDataQualityMetrics+import Amazonka.LookoutMetrics.GetFeedback+import Amazonka.LookoutMetrics.GetSampleData+import Amazonka.LookoutMetrics.Lens+import Amazonka.LookoutMetrics.ListAlerts+import Amazonka.LookoutMetrics.ListAnomalyDetectors+import Amazonka.LookoutMetrics.ListAnomalyGroupRelatedMetrics+import Amazonka.LookoutMetrics.ListAnomalyGroupSummaries+import Amazonka.LookoutMetrics.ListAnomalyGroupTimeSeries+import Amazonka.LookoutMetrics.ListMetricSets+import Amazonka.LookoutMetrics.ListTagsForResource+import Amazonka.LookoutMetrics.PutFeedback+import Amazonka.LookoutMetrics.TagResource+import Amazonka.LookoutMetrics.Types+import Amazonka.LookoutMetrics.UntagResource+import Amazonka.LookoutMetrics.UpdateAlert+import Amazonka.LookoutMetrics.UpdateAnomalyDetector+import Amazonka.LookoutMetrics.UpdateMetricSet+import Amazonka.LookoutMetrics.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 'LookoutMetrics'.++-- $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/LookoutMetrics/ActivateAnomalyDetector.hs view
@@ -0,0 +1,161 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.ActivateAnomalyDetector+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Activates an anomaly detector.+module Amazonka.LookoutMetrics.ActivateAnomalyDetector+  ( -- * Creating a Request+    ActivateAnomalyDetector (..),+    newActivateAnomalyDetector,++    -- * Request Lenses+    activateAnomalyDetector_anomalyDetectorArn,++    -- * Destructuring the Response+    ActivateAnomalyDetectorResponse (..),+    newActivateAnomalyDetectorResponse,++    -- * Response Lenses+    activateAnomalyDetectorResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newActivateAnomalyDetector' smart constructor.+data ActivateAnomalyDetector = ActivateAnomalyDetector'+  { -- | The ARN of the anomaly detector.+    anomalyDetectorArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ActivateAnomalyDetector' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyDetectorArn', 'activateAnomalyDetector_anomalyDetectorArn' - The ARN of the anomaly detector.+newActivateAnomalyDetector ::+  -- | 'anomalyDetectorArn'+  Prelude.Text ->+  ActivateAnomalyDetector+newActivateAnomalyDetector pAnomalyDetectorArn_ =+  ActivateAnomalyDetector'+    { anomalyDetectorArn =+        pAnomalyDetectorArn_+    }++-- | The ARN of the anomaly detector.+activateAnomalyDetector_anomalyDetectorArn :: Lens.Lens' ActivateAnomalyDetector Prelude.Text+activateAnomalyDetector_anomalyDetectorArn = Lens.lens (\ActivateAnomalyDetector' {anomalyDetectorArn} -> anomalyDetectorArn) (\s@ActivateAnomalyDetector' {} a -> s {anomalyDetectorArn = a} :: ActivateAnomalyDetector)++instance Core.AWSRequest ActivateAnomalyDetector where+  type+    AWSResponse ActivateAnomalyDetector =+      ActivateAnomalyDetectorResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          ActivateAnomalyDetectorResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ActivateAnomalyDetector where+  hashWithSalt _salt ActivateAnomalyDetector' {..} =+    _salt `Prelude.hashWithSalt` anomalyDetectorArn++instance Prelude.NFData ActivateAnomalyDetector where+  rnf ActivateAnomalyDetector' {..} =+    Prelude.rnf anomalyDetectorArn++instance Data.ToHeaders ActivateAnomalyDetector where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ActivateAnomalyDetector where+  toJSON ActivateAnomalyDetector' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("AnomalyDetectorArn" Data..= anomalyDetectorArn)+          ]+      )++instance Data.ToPath ActivateAnomalyDetector where+  toPath = Prelude.const "/ActivateAnomalyDetector"++instance Data.ToQuery ActivateAnomalyDetector where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newActivateAnomalyDetectorResponse' smart constructor.+data ActivateAnomalyDetectorResponse = ActivateAnomalyDetectorResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ActivateAnomalyDetectorResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'activateAnomalyDetectorResponse_httpStatus' - The response's http status code.+newActivateAnomalyDetectorResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ActivateAnomalyDetectorResponse+newActivateAnomalyDetectorResponse pHttpStatus_ =+  ActivateAnomalyDetectorResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+activateAnomalyDetectorResponse_httpStatus :: Lens.Lens' ActivateAnomalyDetectorResponse Prelude.Int+activateAnomalyDetectorResponse_httpStatus = Lens.lens (\ActivateAnomalyDetectorResponse' {httpStatus} -> httpStatus) (\s@ActivateAnomalyDetectorResponse' {} a -> s {httpStatus = a} :: ActivateAnomalyDetectorResponse)++instance+  Prelude.NFData+    ActivateAnomalyDetectorResponse+  where+  rnf ActivateAnomalyDetectorResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/BackTestAnomalyDetector.hs view
@@ -0,0 +1,161 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.BackTestAnomalyDetector+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Runs a backtest for anomaly detection for the specified resource.+module Amazonka.LookoutMetrics.BackTestAnomalyDetector+  ( -- * Creating a Request+    BackTestAnomalyDetector (..),+    newBackTestAnomalyDetector,++    -- * Request Lenses+    backTestAnomalyDetector_anomalyDetectorArn,++    -- * Destructuring the Response+    BackTestAnomalyDetectorResponse (..),+    newBackTestAnomalyDetectorResponse,++    -- * Response Lenses+    backTestAnomalyDetectorResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBackTestAnomalyDetector' smart constructor.+data BackTestAnomalyDetector = BackTestAnomalyDetector'+  { -- | The Amazon Resource Name (ARN) of the anomaly detector.+    anomalyDetectorArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BackTestAnomalyDetector' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyDetectorArn', 'backTestAnomalyDetector_anomalyDetectorArn' - The Amazon Resource Name (ARN) of the anomaly detector.+newBackTestAnomalyDetector ::+  -- | 'anomalyDetectorArn'+  Prelude.Text ->+  BackTestAnomalyDetector+newBackTestAnomalyDetector pAnomalyDetectorArn_ =+  BackTestAnomalyDetector'+    { anomalyDetectorArn =+        pAnomalyDetectorArn_+    }++-- | The Amazon Resource Name (ARN) of the anomaly detector.+backTestAnomalyDetector_anomalyDetectorArn :: Lens.Lens' BackTestAnomalyDetector Prelude.Text+backTestAnomalyDetector_anomalyDetectorArn = Lens.lens (\BackTestAnomalyDetector' {anomalyDetectorArn} -> anomalyDetectorArn) (\s@BackTestAnomalyDetector' {} a -> s {anomalyDetectorArn = a} :: BackTestAnomalyDetector)++instance Core.AWSRequest BackTestAnomalyDetector where+  type+    AWSResponse BackTestAnomalyDetector =+      BackTestAnomalyDetectorResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          BackTestAnomalyDetectorResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable BackTestAnomalyDetector where+  hashWithSalt _salt BackTestAnomalyDetector' {..} =+    _salt `Prelude.hashWithSalt` anomalyDetectorArn++instance Prelude.NFData BackTestAnomalyDetector where+  rnf BackTestAnomalyDetector' {..} =+    Prelude.rnf anomalyDetectorArn++instance Data.ToHeaders BackTestAnomalyDetector where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON BackTestAnomalyDetector where+  toJSON BackTestAnomalyDetector' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("AnomalyDetectorArn" Data..= anomalyDetectorArn)+          ]+      )++instance Data.ToPath BackTestAnomalyDetector where+  toPath = Prelude.const "/BackTestAnomalyDetector"++instance Data.ToQuery BackTestAnomalyDetector where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBackTestAnomalyDetectorResponse' smart constructor.+data BackTestAnomalyDetectorResponse = BackTestAnomalyDetectorResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BackTestAnomalyDetectorResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'backTestAnomalyDetectorResponse_httpStatus' - The response's http status code.+newBackTestAnomalyDetectorResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  BackTestAnomalyDetectorResponse+newBackTestAnomalyDetectorResponse pHttpStatus_ =+  BackTestAnomalyDetectorResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+backTestAnomalyDetectorResponse_httpStatus :: Lens.Lens' BackTestAnomalyDetectorResponse Prelude.Int+backTestAnomalyDetectorResponse_httpStatus = Lens.lens (\BackTestAnomalyDetectorResponse' {httpStatus} -> httpStatus) (\s@BackTestAnomalyDetectorResponse' {} a -> s {httpStatus = a} :: BackTestAnomalyDetectorResponse)++instance+  Prelude.NFData+    BackTestAnomalyDetectorResponse+  where+  rnf BackTestAnomalyDetectorResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/CreateAlert.hs view
@@ -0,0 +1,263 @@+{-# 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.LookoutMetrics.CreateAlert+-- 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 alert for an anomaly detector.+module Amazonka.LookoutMetrics.CreateAlert+  ( -- * Creating a Request+    CreateAlert (..),+    newCreateAlert,++    -- * Request Lenses+    createAlert_alertDescription,+    createAlert_alertFilters,+    createAlert_alertSensitivityThreshold,+    createAlert_tags,+    createAlert_alertName,+    createAlert_anomalyDetectorArn,+    createAlert_action,++    -- * Destructuring the Response+    CreateAlertResponse (..),+    newCreateAlertResponse,++    -- * Response Lenses+    createAlertResponse_alertArn,+    createAlertResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateAlert' smart constructor.+data CreateAlert = CreateAlert'+  { -- | A description of the alert.+    alertDescription :: Prelude.Maybe Prelude.Text,+    -- | The configuration of the alert filters, containing MetricList and+    -- DimensionFilterList.+    alertFilters :: Prelude.Maybe AlertFilters,+    -- | An integer from 0 to 100 specifying the alert sensitivity threshold.+    alertSensitivityThreshold :: Prelude.Maybe Prelude.Natural,+    -- | A list of+    -- <https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html tags>+    -- to apply to the alert.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name of the alert.+    alertName :: Prelude.Text,+    -- | The ARN of the detector to which the alert is attached.+    anomalyDetectorArn :: Prelude.Text,+    -- | Action that will be triggered when there is an alert.+    action :: Action+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateAlert' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'alertDescription', 'createAlert_alertDescription' - A description of the alert.+--+-- 'alertFilters', 'createAlert_alertFilters' - The configuration of the alert filters, containing MetricList and+-- DimensionFilterList.+--+-- 'alertSensitivityThreshold', 'createAlert_alertSensitivityThreshold' - An integer from 0 to 100 specifying the alert sensitivity threshold.+--+-- 'tags', 'createAlert_tags' - A list of+-- <https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html tags>+-- to apply to the alert.+--+-- 'alertName', 'createAlert_alertName' - The name of the alert.+--+-- 'anomalyDetectorArn', 'createAlert_anomalyDetectorArn' - The ARN of the detector to which the alert is attached.+--+-- 'action', 'createAlert_action' - Action that will be triggered when there is an alert.+newCreateAlert ::+  -- | 'alertName'+  Prelude.Text ->+  -- | 'anomalyDetectorArn'+  Prelude.Text ->+  -- | 'action'+  Action ->+  CreateAlert+newCreateAlert+  pAlertName_+  pAnomalyDetectorArn_+  pAction_ =+    CreateAlert'+      { alertDescription = Prelude.Nothing,+        alertFilters = Prelude.Nothing,+        alertSensitivityThreshold = Prelude.Nothing,+        tags = Prelude.Nothing,+        alertName = pAlertName_,+        anomalyDetectorArn = pAnomalyDetectorArn_,+        action = pAction_+      }++-- | A description of the alert.+createAlert_alertDescription :: Lens.Lens' CreateAlert (Prelude.Maybe Prelude.Text)+createAlert_alertDescription = Lens.lens (\CreateAlert' {alertDescription} -> alertDescription) (\s@CreateAlert' {} a -> s {alertDescription = a} :: CreateAlert)++-- | The configuration of the alert filters, containing MetricList and+-- DimensionFilterList.+createAlert_alertFilters :: Lens.Lens' CreateAlert (Prelude.Maybe AlertFilters)+createAlert_alertFilters = Lens.lens (\CreateAlert' {alertFilters} -> alertFilters) (\s@CreateAlert' {} a -> s {alertFilters = a} :: CreateAlert)++-- | An integer from 0 to 100 specifying the alert sensitivity threshold.+createAlert_alertSensitivityThreshold :: Lens.Lens' CreateAlert (Prelude.Maybe Prelude.Natural)+createAlert_alertSensitivityThreshold = Lens.lens (\CreateAlert' {alertSensitivityThreshold} -> alertSensitivityThreshold) (\s@CreateAlert' {} a -> s {alertSensitivityThreshold = a} :: CreateAlert)++-- | A list of+-- <https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html tags>+-- to apply to the alert.+createAlert_tags :: Lens.Lens' CreateAlert (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createAlert_tags = Lens.lens (\CreateAlert' {tags} -> tags) (\s@CreateAlert' {} a -> s {tags = a} :: CreateAlert) Prelude.. Lens.mapping Lens.coerced++-- | The name of the alert.+createAlert_alertName :: Lens.Lens' CreateAlert Prelude.Text+createAlert_alertName = Lens.lens (\CreateAlert' {alertName} -> alertName) (\s@CreateAlert' {} a -> s {alertName = a} :: CreateAlert)++-- | The ARN of the detector to which the alert is attached.+createAlert_anomalyDetectorArn :: Lens.Lens' CreateAlert Prelude.Text+createAlert_anomalyDetectorArn = Lens.lens (\CreateAlert' {anomalyDetectorArn} -> anomalyDetectorArn) (\s@CreateAlert' {} a -> s {anomalyDetectorArn = a} :: CreateAlert)++-- | Action that will be triggered when there is an alert.+createAlert_action :: Lens.Lens' CreateAlert Action+createAlert_action = Lens.lens (\CreateAlert' {action} -> action) (\s@CreateAlert' {} a -> s {action = a} :: CreateAlert)++instance Core.AWSRequest CreateAlert where+  type AWSResponse CreateAlert = CreateAlertResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateAlertResponse'+            Prelude.<$> (x Data..?> "AlertArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateAlert where+  hashWithSalt _salt CreateAlert' {..} =+    _salt+      `Prelude.hashWithSalt` alertDescription+      `Prelude.hashWithSalt` alertFilters+      `Prelude.hashWithSalt` alertSensitivityThreshold+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` alertName+      `Prelude.hashWithSalt` anomalyDetectorArn+      `Prelude.hashWithSalt` action++instance Prelude.NFData CreateAlert where+  rnf CreateAlert' {..} =+    Prelude.rnf alertDescription+      `Prelude.seq` Prelude.rnf alertFilters+      `Prelude.seq` Prelude.rnf alertSensitivityThreshold+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf alertName+      `Prelude.seq` Prelude.rnf anomalyDetectorArn+      `Prelude.seq` Prelude.rnf action++instance Data.ToHeaders CreateAlert where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateAlert where+  toJSON CreateAlert' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AlertDescription" Data..=)+              Prelude.<$> alertDescription,+            ("AlertFilters" Data..=) Prelude.<$> alertFilters,+            ("AlertSensitivityThreshold" Data..=)+              Prelude.<$> alertSensitivityThreshold,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("AlertName" Data..= alertName),+            Prelude.Just+              ("AnomalyDetectorArn" Data..= anomalyDetectorArn),+            Prelude.Just ("Action" Data..= action)+          ]+      )++instance Data.ToPath CreateAlert where+  toPath = Prelude.const "/CreateAlert"++instance Data.ToQuery CreateAlert where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateAlertResponse' smart constructor.+data CreateAlertResponse = CreateAlertResponse'+  { -- | The ARN of the alert.+    alertArn :: 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 'CreateAlertResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'alertArn', 'createAlertResponse_alertArn' - The ARN of the alert.+--+-- 'httpStatus', 'createAlertResponse_httpStatus' - The response's http status code.+newCreateAlertResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateAlertResponse+newCreateAlertResponse pHttpStatus_ =+  CreateAlertResponse'+    { alertArn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the alert.+createAlertResponse_alertArn :: Lens.Lens' CreateAlertResponse (Prelude.Maybe Prelude.Text)+createAlertResponse_alertArn = Lens.lens (\CreateAlertResponse' {alertArn} -> alertArn) (\s@CreateAlertResponse' {} a -> s {alertArn = a} :: CreateAlertResponse)++-- | The response's http status code.+createAlertResponse_httpStatus :: Lens.Lens' CreateAlertResponse Prelude.Int+createAlertResponse_httpStatus = Lens.lens (\CreateAlertResponse' {httpStatus} -> httpStatus) (\s@CreateAlertResponse' {} a -> s {httpStatus = a} :: CreateAlertResponse)++instance Prelude.NFData CreateAlertResponse where+  rnf CreateAlertResponse' {..} =+    Prelude.rnf alertArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/CreateAnomalyDetector.hs view
@@ -0,0 +1,237 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.CreateAnomalyDetector+-- 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 anomaly detector.+module Amazonka.LookoutMetrics.CreateAnomalyDetector+  ( -- * Creating a Request+    CreateAnomalyDetector (..),+    newCreateAnomalyDetector,++    -- * Request Lenses+    createAnomalyDetector_anomalyDetectorDescription,+    createAnomalyDetector_kmsKeyArn,+    createAnomalyDetector_tags,+    createAnomalyDetector_anomalyDetectorName,+    createAnomalyDetector_anomalyDetectorConfig,++    -- * Destructuring the Response+    CreateAnomalyDetectorResponse (..),+    newCreateAnomalyDetectorResponse,++    -- * Response Lenses+    createAnomalyDetectorResponse_anomalyDetectorArn,+    createAnomalyDetectorResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateAnomalyDetector' smart constructor.+data CreateAnomalyDetector = CreateAnomalyDetector'+  { -- | A description of the detector.+    anomalyDetectorDescription :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the KMS key to use to encrypt your data.+    kmsKeyArn :: Prelude.Maybe Prelude.Text,+    -- | A list of+    -- <https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html tags>+    -- to apply to the anomaly detector.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name of the detector.+    anomalyDetectorName :: Prelude.Text,+    -- | Contains information about the configuration of the anomaly detector.+    anomalyDetectorConfig :: AnomalyDetectorConfig+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateAnomalyDetector' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyDetectorDescription', 'createAnomalyDetector_anomalyDetectorDescription' - A description of the detector.+--+-- 'kmsKeyArn', 'createAnomalyDetector_kmsKeyArn' - The ARN of the KMS key to use to encrypt your data.+--+-- 'tags', 'createAnomalyDetector_tags' - A list of+-- <https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html tags>+-- to apply to the anomaly detector.+--+-- 'anomalyDetectorName', 'createAnomalyDetector_anomalyDetectorName' - The name of the detector.+--+-- 'anomalyDetectorConfig', 'createAnomalyDetector_anomalyDetectorConfig' - Contains information about the configuration of the anomaly detector.+newCreateAnomalyDetector ::+  -- | 'anomalyDetectorName'+  Prelude.Text ->+  -- | 'anomalyDetectorConfig'+  AnomalyDetectorConfig ->+  CreateAnomalyDetector+newCreateAnomalyDetector+  pAnomalyDetectorName_+  pAnomalyDetectorConfig_ =+    CreateAnomalyDetector'+      { anomalyDetectorDescription =+          Prelude.Nothing,+        kmsKeyArn = Prelude.Nothing,+        tags = Prelude.Nothing,+        anomalyDetectorName = pAnomalyDetectorName_,+        anomalyDetectorConfig = pAnomalyDetectorConfig_+      }++-- | A description of the detector.+createAnomalyDetector_anomalyDetectorDescription :: Lens.Lens' CreateAnomalyDetector (Prelude.Maybe Prelude.Text)+createAnomalyDetector_anomalyDetectorDescription = Lens.lens (\CreateAnomalyDetector' {anomalyDetectorDescription} -> anomalyDetectorDescription) (\s@CreateAnomalyDetector' {} a -> s {anomalyDetectorDescription = a} :: CreateAnomalyDetector)++-- | The ARN of the KMS key to use to encrypt your data.+createAnomalyDetector_kmsKeyArn :: Lens.Lens' CreateAnomalyDetector (Prelude.Maybe Prelude.Text)+createAnomalyDetector_kmsKeyArn = Lens.lens (\CreateAnomalyDetector' {kmsKeyArn} -> kmsKeyArn) (\s@CreateAnomalyDetector' {} a -> s {kmsKeyArn = a} :: CreateAnomalyDetector)++-- | A list of+-- <https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html tags>+-- to apply to the anomaly detector.+createAnomalyDetector_tags :: Lens.Lens' CreateAnomalyDetector (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createAnomalyDetector_tags = Lens.lens (\CreateAnomalyDetector' {tags} -> tags) (\s@CreateAnomalyDetector' {} a -> s {tags = a} :: CreateAnomalyDetector) Prelude.. Lens.mapping Lens.coerced++-- | The name of the detector.+createAnomalyDetector_anomalyDetectorName :: Lens.Lens' CreateAnomalyDetector Prelude.Text+createAnomalyDetector_anomalyDetectorName = Lens.lens (\CreateAnomalyDetector' {anomalyDetectorName} -> anomalyDetectorName) (\s@CreateAnomalyDetector' {} a -> s {anomalyDetectorName = a} :: CreateAnomalyDetector)++-- | Contains information about the configuration of the anomaly detector.+createAnomalyDetector_anomalyDetectorConfig :: Lens.Lens' CreateAnomalyDetector AnomalyDetectorConfig+createAnomalyDetector_anomalyDetectorConfig = Lens.lens (\CreateAnomalyDetector' {anomalyDetectorConfig} -> anomalyDetectorConfig) (\s@CreateAnomalyDetector' {} a -> s {anomalyDetectorConfig = a} :: CreateAnomalyDetector)++instance Core.AWSRequest CreateAnomalyDetector where+  type+    AWSResponse CreateAnomalyDetector =+      CreateAnomalyDetectorResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateAnomalyDetectorResponse'+            Prelude.<$> (x Data..?> "AnomalyDetectorArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateAnomalyDetector where+  hashWithSalt _salt CreateAnomalyDetector' {..} =+    _salt+      `Prelude.hashWithSalt` anomalyDetectorDescription+      `Prelude.hashWithSalt` kmsKeyArn+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` anomalyDetectorName+      `Prelude.hashWithSalt` anomalyDetectorConfig++instance Prelude.NFData CreateAnomalyDetector where+  rnf CreateAnomalyDetector' {..} =+    Prelude.rnf anomalyDetectorDescription+      `Prelude.seq` Prelude.rnf kmsKeyArn+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf anomalyDetectorName+      `Prelude.seq` Prelude.rnf anomalyDetectorConfig++instance Data.ToHeaders CreateAnomalyDetector where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateAnomalyDetector where+  toJSON CreateAnomalyDetector' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AnomalyDetectorDescription" Data..=)+              Prelude.<$> anomalyDetectorDescription,+            ("KmsKeyArn" Data..=) Prelude.<$> kmsKeyArn,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ("AnomalyDetectorName" Data..= anomalyDetectorName),+            Prelude.Just+              ( "AnomalyDetectorConfig"+                  Data..= anomalyDetectorConfig+              )+          ]+      )++instance Data.ToPath CreateAnomalyDetector where+  toPath = Prelude.const "/CreateAnomalyDetector"++instance Data.ToQuery CreateAnomalyDetector where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateAnomalyDetectorResponse' smart constructor.+data CreateAnomalyDetectorResponse = CreateAnomalyDetectorResponse'+  { -- | The ARN of the detector.+    anomalyDetectorArn :: 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 'CreateAnomalyDetectorResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyDetectorArn', 'createAnomalyDetectorResponse_anomalyDetectorArn' - The ARN of the detector.+--+-- 'httpStatus', 'createAnomalyDetectorResponse_httpStatus' - The response's http status code.+newCreateAnomalyDetectorResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateAnomalyDetectorResponse+newCreateAnomalyDetectorResponse pHttpStatus_ =+  CreateAnomalyDetectorResponse'+    { anomalyDetectorArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the detector.+createAnomalyDetectorResponse_anomalyDetectorArn :: Lens.Lens' CreateAnomalyDetectorResponse (Prelude.Maybe Prelude.Text)+createAnomalyDetectorResponse_anomalyDetectorArn = Lens.lens (\CreateAnomalyDetectorResponse' {anomalyDetectorArn} -> anomalyDetectorArn) (\s@CreateAnomalyDetectorResponse' {} a -> s {anomalyDetectorArn = a} :: CreateAnomalyDetectorResponse)++-- | The response's http status code.+createAnomalyDetectorResponse_httpStatus :: Lens.Lens' CreateAnomalyDetectorResponse Prelude.Int+createAnomalyDetectorResponse_httpStatus = Lens.lens (\CreateAnomalyDetectorResponse' {httpStatus} -> httpStatus) (\s@CreateAnomalyDetectorResponse' {} a -> s {httpStatus = a} :: CreateAnomalyDetectorResponse)++instance Prelude.NFData CreateAnomalyDetectorResponse where+  rnf CreateAnomalyDetectorResponse' {..} =+    Prelude.rnf anomalyDetectorArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/CreateMetricSet.hs view
@@ -0,0 +1,343 @@+{-# 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.LookoutMetrics.CreateMetricSet+-- 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 dataset.+module Amazonka.LookoutMetrics.CreateMetricSet+  ( -- * Creating a Request+    CreateMetricSet (..),+    newCreateMetricSet,++    -- * Request Lenses+    createMetricSet_dimensionFilterList,+    createMetricSet_dimensionList,+    createMetricSet_metricSetDescription,+    createMetricSet_metricSetFrequency,+    createMetricSet_offset,+    createMetricSet_tags,+    createMetricSet_timestampColumn,+    createMetricSet_timezone,+    createMetricSet_anomalyDetectorArn,+    createMetricSet_metricSetName,+    createMetricSet_metricList,+    createMetricSet_metricSource,++    -- * Destructuring the Response+    CreateMetricSetResponse (..),+    newCreateMetricSetResponse,++    -- * Response Lenses+    createMetricSetResponse_metricSetArn,+    createMetricSetResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateMetricSet' smart constructor.+data CreateMetricSet = CreateMetricSet'+  { -- | A list of filters that specify which data is kept for anomaly detection.+    dimensionFilterList :: Prelude.Maybe [MetricSetDimensionFilter],+    -- | A list of the fields you want to treat as dimensions.+    dimensionList :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | A description of the dataset you are creating.+    metricSetDescription :: Prelude.Maybe Prelude.Text,+    -- | The frequency with which the source data will be analyzed for anomalies.+    metricSetFrequency :: Prelude.Maybe Frequency,+    -- | After an interval ends, the amount of seconds that the detector waits+    -- before importing data. Offset is only supported for S3, Redshift, Athena+    -- and datasources.+    offset :: Prelude.Maybe Prelude.Natural,+    -- | A list of+    -- <https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html tags>+    -- to apply to the dataset.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Contains information about the column used for tracking time in your+    -- source data.+    timestampColumn :: Prelude.Maybe TimestampColumn,+    -- | The time zone in which your source data was recorded.+    timezone :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the anomaly detector that will use the dataset.+    anomalyDetectorArn :: Prelude.Text,+    -- | The name of the dataset.+    metricSetName :: Prelude.Text,+    -- | A list of metrics that the dataset will contain.+    metricList :: Prelude.NonEmpty Metric,+    -- | Contains information about how the source data should be interpreted.+    metricSource :: MetricSource+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateMetricSet' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dimensionFilterList', 'createMetricSet_dimensionFilterList' - A list of filters that specify which data is kept for anomaly detection.+--+-- 'dimensionList', 'createMetricSet_dimensionList' - A list of the fields you want to treat as dimensions.+--+-- 'metricSetDescription', 'createMetricSet_metricSetDescription' - A description of the dataset you are creating.+--+-- 'metricSetFrequency', 'createMetricSet_metricSetFrequency' - The frequency with which the source data will be analyzed for anomalies.+--+-- 'offset', 'createMetricSet_offset' - After an interval ends, the amount of seconds that the detector waits+-- before importing data. Offset is only supported for S3, Redshift, Athena+-- and datasources.+--+-- 'tags', 'createMetricSet_tags' - A list of+-- <https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html tags>+-- to apply to the dataset.+--+-- 'timestampColumn', 'createMetricSet_timestampColumn' - Contains information about the column used for tracking time in your+-- source data.+--+-- 'timezone', 'createMetricSet_timezone' - The time zone in which your source data was recorded.+--+-- 'anomalyDetectorArn', 'createMetricSet_anomalyDetectorArn' - The ARN of the anomaly detector that will use the dataset.+--+-- 'metricSetName', 'createMetricSet_metricSetName' - The name of the dataset.+--+-- 'metricList', 'createMetricSet_metricList' - A list of metrics that the dataset will contain.+--+-- 'metricSource', 'createMetricSet_metricSource' - Contains information about how the source data should be interpreted.+newCreateMetricSet ::+  -- | 'anomalyDetectorArn'+  Prelude.Text ->+  -- | 'metricSetName'+  Prelude.Text ->+  -- | 'metricList'+  Prelude.NonEmpty Metric ->+  -- | 'metricSource'+  MetricSource ->+  CreateMetricSet+newCreateMetricSet+  pAnomalyDetectorArn_+  pMetricSetName_+  pMetricList_+  pMetricSource_ =+    CreateMetricSet'+      { dimensionFilterList =+          Prelude.Nothing,+        dimensionList = Prelude.Nothing,+        metricSetDescription = Prelude.Nothing,+        metricSetFrequency = Prelude.Nothing,+        offset = Prelude.Nothing,+        tags = Prelude.Nothing,+        timestampColumn = Prelude.Nothing,+        timezone = Prelude.Nothing,+        anomalyDetectorArn = pAnomalyDetectorArn_,+        metricSetName = pMetricSetName_,+        metricList = Lens.coerced Lens.# pMetricList_,+        metricSource = pMetricSource_+      }++-- | A list of filters that specify which data is kept for anomaly detection.+createMetricSet_dimensionFilterList :: Lens.Lens' CreateMetricSet (Prelude.Maybe [MetricSetDimensionFilter])+createMetricSet_dimensionFilterList = Lens.lens (\CreateMetricSet' {dimensionFilterList} -> dimensionFilterList) (\s@CreateMetricSet' {} a -> s {dimensionFilterList = a} :: CreateMetricSet) Prelude.. Lens.mapping Lens.coerced++-- | A list of the fields you want to treat as dimensions.+createMetricSet_dimensionList :: Lens.Lens' CreateMetricSet (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+createMetricSet_dimensionList = Lens.lens (\CreateMetricSet' {dimensionList} -> dimensionList) (\s@CreateMetricSet' {} a -> s {dimensionList = a} :: CreateMetricSet) Prelude.. Lens.mapping Lens.coerced++-- | A description of the dataset you are creating.+createMetricSet_metricSetDescription :: Lens.Lens' CreateMetricSet (Prelude.Maybe Prelude.Text)+createMetricSet_metricSetDescription = Lens.lens (\CreateMetricSet' {metricSetDescription} -> metricSetDescription) (\s@CreateMetricSet' {} a -> s {metricSetDescription = a} :: CreateMetricSet)++-- | The frequency with which the source data will be analyzed for anomalies.+createMetricSet_metricSetFrequency :: Lens.Lens' CreateMetricSet (Prelude.Maybe Frequency)+createMetricSet_metricSetFrequency = Lens.lens (\CreateMetricSet' {metricSetFrequency} -> metricSetFrequency) (\s@CreateMetricSet' {} a -> s {metricSetFrequency = a} :: CreateMetricSet)++-- | After an interval ends, the amount of seconds that the detector waits+-- before importing data. Offset is only supported for S3, Redshift, Athena+-- and datasources.+createMetricSet_offset :: Lens.Lens' CreateMetricSet (Prelude.Maybe Prelude.Natural)+createMetricSet_offset = Lens.lens (\CreateMetricSet' {offset} -> offset) (\s@CreateMetricSet' {} a -> s {offset = a} :: CreateMetricSet)++-- | A list of+-- <https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html tags>+-- to apply to the dataset.+createMetricSet_tags :: Lens.Lens' CreateMetricSet (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createMetricSet_tags = Lens.lens (\CreateMetricSet' {tags} -> tags) (\s@CreateMetricSet' {} a -> s {tags = a} :: CreateMetricSet) Prelude.. Lens.mapping Lens.coerced++-- | Contains information about the column used for tracking time in your+-- source data.+createMetricSet_timestampColumn :: Lens.Lens' CreateMetricSet (Prelude.Maybe TimestampColumn)+createMetricSet_timestampColumn = Lens.lens (\CreateMetricSet' {timestampColumn} -> timestampColumn) (\s@CreateMetricSet' {} a -> s {timestampColumn = a} :: CreateMetricSet)++-- | The time zone in which your source data was recorded.+createMetricSet_timezone :: Lens.Lens' CreateMetricSet (Prelude.Maybe Prelude.Text)+createMetricSet_timezone = Lens.lens (\CreateMetricSet' {timezone} -> timezone) (\s@CreateMetricSet' {} a -> s {timezone = a} :: CreateMetricSet)++-- | The ARN of the anomaly detector that will use the dataset.+createMetricSet_anomalyDetectorArn :: Lens.Lens' CreateMetricSet Prelude.Text+createMetricSet_anomalyDetectorArn = Lens.lens (\CreateMetricSet' {anomalyDetectorArn} -> anomalyDetectorArn) (\s@CreateMetricSet' {} a -> s {anomalyDetectorArn = a} :: CreateMetricSet)++-- | The name of the dataset.+createMetricSet_metricSetName :: Lens.Lens' CreateMetricSet Prelude.Text+createMetricSet_metricSetName = Lens.lens (\CreateMetricSet' {metricSetName} -> metricSetName) (\s@CreateMetricSet' {} a -> s {metricSetName = a} :: CreateMetricSet)++-- | A list of metrics that the dataset will contain.+createMetricSet_metricList :: Lens.Lens' CreateMetricSet (Prelude.NonEmpty Metric)+createMetricSet_metricList = Lens.lens (\CreateMetricSet' {metricList} -> metricList) (\s@CreateMetricSet' {} a -> s {metricList = a} :: CreateMetricSet) Prelude.. Lens.coerced++-- | Contains information about how the source data should be interpreted.+createMetricSet_metricSource :: Lens.Lens' CreateMetricSet MetricSource+createMetricSet_metricSource = Lens.lens (\CreateMetricSet' {metricSource} -> metricSource) (\s@CreateMetricSet' {} a -> s {metricSource = a} :: CreateMetricSet)++instance Core.AWSRequest CreateMetricSet where+  type+    AWSResponse CreateMetricSet =+      CreateMetricSetResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateMetricSetResponse'+            Prelude.<$> (x Data..?> "MetricSetArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateMetricSet where+  hashWithSalt _salt CreateMetricSet' {..} =+    _salt+      `Prelude.hashWithSalt` dimensionFilterList+      `Prelude.hashWithSalt` dimensionList+      `Prelude.hashWithSalt` metricSetDescription+      `Prelude.hashWithSalt` metricSetFrequency+      `Prelude.hashWithSalt` offset+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` timestampColumn+      `Prelude.hashWithSalt` timezone+      `Prelude.hashWithSalt` anomalyDetectorArn+      `Prelude.hashWithSalt` metricSetName+      `Prelude.hashWithSalt` metricList+      `Prelude.hashWithSalt` metricSource++instance Prelude.NFData CreateMetricSet where+  rnf CreateMetricSet' {..} =+    Prelude.rnf dimensionFilterList+      `Prelude.seq` Prelude.rnf dimensionList+      `Prelude.seq` Prelude.rnf metricSetDescription+      `Prelude.seq` Prelude.rnf metricSetFrequency+      `Prelude.seq` Prelude.rnf offset+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf timestampColumn+      `Prelude.seq` Prelude.rnf timezone+      `Prelude.seq` Prelude.rnf anomalyDetectorArn+      `Prelude.seq` Prelude.rnf metricSetName+      `Prelude.seq` Prelude.rnf metricList+      `Prelude.seq` Prelude.rnf metricSource++instance Data.ToHeaders CreateMetricSet where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateMetricSet where+  toJSON CreateMetricSet' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DimensionFilterList" Data..=)+              Prelude.<$> dimensionFilterList,+            ("DimensionList" Data..=) Prelude.<$> dimensionList,+            ("MetricSetDescription" Data..=)+              Prelude.<$> metricSetDescription,+            ("MetricSetFrequency" Data..=)+              Prelude.<$> metricSetFrequency,+            ("Offset" Data..=) Prelude.<$> offset,+            ("Tags" Data..=) Prelude.<$> tags,+            ("TimestampColumn" Data..=)+              Prelude.<$> timestampColumn,+            ("Timezone" Data..=) Prelude.<$> timezone,+            Prelude.Just+              ("AnomalyDetectorArn" Data..= anomalyDetectorArn),+            Prelude.Just ("MetricSetName" Data..= metricSetName),+            Prelude.Just ("MetricList" Data..= metricList),+            Prelude.Just ("MetricSource" Data..= metricSource)+          ]+      )++instance Data.ToPath CreateMetricSet where+  toPath = Prelude.const "/CreateMetricSet"++instance Data.ToQuery CreateMetricSet where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateMetricSetResponse' smart constructor.+data CreateMetricSetResponse = CreateMetricSetResponse'+  { -- | The ARN of the dataset.+    metricSetArn :: 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 'CreateMetricSetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metricSetArn', 'createMetricSetResponse_metricSetArn' - The ARN of the dataset.+--+-- 'httpStatus', 'createMetricSetResponse_httpStatus' - The response's http status code.+newCreateMetricSetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateMetricSetResponse+newCreateMetricSetResponse pHttpStatus_ =+  CreateMetricSetResponse'+    { metricSetArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the dataset.+createMetricSetResponse_metricSetArn :: Lens.Lens' CreateMetricSetResponse (Prelude.Maybe Prelude.Text)+createMetricSetResponse_metricSetArn = Lens.lens (\CreateMetricSetResponse' {metricSetArn} -> metricSetArn) (\s@CreateMetricSetResponse' {} a -> s {metricSetArn = a} :: CreateMetricSetResponse)++-- | The response's http status code.+createMetricSetResponse_httpStatus :: Lens.Lens' CreateMetricSetResponse Prelude.Int+createMetricSetResponse_httpStatus = Lens.lens (\CreateMetricSetResponse' {httpStatus} -> httpStatus) (\s@CreateMetricSetResponse' {} a -> s {httpStatus = a} :: CreateMetricSetResponse)++instance Prelude.NFData CreateMetricSetResponse where+  rnf CreateMetricSetResponse' {..} =+    Prelude.rnf metricSetArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/DeactivateAnomalyDetector.hs view
@@ -0,0 +1,161 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.DeactivateAnomalyDetector+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deactivates an anomaly detector.+module Amazonka.LookoutMetrics.DeactivateAnomalyDetector+  ( -- * Creating a Request+    DeactivateAnomalyDetector (..),+    newDeactivateAnomalyDetector,++    -- * Request Lenses+    deactivateAnomalyDetector_anomalyDetectorArn,++    -- * Destructuring the Response+    DeactivateAnomalyDetectorResponse (..),+    newDeactivateAnomalyDetectorResponse,++    -- * Response Lenses+    deactivateAnomalyDetectorResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeactivateAnomalyDetector' smart constructor.+data DeactivateAnomalyDetector = DeactivateAnomalyDetector'+  { -- | The Amazon Resource Name (ARN) of the anomaly detector.+    anomalyDetectorArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeactivateAnomalyDetector' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyDetectorArn', 'deactivateAnomalyDetector_anomalyDetectorArn' - The Amazon Resource Name (ARN) of the anomaly detector.+newDeactivateAnomalyDetector ::+  -- | 'anomalyDetectorArn'+  Prelude.Text ->+  DeactivateAnomalyDetector+newDeactivateAnomalyDetector pAnomalyDetectorArn_ =+  DeactivateAnomalyDetector'+    { anomalyDetectorArn =+        pAnomalyDetectorArn_+    }++-- | The Amazon Resource Name (ARN) of the anomaly detector.+deactivateAnomalyDetector_anomalyDetectorArn :: Lens.Lens' DeactivateAnomalyDetector Prelude.Text+deactivateAnomalyDetector_anomalyDetectorArn = Lens.lens (\DeactivateAnomalyDetector' {anomalyDetectorArn} -> anomalyDetectorArn) (\s@DeactivateAnomalyDetector' {} a -> s {anomalyDetectorArn = a} :: DeactivateAnomalyDetector)++instance Core.AWSRequest DeactivateAnomalyDetector where+  type+    AWSResponse DeactivateAnomalyDetector =+      DeactivateAnomalyDetectorResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeactivateAnomalyDetectorResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeactivateAnomalyDetector where+  hashWithSalt _salt DeactivateAnomalyDetector' {..} =+    _salt `Prelude.hashWithSalt` anomalyDetectorArn++instance Prelude.NFData DeactivateAnomalyDetector where+  rnf DeactivateAnomalyDetector' {..} =+    Prelude.rnf anomalyDetectorArn++instance Data.ToHeaders DeactivateAnomalyDetector where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeactivateAnomalyDetector where+  toJSON DeactivateAnomalyDetector' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("AnomalyDetectorArn" Data..= anomalyDetectorArn)+          ]+      )++instance Data.ToPath DeactivateAnomalyDetector where+  toPath = Prelude.const "/DeactivateAnomalyDetector"++instance Data.ToQuery DeactivateAnomalyDetector where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeactivateAnomalyDetectorResponse' smart constructor.+data DeactivateAnomalyDetectorResponse = DeactivateAnomalyDetectorResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeactivateAnomalyDetectorResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deactivateAnomalyDetectorResponse_httpStatus' - The response's http status code.+newDeactivateAnomalyDetectorResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeactivateAnomalyDetectorResponse+newDeactivateAnomalyDetectorResponse pHttpStatus_ =+  DeactivateAnomalyDetectorResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deactivateAnomalyDetectorResponse_httpStatus :: Lens.Lens' DeactivateAnomalyDetectorResponse Prelude.Int+deactivateAnomalyDetectorResponse_httpStatus = Lens.lens (\DeactivateAnomalyDetectorResponse' {httpStatus} -> httpStatus) (\s@DeactivateAnomalyDetectorResponse' {} a -> s {httpStatus = a} :: DeactivateAnomalyDetectorResponse)++instance+  Prelude.NFData+    DeactivateAnomalyDetectorResponse+  where+  rnf DeactivateAnomalyDetectorResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/DeleteAlert.hs view
@@ -0,0 +1,146 @@+{-# 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.LookoutMetrics.DeleteAlert+-- 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 alert.+module Amazonka.LookoutMetrics.DeleteAlert+  ( -- * Creating a Request+    DeleteAlert (..),+    newDeleteAlert,++    -- * Request Lenses+    deleteAlert_alertArn,++    -- * Destructuring the Response+    DeleteAlertResponse (..),+    newDeleteAlertResponse,++    -- * Response Lenses+    deleteAlertResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteAlert' smart constructor.+data DeleteAlert = DeleteAlert'+  { -- | The ARN of the alert to delete.+    alertArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAlert' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'alertArn', 'deleteAlert_alertArn' - The ARN of the alert to delete.+newDeleteAlert ::+  -- | 'alertArn'+  Prelude.Text ->+  DeleteAlert+newDeleteAlert pAlertArn_ =+  DeleteAlert' {alertArn = pAlertArn_}++-- | The ARN of the alert to delete.+deleteAlert_alertArn :: Lens.Lens' DeleteAlert Prelude.Text+deleteAlert_alertArn = Lens.lens (\DeleteAlert' {alertArn} -> alertArn) (\s@DeleteAlert' {} a -> s {alertArn = a} :: DeleteAlert)++instance Core.AWSRequest DeleteAlert where+  type AWSResponse DeleteAlert = DeleteAlertResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteAlertResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteAlert where+  hashWithSalt _salt DeleteAlert' {..} =+    _salt `Prelude.hashWithSalt` alertArn++instance Prelude.NFData DeleteAlert where+  rnf DeleteAlert' {..} = Prelude.rnf alertArn++instance Data.ToHeaders DeleteAlert where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteAlert where+  toJSON DeleteAlert' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("AlertArn" Data..= alertArn)]+      )++instance Data.ToPath DeleteAlert where+  toPath = Prelude.const "/DeleteAlert"++instance Data.ToQuery DeleteAlert where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteAlertResponse' smart constructor.+data DeleteAlertResponse = DeleteAlertResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAlertResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteAlertResponse_httpStatus' - The response's http status code.+newDeleteAlertResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteAlertResponse+newDeleteAlertResponse pHttpStatus_ =+  DeleteAlertResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteAlertResponse_httpStatus :: Lens.Lens' DeleteAlertResponse Prelude.Int+deleteAlertResponse_httpStatus = Lens.lens (\DeleteAlertResponse' {httpStatus} -> httpStatus) (\s@DeleteAlertResponse' {} a -> s {httpStatus = a} :: DeleteAlertResponse)++instance Prelude.NFData DeleteAlertResponse where+  rnf DeleteAlertResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/DeleteAnomalyDetector.hs view
@@ -0,0 +1,159 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.DeleteAnomalyDetector+-- 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. Deleting an anomaly detector will delete all of its+-- corresponding resources including any configured datasets and alerts.+module Amazonka.LookoutMetrics.DeleteAnomalyDetector+  ( -- * Creating a Request+    DeleteAnomalyDetector (..),+    newDeleteAnomalyDetector,++    -- * Request Lenses+    deleteAnomalyDetector_anomalyDetectorArn,++    -- * Destructuring the Response+    DeleteAnomalyDetectorResponse (..),+    newDeleteAnomalyDetectorResponse,++    -- * Response Lenses+    deleteAnomalyDetectorResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteAnomalyDetector' smart constructor.+data DeleteAnomalyDetector = DeleteAnomalyDetector'+  { -- | The ARN of the detector to delete.+    anomalyDetectorArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAnomalyDetector' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyDetectorArn', 'deleteAnomalyDetector_anomalyDetectorArn' - The ARN of the detector to delete.+newDeleteAnomalyDetector ::+  -- | 'anomalyDetectorArn'+  Prelude.Text ->+  DeleteAnomalyDetector+newDeleteAnomalyDetector pAnomalyDetectorArn_ =+  DeleteAnomalyDetector'+    { anomalyDetectorArn =+        pAnomalyDetectorArn_+    }++-- | The ARN of the detector to delete.+deleteAnomalyDetector_anomalyDetectorArn :: Lens.Lens' DeleteAnomalyDetector Prelude.Text+deleteAnomalyDetector_anomalyDetectorArn = Lens.lens (\DeleteAnomalyDetector' {anomalyDetectorArn} -> anomalyDetectorArn) (\s@DeleteAnomalyDetector' {} a -> s {anomalyDetectorArn = a} :: DeleteAnomalyDetector)++instance Core.AWSRequest DeleteAnomalyDetector where+  type+    AWSResponse DeleteAnomalyDetector =+      DeleteAnomalyDetectorResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteAnomalyDetectorResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteAnomalyDetector where+  hashWithSalt _salt DeleteAnomalyDetector' {..} =+    _salt `Prelude.hashWithSalt` anomalyDetectorArn++instance Prelude.NFData DeleteAnomalyDetector where+  rnf DeleteAnomalyDetector' {..} =+    Prelude.rnf anomalyDetectorArn++instance Data.ToHeaders DeleteAnomalyDetector where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteAnomalyDetector where+  toJSON DeleteAnomalyDetector' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("AnomalyDetectorArn" Data..= anomalyDetectorArn)+          ]+      )++instance Data.ToPath DeleteAnomalyDetector where+  toPath = Prelude.const "/DeleteAnomalyDetector"++instance Data.ToQuery DeleteAnomalyDetector where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteAnomalyDetectorResponse' smart constructor.+data DeleteAnomalyDetectorResponse = DeleteAnomalyDetectorResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAnomalyDetectorResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteAnomalyDetectorResponse_httpStatus' - The response's http status code.+newDeleteAnomalyDetectorResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteAnomalyDetectorResponse+newDeleteAnomalyDetectorResponse pHttpStatus_ =+  DeleteAnomalyDetectorResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteAnomalyDetectorResponse_httpStatus :: Lens.Lens' DeleteAnomalyDetectorResponse Prelude.Int+deleteAnomalyDetectorResponse_httpStatus = Lens.lens (\DeleteAnomalyDetectorResponse' {httpStatus} -> httpStatus) (\s@DeleteAnomalyDetectorResponse' {} a -> s {httpStatus = a} :: DeleteAnomalyDetectorResponse)++instance Prelude.NFData DeleteAnomalyDetectorResponse where+  rnf DeleteAnomalyDetectorResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/DescribeAlert.hs view
@@ -0,0 +1,168 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.DescribeAlert+-- 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 alert.+--+-- Amazon Lookout for Metrics API actions are eventually consistent. If you+-- do a read operation on a resource immediately after creating or+-- modifying it, use retries to allow time for the write operation to+-- complete.+module Amazonka.LookoutMetrics.DescribeAlert+  ( -- * Creating a Request+    DescribeAlert (..),+    newDescribeAlert,++    -- * Request Lenses+    describeAlert_alertArn,++    -- * Destructuring the Response+    DescribeAlertResponse (..),+    newDescribeAlertResponse,++    -- * Response Lenses+    describeAlertResponse_alert,+    describeAlertResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeAlert' smart constructor.+data DescribeAlert = DescribeAlert'+  { -- | The ARN of the alert to describe.+    alertArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAlert' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'alertArn', 'describeAlert_alertArn' - The ARN of the alert to describe.+newDescribeAlert ::+  -- | 'alertArn'+  Prelude.Text ->+  DescribeAlert+newDescribeAlert pAlertArn_ =+  DescribeAlert' {alertArn = pAlertArn_}++-- | The ARN of the alert to describe.+describeAlert_alertArn :: Lens.Lens' DescribeAlert Prelude.Text+describeAlert_alertArn = Lens.lens (\DescribeAlert' {alertArn} -> alertArn) (\s@DescribeAlert' {} a -> s {alertArn = a} :: DescribeAlert)++instance Core.AWSRequest DescribeAlert where+  type+    AWSResponse DescribeAlert =+      DescribeAlertResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeAlertResponse'+            Prelude.<$> (x Data..?> "Alert")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeAlert where+  hashWithSalt _salt DescribeAlert' {..} =+    _salt `Prelude.hashWithSalt` alertArn++instance Prelude.NFData DescribeAlert where+  rnf DescribeAlert' {..} = Prelude.rnf alertArn++instance Data.ToHeaders DescribeAlert where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeAlert where+  toJSON DescribeAlert' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("AlertArn" Data..= alertArn)]+      )++instance Data.ToPath DescribeAlert where+  toPath = Prelude.const "/DescribeAlert"++instance Data.ToQuery DescribeAlert where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeAlertResponse' smart constructor.+data DescribeAlertResponse = DescribeAlertResponse'+  { -- | Contains information about an alert.+    alert :: Prelude.Maybe Alert,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAlertResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'alert', 'describeAlertResponse_alert' - Contains information about an alert.+--+-- 'httpStatus', 'describeAlertResponse_httpStatus' - The response's http status code.+newDescribeAlertResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeAlertResponse+newDescribeAlertResponse pHttpStatus_ =+  DescribeAlertResponse'+    { alert = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Contains information about an alert.+describeAlertResponse_alert :: Lens.Lens' DescribeAlertResponse (Prelude.Maybe Alert)+describeAlertResponse_alert = Lens.lens (\DescribeAlertResponse' {alert} -> alert) (\s@DescribeAlertResponse' {} a -> s {alert = a} :: DescribeAlertResponse)++-- | The response's http status code.+describeAlertResponse_httpStatus :: Lens.Lens' DescribeAlertResponse Prelude.Int+describeAlertResponse_httpStatus = Lens.lens (\DescribeAlertResponse' {httpStatus} -> httpStatus) (\s@DescribeAlertResponse' {} a -> s {httpStatus = a} :: DescribeAlertResponse)++instance Prelude.NFData DescribeAlertResponse where+  rnf DescribeAlertResponse' {..} =+    Prelude.rnf alert+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/DescribeAnomalyDetectionExecutions.hs view
@@ -0,0 +1,256 @@+{-# 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.LookoutMetrics.DescribeAnomalyDetectionExecutions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns information about the status of the specified anomaly detection+-- jobs.+module Amazonka.LookoutMetrics.DescribeAnomalyDetectionExecutions+  ( -- * Creating a Request+    DescribeAnomalyDetectionExecutions (..),+    newDescribeAnomalyDetectionExecutions,++    -- * Request Lenses+    describeAnomalyDetectionExecutions_maxResults,+    describeAnomalyDetectionExecutions_nextToken,+    describeAnomalyDetectionExecutions_timestamp,+    describeAnomalyDetectionExecutions_anomalyDetectorArn,++    -- * Destructuring the Response+    DescribeAnomalyDetectionExecutionsResponse (..),+    newDescribeAnomalyDetectionExecutionsResponse,++    -- * Response Lenses+    describeAnomalyDetectionExecutionsResponse_executionList,+    describeAnomalyDetectionExecutionsResponse_nextToken,+    describeAnomalyDetectionExecutionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeAnomalyDetectionExecutions' smart constructor.+data DescribeAnomalyDetectionExecutions = DescribeAnomalyDetectionExecutions'+  { -- | The number of items to return in the response.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Specify the pagination token that\'s returned by a previous request to+    -- retrieve the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The timestamp of the anomaly detection job.+    timestamp :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the anomaly detector.+    anomalyDetectorArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAnomalyDetectionExecutions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeAnomalyDetectionExecutions_maxResults' - The number of items to return in the response.+--+-- 'nextToken', 'describeAnomalyDetectionExecutions_nextToken' - Specify the pagination token that\'s returned by a previous request to+-- retrieve the next page of results.+--+-- 'timestamp', 'describeAnomalyDetectionExecutions_timestamp' - The timestamp of the anomaly detection job.+--+-- 'anomalyDetectorArn', 'describeAnomalyDetectionExecutions_anomalyDetectorArn' - The Amazon Resource Name (ARN) of the anomaly detector.+newDescribeAnomalyDetectionExecutions ::+  -- | 'anomalyDetectorArn'+  Prelude.Text ->+  DescribeAnomalyDetectionExecutions+newDescribeAnomalyDetectionExecutions+  pAnomalyDetectorArn_ =+    DescribeAnomalyDetectionExecutions'+      { maxResults =+          Prelude.Nothing,+        nextToken = Prelude.Nothing,+        timestamp = Prelude.Nothing,+        anomalyDetectorArn =+          pAnomalyDetectorArn_+      }++-- | The number of items to return in the response.+describeAnomalyDetectionExecutions_maxResults :: Lens.Lens' DescribeAnomalyDetectionExecutions (Prelude.Maybe Prelude.Natural)+describeAnomalyDetectionExecutions_maxResults = Lens.lens (\DescribeAnomalyDetectionExecutions' {maxResults} -> maxResults) (\s@DescribeAnomalyDetectionExecutions' {} a -> s {maxResults = a} :: DescribeAnomalyDetectionExecutions)++-- | Specify the pagination token that\'s returned by a previous request to+-- retrieve the next page of results.+describeAnomalyDetectionExecutions_nextToken :: Lens.Lens' DescribeAnomalyDetectionExecutions (Prelude.Maybe Prelude.Text)+describeAnomalyDetectionExecutions_nextToken = Lens.lens (\DescribeAnomalyDetectionExecutions' {nextToken} -> nextToken) (\s@DescribeAnomalyDetectionExecutions' {} a -> s {nextToken = a} :: DescribeAnomalyDetectionExecutions)++-- | The timestamp of the anomaly detection job.+describeAnomalyDetectionExecutions_timestamp :: Lens.Lens' DescribeAnomalyDetectionExecutions (Prelude.Maybe Prelude.Text)+describeAnomalyDetectionExecutions_timestamp = Lens.lens (\DescribeAnomalyDetectionExecutions' {timestamp} -> timestamp) (\s@DescribeAnomalyDetectionExecutions' {} a -> s {timestamp = a} :: DescribeAnomalyDetectionExecutions)++-- | The Amazon Resource Name (ARN) of the anomaly detector.+describeAnomalyDetectionExecutions_anomalyDetectorArn :: Lens.Lens' DescribeAnomalyDetectionExecutions Prelude.Text+describeAnomalyDetectionExecutions_anomalyDetectorArn = Lens.lens (\DescribeAnomalyDetectionExecutions' {anomalyDetectorArn} -> anomalyDetectorArn) (\s@DescribeAnomalyDetectionExecutions' {} a -> s {anomalyDetectorArn = a} :: DescribeAnomalyDetectionExecutions)++instance+  Core.AWSRequest+    DescribeAnomalyDetectionExecutions+  where+  type+    AWSResponse DescribeAnomalyDetectionExecutions =+      DescribeAnomalyDetectionExecutionsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeAnomalyDetectionExecutionsResponse'+            Prelude.<$> (x Data..?> "ExecutionList" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DescribeAnomalyDetectionExecutions+  where+  hashWithSalt+    _salt+    DescribeAnomalyDetectionExecutions' {..} =+      _salt+        `Prelude.hashWithSalt` maxResults+        `Prelude.hashWithSalt` nextToken+        `Prelude.hashWithSalt` timestamp+        `Prelude.hashWithSalt` anomalyDetectorArn++instance+  Prelude.NFData+    DescribeAnomalyDetectionExecutions+  where+  rnf DescribeAnomalyDetectionExecutions' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf timestamp+      `Prelude.seq` Prelude.rnf anomalyDetectorArn++instance+  Data.ToHeaders+    DescribeAnomalyDetectionExecutions+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    DescribeAnomalyDetectionExecutions+  where+  toJSON DescribeAnomalyDetectionExecutions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            ("Timestamp" Data..=) Prelude.<$> timestamp,+            Prelude.Just+              ("AnomalyDetectorArn" Data..= anomalyDetectorArn)+          ]+      )++instance+  Data.ToPath+    DescribeAnomalyDetectionExecutions+  where+  toPath =+    Prelude.const "/DescribeAnomalyDetectionExecutions"++instance+  Data.ToQuery+    DescribeAnomalyDetectionExecutions+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeAnomalyDetectionExecutionsResponse' smart constructor.+data DescribeAnomalyDetectionExecutionsResponse = DescribeAnomalyDetectionExecutionsResponse'+  { -- | A list of detection jobs.+    executionList :: Prelude.Maybe [ExecutionStatus],+    -- | The pagination token that\'s included if more results are available.+    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 'DescribeAnomalyDetectionExecutionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'executionList', 'describeAnomalyDetectionExecutionsResponse_executionList' - A list of detection jobs.+--+-- 'nextToken', 'describeAnomalyDetectionExecutionsResponse_nextToken' - The pagination token that\'s included if more results are available.+--+-- 'httpStatus', 'describeAnomalyDetectionExecutionsResponse_httpStatus' - The response's http status code.+newDescribeAnomalyDetectionExecutionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeAnomalyDetectionExecutionsResponse+newDescribeAnomalyDetectionExecutionsResponse+  pHttpStatus_ =+    DescribeAnomalyDetectionExecutionsResponse'+      { executionList =+          Prelude.Nothing,+        nextToken = Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | A list of detection jobs.+describeAnomalyDetectionExecutionsResponse_executionList :: Lens.Lens' DescribeAnomalyDetectionExecutionsResponse (Prelude.Maybe [ExecutionStatus])+describeAnomalyDetectionExecutionsResponse_executionList = Lens.lens (\DescribeAnomalyDetectionExecutionsResponse' {executionList} -> executionList) (\s@DescribeAnomalyDetectionExecutionsResponse' {} a -> s {executionList = a} :: DescribeAnomalyDetectionExecutionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The pagination token that\'s included if more results are available.+describeAnomalyDetectionExecutionsResponse_nextToken :: Lens.Lens' DescribeAnomalyDetectionExecutionsResponse (Prelude.Maybe Prelude.Text)+describeAnomalyDetectionExecutionsResponse_nextToken = Lens.lens (\DescribeAnomalyDetectionExecutionsResponse' {nextToken} -> nextToken) (\s@DescribeAnomalyDetectionExecutionsResponse' {} a -> s {nextToken = a} :: DescribeAnomalyDetectionExecutionsResponse)++-- | The response's http status code.+describeAnomalyDetectionExecutionsResponse_httpStatus :: Lens.Lens' DescribeAnomalyDetectionExecutionsResponse Prelude.Int+describeAnomalyDetectionExecutionsResponse_httpStatus = Lens.lens (\DescribeAnomalyDetectionExecutionsResponse' {httpStatus} -> httpStatus) (\s@DescribeAnomalyDetectionExecutionsResponse' {} a -> s {httpStatus = a} :: DescribeAnomalyDetectionExecutionsResponse)++instance+  Prelude.NFData+    DescribeAnomalyDetectionExecutionsResponse+  where+  rnf DescribeAnomalyDetectionExecutionsResponse' {..} =+    Prelude.rnf executionList+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/DescribeAnomalyDetector.hs view
@@ -0,0 +1,287 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.DescribeAnomalyDetector+-- 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.+--+-- Amazon Lookout for Metrics API actions are eventually consistent. If you+-- do a read operation on a resource immediately after creating or+-- modifying it, use retries to allow time for the write operation to+-- complete.+module Amazonka.LookoutMetrics.DescribeAnomalyDetector+  ( -- * Creating a Request+    DescribeAnomalyDetector (..),+    newDescribeAnomalyDetector,++    -- * Request Lenses+    describeAnomalyDetector_anomalyDetectorArn,++    -- * Destructuring the Response+    DescribeAnomalyDetectorResponse (..),+    newDescribeAnomalyDetectorResponse,++    -- * Response Lenses+    describeAnomalyDetectorResponse_anomalyDetectorArn,+    describeAnomalyDetectorResponse_anomalyDetectorConfig,+    describeAnomalyDetectorResponse_anomalyDetectorDescription,+    describeAnomalyDetectorResponse_anomalyDetectorName,+    describeAnomalyDetectorResponse_creationTime,+    describeAnomalyDetectorResponse_failureReason,+    describeAnomalyDetectorResponse_failureType,+    describeAnomalyDetectorResponse_kmsKeyArn,+    describeAnomalyDetectorResponse_lastModificationTime,+    describeAnomalyDetectorResponse_status,+    describeAnomalyDetectorResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeAnomalyDetector' smart constructor.+data DescribeAnomalyDetector = DescribeAnomalyDetector'+  { -- | The ARN of the detector to describe.+    anomalyDetectorArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAnomalyDetector' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyDetectorArn', 'describeAnomalyDetector_anomalyDetectorArn' - The ARN of the detector to describe.+newDescribeAnomalyDetector ::+  -- | 'anomalyDetectorArn'+  Prelude.Text ->+  DescribeAnomalyDetector+newDescribeAnomalyDetector pAnomalyDetectorArn_ =+  DescribeAnomalyDetector'+    { anomalyDetectorArn =+        pAnomalyDetectorArn_+    }++-- | The ARN of the detector to describe.+describeAnomalyDetector_anomalyDetectorArn :: Lens.Lens' DescribeAnomalyDetector Prelude.Text+describeAnomalyDetector_anomalyDetectorArn = Lens.lens (\DescribeAnomalyDetector' {anomalyDetectorArn} -> anomalyDetectorArn) (\s@DescribeAnomalyDetector' {} a -> s {anomalyDetectorArn = a} :: DescribeAnomalyDetector)++instance Core.AWSRequest DescribeAnomalyDetector where+  type+    AWSResponse DescribeAnomalyDetector =+      DescribeAnomalyDetectorResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeAnomalyDetectorResponse'+            Prelude.<$> (x Data..?> "AnomalyDetectorArn")+            Prelude.<*> (x Data..?> "AnomalyDetectorConfig")+            Prelude.<*> (x Data..?> "AnomalyDetectorDescription")+            Prelude.<*> (x Data..?> "AnomalyDetectorName")+            Prelude.<*> (x Data..?> "CreationTime")+            Prelude.<*> (x Data..?> "FailureReason")+            Prelude.<*> (x Data..?> "FailureType")+            Prelude.<*> (x Data..?> "KmsKeyArn")+            Prelude.<*> (x Data..?> "LastModificationTime")+            Prelude.<*> (x Data..?> "Status")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeAnomalyDetector where+  hashWithSalt _salt DescribeAnomalyDetector' {..} =+    _salt `Prelude.hashWithSalt` anomalyDetectorArn++instance Prelude.NFData DescribeAnomalyDetector where+  rnf DescribeAnomalyDetector' {..} =+    Prelude.rnf anomalyDetectorArn++instance Data.ToHeaders DescribeAnomalyDetector where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeAnomalyDetector where+  toJSON DescribeAnomalyDetector' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("AnomalyDetectorArn" Data..= anomalyDetectorArn)+          ]+      )++instance Data.ToPath DescribeAnomalyDetector where+  toPath = Prelude.const "/DescribeAnomalyDetector"++instance Data.ToQuery DescribeAnomalyDetector where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeAnomalyDetectorResponse' smart constructor.+data DescribeAnomalyDetectorResponse = DescribeAnomalyDetectorResponse'+  { -- | The ARN of the detector.+    anomalyDetectorArn :: Prelude.Maybe Prelude.Text,+    -- | Contains information about the detector\'s configuration.+    anomalyDetectorConfig :: Prelude.Maybe AnomalyDetectorConfigSummary,+    -- | A description of the detector.+    anomalyDetectorDescription :: Prelude.Maybe Prelude.Text,+    -- | The name of the detector.+    anomalyDetectorName :: Prelude.Maybe Prelude.Text,+    -- | The time at which the detector was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The reason that the detector failed.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The process that caused the detector to fail.+    failureType :: Prelude.Maybe AnomalyDetectorFailureType,+    -- | The ARN of the KMS key to use to encrypt your data.+    kmsKeyArn :: Prelude.Maybe Prelude.Text,+    -- | The time at which the detector was last modified.+    lastModificationTime :: Prelude.Maybe Data.POSIX,+    -- | The status of the detector.+    status :: Prelude.Maybe AnomalyDetectorStatus,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAnomalyDetectorResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyDetectorArn', 'describeAnomalyDetectorResponse_anomalyDetectorArn' - The ARN of the detector.+--+-- 'anomalyDetectorConfig', 'describeAnomalyDetectorResponse_anomalyDetectorConfig' - Contains information about the detector\'s configuration.+--+-- 'anomalyDetectorDescription', 'describeAnomalyDetectorResponse_anomalyDetectorDescription' - A description of the detector.+--+-- 'anomalyDetectorName', 'describeAnomalyDetectorResponse_anomalyDetectorName' - The name of the detector.+--+-- 'creationTime', 'describeAnomalyDetectorResponse_creationTime' - The time at which the detector was created.+--+-- 'failureReason', 'describeAnomalyDetectorResponse_failureReason' - The reason that the detector failed.+--+-- 'failureType', 'describeAnomalyDetectorResponse_failureType' - The process that caused the detector to fail.+--+-- 'kmsKeyArn', 'describeAnomalyDetectorResponse_kmsKeyArn' - The ARN of the KMS key to use to encrypt your data.+--+-- 'lastModificationTime', 'describeAnomalyDetectorResponse_lastModificationTime' - The time at which the detector was last modified.+--+-- 'status', 'describeAnomalyDetectorResponse_status' - The status of the detector.+--+-- 'httpStatus', 'describeAnomalyDetectorResponse_httpStatus' - The response's http status code.+newDescribeAnomalyDetectorResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeAnomalyDetectorResponse+newDescribeAnomalyDetectorResponse pHttpStatus_ =+  DescribeAnomalyDetectorResponse'+    { anomalyDetectorArn =+        Prelude.Nothing,+      anomalyDetectorConfig = Prelude.Nothing,+      anomalyDetectorDescription =+        Prelude.Nothing,+      anomalyDetectorName = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      failureType = Prelude.Nothing,+      kmsKeyArn = Prelude.Nothing,+      lastModificationTime = Prelude.Nothing,+      status = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the detector.+describeAnomalyDetectorResponse_anomalyDetectorArn :: Lens.Lens' DescribeAnomalyDetectorResponse (Prelude.Maybe Prelude.Text)+describeAnomalyDetectorResponse_anomalyDetectorArn = Lens.lens (\DescribeAnomalyDetectorResponse' {anomalyDetectorArn} -> anomalyDetectorArn) (\s@DescribeAnomalyDetectorResponse' {} a -> s {anomalyDetectorArn = a} :: DescribeAnomalyDetectorResponse)++-- | Contains information about the detector\'s configuration.+describeAnomalyDetectorResponse_anomalyDetectorConfig :: Lens.Lens' DescribeAnomalyDetectorResponse (Prelude.Maybe AnomalyDetectorConfigSummary)+describeAnomalyDetectorResponse_anomalyDetectorConfig = Lens.lens (\DescribeAnomalyDetectorResponse' {anomalyDetectorConfig} -> anomalyDetectorConfig) (\s@DescribeAnomalyDetectorResponse' {} a -> s {anomalyDetectorConfig = a} :: DescribeAnomalyDetectorResponse)++-- | A description of the detector.+describeAnomalyDetectorResponse_anomalyDetectorDescription :: Lens.Lens' DescribeAnomalyDetectorResponse (Prelude.Maybe Prelude.Text)+describeAnomalyDetectorResponse_anomalyDetectorDescription = Lens.lens (\DescribeAnomalyDetectorResponse' {anomalyDetectorDescription} -> anomalyDetectorDescription) (\s@DescribeAnomalyDetectorResponse' {} a -> s {anomalyDetectorDescription = a} :: DescribeAnomalyDetectorResponse)++-- | The name of the detector.+describeAnomalyDetectorResponse_anomalyDetectorName :: Lens.Lens' DescribeAnomalyDetectorResponse (Prelude.Maybe Prelude.Text)+describeAnomalyDetectorResponse_anomalyDetectorName = Lens.lens (\DescribeAnomalyDetectorResponse' {anomalyDetectorName} -> anomalyDetectorName) (\s@DescribeAnomalyDetectorResponse' {} a -> s {anomalyDetectorName = a} :: DescribeAnomalyDetectorResponse)++-- | The time at which the detector was created.+describeAnomalyDetectorResponse_creationTime :: Lens.Lens' DescribeAnomalyDetectorResponse (Prelude.Maybe Prelude.UTCTime)+describeAnomalyDetectorResponse_creationTime = Lens.lens (\DescribeAnomalyDetectorResponse' {creationTime} -> creationTime) (\s@DescribeAnomalyDetectorResponse' {} a -> s {creationTime = a} :: DescribeAnomalyDetectorResponse) Prelude.. Lens.mapping Data._Time++-- | The reason that the detector failed.+describeAnomalyDetectorResponse_failureReason :: Lens.Lens' DescribeAnomalyDetectorResponse (Prelude.Maybe Prelude.Text)+describeAnomalyDetectorResponse_failureReason = Lens.lens (\DescribeAnomalyDetectorResponse' {failureReason} -> failureReason) (\s@DescribeAnomalyDetectorResponse' {} a -> s {failureReason = a} :: DescribeAnomalyDetectorResponse)++-- | The process that caused the detector to fail.+describeAnomalyDetectorResponse_failureType :: Lens.Lens' DescribeAnomalyDetectorResponse (Prelude.Maybe AnomalyDetectorFailureType)+describeAnomalyDetectorResponse_failureType = Lens.lens (\DescribeAnomalyDetectorResponse' {failureType} -> failureType) (\s@DescribeAnomalyDetectorResponse' {} a -> s {failureType = a} :: DescribeAnomalyDetectorResponse)++-- | The ARN of the KMS key to use to encrypt your data.+describeAnomalyDetectorResponse_kmsKeyArn :: Lens.Lens' DescribeAnomalyDetectorResponse (Prelude.Maybe Prelude.Text)+describeAnomalyDetectorResponse_kmsKeyArn = Lens.lens (\DescribeAnomalyDetectorResponse' {kmsKeyArn} -> kmsKeyArn) (\s@DescribeAnomalyDetectorResponse' {} a -> s {kmsKeyArn = a} :: DescribeAnomalyDetectorResponse)++-- | The time at which the detector was last modified.+describeAnomalyDetectorResponse_lastModificationTime :: Lens.Lens' DescribeAnomalyDetectorResponse (Prelude.Maybe Prelude.UTCTime)+describeAnomalyDetectorResponse_lastModificationTime = Lens.lens (\DescribeAnomalyDetectorResponse' {lastModificationTime} -> lastModificationTime) (\s@DescribeAnomalyDetectorResponse' {} a -> s {lastModificationTime = a} :: DescribeAnomalyDetectorResponse) Prelude.. Lens.mapping Data._Time++-- | The status of the detector.+describeAnomalyDetectorResponse_status :: Lens.Lens' DescribeAnomalyDetectorResponse (Prelude.Maybe AnomalyDetectorStatus)+describeAnomalyDetectorResponse_status = Lens.lens (\DescribeAnomalyDetectorResponse' {status} -> status) (\s@DescribeAnomalyDetectorResponse' {} a -> s {status = a} :: DescribeAnomalyDetectorResponse)++-- | The response's http status code.+describeAnomalyDetectorResponse_httpStatus :: Lens.Lens' DescribeAnomalyDetectorResponse Prelude.Int+describeAnomalyDetectorResponse_httpStatus = Lens.lens (\DescribeAnomalyDetectorResponse' {httpStatus} -> httpStatus) (\s@DescribeAnomalyDetectorResponse' {} a -> s {httpStatus = a} :: DescribeAnomalyDetectorResponse)++instance+  Prelude.NFData+    DescribeAnomalyDetectorResponse+  where+  rnf DescribeAnomalyDetectorResponse' {..} =+    Prelude.rnf anomalyDetectorArn+      `Prelude.seq` Prelude.rnf anomalyDetectorConfig+      `Prelude.seq` Prelude.rnf anomalyDetectorDescription+      `Prelude.seq` Prelude.rnf anomalyDetectorName+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf failureType+      `Prelude.seq` Prelude.rnf kmsKeyArn+      `Prelude.seq` Prelude.rnf lastModificationTime+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/DescribeMetricSet.hs view
@@ -0,0 +1,337 @@+{-# 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.LookoutMetrics.DescribeMetricSet+-- 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 dataset.+--+-- Amazon Lookout for Metrics API actions are eventually consistent. If you+-- do a read operation on a resource immediately after creating or+-- modifying it, use retries to allow time for the write operation to+-- complete.+module Amazonka.LookoutMetrics.DescribeMetricSet+  ( -- * Creating a Request+    DescribeMetricSet (..),+    newDescribeMetricSet,++    -- * Request Lenses+    describeMetricSet_metricSetArn,++    -- * Destructuring the Response+    DescribeMetricSetResponse (..),+    newDescribeMetricSetResponse,++    -- * Response Lenses+    describeMetricSetResponse_anomalyDetectorArn,+    describeMetricSetResponse_creationTime,+    describeMetricSetResponse_dimensionFilterList,+    describeMetricSetResponse_dimensionList,+    describeMetricSetResponse_lastModificationTime,+    describeMetricSetResponse_metricList,+    describeMetricSetResponse_metricSetArn,+    describeMetricSetResponse_metricSetDescription,+    describeMetricSetResponse_metricSetFrequency,+    describeMetricSetResponse_metricSetName,+    describeMetricSetResponse_metricSource,+    describeMetricSetResponse_offset,+    describeMetricSetResponse_timestampColumn,+    describeMetricSetResponse_timezone,+    describeMetricSetResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeMetricSet' smart constructor.+data DescribeMetricSet = DescribeMetricSet'+  { -- | The ARN of the dataset.+    metricSetArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeMetricSet' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metricSetArn', 'describeMetricSet_metricSetArn' - The ARN of the dataset.+newDescribeMetricSet ::+  -- | 'metricSetArn'+  Prelude.Text ->+  DescribeMetricSet+newDescribeMetricSet pMetricSetArn_ =+  DescribeMetricSet' {metricSetArn = pMetricSetArn_}++-- | The ARN of the dataset.+describeMetricSet_metricSetArn :: Lens.Lens' DescribeMetricSet Prelude.Text+describeMetricSet_metricSetArn = Lens.lens (\DescribeMetricSet' {metricSetArn} -> metricSetArn) (\s@DescribeMetricSet' {} a -> s {metricSetArn = a} :: DescribeMetricSet)++instance Core.AWSRequest DescribeMetricSet where+  type+    AWSResponse DescribeMetricSet =+      DescribeMetricSetResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeMetricSetResponse'+            Prelude.<$> (x Data..?> "AnomalyDetectorArn")+            Prelude.<*> (x Data..?> "CreationTime")+            Prelude.<*> ( x+                            Data..?> "DimensionFilterList"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "DimensionList")+            Prelude.<*> (x Data..?> "LastModificationTime")+            Prelude.<*> (x Data..?> "MetricList")+            Prelude.<*> (x Data..?> "MetricSetArn")+            Prelude.<*> (x Data..?> "MetricSetDescription")+            Prelude.<*> (x Data..?> "MetricSetFrequency")+            Prelude.<*> (x Data..?> "MetricSetName")+            Prelude.<*> (x Data..?> "MetricSource")+            Prelude.<*> (x Data..?> "Offset")+            Prelude.<*> (x Data..?> "TimestampColumn")+            Prelude.<*> (x Data..?> "Timezone")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeMetricSet where+  hashWithSalt _salt DescribeMetricSet' {..} =+    _salt `Prelude.hashWithSalt` metricSetArn++instance Prelude.NFData DescribeMetricSet where+  rnf DescribeMetricSet' {..} = Prelude.rnf metricSetArn++instance Data.ToHeaders DescribeMetricSet where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeMetricSet where+  toJSON DescribeMetricSet' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("MetricSetArn" Data..= metricSetArn)]+      )++instance Data.ToPath DescribeMetricSet where+  toPath = Prelude.const "/DescribeMetricSet"++instance Data.ToQuery DescribeMetricSet where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeMetricSetResponse' smart constructor.+data DescribeMetricSetResponse = DescribeMetricSetResponse'+  { -- | The ARN of the detector that contains the dataset.+    anomalyDetectorArn :: Prelude.Maybe Prelude.Text,+    -- | The time at which the dataset was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The dimensions and their values that were used to filter the dataset.+    dimensionFilterList :: Prelude.Maybe [MetricSetDimensionFilter],+    -- | A list of the dimensions chosen for analysis.+    dimensionList :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The time at which the dataset was last modified.+    lastModificationTime :: Prelude.Maybe Data.POSIX,+    -- | A list of the metrics defined by the dataset.+    metricList :: Prelude.Maybe (Prelude.NonEmpty Metric),+    -- | The ARN of the dataset.+    metricSetArn :: Prelude.Maybe Prelude.Text,+    -- | The dataset\'s description.+    metricSetDescription :: Prelude.Maybe Prelude.Text,+    -- | The interval at which the data will be analyzed for anomalies.+    metricSetFrequency :: Prelude.Maybe Frequency,+    -- | The name of the dataset.+    metricSetName :: Prelude.Maybe Prelude.Text,+    -- | Contains information about the dataset\'s source data.+    metricSource :: Prelude.Maybe MetricSource,+    -- | After an interval ends, the amount of seconds that the detector waits+    -- before importing data. Offset is only supported for S3, Redshift, Athena+    -- and datasources.+    offset :: Prelude.Maybe Prelude.Natural,+    -- | Contains information about the column used for tracking time in your+    -- source data.+    timestampColumn :: Prelude.Maybe TimestampColumn,+    -- | The time zone in which the dataset\'s data was recorded.+    timezone :: 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 'DescribeMetricSetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyDetectorArn', 'describeMetricSetResponse_anomalyDetectorArn' - The ARN of the detector that contains the dataset.+--+-- 'creationTime', 'describeMetricSetResponse_creationTime' - The time at which the dataset was created.+--+-- 'dimensionFilterList', 'describeMetricSetResponse_dimensionFilterList' - The dimensions and their values that were used to filter the dataset.+--+-- 'dimensionList', 'describeMetricSetResponse_dimensionList' - A list of the dimensions chosen for analysis.+--+-- 'lastModificationTime', 'describeMetricSetResponse_lastModificationTime' - The time at which the dataset was last modified.+--+-- 'metricList', 'describeMetricSetResponse_metricList' - A list of the metrics defined by the dataset.+--+-- 'metricSetArn', 'describeMetricSetResponse_metricSetArn' - The ARN of the dataset.+--+-- 'metricSetDescription', 'describeMetricSetResponse_metricSetDescription' - The dataset\'s description.+--+-- 'metricSetFrequency', 'describeMetricSetResponse_metricSetFrequency' - The interval at which the data will be analyzed for anomalies.+--+-- 'metricSetName', 'describeMetricSetResponse_metricSetName' - The name of the dataset.+--+-- 'metricSource', 'describeMetricSetResponse_metricSource' - Contains information about the dataset\'s source data.+--+-- 'offset', 'describeMetricSetResponse_offset' - After an interval ends, the amount of seconds that the detector waits+-- before importing data. Offset is only supported for S3, Redshift, Athena+-- and datasources.+--+-- 'timestampColumn', 'describeMetricSetResponse_timestampColumn' - Contains information about the column used for tracking time in your+-- source data.+--+-- 'timezone', 'describeMetricSetResponse_timezone' - The time zone in which the dataset\'s data was recorded.+--+-- 'httpStatus', 'describeMetricSetResponse_httpStatus' - The response's http status code.+newDescribeMetricSetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeMetricSetResponse+newDescribeMetricSetResponse pHttpStatus_ =+  DescribeMetricSetResponse'+    { anomalyDetectorArn =+        Prelude.Nothing,+      creationTime = Prelude.Nothing,+      dimensionFilterList = Prelude.Nothing,+      dimensionList = Prelude.Nothing,+      lastModificationTime = Prelude.Nothing,+      metricList = Prelude.Nothing,+      metricSetArn = Prelude.Nothing,+      metricSetDescription = Prelude.Nothing,+      metricSetFrequency = Prelude.Nothing,+      metricSetName = Prelude.Nothing,+      metricSource = Prelude.Nothing,+      offset = Prelude.Nothing,+      timestampColumn = Prelude.Nothing,+      timezone = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the detector that contains the dataset.+describeMetricSetResponse_anomalyDetectorArn :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe Prelude.Text)+describeMetricSetResponse_anomalyDetectorArn = Lens.lens (\DescribeMetricSetResponse' {anomalyDetectorArn} -> anomalyDetectorArn) (\s@DescribeMetricSetResponse' {} a -> s {anomalyDetectorArn = a} :: DescribeMetricSetResponse)++-- | The time at which the dataset was created.+describeMetricSetResponse_creationTime :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe Prelude.UTCTime)+describeMetricSetResponse_creationTime = Lens.lens (\DescribeMetricSetResponse' {creationTime} -> creationTime) (\s@DescribeMetricSetResponse' {} a -> s {creationTime = a} :: DescribeMetricSetResponse) Prelude.. Lens.mapping Data._Time++-- | The dimensions and their values that were used to filter the dataset.+describeMetricSetResponse_dimensionFilterList :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe [MetricSetDimensionFilter])+describeMetricSetResponse_dimensionFilterList = Lens.lens (\DescribeMetricSetResponse' {dimensionFilterList} -> dimensionFilterList) (\s@DescribeMetricSetResponse' {} a -> s {dimensionFilterList = a} :: DescribeMetricSetResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list of the dimensions chosen for analysis.+describeMetricSetResponse_dimensionList :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+describeMetricSetResponse_dimensionList = Lens.lens (\DescribeMetricSetResponse' {dimensionList} -> dimensionList) (\s@DescribeMetricSetResponse' {} a -> s {dimensionList = a} :: DescribeMetricSetResponse) Prelude.. Lens.mapping Lens.coerced++-- | The time at which the dataset was last modified.+describeMetricSetResponse_lastModificationTime :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe Prelude.UTCTime)+describeMetricSetResponse_lastModificationTime = Lens.lens (\DescribeMetricSetResponse' {lastModificationTime} -> lastModificationTime) (\s@DescribeMetricSetResponse' {} a -> s {lastModificationTime = a} :: DescribeMetricSetResponse) Prelude.. Lens.mapping Data._Time++-- | A list of the metrics defined by the dataset.+describeMetricSetResponse_metricList :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe (Prelude.NonEmpty Metric))+describeMetricSetResponse_metricList = Lens.lens (\DescribeMetricSetResponse' {metricList} -> metricList) (\s@DescribeMetricSetResponse' {} a -> s {metricList = a} :: DescribeMetricSetResponse) Prelude.. Lens.mapping Lens.coerced++-- | The ARN of the dataset.+describeMetricSetResponse_metricSetArn :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe Prelude.Text)+describeMetricSetResponse_metricSetArn = Lens.lens (\DescribeMetricSetResponse' {metricSetArn} -> metricSetArn) (\s@DescribeMetricSetResponse' {} a -> s {metricSetArn = a} :: DescribeMetricSetResponse)++-- | The dataset\'s description.+describeMetricSetResponse_metricSetDescription :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe Prelude.Text)+describeMetricSetResponse_metricSetDescription = Lens.lens (\DescribeMetricSetResponse' {metricSetDescription} -> metricSetDescription) (\s@DescribeMetricSetResponse' {} a -> s {metricSetDescription = a} :: DescribeMetricSetResponse)++-- | The interval at which the data will be analyzed for anomalies.+describeMetricSetResponse_metricSetFrequency :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe Frequency)+describeMetricSetResponse_metricSetFrequency = Lens.lens (\DescribeMetricSetResponse' {metricSetFrequency} -> metricSetFrequency) (\s@DescribeMetricSetResponse' {} a -> s {metricSetFrequency = a} :: DescribeMetricSetResponse)++-- | The name of the dataset.+describeMetricSetResponse_metricSetName :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe Prelude.Text)+describeMetricSetResponse_metricSetName = Lens.lens (\DescribeMetricSetResponse' {metricSetName} -> metricSetName) (\s@DescribeMetricSetResponse' {} a -> s {metricSetName = a} :: DescribeMetricSetResponse)++-- | Contains information about the dataset\'s source data.+describeMetricSetResponse_metricSource :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe MetricSource)+describeMetricSetResponse_metricSource = Lens.lens (\DescribeMetricSetResponse' {metricSource} -> metricSource) (\s@DescribeMetricSetResponse' {} a -> s {metricSource = a} :: DescribeMetricSetResponse)++-- | After an interval ends, the amount of seconds that the detector waits+-- before importing data. Offset is only supported for S3, Redshift, Athena+-- and datasources.+describeMetricSetResponse_offset :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe Prelude.Natural)+describeMetricSetResponse_offset = Lens.lens (\DescribeMetricSetResponse' {offset} -> offset) (\s@DescribeMetricSetResponse' {} a -> s {offset = a} :: DescribeMetricSetResponse)++-- | Contains information about the column used for tracking time in your+-- source data.+describeMetricSetResponse_timestampColumn :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe TimestampColumn)+describeMetricSetResponse_timestampColumn = Lens.lens (\DescribeMetricSetResponse' {timestampColumn} -> timestampColumn) (\s@DescribeMetricSetResponse' {} a -> s {timestampColumn = a} :: DescribeMetricSetResponse)++-- | The time zone in which the dataset\'s data was recorded.+describeMetricSetResponse_timezone :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe Prelude.Text)+describeMetricSetResponse_timezone = Lens.lens (\DescribeMetricSetResponse' {timezone} -> timezone) (\s@DescribeMetricSetResponse' {} a -> s {timezone = a} :: DescribeMetricSetResponse)++-- | The response's http status code.+describeMetricSetResponse_httpStatus :: Lens.Lens' DescribeMetricSetResponse Prelude.Int+describeMetricSetResponse_httpStatus = Lens.lens (\DescribeMetricSetResponse' {httpStatus} -> httpStatus) (\s@DescribeMetricSetResponse' {} a -> s {httpStatus = a} :: DescribeMetricSetResponse)++instance Prelude.NFData DescribeMetricSetResponse where+  rnf DescribeMetricSetResponse' {..} =+    Prelude.rnf anomalyDetectorArn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf dimensionFilterList+      `Prelude.seq` Prelude.rnf dimensionList+      `Prelude.seq` Prelude.rnf lastModificationTime+      `Prelude.seq` Prelude.rnf metricList+      `Prelude.seq` Prelude.rnf metricSetArn+      `Prelude.seq` Prelude.rnf metricSetDescription+      `Prelude.seq` Prelude.rnf metricSetFrequency+      `Prelude.seq` Prelude.rnf metricSetName+      `Prelude.seq` Prelude.rnf metricSource+      `Prelude.seq` Prelude.rnf offset+      `Prelude.seq` Prelude.rnf timestampColumn+      `Prelude.seq` Prelude.rnf timezone+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/DetectMetricSetConfig.hs view
@@ -0,0 +1,192 @@+{-# 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.LookoutMetrics.DetectMetricSetConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Detects an Amazon S3 dataset\'s file format, interval, and offset.+module Amazonka.LookoutMetrics.DetectMetricSetConfig+  ( -- * Creating a Request+    DetectMetricSetConfig (..),+    newDetectMetricSetConfig,++    -- * Request Lenses+    detectMetricSetConfig_anomalyDetectorArn,+    detectMetricSetConfig_autoDetectionMetricSource,++    -- * Destructuring the Response+    DetectMetricSetConfigResponse (..),+    newDetectMetricSetConfigResponse,++    -- * Response Lenses+    detectMetricSetConfigResponse_detectedMetricSetConfig,+    detectMetricSetConfigResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDetectMetricSetConfig' smart constructor.+data DetectMetricSetConfig = DetectMetricSetConfig'+  { -- | An anomaly detector ARN.+    anomalyDetectorArn :: Prelude.Text,+    -- | A data source.+    autoDetectionMetricSource :: AutoDetectionMetricSource+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DetectMetricSetConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyDetectorArn', 'detectMetricSetConfig_anomalyDetectorArn' - An anomaly detector ARN.+--+-- 'autoDetectionMetricSource', 'detectMetricSetConfig_autoDetectionMetricSource' - A data source.+newDetectMetricSetConfig ::+  -- | 'anomalyDetectorArn'+  Prelude.Text ->+  -- | 'autoDetectionMetricSource'+  AutoDetectionMetricSource ->+  DetectMetricSetConfig+newDetectMetricSetConfig+  pAnomalyDetectorArn_+  pAutoDetectionMetricSource_ =+    DetectMetricSetConfig'+      { anomalyDetectorArn =+          pAnomalyDetectorArn_,+        autoDetectionMetricSource =+          pAutoDetectionMetricSource_+      }++-- | An anomaly detector ARN.+detectMetricSetConfig_anomalyDetectorArn :: Lens.Lens' DetectMetricSetConfig Prelude.Text+detectMetricSetConfig_anomalyDetectorArn = Lens.lens (\DetectMetricSetConfig' {anomalyDetectorArn} -> anomalyDetectorArn) (\s@DetectMetricSetConfig' {} a -> s {anomalyDetectorArn = a} :: DetectMetricSetConfig)++-- | A data source.+detectMetricSetConfig_autoDetectionMetricSource :: Lens.Lens' DetectMetricSetConfig AutoDetectionMetricSource+detectMetricSetConfig_autoDetectionMetricSource = Lens.lens (\DetectMetricSetConfig' {autoDetectionMetricSource} -> autoDetectionMetricSource) (\s@DetectMetricSetConfig' {} a -> s {autoDetectionMetricSource = a} :: DetectMetricSetConfig)++instance Core.AWSRequest DetectMetricSetConfig where+  type+    AWSResponse DetectMetricSetConfig =+      DetectMetricSetConfigResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DetectMetricSetConfigResponse'+            Prelude.<$> (x Data..?> "DetectedMetricSetConfig")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DetectMetricSetConfig where+  hashWithSalt _salt DetectMetricSetConfig' {..} =+    _salt+      `Prelude.hashWithSalt` anomalyDetectorArn+      `Prelude.hashWithSalt` autoDetectionMetricSource++instance Prelude.NFData DetectMetricSetConfig where+  rnf DetectMetricSetConfig' {..} =+    Prelude.rnf anomalyDetectorArn+      `Prelude.seq` Prelude.rnf autoDetectionMetricSource++instance Data.ToHeaders DetectMetricSetConfig where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DetectMetricSetConfig where+  toJSON DetectMetricSetConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("AnomalyDetectorArn" Data..= anomalyDetectorArn),+            Prelude.Just+              ( "AutoDetectionMetricSource"+                  Data..= autoDetectionMetricSource+              )+          ]+      )++instance Data.ToPath DetectMetricSetConfig where+  toPath = Prelude.const "/DetectMetricSetConfig"++instance Data.ToQuery DetectMetricSetConfig where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDetectMetricSetConfigResponse' smart constructor.+data DetectMetricSetConfigResponse = DetectMetricSetConfigResponse'+  { -- | The inferred dataset configuration for the datasource.+    detectedMetricSetConfig :: Prelude.Maybe DetectedMetricSetConfig,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DetectMetricSetConfigResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectedMetricSetConfig', 'detectMetricSetConfigResponse_detectedMetricSetConfig' - The inferred dataset configuration for the datasource.+--+-- 'httpStatus', 'detectMetricSetConfigResponse_httpStatus' - The response's http status code.+newDetectMetricSetConfigResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DetectMetricSetConfigResponse+newDetectMetricSetConfigResponse pHttpStatus_ =+  DetectMetricSetConfigResponse'+    { detectedMetricSetConfig =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The inferred dataset configuration for the datasource.+detectMetricSetConfigResponse_detectedMetricSetConfig :: Lens.Lens' DetectMetricSetConfigResponse (Prelude.Maybe DetectedMetricSetConfig)+detectMetricSetConfigResponse_detectedMetricSetConfig = Lens.lens (\DetectMetricSetConfigResponse' {detectedMetricSetConfig} -> detectedMetricSetConfig) (\s@DetectMetricSetConfigResponse' {} a -> s {detectedMetricSetConfig = a} :: DetectMetricSetConfigResponse)++-- | The response's http status code.+detectMetricSetConfigResponse_httpStatus :: Lens.Lens' DetectMetricSetConfigResponse Prelude.Int+detectMetricSetConfigResponse_httpStatus = Lens.lens (\DetectMetricSetConfigResponse' {httpStatus} -> httpStatus) (\s@DetectMetricSetConfigResponse' {} a -> s {httpStatus = a} :: DetectMetricSetConfigResponse)++instance Prelude.NFData DetectMetricSetConfigResponse where+  rnf DetectMetricSetConfigResponse' {..} =+    Prelude.rnf detectedMetricSetConfig+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/GetAnomalyGroup.hs view
@@ -0,0 +1,188 @@+{-# 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.LookoutMetrics.GetAnomalyGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns details about a group of anomalous metrics.+module Amazonka.LookoutMetrics.GetAnomalyGroup+  ( -- * Creating a Request+    GetAnomalyGroup (..),+    newGetAnomalyGroup,++    -- * Request Lenses+    getAnomalyGroup_anomalyGroupId,+    getAnomalyGroup_anomalyDetectorArn,++    -- * Destructuring the Response+    GetAnomalyGroupResponse (..),+    newGetAnomalyGroupResponse,++    -- * Response Lenses+    getAnomalyGroupResponse_anomalyGroup,+    getAnomalyGroupResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetAnomalyGroup' smart constructor.+data GetAnomalyGroup = GetAnomalyGroup'+  { -- | The ID of the anomaly group.+    anomalyGroupId :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the anomaly detector.+    anomalyDetectorArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAnomalyGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyGroupId', 'getAnomalyGroup_anomalyGroupId' - The ID of the anomaly group.+--+-- 'anomalyDetectorArn', 'getAnomalyGroup_anomalyDetectorArn' - The Amazon Resource Name (ARN) of the anomaly detector.+newGetAnomalyGroup ::+  -- | 'anomalyGroupId'+  Prelude.Text ->+  -- | 'anomalyDetectorArn'+  Prelude.Text ->+  GetAnomalyGroup+newGetAnomalyGroup+  pAnomalyGroupId_+  pAnomalyDetectorArn_ =+    GetAnomalyGroup'+      { anomalyGroupId = pAnomalyGroupId_,+        anomalyDetectorArn = pAnomalyDetectorArn_+      }++-- | The ID of the anomaly group.+getAnomalyGroup_anomalyGroupId :: Lens.Lens' GetAnomalyGroup Prelude.Text+getAnomalyGroup_anomalyGroupId = Lens.lens (\GetAnomalyGroup' {anomalyGroupId} -> anomalyGroupId) (\s@GetAnomalyGroup' {} a -> s {anomalyGroupId = a} :: GetAnomalyGroup)++-- | The Amazon Resource Name (ARN) of the anomaly detector.+getAnomalyGroup_anomalyDetectorArn :: Lens.Lens' GetAnomalyGroup Prelude.Text+getAnomalyGroup_anomalyDetectorArn = Lens.lens (\GetAnomalyGroup' {anomalyDetectorArn} -> anomalyDetectorArn) (\s@GetAnomalyGroup' {} a -> s {anomalyDetectorArn = a} :: GetAnomalyGroup)++instance Core.AWSRequest GetAnomalyGroup where+  type+    AWSResponse GetAnomalyGroup =+      GetAnomalyGroupResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetAnomalyGroupResponse'+            Prelude.<$> (x Data..?> "AnomalyGroup")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetAnomalyGroup where+  hashWithSalt _salt GetAnomalyGroup' {..} =+    _salt+      `Prelude.hashWithSalt` anomalyGroupId+      `Prelude.hashWithSalt` anomalyDetectorArn++instance Prelude.NFData GetAnomalyGroup where+  rnf GetAnomalyGroup' {..} =+    Prelude.rnf anomalyGroupId+      `Prelude.seq` Prelude.rnf anomalyDetectorArn++instance Data.ToHeaders GetAnomalyGroup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetAnomalyGroup where+  toJSON GetAnomalyGroup' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("AnomalyGroupId" Data..= anomalyGroupId),+            Prelude.Just+              ("AnomalyDetectorArn" Data..= anomalyDetectorArn)+          ]+      )++instance Data.ToPath GetAnomalyGroup where+  toPath = Prelude.const "/GetAnomalyGroup"++instance Data.ToQuery GetAnomalyGroup where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetAnomalyGroupResponse' smart constructor.+data GetAnomalyGroupResponse = GetAnomalyGroupResponse'+  { -- | Details about the anomaly group.+    anomalyGroup :: Prelude.Maybe AnomalyGroup,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAnomalyGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyGroup', 'getAnomalyGroupResponse_anomalyGroup' - Details about the anomaly group.+--+-- 'httpStatus', 'getAnomalyGroupResponse_httpStatus' - The response's http status code.+newGetAnomalyGroupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetAnomalyGroupResponse+newGetAnomalyGroupResponse pHttpStatus_ =+  GetAnomalyGroupResponse'+    { anomalyGroup =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Details about the anomaly group.+getAnomalyGroupResponse_anomalyGroup :: Lens.Lens' GetAnomalyGroupResponse (Prelude.Maybe AnomalyGroup)+getAnomalyGroupResponse_anomalyGroup = Lens.lens (\GetAnomalyGroupResponse' {anomalyGroup} -> anomalyGroup) (\s@GetAnomalyGroupResponse' {} a -> s {anomalyGroup = a} :: GetAnomalyGroupResponse)++-- | The response's http status code.+getAnomalyGroupResponse_httpStatus :: Lens.Lens' GetAnomalyGroupResponse Prelude.Int+getAnomalyGroupResponse_httpStatus = Lens.lens (\GetAnomalyGroupResponse' {httpStatus} -> httpStatus) (\s@GetAnomalyGroupResponse' {} a -> s {httpStatus = a} :: GetAnomalyGroupResponse)++instance Prelude.NFData GetAnomalyGroupResponse where+  rnf GetAnomalyGroupResponse' {..} =+    Prelude.rnf anomalyGroup+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/GetDataQualityMetrics.hs view
@@ -0,0 +1,193 @@+{-# 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.LookoutMetrics.GetDataQualityMetrics+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns details about the requested data quality metrics.+module Amazonka.LookoutMetrics.GetDataQualityMetrics+  ( -- * Creating a Request+    GetDataQualityMetrics (..),+    newGetDataQualityMetrics,++    -- * Request Lenses+    getDataQualityMetrics_metricSetArn,+    getDataQualityMetrics_anomalyDetectorArn,++    -- * Destructuring the Response+    GetDataQualityMetricsResponse (..),+    newGetDataQualityMetricsResponse,++    -- * Response Lenses+    getDataQualityMetricsResponse_anomalyDetectorDataQualityMetricList,+    getDataQualityMetricsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetDataQualityMetrics' smart constructor.+data GetDataQualityMetrics = GetDataQualityMetrics'+  { -- | The Amazon Resource Name (ARN) of a specific data quality metric set.+    metricSetArn :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the anomaly detector that you want to+    -- investigate.+    anomalyDetectorArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDataQualityMetrics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metricSetArn', 'getDataQualityMetrics_metricSetArn' - The Amazon Resource Name (ARN) of a specific data quality metric set.+--+-- 'anomalyDetectorArn', 'getDataQualityMetrics_anomalyDetectorArn' - The Amazon Resource Name (ARN) of the anomaly detector that you want to+-- investigate.+newGetDataQualityMetrics ::+  -- | 'anomalyDetectorArn'+  Prelude.Text ->+  GetDataQualityMetrics+newGetDataQualityMetrics pAnomalyDetectorArn_ =+  GetDataQualityMetrics'+    { metricSetArn =+        Prelude.Nothing,+      anomalyDetectorArn = pAnomalyDetectorArn_+    }++-- | The Amazon Resource Name (ARN) of a specific data quality metric set.+getDataQualityMetrics_metricSetArn :: Lens.Lens' GetDataQualityMetrics (Prelude.Maybe Prelude.Text)+getDataQualityMetrics_metricSetArn = Lens.lens (\GetDataQualityMetrics' {metricSetArn} -> metricSetArn) (\s@GetDataQualityMetrics' {} a -> s {metricSetArn = a} :: GetDataQualityMetrics)++-- | The Amazon Resource Name (ARN) of the anomaly detector that you want to+-- investigate.+getDataQualityMetrics_anomalyDetectorArn :: Lens.Lens' GetDataQualityMetrics Prelude.Text+getDataQualityMetrics_anomalyDetectorArn = Lens.lens (\GetDataQualityMetrics' {anomalyDetectorArn} -> anomalyDetectorArn) (\s@GetDataQualityMetrics' {} a -> s {anomalyDetectorArn = a} :: GetDataQualityMetrics)++instance Core.AWSRequest GetDataQualityMetrics where+  type+    AWSResponse GetDataQualityMetrics =+      GetDataQualityMetricsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetDataQualityMetricsResponse'+            Prelude.<$> ( x+                            Data..?> "AnomalyDetectorDataQualityMetricList"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetDataQualityMetrics where+  hashWithSalt _salt GetDataQualityMetrics' {..} =+    _salt+      `Prelude.hashWithSalt` metricSetArn+      `Prelude.hashWithSalt` anomalyDetectorArn++instance Prelude.NFData GetDataQualityMetrics where+  rnf GetDataQualityMetrics' {..} =+    Prelude.rnf metricSetArn+      `Prelude.seq` Prelude.rnf anomalyDetectorArn++instance Data.ToHeaders GetDataQualityMetrics where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetDataQualityMetrics where+  toJSON GetDataQualityMetrics' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MetricSetArn" Data..=) Prelude.<$> metricSetArn,+            Prelude.Just+              ("AnomalyDetectorArn" Data..= anomalyDetectorArn)+          ]+      )++instance Data.ToPath GetDataQualityMetrics where+  toPath = Prelude.const "/GetDataQualityMetrics"++instance Data.ToQuery GetDataQualityMetrics where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetDataQualityMetricsResponse' smart constructor.+data GetDataQualityMetricsResponse = GetDataQualityMetricsResponse'+  { -- | A list of the data quality metrics for the @AnomalyDetectorArn@ that you+    -- requested.+    anomalyDetectorDataQualityMetricList :: Prelude.Maybe [AnomalyDetectorDataQualityMetric],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDataQualityMetricsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyDetectorDataQualityMetricList', 'getDataQualityMetricsResponse_anomalyDetectorDataQualityMetricList' - A list of the data quality metrics for the @AnomalyDetectorArn@ that you+-- requested.+--+-- 'httpStatus', 'getDataQualityMetricsResponse_httpStatus' - The response's http status code.+newGetDataQualityMetricsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetDataQualityMetricsResponse+newGetDataQualityMetricsResponse pHttpStatus_ =+  GetDataQualityMetricsResponse'+    { anomalyDetectorDataQualityMetricList =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of the data quality metrics for the @AnomalyDetectorArn@ that you+-- requested.+getDataQualityMetricsResponse_anomalyDetectorDataQualityMetricList :: Lens.Lens' GetDataQualityMetricsResponse (Prelude.Maybe [AnomalyDetectorDataQualityMetric])+getDataQualityMetricsResponse_anomalyDetectorDataQualityMetricList = Lens.lens (\GetDataQualityMetricsResponse' {anomalyDetectorDataQualityMetricList} -> anomalyDetectorDataQualityMetricList) (\s@GetDataQualityMetricsResponse' {} a -> s {anomalyDetectorDataQualityMetricList = a} :: GetDataQualityMetricsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getDataQualityMetricsResponse_httpStatus :: Lens.Lens' GetDataQualityMetricsResponse Prelude.Int+getDataQualityMetricsResponse_httpStatus = Lens.lens (\GetDataQualityMetricsResponse' {httpStatus} -> httpStatus) (\s@GetDataQualityMetricsResponse' {} a -> s {httpStatus = a} :: GetDataQualityMetricsResponse)++instance Prelude.NFData GetDataQualityMetricsResponse where+  rnf GetDataQualityMetricsResponse' {..} =+    Prelude.rnf anomalyDetectorDataQualityMetricList+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/GetFeedback.hs view
@@ -0,0 +1,233 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.GetFeedback+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Get feedback for an anomaly group.+module Amazonka.LookoutMetrics.GetFeedback+  ( -- * Creating a Request+    GetFeedback (..),+    newGetFeedback,++    -- * Request Lenses+    getFeedback_maxResults,+    getFeedback_nextToken,+    getFeedback_anomalyDetectorArn,+    getFeedback_anomalyGroupTimeSeriesFeedback,++    -- * Destructuring the Response+    GetFeedbackResponse (..),+    newGetFeedbackResponse,++    -- * Response Lenses+    getFeedbackResponse_anomalyGroupTimeSeriesFeedback,+    getFeedbackResponse_nextToken,+    getFeedbackResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetFeedback' smart constructor.+data GetFeedback = GetFeedback'+  { -- | The maximum number of results to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Specify the pagination token that\'s returned by a previous request to+    -- retrieve the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the anomaly detector.+    anomalyDetectorArn :: Prelude.Text,+    -- | The anomalous metric and group ID.+    anomalyGroupTimeSeriesFeedback :: AnomalyGroupTimeSeries+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetFeedback' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getFeedback_maxResults' - The maximum number of results to return.+--+-- 'nextToken', 'getFeedback_nextToken' - Specify the pagination token that\'s returned by a previous request to+-- retrieve the next page of results.+--+-- 'anomalyDetectorArn', 'getFeedback_anomalyDetectorArn' - The Amazon Resource Name (ARN) of the anomaly detector.+--+-- 'anomalyGroupTimeSeriesFeedback', 'getFeedback_anomalyGroupTimeSeriesFeedback' - The anomalous metric and group ID.+newGetFeedback ::+  -- | 'anomalyDetectorArn'+  Prelude.Text ->+  -- | 'anomalyGroupTimeSeriesFeedback'+  AnomalyGroupTimeSeries ->+  GetFeedback+newGetFeedback+  pAnomalyDetectorArn_+  pAnomalyGroupTimeSeriesFeedback_ =+    GetFeedback'+      { maxResults = Prelude.Nothing,+        nextToken = Prelude.Nothing,+        anomalyDetectorArn = pAnomalyDetectorArn_,+        anomalyGroupTimeSeriesFeedback =+          pAnomalyGroupTimeSeriesFeedback_+      }++-- | The maximum number of results to return.+getFeedback_maxResults :: Lens.Lens' GetFeedback (Prelude.Maybe Prelude.Natural)+getFeedback_maxResults = Lens.lens (\GetFeedback' {maxResults} -> maxResults) (\s@GetFeedback' {} a -> s {maxResults = a} :: GetFeedback)++-- | Specify the pagination token that\'s returned by a previous request to+-- retrieve the next page of results.+getFeedback_nextToken :: Lens.Lens' GetFeedback (Prelude.Maybe Prelude.Text)+getFeedback_nextToken = Lens.lens (\GetFeedback' {nextToken} -> nextToken) (\s@GetFeedback' {} a -> s {nextToken = a} :: GetFeedback)++-- | The Amazon Resource Name (ARN) of the anomaly detector.+getFeedback_anomalyDetectorArn :: Lens.Lens' GetFeedback Prelude.Text+getFeedback_anomalyDetectorArn = Lens.lens (\GetFeedback' {anomalyDetectorArn} -> anomalyDetectorArn) (\s@GetFeedback' {} a -> s {anomalyDetectorArn = a} :: GetFeedback)++-- | The anomalous metric and group ID.+getFeedback_anomalyGroupTimeSeriesFeedback :: Lens.Lens' GetFeedback AnomalyGroupTimeSeries+getFeedback_anomalyGroupTimeSeriesFeedback = Lens.lens (\GetFeedback' {anomalyGroupTimeSeriesFeedback} -> anomalyGroupTimeSeriesFeedback) (\s@GetFeedback' {} a -> s {anomalyGroupTimeSeriesFeedback = a} :: GetFeedback)++instance Core.AWSRequest GetFeedback where+  type AWSResponse GetFeedback = GetFeedbackResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetFeedbackResponse'+            Prelude.<$> ( x+                            Data..?> "AnomalyGroupTimeSeriesFeedback"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetFeedback where+  hashWithSalt _salt GetFeedback' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` anomalyDetectorArn+      `Prelude.hashWithSalt` anomalyGroupTimeSeriesFeedback++instance Prelude.NFData GetFeedback where+  rnf GetFeedback' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf anomalyDetectorArn+      `Prelude.seq` Prelude.rnf anomalyGroupTimeSeriesFeedback++instance Data.ToHeaders GetFeedback where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetFeedback where+  toJSON GetFeedback' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just+              ("AnomalyDetectorArn" Data..= anomalyDetectorArn),+            Prelude.Just+              ( "AnomalyGroupTimeSeriesFeedback"+                  Data..= anomalyGroupTimeSeriesFeedback+              )+          ]+      )++instance Data.ToPath GetFeedback where+  toPath = Prelude.const "/GetFeedback"++instance Data.ToQuery GetFeedback where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetFeedbackResponse' smart constructor.+data GetFeedbackResponse = GetFeedbackResponse'+  { -- | Feedback for an anomalous metric.+    anomalyGroupTimeSeriesFeedback :: Prelude.Maybe [TimeSeriesFeedback],+    -- | The pagination token that\'s included if more results are available.+    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 'GetFeedbackResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyGroupTimeSeriesFeedback', 'getFeedbackResponse_anomalyGroupTimeSeriesFeedback' - Feedback for an anomalous metric.+--+-- 'nextToken', 'getFeedbackResponse_nextToken' - The pagination token that\'s included if more results are available.+--+-- 'httpStatus', 'getFeedbackResponse_httpStatus' - The response's http status code.+newGetFeedbackResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetFeedbackResponse+newGetFeedbackResponse pHttpStatus_ =+  GetFeedbackResponse'+    { anomalyGroupTimeSeriesFeedback =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Feedback for an anomalous metric.+getFeedbackResponse_anomalyGroupTimeSeriesFeedback :: Lens.Lens' GetFeedbackResponse (Prelude.Maybe [TimeSeriesFeedback])+getFeedbackResponse_anomalyGroupTimeSeriesFeedback = Lens.lens (\GetFeedbackResponse' {anomalyGroupTimeSeriesFeedback} -> anomalyGroupTimeSeriesFeedback) (\s@GetFeedbackResponse' {} a -> s {anomalyGroupTimeSeriesFeedback = a} :: GetFeedbackResponse) Prelude.. Lens.mapping Lens.coerced++-- | The pagination token that\'s included if more results are available.+getFeedbackResponse_nextToken :: Lens.Lens' GetFeedbackResponse (Prelude.Maybe Prelude.Text)+getFeedbackResponse_nextToken = Lens.lens (\GetFeedbackResponse' {nextToken} -> nextToken) (\s@GetFeedbackResponse' {} a -> s {nextToken = a} :: GetFeedbackResponse)++-- | The response's http status code.+getFeedbackResponse_httpStatus :: Lens.Lens' GetFeedbackResponse Prelude.Int+getFeedbackResponse_httpStatus = Lens.lens (\GetFeedbackResponse' {httpStatus} -> httpStatus) (\s@GetFeedbackResponse' {} a -> s {httpStatus = a} :: GetFeedbackResponse)++instance Prelude.NFData GetFeedbackResponse where+  rnf GetFeedbackResponse' {..} =+    Prelude.rnf anomalyGroupTimeSeriesFeedback+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/GetSampleData.hs view
@@ -0,0 +1,176 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.GetSampleData+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a selection of sample records from an Amazon S3 datasource.+module Amazonka.LookoutMetrics.GetSampleData+  ( -- * Creating a Request+    GetSampleData (..),+    newGetSampleData,++    -- * Request Lenses+    getSampleData_s3SourceConfig,++    -- * Destructuring the Response+    GetSampleDataResponse (..),+    newGetSampleDataResponse,++    -- * Response Lenses+    getSampleDataResponse_headerValues,+    getSampleDataResponse_sampleRows,+    getSampleDataResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetSampleData' smart constructor.+data GetSampleData = GetSampleData'+  { -- | A datasource bucket in Amazon S3.+    s3SourceConfig :: Prelude.Maybe SampleDataS3SourceConfig+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSampleData' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3SourceConfig', 'getSampleData_s3SourceConfig' - A datasource bucket in Amazon S3.+newGetSampleData ::+  GetSampleData+newGetSampleData =+  GetSampleData' {s3SourceConfig = Prelude.Nothing}++-- | A datasource bucket in Amazon S3.+getSampleData_s3SourceConfig :: Lens.Lens' GetSampleData (Prelude.Maybe SampleDataS3SourceConfig)+getSampleData_s3SourceConfig = Lens.lens (\GetSampleData' {s3SourceConfig} -> s3SourceConfig) (\s@GetSampleData' {} a -> s {s3SourceConfig = a} :: GetSampleData)++instance Core.AWSRequest GetSampleData where+  type+    AWSResponse GetSampleData =+      GetSampleDataResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetSampleDataResponse'+            Prelude.<$> (x Data..?> "HeaderValues" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "SampleRows" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetSampleData where+  hashWithSalt _salt GetSampleData' {..} =+    _salt `Prelude.hashWithSalt` s3SourceConfig++instance Prelude.NFData GetSampleData where+  rnf GetSampleData' {..} = Prelude.rnf s3SourceConfig++instance Data.ToHeaders GetSampleData where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetSampleData where+  toJSON GetSampleData' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("S3SourceConfig" Data..=)+              Prelude.<$> s3SourceConfig+          ]+      )++instance Data.ToPath GetSampleData where+  toPath = Prelude.const "/GetSampleData"++instance Data.ToQuery GetSampleData where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetSampleDataResponse' smart constructor.+data GetSampleDataResponse = GetSampleDataResponse'+  { -- | A list of header labels for the records.+    headerValues :: Prelude.Maybe [Prelude.Text],+    -- | A list of records.+    sampleRows :: 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 'GetSampleDataResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'headerValues', 'getSampleDataResponse_headerValues' - A list of header labels for the records.+--+-- 'sampleRows', 'getSampleDataResponse_sampleRows' - A list of records.+--+-- 'httpStatus', 'getSampleDataResponse_httpStatus' - The response's http status code.+newGetSampleDataResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetSampleDataResponse+newGetSampleDataResponse pHttpStatus_ =+  GetSampleDataResponse'+    { headerValues =+        Prelude.Nothing,+      sampleRows = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of header labels for the records.+getSampleDataResponse_headerValues :: Lens.Lens' GetSampleDataResponse (Prelude.Maybe [Prelude.Text])+getSampleDataResponse_headerValues = Lens.lens (\GetSampleDataResponse' {headerValues} -> headerValues) (\s@GetSampleDataResponse' {} a -> s {headerValues = a} :: GetSampleDataResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list of records.+getSampleDataResponse_sampleRows :: Lens.Lens' GetSampleDataResponse (Prelude.Maybe [[Prelude.Text]])+getSampleDataResponse_sampleRows = Lens.lens (\GetSampleDataResponse' {sampleRows} -> sampleRows) (\s@GetSampleDataResponse' {} a -> s {sampleRows = a} :: GetSampleDataResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getSampleDataResponse_httpStatus :: Lens.Lens' GetSampleDataResponse Prelude.Int+getSampleDataResponse_httpStatus = Lens.lens (\GetSampleDataResponse' {httpStatus} -> httpStatus) (\s@GetSampleDataResponse' {} a -> s {httpStatus = a} :: GetSampleDataResponse)++instance Prelude.NFData GetSampleDataResponse where+  rnf GetSampleDataResponse' {..} =+    Prelude.rnf headerValues+      `Prelude.seq` Prelude.rnf sampleRows+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/Lens.hs view
@@ -0,0 +1,647 @@+{-# 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.LookoutMetrics.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.LookoutMetrics.Lens+  ( -- * Operations++    -- ** ActivateAnomalyDetector+    activateAnomalyDetector_anomalyDetectorArn,+    activateAnomalyDetectorResponse_httpStatus,++    -- ** BackTestAnomalyDetector+    backTestAnomalyDetector_anomalyDetectorArn,+    backTestAnomalyDetectorResponse_httpStatus,++    -- ** CreateAlert+    createAlert_alertDescription,+    createAlert_alertFilters,+    createAlert_alertSensitivityThreshold,+    createAlert_tags,+    createAlert_alertName,+    createAlert_anomalyDetectorArn,+    createAlert_action,+    createAlertResponse_alertArn,+    createAlertResponse_httpStatus,++    -- ** CreateAnomalyDetector+    createAnomalyDetector_anomalyDetectorDescription,+    createAnomalyDetector_kmsKeyArn,+    createAnomalyDetector_tags,+    createAnomalyDetector_anomalyDetectorName,+    createAnomalyDetector_anomalyDetectorConfig,+    createAnomalyDetectorResponse_anomalyDetectorArn,+    createAnomalyDetectorResponse_httpStatus,++    -- ** CreateMetricSet+    createMetricSet_dimensionFilterList,+    createMetricSet_dimensionList,+    createMetricSet_metricSetDescription,+    createMetricSet_metricSetFrequency,+    createMetricSet_offset,+    createMetricSet_tags,+    createMetricSet_timestampColumn,+    createMetricSet_timezone,+    createMetricSet_anomalyDetectorArn,+    createMetricSet_metricSetName,+    createMetricSet_metricList,+    createMetricSet_metricSource,+    createMetricSetResponse_metricSetArn,+    createMetricSetResponse_httpStatus,++    -- ** DeactivateAnomalyDetector+    deactivateAnomalyDetector_anomalyDetectorArn,+    deactivateAnomalyDetectorResponse_httpStatus,++    -- ** DeleteAlert+    deleteAlert_alertArn,+    deleteAlertResponse_httpStatus,++    -- ** DeleteAnomalyDetector+    deleteAnomalyDetector_anomalyDetectorArn,+    deleteAnomalyDetectorResponse_httpStatus,++    -- ** DescribeAlert+    describeAlert_alertArn,+    describeAlertResponse_alert,+    describeAlertResponse_httpStatus,++    -- ** DescribeAnomalyDetectionExecutions+    describeAnomalyDetectionExecutions_maxResults,+    describeAnomalyDetectionExecutions_nextToken,+    describeAnomalyDetectionExecutions_timestamp,+    describeAnomalyDetectionExecutions_anomalyDetectorArn,+    describeAnomalyDetectionExecutionsResponse_executionList,+    describeAnomalyDetectionExecutionsResponse_nextToken,+    describeAnomalyDetectionExecutionsResponse_httpStatus,++    -- ** DescribeAnomalyDetector+    describeAnomalyDetector_anomalyDetectorArn,+    describeAnomalyDetectorResponse_anomalyDetectorArn,+    describeAnomalyDetectorResponse_anomalyDetectorConfig,+    describeAnomalyDetectorResponse_anomalyDetectorDescription,+    describeAnomalyDetectorResponse_anomalyDetectorName,+    describeAnomalyDetectorResponse_creationTime,+    describeAnomalyDetectorResponse_failureReason,+    describeAnomalyDetectorResponse_failureType,+    describeAnomalyDetectorResponse_kmsKeyArn,+    describeAnomalyDetectorResponse_lastModificationTime,+    describeAnomalyDetectorResponse_status,+    describeAnomalyDetectorResponse_httpStatus,++    -- ** DescribeMetricSet+    describeMetricSet_metricSetArn,+    describeMetricSetResponse_anomalyDetectorArn,+    describeMetricSetResponse_creationTime,+    describeMetricSetResponse_dimensionFilterList,+    describeMetricSetResponse_dimensionList,+    describeMetricSetResponse_lastModificationTime,+    describeMetricSetResponse_metricList,+    describeMetricSetResponse_metricSetArn,+    describeMetricSetResponse_metricSetDescription,+    describeMetricSetResponse_metricSetFrequency,+    describeMetricSetResponse_metricSetName,+    describeMetricSetResponse_metricSource,+    describeMetricSetResponse_offset,+    describeMetricSetResponse_timestampColumn,+    describeMetricSetResponse_timezone,+    describeMetricSetResponse_httpStatus,++    -- ** DetectMetricSetConfig+    detectMetricSetConfig_anomalyDetectorArn,+    detectMetricSetConfig_autoDetectionMetricSource,+    detectMetricSetConfigResponse_detectedMetricSetConfig,+    detectMetricSetConfigResponse_httpStatus,++    -- ** GetAnomalyGroup+    getAnomalyGroup_anomalyGroupId,+    getAnomalyGroup_anomalyDetectorArn,+    getAnomalyGroupResponse_anomalyGroup,+    getAnomalyGroupResponse_httpStatus,++    -- ** GetDataQualityMetrics+    getDataQualityMetrics_metricSetArn,+    getDataQualityMetrics_anomalyDetectorArn,+    getDataQualityMetricsResponse_anomalyDetectorDataQualityMetricList,+    getDataQualityMetricsResponse_httpStatus,++    -- ** GetFeedback+    getFeedback_maxResults,+    getFeedback_nextToken,+    getFeedback_anomalyDetectorArn,+    getFeedback_anomalyGroupTimeSeriesFeedback,+    getFeedbackResponse_anomalyGroupTimeSeriesFeedback,+    getFeedbackResponse_nextToken,+    getFeedbackResponse_httpStatus,++    -- ** GetSampleData+    getSampleData_s3SourceConfig,+    getSampleDataResponse_headerValues,+    getSampleDataResponse_sampleRows,+    getSampleDataResponse_httpStatus,++    -- ** ListAlerts+    listAlerts_anomalyDetectorArn,+    listAlerts_maxResults,+    listAlerts_nextToken,+    listAlertsResponse_alertSummaryList,+    listAlertsResponse_nextToken,+    listAlertsResponse_httpStatus,++    -- ** ListAnomalyDetectors+    listAnomalyDetectors_maxResults,+    listAnomalyDetectors_nextToken,+    listAnomalyDetectorsResponse_anomalyDetectorSummaryList,+    listAnomalyDetectorsResponse_nextToken,+    listAnomalyDetectorsResponse_httpStatus,++    -- ** ListAnomalyGroupRelatedMetrics+    listAnomalyGroupRelatedMetrics_maxResults,+    listAnomalyGroupRelatedMetrics_nextToken,+    listAnomalyGroupRelatedMetrics_relationshipTypeFilter,+    listAnomalyGroupRelatedMetrics_anomalyDetectorArn,+    listAnomalyGroupRelatedMetrics_anomalyGroupId,+    listAnomalyGroupRelatedMetricsResponse_interMetricImpactList,+    listAnomalyGroupRelatedMetricsResponse_nextToken,+    listAnomalyGroupRelatedMetricsResponse_httpStatus,++    -- ** ListAnomalyGroupSummaries+    listAnomalyGroupSummaries_maxResults,+    listAnomalyGroupSummaries_nextToken,+    listAnomalyGroupSummaries_anomalyDetectorArn,+    listAnomalyGroupSummaries_sensitivityThreshold,+    listAnomalyGroupSummariesResponse_anomalyGroupStatistics,+    listAnomalyGroupSummariesResponse_anomalyGroupSummaryList,+    listAnomalyGroupSummariesResponse_nextToken,+    listAnomalyGroupSummariesResponse_httpStatus,++    -- ** ListAnomalyGroupTimeSeries+    listAnomalyGroupTimeSeries_maxResults,+    listAnomalyGroupTimeSeries_nextToken,+    listAnomalyGroupTimeSeries_anomalyDetectorArn,+    listAnomalyGroupTimeSeries_anomalyGroupId,+    listAnomalyGroupTimeSeries_metricName,+    listAnomalyGroupTimeSeriesResponse_anomalyGroupId,+    listAnomalyGroupTimeSeriesResponse_metricName,+    listAnomalyGroupTimeSeriesResponse_nextToken,+    listAnomalyGroupTimeSeriesResponse_timeSeriesList,+    listAnomalyGroupTimeSeriesResponse_timestampList,+    listAnomalyGroupTimeSeriesResponse_httpStatus,++    -- ** ListMetricSets+    listMetricSets_anomalyDetectorArn,+    listMetricSets_maxResults,+    listMetricSets_nextToken,+    listMetricSetsResponse_metricSetSummaryList,+    listMetricSetsResponse_nextToken,+    listMetricSetsResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_resourceArn,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** PutFeedback+    putFeedback_anomalyDetectorArn,+    putFeedback_anomalyGroupTimeSeriesFeedback,+    putFeedbackResponse_httpStatus,++    -- ** TagResource+    tagResource_resourceArn,+    tagResource_tags,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceArn,+    untagResource_tagKeys,+    untagResourceResponse_httpStatus,++    -- ** UpdateAlert+    updateAlert_action,+    updateAlert_alertDescription,+    updateAlert_alertFilters,+    updateAlert_alertSensitivityThreshold,+    updateAlert_alertArn,+    updateAlertResponse_alertArn,+    updateAlertResponse_httpStatus,++    -- ** UpdateAnomalyDetector+    updateAnomalyDetector_anomalyDetectorConfig,+    updateAnomalyDetector_anomalyDetectorDescription,+    updateAnomalyDetector_kmsKeyArn,+    updateAnomalyDetector_anomalyDetectorArn,+    updateAnomalyDetectorResponse_anomalyDetectorArn,+    updateAnomalyDetectorResponse_httpStatus,++    -- ** UpdateMetricSet+    updateMetricSet_dimensionFilterList,+    updateMetricSet_dimensionList,+    updateMetricSet_metricList,+    updateMetricSet_metricSetDescription,+    updateMetricSet_metricSetFrequency,+    updateMetricSet_metricSource,+    updateMetricSet_offset,+    updateMetricSet_timestampColumn,+    updateMetricSet_metricSetArn,+    updateMetricSetResponse_metricSetArn,+    updateMetricSetResponse_httpStatus,++    -- * Types++    -- ** Action+    action_lambdaConfiguration,+    action_sNSConfiguration,++    -- ** Alert+    alert_action,+    alert_alertArn,+    alert_alertDescription,+    alert_alertFilters,+    alert_alertName,+    alert_alertSensitivityThreshold,+    alert_alertStatus,+    alert_alertType,+    alert_anomalyDetectorArn,+    alert_creationTime,+    alert_lastModificationTime,++    -- ** AlertFilters+    alertFilters_dimensionFilterList,+    alertFilters_metricList,++    -- ** AlertSummary+    alertSummary_alertArn,+    alertSummary_alertName,+    alertSummary_alertSensitivityThreshold,+    alertSummary_alertStatus,+    alertSummary_alertType,+    alertSummary_anomalyDetectorArn,+    alertSummary_creationTime,+    alertSummary_lastModificationTime,+    alertSummary_tags,++    -- ** AnomalyDetectorConfig+    anomalyDetectorConfig_anomalyDetectorFrequency,++    -- ** AnomalyDetectorConfigSummary+    anomalyDetectorConfigSummary_anomalyDetectorFrequency,++    -- ** AnomalyDetectorDataQualityMetric+    anomalyDetectorDataQualityMetric_metricSetDataQualityMetricList,+    anomalyDetectorDataQualityMetric_startTimestamp,++    -- ** AnomalyDetectorSummary+    anomalyDetectorSummary_anomalyDetectorArn,+    anomalyDetectorSummary_anomalyDetectorDescription,+    anomalyDetectorSummary_anomalyDetectorName,+    anomalyDetectorSummary_creationTime,+    anomalyDetectorSummary_lastModificationTime,+    anomalyDetectorSummary_status,+    anomalyDetectorSummary_tags,++    -- ** AnomalyGroup+    anomalyGroup_anomalyGroupId,+    anomalyGroup_anomalyGroupScore,+    anomalyGroup_endTime,+    anomalyGroup_metricLevelImpactList,+    anomalyGroup_primaryMetricName,+    anomalyGroup_startTime,++    -- ** AnomalyGroupStatistics+    anomalyGroupStatistics_evaluationStartDate,+    anomalyGroupStatistics_itemizedMetricStatsList,+    anomalyGroupStatistics_totalCount,++    -- ** AnomalyGroupSummary+    anomalyGroupSummary_anomalyGroupId,+    anomalyGroupSummary_anomalyGroupScore,+    anomalyGroupSummary_endTime,+    anomalyGroupSummary_primaryMetricName,+    anomalyGroupSummary_startTime,++    -- ** AnomalyGroupTimeSeries+    anomalyGroupTimeSeries_timeSeriesId,+    anomalyGroupTimeSeries_anomalyGroupId,++    -- ** AnomalyGroupTimeSeriesFeedback+    anomalyGroupTimeSeriesFeedback_anomalyGroupId,+    anomalyGroupTimeSeriesFeedback_timeSeriesId,+    anomalyGroupTimeSeriesFeedback_isAnomaly,++    -- ** AppFlowConfig+    appFlowConfig_flowName,+    appFlowConfig_roleArn,++    -- ** AthenaSourceConfig+    athenaSourceConfig_backTestConfiguration,+    athenaSourceConfig_dataCatalog,+    athenaSourceConfig_databaseName,+    athenaSourceConfig_roleArn,+    athenaSourceConfig_s3ResultsPath,+    athenaSourceConfig_tableName,+    athenaSourceConfig_workGroupName,++    -- ** AttributeValue+    attributeValue_b,+    attributeValue_bs,+    attributeValue_n,+    attributeValue_ns,+    attributeValue_s,+    attributeValue_ss,++    -- ** AutoDetectionMetricSource+    autoDetectionMetricSource_s3SourceConfig,++    -- ** AutoDetectionS3SourceConfig+    autoDetectionS3SourceConfig_historicalDataPathList,+    autoDetectionS3SourceConfig_templatedPathList,++    -- ** BackTestConfiguration+    backTestConfiguration_runBackTestMode,++    -- ** CloudWatchConfig+    cloudWatchConfig_backTestConfiguration,+    cloudWatchConfig_roleArn,++    -- ** ContributionMatrix+    contributionMatrix_dimensionContributionList,++    -- ** CsvFormatDescriptor+    csvFormatDescriptor_charset,+    csvFormatDescriptor_containsHeader,+    csvFormatDescriptor_delimiter,+    csvFormatDescriptor_fileCompression,+    csvFormatDescriptor_headerList,+    csvFormatDescriptor_quoteSymbol,++    -- ** DataQualityMetric+    dataQualityMetric_metricDescription,+    dataQualityMetric_metricType,+    dataQualityMetric_metricValue,+    dataQualityMetric_relatedColumnName,++    -- ** DetectedCsvFormatDescriptor+    detectedCsvFormatDescriptor_charset,+    detectedCsvFormatDescriptor_containsHeader,+    detectedCsvFormatDescriptor_delimiter,+    detectedCsvFormatDescriptor_fileCompression,+    detectedCsvFormatDescriptor_headerList,+    detectedCsvFormatDescriptor_quoteSymbol,++    -- ** DetectedField+    detectedField_confidence,+    detectedField_message,+    detectedField_value,++    -- ** DetectedFileFormatDescriptor+    detectedFileFormatDescriptor_csvFormatDescriptor,+    detectedFileFormatDescriptor_jsonFormatDescriptor,++    -- ** DetectedJsonFormatDescriptor+    detectedJsonFormatDescriptor_charset,+    detectedJsonFormatDescriptor_fileCompression,++    -- ** DetectedMetricSetConfig+    detectedMetricSetConfig_metricSetFrequency,+    detectedMetricSetConfig_metricSource,+    detectedMetricSetConfig_offset,++    -- ** DetectedMetricSource+    detectedMetricSource_s3SourceConfig,++    -- ** DetectedS3SourceConfig+    detectedS3SourceConfig_fileFormatDescriptor,++    -- ** DimensionContribution+    dimensionContribution_dimensionName,+    dimensionContribution_dimensionValueContributionList,++    -- ** DimensionFilter+    dimensionFilter_dimensionName,+    dimensionFilter_dimensionValueList,++    -- ** DimensionNameValue+    dimensionNameValue_dimensionName,+    dimensionNameValue_dimensionValue,++    -- ** DimensionValueContribution+    dimensionValueContribution_contributionScore,+    dimensionValueContribution_dimensionValue,++    -- ** ExecutionStatus+    executionStatus_failureReason,+    executionStatus_status,+    executionStatus_timestamp,++    -- ** FileFormatDescriptor+    fileFormatDescriptor_csvFormatDescriptor,+    fileFormatDescriptor_jsonFormatDescriptor,++    -- ** Filter+    filter_dimensionValue,+    filter_filterOperation,++    -- ** InterMetricImpactDetails+    interMetricImpactDetails_anomalyGroupId,+    interMetricImpactDetails_contributionPercentage,+    interMetricImpactDetails_metricName,+    interMetricImpactDetails_relationshipType,++    -- ** ItemizedMetricStats+    itemizedMetricStats_metricName,+    itemizedMetricStats_occurrenceCount,++    -- ** JsonFormatDescriptor+    jsonFormatDescriptor_charset,+    jsonFormatDescriptor_fileCompression,++    -- ** LambdaConfiguration+    lambdaConfiguration_roleArn,+    lambdaConfiguration_lambdaArn,++    -- ** Metric+    metric_namespace,+    metric_metricName,+    metric_aggregationFunction,++    -- ** MetricLevelImpact+    metricLevelImpact_contributionMatrix,+    metricLevelImpact_metricName,+    metricLevelImpact_numTimeSeries,++    -- ** MetricSetDataQualityMetric+    metricSetDataQualityMetric_dataQualityMetricList,+    metricSetDataQualityMetric_metricSetArn,++    -- ** MetricSetDimensionFilter+    metricSetDimensionFilter_filterList,+    metricSetDimensionFilter_name,++    -- ** MetricSetSummary+    metricSetSummary_anomalyDetectorArn,+    metricSetSummary_creationTime,+    metricSetSummary_lastModificationTime,+    metricSetSummary_metricSetArn,+    metricSetSummary_metricSetDescription,+    metricSetSummary_metricSetName,+    metricSetSummary_tags,++    -- ** MetricSource+    metricSource_appFlowConfig,+    metricSource_athenaSourceConfig,+    metricSource_cloudWatchConfig,+    metricSource_rDSSourceConfig,+    metricSource_redshiftSourceConfig,+    metricSource_s3SourceConfig,++    -- ** RDSSourceConfig+    rDSSourceConfig_dbInstanceIdentifier,+    rDSSourceConfig_databaseHost,+    rDSSourceConfig_databaseName,+    rDSSourceConfig_databasePort,+    rDSSourceConfig_roleArn,+    rDSSourceConfig_secretManagerArn,+    rDSSourceConfig_tableName,+    rDSSourceConfig_vpcConfiguration,++    -- ** RedshiftSourceConfig+    redshiftSourceConfig_clusterIdentifier,+    redshiftSourceConfig_databaseHost,+    redshiftSourceConfig_databaseName,+    redshiftSourceConfig_databasePort,+    redshiftSourceConfig_roleArn,+    redshiftSourceConfig_secretManagerArn,+    redshiftSourceConfig_tableName,+    redshiftSourceConfig_vpcConfiguration,++    -- ** S3SourceConfig+    s3SourceConfig_fileFormatDescriptor,+    s3SourceConfig_historicalDataPathList,+    s3SourceConfig_roleArn,+    s3SourceConfig_templatedPathList,++    -- ** SNSConfiguration+    sNSConfiguration_snsFormat,+    sNSConfiguration_roleArn,+    sNSConfiguration_snsTopicArn,++    -- ** SampleDataS3SourceConfig+    sampleDataS3SourceConfig_historicalDataPathList,+    sampleDataS3SourceConfig_templatedPathList,+    sampleDataS3SourceConfig_roleArn,+    sampleDataS3SourceConfig_fileFormatDescriptor,++    -- ** TimeSeries+    timeSeries_timeSeriesId,+    timeSeries_dimensionList,+    timeSeries_metricValueList,++    -- ** TimeSeriesFeedback+    timeSeriesFeedback_isAnomaly,+    timeSeriesFeedback_timeSeriesId,++    -- ** TimestampColumn+    timestampColumn_columnFormat,+    timestampColumn_columnName,++    -- ** VpcConfiguration+    vpcConfiguration_subnetIdList,+    vpcConfiguration_securityGroupIdList,+  )+where++import Amazonka.LookoutMetrics.ActivateAnomalyDetector+import Amazonka.LookoutMetrics.BackTestAnomalyDetector+import Amazonka.LookoutMetrics.CreateAlert+import Amazonka.LookoutMetrics.CreateAnomalyDetector+import Amazonka.LookoutMetrics.CreateMetricSet+import Amazonka.LookoutMetrics.DeactivateAnomalyDetector+import Amazonka.LookoutMetrics.DeleteAlert+import Amazonka.LookoutMetrics.DeleteAnomalyDetector+import Amazonka.LookoutMetrics.DescribeAlert+import Amazonka.LookoutMetrics.DescribeAnomalyDetectionExecutions+import Amazonka.LookoutMetrics.DescribeAnomalyDetector+import Amazonka.LookoutMetrics.DescribeMetricSet+import Amazonka.LookoutMetrics.DetectMetricSetConfig+import Amazonka.LookoutMetrics.GetAnomalyGroup+import Amazonka.LookoutMetrics.GetDataQualityMetrics+import Amazonka.LookoutMetrics.GetFeedback+import Amazonka.LookoutMetrics.GetSampleData+import Amazonka.LookoutMetrics.ListAlerts+import Amazonka.LookoutMetrics.ListAnomalyDetectors+import Amazonka.LookoutMetrics.ListAnomalyGroupRelatedMetrics+import Amazonka.LookoutMetrics.ListAnomalyGroupSummaries+import Amazonka.LookoutMetrics.ListAnomalyGroupTimeSeries+import Amazonka.LookoutMetrics.ListMetricSets+import Amazonka.LookoutMetrics.ListTagsForResource+import Amazonka.LookoutMetrics.PutFeedback+import Amazonka.LookoutMetrics.TagResource+import Amazonka.LookoutMetrics.Types.Action+import Amazonka.LookoutMetrics.Types.Alert+import Amazonka.LookoutMetrics.Types.AlertFilters+import Amazonka.LookoutMetrics.Types.AlertSummary+import Amazonka.LookoutMetrics.Types.AnomalyDetectorConfig+import Amazonka.LookoutMetrics.Types.AnomalyDetectorConfigSummary+import Amazonka.LookoutMetrics.Types.AnomalyDetectorDataQualityMetric+import Amazonka.LookoutMetrics.Types.AnomalyDetectorSummary+import Amazonka.LookoutMetrics.Types.AnomalyGroup+import Amazonka.LookoutMetrics.Types.AnomalyGroupStatistics+import Amazonka.LookoutMetrics.Types.AnomalyGroupSummary+import Amazonka.LookoutMetrics.Types.AnomalyGroupTimeSeries+import Amazonka.LookoutMetrics.Types.AnomalyGroupTimeSeriesFeedback+import Amazonka.LookoutMetrics.Types.AppFlowConfig+import Amazonka.LookoutMetrics.Types.AthenaSourceConfig+import Amazonka.LookoutMetrics.Types.AttributeValue+import Amazonka.LookoutMetrics.Types.AutoDetectionMetricSource+import Amazonka.LookoutMetrics.Types.AutoDetectionS3SourceConfig+import Amazonka.LookoutMetrics.Types.BackTestConfiguration+import Amazonka.LookoutMetrics.Types.CloudWatchConfig+import Amazonka.LookoutMetrics.Types.ContributionMatrix+import Amazonka.LookoutMetrics.Types.CsvFormatDescriptor+import Amazonka.LookoutMetrics.Types.DataQualityMetric+import Amazonka.LookoutMetrics.Types.DetectedCsvFormatDescriptor+import Amazonka.LookoutMetrics.Types.DetectedField+import Amazonka.LookoutMetrics.Types.DetectedFileFormatDescriptor+import Amazonka.LookoutMetrics.Types.DetectedJsonFormatDescriptor+import Amazonka.LookoutMetrics.Types.DetectedMetricSetConfig+import Amazonka.LookoutMetrics.Types.DetectedMetricSource+import Amazonka.LookoutMetrics.Types.DetectedS3SourceConfig+import Amazonka.LookoutMetrics.Types.DimensionContribution+import Amazonka.LookoutMetrics.Types.DimensionFilter+import Amazonka.LookoutMetrics.Types.DimensionNameValue+import Amazonka.LookoutMetrics.Types.DimensionValueContribution+import Amazonka.LookoutMetrics.Types.ExecutionStatus+import Amazonka.LookoutMetrics.Types.FileFormatDescriptor+import Amazonka.LookoutMetrics.Types.Filter+import Amazonka.LookoutMetrics.Types.InterMetricImpactDetails+import Amazonka.LookoutMetrics.Types.ItemizedMetricStats+import Amazonka.LookoutMetrics.Types.JsonFormatDescriptor+import Amazonka.LookoutMetrics.Types.LambdaConfiguration+import Amazonka.LookoutMetrics.Types.Metric+import Amazonka.LookoutMetrics.Types.MetricLevelImpact+import Amazonka.LookoutMetrics.Types.MetricSetDataQualityMetric+import Amazonka.LookoutMetrics.Types.MetricSetDimensionFilter+import Amazonka.LookoutMetrics.Types.MetricSetSummary+import Amazonka.LookoutMetrics.Types.MetricSource+import Amazonka.LookoutMetrics.Types.RDSSourceConfig+import Amazonka.LookoutMetrics.Types.RedshiftSourceConfig+import Amazonka.LookoutMetrics.Types.S3SourceConfig+import Amazonka.LookoutMetrics.Types.SNSConfiguration+import Amazonka.LookoutMetrics.Types.SampleDataS3SourceConfig+import Amazonka.LookoutMetrics.Types.TimeSeries+import Amazonka.LookoutMetrics.Types.TimeSeriesFeedback+import Amazonka.LookoutMetrics.Types.TimestampColumn+import Amazonka.LookoutMetrics.Types.VpcConfiguration+import Amazonka.LookoutMetrics.UntagResource+import Amazonka.LookoutMetrics.UpdateAlert+import Amazonka.LookoutMetrics.UpdateAnomalyDetector+import Amazonka.LookoutMetrics.UpdateMetricSet
+ gen/Amazonka/LookoutMetrics/ListAlerts.hs view
@@ -0,0 +1,221 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.ListAlerts+-- 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 alerts attached to a detector.+--+-- Amazon Lookout for Metrics API actions are eventually consistent. If you+-- do a read operation on a resource immediately after creating or+-- modifying it, use retries to allow time for the write operation to+-- complete.+module Amazonka.LookoutMetrics.ListAlerts+  ( -- * Creating a Request+    ListAlerts (..),+    newListAlerts,++    -- * Request Lenses+    listAlerts_anomalyDetectorArn,+    listAlerts_maxResults,+    listAlerts_nextToken,++    -- * Destructuring the Response+    ListAlertsResponse (..),+    newListAlertsResponse,++    -- * Response Lenses+    listAlertsResponse_alertSummaryList,+    listAlertsResponse_nextToken,+    listAlertsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAlerts' smart constructor.+data ListAlerts = ListAlerts'+  { -- | The ARN of the alert\'s detector.+    anomalyDetectorArn :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of results that will be displayed by the request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the result of the previous request is truncated, the response+    -- includes a @NextToken@. To retrieve the next set of results, use the+    -- token in the next request. Tokens expire after 24 hours.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAlerts' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyDetectorArn', 'listAlerts_anomalyDetectorArn' - The ARN of the alert\'s detector.+--+-- 'maxResults', 'listAlerts_maxResults' - The maximum number of results that will be displayed by the request.+--+-- 'nextToken', 'listAlerts_nextToken' - If the result of the previous request is truncated, the response+-- includes a @NextToken@. To retrieve the next set of results, use the+-- token in the next request. Tokens expire after 24 hours.+newListAlerts ::+  ListAlerts+newListAlerts =+  ListAlerts'+    { anomalyDetectorArn = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The ARN of the alert\'s detector.+listAlerts_anomalyDetectorArn :: Lens.Lens' ListAlerts (Prelude.Maybe Prelude.Text)+listAlerts_anomalyDetectorArn = Lens.lens (\ListAlerts' {anomalyDetectorArn} -> anomalyDetectorArn) (\s@ListAlerts' {} a -> s {anomalyDetectorArn = a} :: ListAlerts)++-- | The maximum number of results that will be displayed by the request.+listAlerts_maxResults :: Lens.Lens' ListAlerts (Prelude.Maybe Prelude.Natural)+listAlerts_maxResults = Lens.lens (\ListAlerts' {maxResults} -> maxResults) (\s@ListAlerts' {} a -> s {maxResults = a} :: ListAlerts)++-- | If the result of the previous request is truncated, the response+-- includes a @NextToken@. To retrieve the next set of results, use the+-- token in the next request. Tokens expire after 24 hours.+listAlerts_nextToken :: Lens.Lens' ListAlerts (Prelude.Maybe Prelude.Text)+listAlerts_nextToken = Lens.lens (\ListAlerts' {nextToken} -> nextToken) (\s@ListAlerts' {} a -> s {nextToken = a} :: ListAlerts)++instance Core.AWSRequest ListAlerts where+  type AWSResponse ListAlerts = ListAlertsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListAlertsResponse'+            Prelude.<$> ( x+                            Data..?> "AlertSummaryList"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListAlerts where+  hashWithSalt _salt ListAlerts' {..} =+    _salt+      `Prelude.hashWithSalt` anomalyDetectorArn+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListAlerts where+  rnf ListAlerts' {..} =+    Prelude.rnf anomalyDetectorArn+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListAlerts where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListAlerts where+  toJSON ListAlerts' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AnomalyDetectorArn" Data..=)+              Prelude.<$> anomalyDetectorArn,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListAlerts where+  toPath = Prelude.const "/ListAlerts"++instance Data.ToQuery ListAlerts where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListAlertsResponse' smart constructor.+data ListAlertsResponse = ListAlertsResponse'+  { -- | Contains information about an alert.+    alertSummaryList :: Prelude.Maybe [AlertSummary],+    -- | If the response is truncated, the service returns this token. To+    -- retrieve the next set of results, use this token in the next request.+    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 'ListAlertsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'alertSummaryList', 'listAlertsResponse_alertSummaryList' - Contains information about an alert.+--+-- 'nextToken', 'listAlertsResponse_nextToken' - If the response is truncated, the service returns this token. To+-- retrieve the next set of results, use this token in the next request.+--+-- 'httpStatus', 'listAlertsResponse_httpStatus' - The response's http status code.+newListAlertsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListAlertsResponse+newListAlertsResponse pHttpStatus_ =+  ListAlertsResponse'+    { alertSummaryList =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Contains information about an alert.+listAlertsResponse_alertSummaryList :: Lens.Lens' ListAlertsResponse (Prelude.Maybe [AlertSummary])+listAlertsResponse_alertSummaryList = Lens.lens (\ListAlertsResponse' {alertSummaryList} -> alertSummaryList) (\s@ListAlertsResponse' {} a -> s {alertSummaryList = a} :: ListAlertsResponse) Prelude.. Lens.mapping Lens.coerced++-- | If the response is truncated, the service returns this token. To+-- retrieve the next set of results, use this token in the next request.+listAlertsResponse_nextToken :: Lens.Lens' ListAlertsResponse (Prelude.Maybe Prelude.Text)+listAlertsResponse_nextToken = Lens.lens (\ListAlertsResponse' {nextToken} -> nextToken) (\s@ListAlertsResponse' {} a -> s {nextToken = a} :: ListAlertsResponse)++-- | The response's http status code.+listAlertsResponse_httpStatus :: Lens.Lens' ListAlertsResponse Prelude.Int+listAlertsResponse_httpStatus = Lens.lens (\ListAlertsResponse' {httpStatus} -> httpStatus) (\s@ListAlertsResponse' {} a -> s {httpStatus = a} :: ListAlertsResponse)++instance Prelude.NFData ListAlertsResponse where+  rnf ListAlertsResponse' {..} =+    Prelude.rnf alertSummaryList+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/ListAnomalyDetectors.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.LookoutMetrics.ListAnomalyDetectors+-- 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 detectors in the current AWS Region.+--+-- Amazon Lookout for Metrics API actions are eventually consistent. If you+-- do a read operation on a resource immediately after creating or+-- modifying it, use retries to allow time for the write operation to+-- complete.+module Amazonka.LookoutMetrics.ListAnomalyDetectors+  ( -- * Creating a Request+    ListAnomalyDetectors (..),+    newListAnomalyDetectors,++    -- * Request Lenses+    listAnomalyDetectors_maxResults,+    listAnomalyDetectors_nextToken,++    -- * Destructuring the Response+    ListAnomalyDetectorsResponse (..),+    newListAnomalyDetectorsResponse,++    -- * Response Lenses+    listAnomalyDetectorsResponse_anomalyDetectorSummaryList,+    listAnomalyDetectorsResponse_nextToken,+    listAnomalyDetectorsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAnomalyDetectors' smart constructor.+data ListAnomalyDetectors = ListAnomalyDetectors'+  { -- | The maximum number of results to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the result of the previous request was truncated, the response+    -- includes a @NextToken@. To retrieve the next set of results, use the+    -- token in the next request. Tokens expire after 24 hours.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAnomalyDetectors' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listAnomalyDetectors_maxResults' - The maximum number of results to return.+--+-- 'nextToken', 'listAnomalyDetectors_nextToken' - If the result of the previous request was truncated, the response+-- includes a @NextToken@. To retrieve the next set of results, use the+-- token in the next request. Tokens expire after 24 hours.+newListAnomalyDetectors ::+  ListAnomalyDetectors+newListAnomalyDetectors =+  ListAnomalyDetectors'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of results to return.+listAnomalyDetectors_maxResults :: Lens.Lens' ListAnomalyDetectors (Prelude.Maybe Prelude.Natural)+listAnomalyDetectors_maxResults = Lens.lens (\ListAnomalyDetectors' {maxResults} -> maxResults) (\s@ListAnomalyDetectors' {} a -> s {maxResults = a} :: ListAnomalyDetectors)++-- | If the result of the previous request was truncated, the response+-- includes a @NextToken@. To retrieve the next set of results, use the+-- token in the next request. Tokens expire after 24 hours.+listAnomalyDetectors_nextToken :: Lens.Lens' ListAnomalyDetectors (Prelude.Maybe Prelude.Text)+listAnomalyDetectors_nextToken = Lens.lens (\ListAnomalyDetectors' {nextToken} -> nextToken) (\s@ListAnomalyDetectors' {} a -> s {nextToken = a} :: ListAnomalyDetectors)++instance Core.AWSRequest ListAnomalyDetectors where+  type+    AWSResponse ListAnomalyDetectors =+      ListAnomalyDetectorsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListAnomalyDetectorsResponse'+            Prelude.<$> ( x+                            Data..?> "AnomalyDetectorSummaryList"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListAnomalyDetectors where+  hashWithSalt _salt ListAnomalyDetectors' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListAnomalyDetectors where+  rnf ListAnomalyDetectors' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListAnomalyDetectors where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListAnomalyDetectors where+  toJSON ListAnomalyDetectors' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListAnomalyDetectors where+  toPath = Prelude.const "/ListAnomalyDetectors"++instance Data.ToQuery ListAnomalyDetectors where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListAnomalyDetectorsResponse' smart constructor.+data ListAnomalyDetectorsResponse = ListAnomalyDetectorsResponse'+  { -- | A list of anomaly detectors in the account in the current region.+    anomalyDetectorSummaryList :: Prelude.Maybe [AnomalyDetectorSummary],+    -- | If the response is truncated, the service returns this token. To+    -- retrieve the next set of results, use the token in the next request.+    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 'ListAnomalyDetectorsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyDetectorSummaryList', 'listAnomalyDetectorsResponse_anomalyDetectorSummaryList' - A list of anomaly detectors in the account in the current region.+--+-- 'nextToken', 'listAnomalyDetectorsResponse_nextToken' - If the response is truncated, the service returns this token. To+-- retrieve the next set of results, use the token in the next request.+--+-- 'httpStatus', 'listAnomalyDetectorsResponse_httpStatus' - The response's http status code.+newListAnomalyDetectorsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListAnomalyDetectorsResponse+newListAnomalyDetectorsResponse pHttpStatus_ =+  ListAnomalyDetectorsResponse'+    { anomalyDetectorSummaryList =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of anomaly detectors in the account in the current region.+listAnomalyDetectorsResponse_anomalyDetectorSummaryList :: Lens.Lens' ListAnomalyDetectorsResponse (Prelude.Maybe [AnomalyDetectorSummary])+listAnomalyDetectorsResponse_anomalyDetectorSummaryList = Lens.lens (\ListAnomalyDetectorsResponse' {anomalyDetectorSummaryList} -> anomalyDetectorSummaryList) (\s@ListAnomalyDetectorsResponse' {} a -> s {anomalyDetectorSummaryList = a} :: ListAnomalyDetectorsResponse) Prelude.. Lens.mapping Lens.coerced++-- | If the response is truncated, the service returns this token. To+-- retrieve the next set of results, use the token in the next request.+listAnomalyDetectorsResponse_nextToken :: Lens.Lens' ListAnomalyDetectorsResponse (Prelude.Maybe Prelude.Text)+listAnomalyDetectorsResponse_nextToken = Lens.lens (\ListAnomalyDetectorsResponse' {nextToken} -> nextToken) (\s@ListAnomalyDetectorsResponse' {} a -> s {nextToken = a} :: ListAnomalyDetectorsResponse)++-- | The response's http status code.+listAnomalyDetectorsResponse_httpStatus :: Lens.Lens' ListAnomalyDetectorsResponse Prelude.Int+listAnomalyDetectorsResponse_httpStatus = Lens.lens (\ListAnomalyDetectorsResponse' {httpStatus} -> httpStatus) (\s@ListAnomalyDetectorsResponse' {} a -> s {httpStatus = a} :: ListAnomalyDetectorsResponse)++instance Prelude.NFData ListAnomalyDetectorsResponse where+  rnf ListAnomalyDetectorsResponse' {..} =+    Prelude.rnf anomalyDetectorSummaryList+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/ListAnomalyGroupRelatedMetrics.hs view
@@ -0,0 +1,276 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.ListAnomalyGroupRelatedMetrics+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of measures that are potential causes or effects of an+-- anomaly group.+module Amazonka.LookoutMetrics.ListAnomalyGroupRelatedMetrics+  ( -- * Creating a Request+    ListAnomalyGroupRelatedMetrics (..),+    newListAnomalyGroupRelatedMetrics,++    -- * Request Lenses+    listAnomalyGroupRelatedMetrics_maxResults,+    listAnomalyGroupRelatedMetrics_nextToken,+    listAnomalyGroupRelatedMetrics_relationshipTypeFilter,+    listAnomalyGroupRelatedMetrics_anomalyDetectorArn,+    listAnomalyGroupRelatedMetrics_anomalyGroupId,++    -- * Destructuring the Response+    ListAnomalyGroupRelatedMetricsResponse (..),+    newListAnomalyGroupRelatedMetricsResponse,++    -- * Response Lenses+    listAnomalyGroupRelatedMetricsResponse_interMetricImpactList,+    listAnomalyGroupRelatedMetricsResponse_nextToken,+    listAnomalyGroupRelatedMetricsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAnomalyGroupRelatedMetrics' smart constructor.+data ListAnomalyGroupRelatedMetrics = ListAnomalyGroupRelatedMetrics'+  { -- | The maximum number of results to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Specify the pagination token that\'s returned by a previous request to+    -- retrieve the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Filter for potential causes (@CAUSE_OF_INPUT_ANOMALY_GROUP@) or+    -- downstream effects (@EFFECT_OF_INPUT_ANOMALY_GROUP@) of the anomaly+    -- group.+    relationshipTypeFilter :: Prelude.Maybe RelationshipType,+    -- | The Amazon Resource Name (ARN) of the anomaly detector.+    anomalyDetectorArn :: Prelude.Text,+    -- | The ID of the anomaly group.+    anomalyGroupId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAnomalyGroupRelatedMetrics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listAnomalyGroupRelatedMetrics_maxResults' - The maximum number of results to return.+--+-- 'nextToken', 'listAnomalyGroupRelatedMetrics_nextToken' - Specify the pagination token that\'s returned by a previous request to+-- retrieve the next page of results.+--+-- 'relationshipTypeFilter', 'listAnomalyGroupRelatedMetrics_relationshipTypeFilter' - Filter for potential causes (@CAUSE_OF_INPUT_ANOMALY_GROUP@) or+-- downstream effects (@EFFECT_OF_INPUT_ANOMALY_GROUP@) of the anomaly+-- group.+--+-- 'anomalyDetectorArn', 'listAnomalyGroupRelatedMetrics_anomalyDetectorArn' - The Amazon Resource Name (ARN) of the anomaly detector.+--+-- 'anomalyGroupId', 'listAnomalyGroupRelatedMetrics_anomalyGroupId' - The ID of the anomaly group.+newListAnomalyGroupRelatedMetrics ::+  -- | 'anomalyDetectorArn'+  Prelude.Text ->+  -- | 'anomalyGroupId'+  Prelude.Text ->+  ListAnomalyGroupRelatedMetrics+newListAnomalyGroupRelatedMetrics+  pAnomalyDetectorArn_+  pAnomalyGroupId_ =+    ListAnomalyGroupRelatedMetrics'+      { maxResults =+          Prelude.Nothing,+        nextToken = Prelude.Nothing,+        relationshipTypeFilter = Prelude.Nothing,+        anomalyDetectorArn = pAnomalyDetectorArn_,+        anomalyGroupId = pAnomalyGroupId_+      }++-- | The maximum number of results to return.+listAnomalyGroupRelatedMetrics_maxResults :: Lens.Lens' ListAnomalyGroupRelatedMetrics (Prelude.Maybe Prelude.Natural)+listAnomalyGroupRelatedMetrics_maxResults = Lens.lens (\ListAnomalyGroupRelatedMetrics' {maxResults} -> maxResults) (\s@ListAnomalyGroupRelatedMetrics' {} a -> s {maxResults = a} :: ListAnomalyGroupRelatedMetrics)++-- | Specify the pagination token that\'s returned by a previous request to+-- retrieve the next page of results.+listAnomalyGroupRelatedMetrics_nextToken :: Lens.Lens' ListAnomalyGroupRelatedMetrics (Prelude.Maybe Prelude.Text)+listAnomalyGroupRelatedMetrics_nextToken = Lens.lens (\ListAnomalyGroupRelatedMetrics' {nextToken} -> nextToken) (\s@ListAnomalyGroupRelatedMetrics' {} a -> s {nextToken = a} :: ListAnomalyGroupRelatedMetrics)++-- | Filter for potential causes (@CAUSE_OF_INPUT_ANOMALY_GROUP@) or+-- downstream effects (@EFFECT_OF_INPUT_ANOMALY_GROUP@) of the anomaly+-- group.+listAnomalyGroupRelatedMetrics_relationshipTypeFilter :: Lens.Lens' ListAnomalyGroupRelatedMetrics (Prelude.Maybe RelationshipType)+listAnomalyGroupRelatedMetrics_relationshipTypeFilter = Lens.lens (\ListAnomalyGroupRelatedMetrics' {relationshipTypeFilter} -> relationshipTypeFilter) (\s@ListAnomalyGroupRelatedMetrics' {} a -> s {relationshipTypeFilter = a} :: ListAnomalyGroupRelatedMetrics)++-- | The Amazon Resource Name (ARN) of the anomaly detector.+listAnomalyGroupRelatedMetrics_anomalyDetectorArn :: Lens.Lens' ListAnomalyGroupRelatedMetrics Prelude.Text+listAnomalyGroupRelatedMetrics_anomalyDetectorArn = Lens.lens (\ListAnomalyGroupRelatedMetrics' {anomalyDetectorArn} -> anomalyDetectorArn) (\s@ListAnomalyGroupRelatedMetrics' {} a -> s {anomalyDetectorArn = a} :: ListAnomalyGroupRelatedMetrics)++-- | The ID of the anomaly group.+listAnomalyGroupRelatedMetrics_anomalyGroupId :: Lens.Lens' ListAnomalyGroupRelatedMetrics Prelude.Text+listAnomalyGroupRelatedMetrics_anomalyGroupId = Lens.lens (\ListAnomalyGroupRelatedMetrics' {anomalyGroupId} -> anomalyGroupId) (\s@ListAnomalyGroupRelatedMetrics' {} a -> s {anomalyGroupId = a} :: ListAnomalyGroupRelatedMetrics)++instance+  Core.AWSRequest+    ListAnomalyGroupRelatedMetrics+  where+  type+    AWSResponse ListAnomalyGroupRelatedMetrics =+      ListAnomalyGroupRelatedMetricsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListAnomalyGroupRelatedMetricsResponse'+            Prelude.<$> ( x+                            Data..?> "InterMetricImpactList"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    ListAnomalyGroupRelatedMetrics+  where+  hashWithSalt+    _salt+    ListAnomalyGroupRelatedMetrics' {..} =+      _salt+        `Prelude.hashWithSalt` maxResults+        `Prelude.hashWithSalt` nextToken+        `Prelude.hashWithSalt` relationshipTypeFilter+        `Prelude.hashWithSalt` anomalyDetectorArn+        `Prelude.hashWithSalt` anomalyGroupId++instance+  Prelude.NFData+    ListAnomalyGroupRelatedMetrics+  where+  rnf ListAnomalyGroupRelatedMetrics' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf relationshipTypeFilter+      `Prelude.seq` Prelude.rnf anomalyDetectorArn+      `Prelude.seq` Prelude.rnf anomalyGroupId++instance+  Data.ToHeaders+    ListAnomalyGroupRelatedMetrics+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListAnomalyGroupRelatedMetrics where+  toJSON ListAnomalyGroupRelatedMetrics' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            ("RelationshipTypeFilter" Data..=)+              Prelude.<$> relationshipTypeFilter,+            Prelude.Just+              ("AnomalyDetectorArn" Data..= anomalyDetectorArn),+            Prelude.Just+              ("AnomalyGroupId" Data..= anomalyGroupId)+          ]+      )++instance Data.ToPath ListAnomalyGroupRelatedMetrics where+  toPath =+    Prelude.const "/ListAnomalyGroupRelatedMetrics"++instance Data.ToQuery ListAnomalyGroupRelatedMetrics where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListAnomalyGroupRelatedMetricsResponse' smart constructor.+data ListAnomalyGroupRelatedMetricsResponse = ListAnomalyGroupRelatedMetricsResponse'+  { -- | Aggregated details about the measures contributing to the anomaly group,+    -- and the measures potentially impacted by the anomaly group.+    interMetricImpactList :: Prelude.Maybe [InterMetricImpactDetails],+    -- | The pagination token that\'s included if more results are available.+    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 'ListAnomalyGroupRelatedMetricsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'interMetricImpactList', 'listAnomalyGroupRelatedMetricsResponse_interMetricImpactList' - Aggregated details about the measures contributing to the anomaly group,+-- and the measures potentially impacted by the anomaly group.+--+-- 'nextToken', 'listAnomalyGroupRelatedMetricsResponse_nextToken' - The pagination token that\'s included if more results are available.+--+-- 'httpStatus', 'listAnomalyGroupRelatedMetricsResponse_httpStatus' - The response's http status code.+newListAnomalyGroupRelatedMetricsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListAnomalyGroupRelatedMetricsResponse+newListAnomalyGroupRelatedMetricsResponse+  pHttpStatus_ =+    ListAnomalyGroupRelatedMetricsResponse'+      { interMetricImpactList =+          Prelude.Nothing,+        nextToken = Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | Aggregated details about the measures contributing to the anomaly group,+-- and the measures potentially impacted by the anomaly group.+listAnomalyGroupRelatedMetricsResponse_interMetricImpactList :: Lens.Lens' ListAnomalyGroupRelatedMetricsResponse (Prelude.Maybe [InterMetricImpactDetails])+listAnomalyGroupRelatedMetricsResponse_interMetricImpactList = Lens.lens (\ListAnomalyGroupRelatedMetricsResponse' {interMetricImpactList} -> interMetricImpactList) (\s@ListAnomalyGroupRelatedMetricsResponse' {} a -> s {interMetricImpactList = a} :: ListAnomalyGroupRelatedMetricsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The pagination token that\'s included if more results are available.+listAnomalyGroupRelatedMetricsResponse_nextToken :: Lens.Lens' ListAnomalyGroupRelatedMetricsResponse (Prelude.Maybe Prelude.Text)+listAnomalyGroupRelatedMetricsResponse_nextToken = Lens.lens (\ListAnomalyGroupRelatedMetricsResponse' {nextToken} -> nextToken) (\s@ListAnomalyGroupRelatedMetricsResponse' {} a -> s {nextToken = a} :: ListAnomalyGroupRelatedMetricsResponse)++-- | The response's http status code.+listAnomalyGroupRelatedMetricsResponse_httpStatus :: Lens.Lens' ListAnomalyGroupRelatedMetricsResponse Prelude.Int+listAnomalyGroupRelatedMetricsResponse_httpStatus = Lens.lens (\ListAnomalyGroupRelatedMetricsResponse' {httpStatus} -> httpStatus) (\s@ListAnomalyGroupRelatedMetricsResponse' {} a -> s {httpStatus = a} :: ListAnomalyGroupRelatedMetricsResponse)++instance+  Prelude.NFData+    ListAnomalyGroupRelatedMetricsResponse+  where+  rnf ListAnomalyGroupRelatedMetricsResponse' {..} =+    Prelude.rnf interMetricImpactList+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/ListAnomalyGroupSummaries.hs view
@@ -0,0 +1,251 @@+{-# 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.LookoutMetrics.ListAnomalyGroupSummaries+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of anomaly groups.+module Amazonka.LookoutMetrics.ListAnomalyGroupSummaries+  ( -- * Creating a Request+    ListAnomalyGroupSummaries (..),+    newListAnomalyGroupSummaries,++    -- * Request Lenses+    listAnomalyGroupSummaries_maxResults,+    listAnomalyGroupSummaries_nextToken,+    listAnomalyGroupSummaries_anomalyDetectorArn,+    listAnomalyGroupSummaries_sensitivityThreshold,++    -- * Destructuring the Response+    ListAnomalyGroupSummariesResponse (..),+    newListAnomalyGroupSummariesResponse,++    -- * Response Lenses+    listAnomalyGroupSummariesResponse_anomalyGroupStatistics,+    listAnomalyGroupSummariesResponse_anomalyGroupSummaryList,+    listAnomalyGroupSummariesResponse_nextToken,+    listAnomalyGroupSummariesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAnomalyGroupSummaries' smart constructor.+data ListAnomalyGroupSummaries = ListAnomalyGroupSummaries'+  { -- | The maximum number of results to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Specify the pagination token that\'s returned by a previous request to+    -- retrieve the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the anomaly detector.+    anomalyDetectorArn :: Prelude.Text,+    -- | The minimum severity score for inclusion in the output.+    sensitivityThreshold :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAnomalyGroupSummaries' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listAnomalyGroupSummaries_maxResults' - The maximum number of results to return.+--+-- 'nextToken', 'listAnomalyGroupSummaries_nextToken' - Specify the pagination token that\'s returned by a previous request to+-- retrieve the next page of results.+--+-- 'anomalyDetectorArn', 'listAnomalyGroupSummaries_anomalyDetectorArn' - The Amazon Resource Name (ARN) of the anomaly detector.+--+-- 'sensitivityThreshold', 'listAnomalyGroupSummaries_sensitivityThreshold' - The minimum severity score for inclusion in the output.+newListAnomalyGroupSummaries ::+  -- | 'anomalyDetectorArn'+  Prelude.Text ->+  -- | 'sensitivityThreshold'+  Prelude.Natural ->+  ListAnomalyGroupSummaries+newListAnomalyGroupSummaries+  pAnomalyDetectorArn_+  pSensitivityThreshold_ =+    ListAnomalyGroupSummaries'+      { maxResults =+          Prelude.Nothing,+        nextToken = Prelude.Nothing,+        anomalyDetectorArn = pAnomalyDetectorArn_,+        sensitivityThreshold = pSensitivityThreshold_+      }++-- | The maximum number of results to return.+listAnomalyGroupSummaries_maxResults :: Lens.Lens' ListAnomalyGroupSummaries (Prelude.Maybe Prelude.Natural)+listAnomalyGroupSummaries_maxResults = Lens.lens (\ListAnomalyGroupSummaries' {maxResults} -> maxResults) (\s@ListAnomalyGroupSummaries' {} a -> s {maxResults = a} :: ListAnomalyGroupSummaries)++-- | Specify the pagination token that\'s returned by a previous request to+-- retrieve the next page of results.+listAnomalyGroupSummaries_nextToken :: Lens.Lens' ListAnomalyGroupSummaries (Prelude.Maybe Prelude.Text)+listAnomalyGroupSummaries_nextToken = Lens.lens (\ListAnomalyGroupSummaries' {nextToken} -> nextToken) (\s@ListAnomalyGroupSummaries' {} a -> s {nextToken = a} :: ListAnomalyGroupSummaries)++-- | The Amazon Resource Name (ARN) of the anomaly detector.+listAnomalyGroupSummaries_anomalyDetectorArn :: Lens.Lens' ListAnomalyGroupSummaries Prelude.Text+listAnomalyGroupSummaries_anomalyDetectorArn = Lens.lens (\ListAnomalyGroupSummaries' {anomalyDetectorArn} -> anomalyDetectorArn) (\s@ListAnomalyGroupSummaries' {} a -> s {anomalyDetectorArn = a} :: ListAnomalyGroupSummaries)++-- | The minimum severity score for inclusion in the output.+listAnomalyGroupSummaries_sensitivityThreshold :: Lens.Lens' ListAnomalyGroupSummaries Prelude.Natural+listAnomalyGroupSummaries_sensitivityThreshold = Lens.lens (\ListAnomalyGroupSummaries' {sensitivityThreshold} -> sensitivityThreshold) (\s@ListAnomalyGroupSummaries' {} a -> s {sensitivityThreshold = a} :: ListAnomalyGroupSummaries)++instance Core.AWSRequest ListAnomalyGroupSummaries where+  type+    AWSResponse ListAnomalyGroupSummaries =+      ListAnomalyGroupSummariesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListAnomalyGroupSummariesResponse'+            Prelude.<$> (x Data..?> "AnomalyGroupStatistics")+            Prelude.<*> ( x+                            Data..?> "AnomalyGroupSummaryList"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListAnomalyGroupSummaries where+  hashWithSalt _salt ListAnomalyGroupSummaries' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` anomalyDetectorArn+      `Prelude.hashWithSalt` sensitivityThreshold++instance Prelude.NFData ListAnomalyGroupSummaries where+  rnf ListAnomalyGroupSummaries' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf anomalyDetectorArn+      `Prelude.seq` Prelude.rnf sensitivityThreshold++instance Data.ToHeaders ListAnomalyGroupSummaries where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListAnomalyGroupSummaries where+  toJSON ListAnomalyGroupSummaries' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just+              ("AnomalyDetectorArn" Data..= anomalyDetectorArn),+            Prelude.Just+              ( "SensitivityThreshold"+                  Data..= sensitivityThreshold+              )+          ]+      )++instance Data.ToPath ListAnomalyGroupSummaries where+  toPath = Prelude.const "/ListAnomalyGroupSummaries"++instance Data.ToQuery ListAnomalyGroupSummaries where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListAnomalyGroupSummariesResponse' smart constructor.+data ListAnomalyGroupSummariesResponse = ListAnomalyGroupSummariesResponse'+  { -- | Aggregated details about the anomaly groups.+    anomalyGroupStatistics :: Prelude.Maybe AnomalyGroupStatistics,+    -- | A list of anomaly group summaries.+    anomalyGroupSummaryList :: Prelude.Maybe [AnomalyGroupSummary],+    -- | The pagination token that\'s included if more results are available.+    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 'ListAnomalyGroupSummariesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyGroupStatistics', 'listAnomalyGroupSummariesResponse_anomalyGroupStatistics' - Aggregated details about the anomaly groups.+--+-- 'anomalyGroupSummaryList', 'listAnomalyGroupSummariesResponse_anomalyGroupSummaryList' - A list of anomaly group summaries.+--+-- 'nextToken', 'listAnomalyGroupSummariesResponse_nextToken' - The pagination token that\'s included if more results are available.+--+-- 'httpStatus', 'listAnomalyGroupSummariesResponse_httpStatus' - The response's http status code.+newListAnomalyGroupSummariesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListAnomalyGroupSummariesResponse+newListAnomalyGroupSummariesResponse pHttpStatus_ =+  ListAnomalyGroupSummariesResponse'+    { anomalyGroupStatistics =+        Prelude.Nothing,+      anomalyGroupSummaryList =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Aggregated details about the anomaly groups.+listAnomalyGroupSummariesResponse_anomalyGroupStatistics :: Lens.Lens' ListAnomalyGroupSummariesResponse (Prelude.Maybe AnomalyGroupStatistics)+listAnomalyGroupSummariesResponse_anomalyGroupStatistics = Lens.lens (\ListAnomalyGroupSummariesResponse' {anomalyGroupStatistics} -> anomalyGroupStatistics) (\s@ListAnomalyGroupSummariesResponse' {} a -> s {anomalyGroupStatistics = a} :: ListAnomalyGroupSummariesResponse)++-- | A list of anomaly group summaries.+listAnomalyGroupSummariesResponse_anomalyGroupSummaryList :: Lens.Lens' ListAnomalyGroupSummariesResponse (Prelude.Maybe [AnomalyGroupSummary])+listAnomalyGroupSummariesResponse_anomalyGroupSummaryList = Lens.lens (\ListAnomalyGroupSummariesResponse' {anomalyGroupSummaryList} -> anomalyGroupSummaryList) (\s@ListAnomalyGroupSummariesResponse' {} a -> s {anomalyGroupSummaryList = a} :: ListAnomalyGroupSummariesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The pagination token that\'s included if more results are available.+listAnomalyGroupSummariesResponse_nextToken :: Lens.Lens' ListAnomalyGroupSummariesResponse (Prelude.Maybe Prelude.Text)+listAnomalyGroupSummariesResponse_nextToken = Lens.lens (\ListAnomalyGroupSummariesResponse' {nextToken} -> nextToken) (\s@ListAnomalyGroupSummariesResponse' {} a -> s {nextToken = a} :: ListAnomalyGroupSummariesResponse)++-- | The response's http status code.+listAnomalyGroupSummariesResponse_httpStatus :: Lens.Lens' ListAnomalyGroupSummariesResponse Prelude.Int+listAnomalyGroupSummariesResponse_httpStatus = Lens.lens (\ListAnomalyGroupSummariesResponse' {httpStatus} -> httpStatus) (\s@ListAnomalyGroupSummariesResponse' {} a -> s {httpStatus = a} :: ListAnomalyGroupSummariesResponse)++instance+  Prelude.NFData+    ListAnomalyGroupSummariesResponse+  where+  rnf ListAnomalyGroupSummariesResponse' {..} =+    Prelude.rnf anomalyGroupStatistics+      `Prelude.seq` Prelude.rnf anomalyGroupSummaryList+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/ListAnomalyGroupTimeSeries.hs view
@@ -0,0 +1,285 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.ListAnomalyGroupTimeSeries+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a list of anomalous metrics for a measure in an anomaly group.+module Amazonka.LookoutMetrics.ListAnomalyGroupTimeSeries+  ( -- * Creating a Request+    ListAnomalyGroupTimeSeries (..),+    newListAnomalyGroupTimeSeries,++    -- * Request Lenses+    listAnomalyGroupTimeSeries_maxResults,+    listAnomalyGroupTimeSeries_nextToken,+    listAnomalyGroupTimeSeries_anomalyDetectorArn,+    listAnomalyGroupTimeSeries_anomalyGroupId,+    listAnomalyGroupTimeSeries_metricName,++    -- * Destructuring the Response+    ListAnomalyGroupTimeSeriesResponse (..),+    newListAnomalyGroupTimeSeriesResponse,++    -- * Response Lenses+    listAnomalyGroupTimeSeriesResponse_anomalyGroupId,+    listAnomalyGroupTimeSeriesResponse_metricName,+    listAnomalyGroupTimeSeriesResponse_nextToken,+    listAnomalyGroupTimeSeriesResponse_timeSeriesList,+    listAnomalyGroupTimeSeriesResponse_timestampList,+    listAnomalyGroupTimeSeriesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAnomalyGroupTimeSeries' smart constructor.+data ListAnomalyGroupTimeSeries = ListAnomalyGroupTimeSeries'+  { -- | The maximum number of results to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Specify the pagination token that\'s returned by a previous request to+    -- retrieve the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the anomaly detector.+    anomalyDetectorArn :: Prelude.Text,+    -- | The ID of the anomaly group.+    anomalyGroupId :: Prelude.Text,+    -- | The name of the measure field.+    metricName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAnomalyGroupTimeSeries' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listAnomalyGroupTimeSeries_maxResults' - The maximum number of results to return.+--+-- 'nextToken', 'listAnomalyGroupTimeSeries_nextToken' - Specify the pagination token that\'s returned by a previous request to+-- retrieve the next page of results.+--+-- 'anomalyDetectorArn', 'listAnomalyGroupTimeSeries_anomalyDetectorArn' - The Amazon Resource Name (ARN) of the anomaly detector.+--+-- 'anomalyGroupId', 'listAnomalyGroupTimeSeries_anomalyGroupId' - The ID of the anomaly group.+--+-- 'metricName', 'listAnomalyGroupTimeSeries_metricName' - The name of the measure field.+newListAnomalyGroupTimeSeries ::+  -- | 'anomalyDetectorArn'+  Prelude.Text ->+  -- | 'anomalyGroupId'+  Prelude.Text ->+  -- | 'metricName'+  Prelude.Text ->+  ListAnomalyGroupTimeSeries+newListAnomalyGroupTimeSeries+  pAnomalyDetectorArn_+  pAnomalyGroupId_+  pMetricName_ =+    ListAnomalyGroupTimeSeries'+      { maxResults =+          Prelude.Nothing,+        nextToken = Prelude.Nothing,+        anomalyDetectorArn = pAnomalyDetectorArn_,+        anomalyGroupId = pAnomalyGroupId_,+        metricName = pMetricName_+      }++-- | The maximum number of results to return.+listAnomalyGroupTimeSeries_maxResults :: Lens.Lens' ListAnomalyGroupTimeSeries (Prelude.Maybe Prelude.Natural)+listAnomalyGroupTimeSeries_maxResults = Lens.lens (\ListAnomalyGroupTimeSeries' {maxResults} -> maxResults) (\s@ListAnomalyGroupTimeSeries' {} a -> s {maxResults = a} :: ListAnomalyGroupTimeSeries)++-- | Specify the pagination token that\'s returned by a previous request to+-- retrieve the next page of results.+listAnomalyGroupTimeSeries_nextToken :: Lens.Lens' ListAnomalyGroupTimeSeries (Prelude.Maybe Prelude.Text)+listAnomalyGroupTimeSeries_nextToken = Lens.lens (\ListAnomalyGroupTimeSeries' {nextToken} -> nextToken) (\s@ListAnomalyGroupTimeSeries' {} a -> s {nextToken = a} :: ListAnomalyGroupTimeSeries)++-- | The Amazon Resource Name (ARN) of the anomaly detector.+listAnomalyGroupTimeSeries_anomalyDetectorArn :: Lens.Lens' ListAnomalyGroupTimeSeries Prelude.Text+listAnomalyGroupTimeSeries_anomalyDetectorArn = Lens.lens (\ListAnomalyGroupTimeSeries' {anomalyDetectorArn} -> anomalyDetectorArn) (\s@ListAnomalyGroupTimeSeries' {} a -> s {anomalyDetectorArn = a} :: ListAnomalyGroupTimeSeries)++-- | The ID of the anomaly group.+listAnomalyGroupTimeSeries_anomalyGroupId :: Lens.Lens' ListAnomalyGroupTimeSeries Prelude.Text+listAnomalyGroupTimeSeries_anomalyGroupId = Lens.lens (\ListAnomalyGroupTimeSeries' {anomalyGroupId} -> anomalyGroupId) (\s@ListAnomalyGroupTimeSeries' {} a -> s {anomalyGroupId = a} :: ListAnomalyGroupTimeSeries)++-- | The name of the measure field.+listAnomalyGroupTimeSeries_metricName :: Lens.Lens' ListAnomalyGroupTimeSeries Prelude.Text+listAnomalyGroupTimeSeries_metricName = Lens.lens (\ListAnomalyGroupTimeSeries' {metricName} -> metricName) (\s@ListAnomalyGroupTimeSeries' {} a -> s {metricName = a} :: ListAnomalyGroupTimeSeries)++instance Core.AWSRequest ListAnomalyGroupTimeSeries where+  type+    AWSResponse ListAnomalyGroupTimeSeries =+      ListAnomalyGroupTimeSeriesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListAnomalyGroupTimeSeriesResponse'+            Prelude.<$> (x Data..?> "AnomalyGroupId")+            Prelude.<*> (x Data..?> "MetricName")+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (x Data..?> "TimeSeriesList" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "TimestampList" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListAnomalyGroupTimeSeries where+  hashWithSalt _salt ListAnomalyGroupTimeSeries' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` anomalyDetectorArn+      `Prelude.hashWithSalt` anomalyGroupId+      `Prelude.hashWithSalt` metricName++instance Prelude.NFData ListAnomalyGroupTimeSeries where+  rnf ListAnomalyGroupTimeSeries' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf anomalyDetectorArn+      `Prelude.seq` Prelude.rnf anomalyGroupId+      `Prelude.seq` Prelude.rnf metricName++instance Data.ToHeaders ListAnomalyGroupTimeSeries where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListAnomalyGroupTimeSeries where+  toJSON ListAnomalyGroupTimeSeries' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just+              ("AnomalyDetectorArn" Data..= anomalyDetectorArn),+            Prelude.Just+              ("AnomalyGroupId" Data..= anomalyGroupId),+            Prelude.Just ("MetricName" Data..= metricName)+          ]+      )++instance Data.ToPath ListAnomalyGroupTimeSeries where+  toPath = Prelude.const "/ListAnomalyGroupTimeSeries"++instance Data.ToQuery ListAnomalyGroupTimeSeries where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListAnomalyGroupTimeSeriesResponse' smart constructor.+data ListAnomalyGroupTimeSeriesResponse = ListAnomalyGroupTimeSeriesResponse'+  { -- | The ID of the anomaly group.+    anomalyGroupId :: Prelude.Maybe Prelude.Text,+    -- | The name of the measure field.+    metricName :: Prelude.Maybe Prelude.Text,+    -- | The pagination token that\'s included if more results are available.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of anomalous metrics.+    timeSeriesList :: Prelude.Maybe [TimeSeries],+    -- | Timestamps for the anomalous metrics.+    timestampList :: 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 'ListAnomalyGroupTimeSeriesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyGroupId', 'listAnomalyGroupTimeSeriesResponse_anomalyGroupId' - The ID of the anomaly group.+--+-- 'metricName', 'listAnomalyGroupTimeSeriesResponse_metricName' - The name of the measure field.+--+-- 'nextToken', 'listAnomalyGroupTimeSeriesResponse_nextToken' - The pagination token that\'s included if more results are available.+--+-- 'timeSeriesList', 'listAnomalyGroupTimeSeriesResponse_timeSeriesList' - A list of anomalous metrics.+--+-- 'timestampList', 'listAnomalyGroupTimeSeriesResponse_timestampList' - Timestamps for the anomalous metrics.+--+-- 'httpStatus', 'listAnomalyGroupTimeSeriesResponse_httpStatus' - The response's http status code.+newListAnomalyGroupTimeSeriesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListAnomalyGroupTimeSeriesResponse+newListAnomalyGroupTimeSeriesResponse pHttpStatus_ =+  ListAnomalyGroupTimeSeriesResponse'+    { anomalyGroupId =+        Prelude.Nothing,+      metricName = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      timeSeriesList = Prelude.Nothing,+      timestampList = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ID of the anomaly group.+listAnomalyGroupTimeSeriesResponse_anomalyGroupId :: Lens.Lens' ListAnomalyGroupTimeSeriesResponse (Prelude.Maybe Prelude.Text)+listAnomalyGroupTimeSeriesResponse_anomalyGroupId = Lens.lens (\ListAnomalyGroupTimeSeriesResponse' {anomalyGroupId} -> anomalyGroupId) (\s@ListAnomalyGroupTimeSeriesResponse' {} a -> s {anomalyGroupId = a} :: ListAnomalyGroupTimeSeriesResponse)++-- | The name of the measure field.+listAnomalyGroupTimeSeriesResponse_metricName :: Lens.Lens' ListAnomalyGroupTimeSeriesResponse (Prelude.Maybe Prelude.Text)+listAnomalyGroupTimeSeriesResponse_metricName = Lens.lens (\ListAnomalyGroupTimeSeriesResponse' {metricName} -> metricName) (\s@ListAnomalyGroupTimeSeriesResponse' {} a -> s {metricName = a} :: ListAnomalyGroupTimeSeriesResponse)++-- | The pagination token that\'s included if more results are available.+listAnomalyGroupTimeSeriesResponse_nextToken :: Lens.Lens' ListAnomalyGroupTimeSeriesResponse (Prelude.Maybe Prelude.Text)+listAnomalyGroupTimeSeriesResponse_nextToken = Lens.lens (\ListAnomalyGroupTimeSeriesResponse' {nextToken} -> nextToken) (\s@ListAnomalyGroupTimeSeriesResponse' {} a -> s {nextToken = a} :: ListAnomalyGroupTimeSeriesResponse)++-- | A list of anomalous metrics.+listAnomalyGroupTimeSeriesResponse_timeSeriesList :: Lens.Lens' ListAnomalyGroupTimeSeriesResponse (Prelude.Maybe [TimeSeries])+listAnomalyGroupTimeSeriesResponse_timeSeriesList = Lens.lens (\ListAnomalyGroupTimeSeriesResponse' {timeSeriesList} -> timeSeriesList) (\s@ListAnomalyGroupTimeSeriesResponse' {} a -> s {timeSeriesList = a} :: ListAnomalyGroupTimeSeriesResponse) Prelude.. Lens.mapping Lens.coerced++-- | Timestamps for the anomalous metrics.+listAnomalyGroupTimeSeriesResponse_timestampList :: Lens.Lens' ListAnomalyGroupTimeSeriesResponse (Prelude.Maybe [Prelude.Text])+listAnomalyGroupTimeSeriesResponse_timestampList = Lens.lens (\ListAnomalyGroupTimeSeriesResponse' {timestampList} -> timestampList) (\s@ListAnomalyGroupTimeSeriesResponse' {} a -> s {timestampList = a} :: ListAnomalyGroupTimeSeriesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listAnomalyGroupTimeSeriesResponse_httpStatus :: Lens.Lens' ListAnomalyGroupTimeSeriesResponse Prelude.Int+listAnomalyGroupTimeSeriesResponse_httpStatus = Lens.lens (\ListAnomalyGroupTimeSeriesResponse' {httpStatus} -> httpStatus) (\s@ListAnomalyGroupTimeSeriesResponse' {} a -> s {httpStatus = a} :: ListAnomalyGroupTimeSeriesResponse)++instance+  Prelude.NFData+    ListAnomalyGroupTimeSeriesResponse+  where+  rnf ListAnomalyGroupTimeSeriesResponse' {..} =+    Prelude.rnf anomalyGroupId+      `Prelude.seq` Prelude.rnf metricName+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf timeSeriesList+      `Prelude.seq` Prelude.rnf timestampList+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/ListMetricSets.hs view
@@ -0,0 +1,230 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.ListMetricSets+-- 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 datasets in the current AWS Region.+--+-- Amazon Lookout for Metrics API actions are eventually consistent. If you+-- do a read operation on a resource immediately after creating or+-- modifying it, use retries to allow time for the write operation to+-- complete.+module Amazonka.LookoutMetrics.ListMetricSets+  ( -- * Creating a Request+    ListMetricSets (..),+    newListMetricSets,++    -- * Request Lenses+    listMetricSets_anomalyDetectorArn,+    listMetricSets_maxResults,+    listMetricSets_nextToken,++    -- * Destructuring the Response+    ListMetricSetsResponse (..),+    newListMetricSetsResponse,++    -- * Response Lenses+    listMetricSetsResponse_metricSetSummaryList,+    listMetricSetsResponse_nextToken,+    listMetricSetsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListMetricSets' smart constructor.+data ListMetricSets = ListMetricSets'+  { -- | The ARN of the anomaly detector containing the metrics sets to list.+    anomalyDetectorArn :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of results to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the result of the previous request was truncated, the response+    -- includes a @NextToken@. To retrieve the next set of results, use the+    -- token in the next request. Tokens expire after 24 hours.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListMetricSets' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyDetectorArn', 'listMetricSets_anomalyDetectorArn' - The ARN of the anomaly detector containing the metrics sets to list.+--+-- 'maxResults', 'listMetricSets_maxResults' - The maximum number of results to return.+--+-- 'nextToken', 'listMetricSets_nextToken' - If the result of the previous request was truncated, the response+-- includes a @NextToken@. To retrieve the next set of results, use the+-- token in the next request. Tokens expire after 24 hours.+newListMetricSets ::+  ListMetricSets+newListMetricSets =+  ListMetricSets'+    { anomalyDetectorArn =+        Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The ARN of the anomaly detector containing the metrics sets to list.+listMetricSets_anomalyDetectorArn :: Lens.Lens' ListMetricSets (Prelude.Maybe Prelude.Text)+listMetricSets_anomalyDetectorArn = Lens.lens (\ListMetricSets' {anomalyDetectorArn} -> anomalyDetectorArn) (\s@ListMetricSets' {} a -> s {anomalyDetectorArn = a} :: ListMetricSets)++-- | The maximum number of results to return.+listMetricSets_maxResults :: Lens.Lens' ListMetricSets (Prelude.Maybe Prelude.Natural)+listMetricSets_maxResults = Lens.lens (\ListMetricSets' {maxResults} -> maxResults) (\s@ListMetricSets' {} a -> s {maxResults = a} :: ListMetricSets)++-- | If the result of the previous request was truncated, the response+-- includes a @NextToken@. To retrieve the next set of results, use the+-- token in the next request. Tokens expire after 24 hours.+listMetricSets_nextToken :: Lens.Lens' ListMetricSets (Prelude.Maybe Prelude.Text)+listMetricSets_nextToken = Lens.lens (\ListMetricSets' {nextToken} -> nextToken) (\s@ListMetricSets' {} a -> s {nextToken = a} :: ListMetricSets)++instance Core.AWSRequest ListMetricSets where+  type+    AWSResponse ListMetricSets =+      ListMetricSetsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListMetricSetsResponse'+            Prelude.<$> ( x+                            Data..?> "MetricSetSummaryList"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListMetricSets where+  hashWithSalt _salt ListMetricSets' {..} =+    _salt+      `Prelude.hashWithSalt` anomalyDetectorArn+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListMetricSets where+  rnf ListMetricSets' {..} =+    Prelude.rnf anomalyDetectorArn+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListMetricSets where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListMetricSets where+  toJSON ListMetricSets' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AnomalyDetectorArn" Data..=)+              Prelude.<$> anomalyDetectorArn,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListMetricSets where+  toPath = Prelude.const "/ListMetricSets"++instance Data.ToQuery ListMetricSets where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListMetricSetsResponse' smart constructor.+data ListMetricSetsResponse = ListMetricSetsResponse'+  { -- | A list of the datasets in the AWS Region, with configuration details for+    -- each.+    metricSetSummaryList :: Prelude.Maybe [MetricSetSummary],+    -- | If the response is truncated, the list call returns this token. To+    -- retrieve the next set of results, use the token in the next list+    -- request.+    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 'ListMetricSetsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metricSetSummaryList', 'listMetricSetsResponse_metricSetSummaryList' - A list of the datasets in the AWS Region, with configuration details for+-- each.+--+-- 'nextToken', 'listMetricSetsResponse_nextToken' - If the response is truncated, the list call returns this token. To+-- retrieve the next set of results, use the token in the next list+-- request.+--+-- 'httpStatus', 'listMetricSetsResponse_httpStatus' - The response's http status code.+newListMetricSetsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListMetricSetsResponse+newListMetricSetsResponse pHttpStatus_ =+  ListMetricSetsResponse'+    { metricSetSummaryList =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of the datasets in the AWS Region, with configuration details for+-- each.+listMetricSetsResponse_metricSetSummaryList :: Lens.Lens' ListMetricSetsResponse (Prelude.Maybe [MetricSetSummary])+listMetricSetsResponse_metricSetSummaryList = Lens.lens (\ListMetricSetsResponse' {metricSetSummaryList} -> metricSetSummaryList) (\s@ListMetricSetsResponse' {} a -> s {metricSetSummaryList = a} :: ListMetricSetsResponse) Prelude.. Lens.mapping Lens.coerced++-- | If the response is truncated, the list call returns this token. To+-- retrieve the next set of results, use the token in the next list+-- request.+listMetricSetsResponse_nextToken :: Lens.Lens' ListMetricSetsResponse (Prelude.Maybe Prelude.Text)+listMetricSetsResponse_nextToken = Lens.lens (\ListMetricSetsResponse' {nextToken} -> nextToken) (\s@ListMetricSetsResponse' {} a -> s {nextToken = a} :: ListMetricSetsResponse)++-- | The response's http status code.+listMetricSetsResponse_httpStatus :: Lens.Lens' ListMetricSetsResponse Prelude.Int+listMetricSetsResponse_httpStatus = Lens.lens (\ListMetricSetsResponse' {httpStatus} -> httpStatus) (\s@ListMetricSetsResponse' {} a -> s {httpStatus = a} :: ListMetricSetsResponse)++instance Prelude.NFData ListMetricSetsResponse where+  rnf ListMetricSetsResponse' {..} =+    Prelude.rnf metricSetSummaryList+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/ListTagsForResource.hs view
@@ -0,0 +1,161 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.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)+--+-- Gets a list of+-- <https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html tags>+-- for a detector, dataset, or alert.+module Amazonka.LookoutMetrics.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.LookoutMetrics.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 resource\'s Amazon Resource Name (ARN).+    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 resource\'s Amazon Resource Name (ARN).+newListTagsForResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceArn_ =+  ListTagsForResource' {resourceArn = pResourceArn_}++-- | The resource\'s Amazon Resource Name (ARN).+listTagsForResource_resourceArn :: Lens.Lens' ListTagsForResource Prelude.Text+listTagsForResource_resourceArn = Lens.lens (\ListTagsForResource' {resourceArn} -> resourceArn) (\s@ListTagsForResource' {} a -> s {resourceArn = a} :: ListTagsForResource)++instance Core.AWSRequest ListTagsForResource where+  type+    AWSResponse ListTagsForResource =+      ListTagsForResourceResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListTagsForResourceResponse'+            Prelude.<$> (x Data..?> "Tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListTagsForResource where+  hashWithSalt _salt ListTagsForResource' {..} =+    _salt `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData ListTagsForResource where+  rnf ListTagsForResource' {..} =+    Prelude.rnf resourceArn++instance Data.ToHeaders ListTagsForResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListTagsForResource where+  toPath ListTagsForResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery ListTagsForResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+  { -- | The resource\'s tags.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'listTagsForResourceResponse_tags' - The resource\'s tags.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The resource\'s tags.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)++instance Prelude.NFData ListTagsForResourceResponse where+  rnf ListTagsForResourceResponse' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/PutFeedback.hs view
@@ -0,0 +1,174 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.PutFeedback+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Add feedback for an anomalous metric.+module Amazonka.LookoutMetrics.PutFeedback+  ( -- * Creating a Request+    PutFeedback (..),+    newPutFeedback,++    -- * Request Lenses+    putFeedback_anomalyDetectorArn,+    putFeedback_anomalyGroupTimeSeriesFeedback,++    -- * Destructuring the Response+    PutFeedbackResponse (..),+    newPutFeedbackResponse,++    -- * Response Lenses+    putFeedbackResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutFeedback' smart constructor.+data PutFeedback = PutFeedback'+  { -- | The Amazon Resource Name (ARN) of the anomaly detector.+    anomalyDetectorArn :: Prelude.Text,+    -- | Feedback for an anomalous metric.+    anomalyGroupTimeSeriesFeedback :: AnomalyGroupTimeSeriesFeedback+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutFeedback' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyDetectorArn', 'putFeedback_anomalyDetectorArn' - The Amazon Resource Name (ARN) of the anomaly detector.+--+-- 'anomalyGroupTimeSeriesFeedback', 'putFeedback_anomalyGroupTimeSeriesFeedback' - Feedback for an anomalous metric.+newPutFeedback ::+  -- | 'anomalyDetectorArn'+  Prelude.Text ->+  -- | 'anomalyGroupTimeSeriesFeedback'+  AnomalyGroupTimeSeriesFeedback ->+  PutFeedback+newPutFeedback+  pAnomalyDetectorArn_+  pAnomalyGroupTimeSeriesFeedback_ =+    PutFeedback'+      { anomalyDetectorArn =+          pAnomalyDetectorArn_,+        anomalyGroupTimeSeriesFeedback =+          pAnomalyGroupTimeSeriesFeedback_+      }++-- | The Amazon Resource Name (ARN) of the anomaly detector.+putFeedback_anomalyDetectorArn :: Lens.Lens' PutFeedback Prelude.Text+putFeedback_anomalyDetectorArn = Lens.lens (\PutFeedback' {anomalyDetectorArn} -> anomalyDetectorArn) (\s@PutFeedback' {} a -> s {anomalyDetectorArn = a} :: PutFeedback)++-- | Feedback for an anomalous metric.+putFeedback_anomalyGroupTimeSeriesFeedback :: Lens.Lens' PutFeedback AnomalyGroupTimeSeriesFeedback+putFeedback_anomalyGroupTimeSeriesFeedback = Lens.lens (\PutFeedback' {anomalyGroupTimeSeriesFeedback} -> anomalyGroupTimeSeriesFeedback) (\s@PutFeedback' {} a -> s {anomalyGroupTimeSeriesFeedback = a} :: PutFeedback)++instance Core.AWSRequest PutFeedback where+  type AWSResponse PutFeedback = PutFeedbackResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          PutFeedbackResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable PutFeedback where+  hashWithSalt _salt PutFeedback' {..} =+    _salt+      `Prelude.hashWithSalt` anomalyDetectorArn+      `Prelude.hashWithSalt` anomalyGroupTimeSeriesFeedback++instance Prelude.NFData PutFeedback where+  rnf PutFeedback' {..} =+    Prelude.rnf anomalyDetectorArn+      `Prelude.seq` Prelude.rnf anomalyGroupTimeSeriesFeedback++instance Data.ToHeaders PutFeedback where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON PutFeedback where+  toJSON PutFeedback' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("AnomalyDetectorArn" Data..= anomalyDetectorArn),+            Prelude.Just+              ( "AnomalyGroupTimeSeriesFeedback"+                  Data..= anomalyGroupTimeSeriesFeedback+              )+          ]+      )++instance Data.ToPath PutFeedback where+  toPath = Prelude.const "/PutFeedback"++instance Data.ToQuery PutFeedback where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutFeedbackResponse' smart constructor.+data PutFeedbackResponse = PutFeedbackResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutFeedbackResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putFeedbackResponse_httpStatus' - The response's http status code.+newPutFeedbackResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  PutFeedbackResponse+newPutFeedbackResponse pHttpStatus_ =+  PutFeedbackResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+putFeedbackResponse_httpStatus :: Lens.Lens' PutFeedbackResponse Prelude.Int+putFeedbackResponse_httpStatus = Lens.lens (\PutFeedbackResponse' {httpStatus} -> httpStatus) (\s@PutFeedbackResponse' {} a -> s {httpStatus = a} :: PutFeedbackResponse)++instance Prelude.NFData PutFeedbackResponse where+  rnf PutFeedbackResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/TagResource.hs view
@@ -0,0 +1,168 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.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+-- <https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html tags>+-- to a detector, dataset, or alert.+module Amazonka.LookoutMetrics.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.LookoutMetrics.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 resource\'s Amazon Resource Name (ARN).+    resourceArn :: Prelude.Text,+    -- | Tags to apply to the resource. Tag keys and values can contain letters,+    -- numbers, spaces, and the following symbols: @_.:\/=+\@-@+    tags :: Prelude.HashMap Prelude.Text Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'tagResource_resourceArn' - The resource\'s Amazon Resource Name (ARN).+--+-- 'tags', 'tagResource_tags' - Tags to apply to the resource. Tag keys and values can contain letters,+-- numbers, spaces, and the following symbols: @_.:\/=+\@-@+newTagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  TagResource+newTagResource pResourceArn_ =+  TagResource'+    { resourceArn = pResourceArn_,+      tags = Prelude.mempty+    }++-- | The resource\'s Amazon Resource Name (ARN).+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | Tags to apply to the resource. Tag keys and values can contain letters,+-- numbers, spaces, and the following symbols: @_.:\/=+\@-@+tagResource_tags :: Lens.Lens' TagResource (Prelude.HashMap Prelude.Text Prelude.Text)+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.coerced++instance Core.AWSRequest TagResource where+  type AWSResponse TagResource = TagResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          TagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable TagResource where+  hashWithSalt _salt TagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` tags++instance Prelude.NFData TagResource where+  rnf TagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders TagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON TagResource where+  toJSON TagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("tags" Data..= tags)]+      )++instance Data.ToPath TagResource where+  toPath TagResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery TagResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newTagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'tagResourceResponse_httpStatus' - The response's http status code.+newTagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  TagResourceResponse+newTagResourceResponse pHttpStatus_ =+  TagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+tagResourceResponse_httpStatus :: Lens.Lens' TagResourceResponse Prelude.Int+tagResourceResponse_httpStatus = Lens.lens (\TagResourceResponse' {httpStatus} -> httpStatus) (\s@TagResourceResponse' {} a -> s {httpStatus = a} :: TagResourceResponse)++instance Prelude.NFData TagResourceResponse where+  rnf TagResourceResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/Types.hs view
@@ -0,0 +1,689 @@+{-# 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.LookoutMetrics.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.LookoutMetrics.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _AccessDeniedException,+    _ConflictException,+    _InternalServerException,+    _ResourceNotFoundException,+    _ServiceQuotaExceededException,+    _TooManyRequestsException,+    _ValidationException,++    -- * AggregationFunction+    AggregationFunction (..),++    -- * AlertStatus+    AlertStatus (..),++    -- * AlertType+    AlertType (..),++    -- * AnomalyDetectionTaskStatus+    AnomalyDetectionTaskStatus (..),++    -- * AnomalyDetectorFailureType+    AnomalyDetectorFailureType (..),++    -- * AnomalyDetectorStatus+    AnomalyDetectorStatus (..),++    -- * CSVFileCompression+    CSVFileCompression (..),++    -- * Confidence+    Confidence (..),++    -- * DataQualityMetricType+    DataQualityMetricType (..),++    -- * FilterOperation+    FilterOperation (..),++    -- * Frequency+    Frequency (..),++    -- * JsonFileCompression+    JsonFileCompression (..),++    -- * RelationshipType+    RelationshipType (..),++    -- * SnsFormat+    SnsFormat (..),++    -- * Action+    Action (..),+    newAction,+    action_lambdaConfiguration,+    action_sNSConfiguration,++    -- * Alert+    Alert (..),+    newAlert,+    alert_action,+    alert_alertArn,+    alert_alertDescription,+    alert_alertFilters,+    alert_alertName,+    alert_alertSensitivityThreshold,+    alert_alertStatus,+    alert_alertType,+    alert_anomalyDetectorArn,+    alert_creationTime,+    alert_lastModificationTime,++    -- * AlertFilters+    AlertFilters (..),+    newAlertFilters,+    alertFilters_dimensionFilterList,+    alertFilters_metricList,++    -- * AlertSummary+    AlertSummary (..),+    newAlertSummary,+    alertSummary_alertArn,+    alertSummary_alertName,+    alertSummary_alertSensitivityThreshold,+    alertSummary_alertStatus,+    alertSummary_alertType,+    alertSummary_anomalyDetectorArn,+    alertSummary_creationTime,+    alertSummary_lastModificationTime,+    alertSummary_tags,++    -- * AnomalyDetectorConfig+    AnomalyDetectorConfig (..),+    newAnomalyDetectorConfig,+    anomalyDetectorConfig_anomalyDetectorFrequency,++    -- * AnomalyDetectorConfigSummary+    AnomalyDetectorConfigSummary (..),+    newAnomalyDetectorConfigSummary,+    anomalyDetectorConfigSummary_anomalyDetectorFrequency,++    -- * AnomalyDetectorDataQualityMetric+    AnomalyDetectorDataQualityMetric (..),+    newAnomalyDetectorDataQualityMetric,+    anomalyDetectorDataQualityMetric_metricSetDataQualityMetricList,+    anomalyDetectorDataQualityMetric_startTimestamp,++    -- * AnomalyDetectorSummary+    AnomalyDetectorSummary (..),+    newAnomalyDetectorSummary,+    anomalyDetectorSummary_anomalyDetectorArn,+    anomalyDetectorSummary_anomalyDetectorDescription,+    anomalyDetectorSummary_anomalyDetectorName,+    anomalyDetectorSummary_creationTime,+    anomalyDetectorSummary_lastModificationTime,+    anomalyDetectorSummary_status,+    anomalyDetectorSummary_tags,++    -- * AnomalyGroup+    AnomalyGroup (..),+    newAnomalyGroup,+    anomalyGroup_anomalyGroupId,+    anomalyGroup_anomalyGroupScore,+    anomalyGroup_endTime,+    anomalyGroup_metricLevelImpactList,+    anomalyGroup_primaryMetricName,+    anomalyGroup_startTime,++    -- * AnomalyGroupStatistics+    AnomalyGroupStatistics (..),+    newAnomalyGroupStatistics,+    anomalyGroupStatistics_evaluationStartDate,+    anomalyGroupStatistics_itemizedMetricStatsList,+    anomalyGroupStatistics_totalCount,++    -- * AnomalyGroupSummary+    AnomalyGroupSummary (..),+    newAnomalyGroupSummary,+    anomalyGroupSummary_anomalyGroupId,+    anomalyGroupSummary_anomalyGroupScore,+    anomalyGroupSummary_endTime,+    anomalyGroupSummary_primaryMetricName,+    anomalyGroupSummary_startTime,++    -- * AnomalyGroupTimeSeries+    AnomalyGroupTimeSeries (..),+    newAnomalyGroupTimeSeries,+    anomalyGroupTimeSeries_timeSeriesId,+    anomalyGroupTimeSeries_anomalyGroupId,++    -- * AnomalyGroupTimeSeriesFeedback+    AnomalyGroupTimeSeriesFeedback (..),+    newAnomalyGroupTimeSeriesFeedback,+    anomalyGroupTimeSeriesFeedback_anomalyGroupId,+    anomalyGroupTimeSeriesFeedback_timeSeriesId,+    anomalyGroupTimeSeriesFeedback_isAnomaly,++    -- * AppFlowConfig+    AppFlowConfig (..),+    newAppFlowConfig,+    appFlowConfig_flowName,+    appFlowConfig_roleArn,++    -- * AthenaSourceConfig+    AthenaSourceConfig (..),+    newAthenaSourceConfig,+    athenaSourceConfig_backTestConfiguration,+    athenaSourceConfig_dataCatalog,+    athenaSourceConfig_databaseName,+    athenaSourceConfig_roleArn,+    athenaSourceConfig_s3ResultsPath,+    athenaSourceConfig_tableName,+    athenaSourceConfig_workGroupName,++    -- * AttributeValue+    AttributeValue (..),+    newAttributeValue,+    attributeValue_b,+    attributeValue_bs,+    attributeValue_n,+    attributeValue_ns,+    attributeValue_s,+    attributeValue_ss,++    -- * AutoDetectionMetricSource+    AutoDetectionMetricSource (..),+    newAutoDetectionMetricSource,+    autoDetectionMetricSource_s3SourceConfig,++    -- * AutoDetectionS3SourceConfig+    AutoDetectionS3SourceConfig (..),+    newAutoDetectionS3SourceConfig,+    autoDetectionS3SourceConfig_historicalDataPathList,+    autoDetectionS3SourceConfig_templatedPathList,++    -- * BackTestConfiguration+    BackTestConfiguration (..),+    newBackTestConfiguration,+    backTestConfiguration_runBackTestMode,++    -- * CloudWatchConfig+    CloudWatchConfig (..),+    newCloudWatchConfig,+    cloudWatchConfig_backTestConfiguration,+    cloudWatchConfig_roleArn,++    -- * ContributionMatrix+    ContributionMatrix (..),+    newContributionMatrix,+    contributionMatrix_dimensionContributionList,++    -- * CsvFormatDescriptor+    CsvFormatDescriptor (..),+    newCsvFormatDescriptor,+    csvFormatDescriptor_charset,+    csvFormatDescriptor_containsHeader,+    csvFormatDescriptor_delimiter,+    csvFormatDescriptor_fileCompression,+    csvFormatDescriptor_headerList,+    csvFormatDescriptor_quoteSymbol,++    -- * DataQualityMetric+    DataQualityMetric (..),+    newDataQualityMetric,+    dataQualityMetric_metricDescription,+    dataQualityMetric_metricType,+    dataQualityMetric_metricValue,+    dataQualityMetric_relatedColumnName,++    -- * DetectedCsvFormatDescriptor+    DetectedCsvFormatDescriptor (..),+    newDetectedCsvFormatDescriptor,+    detectedCsvFormatDescriptor_charset,+    detectedCsvFormatDescriptor_containsHeader,+    detectedCsvFormatDescriptor_delimiter,+    detectedCsvFormatDescriptor_fileCompression,+    detectedCsvFormatDescriptor_headerList,+    detectedCsvFormatDescriptor_quoteSymbol,++    -- * DetectedField+    DetectedField (..),+    newDetectedField,+    detectedField_confidence,+    detectedField_message,+    detectedField_value,++    -- * DetectedFileFormatDescriptor+    DetectedFileFormatDescriptor (..),+    newDetectedFileFormatDescriptor,+    detectedFileFormatDescriptor_csvFormatDescriptor,+    detectedFileFormatDescriptor_jsonFormatDescriptor,++    -- * DetectedJsonFormatDescriptor+    DetectedJsonFormatDescriptor (..),+    newDetectedJsonFormatDescriptor,+    detectedJsonFormatDescriptor_charset,+    detectedJsonFormatDescriptor_fileCompression,++    -- * DetectedMetricSetConfig+    DetectedMetricSetConfig (..),+    newDetectedMetricSetConfig,+    detectedMetricSetConfig_metricSetFrequency,+    detectedMetricSetConfig_metricSource,+    detectedMetricSetConfig_offset,++    -- * DetectedMetricSource+    DetectedMetricSource (..),+    newDetectedMetricSource,+    detectedMetricSource_s3SourceConfig,++    -- * DetectedS3SourceConfig+    DetectedS3SourceConfig (..),+    newDetectedS3SourceConfig,+    detectedS3SourceConfig_fileFormatDescriptor,++    -- * DimensionContribution+    DimensionContribution (..),+    newDimensionContribution,+    dimensionContribution_dimensionName,+    dimensionContribution_dimensionValueContributionList,++    -- * DimensionFilter+    DimensionFilter (..),+    newDimensionFilter,+    dimensionFilter_dimensionName,+    dimensionFilter_dimensionValueList,++    -- * DimensionNameValue+    DimensionNameValue (..),+    newDimensionNameValue,+    dimensionNameValue_dimensionName,+    dimensionNameValue_dimensionValue,++    -- * DimensionValueContribution+    DimensionValueContribution (..),+    newDimensionValueContribution,+    dimensionValueContribution_contributionScore,+    dimensionValueContribution_dimensionValue,++    -- * ExecutionStatus+    ExecutionStatus (..),+    newExecutionStatus,+    executionStatus_failureReason,+    executionStatus_status,+    executionStatus_timestamp,++    -- * FileFormatDescriptor+    FileFormatDescriptor (..),+    newFileFormatDescriptor,+    fileFormatDescriptor_csvFormatDescriptor,+    fileFormatDescriptor_jsonFormatDescriptor,++    -- * Filter+    Filter (..),+    newFilter,+    filter_dimensionValue,+    filter_filterOperation,++    -- * InterMetricImpactDetails+    InterMetricImpactDetails (..),+    newInterMetricImpactDetails,+    interMetricImpactDetails_anomalyGroupId,+    interMetricImpactDetails_contributionPercentage,+    interMetricImpactDetails_metricName,+    interMetricImpactDetails_relationshipType,++    -- * ItemizedMetricStats+    ItemizedMetricStats (..),+    newItemizedMetricStats,+    itemizedMetricStats_metricName,+    itemizedMetricStats_occurrenceCount,++    -- * JsonFormatDescriptor+    JsonFormatDescriptor (..),+    newJsonFormatDescriptor,+    jsonFormatDescriptor_charset,+    jsonFormatDescriptor_fileCompression,++    -- * LambdaConfiguration+    LambdaConfiguration (..),+    newLambdaConfiguration,+    lambdaConfiguration_roleArn,+    lambdaConfiguration_lambdaArn,++    -- * Metric+    Metric (..),+    newMetric,+    metric_namespace,+    metric_metricName,+    metric_aggregationFunction,++    -- * MetricLevelImpact+    MetricLevelImpact (..),+    newMetricLevelImpact,+    metricLevelImpact_contributionMatrix,+    metricLevelImpact_metricName,+    metricLevelImpact_numTimeSeries,++    -- * MetricSetDataQualityMetric+    MetricSetDataQualityMetric (..),+    newMetricSetDataQualityMetric,+    metricSetDataQualityMetric_dataQualityMetricList,+    metricSetDataQualityMetric_metricSetArn,++    -- * MetricSetDimensionFilter+    MetricSetDimensionFilter (..),+    newMetricSetDimensionFilter,+    metricSetDimensionFilter_filterList,+    metricSetDimensionFilter_name,++    -- * MetricSetSummary+    MetricSetSummary (..),+    newMetricSetSummary,+    metricSetSummary_anomalyDetectorArn,+    metricSetSummary_creationTime,+    metricSetSummary_lastModificationTime,+    metricSetSummary_metricSetArn,+    metricSetSummary_metricSetDescription,+    metricSetSummary_metricSetName,+    metricSetSummary_tags,++    -- * MetricSource+    MetricSource (..),+    newMetricSource,+    metricSource_appFlowConfig,+    metricSource_athenaSourceConfig,+    metricSource_cloudWatchConfig,+    metricSource_rDSSourceConfig,+    metricSource_redshiftSourceConfig,+    metricSource_s3SourceConfig,++    -- * RDSSourceConfig+    RDSSourceConfig (..),+    newRDSSourceConfig,+    rDSSourceConfig_dbInstanceIdentifier,+    rDSSourceConfig_databaseHost,+    rDSSourceConfig_databaseName,+    rDSSourceConfig_databasePort,+    rDSSourceConfig_roleArn,+    rDSSourceConfig_secretManagerArn,+    rDSSourceConfig_tableName,+    rDSSourceConfig_vpcConfiguration,++    -- * RedshiftSourceConfig+    RedshiftSourceConfig (..),+    newRedshiftSourceConfig,+    redshiftSourceConfig_clusterIdentifier,+    redshiftSourceConfig_databaseHost,+    redshiftSourceConfig_databaseName,+    redshiftSourceConfig_databasePort,+    redshiftSourceConfig_roleArn,+    redshiftSourceConfig_secretManagerArn,+    redshiftSourceConfig_tableName,+    redshiftSourceConfig_vpcConfiguration,++    -- * S3SourceConfig+    S3SourceConfig (..),+    newS3SourceConfig,+    s3SourceConfig_fileFormatDescriptor,+    s3SourceConfig_historicalDataPathList,+    s3SourceConfig_roleArn,+    s3SourceConfig_templatedPathList,++    -- * SNSConfiguration+    SNSConfiguration (..),+    newSNSConfiguration,+    sNSConfiguration_snsFormat,+    sNSConfiguration_roleArn,+    sNSConfiguration_snsTopicArn,++    -- * SampleDataS3SourceConfig+    SampleDataS3SourceConfig (..),+    newSampleDataS3SourceConfig,+    sampleDataS3SourceConfig_historicalDataPathList,+    sampleDataS3SourceConfig_templatedPathList,+    sampleDataS3SourceConfig_roleArn,+    sampleDataS3SourceConfig_fileFormatDescriptor,++    -- * TimeSeries+    TimeSeries (..),+    newTimeSeries,+    timeSeries_timeSeriesId,+    timeSeries_dimensionList,+    timeSeries_metricValueList,++    -- * TimeSeriesFeedback+    TimeSeriesFeedback (..),+    newTimeSeriesFeedback,+    timeSeriesFeedback_isAnomaly,+    timeSeriesFeedback_timeSeriesId,++    -- * TimestampColumn+    TimestampColumn (..),+    newTimestampColumn,+    timestampColumn_columnFormat,+    timestampColumn_columnName,++    -- * VpcConfiguration+    VpcConfiguration (..),+    newVpcConfiguration,+    vpcConfiguration_subnetIdList,+    vpcConfiguration_securityGroupIdList,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.LookoutMetrics.Types.Action+import Amazonka.LookoutMetrics.Types.AggregationFunction+import Amazonka.LookoutMetrics.Types.Alert+import Amazonka.LookoutMetrics.Types.AlertFilters+import Amazonka.LookoutMetrics.Types.AlertStatus+import Amazonka.LookoutMetrics.Types.AlertSummary+import Amazonka.LookoutMetrics.Types.AlertType+import Amazonka.LookoutMetrics.Types.AnomalyDetectionTaskStatus+import Amazonka.LookoutMetrics.Types.AnomalyDetectorConfig+import Amazonka.LookoutMetrics.Types.AnomalyDetectorConfigSummary+import Amazonka.LookoutMetrics.Types.AnomalyDetectorDataQualityMetric+import Amazonka.LookoutMetrics.Types.AnomalyDetectorFailureType+import Amazonka.LookoutMetrics.Types.AnomalyDetectorStatus+import Amazonka.LookoutMetrics.Types.AnomalyDetectorSummary+import Amazonka.LookoutMetrics.Types.AnomalyGroup+import Amazonka.LookoutMetrics.Types.AnomalyGroupStatistics+import Amazonka.LookoutMetrics.Types.AnomalyGroupSummary+import Amazonka.LookoutMetrics.Types.AnomalyGroupTimeSeries+import Amazonka.LookoutMetrics.Types.AnomalyGroupTimeSeriesFeedback+import Amazonka.LookoutMetrics.Types.AppFlowConfig+import Amazonka.LookoutMetrics.Types.AthenaSourceConfig+import Amazonka.LookoutMetrics.Types.AttributeValue+import Amazonka.LookoutMetrics.Types.AutoDetectionMetricSource+import Amazonka.LookoutMetrics.Types.AutoDetectionS3SourceConfig+import Amazonka.LookoutMetrics.Types.BackTestConfiguration+import Amazonka.LookoutMetrics.Types.CSVFileCompression+import Amazonka.LookoutMetrics.Types.CloudWatchConfig+import Amazonka.LookoutMetrics.Types.Confidence+import Amazonka.LookoutMetrics.Types.ContributionMatrix+import Amazonka.LookoutMetrics.Types.CsvFormatDescriptor+import Amazonka.LookoutMetrics.Types.DataQualityMetric+import Amazonka.LookoutMetrics.Types.DataQualityMetricType+import Amazonka.LookoutMetrics.Types.DetectedCsvFormatDescriptor+import Amazonka.LookoutMetrics.Types.DetectedField+import Amazonka.LookoutMetrics.Types.DetectedFileFormatDescriptor+import Amazonka.LookoutMetrics.Types.DetectedJsonFormatDescriptor+import Amazonka.LookoutMetrics.Types.DetectedMetricSetConfig+import Amazonka.LookoutMetrics.Types.DetectedMetricSource+import Amazonka.LookoutMetrics.Types.DetectedS3SourceConfig+import Amazonka.LookoutMetrics.Types.DimensionContribution+import Amazonka.LookoutMetrics.Types.DimensionFilter+import Amazonka.LookoutMetrics.Types.DimensionNameValue+import Amazonka.LookoutMetrics.Types.DimensionValueContribution+import Amazonka.LookoutMetrics.Types.ExecutionStatus+import Amazonka.LookoutMetrics.Types.FileFormatDescriptor+import Amazonka.LookoutMetrics.Types.Filter+import Amazonka.LookoutMetrics.Types.FilterOperation+import Amazonka.LookoutMetrics.Types.Frequency+import Amazonka.LookoutMetrics.Types.InterMetricImpactDetails+import Amazonka.LookoutMetrics.Types.ItemizedMetricStats+import Amazonka.LookoutMetrics.Types.JsonFileCompression+import Amazonka.LookoutMetrics.Types.JsonFormatDescriptor+import Amazonka.LookoutMetrics.Types.LambdaConfiguration+import Amazonka.LookoutMetrics.Types.Metric+import Amazonka.LookoutMetrics.Types.MetricLevelImpact+import Amazonka.LookoutMetrics.Types.MetricSetDataQualityMetric+import Amazonka.LookoutMetrics.Types.MetricSetDimensionFilter+import Amazonka.LookoutMetrics.Types.MetricSetSummary+import Amazonka.LookoutMetrics.Types.MetricSource+import Amazonka.LookoutMetrics.Types.RDSSourceConfig+import Amazonka.LookoutMetrics.Types.RedshiftSourceConfig+import Amazonka.LookoutMetrics.Types.RelationshipType+import Amazonka.LookoutMetrics.Types.S3SourceConfig+import Amazonka.LookoutMetrics.Types.SNSConfiguration+import Amazonka.LookoutMetrics.Types.SampleDataS3SourceConfig+import Amazonka.LookoutMetrics.Types.SnsFormat+import Amazonka.LookoutMetrics.Types.TimeSeries+import Amazonka.LookoutMetrics.Types.TimeSeriesFeedback+import Amazonka.LookoutMetrics.Types.TimestampColumn+import Amazonka.LookoutMetrics.Types.VpcConfiguration+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2017-07-25@ of the Amazon Lookout for Metrics SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "LookoutMetrics",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "lookoutmetrics",+      Core.signingName = "lookoutmetrics",+      Core.version = "2017-07-25",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "LookoutMetrics",+      Core.retry = retry+    }+  where+    retry =+      Core.Exponential+        { Core.base = 5.0e-2,+          Core.growth = 2,+          Core.attempts = 5,+          Core.check = check+        }+    check e+      | Lens.has (Core.hasStatus 502) e =+          Prelude.Just "bad_gateway"+      | Lens.has (Core.hasStatus 504) e =+          Prelude.Just "gateway_timeout"+      | Lens.has (Core.hasStatus 500) e =+          Prelude.Just "general_server_error"+      | Lens.has (Core.hasStatus 509) e =+          Prelude.Just "limit_exceeded"+      | Lens.has+          ( Core.hasCode "RequestThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "request_throttled_exception"+      | Lens.has (Core.hasStatus 503) e =+          Prelude.Just "service_unavailable"+      | Lens.has+          ( Core.hasCode "ThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttled_exception"+      | Lens.has+          ( Core.hasCode "Throttling"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling"+      | Lens.has+          ( Core.hasCode "ThrottlingException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling_exception"+      | Lens.has+          ( Core.hasCode+              "ProvisionedThroughputExceededException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throughput_exceeded"+      | Lens.has (Core.hasStatus 429) e =+          Prelude.Just "too_many_requests"+      | Prelude.otherwise = Prelude.Nothing++-- | You do not have sufficient permissions to perform this action.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+  Core._MatchServiceError+    defaultService+    "AccessDeniedException"+    Prelude.. Core.hasStatus 403++-- | There was a conflict processing the request. Try your request again.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+  Core._MatchServiceError+    defaultService+    "ConflictException"+    Prelude.. Core.hasStatus 409++-- | The request processing has failed because of an unknown error,+-- exception, or failure.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+  Core._MatchServiceError+    defaultService+    "InternalServerException"+    Prelude.. Core.hasStatus 500++-- | The specified resource cannot be found. Check the ARN of the resource+-- and try again.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"+    Prelude.. Core.hasStatus 400++-- | The request exceeded the service\'s quotas. Check the service quotas and+-- try again.+_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceQuotaExceededException =+  Core._MatchServiceError+    defaultService+    "ServiceQuotaExceededException"+    Prelude.. Core.hasStatus 402++-- | The request was denied due to too many requests being submitted at the+-- same time.+_TooManyRequestsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_TooManyRequestsException =+  Core._MatchServiceError+    defaultService+    "TooManyRequestsException"+    Prelude.. Core.hasStatus 429++-- | The input fails to satisfy the constraints specified by the AWS service.+-- Check your input values and try again.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+  Core._MatchServiceError+    defaultService+    "ValidationException"+    Prelude.. Core.hasStatus 400
+ gen/Amazonka/LookoutMetrics/Types/Action.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.LookoutMetrics.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.LookoutMetrics.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.LookoutMetrics.Types.LambdaConfiguration+import Amazonka.LookoutMetrics.Types.SNSConfiguration+import qualified Amazonka.Prelude as Prelude++-- | A configuration that specifies the action to perform when anomalies are+-- detected.+--+-- /See:/ 'newAction' smart constructor.+data Action = Action'+  { -- | A configuration for an AWS Lambda channel.+    lambdaConfiguration :: Prelude.Maybe LambdaConfiguration,+    -- | A configuration for an Amazon SNS channel.+    sNSConfiguration :: Prelude.Maybe SNSConfiguration+  }+  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:+--+-- 'lambdaConfiguration', 'action_lambdaConfiguration' - A configuration for an AWS Lambda channel.+--+-- 'sNSConfiguration', 'action_sNSConfiguration' - A configuration for an Amazon SNS channel.+newAction ::+  Action+newAction =+  Action'+    { lambdaConfiguration = Prelude.Nothing,+      sNSConfiguration = Prelude.Nothing+    }++-- | A configuration for an AWS Lambda channel.+action_lambdaConfiguration :: Lens.Lens' Action (Prelude.Maybe LambdaConfiguration)+action_lambdaConfiguration = Lens.lens (\Action' {lambdaConfiguration} -> lambdaConfiguration) (\s@Action' {} a -> s {lambdaConfiguration = a} :: Action)++-- | A configuration for an Amazon SNS channel.+action_sNSConfiguration :: Lens.Lens' Action (Prelude.Maybe SNSConfiguration)+action_sNSConfiguration = Lens.lens (\Action' {sNSConfiguration} -> sNSConfiguration) (\s@Action' {} a -> s {sNSConfiguration = a} :: Action)++instance Data.FromJSON Action where+  parseJSON =+    Data.withObject+      "Action"+      ( \x ->+          Action'+            Prelude.<$> (x Data..:? "LambdaConfiguration")+            Prelude.<*> (x Data..:? "SNSConfiguration")+      )++instance Prelude.Hashable Action where+  hashWithSalt _salt Action' {..} =+    _salt+      `Prelude.hashWithSalt` lambdaConfiguration+      `Prelude.hashWithSalt` sNSConfiguration++instance Prelude.NFData Action where+  rnf Action' {..} =+    Prelude.rnf lambdaConfiguration+      `Prelude.seq` Prelude.rnf sNSConfiguration++instance Data.ToJSON Action where+  toJSON Action' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("LambdaConfiguration" Data..=)+              Prelude.<$> lambdaConfiguration,+            ("SNSConfiguration" Data..=)+              Prelude.<$> sNSConfiguration+          ]+      )
+ gen/Amazonka/LookoutMetrics/Types/AggregationFunction.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.LookoutMetrics.Types.AggregationFunction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.AggregationFunction+  ( AggregationFunction+      ( ..,+        AggregationFunction_AVG,+        AggregationFunction_SUM+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AggregationFunction = AggregationFunction'+  { fromAggregationFunction ::+      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 AggregationFunction_AVG :: AggregationFunction+pattern AggregationFunction_AVG = AggregationFunction' "AVG"++pattern AggregationFunction_SUM :: AggregationFunction+pattern AggregationFunction_SUM = AggregationFunction' "SUM"++{-# COMPLETE+  AggregationFunction_AVG,+  AggregationFunction_SUM,+  AggregationFunction'+  #-}
+ gen/Amazonka/LookoutMetrics/Types/Alert.hs view
@@ -0,0 +1,199 @@+{-# 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.LookoutMetrics.Types.Alert+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.Alert where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.Action+import Amazonka.LookoutMetrics.Types.AlertFilters+import Amazonka.LookoutMetrics.Types.AlertStatus+import Amazonka.LookoutMetrics.Types.AlertType+import qualified Amazonka.Prelude as Prelude++-- | A configuration for Amazon SNS-integrated notifications.+--+-- /See:/ 'newAlert' smart constructor.+data Alert = Alert'+  { -- | Action that will be triggered when there is an alert.+    action :: Prelude.Maybe Action,+    -- | The ARN of the alert.+    alertArn :: Prelude.Maybe Prelude.Text,+    -- | A description of the alert.+    alertDescription :: Prelude.Maybe Prelude.Text,+    -- | The configuration of the alert filters, containing MetricList and+    -- DimensionFilter.+    alertFilters :: Prelude.Maybe AlertFilters,+    -- | The name of the alert.+    alertName :: Prelude.Maybe Prelude.Text,+    -- | The minimum severity for an anomaly to trigger the alert.+    alertSensitivityThreshold :: Prelude.Maybe Prelude.Natural,+    -- | The status of the alert.+    alertStatus :: Prelude.Maybe AlertStatus,+    -- | The type of the alert.+    alertType :: Prelude.Maybe AlertType,+    -- | The ARN of the detector to which the alert is attached.+    anomalyDetectorArn :: Prelude.Maybe Prelude.Text,+    -- | The time at which the alert was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The time at which the alert was last modified.+    lastModificationTime :: Prelude.Maybe Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Alert' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'action', 'alert_action' - Action that will be triggered when there is an alert.+--+-- 'alertArn', 'alert_alertArn' - The ARN of the alert.+--+-- 'alertDescription', 'alert_alertDescription' - A description of the alert.+--+-- 'alertFilters', 'alert_alertFilters' - The configuration of the alert filters, containing MetricList and+-- DimensionFilter.+--+-- 'alertName', 'alert_alertName' - The name of the alert.+--+-- 'alertSensitivityThreshold', 'alert_alertSensitivityThreshold' - The minimum severity for an anomaly to trigger the alert.+--+-- 'alertStatus', 'alert_alertStatus' - The status of the alert.+--+-- 'alertType', 'alert_alertType' - The type of the alert.+--+-- 'anomalyDetectorArn', 'alert_anomalyDetectorArn' - The ARN of the detector to which the alert is attached.+--+-- 'creationTime', 'alert_creationTime' - The time at which the alert was created.+--+-- 'lastModificationTime', 'alert_lastModificationTime' - The time at which the alert was last modified.+newAlert ::+  Alert+newAlert =+  Alert'+    { action = Prelude.Nothing,+      alertArn = Prelude.Nothing,+      alertDescription = Prelude.Nothing,+      alertFilters = Prelude.Nothing,+      alertName = Prelude.Nothing,+      alertSensitivityThreshold = Prelude.Nothing,+      alertStatus = Prelude.Nothing,+      alertType = Prelude.Nothing,+      anomalyDetectorArn = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      lastModificationTime = Prelude.Nothing+    }++-- | Action that will be triggered when there is an alert.+alert_action :: Lens.Lens' Alert (Prelude.Maybe Action)+alert_action = Lens.lens (\Alert' {action} -> action) (\s@Alert' {} a -> s {action = a} :: Alert)++-- | The ARN of the alert.+alert_alertArn :: Lens.Lens' Alert (Prelude.Maybe Prelude.Text)+alert_alertArn = Lens.lens (\Alert' {alertArn} -> alertArn) (\s@Alert' {} a -> s {alertArn = a} :: Alert)++-- | A description of the alert.+alert_alertDescription :: Lens.Lens' Alert (Prelude.Maybe Prelude.Text)+alert_alertDescription = Lens.lens (\Alert' {alertDescription} -> alertDescription) (\s@Alert' {} a -> s {alertDescription = a} :: Alert)++-- | The configuration of the alert filters, containing MetricList and+-- DimensionFilter.+alert_alertFilters :: Lens.Lens' Alert (Prelude.Maybe AlertFilters)+alert_alertFilters = Lens.lens (\Alert' {alertFilters} -> alertFilters) (\s@Alert' {} a -> s {alertFilters = a} :: Alert)++-- | The name of the alert.+alert_alertName :: Lens.Lens' Alert (Prelude.Maybe Prelude.Text)+alert_alertName = Lens.lens (\Alert' {alertName} -> alertName) (\s@Alert' {} a -> s {alertName = a} :: Alert)++-- | The minimum severity for an anomaly to trigger the alert.+alert_alertSensitivityThreshold :: Lens.Lens' Alert (Prelude.Maybe Prelude.Natural)+alert_alertSensitivityThreshold = Lens.lens (\Alert' {alertSensitivityThreshold} -> alertSensitivityThreshold) (\s@Alert' {} a -> s {alertSensitivityThreshold = a} :: Alert)++-- | The status of the alert.+alert_alertStatus :: Lens.Lens' Alert (Prelude.Maybe AlertStatus)+alert_alertStatus = Lens.lens (\Alert' {alertStatus} -> alertStatus) (\s@Alert' {} a -> s {alertStatus = a} :: Alert)++-- | The type of the alert.+alert_alertType :: Lens.Lens' Alert (Prelude.Maybe AlertType)+alert_alertType = Lens.lens (\Alert' {alertType} -> alertType) (\s@Alert' {} a -> s {alertType = a} :: Alert)++-- | The ARN of the detector to which the alert is attached.+alert_anomalyDetectorArn :: Lens.Lens' Alert (Prelude.Maybe Prelude.Text)+alert_anomalyDetectorArn = Lens.lens (\Alert' {anomalyDetectorArn} -> anomalyDetectorArn) (\s@Alert' {} a -> s {anomalyDetectorArn = a} :: Alert)++-- | The time at which the alert was created.+alert_creationTime :: Lens.Lens' Alert (Prelude.Maybe Prelude.UTCTime)+alert_creationTime = Lens.lens (\Alert' {creationTime} -> creationTime) (\s@Alert' {} a -> s {creationTime = a} :: Alert) Prelude.. Lens.mapping Data._Time++-- | The time at which the alert was last modified.+alert_lastModificationTime :: Lens.Lens' Alert (Prelude.Maybe Prelude.UTCTime)+alert_lastModificationTime = Lens.lens (\Alert' {lastModificationTime} -> lastModificationTime) (\s@Alert' {} a -> s {lastModificationTime = a} :: Alert) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON Alert where+  parseJSON =+    Data.withObject+      "Alert"+      ( \x ->+          Alert'+            Prelude.<$> (x Data..:? "Action")+            Prelude.<*> (x Data..:? "AlertArn")+            Prelude.<*> (x Data..:? "AlertDescription")+            Prelude.<*> (x Data..:? "AlertFilters")+            Prelude.<*> (x Data..:? "AlertName")+            Prelude.<*> (x Data..:? "AlertSensitivityThreshold")+            Prelude.<*> (x Data..:? "AlertStatus")+            Prelude.<*> (x Data..:? "AlertType")+            Prelude.<*> (x Data..:? "AnomalyDetectorArn")+            Prelude.<*> (x Data..:? "CreationTime")+            Prelude.<*> (x Data..:? "LastModificationTime")+      )++instance Prelude.Hashable Alert where+  hashWithSalt _salt Alert' {..} =+    _salt+      `Prelude.hashWithSalt` action+      `Prelude.hashWithSalt` alertArn+      `Prelude.hashWithSalt` alertDescription+      `Prelude.hashWithSalt` alertFilters+      `Prelude.hashWithSalt` alertName+      `Prelude.hashWithSalt` alertSensitivityThreshold+      `Prelude.hashWithSalt` alertStatus+      `Prelude.hashWithSalt` alertType+      `Prelude.hashWithSalt` anomalyDetectorArn+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` lastModificationTime++instance Prelude.NFData Alert where+  rnf Alert' {..} =+    Prelude.rnf action+      `Prelude.seq` Prelude.rnf alertArn+      `Prelude.seq` Prelude.rnf alertDescription+      `Prelude.seq` Prelude.rnf alertFilters+      `Prelude.seq` Prelude.rnf alertName+      `Prelude.seq` Prelude.rnf alertSensitivityThreshold+      `Prelude.seq` Prelude.rnf alertStatus+      `Prelude.seq` Prelude.rnf alertType+      `Prelude.seq` Prelude.rnf anomalyDetectorArn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf lastModificationTime
+ gen/Amazonka/LookoutMetrics/Types/AlertFilters.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.LookoutMetrics.Types.AlertFilters+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.AlertFilters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.DimensionFilter+import qualified Amazonka.Prelude as Prelude++-- | The configuration of the alert filters.+--+-- /See:/ 'newAlertFilters' smart constructor.+data AlertFilters = AlertFilters'+  { -- | The list of DimensionFilter objects that are used for dimension-based+    -- filtering.+    dimensionFilterList :: Prelude.Maybe (Prelude.NonEmpty DimensionFilter),+    -- | The list of measures that you want to get alerts for.+    metricList :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AlertFilters' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dimensionFilterList', 'alertFilters_dimensionFilterList' - The list of DimensionFilter objects that are used for dimension-based+-- filtering.+--+-- 'metricList', 'alertFilters_metricList' - The list of measures that you want to get alerts for.+newAlertFilters ::+  AlertFilters+newAlertFilters =+  AlertFilters'+    { dimensionFilterList =+        Prelude.Nothing,+      metricList = Prelude.Nothing+    }++-- | The list of DimensionFilter objects that are used for dimension-based+-- filtering.+alertFilters_dimensionFilterList :: Lens.Lens' AlertFilters (Prelude.Maybe (Prelude.NonEmpty DimensionFilter))+alertFilters_dimensionFilterList = Lens.lens (\AlertFilters' {dimensionFilterList} -> dimensionFilterList) (\s@AlertFilters' {} a -> s {dimensionFilterList = a} :: AlertFilters) Prelude.. Lens.mapping Lens.coerced++-- | The list of measures that you want to get alerts for.+alertFilters_metricList :: Lens.Lens' AlertFilters (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+alertFilters_metricList = Lens.lens (\AlertFilters' {metricList} -> metricList) (\s@AlertFilters' {} a -> s {metricList = a} :: AlertFilters) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON AlertFilters where+  parseJSON =+    Data.withObject+      "AlertFilters"+      ( \x ->+          AlertFilters'+            Prelude.<$> (x Data..:? "DimensionFilterList")+            Prelude.<*> (x Data..:? "MetricList")+      )++instance Prelude.Hashable AlertFilters where+  hashWithSalt _salt AlertFilters' {..} =+    _salt+      `Prelude.hashWithSalt` dimensionFilterList+      `Prelude.hashWithSalt` metricList++instance Prelude.NFData AlertFilters where+  rnf AlertFilters' {..} =+    Prelude.rnf dimensionFilterList+      `Prelude.seq` Prelude.rnf metricList++instance Data.ToJSON AlertFilters where+  toJSON AlertFilters' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DimensionFilterList" Data..=)+              Prelude.<$> dimensionFilterList,+            ("MetricList" Data..=) Prelude.<$> metricList+          ]+      )
+ gen/Amazonka/LookoutMetrics/Types/AlertStatus.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.LookoutMetrics.Types.AlertStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.AlertStatus+  ( AlertStatus+      ( ..,+        AlertStatus_ACTIVE,+        AlertStatus_INACTIVE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AlertStatus = AlertStatus'+  { fromAlertStatus ::+      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 AlertStatus_ACTIVE :: AlertStatus+pattern AlertStatus_ACTIVE = AlertStatus' "ACTIVE"++pattern AlertStatus_INACTIVE :: AlertStatus+pattern AlertStatus_INACTIVE = AlertStatus' "INACTIVE"++{-# COMPLETE+  AlertStatus_ACTIVE,+  AlertStatus_INACTIVE,+  AlertStatus'+  #-}
+ gen/Amazonka/LookoutMetrics/Types/AlertSummary.hs view
@@ -0,0 +1,173 @@+{-# 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.LookoutMetrics.Types.AlertSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.AlertSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.AlertStatus+import Amazonka.LookoutMetrics.Types.AlertType+import qualified Amazonka.Prelude as Prelude++-- | Provides a summary of an alert\'s configuration.+--+-- /See:/ 'newAlertSummary' smart constructor.+data AlertSummary = AlertSummary'+  { -- | The ARN of the alert.+    alertArn :: Prelude.Maybe Prelude.Text,+    -- | The name of the alert.+    alertName :: Prelude.Maybe Prelude.Text,+    -- | The minimum severity for an anomaly to trigger the alert.+    alertSensitivityThreshold :: Prelude.Maybe Prelude.Natural,+    -- | The status of the alert.+    alertStatus :: Prelude.Maybe AlertStatus,+    -- | The type of the alert.+    alertType :: Prelude.Maybe AlertType,+    -- | The ARN of the detector to which the alert is attached.+    anomalyDetectorArn :: Prelude.Maybe Prelude.Text,+    -- | The time at which the alert was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The time at which the alert was last modified.+    lastModificationTime :: Prelude.Maybe Data.POSIX,+    -- | The alert\'s+    -- <https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html tags>.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AlertSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'alertArn', 'alertSummary_alertArn' - The ARN of the alert.+--+-- 'alertName', 'alertSummary_alertName' - The name of the alert.+--+-- 'alertSensitivityThreshold', 'alertSummary_alertSensitivityThreshold' - The minimum severity for an anomaly to trigger the alert.+--+-- 'alertStatus', 'alertSummary_alertStatus' - The status of the alert.+--+-- 'alertType', 'alertSummary_alertType' - The type of the alert.+--+-- 'anomalyDetectorArn', 'alertSummary_anomalyDetectorArn' - The ARN of the detector to which the alert is attached.+--+-- 'creationTime', 'alertSummary_creationTime' - The time at which the alert was created.+--+-- 'lastModificationTime', 'alertSummary_lastModificationTime' - The time at which the alert was last modified.+--+-- 'tags', 'alertSummary_tags' - The alert\'s+-- <https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html tags>.+newAlertSummary ::+  AlertSummary+newAlertSummary =+  AlertSummary'+    { alertArn = Prelude.Nothing,+      alertName = Prelude.Nothing,+      alertSensitivityThreshold = Prelude.Nothing,+      alertStatus = Prelude.Nothing,+      alertType = Prelude.Nothing,+      anomalyDetectorArn = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      lastModificationTime = Prelude.Nothing,+      tags = Prelude.Nothing+    }++-- | The ARN of the alert.+alertSummary_alertArn :: Lens.Lens' AlertSummary (Prelude.Maybe Prelude.Text)+alertSummary_alertArn = Lens.lens (\AlertSummary' {alertArn} -> alertArn) (\s@AlertSummary' {} a -> s {alertArn = a} :: AlertSummary)++-- | The name of the alert.+alertSummary_alertName :: Lens.Lens' AlertSummary (Prelude.Maybe Prelude.Text)+alertSummary_alertName = Lens.lens (\AlertSummary' {alertName} -> alertName) (\s@AlertSummary' {} a -> s {alertName = a} :: AlertSummary)++-- | The minimum severity for an anomaly to trigger the alert.+alertSummary_alertSensitivityThreshold :: Lens.Lens' AlertSummary (Prelude.Maybe Prelude.Natural)+alertSummary_alertSensitivityThreshold = Lens.lens (\AlertSummary' {alertSensitivityThreshold} -> alertSensitivityThreshold) (\s@AlertSummary' {} a -> s {alertSensitivityThreshold = a} :: AlertSummary)++-- | The status of the alert.+alertSummary_alertStatus :: Lens.Lens' AlertSummary (Prelude.Maybe AlertStatus)+alertSummary_alertStatus = Lens.lens (\AlertSummary' {alertStatus} -> alertStatus) (\s@AlertSummary' {} a -> s {alertStatus = a} :: AlertSummary)++-- | The type of the alert.+alertSummary_alertType :: Lens.Lens' AlertSummary (Prelude.Maybe AlertType)+alertSummary_alertType = Lens.lens (\AlertSummary' {alertType} -> alertType) (\s@AlertSummary' {} a -> s {alertType = a} :: AlertSummary)++-- | The ARN of the detector to which the alert is attached.+alertSummary_anomalyDetectorArn :: Lens.Lens' AlertSummary (Prelude.Maybe Prelude.Text)+alertSummary_anomalyDetectorArn = Lens.lens (\AlertSummary' {anomalyDetectorArn} -> anomalyDetectorArn) (\s@AlertSummary' {} a -> s {anomalyDetectorArn = a} :: AlertSummary)++-- | The time at which the alert was created.+alertSummary_creationTime :: Lens.Lens' AlertSummary (Prelude.Maybe Prelude.UTCTime)+alertSummary_creationTime = Lens.lens (\AlertSummary' {creationTime} -> creationTime) (\s@AlertSummary' {} a -> s {creationTime = a} :: AlertSummary) Prelude.. Lens.mapping Data._Time++-- | The time at which the alert was last modified.+alertSummary_lastModificationTime :: Lens.Lens' AlertSummary (Prelude.Maybe Prelude.UTCTime)+alertSummary_lastModificationTime = Lens.lens (\AlertSummary' {lastModificationTime} -> lastModificationTime) (\s@AlertSummary' {} a -> s {lastModificationTime = a} :: AlertSummary) Prelude.. Lens.mapping Data._Time++-- | The alert\'s+-- <https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html tags>.+alertSummary_tags :: Lens.Lens' AlertSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+alertSummary_tags = Lens.lens (\AlertSummary' {tags} -> tags) (\s@AlertSummary' {} a -> s {tags = a} :: AlertSummary) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON AlertSummary where+  parseJSON =+    Data.withObject+      "AlertSummary"+      ( \x ->+          AlertSummary'+            Prelude.<$> (x Data..:? "AlertArn")+            Prelude.<*> (x Data..:? "AlertName")+            Prelude.<*> (x Data..:? "AlertSensitivityThreshold")+            Prelude.<*> (x Data..:? "AlertStatus")+            Prelude.<*> (x Data..:? "AlertType")+            Prelude.<*> (x Data..:? "AnomalyDetectorArn")+            Prelude.<*> (x Data..:? "CreationTime")+            Prelude.<*> (x Data..:? "LastModificationTime")+            Prelude.<*> (x Data..:? "Tags" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable AlertSummary where+  hashWithSalt _salt AlertSummary' {..} =+    _salt+      `Prelude.hashWithSalt` alertArn+      `Prelude.hashWithSalt` alertName+      `Prelude.hashWithSalt` alertSensitivityThreshold+      `Prelude.hashWithSalt` alertStatus+      `Prelude.hashWithSalt` alertType+      `Prelude.hashWithSalt` anomalyDetectorArn+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` lastModificationTime+      `Prelude.hashWithSalt` tags++instance Prelude.NFData AlertSummary where+  rnf AlertSummary' {..} =+    Prelude.rnf alertArn+      `Prelude.seq` Prelude.rnf alertName+      `Prelude.seq` Prelude.rnf alertSensitivityThreshold+      `Prelude.seq` Prelude.rnf alertStatus+      `Prelude.seq` Prelude.rnf alertType+      `Prelude.seq` Prelude.rnf anomalyDetectorArn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf lastModificationTime+      `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/LookoutMetrics/Types/AlertType.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.LookoutMetrics.Types.AlertType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.AlertType+  ( AlertType+      ( ..,+        AlertType_LAMBDA,+        AlertType_SNS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AlertType = AlertType'+  { fromAlertType ::+      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 AlertType_LAMBDA :: AlertType+pattern AlertType_LAMBDA = AlertType' "LAMBDA"++pattern AlertType_SNS :: AlertType+pattern AlertType_SNS = AlertType' "SNS"++{-# COMPLETE+  AlertType_LAMBDA,+  AlertType_SNS,+  AlertType'+  #-}
+ gen/Amazonka/LookoutMetrics/Types/AnomalyDetectionTaskStatus.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.Types.AnomalyDetectionTaskStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.AnomalyDetectionTaskStatus+  ( AnomalyDetectionTaskStatus+      ( ..,+        AnomalyDetectionTaskStatus_COMPLETED,+        AnomalyDetectionTaskStatus_FAILED,+        AnomalyDetectionTaskStatus_FAILED_TO_SCHEDULE,+        AnomalyDetectionTaskStatus_IN_PROGRESS,+        AnomalyDetectionTaskStatus_PENDING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AnomalyDetectionTaskStatus = AnomalyDetectionTaskStatus'+  { fromAnomalyDetectionTaskStatus ::+      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 AnomalyDetectionTaskStatus_COMPLETED :: AnomalyDetectionTaskStatus+pattern AnomalyDetectionTaskStatus_COMPLETED = AnomalyDetectionTaskStatus' "COMPLETED"++pattern AnomalyDetectionTaskStatus_FAILED :: AnomalyDetectionTaskStatus+pattern AnomalyDetectionTaskStatus_FAILED = AnomalyDetectionTaskStatus' "FAILED"++pattern AnomalyDetectionTaskStatus_FAILED_TO_SCHEDULE :: AnomalyDetectionTaskStatus+pattern AnomalyDetectionTaskStatus_FAILED_TO_SCHEDULE = AnomalyDetectionTaskStatus' "FAILED_TO_SCHEDULE"++pattern AnomalyDetectionTaskStatus_IN_PROGRESS :: AnomalyDetectionTaskStatus+pattern AnomalyDetectionTaskStatus_IN_PROGRESS = AnomalyDetectionTaskStatus' "IN_PROGRESS"++pattern AnomalyDetectionTaskStatus_PENDING :: AnomalyDetectionTaskStatus+pattern AnomalyDetectionTaskStatus_PENDING = AnomalyDetectionTaskStatus' "PENDING"++{-# COMPLETE+  AnomalyDetectionTaskStatus_COMPLETED,+  AnomalyDetectionTaskStatus_FAILED,+  AnomalyDetectionTaskStatus_FAILED_TO_SCHEDULE,+  AnomalyDetectionTaskStatus_IN_PROGRESS,+  AnomalyDetectionTaskStatus_PENDING,+  AnomalyDetectionTaskStatus'+  #-}
+ gen/Amazonka/LookoutMetrics/Types/AnomalyDetectorConfig.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.LookoutMetrics.Types.AnomalyDetectorConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.AnomalyDetectorConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.Frequency+import qualified Amazonka.Prelude as Prelude++-- | Contains information about a detector\'s configuration.+--+-- /See:/ 'newAnomalyDetectorConfig' smart constructor.+data AnomalyDetectorConfig = AnomalyDetectorConfig'+  { -- | The frequency at which the detector analyzes its source data.+    anomalyDetectorFrequency :: Prelude.Maybe Frequency+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnomalyDetectorConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyDetectorFrequency', 'anomalyDetectorConfig_anomalyDetectorFrequency' - The frequency at which the detector analyzes its source data.+newAnomalyDetectorConfig ::+  AnomalyDetectorConfig+newAnomalyDetectorConfig =+  AnomalyDetectorConfig'+    { anomalyDetectorFrequency =+        Prelude.Nothing+    }++-- | The frequency at which the detector analyzes its source data.+anomalyDetectorConfig_anomalyDetectorFrequency :: Lens.Lens' AnomalyDetectorConfig (Prelude.Maybe Frequency)+anomalyDetectorConfig_anomalyDetectorFrequency = Lens.lens (\AnomalyDetectorConfig' {anomalyDetectorFrequency} -> anomalyDetectorFrequency) (\s@AnomalyDetectorConfig' {} a -> s {anomalyDetectorFrequency = a} :: AnomalyDetectorConfig)++instance Prelude.Hashable AnomalyDetectorConfig where+  hashWithSalt _salt AnomalyDetectorConfig' {..} =+    _salt+      `Prelude.hashWithSalt` anomalyDetectorFrequency++instance Prelude.NFData AnomalyDetectorConfig where+  rnf AnomalyDetectorConfig' {..} =+    Prelude.rnf anomalyDetectorFrequency++instance Data.ToJSON AnomalyDetectorConfig where+  toJSON AnomalyDetectorConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AnomalyDetectorFrequency" Data..=)+              Prelude.<$> anomalyDetectorFrequency+          ]+      )
+ gen/Amazonka/LookoutMetrics/Types/AnomalyDetectorConfigSummary.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.LookoutMetrics.Types.AnomalyDetectorConfigSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.AnomalyDetectorConfigSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.Frequency+import qualified Amazonka.Prelude as Prelude++-- | Contains information about a detector\'s configuration.+--+-- /See:/ 'newAnomalyDetectorConfigSummary' smart constructor.+data AnomalyDetectorConfigSummary = AnomalyDetectorConfigSummary'+  { -- | The interval at which the detector analyzes its source data.+    anomalyDetectorFrequency :: Prelude.Maybe Frequency+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnomalyDetectorConfigSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyDetectorFrequency', 'anomalyDetectorConfigSummary_anomalyDetectorFrequency' - The interval at which the detector analyzes its source data.+newAnomalyDetectorConfigSummary ::+  AnomalyDetectorConfigSummary+newAnomalyDetectorConfigSummary =+  AnomalyDetectorConfigSummary'+    { anomalyDetectorFrequency =+        Prelude.Nothing+    }++-- | The interval at which the detector analyzes its source data.+anomalyDetectorConfigSummary_anomalyDetectorFrequency :: Lens.Lens' AnomalyDetectorConfigSummary (Prelude.Maybe Frequency)+anomalyDetectorConfigSummary_anomalyDetectorFrequency = Lens.lens (\AnomalyDetectorConfigSummary' {anomalyDetectorFrequency} -> anomalyDetectorFrequency) (\s@AnomalyDetectorConfigSummary' {} a -> s {anomalyDetectorFrequency = a} :: AnomalyDetectorConfigSummary)++instance Data.FromJSON AnomalyDetectorConfigSummary where+  parseJSON =+    Data.withObject+      "AnomalyDetectorConfigSummary"+      ( \x ->+          AnomalyDetectorConfigSummary'+            Prelude.<$> (x Data..:? "AnomalyDetectorFrequency")+      )++instance+  Prelude.Hashable+    AnomalyDetectorConfigSummary+  where+  hashWithSalt _salt AnomalyDetectorConfigSummary' {..} =+    _salt+      `Prelude.hashWithSalt` anomalyDetectorFrequency++instance Prelude.NFData AnomalyDetectorConfigSummary where+  rnf AnomalyDetectorConfigSummary' {..} =+    Prelude.rnf anomalyDetectorFrequency
+ gen/Amazonka/LookoutMetrics/Types/AnomalyDetectorDataQualityMetric.hs view
@@ -0,0 +1,104 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.Types.AnomalyDetectorDataQualityMetric+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.AnomalyDetectorDataQualityMetric where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.MetricSetDataQualityMetric+import qualified Amazonka.Prelude as Prelude++-- | Aggregated details about the data quality metrics collected for the+-- @AnomalyDetectorArn@ provided in the GetDataQualityMetrics object.+--+-- /See:/ 'newAnomalyDetectorDataQualityMetric' smart constructor.+data AnomalyDetectorDataQualityMetric = AnomalyDetectorDataQualityMetric'+  { -- | An array of @DataQualityMetricList@ objects. Each object in the array+    -- contains information about a data quality metric.+    metricSetDataQualityMetricList :: Prelude.Maybe [MetricSetDataQualityMetric],+    -- | The start time for the data quality metrics collection.+    startTimestamp :: Prelude.Maybe Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnomalyDetectorDataQualityMetric' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metricSetDataQualityMetricList', 'anomalyDetectorDataQualityMetric_metricSetDataQualityMetricList' - An array of @DataQualityMetricList@ objects. Each object in the array+-- contains information about a data quality metric.+--+-- 'startTimestamp', 'anomalyDetectorDataQualityMetric_startTimestamp' - The start time for the data quality metrics collection.+newAnomalyDetectorDataQualityMetric ::+  AnomalyDetectorDataQualityMetric+newAnomalyDetectorDataQualityMetric =+  AnomalyDetectorDataQualityMetric'+    { metricSetDataQualityMetricList =+        Prelude.Nothing,+      startTimestamp = Prelude.Nothing+    }++-- | An array of @DataQualityMetricList@ objects. Each object in the array+-- contains information about a data quality metric.+anomalyDetectorDataQualityMetric_metricSetDataQualityMetricList :: Lens.Lens' AnomalyDetectorDataQualityMetric (Prelude.Maybe [MetricSetDataQualityMetric])+anomalyDetectorDataQualityMetric_metricSetDataQualityMetricList = Lens.lens (\AnomalyDetectorDataQualityMetric' {metricSetDataQualityMetricList} -> metricSetDataQualityMetricList) (\s@AnomalyDetectorDataQualityMetric' {} a -> s {metricSetDataQualityMetricList = a} :: AnomalyDetectorDataQualityMetric) Prelude.. Lens.mapping Lens.coerced++-- | The start time for the data quality metrics collection.+anomalyDetectorDataQualityMetric_startTimestamp :: Lens.Lens' AnomalyDetectorDataQualityMetric (Prelude.Maybe Prelude.UTCTime)+anomalyDetectorDataQualityMetric_startTimestamp = Lens.lens (\AnomalyDetectorDataQualityMetric' {startTimestamp} -> startTimestamp) (\s@AnomalyDetectorDataQualityMetric' {} a -> s {startTimestamp = a} :: AnomalyDetectorDataQualityMetric) Prelude.. Lens.mapping Data._Time++instance+  Data.FromJSON+    AnomalyDetectorDataQualityMetric+  where+  parseJSON =+    Data.withObject+      "AnomalyDetectorDataQualityMetric"+      ( \x ->+          AnomalyDetectorDataQualityMetric'+            Prelude.<$> ( x+                            Data..:? "MetricSetDataQualityMetricList"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "StartTimestamp")+      )++instance+  Prelude.Hashable+    AnomalyDetectorDataQualityMetric+  where+  hashWithSalt+    _salt+    AnomalyDetectorDataQualityMetric' {..} =+      _salt+        `Prelude.hashWithSalt` metricSetDataQualityMetricList+        `Prelude.hashWithSalt` startTimestamp++instance+  Prelude.NFData+    AnomalyDetectorDataQualityMetric+  where+  rnf AnomalyDetectorDataQualityMetric' {..} =+    Prelude.rnf metricSetDataQualityMetricList+      `Prelude.seq` Prelude.rnf startTimestamp
+ gen/Amazonka/LookoutMetrics/Types/AnomalyDetectorFailureType.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.LookoutMetrics.Types.AnomalyDetectorFailureType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.AnomalyDetectorFailureType+  ( AnomalyDetectorFailureType+      ( ..,+        AnomalyDetectorFailureType_ACTIVATION_FAILURE,+        AnomalyDetectorFailureType_BACK_TEST_ACTIVATION_FAILURE,+        AnomalyDetectorFailureType_DEACTIVATION_FAILURE,+        AnomalyDetectorFailureType_DELETION_FAILURE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AnomalyDetectorFailureType = AnomalyDetectorFailureType'+  { fromAnomalyDetectorFailureType ::+      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 AnomalyDetectorFailureType_ACTIVATION_FAILURE :: AnomalyDetectorFailureType+pattern AnomalyDetectorFailureType_ACTIVATION_FAILURE = AnomalyDetectorFailureType' "ACTIVATION_FAILURE"++pattern AnomalyDetectorFailureType_BACK_TEST_ACTIVATION_FAILURE :: AnomalyDetectorFailureType+pattern AnomalyDetectorFailureType_BACK_TEST_ACTIVATION_FAILURE = AnomalyDetectorFailureType' "BACK_TEST_ACTIVATION_FAILURE"++pattern AnomalyDetectorFailureType_DEACTIVATION_FAILURE :: AnomalyDetectorFailureType+pattern AnomalyDetectorFailureType_DEACTIVATION_FAILURE = AnomalyDetectorFailureType' "DEACTIVATION_FAILURE"++pattern AnomalyDetectorFailureType_DELETION_FAILURE :: AnomalyDetectorFailureType+pattern AnomalyDetectorFailureType_DELETION_FAILURE = AnomalyDetectorFailureType' "DELETION_FAILURE"++{-# COMPLETE+  AnomalyDetectorFailureType_ACTIVATION_FAILURE,+  AnomalyDetectorFailureType_BACK_TEST_ACTIVATION_FAILURE,+  AnomalyDetectorFailureType_DEACTIVATION_FAILURE,+  AnomalyDetectorFailureType_DELETION_FAILURE,+  AnomalyDetectorFailureType'+  #-}
+ gen/Amazonka/LookoutMetrics/Types/AnomalyDetectorStatus.hs view
@@ -0,0 +1,116 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.Types.AnomalyDetectorStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.AnomalyDetectorStatus+  ( AnomalyDetectorStatus+      ( ..,+        AnomalyDetectorStatus_ACTIVATING,+        AnomalyDetectorStatus_ACTIVE,+        AnomalyDetectorStatus_BACK_TEST_ACTIVATING,+        AnomalyDetectorStatus_BACK_TEST_ACTIVE,+        AnomalyDetectorStatus_BACK_TEST_COMPLETE,+        AnomalyDetectorStatus_DEACTIVATED,+        AnomalyDetectorStatus_DEACTIVATING,+        AnomalyDetectorStatus_DELETING,+        AnomalyDetectorStatus_FAILED,+        AnomalyDetectorStatus_INACTIVE,+        AnomalyDetectorStatus_LEARNING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AnomalyDetectorStatus = AnomalyDetectorStatus'+  { fromAnomalyDetectorStatus ::+      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 AnomalyDetectorStatus_ACTIVATING :: AnomalyDetectorStatus+pattern AnomalyDetectorStatus_ACTIVATING = AnomalyDetectorStatus' "ACTIVATING"++pattern AnomalyDetectorStatus_ACTIVE :: AnomalyDetectorStatus+pattern AnomalyDetectorStatus_ACTIVE = AnomalyDetectorStatus' "ACTIVE"++pattern AnomalyDetectorStatus_BACK_TEST_ACTIVATING :: AnomalyDetectorStatus+pattern AnomalyDetectorStatus_BACK_TEST_ACTIVATING = AnomalyDetectorStatus' "BACK_TEST_ACTIVATING"++pattern AnomalyDetectorStatus_BACK_TEST_ACTIVE :: AnomalyDetectorStatus+pattern AnomalyDetectorStatus_BACK_TEST_ACTIVE = AnomalyDetectorStatus' "BACK_TEST_ACTIVE"++pattern AnomalyDetectorStatus_BACK_TEST_COMPLETE :: AnomalyDetectorStatus+pattern AnomalyDetectorStatus_BACK_TEST_COMPLETE = AnomalyDetectorStatus' "BACK_TEST_COMPLETE"++pattern AnomalyDetectorStatus_DEACTIVATED :: AnomalyDetectorStatus+pattern AnomalyDetectorStatus_DEACTIVATED = AnomalyDetectorStatus' "DEACTIVATED"++pattern AnomalyDetectorStatus_DEACTIVATING :: AnomalyDetectorStatus+pattern AnomalyDetectorStatus_DEACTIVATING = AnomalyDetectorStatus' "DEACTIVATING"++pattern AnomalyDetectorStatus_DELETING :: AnomalyDetectorStatus+pattern AnomalyDetectorStatus_DELETING = AnomalyDetectorStatus' "DELETING"++pattern AnomalyDetectorStatus_FAILED :: AnomalyDetectorStatus+pattern AnomalyDetectorStatus_FAILED = AnomalyDetectorStatus' "FAILED"++pattern AnomalyDetectorStatus_INACTIVE :: AnomalyDetectorStatus+pattern AnomalyDetectorStatus_INACTIVE = AnomalyDetectorStatus' "INACTIVE"++pattern AnomalyDetectorStatus_LEARNING :: AnomalyDetectorStatus+pattern AnomalyDetectorStatus_LEARNING = AnomalyDetectorStatus' "LEARNING"++{-# COMPLETE+  AnomalyDetectorStatus_ACTIVATING,+  AnomalyDetectorStatus_ACTIVE,+  AnomalyDetectorStatus_BACK_TEST_ACTIVATING,+  AnomalyDetectorStatus_BACK_TEST_ACTIVE,+  AnomalyDetectorStatus_BACK_TEST_COMPLETE,+  AnomalyDetectorStatus_DEACTIVATED,+  AnomalyDetectorStatus_DEACTIVATING,+  AnomalyDetectorStatus_DELETING,+  AnomalyDetectorStatus_FAILED,+  AnomalyDetectorStatus_INACTIVE,+  AnomalyDetectorStatus_LEARNING,+  AnomalyDetectorStatus'+  #-}
+ gen/Amazonka/LookoutMetrics/Types/AnomalyDetectorSummary.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.LookoutMetrics.Types.AnomalyDetectorSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.AnomalyDetectorSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.AnomalyDetectorStatus+import qualified Amazonka.Prelude as Prelude++-- | Contains information about an an anomaly detector.+--+-- /See:/ 'newAnomalyDetectorSummary' smart constructor.+data AnomalyDetectorSummary = AnomalyDetectorSummary'+  { -- | The ARN of the detector.+    anomalyDetectorArn :: Prelude.Maybe Prelude.Text,+    -- | A description of the detector.+    anomalyDetectorDescription :: Prelude.Maybe Prelude.Text,+    -- | The name of the detector.+    anomalyDetectorName :: Prelude.Maybe Prelude.Text,+    -- | The time at which the detector was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The time at which the detector was last modified.+    lastModificationTime :: Prelude.Maybe Data.POSIX,+    -- | The status of detector.+    status :: Prelude.Maybe AnomalyDetectorStatus,+    -- | The detector\'s+    -- <https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html tags>.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnomalyDetectorSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyDetectorArn', 'anomalyDetectorSummary_anomalyDetectorArn' - The ARN of the detector.+--+-- 'anomalyDetectorDescription', 'anomalyDetectorSummary_anomalyDetectorDescription' - A description of the detector.+--+-- 'anomalyDetectorName', 'anomalyDetectorSummary_anomalyDetectorName' - The name of the detector.+--+-- 'creationTime', 'anomalyDetectorSummary_creationTime' - The time at which the detector was created.+--+-- 'lastModificationTime', 'anomalyDetectorSummary_lastModificationTime' - The time at which the detector was last modified.+--+-- 'status', 'anomalyDetectorSummary_status' - The status of detector.+--+-- 'tags', 'anomalyDetectorSummary_tags' - The detector\'s+-- <https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html tags>.+newAnomalyDetectorSummary ::+  AnomalyDetectorSummary+newAnomalyDetectorSummary =+  AnomalyDetectorSummary'+    { anomalyDetectorArn =+        Prelude.Nothing,+      anomalyDetectorDescription = Prelude.Nothing,+      anomalyDetectorName = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      lastModificationTime = Prelude.Nothing,+      status = Prelude.Nothing,+      tags = Prelude.Nothing+    }++-- | The ARN of the detector.+anomalyDetectorSummary_anomalyDetectorArn :: Lens.Lens' AnomalyDetectorSummary (Prelude.Maybe Prelude.Text)+anomalyDetectorSummary_anomalyDetectorArn = Lens.lens (\AnomalyDetectorSummary' {anomalyDetectorArn} -> anomalyDetectorArn) (\s@AnomalyDetectorSummary' {} a -> s {anomalyDetectorArn = a} :: AnomalyDetectorSummary)++-- | A description of the detector.+anomalyDetectorSummary_anomalyDetectorDescription :: Lens.Lens' AnomalyDetectorSummary (Prelude.Maybe Prelude.Text)+anomalyDetectorSummary_anomalyDetectorDescription = Lens.lens (\AnomalyDetectorSummary' {anomalyDetectorDescription} -> anomalyDetectorDescription) (\s@AnomalyDetectorSummary' {} a -> s {anomalyDetectorDescription = a} :: AnomalyDetectorSummary)++-- | The name of the detector.+anomalyDetectorSummary_anomalyDetectorName :: Lens.Lens' AnomalyDetectorSummary (Prelude.Maybe Prelude.Text)+anomalyDetectorSummary_anomalyDetectorName = Lens.lens (\AnomalyDetectorSummary' {anomalyDetectorName} -> anomalyDetectorName) (\s@AnomalyDetectorSummary' {} a -> s {anomalyDetectorName = a} :: AnomalyDetectorSummary)++-- | The time at which the detector was created.+anomalyDetectorSummary_creationTime :: Lens.Lens' AnomalyDetectorSummary (Prelude.Maybe Prelude.UTCTime)+anomalyDetectorSummary_creationTime = Lens.lens (\AnomalyDetectorSummary' {creationTime} -> creationTime) (\s@AnomalyDetectorSummary' {} a -> s {creationTime = a} :: AnomalyDetectorSummary) Prelude.. Lens.mapping Data._Time++-- | The time at which the detector was last modified.+anomalyDetectorSummary_lastModificationTime :: Lens.Lens' AnomalyDetectorSummary (Prelude.Maybe Prelude.UTCTime)+anomalyDetectorSummary_lastModificationTime = Lens.lens (\AnomalyDetectorSummary' {lastModificationTime} -> lastModificationTime) (\s@AnomalyDetectorSummary' {} a -> s {lastModificationTime = a} :: AnomalyDetectorSummary) Prelude.. Lens.mapping Data._Time++-- | The status of detector.+anomalyDetectorSummary_status :: Lens.Lens' AnomalyDetectorSummary (Prelude.Maybe AnomalyDetectorStatus)+anomalyDetectorSummary_status = Lens.lens (\AnomalyDetectorSummary' {status} -> status) (\s@AnomalyDetectorSummary' {} a -> s {status = a} :: AnomalyDetectorSummary)++-- | The detector\'s+-- <https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html tags>.+anomalyDetectorSummary_tags :: Lens.Lens' AnomalyDetectorSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+anomalyDetectorSummary_tags = Lens.lens (\AnomalyDetectorSummary' {tags} -> tags) (\s@AnomalyDetectorSummary' {} a -> s {tags = a} :: AnomalyDetectorSummary) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON AnomalyDetectorSummary where+  parseJSON =+    Data.withObject+      "AnomalyDetectorSummary"+      ( \x ->+          AnomalyDetectorSummary'+            Prelude.<$> (x Data..:? "AnomalyDetectorArn")+            Prelude.<*> (x Data..:? "AnomalyDetectorDescription")+            Prelude.<*> (x Data..:? "AnomalyDetectorName")+            Prelude.<*> (x Data..:? "CreationTime")+            Prelude.<*> (x Data..:? "LastModificationTime")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "Tags" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable AnomalyDetectorSummary where+  hashWithSalt _salt AnomalyDetectorSummary' {..} =+    _salt+      `Prelude.hashWithSalt` anomalyDetectorArn+      `Prelude.hashWithSalt` anomalyDetectorDescription+      `Prelude.hashWithSalt` anomalyDetectorName+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` lastModificationTime+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` tags++instance Prelude.NFData AnomalyDetectorSummary where+  rnf AnomalyDetectorSummary' {..} =+    Prelude.rnf anomalyDetectorArn+      `Prelude.seq` Prelude.rnf anomalyDetectorDescription+      `Prelude.seq` Prelude.rnf anomalyDetectorName+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf lastModificationTime+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/LookoutMetrics/Types/AnomalyGroup.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.LookoutMetrics.Types.AnomalyGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.AnomalyGroup where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.MetricLevelImpact+import qualified Amazonka.Prelude as Prelude++-- | A group of anomalous metrics+--+-- /See:/ 'newAnomalyGroup' smart constructor.+data AnomalyGroup = AnomalyGroup'+  { -- | The ID of the anomaly group.+    anomalyGroupId :: Prelude.Maybe Prelude.Text,+    -- | The severity score of the group.+    anomalyGroupScore :: Prelude.Maybe Prelude.Double,+    -- | The end time for the group.+    endTime :: Prelude.Maybe Prelude.Text,+    -- | A list of measures affected by the anomaly.+    metricLevelImpactList :: Prelude.Maybe [MetricLevelImpact],+    -- | The name of the primary affected measure for the group.+    primaryMetricName :: Prelude.Maybe Prelude.Text,+    -- | The start time for the group.+    startTime :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnomalyGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyGroupId', 'anomalyGroup_anomalyGroupId' - The ID of the anomaly group.+--+-- 'anomalyGroupScore', 'anomalyGroup_anomalyGroupScore' - The severity score of the group.+--+-- 'endTime', 'anomalyGroup_endTime' - The end time for the group.+--+-- 'metricLevelImpactList', 'anomalyGroup_metricLevelImpactList' - A list of measures affected by the anomaly.+--+-- 'primaryMetricName', 'anomalyGroup_primaryMetricName' - The name of the primary affected measure for the group.+--+-- 'startTime', 'anomalyGroup_startTime' - The start time for the group.+newAnomalyGroup ::+  AnomalyGroup+newAnomalyGroup =+  AnomalyGroup'+    { anomalyGroupId = Prelude.Nothing,+      anomalyGroupScore = Prelude.Nothing,+      endTime = Prelude.Nothing,+      metricLevelImpactList = Prelude.Nothing,+      primaryMetricName = Prelude.Nothing,+      startTime = Prelude.Nothing+    }++-- | The ID of the anomaly group.+anomalyGroup_anomalyGroupId :: Lens.Lens' AnomalyGroup (Prelude.Maybe Prelude.Text)+anomalyGroup_anomalyGroupId = Lens.lens (\AnomalyGroup' {anomalyGroupId} -> anomalyGroupId) (\s@AnomalyGroup' {} a -> s {anomalyGroupId = a} :: AnomalyGroup)++-- | The severity score of the group.+anomalyGroup_anomalyGroupScore :: Lens.Lens' AnomalyGroup (Prelude.Maybe Prelude.Double)+anomalyGroup_anomalyGroupScore = Lens.lens (\AnomalyGroup' {anomalyGroupScore} -> anomalyGroupScore) (\s@AnomalyGroup' {} a -> s {anomalyGroupScore = a} :: AnomalyGroup)++-- | The end time for the group.+anomalyGroup_endTime :: Lens.Lens' AnomalyGroup (Prelude.Maybe Prelude.Text)+anomalyGroup_endTime = Lens.lens (\AnomalyGroup' {endTime} -> endTime) (\s@AnomalyGroup' {} a -> s {endTime = a} :: AnomalyGroup)++-- | A list of measures affected by the anomaly.+anomalyGroup_metricLevelImpactList :: Lens.Lens' AnomalyGroup (Prelude.Maybe [MetricLevelImpact])+anomalyGroup_metricLevelImpactList = Lens.lens (\AnomalyGroup' {metricLevelImpactList} -> metricLevelImpactList) (\s@AnomalyGroup' {} a -> s {metricLevelImpactList = a} :: AnomalyGroup) Prelude.. Lens.mapping Lens.coerced++-- | The name of the primary affected measure for the group.+anomalyGroup_primaryMetricName :: Lens.Lens' AnomalyGroup (Prelude.Maybe Prelude.Text)+anomalyGroup_primaryMetricName = Lens.lens (\AnomalyGroup' {primaryMetricName} -> primaryMetricName) (\s@AnomalyGroup' {} a -> s {primaryMetricName = a} :: AnomalyGroup)++-- | The start time for the group.+anomalyGroup_startTime :: Lens.Lens' AnomalyGroup (Prelude.Maybe Prelude.Text)+anomalyGroup_startTime = Lens.lens (\AnomalyGroup' {startTime} -> startTime) (\s@AnomalyGroup' {} a -> s {startTime = a} :: AnomalyGroup)++instance Data.FromJSON AnomalyGroup where+  parseJSON =+    Data.withObject+      "AnomalyGroup"+      ( \x ->+          AnomalyGroup'+            Prelude.<$> (x Data..:? "AnomalyGroupId")+            Prelude.<*> (x Data..:? "AnomalyGroupScore")+            Prelude.<*> (x Data..:? "EndTime")+            Prelude.<*> ( x+                            Data..:? "MetricLevelImpactList"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "PrimaryMetricName")+            Prelude.<*> (x Data..:? "StartTime")+      )++instance Prelude.Hashable AnomalyGroup where+  hashWithSalt _salt AnomalyGroup' {..} =+    _salt+      `Prelude.hashWithSalt` anomalyGroupId+      `Prelude.hashWithSalt` anomalyGroupScore+      `Prelude.hashWithSalt` endTime+      `Prelude.hashWithSalt` metricLevelImpactList+      `Prelude.hashWithSalt` primaryMetricName+      `Prelude.hashWithSalt` startTime++instance Prelude.NFData AnomalyGroup where+  rnf AnomalyGroup' {..} =+    Prelude.rnf anomalyGroupId+      `Prelude.seq` Prelude.rnf anomalyGroupScore+      `Prelude.seq` Prelude.rnf endTime+      `Prelude.seq` Prelude.rnf metricLevelImpactList+      `Prelude.seq` Prelude.rnf primaryMetricName+      `Prelude.seq` Prelude.rnf startTime
+ gen/Amazonka/LookoutMetrics/Types/AnomalyGroupStatistics.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.LookoutMetrics.Types.AnomalyGroupStatistics+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.AnomalyGroupStatistics where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.ItemizedMetricStats+import qualified Amazonka.Prelude as Prelude++-- | Aggregated statistics for a group of anomalous metrics.+--+-- /See:/ 'newAnomalyGroupStatistics' smart constructor.+data AnomalyGroupStatistics = AnomalyGroupStatistics'+  { -- | The start of the time range that was searched.+    evaluationStartDate :: Prelude.Maybe Prelude.Text,+    -- | Statistics for individual metrics within the group.+    itemizedMetricStatsList :: Prelude.Maybe [ItemizedMetricStats],+    -- | The number of groups found.+    totalCount :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnomalyGroupStatistics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'evaluationStartDate', 'anomalyGroupStatistics_evaluationStartDate' - The start of the time range that was searched.+--+-- 'itemizedMetricStatsList', 'anomalyGroupStatistics_itemizedMetricStatsList' - Statistics for individual metrics within the group.+--+-- 'totalCount', 'anomalyGroupStatistics_totalCount' - The number of groups found.+newAnomalyGroupStatistics ::+  AnomalyGroupStatistics+newAnomalyGroupStatistics =+  AnomalyGroupStatistics'+    { evaluationStartDate =+        Prelude.Nothing,+      itemizedMetricStatsList = Prelude.Nothing,+      totalCount = Prelude.Nothing+    }++-- | The start of the time range that was searched.+anomalyGroupStatistics_evaluationStartDate :: Lens.Lens' AnomalyGroupStatistics (Prelude.Maybe Prelude.Text)+anomalyGroupStatistics_evaluationStartDate = Lens.lens (\AnomalyGroupStatistics' {evaluationStartDate} -> evaluationStartDate) (\s@AnomalyGroupStatistics' {} a -> s {evaluationStartDate = a} :: AnomalyGroupStatistics)++-- | Statistics for individual metrics within the group.+anomalyGroupStatistics_itemizedMetricStatsList :: Lens.Lens' AnomalyGroupStatistics (Prelude.Maybe [ItemizedMetricStats])+anomalyGroupStatistics_itemizedMetricStatsList = Lens.lens (\AnomalyGroupStatistics' {itemizedMetricStatsList} -> itemizedMetricStatsList) (\s@AnomalyGroupStatistics' {} a -> s {itemizedMetricStatsList = a} :: AnomalyGroupStatistics) Prelude.. Lens.mapping Lens.coerced++-- | The number of groups found.+anomalyGroupStatistics_totalCount :: Lens.Lens' AnomalyGroupStatistics (Prelude.Maybe Prelude.Int)+anomalyGroupStatistics_totalCount = Lens.lens (\AnomalyGroupStatistics' {totalCount} -> totalCount) (\s@AnomalyGroupStatistics' {} a -> s {totalCount = a} :: AnomalyGroupStatistics)++instance Data.FromJSON AnomalyGroupStatistics where+  parseJSON =+    Data.withObject+      "AnomalyGroupStatistics"+      ( \x ->+          AnomalyGroupStatistics'+            Prelude.<$> (x Data..:? "EvaluationStartDate")+            Prelude.<*> ( x+                            Data..:? "ItemizedMetricStatsList"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "TotalCount")+      )++instance Prelude.Hashable AnomalyGroupStatistics where+  hashWithSalt _salt AnomalyGroupStatistics' {..} =+    _salt+      `Prelude.hashWithSalt` evaluationStartDate+      `Prelude.hashWithSalt` itemizedMetricStatsList+      `Prelude.hashWithSalt` totalCount++instance Prelude.NFData AnomalyGroupStatistics where+  rnf AnomalyGroupStatistics' {..} =+    Prelude.rnf evaluationStartDate+      `Prelude.seq` Prelude.rnf itemizedMetricStatsList+      `Prelude.seq` Prelude.rnf totalCount
+ gen/Amazonka/LookoutMetrics/Types/AnomalyGroupSummary.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.LookoutMetrics.Types.AnomalyGroupSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.AnomalyGroupSummary 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++-- | Details about a group of anomalous metrics.+--+-- /See:/ 'newAnomalyGroupSummary' smart constructor.+data AnomalyGroupSummary = AnomalyGroupSummary'+  { -- | The ID of the anomaly group.+    anomalyGroupId :: Prelude.Maybe Prelude.Text,+    -- | The severity score of the group.+    anomalyGroupScore :: Prelude.Maybe Prelude.Double,+    -- | The end time for the group.+    endTime :: Prelude.Maybe Prelude.Text,+    -- | The name of the primary affected measure for the group.+    primaryMetricName :: Prelude.Maybe Prelude.Text,+    -- | The start time for the group.+    startTime :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnomalyGroupSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyGroupId', 'anomalyGroupSummary_anomalyGroupId' - The ID of the anomaly group.+--+-- 'anomalyGroupScore', 'anomalyGroupSummary_anomalyGroupScore' - The severity score of the group.+--+-- 'endTime', 'anomalyGroupSummary_endTime' - The end time for the group.+--+-- 'primaryMetricName', 'anomalyGroupSummary_primaryMetricName' - The name of the primary affected measure for the group.+--+-- 'startTime', 'anomalyGroupSummary_startTime' - The start time for the group.+newAnomalyGroupSummary ::+  AnomalyGroupSummary+newAnomalyGroupSummary =+  AnomalyGroupSummary'+    { anomalyGroupId =+        Prelude.Nothing,+      anomalyGroupScore = Prelude.Nothing,+      endTime = Prelude.Nothing,+      primaryMetricName = Prelude.Nothing,+      startTime = Prelude.Nothing+    }++-- | The ID of the anomaly group.+anomalyGroupSummary_anomalyGroupId :: Lens.Lens' AnomalyGroupSummary (Prelude.Maybe Prelude.Text)+anomalyGroupSummary_anomalyGroupId = Lens.lens (\AnomalyGroupSummary' {anomalyGroupId} -> anomalyGroupId) (\s@AnomalyGroupSummary' {} a -> s {anomalyGroupId = a} :: AnomalyGroupSummary)++-- | The severity score of the group.+anomalyGroupSummary_anomalyGroupScore :: Lens.Lens' AnomalyGroupSummary (Prelude.Maybe Prelude.Double)+anomalyGroupSummary_anomalyGroupScore = Lens.lens (\AnomalyGroupSummary' {anomalyGroupScore} -> anomalyGroupScore) (\s@AnomalyGroupSummary' {} a -> s {anomalyGroupScore = a} :: AnomalyGroupSummary)++-- | The end time for the group.+anomalyGroupSummary_endTime :: Lens.Lens' AnomalyGroupSummary (Prelude.Maybe Prelude.Text)+anomalyGroupSummary_endTime = Lens.lens (\AnomalyGroupSummary' {endTime} -> endTime) (\s@AnomalyGroupSummary' {} a -> s {endTime = a} :: AnomalyGroupSummary)++-- | The name of the primary affected measure for the group.+anomalyGroupSummary_primaryMetricName :: Lens.Lens' AnomalyGroupSummary (Prelude.Maybe Prelude.Text)+anomalyGroupSummary_primaryMetricName = Lens.lens (\AnomalyGroupSummary' {primaryMetricName} -> primaryMetricName) (\s@AnomalyGroupSummary' {} a -> s {primaryMetricName = a} :: AnomalyGroupSummary)++-- | The start time for the group.+anomalyGroupSummary_startTime :: Lens.Lens' AnomalyGroupSummary (Prelude.Maybe Prelude.Text)+anomalyGroupSummary_startTime = Lens.lens (\AnomalyGroupSummary' {startTime} -> startTime) (\s@AnomalyGroupSummary' {} a -> s {startTime = a} :: AnomalyGroupSummary)++instance Data.FromJSON AnomalyGroupSummary where+  parseJSON =+    Data.withObject+      "AnomalyGroupSummary"+      ( \x ->+          AnomalyGroupSummary'+            Prelude.<$> (x Data..:? "AnomalyGroupId")+            Prelude.<*> (x Data..:? "AnomalyGroupScore")+            Prelude.<*> (x Data..:? "EndTime")+            Prelude.<*> (x Data..:? "PrimaryMetricName")+            Prelude.<*> (x Data..:? "StartTime")+      )++instance Prelude.Hashable AnomalyGroupSummary where+  hashWithSalt _salt AnomalyGroupSummary' {..} =+    _salt+      `Prelude.hashWithSalt` anomalyGroupId+      `Prelude.hashWithSalt` anomalyGroupScore+      `Prelude.hashWithSalt` endTime+      `Prelude.hashWithSalt` primaryMetricName+      `Prelude.hashWithSalt` startTime++instance Prelude.NFData AnomalyGroupSummary where+  rnf AnomalyGroupSummary' {..} =+    Prelude.rnf anomalyGroupId+      `Prelude.seq` Prelude.rnf anomalyGroupScore+      `Prelude.seq` Prelude.rnf endTime+      `Prelude.seq` Prelude.rnf primaryMetricName+      `Prelude.seq` Prelude.rnf startTime
+ gen/Amazonka/LookoutMetrics/Types/AnomalyGroupTimeSeries.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.LookoutMetrics.Types.AnomalyGroupTimeSeries+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.AnomalyGroupTimeSeries where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | An anomalous metric in an anomaly group.+--+-- /See:/ 'newAnomalyGroupTimeSeries' smart constructor.+data AnomalyGroupTimeSeries = AnomalyGroupTimeSeries'+  { -- | The ID of the metric.+    timeSeriesId :: Prelude.Maybe Prelude.Text,+    -- | The ID of the anomaly group.+    anomalyGroupId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnomalyGroupTimeSeries' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'timeSeriesId', 'anomalyGroupTimeSeries_timeSeriesId' - The ID of the metric.+--+-- 'anomalyGroupId', 'anomalyGroupTimeSeries_anomalyGroupId' - The ID of the anomaly group.+newAnomalyGroupTimeSeries ::+  -- | 'anomalyGroupId'+  Prelude.Text ->+  AnomalyGroupTimeSeries+newAnomalyGroupTimeSeries pAnomalyGroupId_ =+  AnomalyGroupTimeSeries'+    { timeSeriesId =+        Prelude.Nothing,+      anomalyGroupId = pAnomalyGroupId_+    }++-- | The ID of the metric.+anomalyGroupTimeSeries_timeSeriesId :: Lens.Lens' AnomalyGroupTimeSeries (Prelude.Maybe Prelude.Text)+anomalyGroupTimeSeries_timeSeriesId = Lens.lens (\AnomalyGroupTimeSeries' {timeSeriesId} -> timeSeriesId) (\s@AnomalyGroupTimeSeries' {} a -> s {timeSeriesId = a} :: AnomalyGroupTimeSeries)++-- | The ID of the anomaly group.+anomalyGroupTimeSeries_anomalyGroupId :: Lens.Lens' AnomalyGroupTimeSeries Prelude.Text+anomalyGroupTimeSeries_anomalyGroupId = Lens.lens (\AnomalyGroupTimeSeries' {anomalyGroupId} -> anomalyGroupId) (\s@AnomalyGroupTimeSeries' {} a -> s {anomalyGroupId = a} :: AnomalyGroupTimeSeries)++instance Prelude.Hashable AnomalyGroupTimeSeries where+  hashWithSalt _salt AnomalyGroupTimeSeries' {..} =+    _salt+      `Prelude.hashWithSalt` timeSeriesId+      `Prelude.hashWithSalt` anomalyGroupId++instance Prelude.NFData AnomalyGroupTimeSeries where+  rnf AnomalyGroupTimeSeries' {..} =+    Prelude.rnf timeSeriesId+      `Prelude.seq` Prelude.rnf anomalyGroupId++instance Data.ToJSON AnomalyGroupTimeSeries where+  toJSON AnomalyGroupTimeSeries' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("TimeSeriesId" Data..=) Prelude.<$> timeSeriesId,+            Prelude.Just+              ("AnomalyGroupId" Data..= anomalyGroupId)+          ]+      )
+ gen/Amazonka/LookoutMetrics/Types/AnomalyGroupTimeSeriesFeedback.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.Types.AnomalyGroupTimeSeriesFeedback+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.AnomalyGroupTimeSeriesFeedback 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++-- | Feedback for an anomalous metric.+--+-- /See:/ 'newAnomalyGroupTimeSeriesFeedback' smart constructor.+data AnomalyGroupTimeSeriesFeedback = AnomalyGroupTimeSeriesFeedback'+  { -- | The ID of the anomaly group.+    anomalyGroupId :: Prelude.Text,+    -- | The ID of the metric.+    timeSeriesId :: Prelude.Text,+    -- | Feedback on whether the metric is a legitimate anomaly.+    isAnomaly :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnomalyGroupTimeSeriesFeedback' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyGroupId', 'anomalyGroupTimeSeriesFeedback_anomalyGroupId' - The ID of the anomaly group.+--+-- 'timeSeriesId', 'anomalyGroupTimeSeriesFeedback_timeSeriesId' - The ID of the metric.+--+-- 'isAnomaly', 'anomalyGroupTimeSeriesFeedback_isAnomaly' - Feedback on whether the metric is a legitimate anomaly.+newAnomalyGroupTimeSeriesFeedback ::+  -- | 'anomalyGroupId'+  Prelude.Text ->+  -- | 'timeSeriesId'+  Prelude.Text ->+  -- | 'isAnomaly'+  Prelude.Bool ->+  AnomalyGroupTimeSeriesFeedback+newAnomalyGroupTimeSeriesFeedback+  pAnomalyGroupId_+  pTimeSeriesId_+  pIsAnomaly_ =+    AnomalyGroupTimeSeriesFeedback'+      { anomalyGroupId =+          pAnomalyGroupId_,+        timeSeriesId = pTimeSeriesId_,+        isAnomaly = pIsAnomaly_+      }++-- | The ID of the anomaly group.+anomalyGroupTimeSeriesFeedback_anomalyGroupId :: Lens.Lens' AnomalyGroupTimeSeriesFeedback Prelude.Text+anomalyGroupTimeSeriesFeedback_anomalyGroupId = Lens.lens (\AnomalyGroupTimeSeriesFeedback' {anomalyGroupId} -> anomalyGroupId) (\s@AnomalyGroupTimeSeriesFeedback' {} a -> s {anomalyGroupId = a} :: AnomalyGroupTimeSeriesFeedback)++-- | The ID of the metric.+anomalyGroupTimeSeriesFeedback_timeSeriesId :: Lens.Lens' AnomalyGroupTimeSeriesFeedback Prelude.Text+anomalyGroupTimeSeriesFeedback_timeSeriesId = Lens.lens (\AnomalyGroupTimeSeriesFeedback' {timeSeriesId} -> timeSeriesId) (\s@AnomalyGroupTimeSeriesFeedback' {} a -> s {timeSeriesId = a} :: AnomalyGroupTimeSeriesFeedback)++-- | Feedback on whether the metric is a legitimate anomaly.+anomalyGroupTimeSeriesFeedback_isAnomaly :: Lens.Lens' AnomalyGroupTimeSeriesFeedback Prelude.Bool+anomalyGroupTimeSeriesFeedback_isAnomaly = Lens.lens (\AnomalyGroupTimeSeriesFeedback' {isAnomaly} -> isAnomaly) (\s@AnomalyGroupTimeSeriesFeedback' {} a -> s {isAnomaly = a} :: AnomalyGroupTimeSeriesFeedback)++instance+  Prelude.Hashable+    AnomalyGroupTimeSeriesFeedback+  where+  hashWithSalt+    _salt+    AnomalyGroupTimeSeriesFeedback' {..} =+      _salt+        `Prelude.hashWithSalt` anomalyGroupId+        `Prelude.hashWithSalt` timeSeriesId+        `Prelude.hashWithSalt` isAnomaly++instance+  Prelude.NFData+    AnomalyGroupTimeSeriesFeedback+  where+  rnf AnomalyGroupTimeSeriesFeedback' {..} =+    Prelude.rnf anomalyGroupId+      `Prelude.seq` Prelude.rnf timeSeriesId+      `Prelude.seq` Prelude.rnf isAnomaly++instance Data.ToJSON AnomalyGroupTimeSeriesFeedback where+  toJSON AnomalyGroupTimeSeriesFeedback' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("AnomalyGroupId" Data..= anomalyGroupId),+            Prelude.Just ("TimeSeriesId" Data..= timeSeriesId),+            Prelude.Just ("IsAnomaly" Data..= isAnomaly)+          ]+      )
+ gen/Amazonka/LookoutMetrics/Types/AppFlowConfig.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.LookoutMetrics.Types.AppFlowConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.AppFlowConfig 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++-- | Details about an Amazon AppFlow flow datasource.+--+-- /See:/ 'newAppFlowConfig' smart constructor.+data AppFlowConfig = AppFlowConfig'+  { -- | name of the flow.+    flowName :: Prelude.Maybe Prelude.Text,+    -- | An IAM role that gives Amazon Lookout for Metrics permission to access+    -- the flow.+    roleArn :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AppFlowConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowName', 'appFlowConfig_flowName' - name of the flow.+--+-- 'roleArn', 'appFlowConfig_roleArn' - An IAM role that gives Amazon Lookout for Metrics permission to access+-- the flow.+newAppFlowConfig ::+  AppFlowConfig+newAppFlowConfig =+  AppFlowConfig'+    { flowName = Prelude.Nothing,+      roleArn = Prelude.Nothing+    }++-- | name of the flow.+appFlowConfig_flowName :: Lens.Lens' AppFlowConfig (Prelude.Maybe Prelude.Text)+appFlowConfig_flowName = Lens.lens (\AppFlowConfig' {flowName} -> flowName) (\s@AppFlowConfig' {} a -> s {flowName = a} :: AppFlowConfig)++-- | An IAM role that gives Amazon Lookout for Metrics permission to access+-- the flow.+appFlowConfig_roleArn :: Lens.Lens' AppFlowConfig (Prelude.Maybe Prelude.Text)+appFlowConfig_roleArn = Lens.lens (\AppFlowConfig' {roleArn} -> roleArn) (\s@AppFlowConfig' {} a -> s {roleArn = a} :: AppFlowConfig)++instance Data.FromJSON AppFlowConfig where+  parseJSON =+    Data.withObject+      "AppFlowConfig"+      ( \x ->+          AppFlowConfig'+            Prelude.<$> (x Data..:? "FlowName")+            Prelude.<*> (x Data..:? "RoleArn")+      )++instance Prelude.Hashable AppFlowConfig where+  hashWithSalt _salt AppFlowConfig' {..} =+    _salt+      `Prelude.hashWithSalt` flowName+      `Prelude.hashWithSalt` roleArn++instance Prelude.NFData AppFlowConfig where+  rnf AppFlowConfig' {..} =+    Prelude.rnf flowName+      `Prelude.seq` Prelude.rnf roleArn++instance Data.ToJSON AppFlowConfig where+  toJSON AppFlowConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("FlowName" Data..=) Prelude.<$> flowName,+            ("RoleArn" Data..=) Prelude.<$> roleArn+          ]+      )
+ gen/Amazonka/LookoutMetrics/Types/AthenaSourceConfig.hs view
@@ -0,0 +1,164 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.Types.AthenaSourceConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.AthenaSourceConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.BackTestConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Details about an Amazon Athena datasource.+--+-- /See:/ 'newAthenaSourceConfig' smart constructor.+data AthenaSourceConfig = AthenaSourceConfig'+  { -- | Settings for backtest mode.+    backTestConfiguration :: Prelude.Maybe BackTestConfiguration,+    -- | The database\'s data catalog.+    dataCatalog :: Prelude.Maybe Prelude.Text,+    -- | The database\'s name.+    databaseName :: Prelude.Maybe Prelude.Text,+    -- | An IAM role that gives Amazon Lookout for Metrics permission to access+    -- the data.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The database\'s results path.+    s3ResultsPath :: Prelude.Maybe Prelude.Text,+    -- | The database\'s table name.+    tableName :: Prelude.Maybe Prelude.Text,+    -- | The database\'s work group name.+    workGroupName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AthenaSourceConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'backTestConfiguration', 'athenaSourceConfig_backTestConfiguration' - Settings for backtest mode.+--+-- 'dataCatalog', 'athenaSourceConfig_dataCatalog' - The database\'s data catalog.+--+-- 'databaseName', 'athenaSourceConfig_databaseName' - The database\'s name.+--+-- 'roleArn', 'athenaSourceConfig_roleArn' - An IAM role that gives Amazon Lookout for Metrics permission to access+-- the data.+--+-- 's3ResultsPath', 'athenaSourceConfig_s3ResultsPath' - The database\'s results path.+--+-- 'tableName', 'athenaSourceConfig_tableName' - The database\'s table name.+--+-- 'workGroupName', 'athenaSourceConfig_workGroupName' - The database\'s work group name.+newAthenaSourceConfig ::+  AthenaSourceConfig+newAthenaSourceConfig =+  AthenaSourceConfig'+    { backTestConfiguration =+        Prelude.Nothing,+      dataCatalog = Prelude.Nothing,+      databaseName = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      s3ResultsPath = Prelude.Nothing,+      tableName = Prelude.Nothing,+      workGroupName = Prelude.Nothing+    }++-- | Settings for backtest mode.+athenaSourceConfig_backTestConfiguration :: Lens.Lens' AthenaSourceConfig (Prelude.Maybe BackTestConfiguration)+athenaSourceConfig_backTestConfiguration = Lens.lens (\AthenaSourceConfig' {backTestConfiguration} -> backTestConfiguration) (\s@AthenaSourceConfig' {} a -> s {backTestConfiguration = a} :: AthenaSourceConfig)++-- | The database\'s data catalog.+athenaSourceConfig_dataCatalog :: Lens.Lens' AthenaSourceConfig (Prelude.Maybe Prelude.Text)+athenaSourceConfig_dataCatalog = Lens.lens (\AthenaSourceConfig' {dataCatalog} -> dataCatalog) (\s@AthenaSourceConfig' {} a -> s {dataCatalog = a} :: AthenaSourceConfig)++-- | The database\'s name.+athenaSourceConfig_databaseName :: Lens.Lens' AthenaSourceConfig (Prelude.Maybe Prelude.Text)+athenaSourceConfig_databaseName = Lens.lens (\AthenaSourceConfig' {databaseName} -> databaseName) (\s@AthenaSourceConfig' {} a -> s {databaseName = a} :: AthenaSourceConfig)++-- | An IAM role that gives Amazon Lookout for Metrics permission to access+-- the data.+athenaSourceConfig_roleArn :: Lens.Lens' AthenaSourceConfig (Prelude.Maybe Prelude.Text)+athenaSourceConfig_roleArn = Lens.lens (\AthenaSourceConfig' {roleArn} -> roleArn) (\s@AthenaSourceConfig' {} a -> s {roleArn = a} :: AthenaSourceConfig)++-- | The database\'s results path.+athenaSourceConfig_s3ResultsPath :: Lens.Lens' AthenaSourceConfig (Prelude.Maybe Prelude.Text)+athenaSourceConfig_s3ResultsPath = Lens.lens (\AthenaSourceConfig' {s3ResultsPath} -> s3ResultsPath) (\s@AthenaSourceConfig' {} a -> s {s3ResultsPath = a} :: AthenaSourceConfig)++-- | The database\'s table name.+athenaSourceConfig_tableName :: Lens.Lens' AthenaSourceConfig (Prelude.Maybe Prelude.Text)+athenaSourceConfig_tableName = Lens.lens (\AthenaSourceConfig' {tableName} -> tableName) (\s@AthenaSourceConfig' {} a -> s {tableName = a} :: AthenaSourceConfig)++-- | The database\'s work group name.+athenaSourceConfig_workGroupName :: Lens.Lens' AthenaSourceConfig (Prelude.Maybe Prelude.Text)+athenaSourceConfig_workGroupName = Lens.lens (\AthenaSourceConfig' {workGroupName} -> workGroupName) (\s@AthenaSourceConfig' {} a -> s {workGroupName = a} :: AthenaSourceConfig)++instance Data.FromJSON AthenaSourceConfig where+  parseJSON =+    Data.withObject+      "AthenaSourceConfig"+      ( \x ->+          AthenaSourceConfig'+            Prelude.<$> (x Data..:? "BackTestConfiguration")+            Prelude.<*> (x Data..:? "DataCatalog")+            Prelude.<*> (x Data..:? "DatabaseName")+            Prelude.<*> (x Data..:? "RoleArn")+            Prelude.<*> (x Data..:? "S3ResultsPath")+            Prelude.<*> (x Data..:? "TableName")+            Prelude.<*> (x Data..:? "WorkGroupName")+      )++instance Prelude.Hashable AthenaSourceConfig where+  hashWithSalt _salt AthenaSourceConfig' {..} =+    _salt+      `Prelude.hashWithSalt` backTestConfiguration+      `Prelude.hashWithSalt` dataCatalog+      `Prelude.hashWithSalt` databaseName+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` s3ResultsPath+      `Prelude.hashWithSalt` tableName+      `Prelude.hashWithSalt` workGroupName++instance Prelude.NFData AthenaSourceConfig where+  rnf AthenaSourceConfig' {..} =+    Prelude.rnf backTestConfiguration+      `Prelude.seq` Prelude.rnf dataCatalog+      `Prelude.seq` Prelude.rnf databaseName+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf s3ResultsPath+      `Prelude.seq` Prelude.rnf tableName+      `Prelude.seq` Prelude.rnf workGroupName++instance Data.ToJSON AthenaSourceConfig where+  toJSON AthenaSourceConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BackTestConfiguration" Data..=)+              Prelude.<$> backTestConfiguration,+            ("DataCatalog" Data..=) Prelude.<$> dataCatalog,+            ("DatabaseName" Data..=) Prelude.<$> databaseName,+            ("RoleArn" Data..=) Prelude.<$> roleArn,+            ("S3ResultsPath" Data..=) Prelude.<$> s3ResultsPath,+            ("TableName" Data..=) Prelude.<$> tableName,+            ("WorkGroupName" Data..=) Prelude.<$> workGroupName+          ]+      )
+ gen/Amazonka/LookoutMetrics/Types/AttributeValue.hs view
@@ -0,0 +1,132 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.Types.AttributeValue+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.AttributeValue where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | An attribute value.+--+-- /See:/ 'newAttributeValue' smart constructor.+data AttributeValue = AttributeValue'+  { -- | A binary value.+    b :: Prelude.Maybe Prelude.Text,+    -- | A list of binary values.+    bs :: Prelude.Maybe [Prelude.Text],+    -- | A number.+    n :: Prelude.Maybe Prelude.Text,+    -- | A list of numbers.+    ns :: Prelude.Maybe [Prelude.Text],+    -- | A string.+    s :: Prelude.Maybe Prelude.Text,+    -- | A list of strings.+    ss :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AttributeValue' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'b', 'attributeValue_b' - A binary value.+--+-- 'bs', 'attributeValue_bs' - A list of binary values.+--+-- 'n', 'attributeValue_n' - A number.+--+-- 'ns', 'attributeValue_ns' - A list of numbers.+--+-- 's', 'attributeValue_s' - A string.+--+-- 'ss', 'attributeValue_ss' - A list of strings.+newAttributeValue ::+  AttributeValue+newAttributeValue =+  AttributeValue'+    { b = Prelude.Nothing,+      bs = Prelude.Nothing,+      n = Prelude.Nothing,+      ns = Prelude.Nothing,+      s = Prelude.Nothing,+      ss = Prelude.Nothing+    }++-- | A binary value.+attributeValue_b :: Lens.Lens' AttributeValue (Prelude.Maybe Prelude.Text)+attributeValue_b = Lens.lens (\AttributeValue' {b} -> b) (\s@AttributeValue' {} a -> s {b = a} :: AttributeValue)++-- | A list of binary values.+attributeValue_bs :: Lens.Lens' AttributeValue (Prelude.Maybe [Prelude.Text])+attributeValue_bs = Lens.lens (\AttributeValue' {bs} -> bs) (\s@AttributeValue' {} a -> s {bs = a} :: AttributeValue) Prelude.. Lens.mapping Lens.coerced++-- | A number.+attributeValue_n :: Lens.Lens' AttributeValue (Prelude.Maybe Prelude.Text)+attributeValue_n = Lens.lens (\AttributeValue' {n} -> n) (\s@AttributeValue' {} a -> s {n = a} :: AttributeValue)++-- | A list of numbers.+attributeValue_ns :: Lens.Lens' AttributeValue (Prelude.Maybe [Prelude.Text])+attributeValue_ns = Lens.lens (\AttributeValue' {ns} -> ns) (\s@AttributeValue' {} a -> s {ns = a} :: AttributeValue) Prelude.. Lens.mapping Lens.coerced++-- | A string.+attributeValue_s :: Lens.Lens' AttributeValue (Prelude.Maybe Prelude.Text)+attributeValue_s = Lens.lens (\AttributeValue' {s} -> s) (\s@AttributeValue' {} a -> s {s = a} :: AttributeValue)++-- | A list of strings.+attributeValue_ss :: Lens.Lens' AttributeValue (Prelude.Maybe [Prelude.Text])+attributeValue_ss = Lens.lens (\AttributeValue' {ss} -> ss) (\s@AttributeValue' {} a -> s {ss = a} :: AttributeValue) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON AttributeValue where+  parseJSON =+    Data.withObject+      "AttributeValue"+      ( \x ->+          AttributeValue'+            Prelude.<$> (x Data..:? "B")+            Prelude.<*> (x Data..:? "BS" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "N")+            Prelude.<*> (x Data..:? "NS" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "S")+            Prelude.<*> (x Data..:? "SS" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable AttributeValue where+  hashWithSalt _salt AttributeValue' {..} =+    _salt+      `Prelude.hashWithSalt` b+      `Prelude.hashWithSalt` bs+      `Prelude.hashWithSalt` n+      `Prelude.hashWithSalt` ns+      `Prelude.hashWithSalt` s+      `Prelude.hashWithSalt` ss++instance Prelude.NFData AttributeValue where+  rnf AttributeValue' {..} =+    Prelude.rnf b+      `Prelude.seq` Prelude.rnf bs+      `Prelude.seq` Prelude.rnf n+      `Prelude.seq` Prelude.rnf ns+      `Prelude.seq` Prelude.rnf s+      `Prelude.seq` Prelude.rnf ss
+ gen/Amazonka/LookoutMetrics/Types/AutoDetectionMetricSource.hs view
@@ -0,0 +1,73 @@+{-# 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.LookoutMetrics.Types.AutoDetectionMetricSource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.AutoDetectionMetricSource where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.AutoDetectionS3SourceConfig+import qualified Amazonka.Prelude as Prelude++-- | An auto detection metric source.+--+-- /See:/ 'newAutoDetectionMetricSource' smart constructor.+data AutoDetectionMetricSource = AutoDetectionMetricSource'+  { -- | The source\'s source config.+    s3SourceConfig :: Prelude.Maybe AutoDetectionS3SourceConfig+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AutoDetectionMetricSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3SourceConfig', 'autoDetectionMetricSource_s3SourceConfig' - The source\'s source config.+newAutoDetectionMetricSource ::+  AutoDetectionMetricSource+newAutoDetectionMetricSource =+  AutoDetectionMetricSource'+    { s3SourceConfig =+        Prelude.Nothing+    }++-- | The source\'s source config.+autoDetectionMetricSource_s3SourceConfig :: Lens.Lens' AutoDetectionMetricSource (Prelude.Maybe AutoDetectionS3SourceConfig)+autoDetectionMetricSource_s3SourceConfig = Lens.lens (\AutoDetectionMetricSource' {s3SourceConfig} -> s3SourceConfig) (\s@AutoDetectionMetricSource' {} a -> s {s3SourceConfig = a} :: AutoDetectionMetricSource)++instance Prelude.Hashable AutoDetectionMetricSource where+  hashWithSalt _salt AutoDetectionMetricSource' {..} =+    _salt `Prelude.hashWithSalt` s3SourceConfig++instance Prelude.NFData AutoDetectionMetricSource where+  rnf AutoDetectionMetricSource' {..} =+    Prelude.rnf s3SourceConfig++instance Data.ToJSON AutoDetectionMetricSource where+  toJSON AutoDetectionMetricSource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("S3SourceConfig" Data..=)+              Prelude.<$> s3SourceConfig+          ]+      )
+ gen/Amazonka/LookoutMetrics/Types/AutoDetectionS3SourceConfig.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.LookoutMetrics.Types.AutoDetectionS3SourceConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.AutoDetectionS3SourceConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | An auto detection source config.+--+-- /See:/ 'newAutoDetectionS3SourceConfig' smart constructor.+data AutoDetectionS3SourceConfig = AutoDetectionS3SourceConfig'+  { -- | The config\'s historical data path list.+    historicalDataPathList :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The config\'s templated path list.+    templatedPathList :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AutoDetectionS3SourceConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'historicalDataPathList', 'autoDetectionS3SourceConfig_historicalDataPathList' - The config\'s historical data path list.+--+-- 'templatedPathList', 'autoDetectionS3SourceConfig_templatedPathList' - The config\'s templated path list.+newAutoDetectionS3SourceConfig ::+  AutoDetectionS3SourceConfig+newAutoDetectionS3SourceConfig =+  AutoDetectionS3SourceConfig'+    { historicalDataPathList =+        Prelude.Nothing,+      templatedPathList = Prelude.Nothing+    }++-- | The config\'s historical data path list.+autoDetectionS3SourceConfig_historicalDataPathList :: Lens.Lens' AutoDetectionS3SourceConfig (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+autoDetectionS3SourceConfig_historicalDataPathList = Lens.lens (\AutoDetectionS3SourceConfig' {historicalDataPathList} -> historicalDataPathList) (\s@AutoDetectionS3SourceConfig' {} a -> s {historicalDataPathList = a} :: AutoDetectionS3SourceConfig) Prelude.. Lens.mapping Lens.coerced++-- | The config\'s templated path list.+autoDetectionS3SourceConfig_templatedPathList :: Lens.Lens' AutoDetectionS3SourceConfig (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+autoDetectionS3SourceConfig_templatedPathList = Lens.lens (\AutoDetectionS3SourceConfig' {templatedPathList} -> templatedPathList) (\s@AutoDetectionS3SourceConfig' {} a -> s {templatedPathList = a} :: AutoDetectionS3SourceConfig) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable AutoDetectionS3SourceConfig where+  hashWithSalt _salt AutoDetectionS3SourceConfig' {..} =+    _salt+      `Prelude.hashWithSalt` historicalDataPathList+      `Prelude.hashWithSalt` templatedPathList++instance Prelude.NFData AutoDetectionS3SourceConfig where+  rnf AutoDetectionS3SourceConfig' {..} =+    Prelude.rnf historicalDataPathList+      `Prelude.seq` Prelude.rnf templatedPathList++instance Data.ToJSON AutoDetectionS3SourceConfig where+  toJSON AutoDetectionS3SourceConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("HistoricalDataPathList" Data..=)+              Prelude.<$> historicalDataPathList,+            ("TemplatedPathList" Data..=)+              Prelude.<$> templatedPathList+          ]+      )
+ gen/Amazonka/LookoutMetrics/Types/BackTestConfiguration.hs view
@@ -0,0 +1,83 @@+{-# 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.LookoutMetrics.Types.BackTestConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.BackTestConfiguration 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++-- | Settings for backtest mode.+--+-- /See:/ 'newBackTestConfiguration' smart constructor.+data BackTestConfiguration = BackTestConfiguration'+  { -- | Run a backtest instead of monitoring new data.+    runBackTestMode :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BackTestConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'runBackTestMode', 'backTestConfiguration_runBackTestMode' - Run a backtest instead of monitoring new data.+newBackTestConfiguration ::+  -- | 'runBackTestMode'+  Prelude.Bool ->+  BackTestConfiguration+newBackTestConfiguration pRunBackTestMode_ =+  BackTestConfiguration'+    { runBackTestMode =+        pRunBackTestMode_+    }++-- | Run a backtest instead of monitoring new data.+backTestConfiguration_runBackTestMode :: Lens.Lens' BackTestConfiguration Prelude.Bool+backTestConfiguration_runBackTestMode = Lens.lens (\BackTestConfiguration' {runBackTestMode} -> runBackTestMode) (\s@BackTestConfiguration' {} a -> s {runBackTestMode = a} :: BackTestConfiguration)++instance Data.FromJSON BackTestConfiguration where+  parseJSON =+    Data.withObject+      "BackTestConfiguration"+      ( \x ->+          BackTestConfiguration'+            Prelude.<$> (x Data..: "RunBackTestMode")+      )++instance Prelude.Hashable BackTestConfiguration where+  hashWithSalt _salt BackTestConfiguration' {..} =+    _salt `Prelude.hashWithSalt` runBackTestMode++instance Prelude.NFData BackTestConfiguration where+  rnf BackTestConfiguration' {..} =+    Prelude.rnf runBackTestMode++instance Data.ToJSON BackTestConfiguration where+  toJSON BackTestConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("RunBackTestMode" Data..= runBackTestMode)+          ]+      )
+ gen/Amazonka/LookoutMetrics/Types/CSVFileCompression.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.LookoutMetrics.Types.CSVFileCompression+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.CSVFileCompression+  ( CSVFileCompression+      ( ..,+        CSVFileCompression_GZIP,+        CSVFileCompression_NONE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CSVFileCompression = CSVFileCompression'+  { fromCSVFileCompression ::+      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 CSVFileCompression_GZIP :: CSVFileCompression+pattern CSVFileCompression_GZIP = CSVFileCompression' "GZIP"++pattern CSVFileCompression_NONE :: CSVFileCompression+pattern CSVFileCompression_NONE = CSVFileCompression' "NONE"++{-# COMPLETE+  CSVFileCompression_GZIP,+  CSVFileCompression_NONE,+  CSVFileCompression'+  #-}
+ gen/Amazonka/LookoutMetrics/Types/CloudWatchConfig.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.LookoutMetrics.Types.CloudWatchConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.CloudWatchConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.BackTestConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Details about an Amazon CloudWatch datasource.+--+-- /See:/ 'newCloudWatchConfig' smart constructor.+data CloudWatchConfig = CloudWatchConfig'+  { -- | Settings for backtest mode.+    backTestConfiguration :: Prelude.Maybe BackTestConfiguration,+    -- | An IAM role that gives Amazon Lookout for Metrics permission to access+    -- data in Amazon CloudWatch.+    roleArn :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CloudWatchConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'backTestConfiguration', 'cloudWatchConfig_backTestConfiguration' - Settings for backtest mode.+--+-- 'roleArn', 'cloudWatchConfig_roleArn' - An IAM role that gives Amazon Lookout for Metrics permission to access+-- data in Amazon CloudWatch.+newCloudWatchConfig ::+  CloudWatchConfig+newCloudWatchConfig =+  CloudWatchConfig'+    { backTestConfiguration =+        Prelude.Nothing,+      roleArn = Prelude.Nothing+    }++-- | Settings for backtest mode.+cloudWatchConfig_backTestConfiguration :: Lens.Lens' CloudWatchConfig (Prelude.Maybe BackTestConfiguration)+cloudWatchConfig_backTestConfiguration = Lens.lens (\CloudWatchConfig' {backTestConfiguration} -> backTestConfiguration) (\s@CloudWatchConfig' {} a -> s {backTestConfiguration = a} :: CloudWatchConfig)++-- | An IAM role that gives Amazon Lookout for Metrics permission to access+-- data in Amazon CloudWatch.+cloudWatchConfig_roleArn :: Lens.Lens' CloudWatchConfig (Prelude.Maybe Prelude.Text)+cloudWatchConfig_roleArn = Lens.lens (\CloudWatchConfig' {roleArn} -> roleArn) (\s@CloudWatchConfig' {} a -> s {roleArn = a} :: CloudWatchConfig)++instance Data.FromJSON CloudWatchConfig where+  parseJSON =+    Data.withObject+      "CloudWatchConfig"+      ( \x ->+          CloudWatchConfig'+            Prelude.<$> (x Data..:? "BackTestConfiguration")+            Prelude.<*> (x Data..:? "RoleArn")+      )++instance Prelude.Hashable CloudWatchConfig where+  hashWithSalt _salt CloudWatchConfig' {..} =+    _salt+      `Prelude.hashWithSalt` backTestConfiguration+      `Prelude.hashWithSalt` roleArn++instance Prelude.NFData CloudWatchConfig where+  rnf CloudWatchConfig' {..} =+    Prelude.rnf backTestConfiguration+      `Prelude.seq` Prelude.rnf roleArn++instance Data.ToJSON CloudWatchConfig where+  toJSON CloudWatchConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BackTestConfiguration" Data..=)+              Prelude.<$> backTestConfiguration,+            ("RoleArn" Data..=) Prelude.<$> roleArn+          ]+      )
+ gen/Amazonka/LookoutMetrics/Types/Confidence.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.LookoutMetrics.Types.Confidence+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.Confidence+  ( Confidence+      ( ..,+        Confidence_HIGH,+        Confidence_LOW,+        Confidence_NONE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Confidence = Confidence'+  { fromConfidence ::+      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 Confidence_HIGH :: Confidence+pattern Confidence_HIGH = Confidence' "HIGH"++pattern Confidence_LOW :: Confidence+pattern Confidence_LOW = Confidence' "LOW"++pattern Confidence_NONE :: Confidence+pattern Confidence_NONE = Confidence' "NONE"++{-# COMPLETE+  Confidence_HIGH,+  Confidence_LOW,+  Confidence_NONE,+  Confidence'+  #-}
+ gen/Amazonka/LookoutMetrics/Types/ContributionMatrix.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.LookoutMetrics.Types.ContributionMatrix+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.ContributionMatrix where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.DimensionContribution+import qualified Amazonka.Prelude as Prelude++-- | Details about dimensions that contributed to an anomaly.+--+-- /See:/ 'newContributionMatrix' smart constructor.+data ContributionMatrix = ContributionMatrix'+  { -- | A list of contributing dimensions.+    dimensionContributionList :: Prelude.Maybe [DimensionContribution]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ContributionMatrix' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dimensionContributionList', 'contributionMatrix_dimensionContributionList' - A list of contributing dimensions.+newContributionMatrix ::+  ContributionMatrix+newContributionMatrix =+  ContributionMatrix'+    { dimensionContributionList =+        Prelude.Nothing+    }++-- | A list of contributing dimensions.+contributionMatrix_dimensionContributionList :: Lens.Lens' ContributionMatrix (Prelude.Maybe [DimensionContribution])+contributionMatrix_dimensionContributionList = Lens.lens (\ContributionMatrix' {dimensionContributionList} -> dimensionContributionList) (\s@ContributionMatrix' {} a -> s {dimensionContributionList = a} :: ContributionMatrix) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ContributionMatrix where+  parseJSON =+    Data.withObject+      "ContributionMatrix"+      ( \x ->+          ContributionMatrix'+            Prelude.<$> ( x+                            Data..:? "DimensionContributionList"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable ContributionMatrix where+  hashWithSalt _salt ContributionMatrix' {..} =+    _salt+      `Prelude.hashWithSalt` dimensionContributionList++instance Prelude.NFData ContributionMatrix where+  rnf ContributionMatrix' {..} =+    Prelude.rnf dimensionContributionList
+ gen/Amazonka/LookoutMetrics/Types/CsvFormatDescriptor.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.LookoutMetrics.Types.CsvFormatDescriptor+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.CsvFormatDescriptor where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.CSVFileCompression+import qualified Amazonka.Prelude as Prelude++-- | Contains information about how a source CSV data file should be+-- analyzed.+--+-- /See:/ 'newCsvFormatDescriptor' smart constructor.+data CsvFormatDescriptor = CsvFormatDescriptor'+  { -- | The character set in which the source CSV file is written.+    charset :: Prelude.Maybe Prelude.Text,+    -- | Whether or not the source CSV file contains a header.+    containsHeader :: Prelude.Maybe Prelude.Bool,+    -- | The character used to delimit the source CSV file.+    delimiter :: Prelude.Maybe Prelude.Text,+    -- | The level of compression of the source CSV file.+    fileCompression :: Prelude.Maybe CSVFileCompression,+    -- | A list of the source CSV file\'s headers, if any.+    headerList :: Prelude.Maybe [Prelude.Text],+    -- | The character used as a quote character.+    quoteSymbol :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CsvFormatDescriptor' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'charset', 'csvFormatDescriptor_charset' - The character set in which the source CSV file is written.+--+-- 'containsHeader', 'csvFormatDescriptor_containsHeader' - Whether or not the source CSV file contains a header.+--+-- 'delimiter', 'csvFormatDescriptor_delimiter' - The character used to delimit the source CSV file.+--+-- 'fileCompression', 'csvFormatDescriptor_fileCompression' - The level of compression of the source CSV file.+--+-- 'headerList', 'csvFormatDescriptor_headerList' - A list of the source CSV file\'s headers, if any.+--+-- 'quoteSymbol', 'csvFormatDescriptor_quoteSymbol' - The character used as a quote character.+newCsvFormatDescriptor ::+  CsvFormatDescriptor+newCsvFormatDescriptor =+  CsvFormatDescriptor'+    { charset = Prelude.Nothing,+      containsHeader = Prelude.Nothing,+      delimiter = Prelude.Nothing,+      fileCompression = Prelude.Nothing,+      headerList = Prelude.Nothing,+      quoteSymbol = Prelude.Nothing+    }++-- | The character set in which the source CSV file is written.+csvFormatDescriptor_charset :: Lens.Lens' CsvFormatDescriptor (Prelude.Maybe Prelude.Text)+csvFormatDescriptor_charset = Lens.lens (\CsvFormatDescriptor' {charset} -> charset) (\s@CsvFormatDescriptor' {} a -> s {charset = a} :: CsvFormatDescriptor)++-- | Whether or not the source CSV file contains a header.+csvFormatDescriptor_containsHeader :: Lens.Lens' CsvFormatDescriptor (Prelude.Maybe Prelude.Bool)+csvFormatDescriptor_containsHeader = Lens.lens (\CsvFormatDescriptor' {containsHeader} -> containsHeader) (\s@CsvFormatDescriptor' {} a -> s {containsHeader = a} :: CsvFormatDescriptor)++-- | The character used to delimit the source CSV file.+csvFormatDescriptor_delimiter :: Lens.Lens' CsvFormatDescriptor (Prelude.Maybe Prelude.Text)+csvFormatDescriptor_delimiter = Lens.lens (\CsvFormatDescriptor' {delimiter} -> delimiter) (\s@CsvFormatDescriptor' {} a -> s {delimiter = a} :: CsvFormatDescriptor)++-- | The level of compression of the source CSV file.+csvFormatDescriptor_fileCompression :: Lens.Lens' CsvFormatDescriptor (Prelude.Maybe CSVFileCompression)+csvFormatDescriptor_fileCompression = Lens.lens (\CsvFormatDescriptor' {fileCompression} -> fileCompression) (\s@CsvFormatDescriptor' {} a -> s {fileCompression = a} :: CsvFormatDescriptor)++-- | A list of the source CSV file\'s headers, if any.+csvFormatDescriptor_headerList :: Lens.Lens' CsvFormatDescriptor (Prelude.Maybe [Prelude.Text])+csvFormatDescriptor_headerList = Lens.lens (\CsvFormatDescriptor' {headerList} -> headerList) (\s@CsvFormatDescriptor' {} a -> s {headerList = a} :: CsvFormatDescriptor) Prelude.. Lens.mapping Lens.coerced++-- | The character used as a quote character.+csvFormatDescriptor_quoteSymbol :: Lens.Lens' CsvFormatDescriptor (Prelude.Maybe Prelude.Text)+csvFormatDescriptor_quoteSymbol = Lens.lens (\CsvFormatDescriptor' {quoteSymbol} -> quoteSymbol) (\s@CsvFormatDescriptor' {} a -> s {quoteSymbol = a} :: CsvFormatDescriptor)++instance Data.FromJSON CsvFormatDescriptor where+  parseJSON =+    Data.withObject+      "CsvFormatDescriptor"+      ( \x ->+          CsvFormatDescriptor'+            Prelude.<$> (x Data..:? "Charset")+            Prelude.<*> (x Data..:? "ContainsHeader")+            Prelude.<*> (x Data..:? "Delimiter")+            Prelude.<*> (x Data..:? "FileCompression")+            Prelude.<*> (x Data..:? "HeaderList" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "QuoteSymbol")+      )++instance Prelude.Hashable CsvFormatDescriptor where+  hashWithSalt _salt CsvFormatDescriptor' {..} =+    _salt+      `Prelude.hashWithSalt` charset+      `Prelude.hashWithSalt` containsHeader+      `Prelude.hashWithSalt` delimiter+      `Prelude.hashWithSalt` fileCompression+      `Prelude.hashWithSalt` headerList+      `Prelude.hashWithSalt` quoteSymbol++instance Prelude.NFData CsvFormatDescriptor where+  rnf CsvFormatDescriptor' {..} =+    Prelude.rnf charset+      `Prelude.seq` Prelude.rnf containsHeader+      `Prelude.seq` Prelude.rnf delimiter+      `Prelude.seq` Prelude.rnf fileCompression+      `Prelude.seq` Prelude.rnf headerList+      `Prelude.seq` Prelude.rnf quoteSymbol++instance Data.ToJSON CsvFormatDescriptor where+  toJSON CsvFormatDescriptor' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Charset" Data..=) Prelude.<$> charset,+            ("ContainsHeader" Data..=)+              Prelude.<$> containsHeader,+            ("Delimiter" Data..=) Prelude.<$> delimiter,+            ("FileCompression" Data..=)+              Prelude.<$> fileCompression,+            ("HeaderList" Data..=) Prelude.<$> headerList,+            ("QuoteSymbol" Data..=) Prelude.<$> quoteSymbol+          ]+      )
+ gen/Amazonka/LookoutMetrics/Types/DataQualityMetric.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.Types.DataQualityMetric+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.DataQualityMetric where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.DataQualityMetricType+import qualified Amazonka.Prelude as Prelude++-- | An array that describes a data quality metric. Each @DataQualityMetric@+-- object contains the data quality metric name, its value, a description+-- of the metric, and the affected column.+--+-- /See:/ 'newDataQualityMetric' smart constructor.+data DataQualityMetric = DataQualityMetric'+  { -- | A description of the data quality metric.+    metricDescription :: Prelude.Maybe Prelude.Text,+    -- | The name of the data quality metric.+    metricType :: Prelude.Maybe DataQualityMetricType,+    -- | The value of the data quality metric.+    metricValue :: Prelude.Maybe Prelude.Double,+    -- | The column that is being monitored.+    relatedColumnName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataQualityMetric' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metricDescription', 'dataQualityMetric_metricDescription' - A description of the data quality metric.+--+-- 'metricType', 'dataQualityMetric_metricType' - The name of the data quality metric.+--+-- 'metricValue', 'dataQualityMetric_metricValue' - The value of the data quality metric.+--+-- 'relatedColumnName', 'dataQualityMetric_relatedColumnName' - The column that is being monitored.+newDataQualityMetric ::+  DataQualityMetric+newDataQualityMetric =+  DataQualityMetric'+    { metricDescription =+        Prelude.Nothing,+      metricType = Prelude.Nothing,+      metricValue = Prelude.Nothing,+      relatedColumnName = Prelude.Nothing+    }++-- | A description of the data quality metric.+dataQualityMetric_metricDescription :: Lens.Lens' DataQualityMetric (Prelude.Maybe Prelude.Text)+dataQualityMetric_metricDescription = Lens.lens (\DataQualityMetric' {metricDescription} -> metricDescription) (\s@DataQualityMetric' {} a -> s {metricDescription = a} :: DataQualityMetric)++-- | The name of the data quality metric.+dataQualityMetric_metricType :: Lens.Lens' DataQualityMetric (Prelude.Maybe DataQualityMetricType)+dataQualityMetric_metricType = Lens.lens (\DataQualityMetric' {metricType} -> metricType) (\s@DataQualityMetric' {} a -> s {metricType = a} :: DataQualityMetric)++-- | The value of the data quality metric.+dataQualityMetric_metricValue :: Lens.Lens' DataQualityMetric (Prelude.Maybe Prelude.Double)+dataQualityMetric_metricValue = Lens.lens (\DataQualityMetric' {metricValue} -> metricValue) (\s@DataQualityMetric' {} a -> s {metricValue = a} :: DataQualityMetric)++-- | The column that is being monitored.+dataQualityMetric_relatedColumnName :: Lens.Lens' DataQualityMetric (Prelude.Maybe Prelude.Text)+dataQualityMetric_relatedColumnName = Lens.lens (\DataQualityMetric' {relatedColumnName} -> relatedColumnName) (\s@DataQualityMetric' {} a -> s {relatedColumnName = a} :: DataQualityMetric)++instance Data.FromJSON DataQualityMetric where+  parseJSON =+    Data.withObject+      "DataQualityMetric"+      ( \x ->+          DataQualityMetric'+            Prelude.<$> (x Data..:? "MetricDescription")+            Prelude.<*> (x Data..:? "MetricType")+            Prelude.<*> (x Data..:? "MetricValue")+            Prelude.<*> (x Data..:? "RelatedColumnName")+      )++instance Prelude.Hashable DataQualityMetric where+  hashWithSalt _salt DataQualityMetric' {..} =+    _salt+      `Prelude.hashWithSalt` metricDescription+      `Prelude.hashWithSalt` metricType+      `Prelude.hashWithSalt` metricValue+      `Prelude.hashWithSalt` relatedColumnName++instance Prelude.NFData DataQualityMetric where+  rnf DataQualityMetric' {..} =+    Prelude.rnf metricDescription+      `Prelude.seq` Prelude.rnf metricType+      `Prelude.seq` Prelude.rnf metricValue+      `Prelude.seq` Prelude.rnf relatedColumnName
+ gen/Amazonka/LookoutMetrics/Types/DataQualityMetricType.hs view
@@ -0,0 +1,111 @@+{-# 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.LookoutMetrics.Types.DataQualityMetricType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.DataQualityMetricType+  ( DataQualityMetricType+      ( ..,+        DataQualityMetricType_BACKTEST_INFERENCE_DATA_END_TIME_STAMP,+        DataQualityMetricType_BACKTEST_INFERENCE_DATA_START_TIME_STAMP,+        DataQualityMetricType_BACKTEST_TRAINING_DATA_END_TIME_STAMP,+        DataQualityMetricType_BACKTEST_TRAINING_DATA_START_TIME_STAMP,+        DataQualityMetricType_COLUMN_COMPLETENESS,+        DataQualityMetricType_DIMENSION_UNIQUENESS,+        DataQualityMetricType_INVALID_ROWS_COMPLIANCE,+        DataQualityMetricType_ROWS_PARTIAL_COMPLIANCE,+        DataQualityMetricType_ROWS_PROCESSED,+        DataQualityMetricType_TIME_SERIES_COUNT+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DataQualityMetricType = DataQualityMetricType'+  { fromDataQualityMetricType ::+      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 DataQualityMetricType_BACKTEST_INFERENCE_DATA_END_TIME_STAMP :: DataQualityMetricType+pattern DataQualityMetricType_BACKTEST_INFERENCE_DATA_END_TIME_STAMP = DataQualityMetricType' "BACKTEST_INFERENCE_DATA_END_TIME_STAMP"++pattern DataQualityMetricType_BACKTEST_INFERENCE_DATA_START_TIME_STAMP :: DataQualityMetricType+pattern DataQualityMetricType_BACKTEST_INFERENCE_DATA_START_TIME_STAMP = DataQualityMetricType' "BACKTEST_INFERENCE_DATA_START_TIME_STAMP"++pattern DataQualityMetricType_BACKTEST_TRAINING_DATA_END_TIME_STAMP :: DataQualityMetricType+pattern DataQualityMetricType_BACKTEST_TRAINING_DATA_END_TIME_STAMP = DataQualityMetricType' "BACKTEST_TRAINING_DATA_END_TIME_STAMP"++pattern DataQualityMetricType_BACKTEST_TRAINING_DATA_START_TIME_STAMP :: DataQualityMetricType+pattern DataQualityMetricType_BACKTEST_TRAINING_DATA_START_TIME_STAMP = DataQualityMetricType' "BACKTEST_TRAINING_DATA_START_TIME_STAMP"++pattern DataQualityMetricType_COLUMN_COMPLETENESS :: DataQualityMetricType+pattern DataQualityMetricType_COLUMN_COMPLETENESS = DataQualityMetricType' "COLUMN_COMPLETENESS"++pattern DataQualityMetricType_DIMENSION_UNIQUENESS :: DataQualityMetricType+pattern DataQualityMetricType_DIMENSION_UNIQUENESS = DataQualityMetricType' "DIMENSION_UNIQUENESS"++pattern DataQualityMetricType_INVALID_ROWS_COMPLIANCE :: DataQualityMetricType+pattern DataQualityMetricType_INVALID_ROWS_COMPLIANCE = DataQualityMetricType' "INVALID_ROWS_COMPLIANCE"++pattern DataQualityMetricType_ROWS_PARTIAL_COMPLIANCE :: DataQualityMetricType+pattern DataQualityMetricType_ROWS_PARTIAL_COMPLIANCE = DataQualityMetricType' "ROWS_PARTIAL_COMPLIANCE"++pattern DataQualityMetricType_ROWS_PROCESSED :: DataQualityMetricType+pattern DataQualityMetricType_ROWS_PROCESSED = DataQualityMetricType' "ROWS_PROCESSED"++pattern DataQualityMetricType_TIME_SERIES_COUNT :: DataQualityMetricType+pattern DataQualityMetricType_TIME_SERIES_COUNT = DataQualityMetricType' "TIME_SERIES_COUNT"++{-# COMPLETE+  DataQualityMetricType_BACKTEST_INFERENCE_DATA_END_TIME_STAMP,+  DataQualityMetricType_BACKTEST_INFERENCE_DATA_START_TIME_STAMP,+  DataQualityMetricType_BACKTEST_TRAINING_DATA_END_TIME_STAMP,+  DataQualityMetricType_BACKTEST_TRAINING_DATA_START_TIME_STAMP,+  DataQualityMetricType_COLUMN_COMPLETENESS,+  DataQualityMetricType_DIMENSION_UNIQUENESS,+  DataQualityMetricType_INVALID_ROWS_COMPLIANCE,+  DataQualityMetricType_ROWS_PARTIAL_COMPLIANCE,+  DataQualityMetricType_ROWS_PROCESSED,+  DataQualityMetricType_TIME_SERIES_COUNT,+  DataQualityMetricType'+  #-}
+ gen/Amazonka/LookoutMetrics/Types/DetectedCsvFormatDescriptor.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.LookoutMetrics.Types.DetectedCsvFormatDescriptor+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.DetectedCsvFormatDescriptor where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.DetectedField+import qualified Amazonka.Prelude as Prelude++-- | Properties of an inferred CSV format.+--+-- /See:/ 'newDetectedCsvFormatDescriptor' smart constructor.+data DetectedCsvFormatDescriptor = DetectedCsvFormatDescriptor'+  { -- | The format\'s charset.+    charset :: Prelude.Maybe DetectedField,+    -- | Whether the format includes a header.+    containsHeader :: Prelude.Maybe DetectedField,+    -- | The format\'s delimiter.+    delimiter :: Prelude.Maybe DetectedField,+    -- | The format\'s file compression.+    fileCompression :: Prelude.Maybe DetectedField,+    -- | The format\'s header list.+    headerList :: Prelude.Maybe DetectedField,+    -- | The format\'s quote symbol.+    quoteSymbol :: Prelude.Maybe DetectedField+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DetectedCsvFormatDescriptor' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'charset', 'detectedCsvFormatDescriptor_charset' - The format\'s charset.+--+-- 'containsHeader', 'detectedCsvFormatDescriptor_containsHeader' - Whether the format includes a header.+--+-- 'delimiter', 'detectedCsvFormatDescriptor_delimiter' - The format\'s delimiter.+--+-- 'fileCompression', 'detectedCsvFormatDescriptor_fileCompression' - The format\'s file compression.+--+-- 'headerList', 'detectedCsvFormatDescriptor_headerList' - The format\'s header list.+--+-- 'quoteSymbol', 'detectedCsvFormatDescriptor_quoteSymbol' - The format\'s quote symbol.+newDetectedCsvFormatDescriptor ::+  DetectedCsvFormatDescriptor+newDetectedCsvFormatDescriptor =+  DetectedCsvFormatDescriptor'+    { charset =+        Prelude.Nothing,+      containsHeader = Prelude.Nothing,+      delimiter = Prelude.Nothing,+      fileCompression = Prelude.Nothing,+      headerList = Prelude.Nothing,+      quoteSymbol = Prelude.Nothing+    }++-- | The format\'s charset.+detectedCsvFormatDescriptor_charset :: Lens.Lens' DetectedCsvFormatDescriptor (Prelude.Maybe DetectedField)+detectedCsvFormatDescriptor_charset = Lens.lens (\DetectedCsvFormatDescriptor' {charset} -> charset) (\s@DetectedCsvFormatDescriptor' {} a -> s {charset = a} :: DetectedCsvFormatDescriptor)++-- | Whether the format includes a header.+detectedCsvFormatDescriptor_containsHeader :: Lens.Lens' DetectedCsvFormatDescriptor (Prelude.Maybe DetectedField)+detectedCsvFormatDescriptor_containsHeader = Lens.lens (\DetectedCsvFormatDescriptor' {containsHeader} -> containsHeader) (\s@DetectedCsvFormatDescriptor' {} a -> s {containsHeader = a} :: DetectedCsvFormatDescriptor)++-- | The format\'s delimiter.+detectedCsvFormatDescriptor_delimiter :: Lens.Lens' DetectedCsvFormatDescriptor (Prelude.Maybe DetectedField)+detectedCsvFormatDescriptor_delimiter = Lens.lens (\DetectedCsvFormatDescriptor' {delimiter} -> delimiter) (\s@DetectedCsvFormatDescriptor' {} a -> s {delimiter = a} :: DetectedCsvFormatDescriptor)++-- | The format\'s file compression.+detectedCsvFormatDescriptor_fileCompression :: Lens.Lens' DetectedCsvFormatDescriptor (Prelude.Maybe DetectedField)+detectedCsvFormatDescriptor_fileCompression = Lens.lens (\DetectedCsvFormatDescriptor' {fileCompression} -> fileCompression) (\s@DetectedCsvFormatDescriptor' {} a -> s {fileCompression = a} :: DetectedCsvFormatDescriptor)++-- | The format\'s header list.+detectedCsvFormatDescriptor_headerList :: Lens.Lens' DetectedCsvFormatDescriptor (Prelude.Maybe DetectedField)+detectedCsvFormatDescriptor_headerList = Lens.lens (\DetectedCsvFormatDescriptor' {headerList} -> headerList) (\s@DetectedCsvFormatDescriptor' {} a -> s {headerList = a} :: DetectedCsvFormatDescriptor)++-- | The format\'s quote symbol.+detectedCsvFormatDescriptor_quoteSymbol :: Lens.Lens' DetectedCsvFormatDescriptor (Prelude.Maybe DetectedField)+detectedCsvFormatDescriptor_quoteSymbol = Lens.lens (\DetectedCsvFormatDescriptor' {quoteSymbol} -> quoteSymbol) (\s@DetectedCsvFormatDescriptor' {} a -> s {quoteSymbol = a} :: DetectedCsvFormatDescriptor)++instance Data.FromJSON DetectedCsvFormatDescriptor where+  parseJSON =+    Data.withObject+      "DetectedCsvFormatDescriptor"+      ( \x ->+          DetectedCsvFormatDescriptor'+            Prelude.<$> (x Data..:? "Charset")+            Prelude.<*> (x Data..:? "ContainsHeader")+            Prelude.<*> (x Data..:? "Delimiter")+            Prelude.<*> (x Data..:? "FileCompression")+            Prelude.<*> (x Data..:? "HeaderList")+            Prelude.<*> (x Data..:? "QuoteSymbol")+      )++instance Prelude.Hashable DetectedCsvFormatDescriptor where+  hashWithSalt _salt DetectedCsvFormatDescriptor' {..} =+    _salt+      `Prelude.hashWithSalt` charset+      `Prelude.hashWithSalt` containsHeader+      `Prelude.hashWithSalt` delimiter+      `Prelude.hashWithSalt` fileCompression+      `Prelude.hashWithSalt` headerList+      `Prelude.hashWithSalt` quoteSymbol++instance Prelude.NFData DetectedCsvFormatDescriptor where+  rnf DetectedCsvFormatDescriptor' {..} =+    Prelude.rnf charset+      `Prelude.seq` Prelude.rnf containsHeader+      `Prelude.seq` Prelude.rnf delimiter+      `Prelude.seq` Prelude.rnf fileCompression+      `Prelude.seq` Prelude.rnf headerList+      `Prelude.seq` Prelude.rnf quoteSymbol
+ gen/Amazonka/LookoutMetrics/Types/DetectedField.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.LookoutMetrics.Types.DetectedField+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.DetectedField where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.AttributeValue+import Amazonka.LookoutMetrics.Types.Confidence+import qualified Amazonka.Prelude as Prelude++-- | An inferred field.+--+-- /See:/ 'newDetectedField' smart constructor.+data DetectedField = DetectedField'+  { -- | The field\'s confidence.+    confidence :: Prelude.Maybe Confidence,+    -- | The field\'s message.+    message :: Prelude.Maybe Prelude.Text,+    -- | The field\'s value.+    value :: Prelude.Maybe AttributeValue+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DetectedField' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'confidence', 'detectedField_confidence' - The field\'s confidence.+--+-- 'message', 'detectedField_message' - The field\'s message.+--+-- 'value', 'detectedField_value' - The field\'s value.+newDetectedField ::+  DetectedField+newDetectedField =+  DetectedField'+    { confidence = Prelude.Nothing,+      message = Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | The field\'s confidence.+detectedField_confidence :: Lens.Lens' DetectedField (Prelude.Maybe Confidence)+detectedField_confidence = Lens.lens (\DetectedField' {confidence} -> confidence) (\s@DetectedField' {} a -> s {confidence = a} :: DetectedField)++-- | The field\'s message.+detectedField_message :: Lens.Lens' DetectedField (Prelude.Maybe Prelude.Text)+detectedField_message = Lens.lens (\DetectedField' {message} -> message) (\s@DetectedField' {} a -> s {message = a} :: DetectedField)++-- | The field\'s value.+detectedField_value :: Lens.Lens' DetectedField (Prelude.Maybe AttributeValue)+detectedField_value = Lens.lens (\DetectedField' {value} -> value) (\s@DetectedField' {} a -> s {value = a} :: DetectedField)++instance Data.FromJSON DetectedField where+  parseJSON =+    Data.withObject+      "DetectedField"+      ( \x ->+          DetectedField'+            Prelude.<$> (x Data..:? "Confidence")+            Prelude.<*> (x Data..:? "Message")+            Prelude.<*> (x Data..:? "Value")+      )++instance Prelude.Hashable DetectedField where+  hashWithSalt _salt DetectedField' {..} =+    _salt+      `Prelude.hashWithSalt` confidence+      `Prelude.hashWithSalt` message+      `Prelude.hashWithSalt` value++instance Prelude.NFData DetectedField where+  rnf DetectedField' {..} =+    Prelude.rnf confidence+      `Prelude.seq` Prelude.rnf message+      `Prelude.seq` Prelude.rnf value
+ gen/Amazonka/LookoutMetrics/Types/DetectedFileFormatDescriptor.hs view
@@ -0,0 +1,90 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.Types.DetectedFileFormatDescriptor+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.DetectedFileFormatDescriptor where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.DetectedCsvFormatDescriptor+import Amazonka.LookoutMetrics.Types.DetectedJsonFormatDescriptor+import qualified Amazonka.Prelude as Prelude++-- | Properties of an inferred data format.+--+-- /See:/ 'newDetectedFileFormatDescriptor' smart constructor.+data DetectedFileFormatDescriptor = DetectedFileFormatDescriptor'+  { -- | Details about a CSV format.+    csvFormatDescriptor :: Prelude.Maybe DetectedCsvFormatDescriptor,+    -- | Details about a JSON format.+    jsonFormatDescriptor :: Prelude.Maybe DetectedJsonFormatDescriptor+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DetectedFileFormatDescriptor' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'csvFormatDescriptor', 'detectedFileFormatDescriptor_csvFormatDescriptor' - Details about a CSV format.+--+-- 'jsonFormatDescriptor', 'detectedFileFormatDescriptor_jsonFormatDescriptor' - Details about a JSON format.+newDetectedFileFormatDescriptor ::+  DetectedFileFormatDescriptor+newDetectedFileFormatDescriptor =+  DetectedFileFormatDescriptor'+    { csvFormatDescriptor =+        Prelude.Nothing,+      jsonFormatDescriptor = Prelude.Nothing+    }++-- | Details about a CSV format.+detectedFileFormatDescriptor_csvFormatDescriptor :: Lens.Lens' DetectedFileFormatDescriptor (Prelude.Maybe DetectedCsvFormatDescriptor)+detectedFileFormatDescriptor_csvFormatDescriptor = Lens.lens (\DetectedFileFormatDescriptor' {csvFormatDescriptor} -> csvFormatDescriptor) (\s@DetectedFileFormatDescriptor' {} a -> s {csvFormatDescriptor = a} :: DetectedFileFormatDescriptor)++-- | Details about a JSON format.+detectedFileFormatDescriptor_jsonFormatDescriptor :: Lens.Lens' DetectedFileFormatDescriptor (Prelude.Maybe DetectedJsonFormatDescriptor)+detectedFileFormatDescriptor_jsonFormatDescriptor = Lens.lens (\DetectedFileFormatDescriptor' {jsonFormatDescriptor} -> jsonFormatDescriptor) (\s@DetectedFileFormatDescriptor' {} a -> s {jsonFormatDescriptor = a} :: DetectedFileFormatDescriptor)++instance Data.FromJSON DetectedFileFormatDescriptor where+  parseJSON =+    Data.withObject+      "DetectedFileFormatDescriptor"+      ( \x ->+          DetectedFileFormatDescriptor'+            Prelude.<$> (x Data..:? "CsvFormatDescriptor")+            Prelude.<*> (x Data..:? "JsonFormatDescriptor")+      )++instance+  Prelude.Hashable+    DetectedFileFormatDescriptor+  where+  hashWithSalt _salt DetectedFileFormatDescriptor' {..} =+    _salt+      `Prelude.hashWithSalt` csvFormatDescriptor+      `Prelude.hashWithSalt` jsonFormatDescriptor++instance Prelude.NFData DetectedFileFormatDescriptor where+  rnf DetectedFileFormatDescriptor' {..} =+    Prelude.rnf csvFormatDescriptor+      `Prelude.seq` Prelude.rnf jsonFormatDescriptor
+ gen/Amazonka/LookoutMetrics/Types/DetectedJsonFormatDescriptor.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.LookoutMetrics.Types.DetectedJsonFormatDescriptor+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.DetectedJsonFormatDescriptor where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.DetectedField+import qualified Amazonka.Prelude as Prelude++-- | A detected JSON format descriptor.+--+-- /See:/ 'newDetectedJsonFormatDescriptor' smart constructor.+data DetectedJsonFormatDescriptor = DetectedJsonFormatDescriptor'+  { -- | The format\'s character set.+    charset :: Prelude.Maybe DetectedField,+    -- | The format\'s file compression.+    fileCompression :: Prelude.Maybe DetectedField+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DetectedJsonFormatDescriptor' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'charset', 'detectedJsonFormatDescriptor_charset' - The format\'s character set.+--+-- 'fileCompression', 'detectedJsonFormatDescriptor_fileCompression' - The format\'s file compression.+newDetectedJsonFormatDescriptor ::+  DetectedJsonFormatDescriptor+newDetectedJsonFormatDescriptor =+  DetectedJsonFormatDescriptor'+    { charset =+        Prelude.Nothing,+      fileCompression = Prelude.Nothing+    }++-- | The format\'s character set.+detectedJsonFormatDescriptor_charset :: Lens.Lens' DetectedJsonFormatDescriptor (Prelude.Maybe DetectedField)+detectedJsonFormatDescriptor_charset = Lens.lens (\DetectedJsonFormatDescriptor' {charset} -> charset) (\s@DetectedJsonFormatDescriptor' {} a -> s {charset = a} :: DetectedJsonFormatDescriptor)++-- | The format\'s file compression.+detectedJsonFormatDescriptor_fileCompression :: Lens.Lens' DetectedJsonFormatDescriptor (Prelude.Maybe DetectedField)+detectedJsonFormatDescriptor_fileCompression = Lens.lens (\DetectedJsonFormatDescriptor' {fileCompression} -> fileCompression) (\s@DetectedJsonFormatDescriptor' {} a -> s {fileCompression = a} :: DetectedJsonFormatDescriptor)++instance Data.FromJSON DetectedJsonFormatDescriptor where+  parseJSON =+    Data.withObject+      "DetectedJsonFormatDescriptor"+      ( \x ->+          DetectedJsonFormatDescriptor'+            Prelude.<$> (x Data..:? "Charset")+            Prelude.<*> (x Data..:? "FileCompression")+      )++instance+  Prelude.Hashable+    DetectedJsonFormatDescriptor+  where+  hashWithSalt _salt DetectedJsonFormatDescriptor' {..} =+    _salt+      `Prelude.hashWithSalt` charset+      `Prelude.hashWithSalt` fileCompression++instance Prelude.NFData DetectedJsonFormatDescriptor where+  rnf DetectedJsonFormatDescriptor' {..} =+    Prelude.rnf charset+      `Prelude.seq` Prelude.rnf fileCompression
+ gen/Amazonka/LookoutMetrics/Types/DetectedMetricSetConfig.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.LookoutMetrics.Types.DetectedMetricSetConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.DetectedMetricSetConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.DetectedField+import Amazonka.LookoutMetrics.Types.DetectedMetricSource+import qualified Amazonka.Prelude as Prelude++-- | An inferred dataset configuration.+--+-- /See:/ 'newDetectedMetricSetConfig' smart constructor.+data DetectedMetricSetConfig = DetectedMetricSetConfig'+  { -- | The dataset\'s interval.+    metricSetFrequency :: Prelude.Maybe DetectedField,+    -- | The dataset\'s data source.+    metricSource :: Prelude.Maybe DetectedMetricSource,+    -- | The dataset\'s offset.+    offset :: Prelude.Maybe DetectedField+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DetectedMetricSetConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metricSetFrequency', 'detectedMetricSetConfig_metricSetFrequency' - The dataset\'s interval.+--+-- 'metricSource', 'detectedMetricSetConfig_metricSource' - The dataset\'s data source.+--+-- 'offset', 'detectedMetricSetConfig_offset' - The dataset\'s offset.+newDetectedMetricSetConfig ::+  DetectedMetricSetConfig+newDetectedMetricSetConfig =+  DetectedMetricSetConfig'+    { metricSetFrequency =+        Prelude.Nothing,+      metricSource = Prelude.Nothing,+      offset = Prelude.Nothing+    }++-- | The dataset\'s interval.+detectedMetricSetConfig_metricSetFrequency :: Lens.Lens' DetectedMetricSetConfig (Prelude.Maybe DetectedField)+detectedMetricSetConfig_metricSetFrequency = Lens.lens (\DetectedMetricSetConfig' {metricSetFrequency} -> metricSetFrequency) (\s@DetectedMetricSetConfig' {} a -> s {metricSetFrequency = a} :: DetectedMetricSetConfig)++-- | The dataset\'s data source.+detectedMetricSetConfig_metricSource :: Lens.Lens' DetectedMetricSetConfig (Prelude.Maybe DetectedMetricSource)+detectedMetricSetConfig_metricSource = Lens.lens (\DetectedMetricSetConfig' {metricSource} -> metricSource) (\s@DetectedMetricSetConfig' {} a -> s {metricSource = a} :: DetectedMetricSetConfig)++-- | The dataset\'s offset.+detectedMetricSetConfig_offset :: Lens.Lens' DetectedMetricSetConfig (Prelude.Maybe DetectedField)+detectedMetricSetConfig_offset = Lens.lens (\DetectedMetricSetConfig' {offset} -> offset) (\s@DetectedMetricSetConfig' {} a -> s {offset = a} :: DetectedMetricSetConfig)++instance Data.FromJSON DetectedMetricSetConfig where+  parseJSON =+    Data.withObject+      "DetectedMetricSetConfig"+      ( \x ->+          DetectedMetricSetConfig'+            Prelude.<$> (x Data..:? "MetricSetFrequency")+            Prelude.<*> (x Data..:? "MetricSource")+            Prelude.<*> (x Data..:? "Offset")+      )++instance Prelude.Hashable DetectedMetricSetConfig where+  hashWithSalt _salt DetectedMetricSetConfig' {..} =+    _salt+      `Prelude.hashWithSalt` metricSetFrequency+      `Prelude.hashWithSalt` metricSource+      `Prelude.hashWithSalt` offset++instance Prelude.NFData DetectedMetricSetConfig where+  rnf DetectedMetricSetConfig' {..} =+    Prelude.rnf metricSetFrequency+      `Prelude.seq` Prelude.rnf metricSource+      `Prelude.seq` Prelude.rnf offset
+ gen/Amazonka/LookoutMetrics/Types/DetectedMetricSource.hs view
@@ -0,0 +1,73 @@+{-# 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.LookoutMetrics.Types.DetectedMetricSource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.DetectedMetricSource where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.DetectedS3SourceConfig+import qualified Amazonka.Prelude as Prelude++-- | An inferred data source.+--+-- /See:/ 'newDetectedMetricSource' smart constructor.+data DetectedMetricSource = DetectedMetricSource'+  { -- | The data source\'s source configuration.+    s3SourceConfig :: Prelude.Maybe DetectedS3SourceConfig+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DetectedMetricSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3SourceConfig', 'detectedMetricSource_s3SourceConfig' - The data source\'s source configuration.+newDetectedMetricSource ::+  DetectedMetricSource+newDetectedMetricSource =+  DetectedMetricSource'+    { s3SourceConfig =+        Prelude.Nothing+    }++-- | The data source\'s source configuration.+detectedMetricSource_s3SourceConfig :: Lens.Lens' DetectedMetricSource (Prelude.Maybe DetectedS3SourceConfig)+detectedMetricSource_s3SourceConfig = Lens.lens (\DetectedMetricSource' {s3SourceConfig} -> s3SourceConfig) (\s@DetectedMetricSource' {} a -> s {s3SourceConfig = a} :: DetectedMetricSource)++instance Data.FromJSON DetectedMetricSource where+  parseJSON =+    Data.withObject+      "DetectedMetricSource"+      ( \x ->+          DetectedMetricSource'+            Prelude.<$> (x Data..:? "S3SourceConfig")+      )++instance Prelude.Hashable DetectedMetricSource where+  hashWithSalt _salt DetectedMetricSource' {..} =+    _salt `Prelude.hashWithSalt` s3SourceConfig++instance Prelude.NFData DetectedMetricSource where+  rnf DetectedMetricSource' {..} =+    Prelude.rnf s3SourceConfig
+ gen/Amazonka/LookoutMetrics/Types/DetectedS3SourceConfig.hs view
@@ -0,0 +1,73 @@+{-# 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.LookoutMetrics.Types.DetectedS3SourceConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.DetectedS3SourceConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.DetectedFileFormatDescriptor+import qualified Amazonka.Prelude as Prelude++-- | An inferred source configuration.+--+-- /See:/ 'newDetectedS3SourceConfig' smart constructor.+data DetectedS3SourceConfig = DetectedS3SourceConfig'+  { -- | The source\'s file format descriptor.+    fileFormatDescriptor :: Prelude.Maybe DetectedFileFormatDescriptor+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DetectedS3SourceConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fileFormatDescriptor', 'detectedS3SourceConfig_fileFormatDescriptor' - The source\'s file format descriptor.+newDetectedS3SourceConfig ::+  DetectedS3SourceConfig+newDetectedS3SourceConfig =+  DetectedS3SourceConfig'+    { fileFormatDescriptor =+        Prelude.Nothing+    }++-- | The source\'s file format descriptor.+detectedS3SourceConfig_fileFormatDescriptor :: Lens.Lens' DetectedS3SourceConfig (Prelude.Maybe DetectedFileFormatDescriptor)+detectedS3SourceConfig_fileFormatDescriptor = Lens.lens (\DetectedS3SourceConfig' {fileFormatDescriptor} -> fileFormatDescriptor) (\s@DetectedS3SourceConfig' {} a -> s {fileFormatDescriptor = a} :: DetectedS3SourceConfig)++instance Data.FromJSON DetectedS3SourceConfig where+  parseJSON =+    Data.withObject+      "DetectedS3SourceConfig"+      ( \x ->+          DetectedS3SourceConfig'+            Prelude.<$> (x Data..:? "FileFormatDescriptor")+      )++instance Prelude.Hashable DetectedS3SourceConfig where+  hashWithSalt _salt DetectedS3SourceConfig' {..} =+    _salt `Prelude.hashWithSalt` fileFormatDescriptor++instance Prelude.NFData DetectedS3SourceConfig where+  rnf DetectedS3SourceConfig' {..} =+    Prelude.rnf fileFormatDescriptor
+ gen/Amazonka/LookoutMetrics/Types/DimensionContribution.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.LookoutMetrics.Types.DimensionContribution+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.DimensionContribution where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.DimensionValueContribution+import qualified Amazonka.Prelude as Prelude++-- | Details about a dimension that contributed to an anomaly.+--+-- /See:/ 'newDimensionContribution' smart constructor.+data DimensionContribution = DimensionContribution'+  { -- | The name of the dimension.+    dimensionName :: Prelude.Maybe Prelude.Text,+    -- | A list of dimension values that contributed to the anomaly.+    dimensionValueContributionList :: Prelude.Maybe [DimensionValueContribution]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DimensionContribution' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dimensionName', 'dimensionContribution_dimensionName' - The name of the dimension.+--+-- 'dimensionValueContributionList', 'dimensionContribution_dimensionValueContributionList' - A list of dimension values that contributed to the anomaly.+newDimensionContribution ::+  DimensionContribution+newDimensionContribution =+  DimensionContribution'+    { dimensionName =+        Prelude.Nothing,+      dimensionValueContributionList = Prelude.Nothing+    }++-- | The name of the dimension.+dimensionContribution_dimensionName :: Lens.Lens' DimensionContribution (Prelude.Maybe Prelude.Text)+dimensionContribution_dimensionName = Lens.lens (\DimensionContribution' {dimensionName} -> dimensionName) (\s@DimensionContribution' {} a -> s {dimensionName = a} :: DimensionContribution)++-- | A list of dimension values that contributed to the anomaly.+dimensionContribution_dimensionValueContributionList :: Lens.Lens' DimensionContribution (Prelude.Maybe [DimensionValueContribution])+dimensionContribution_dimensionValueContributionList = Lens.lens (\DimensionContribution' {dimensionValueContributionList} -> dimensionValueContributionList) (\s@DimensionContribution' {} a -> s {dimensionValueContributionList = a} :: DimensionContribution) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON DimensionContribution where+  parseJSON =+    Data.withObject+      "DimensionContribution"+      ( \x ->+          DimensionContribution'+            Prelude.<$> (x Data..:? "DimensionName")+            Prelude.<*> ( x+                            Data..:? "DimensionValueContributionList"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable DimensionContribution where+  hashWithSalt _salt DimensionContribution' {..} =+    _salt+      `Prelude.hashWithSalt` dimensionName+      `Prelude.hashWithSalt` dimensionValueContributionList++instance Prelude.NFData DimensionContribution where+  rnf DimensionContribution' {..} =+    Prelude.rnf dimensionName+      `Prelude.seq` Prelude.rnf dimensionValueContributionList
+ gen/Amazonka/LookoutMetrics/Types/DimensionFilter.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.LookoutMetrics.Types.DimensionFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.DimensionFilter 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 dimension filter, containing DimensionName and DimensionValueList.+--+-- /See:/ 'newDimensionFilter' smart constructor.+data DimensionFilter = DimensionFilter'+  { -- | The name of the dimension to filter on.+    dimensionName :: Prelude.Maybe Prelude.Text,+    -- | The list of values for the dimension specified in DimensionName that you+    -- want to filter on.+    dimensionValueList :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DimensionFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dimensionName', 'dimensionFilter_dimensionName' - The name of the dimension to filter on.+--+-- 'dimensionValueList', 'dimensionFilter_dimensionValueList' - The list of values for the dimension specified in DimensionName that you+-- want to filter on.+newDimensionFilter ::+  DimensionFilter+newDimensionFilter =+  DimensionFilter'+    { dimensionName = Prelude.Nothing,+      dimensionValueList = Prelude.Nothing+    }++-- | The name of the dimension to filter on.+dimensionFilter_dimensionName :: Lens.Lens' DimensionFilter (Prelude.Maybe Prelude.Text)+dimensionFilter_dimensionName = Lens.lens (\DimensionFilter' {dimensionName} -> dimensionName) (\s@DimensionFilter' {} a -> s {dimensionName = a} :: DimensionFilter)++-- | The list of values for the dimension specified in DimensionName that you+-- want to filter on.+dimensionFilter_dimensionValueList :: Lens.Lens' DimensionFilter (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+dimensionFilter_dimensionValueList = Lens.lens (\DimensionFilter' {dimensionValueList} -> dimensionValueList) (\s@DimensionFilter' {} a -> s {dimensionValueList = a} :: DimensionFilter) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON DimensionFilter where+  parseJSON =+    Data.withObject+      "DimensionFilter"+      ( \x ->+          DimensionFilter'+            Prelude.<$> (x Data..:? "DimensionName")+            Prelude.<*> (x Data..:? "DimensionValueList")+      )++instance Prelude.Hashable DimensionFilter where+  hashWithSalt _salt DimensionFilter' {..} =+    _salt+      `Prelude.hashWithSalt` dimensionName+      `Prelude.hashWithSalt` dimensionValueList++instance Prelude.NFData DimensionFilter where+  rnf DimensionFilter' {..} =+    Prelude.rnf dimensionName+      `Prelude.seq` Prelude.rnf dimensionValueList++instance Data.ToJSON DimensionFilter where+  toJSON DimensionFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DimensionName" Data..=) Prelude.<$> dimensionName,+            ("DimensionValueList" Data..=)+              Prelude.<$> dimensionValueList+          ]+      )
+ gen/Amazonka/LookoutMetrics/Types/DimensionNameValue.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.LookoutMetrics.Types.DimensionNameValue+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.DimensionNameValue 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 dimension name and value.+--+-- /See:/ 'newDimensionNameValue' smart constructor.+data DimensionNameValue = DimensionNameValue'+  { -- | The name of the dimension.+    dimensionName :: Prelude.Text,+    -- | The value of the dimension.+    dimensionValue :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DimensionNameValue' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dimensionName', 'dimensionNameValue_dimensionName' - The name of the dimension.+--+-- 'dimensionValue', 'dimensionNameValue_dimensionValue' - The value of the dimension.+newDimensionNameValue ::+  -- | 'dimensionName'+  Prelude.Text ->+  -- | 'dimensionValue'+  Prelude.Text ->+  DimensionNameValue+newDimensionNameValue+  pDimensionName_+  pDimensionValue_ =+    DimensionNameValue'+      { dimensionName =+          pDimensionName_,+        dimensionValue = pDimensionValue_+      }++-- | The name of the dimension.+dimensionNameValue_dimensionName :: Lens.Lens' DimensionNameValue Prelude.Text+dimensionNameValue_dimensionName = Lens.lens (\DimensionNameValue' {dimensionName} -> dimensionName) (\s@DimensionNameValue' {} a -> s {dimensionName = a} :: DimensionNameValue)++-- | The value of the dimension.+dimensionNameValue_dimensionValue :: Lens.Lens' DimensionNameValue Prelude.Text+dimensionNameValue_dimensionValue = Lens.lens (\DimensionNameValue' {dimensionValue} -> dimensionValue) (\s@DimensionNameValue' {} a -> s {dimensionValue = a} :: DimensionNameValue)++instance Data.FromJSON DimensionNameValue where+  parseJSON =+    Data.withObject+      "DimensionNameValue"+      ( \x ->+          DimensionNameValue'+            Prelude.<$> (x Data..: "DimensionName")+            Prelude.<*> (x Data..: "DimensionValue")+      )++instance Prelude.Hashable DimensionNameValue where+  hashWithSalt _salt DimensionNameValue' {..} =+    _salt+      `Prelude.hashWithSalt` dimensionName+      `Prelude.hashWithSalt` dimensionValue++instance Prelude.NFData DimensionNameValue where+  rnf DimensionNameValue' {..} =+    Prelude.rnf dimensionName+      `Prelude.seq` Prelude.rnf dimensionValue
+ gen/Amazonka/LookoutMetrics/Types/DimensionValueContribution.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.LookoutMetrics.Types.DimensionValueContribution+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.DimensionValueContribution 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 severity of a value of a dimension that contributed to an anomaly.+--+-- /See:/ 'newDimensionValueContribution' smart constructor.+data DimensionValueContribution = DimensionValueContribution'+  { -- | The severity score of the value.+    contributionScore :: Prelude.Maybe Prelude.Double,+    -- | The value of the dimension.+    dimensionValue :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DimensionValueContribution' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contributionScore', 'dimensionValueContribution_contributionScore' - The severity score of the value.+--+-- 'dimensionValue', 'dimensionValueContribution_dimensionValue' - The value of the dimension.+newDimensionValueContribution ::+  DimensionValueContribution+newDimensionValueContribution =+  DimensionValueContribution'+    { contributionScore =+        Prelude.Nothing,+      dimensionValue = Prelude.Nothing+    }++-- | The severity score of the value.+dimensionValueContribution_contributionScore :: Lens.Lens' DimensionValueContribution (Prelude.Maybe Prelude.Double)+dimensionValueContribution_contributionScore = Lens.lens (\DimensionValueContribution' {contributionScore} -> contributionScore) (\s@DimensionValueContribution' {} a -> s {contributionScore = a} :: DimensionValueContribution)++-- | The value of the dimension.+dimensionValueContribution_dimensionValue :: Lens.Lens' DimensionValueContribution (Prelude.Maybe Prelude.Text)+dimensionValueContribution_dimensionValue = Lens.lens (\DimensionValueContribution' {dimensionValue} -> dimensionValue) (\s@DimensionValueContribution' {} a -> s {dimensionValue = a} :: DimensionValueContribution)++instance Data.FromJSON DimensionValueContribution where+  parseJSON =+    Data.withObject+      "DimensionValueContribution"+      ( \x ->+          DimensionValueContribution'+            Prelude.<$> (x Data..:? "ContributionScore")+            Prelude.<*> (x Data..:? "DimensionValue")+      )++instance Prelude.Hashable DimensionValueContribution where+  hashWithSalt _salt DimensionValueContribution' {..} =+    _salt+      `Prelude.hashWithSalt` contributionScore+      `Prelude.hashWithSalt` dimensionValue++instance Prelude.NFData DimensionValueContribution where+  rnf DimensionValueContribution' {..} =+    Prelude.rnf contributionScore+      `Prelude.seq` Prelude.rnf dimensionValue
+ gen/Amazonka/LookoutMetrics/Types/ExecutionStatus.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.LookoutMetrics.Types.ExecutionStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.ExecutionStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.AnomalyDetectionTaskStatus+import qualified Amazonka.Prelude as Prelude++-- | The status of an anomaly detector run.+--+-- /See:/ 'newExecutionStatus' smart constructor.+data ExecutionStatus = ExecutionStatus'+  { -- | The reason that the run failed, if applicable.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The run\'s status.+    status :: Prelude.Maybe AnomalyDetectionTaskStatus,+    -- | The run\'s timestamp.+    timestamp :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExecutionStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'failureReason', 'executionStatus_failureReason' - The reason that the run failed, if applicable.+--+-- 'status', 'executionStatus_status' - The run\'s status.+--+-- 'timestamp', 'executionStatus_timestamp' - The run\'s timestamp.+newExecutionStatus ::+  ExecutionStatus+newExecutionStatus =+  ExecutionStatus'+    { failureReason = Prelude.Nothing,+      status = Prelude.Nothing,+      timestamp = Prelude.Nothing+    }++-- | The reason that the run failed, if applicable.+executionStatus_failureReason :: Lens.Lens' ExecutionStatus (Prelude.Maybe Prelude.Text)+executionStatus_failureReason = Lens.lens (\ExecutionStatus' {failureReason} -> failureReason) (\s@ExecutionStatus' {} a -> s {failureReason = a} :: ExecutionStatus)++-- | The run\'s status.+executionStatus_status :: Lens.Lens' ExecutionStatus (Prelude.Maybe AnomalyDetectionTaskStatus)+executionStatus_status = Lens.lens (\ExecutionStatus' {status} -> status) (\s@ExecutionStatus' {} a -> s {status = a} :: ExecutionStatus)++-- | The run\'s timestamp.+executionStatus_timestamp :: Lens.Lens' ExecutionStatus (Prelude.Maybe Prelude.Text)+executionStatus_timestamp = Lens.lens (\ExecutionStatus' {timestamp} -> timestamp) (\s@ExecutionStatus' {} a -> s {timestamp = a} :: ExecutionStatus)++instance Data.FromJSON ExecutionStatus where+  parseJSON =+    Data.withObject+      "ExecutionStatus"+      ( \x ->+          ExecutionStatus'+            Prelude.<$> (x Data..:? "FailureReason")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "Timestamp")+      )++instance Prelude.Hashable ExecutionStatus where+  hashWithSalt _salt ExecutionStatus' {..} =+    _salt+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` timestamp++instance Prelude.NFData ExecutionStatus where+  rnf ExecutionStatus' {..} =+    Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf timestamp
+ gen/Amazonka/LookoutMetrics/Types/FileFormatDescriptor.hs view
@@ -0,0 +1,104 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.Types.FileFormatDescriptor+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.FileFormatDescriptor where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.CsvFormatDescriptor+import Amazonka.LookoutMetrics.Types.JsonFormatDescriptor+import qualified Amazonka.Prelude as Prelude++-- | Contains information about a source file\'s formatting.+--+-- /See:/ 'newFileFormatDescriptor' smart constructor.+data FileFormatDescriptor = FileFormatDescriptor'+  { -- | Contains information about how a source CSV data file should be+    -- analyzed.+    csvFormatDescriptor :: Prelude.Maybe CsvFormatDescriptor,+    -- | Contains information about how a source JSON data file should be+    -- analyzed.+    jsonFormatDescriptor :: Prelude.Maybe JsonFormatDescriptor+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FileFormatDescriptor' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'csvFormatDescriptor', 'fileFormatDescriptor_csvFormatDescriptor' - Contains information about how a source CSV data file should be+-- analyzed.+--+-- 'jsonFormatDescriptor', 'fileFormatDescriptor_jsonFormatDescriptor' - Contains information about how a source JSON data file should be+-- analyzed.+newFileFormatDescriptor ::+  FileFormatDescriptor+newFileFormatDescriptor =+  FileFormatDescriptor'+    { csvFormatDescriptor =+        Prelude.Nothing,+      jsonFormatDescriptor = Prelude.Nothing+    }++-- | Contains information about how a source CSV data file should be+-- analyzed.+fileFormatDescriptor_csvFormatDescriptor :: Lens.Lens' FileFormatDescriptor (Prelude.Maybe CsvFormatDescriptor)+fileFormatDescriptor_csvFormatDescriptor = Lens.lens (\FileFormatDescriptor' {csvFormatDescriptor} -> csvFormatDescriptor) (\s@FileFormatDescriptor' {} a -> s {csvFormatDescriptor = a} :: FileFormatDescriptor)++-- | Contains information about how a source JSON data file should be+-- analyzed.+fileFormatDescriptor_jsonFormatDescriptor :: Lens.Lens' FileFormatDescriptor (Prelude.Maybe JsonFormatDescriptor)+fileFormatDescriptor_jsonFormatDescriptor = Lens.lens (\FileFormatDescriptor' {jsonFormatDescriptor} -> jsonFormatDescriptor) (\s@FileFormatDescriptor' {} a -> s {jsonFormatDescriptor = a} :: FileFormatDescriptor)++instance Data.FromJSON FileFormatDescriptor where+  parseJSON =+    Data.withObject+      "FileFormatDescriptor"+      ( \x ->+          FileFormatDescriptor'+            Prelude.<$> (x Data..:? "CsvFormatDescriptor")+            Prelude.<*> (x Data..:? "JsonFormatDescriptor")+      )++instance Prelude.Hashable FileFormatDescriptor where+  hashWithSalt _salt FileFormatDescriptor' {..} =+    _salt+      `Prelude.hashWithSalt` csvFormatDescriptor+      `Prelude.hashWithSalt` jsonFormatDescriptor++instance Prelude.NFData FileFormatDescriptor where+  rnf FileFormatDescriptor' {..} =+    Prelude.rnf csvFormatDescriptor+      `Prelude.seq` Prelude.rnf jsonFormatDescriptor++instance Data.ToJSON FileFormatDescriptor where+  toJSON FileFormatDescriptor' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CsvFormatDescriptor" Data..=)+              Prelude.<$> csvFormatDescriptor,+            ("JsonFormatDescriptor" Data..=)+              Prelude.<$> jsonFormatDescriptor+          ]+      )
+ gen/Amazonka/LookoutMetrics/Types/Filter.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.LookoutMetrics.Types.Filter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.Filter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.FilterOperation+import qualified Amazonka.Prelude as Prelude++-- | Describes a filter for choosing a subset of dimension values. Each+-- filter consists of the dimension that you want to include and the+-- condition statement. The condition statement is specified in the+-- @FilterOperation@ object.+--+-- /See:/ 'newFilter' smart constructor.+data Filter = Filter'+  { -- | The value that you want to include in the filter.+    dimensionValue :: Prelude.Maybe Prelude.Text,+    -- | The condition to apply.+    filterOperation :: Prelude.Maybe FilterOperation+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Filter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dimensionValue', 'filter_dimensionValue' - The value that you want to include in the filter.+--+-- 'filterOperation', 'filter_filterOperation' - The condition to apply.+newFilter ::+  Filter+newFilter =+  Filter'+    { dimensionValue = Prelude.Nothing,+      filterOperation = Prelude.Nothing+    }++-- | The value that you want to include in the filter.+filter_dimensionValue :: Lens.Lens' Filter (Prelude.Maybe Prelude.Text)+filter_dimensionValue = Lens.lens (\Filter' {dimensionValue} -> dimensionValue) (\s@Filter' {} a -> s {dimensionValue = a} :: Filter)++-- | The condition to apply.+filter_filterOperation :: Lens.Lens' Filter (Prelude.Maybe FilterOperation)+filter_filterOperation = Lens.lens (\Filter' {filterOperation} -> filterOperation) (\s@Filter' {} a -> s {filterOperation = a} :: Filter)++instance Data.FromJSON Filter where+  parseJSON =+    Data.withObject+      "Filter"+      ( \x ->+          Filter'+            Prelude.<$> (x Data..:? "DimensionValue")+            Prelude.<*> (x Data..:? "FilterOperation")+      )++instance Prelude.Hashable Filter where+  hashWithSalt _salt Filter' {..} =+    _salt+      `Prelude.hashWithSalt` dimensionValue+      `Prelude.hashWithSalt` filterOperation++instance Prelude.NFData Filter where+  rnf Filter' {..} =+    Prelude.rnf dimensionValue+      `Prelude.seq` Prelude.rnf filterOperation++instance Data.ToJSON Filter where+  toJSON Filter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DimensionValue" Data..=)+              Prelude.<$> dimensionValue,+            ("FilterOperation" Data..=)+              Prelude.<$> filterOperation+          ]+      )
+ gen/Amazonka/LookoutMetrics/Types/FilterOperation.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.Types.FilterOperation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.FilterOperation+  ( FilterOperation+      ( ..,+        FilterOperation_EQUALS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype FilterOperation = FilterOperation'+  { fromFilterOperation ::+      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 FilterOperation_EQUALS :: FilterOperation+pattern FilterOperation_EQUALS = FilterOperation' "EQUALS"++{-# COMPLETE+  FilterOperation_EQUALS,+  FilterOperation'+  #-}
+ gen/Amazonka/LookoutMetrics/Types/Frequency.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.LookoutMetrics.Types.Frequency+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.Frequency+  ( Frequency+      ( ..,+        Frequency_P1D,+        Frequency_PT10M,+        Frequency_PT1H,+        Frequency_PT5M+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Frequency = Frequency'+  { fromFrequency ::+      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 Frequency_P1D :: Frequency+pattern Frequency_P1D = Frequency' "P1D"++pattern Frequency_PT10M :: Frequency+pattern Frequency_PT10M = Frequency' "PT10M"++pattern Frequency_PT1H :: Frequency+pattern Frequency_PT1H = Frequency' "PT1H"++pattern Frequency_PT5M :: Frequency+pattern Frequency_PT5M = Frequency' "PT5M"++{-# COMPLETE+  Frequency_P1D,+  Frequency_PT10M,+  Frequency_PT1H,+  Frequency_PT5M,+  Frequency'+  #-}
+ gen/Amazonka/LookoutMetrics/Types/InterMetricImpactDetails.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.LookoutMetrics.Types.InterMetricImpactDetails+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.InterMetricImpactDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.RelationshipType+import qualified Amazonka.Prelude as Prelude++-- | Aggregated details about the measures contributing to the anomaly group,+-- and the measures potentially impacted by the anomaly group.+--+-- /See:/ 'newInterMetricImpactDetails' smart constructor.+data InterMetricImpactDetails = InterMetricImpactDetails'+  { -- | The ID of the anomaly group.+    anomalyGroupId :: Prelude.Maybe Prelude.Text,+    -- | For potential causes (@CAUSE_OF_INPUT_ANOMALY_GROUP@), the percentage+    -- contribution the measure has in causing the anomalies.+    contributionPercentage :: Prelude.Maybe Prelude.Double,+    -- | The name of the measure.+    metricName :: Prelude.Maybe Prelude.Text,+    -- | Whether a measure is a potential cause of the anomaly group+    -- (@CAUSE_OF_INPUT_ANOMALY_GROUP@), or whether the measure is impacted by+    -- the anomaly group (@EFFECT_OF_INPUT_ANOMALY_GROUP@).+    relationshipType :: Prelude.Maybe RelationshipType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InterMetricImpactDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyGroupId', 'interMetricImpactDetails_anomalyGroupId' - The ID of the anomaly group.+--+-- 'contributionPercentage', 'interMetricImpactDetails_contributionPercentage' - For potential causes (@CAUSE_OF_INPUT_ANOMALY_GROUP@), the percentage+-- contribution the measure has in causing the anomalies.+--+-- 'metricName', 'interMetricImpactDetails_metricName' - The name of the measure.+--+-- 'relationshipType', 'interMetricImpactDetails_relationshipType' - Whether a measure is a potential cause of the anomaly group+-- (@CAUSE_OF_INPUT_ANOMALY_GROUP@), or whether the measure is impacted by+-- the anomaly group (@EFFECT_OF_INPUT_ANOMALY_GROUP@).+newInterMetricImpactDetails ::+  InterMetricImpactDetails+newInterMetricImpactDetails =+  InterMetricImpactDetails'+    { anomalyGroupId =+        Prelude.Nothing,+      contributionPercentage = Prelude.Nothing,+      metricName = Prelude.Nothing,+      relationshipType = Prelude.Nothing+    }++-- | The ID of the anomaly group.+interMetricImpactDetails_anomalyGroupId :: Lens.Lens' InterMetricImpactDetails (Prelude.Maybe Prelude.Text)+interMetricImpactDetails_anomalyGroupId = Lens.lens (\InterMetricImpactDetails' {anomalyGroupId} -> anomalyGroupId) (\s@InterMetricImpactDetails' {} a -> s {anomalyGroupId = a} :: InterMetricImpactDetails)++-- | For potential causes (@CAUSE_OF_INPUT_ANOMALY_GROUP@), the percentage+-- contribution the measure has in causing the anomalies.+interMetricImpactDetails_contributionPercentage :: Lens.Lens' InterMetricImpactDetails (Prelude.Maybe Prelude.Double)+interMetricImpactDetails_contributionPercentage = Lens.lens (\InterMetricImpactDetails' {contributionPercentage} -> contributionPercentage) (\s@InterMetricImpactDetails' {} a -> s {contributionPercentage = a} :: InterMetricImpactDetails)++-- | The name of the measure.+interMetricImpactDetails_metricName :: Lens.Lens' InterMetricImpactDetails (Prelude.Maybe Prelude.Text)+interMetricImpactDetails_metricName = Lens.lens (\InterMetricImpactDetails' {metricName} -> metricName) (\s@InterMetricImpactDetails' {} a -> s {metricName = a} :: InterMetricImpactDetails)++-- | Whether a measure is a potential cause of the anomaly group+-- (@CAUSE_OF_INPUT_ANOMALY_GROUP@), or whether the measure is impacted by+-- the anomaly group (@EFFECT_OF_INPUT_ANOMALY_GROUP@).+interMetricImpactDetails_relationshipType :: Lens.Lens' InterMetricImpactDetails (Prelude.Maybe RelationshipType)+interMetricImpactDetails_relationshipType = Lens.lens (\InterMetricImpactDetails' {relationshipType} -> relationshipType) (\s@InterMetricImpactDetails' {} a -> s {relationshipType = a} :: InterMetricImpactDetails)++instance Data.FromJSON InterMetricImpactDetails where+  parseJSON =+    Data.withObject+      "InterMetricImpactDetails"+      ( \x ->+          InterMetricImpactDetails'+            Prelude.<$> (x Data..:? "AnomalyGroupId")+            Prelude.<*> (x Data..:? "ContributionPercentage")+            Prelude.<*> (x Data..:? "MetricName")+            Prelude.<*> (x Data..:? "RelationshipType")+      )++instance Prelude.Hashable InterMetricImpactDetails where+  hashWithSalt _salt InterMetricImpactDetails' {..} =+    _salt+      `Prelude.hashWithSalt` anomalyGroupId+      `Prelude.hashWithSalt` contributionPercentage+      `Prelude.hashWithSalt` metricName+      `Prelude.hashWithSalt` relationshipType++instance Prelude.NFData InterMetricImpactDetails where+  rnf InterMetricImpactDetails' {..} =+    Prelude.rnf anomalyGroupId+      `Prelude.seq` Prelude.rnf contributionPercentage+      `Prelude.seq` Prelude.rnf metricName+      `Prelude.seq` Prelude.rnf relationshipType
+ gen/Amazonka/LookoutMetrics/Types/ItemizedMetricStats.hs view
@@ -0,0 +1,84 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.Types.ItemizedMetricStats+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.ItemizedMetricStats 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++-- | Aggregated statistics about a measure affected by an anomaly.+--+-- /See:/ 'newItemizedMetricStats' smart constructor.+data ItemizedMetricStats = ItemizedMetricStats'+  { -- | The name of the measure.+    metricName :: Prelude.Maybe Prelude.Text,+    -- | The number of times that the measure appears.+    occurrenceCount :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ItemizedMetricStats' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metricName', 'itemizedMetricStats_metricName' - The name of the measure.+--+-- 'occurrenceCount', 'itemizedMetricStats_occurrenceCount' - The number of times that the measure appears.+newItemizedMetricStats ::+  ItemizedMetricStats+newItemizedMetricStats =+  ItemizedMetricStats'+    { metricName = Prelude.Nothing,+      occurrenceCount = Prelude.Nothing+    }++-- | The name of the measure.+itemizedMetricStats_metricName :: Lens.Lens' ItemizedMetricStats (Prelude.Maybe Prelude.Text)+itemizedMetricStats_metricName = Lens.lens (\ItemizedMetricStats' {metricName} -> metricName) (\s@ItemizedMetricStats' {} a -> s {metricName = a} :: ItemizedMetricStats)++-- | The number of times that the measure appears.+itemizedMetricStats_occurrenceCount :: Lens.Lens' ItemizedMetricStats (Prelude.Maybe Prelude.Int)+itemizedMetricStats_occurrenceCount = Lens.lens (\ItemizedMetricStats' {occurrenceCount} -> occurrenceCount) (\s@ItemizedMetricStats' {} a -> s {occurrenceCount = a} :: ItemizedMetricStats)++instance Data.FromJSON ItemizedMetricStats where+  parseJSON =+    Data.withObject+      "ItemizedMetricStats"+      ( \x ->+          ItemizedMetricStats'+            Prelude.<$> (x Data..:? "MetricName")+            Prelude.<*> (x Data..:? "OccurrenceCount")+      )++instance Prelude.Hashable ItemizedMetricStats where+  hashWithSalt _salt ItemizedMetricStats' {..} =+    _salt+      `Prelude.hashWithSalt` metricName+      `Prelude.hashWithSalt` occurrenceCount++instance Prelude.NFData ItemizedMetricStats where+  rnf ItemizedMetricStats' {..} =+    Prelude.rnf metricName+      `Prelude.seq` Prelude.rnf occurrenceCount
+ gen/Amazonka/LookoutMetrics/Types/JsonFileCompression.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.LookoutMetrics.Types.JsonFileCompression+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.JsonFileCompression+  ( JsonFileCompression+      ( ..,+        JsonFileCompression_GZIP,+        JsonFileCompression_NONE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype JsonFileCompression = JsonFileCompression'+  { fromJsonFileCompression ::+      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 JsonFileCompression_GZIP :: JsonFileCompression+pattern JsonFileCompression_GZIP = JsonFileCompression' "GZIP"++pattern JsonFileCompression_NONE :: JsonFileCompression+pattern JsonFileCompression_NONE = JsonFileCompression' "NONE"++{-# COMPLETE+  JsonFileCompression_GZIP,+  JsonFileCompression_NONE,+  JsonFileCompression'+  #-}
+ gen/Amazonka/LookoutMetrics/Types/JsonFormatDescriptor.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.LookoutMetrics.Types.JsonFormatDescriptor+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.JsonFormatDescriptor where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.JsonFileCompression+import qualified Amazonka.Prelude as Prelude++-- | Contains information about how a source JSON data file should be+-- analyzed.+--+-- /See:/ 'newJsonFormatDescriptor' smart constructor.+data JsonFormatDescriptor = JsonFormatDescriptor'+  { -- | The character set in which the source JSON file is written.+    charset :: Prelude.Maybe Prelude.Text,+    -- | The level of compression of the source CSV file.+    fileCompression :: Prelude.Maybe JsonFileCompression+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'JsonFormatDescriptor' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'charset', 'jsonFormatDescriptor_charset' - The character set in which the source JSON file is written.+--+-- 'fileCompression', 'jsonFormatDescriptor_fileCompression' - The level of compression of the source CSV file.+newJsonFormatDescriptor ::+  JsonFormatDescriptor+newJsonFormatDescriptor =+  JsonFormatDescriptor'+    { charset = Prelude.Nothing,+      fileCompression = Prelude.Nothing+    }++-- | The character set in which the source JSON file is written.+jsonFormatDescriptor_charset :: Lens.Lens' JsonFormatDescriptor (Prelude.Maybe Prelude.Text)+jsonFormatDescriptor_charset = Lens.lens (\JsonFormatDescriptor' {charset} -> charset) (\s@JsonFormatDescriptor' {} a -> s {charset = a} :: JsonFormatDescriptor)++-- | The level of compression of the source CSV file.+jsonFormatDescriptor_fileCompression :: Lens.Lens' JsonFormatDescriptor (Prelude.Maybe JsonFileCompression)+jsonFormatDescriptor_fileCompression = Lens.lens (\JsonFormatDescriptor' {fileCompression} -> fileCompression) (\s@JsonFormatDescriptor' {} a -> s {fileCompression = a} :: JsonFormatDescriptor)++instance Data.FromJSON JsonFormatDescriptor where+  parseJSON =+    Data.withObject+      "JsonFormatDescriptor"+      ( \x ->+          JsonFormatDescriptor'+            Prelude.<$> (x Data..:? "Charset")+            Prelude.<*> (x Data..:? "FileCompression")+      )++instance Prelude.Hashable JsonFormatDescriptor where+  hashWithSalt _salt JsonFormatDescriptor' {..} =+    _salt+      `Prelude.hashWithSalt` charset+      `Prelude.hashWithSalt` fileCompression++instance Prelude.NFData JsonFormatDescriptor where+  rnf JsonFormatDescriptor' {..} =+    Prelude.rnf charset+      `Prelude.seq` Prelude.rnf fileCompression++instance Data.ToJSON JsonFormatDescriptor where+  toJSON JsonFormatDescriptor' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Charset" Data..=) Prelude.<$> charset,+            ("FileCompression" Data..=)+              Prelude.<$> fileCompression+          ]+      )
+ gen/Amazonka/LookoutMetrics/Types/LambdaConfiguration.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.LookoutMetrics.Types.LambdaConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.LambdaConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Contains information about a Lambda configuration.+--+-- /See:/ 'newLambdaConfiguration' smart constructor.+data LambdaConfiguration = LambdaConfiguration'+  { -- | The ARN of an IAM role that has permission to invoke the Lambda+    -- function.+    roleArn :: Prelude.Text,+    -- | The ARN of the Lambda function.+    lambdaArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LambdaConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'roleArn', 'lambdaConfiguration_roleArn' - The ARN of an IAM role that has permission to invoke the Lambda+-- function.+--+-- 'lambdaArn', 'lambdaConfiguration_lambdaArn' - The ARN of the Lambda function.+newLambdaConfiguration ::+  -- | 'roleArn'+  Prelude.Text ->+  -- | 'lambdaArn'+  Prelude.Text ->+  LambdaConfiguration+newLambdaConfiguration pRoleArn_ pLambdaArn_ =+  LambdaConfiguration'+    { roleArn = pRoleArn_,+      lambdaArn = pLambdaArn_+    }++-- | The ARN of an IAM role that has permission to invoke the Lambda+-- function.+lambdaConfiguration_roleArn :: Lens.Lens' LambdaConfiguration Prelude.Text+lambdaConfiguration_roleArn = Lens.lens (\LambdaConfiguration' {roleArn} -> roleArn) (\s@LambdaConfiguration' {} a -> s {roleArn = a} :: LambdaConfiguration)++-- | The ARN of the Lambda function.+lambdaConfiguration_lambdaArn :: Lens.Lens' LambdaConfiguration Prelude.Text+lambdaConfiguration_lambdaArn = Lens.lens (\LambdaConfiguration' {lambdaArn} -> lambdaArn) (\s@LambdaConfiguration' {} a -> s {lambdaArn = a} :: LambdaConfiguration)++instance Data.FromJSON LambdaConfiguration where+  parseJSON =+    Data.withObject+      "LambdaConfiguration"+      ( \x ->+          LambdaConfiguration'+            Prelude.<$> (x Data..: "RoleArn")+            Prelude.<*> (x Data..: "LambdaArn")+      )++instance Prelude.Hashable LambdaConfiguration where+  hashWithSalt _salt LambdaConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` lambdaArn++instance Prelude.NFData LambdaConfiguration where+  rnf LambdaConfiguration' {..} =+    Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf lambdaArn++instance Data.ToJSON LambdaConfiguration where+  toJSON LambdaConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("RoleArn" Data..= roleArn),+            Prelude.Just ("LambdaArn" Data..= lambdaArn)+          ]+      )
+ gen/Amazonka/LookoutMetrics/Types/Metric.hs view
@@ -0,0 +1,113 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.Types.Metric+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.Metric where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.AggregationFunction+import qualified Amazonka.Prelude as Prelude++-- | A calculation made by contrasting a measure and a dimension from your+-- source data.+--+-- /See:/ 'newMetric' smart constructor.+data Metric = Metric'+  { -- | The namespace for the metric.+    namespace :: Prelude.Maybe Prelude.Text,+    -- | The name of the metric.+    metricName :: Prelude.Text,+    -- | The function with which the metric is calculated.+    aggregationFunction :: AggregationFunction+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Metric' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'namespace', 'metric_namespace' - The namespace for the metric.+--+-- 'metricName', 'metric_metricName' - The name of the metric.+--+-- 'aggregationFunction', 'metric_aggregationFunction' - The function with which the metric is calculated.+newMetric ::+  -- | 'metricName'+  Prelude.Text ->+  -- | 'aggregationFunction'+  AggregationFunction ->+  Metric+newMetric pMetricName_ pAggregationFunction_ =+  Metric'+    { namespace = Prelude.Nothing,+      metricName = pMetricName_,+      aggregationFunction = pAggregationFunction_+    }++-- | The namespace for the metric.+metric_namespace :: Lens.Lens' Metric (Prelude.Maybe Prelude.Text)+metric_namespace = Lens.lens (\Metric' {namespace} -> namespace) (\s@Metric' {} a -> s {namespace = a} :: Metric)++-- | The name of the metric.+metric_metricName :: Lens.Lens' Metric Prelude.Text+metric_metricName = Lens.lens (\Metric' {metricName} -> metricName) (\s@Metric' {} a -> s {metricName = a} :: Metric)++-- | The function with which the metric is calculated.+metric_aggregationFunction :: Lens.Lens' Metric AggregationFunction+metric_aggregationFunction = Lens.lens (\Metric' {aggregationFunction} -> aggregationFunction) (\s@Metric' {} a -> s {aggregationFunction = a} :: Metric)++instance Data.FromJSON Metric where+  parseJSON =+    Data.withObject+      "Metric"+      ( \x ->+          Metric'+            Prelude.<$> (x Data..:? "Namespace")+            Prelude.<*> (x Data..: "MetricName")+            Prelude.<*> (x Data..: "AggregationFunction")+      )++instance Prelude.Hashable Metric where+  hashWithSalt _salt Metric' {..} =+    _salt+      `Prelude.hashWithSalt` namespace+      `Prelude.hashWithSalt` metricName+      `Prelude.hashWithSalt` aggregationFunction++instance Prelude.NFData Metric where+  rnf Metric' {..} =+    Prelude.rnf namespace+      `Prelude.seq` Prelude.rnf metricName+      `Prelude.seq` Prelude.rnf aggregationFunction++instance Data.ToJSON Metric where+  toJSON Metric' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Namespace" Data..=) Prelude.<$> namespace,+            Prelude.Just ("MetricName" Data..= metricName),+            Prelude.Just+              ("AggregationFunction" Data..= aggregationFunction)+          ]+      )
+ gen/Amazonka/LookoutMetrics/Types/MetricLevelImpact.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.LookoutMetrics.Types.MetricLevelImpact+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.MetricLevelImpact where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.ContributionMatrix+import qualified Amazonka.Prelude as Prelude++-- | Details about a measure affected by an anomaly.+--+-- /See:/ 'newMetricLevelImpact' smart constructor.+data MetricLevelImpact = MetricLevelImpact'+  { -- | Details about the dimensions that contributed to the anomaly.+    contributionMatrix :: Prelude.Maybe ContributionMatrix,+    -- | The name of the measure.+    metricName :: Prelude.Maybe Prelude.Text,+    -- | The number of anomalous metrics for the measure.+    numTimeSeries :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MetricLevelImpact' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contributionMatrix', 'metricLevelImpact_contributionMatrix' - Details about the dimensions that contributed to the anomaly.+--+-- 'metricName', 'metricLevelImpact_metricName' - The name of the measure.+--+-- 'numTimeSeries', 'metricLevelImpact_numTimeSeries' - The number of anomalous metrics for the measure.+newMetricLevelImpact ::+  MetricLevelImpact+newMetricLevelImpact =+  MetricLevelImpact'+    { contributionMatrix =+        Prelude.Nothing,+      metricName = Prelude.Nothing,+      numTimeSeries = Prelude.Nothing+    }++-- | Details about the dimensions that contributed to the anomaly.+metricLevelImpact_contributionMatrix :: Lens.Lens' MetricLevelImpact (Prelude.Maybe ContributionMatrix)+metricLevelImpact_contributionMatrix = Lens.lens (\MetricLevelImpact' {contributionMatrix} -> contributionMatrix) (\s@MetricLevelImpact' {} a -> s {contributionMatrix = a} :: MetricLevelImpact)++-- | The name of the measure.+metricLevelImpact_metricName :: Lens.Lens' MetricLevelImpact (Prelude.Maybe Prelude.Text)+metricLevelImpact_metricName = Lens.lens (\MetricLevelImpact' {metricName} -> metricName) (\s@MetricLevelImpact' {} a -> s {metricName = a} :: MetricLevelImpact)++-- | The number of anomalous metrics for the measure.+metricLevelImpact_numTimeSeries :: Lens.Lens' MetricLevelImpact (Prelude.Maybe Prelude.Int)+metricLevelImpact_numTimeSeries = Lens.lens (\MetricLevelImpact' {numTimeSeries} -> numTimeSeries) (\s@MetricLevelImpact' {} a -> s {numTimeSeries = a} :: MetricLevelImpact)++instance Data.FromJSON MetricLevelImpact where+  parseJSON =+    Data.withObject+      "MetricLevelImpact"+      ( \x ->+          MetricLevelImpact'+            Prelude.<$> (x Data..:? "ContributionMatrix")+            Prelude.<*> (x Data..:? "MetricName")+            Prelude.<*> (x Data..:? "NumTimeSeries")+      )++instance Prelude.Hashable MetricLevelImpact where+  hashWithSalt _salt MetricLevelImpact' {..} =+    _salt+      `Prelude.hashWithSalt` contributionMatrix+      `Prelude.hashWithSalt` metricName+      `Prelude.hashWithSalt` numTimeSeries++instance Prelude.NFData MetricLevelImpact where+  rnf MetricLevelImpact' {..} =+    Prelude.rnf contributionMatrix+      `Prelude.seq` Prelude.rnf metricName+      `Prelude.seq` Prelude.rnf numTimeSeries
+ gen/Amazonka/LookoutMetrics/Types/MetricSetDataQualityMetric.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.LookoutMetrics.Types.MetricSetDataQualityMetric+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.MetricSetDataQualityMetric where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.DataQualityMetric+import qualified Amazonka.Prelude as Prelude++-- | An array of @DataQualityMetric@ objects that describes one or more data+-- quality metrics.+--+-- /See:/ 'newMetricSetDataQualityMetric' smart constructor.+data MetricSetDataQualityMetric = MetricSetDataQualityMetric'+  { -- | The array of data quality metrics contained in the data quality metric+    -- set.+    dataQualityMetricList :: Prelude.Maybe [DataQualityMetric],+    -- | The Amazon Resource Name (ARN) of the data quality metric array.+    metricSetArn :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MetricSetDataQualityMetric' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataQualityMetricList', 'metricSetDataQualityMetric_dataQualityMetricList' - The array of data quality metrics contained in the data quality metric+-- set.+--+-- 'metricSetArn', 'metricSetDataQualityMetric_metricSetArn' - The Amazon Resource Name (ARN) of the data quality metric array.+newMetricSetDataQualityMetric ::+  MetricSetDataQualityMetric+newMetricSetDataQualityMetric =+  MetricSetDataQualityMetric'+    { dataQualityMetricList =+        Prelude.Nothing,+      metricSetArn = Prelude.Nothing+    }++-- | The array of data quality metrics contained in the data quality metric+-- set.+metricSetDataQualityMetric_dataQualityMetricList :: Lens.Lens' MetricSetDataQualityMetric (Prelude.Maybe [DataQualityMetric])+metricSetDataQualityMetric_dataQualityMetricList = Lens.lens (\MetricSetDataQualityMetric' {dataQualityMetricList} -> dataQualityMetricList) (\s@MetricSetDataQualityMetric' {} a -> s {dataQualityMetricList = a} :: MetricSetDataQualityMetric) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the data quality metric array.+metricSetDataQualityMetric_metricSetArn :: Lens.Lens' MetricSetDataQualityMetric (Prelude.Maybe Prelude.Text)+metricSetDataQualityMetric_metricSetArn = Lens.lens (\MetricSetDataQualityMetric' {metricSetArn} -> metricSetArn) (\s@MetricSetDataQualityMetric' {} a -> s {metricSetArn = a} :: MetricSetDataQualityMetric)++instance Data.FromJSON MetricSetDataQualityMetric where+  parseJSON =+    Data.withObject+      "MetricSetDataQualityMetric"+      ( \x ->+          MetricSetDataQualityMetric'+            Prelude.<$> ( x+                            Data..:? "DataQualityMetricList"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "MetricSetArn")+      )++instance Prelude.Hashable MetricSetDataQualityMetric where+  hashWithSalt _salt MetricSetDataQualityMetric' {..} =+    _salt+      `Prelude.hashWithSalt` dataQualityMetricList+      `Prelude.hashWithSalt` metricSetArn++instance Prelude.NFData MetricSetDataQualityMetric where+  rnf MetricSetDataQualityMetric' {..} =+    Prelude.rnf dataQualityMetricList+      `Prelude.seq` Prelude.rnf metricSetArn
+ gen/Amazonka/LookoutMetrics/Types/MetricSetDimensionFilter.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.LookoutMetrics.Types.MetricSetDimensionFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.MetricSetDimensionFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.Filter+import qualified Amazonka.Prelude as Prelude++-- | Describes a list of filters for choosing a subset of dimension values.+-- Each filter consists of the dimension and one of its values that you+-- want to include. When multiple dimensions or values are specified, the+-- dimensions are joined with an AND operation and the values are joined+-- with an OR operation.+--+-- /See:/ 'newMetricSetDimensionFilter' smart constructor.+data MetricSetDimensionFilter = MetricSetDimensionFilter'+  { -- | The list of filters that you are applying.+    filterList :: Prelude.Maybe (Prelude.NonEmpty Filter),+    -- | The dimension that you want to filter on.+    name :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MetricSetDimensionFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filterList', 'metricSetDimensionFilter_filterList' - The list of filters that you are applying.+--+-- 'name', 'metricSetDimensionFilter_name' - The dimension that you want to filter on.+newMetricSetDimensionFilter ::+  MetricSetDimensionFilter+newMetricSetDimensionFilter =+  MetricSetDimensionFilter'+    { filterList =+        Prelude.Nothing,+      name = Prelude.Nothing+    }++-- | The list of filters that you are applying.+metricSetDimensionFilter_filterList :: Lens.Lens' MetricSetDimensionFilter (Prelude.Maybe (Prelude.NonEmpty Filter))+metricSetDimensionFilter_filterList = Lens.lens (\MetricSetDimensionFilter' {filterList} -> filterList) (\s@MetricSetDimensionFilter' {} a -> s {filterList = a} :: MetricSetDimensionFilter) Prelude.. Lens.mapping Lens.coerced++-- | The dimension that you want to filter on.+metricSetDimensionFilter_name :: Lens.Lens' MetricSetDimensionFilter (Prelude.Maybe Prelude.Text)+metricSetDimensionFilter_name = Lens.lens (\MetricSetDimensionFilter' {name} -> name) (\s@MetricSetDimensionFilter' {} a -> s {name = a} :: MetricSetDimensionFilter)++instance Data.FromJSON MetricSetDimensionFilter where+  parseJSON =+    Data.withObject+      "MetricSetDimensionFilter"+      ( \x ->+          MetricSetDimensionFilter'+            Prelude.<$> (x Data..:? "FilterList")+            Prelude.<*> (x Data..:? "Name")+      )++instance Prelude.Hashable MetricSetDimensionFilter where+  hashWithSalt _salt MetricSetDimensionFilter' {..} =+    _salt+      `Prelude.hashWithSalt` filterList+      `Prelude.hashWithSalt` name++instance Prelude.NFData MetricSetDimensionFilter where+  rnf MetricSetDimensionFilter' {..} =+    Prelude.rnf filterList+      `Prelude.seq` Prelude.rnf name++instance Data.ToJSON MetricSetDimensionFilter where+  toJSON MetricSetDimensionFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("FilterList" Data..=) Prelude.<$> filterList,+            ("Name" Data..=) Prelude.<$> name+          ]+      )
+ gen/Amazonka/LookoutMetrics/Types/MetricSetSummary.hs view
@@ -0,0 +1,148 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.Types.MetricSetSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.MetricSetSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Contains information about a dataset.+--+-- /See:/ 'newMetricSetSummary' smart constructor.+data MetricSetSummary = MetricSetSummary'+  { -- | The ARN of the detector to which the dataset belongs.+    anomalyDetectorArn :: Prelude.Maybe Prelude.Text,+    -- | The time at which the dataset was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The time at which the dataset was last modified.+    lastModificationTime :: Prelude.Maybe Data.POSIX,+    -- | The ARN of the dataset.+    metricSetArn :: Prelude.Maybe Prelude.Text,+    -- | The description of the dataset.+    metricSetDescription :: Prelude.Maybe Prelude.Text,+    -- | The name of the dataset.+    metricSetName :: Prelude.Maybe Prelude.Text,+    -- | The dataset\'s+    -- <https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html tags>.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MetricSetSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyDetectorArn', 'metricSetSummary_anomalyDetectorArn' - The ARN of the detector to which the dataset belongs.+--+-- 'creationTime', 'metricSetSummary_creationTime' - The time at which the dataset was created.+--+-- 'lastModificationTime', 'metricSetSummary_lastModificationTime' - The time at which the dataset was last modified.+--+-- 'metricSetArn', 'metricSetSummary_metricSetArn' - The ARN of the dataset.+--+-- 'metricSetDescription', 'metricSetSummary_metricSetDescription' - The description of the dataset.+--+-- 'metricSetName', 'metricSetSummary_metricSetName' - The name of the dataset.+--+-- 'tags', 'metricSetSummary_tags' - The dataset\'s+-- <https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html tags>.+newMetricSetSummary ::+  MetricSetSummary+newMetricSetSummary =+  MetricSetSummary'+    { anomalyDetectorArn =+        Prelude.Nothing,+      creationTime = Prelude.Nothing,+      lastModificationTime = Prelude.Nothing,+      metricSetArn = Prelude.Nothing,+      metricSetDescription = Prelude.Nothing,+      metricSetName = Prelude.Nothing,+      tags = Prelude.Nothing+    }++-- | The ARN of the detector to which the dataset belongs.+metricSetSummary_anomalyDetectorArn :: Lens.Lens' MetricSetSummary (Prelude.Maybe Prelude.Text)+metricSetSummary_anomalyDetectorArn = Lens.lens (\MetricSetSummary' {anomalyDetectorArn} -> anomalyDetectorArn) (\s@MetricSetSummary' {} a -> s {anomalyDetectorArn = a} :: MetricSetSummary)++-- | The time at which the dataset was created.+metricSetSummary_creationTime :: Lens.Lens' MetricSetSummary (Prelude.Maybe Prelude.UTCTime)+metricSetSummary_creationTime = Lens.lens (\MetricSetSummary' {creationTime} -> creationTime) (\s@MetricSetSummary' {} a -> s {creationTime = a} :: MetricSetSummary) Prelude.. Lens.mapping Data._Time++-- | The time at which the dataset was last modified.+metricSetSummary_lastModificationTime :: Lens.Lens' MetricSetSummary (Prelude.Maybe Prelude.UTCTime)+metricSetSummary_lastModificationTime = Lens.lens (\MetricSetSummary' {lastModificationTime} -> lastModificationTime) (\s@MetricSetSummary' {} a -> s {lastModificationTime = a} :: MetricSetSummary) Prelude.. Lens.mapping Data._Time++-- | The ARN of the dataset.+metricSetSummary_metricSetArn :: Lens.Lens' MetricSetSummary (Prelude.Maybe Prelude.Text)+metricSetSummary_metricSetArn = Lens.lens (\MetricSetSummary' {metricSetArn} -> metricSetArn) (\s@MetricSetSummary' {} a -> s {metricSetArn = a} :: MetricSetSummary)++-- | The description of the dataset.+metricSetSummary_metricSetDescription :: Lens.Lens' MetricSetSummary (Prelude.Maybe Prelude.Text)+metricSetSummary_metricSetDescription = Lens.lens (\MetricSetSummary' {metricSetDescription} -> metricSetDescription) (\s@MetricSetSummary' {} a -> s {metricSetDescription = a} :: MetricSetSummary)++-- | The name of the dataset.+metricSetSummary_metricSetName :: Lens.Lens' MetricSetSummary (Prelude.Maybe Prelude.Text)+metricSetSummary_metricSetName = Lens.lens (\MetricSetSummary' {metricSetName} -> metricSetName) (\s@MetricSetSummary' {} a -> s {metricSetName = a} :: MetricSetSummary)++-- | The dataset\'s+-- <https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html tags>.+metricSetSummary_tags :: Lens.Lens' MetricSetSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+metricSetSummary_tags = Lens.lens (\MetricSetSummary' {tags} -> tags) (\s@MetricSetSummary' {} a -> s {tags = a} :: MetricSetSummary) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON MetricSetSummary where+  parseJSON =+    Data.withObject+      "MetricSetSummary"+      ( \x ->+          MetricSetSummary'+            Prelude.<$> (x Data..:? "AnomalyDetectorArn")+            Prelude.<*> (x Data..:? "CreationTime")+            Prelude.<*> (x Data..:? "LastModificationTime")+            Prelude.<*> (x Data..:? "MetricSetArn")+            Prelude.<*> (x Data..:? "MetricSetDescription")+            Prelude.<*> (x Data..:? "MetricSetName")+            Prelude.<*> (x Data..:? "Tags" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable MetricSetSummary where+  hashWithSalt _salt MetricSetSummary' {..} =+    _salt+      `Prelude.hashWithSalt` anomalyDetectorArn+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` lastModificationTime+      `Prelude.hashWithSalt` metricSetArn+      `Prelude.hashWithSalt` metricSetDescription+      `Prelude.hashWithSalt` metricSetName+      `Prelude.hashWithSalt` tags++instance Prelude.NFData MetricSetSummary where+  rnf MetricSetSummary' {..} =+    Prelude.rnf anomalyDetectorArn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf lastModificationTime+      `Prelude.seq` Prelude.rnf metricSetArn+      `Prelude.seq` Prelude.rnf metricSetDescription+      `Prelude.seq` Prelude.rnf metricSetName+      `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/LookoutMetrics/Types/MetricSource.hs view
@@ -0,0 +1,155 @@+{-# 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.LookoutMetrics.Types.MetricSource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.MetricSource where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.AppFlowConfig+import Amazonka.LookoutMetrics.Types.AthenaSourceConfig+import Amazonka.LookoutMetrics.Types.CloudWatchConfig+import Amazonka.LookoutMetrics.Types.RDSSourceConfig+import Amazonka.LookoutMetrics.Types.RedshiftSourceConfig+import Amazonka.LookoutMetrics.Types.S3SourceConfig+import qualified Amazonka.Prelude as Prelude++-- | Contains information about source data used to generate metrics.+--+-- /See:/ 'newMetricSource' smart constructor.+data MetricSource = MetricSource'+  { -- | Details about an AppFlow datasource.+    appFlowConfig :: Prelude.Maybe AppFlowConfig,+    -- | Details about an Amazon Athena datasource.+    athenaSourceConfig :: Prelude.Maybe AthenaSourceConfig,+    -- | Details about an Amazon CloudWatch monitoring datasource.+    cloudWatchConfig :: Prelude.Maybe CloudWatchConfig,+    -- | Details about an Amazon Relational Database Service (RDS) datasource.+    rDSSourceConfig :: Prelude.Maybe RDSSourceConfig,+    -- | Details about an Amazon Redshift database datasource.+    redshiftSourceConfig :: Prelude.Maybe RedshiftSourceConfig,+    s3SourceConfig :: Prelude.Maybe S3SourceConfig+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MetricSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'appFlowConfig', 'metricSource_appFlowConfig' - Details about an AppFlow datasource.+--+-- 'athenaSourceConfig', 'metricSource_athenaSourceConfig' - Details about an Amazon Athena datasource.+--+-- 'cloudWatchConfig', 'metricSource_cloudWatchConfig' - Details about an Amazon CloudWatch monitoring datasource.+--+-- 'rDSSourceConfig', 'metricSource_rDSSourceConfig' - Details about an Amazon Relational Database Service (RDS) datasource.+--+-- 'redshiftSourceConfig', 'metricSource_redshiftSourceConfig' - Details about an Amazon Redshift database datasource.+--+-- 's3SourceConfig', 'metricSource_s3SourceConfig' - Undocumented member.+newMetricSource ::+  MetricSource+newMetricSource =+  MetricSource'+    { appFlowConfig = Prelude.Nothing,+      athenaSourceConfig = Prelude.Nothing,+      cloudWatchConfig = Prelude.Nothing,+      rDSSourceConfig = Prelude.Nothing,+      redshiftSourceConfig = Prelude.Nothing,+      s3SourceConfig = Prelude.Nothing+    }++-- | Details about an AppFlow datasource.+metricSource_appFlowConfig :: Lens.Lens' MetricSource (Prelude.Maybe AppFlowConfig)+metricSource_appFlowConfig = Lens.lens (\MetricSource' {appFlowConfig} -> appFlowConfig) (\s@MetricSource' {} a -> s {appFlowConfig = a} :: MetricSource)++-- | Details about an Amazon Athena datasource.+metricSource_athenaSourceConfig :: Lens.Lens' MetricSource (Prelude.Maybe AthenaSourceConfig)+metricSource_athenaSourceConfig = Lens.lens (\MetricSource' {athenaSourceConfig} -> athenaSourceConfig) (\s@MetricSource' {} a -> s {athenaSourceConfig = a} :: MetricSource)++-- | Details about an Amazon CloudWatch monitoring datasource.+metricSource_cloudWatchConfig :: Lens.Lens' MetricSource (Prelude.Maybe CloudWatchConfig)+metricSource_cloudWatchConfig = Lens.lens (\MetricSource' {cloudWatchConfig} -> cloudWatchConfig) (\s@MetricSource' {} a -> s {cloudWatchConfig = a} :: MetricSource)++-- | Details about an Amazon Relational Database Service (RDS) datasource.+metricSource_rDSSourceConfig :: Lens.Lens' MetricSource (Prelude.Maybe RDSSourceConfig)+metricSource_rDSSourceConfig = Lens.lens (\MetricSource' {rDSSourceConfig} -> rDSSourceConfig) (\s@MetricSource' {} a -> s {rDSSourceConfig = a} :: MetricSource)++-- | Details about an Amazon Redshift database datasource.+metricSource_redshiftSourceConfig :: Lens.Lens' MetricSource (Prelude.Maybe RedshiftSourceConfig)+metricSource_redshiftSourceConfig = Lens.lens (\MetricSource' {redshiftSourceConfig} -> redshiftSourceConfig) (\s@MetricSource' {} a -> s {redshiftSourceConfig = a} :: MetricSource)++-- | Undocumented member.+metricSource_s3SourceConfig :: Lens.Lens' MetricSource (Prelude.Maybe S3SourceConfig)+metricSource_s3SourceConfig = Lens.lens (\MetricSource' {s3SourceConfig} -> s3SourceConfig) (\s@MetricSource' {} a -> s {s3SourceConfig = a} :: MetricSource)++instance Data.FromJSON MetricSource where+  parseJSON =+    Data.withObject+      "MetricSource"+      ( \x ->+          MetricSource'+            Prelude.<$> (x Data..:? "AppFlowConfig")+            Prelude.<*> (x Data..:? "AthenaSourceConfig")+            Prelude.<*> (x Data..:? "CloudWatchConfig")+            Prelude.<*> (x Data..:? "RDSSourceConfig")+            Prelude.<*> (x Data..:? "RedshiftSourceConfig")+            Prelude.<*> (x Data..:? "S3SourceConfig")+      )++instance Prelude.Hashable MetricSource where+  hashWithSalt _salt MetricSource' {..} =+    _salt+      `Prelude.hashWithSalt` appFlowConfig+      `Prelude.hashWithSalt` athenaSourceConfig+      `Prelude.hashWithSalt` cloudWatchConfig+      `Prelude.hashWithSalt` rDSSourceConfig+      `Prelude.hashWithSalt` redshiftSourceConfig+      `Prelude.hashWithSalt` s3SourceConfig++instance Prelude.NFData MetricSource where+  rnf MetricSource' {..} =+    Prelude.rnf appFlowConfig+      `Prelude.seq` Prelude.rnf athenaSourceConfig+      `Prelude.seq` Prelude.rnf cloudWatchConfig+      `Prelude.seq` Prelude.rnf rDSSourceConfig+      `Prelude.seq` Prelude.rnf redshiftSourceConfig+      `Prelude.seq` Prelude.rnf s3SourceConfig++instance Data.ToJSON MetricSource where+  toJSON MetricSource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AppFlowConfig" Data..=) Prelude.<$> appFlowConfig,+            ("AthenaSourceConfig" Data..=)+              Prelude.<$> athenaSourceConfig,+            ("CloudWatchConfig" Data..=)+              Prelude.<$> cloudWatchConfig,+            ("RDSSourceConfig" Data..=)+              Prelude.<$> rDSSourceConfig,+            ("RedshiftSourceConfig" Data..=)+              Prelude.<$> redshiftSourceConfig,+            ("S3SourceConfig" Data..=)+              Prelude.<$> s3SourceConfig+          ]+      )
+ gen/Amazonka/LookoutMetrics/Types/RDSSourceConfig.hs view
@@ -0,0 +1,180 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.Types.RDSSourceConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.RDSSourceConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.VpcConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Contains information about the Amazon Relational Database Service (RDS)+-- configuration.+--+-- /See:/ 'newRDSSourceConfig' smart constructor.+data RDSSourceConfig = RDSSourceConfig'+  { -- | A string identifying the database instance.+    dbInstanceIdentifier :: Prelude.Maybe Prelude.Text,+    -- | The host name of the database.+    databaseHost :: Prelude.Maybe Prelude.Text,+    -- | The name of the RDS database.+    databaseName :: Prelude.Maybe Prelude.Text,+    -- | The port number where the database can be accessed.+    databasePort :: Prelude.Maybe Prelude.Natural,+    -- | The Amazon Resource Name (ARN) of the role.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the AWS Secrets Manager role.+    secretManagerArn :: Prelude.Maybe Prelude.Text,+    -- | The name of the table in the database.+    tableName :: Prelude.Maybe Prelude.Text,+    -- | An object containing information about the Amazon Virtual Private Cloud+    -- (VPC) configuration.+    vpcConfiguration :: Prelude.Maybe VpcConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RDSSourceConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbInstanceIdentifier', 'rDSSourceConfig_dbInstanceIdentifier' - A string identifying the database instance.+--+-- 'databaseHost', 'rDSSourceConfig_databaseHost' - The host name of the database.+--+-- 'databaseName', 'rDSSourceConfig_databaseName' - The name of the RDS database.+--+-- 'databasePort', 'rDSSourceConfig_databasePort' - The port number where the database can be accessed.+--+-- 'roleArn', 'rDSSourceConfig_roleArn' - The Amazon Resource Name (ARN) of the role.+--+-- 'secretManagerArn', 'rDSSourceConfig_secretManagerArn' - The Amazon Resource Name (ARN) of the AWS Secrets Manager role.+--+-- 'tableName', 'rDSSourceConfig_tableName' - The name of the table in the database.+--+-- 'vpcConfiguration', 'rDSSourceConfig_vpcConfiguration' - An object containing information about the Amazon Virtual Private Cloud+-- (VPC) configuration.+newRDSSourceConfig ::+  RDSSourceConfig+newRDSSourceConfig =+  RDSSourceConfig'+    { dbInstanceIdentifier =+        Prelude.Nothing,+      databaseHost = Prelude.Nothing,+      databaseName = Prelude.Nothing,+      databasePort = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      secretManagerArn = Prelude.Nothing,+      tableName = Prelude.Nothing,+      vpcConfiguration = Prelude.Nothing+    }++-- | A string identifying the database instance.+rDSSourceConfig_dbInstanceIdentifier :: Lens.Lens' RDSSourceConfig (Prelude.Maybe Prelude.Text)+rDSSourceConfig_dbInstanceIdentifier = Lens.lens (\RDSSourceConfig' {dbInstanceIdentifier} -> dbInstanceIdentifier) (\s@RDSSourceConfig' {} a -> s {dbInstanceIdentifier = a} :: RDSSourceConfig)++-- | The host name of the database.+rDSSourceConfig_databaseHost :: Lens.Lens' RDSSourceConfig (Prelude.Maybe Prelude.Text)+rDSSourceConfig_databaseHost = Lens.lens (\RDSSourceConfig' {databaseHost} -> databaseHost) (\s@RDSSourceConfig' {} a -> s {databaseHost = a} :: RDSSourceConfig)++-- | The name of the RDS database.+rDSSourceConfig_databaseName :: Lens.Lens' RDSSourceConfig (Prelude.Maybe Prelude.Text)+rDSSourceConfig_databaseName = Lens.lens (\RDSSourceConfig' {databaseName} -> databaseName) (\s@RDSSourceConfig' {} a -> s {databaseName = a} :: RDSSourceConfig)++-- | The port number where the database can be accessed.+rDSSourceConfig_databasePort :: Lens.Lens' RDSSourceConfig (Prelude.Maybe Prelude.Natural)+rDSSourceConfig_databasePort = Lens.lens (\RDSSourceConfig' {databasePort} -> databasePort) (\s@RDSSourceConfig' {} a -> s {databasePort = a} :: RDSSourceConfig)++-- | The Amazon Resource Name (ARN) of the role.+rDSSourceConfig_roleArn :: Lens.Lens' RDSSourceConfig (Prelude.Maybe Prelude.Text)+rDSSourceConfig_roleArn = Lens.lens (\RDSSourceConfig' {roleArn} -> roleArn) (\s@RDSSourceConfig' {} a -> s {roleArn = a} :: RDSSourceConfig)++-- | The Amazon Resource Name (ARN) of the AWS Secrets Manager role.+rDSSourceConfig_secretManagerArn :: Lens.Lens' RDSSourceConfig (Prelude.Maybe Prelude.Text)+rDSSourceConfig_secretManagerArn = Lens.lens (\RDSSourceConfig' {secretManagerArn} -> secretManagerArn) (\s@RDSSourceConfig' {} a -> s {secretManagerArn = a} :: RDSSourceConfig)++-- | The name of the table in the database.+rDSSourceConfig_tableName :: Lens.Lens' RDSSourceConfig (Prelude.Maybe Prelude.Text)+rDSSourceConfig_tableName = Lens.lens (\RDSSourceConfig' {tableName} -> tableName) (\s@RDSSourceConfig' {} a -> s {tableName = a} :: RDSSourceConfig)++-- | An object containing information about the Amazon Virtual Private Cloud+-- (VPC) configuration.+rDSSourceConfig_vpcConfiguration :: Lens.Lens' RDSSourceConfig (Prelude.Maybe VpcConfiguration)+rDSSourceConfig_vpcConfiguration = Lens.lens (\RDSSourceConfig' {vpcConfiguration} -> vpcConfiguration) (\s@RDSSourceConfig' {} a -> s {vpcConfiguration = a} :: RDSSourceConfig)++instance Data.FromJSON RDSSourceConfig where+  parseJSON =+    Data.withObject+      "RDSSourceConfig"+      ( \x ->+          RDSSourceConfig'+            Prelude.<$> (x Data..:? "DBInstanceIdentifier")+            Prelude.<*> (x Data..:? "DatabaseHost")+            Prelude.<*> (x Data..:? "DatabaseName")+            Prelude.<*> (x Data..:? "DatabasePort")+            Prelude.<*> (x Data..:? "RoleArn")+            Prelude.<*> (x Data..:? "SecretManagerArn")+            Prelude.<*> (x Data..:? "TableName")+            Prelude.<*> (x Data..:? "VpcConfiguration")+      )++instance Prelude.Hashable RDSSourceConfig where+  hashWithSalt _salt RDSSourceConfig' {..} =+    _salt+      `Prelude.hashWithSalt` dbInstanceIdentifier+      `Prelude.hashWithSalt` databaseHost+      `Prelude.hashWithSalt` databaseName+      `Prelude.hashWithSalt` databasePort+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` secretManagerArn+      `Prelude.hashWithSalt` tableName+      `Prelude.hashWithSalt` vpcConfiguration++instance Prelude.NFData RDSSourceConfig where+  rnf RDSSourceConfig' {..} =+    Prelude.rnf dbInstanceIdentifier+      `Prelude.seq` Prelude.rnf databaseHost+      `Prelude.seq` Prelude.rnf databaseName+      `Prelude.seq` Prelude.rnf databasePort+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf secretManagerArn+      `Prelude.seq` Prelude.rnf tableName+      `Prelude.seq` Prelude.rnf vpcConfiguration++instance Data.ToJSON RDSSourceConfig where+  toJSON RDSSourceConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DBInstanceIdentifier" Data..=)+              Prelude.<$> dbInstanceIdentifier,+            ("DatabaseHost" Data..=) Prelude.<$> databaseHost,+            ("DatabaseName" Data..=) Prelude.<$> databaseName,+            ("DatabasePort" Data..=) Prelude.<$> databasePort,+            ("RoleArn" Data..=) Prelude.<$> roleArn,+            ("SecretManagerArn" Data..=)+              Prelude.<$> secretManagerArn,+            ("TableName" Data..=) Prelude.<$> tableName,+            ("VpcConfiguration" Data..=)+              Prelude.<$> vpcConfiguration+          ]+      )
+ gen/Amazonka/LookoutMetrics/Types/RedshiftSourceConfig.hs view
@@ -0,0 +1,182 @@+{-# 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.LookoutMetrics.Types.RedshiftSourceConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.RedshiftSourceConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.VpcConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the Amazon Redshift database configuration.+--+-- /See:/ 'newRedshiftSourceConfig' smart constructor.+data RedshiftSourceConfig = RedshiftSourceConfig'+  { -- | A string identifying the Redshift cluster.+    clusterIdentifier :: Prelude.Maybe Prelude.Text,+    -- | The name of the database host.+    databaseHost :: Prelude.Maybe Prelude.Text,+    -- | The Redshift database name.+    databaseName :: Prelude.Maybe Prelude.Text,+    -- | The port number where the database can be accessed.+    databasePort :: Prelude.Maybe Prelude.Natural,+    -- | The Amazon Resource Name (ARN) of the role providing access to the+    -- database.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the AWS Secrets Manager role.+    secretManagerArn :: Prelude.Maybe Prelude.Text,+    -- | The table name of the Redshift database.+    tableName :: Prelude.Maybe Prelude.Text,+    -- | Contains information about the Amazon Virtual Private Cloud (VPC)+    -- configuration.+    vpcConfiguration :: Prelude.Maybe VpcConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RedshiftSourceConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clusterIdentifier', 'redshiftSourceConfig_clusterIdentifier' - A string identifying the Redshift cluster.+--+-- 'databaseHost', 'redshiftSourceConfig_databaseHost' - The name of the database host.+--+-- 'databaseName', 'redshiftSourceConfig_databaseName' - The Redshift database name.+--+-- 'databasePort', 'redshiftSourceConfig_databasePort' - The port number where the database can be accessed.+--+-- 'roleArn', 'redshiftSourceConfig_roleArn' - The Amazon Resource Name (ARN) of the role providing access to the+-- database.+--+-- 'secretManagerArn', 'redshiftSourceConfig_secretManagerArn' - The Amazon Resource Name (ARN) of the AWS Secrets Manager role.+--+-- 'tableName', 'redshiftSourceConfig_tableName' - The table name of the Redshift database.+--+-- 'vpcConfiguration', 'redshiftSourceConfig_vpcConfiguration' - Contains information about the Amazon Virtual Private Cloud (VPC)+-- configuration.+newRedshiftSourceConfig ::+  RedshiftSourceConfig+newRedshiftSourceConfig =+  RedshiftSourceConfig'+    { clusterIdentifier =+        Prelude.Nothing,+      databaseHost = Prelude.Nothing,+      databaseName = Prelude.Nothing,+      databasePort = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      secretManagerArn = Prelude.Nothing,+      tableName = Prelude.Nothing,+      vpcConfiguration = Prelude.Nothing+    }++-- | A string identifying the Redshift cluster.+redshiftSourceConfig_clusterIdentifier :: Lens.Lens' RedshiftSourceConfig (Prelude.Maybe Prelude.Text)+redshiftSourceConfig_clusterIdentifier = Lens.lens (\RedshiftSourceConfig' {clusterIdentifier} -> clusterIdentifier) (\s@RedshiftSourceConfig' {} a -> s {clusterIdentifier = a} :: RedshiftSourceConfig)++-- | The name of the database host.+redshiftSourceConfig_databaseHost :: Lens.Lens' RedshiftSourceConfig (Prelude.Maybe Prelude.Text)+redshiftSourceConfig_databaseHost = Lens.lens (\RedshiftSourceConfig' {databaseHost} -> databaseHost) (\s@RedshiftSourceConfig' {} a -> s {databaseHost = a} :: RedshiftSourceConfig)++-- | The Redshift database name.+redshiftSourceConfig_databaseName :: Lens.Lens' RedshiftSourceConfig (Prelude.Maybe Prelude.Text)+redshiftSourceConfig_databaseName = Lens.lens (\RedshiftSourceConfig' {databaseName} -> databaseName) (\s@RedshiftSourceConfig' {} a -> s {databaseName = a} :: RedshiftSourceConfig)++-- | The port number where the database can be accessed.+redshiftSourceConfig_databasePort :: Lens.Lens' RedshiftSourceConfig (Prelude.Maybe Prelude.Natural)+redshiftSourceConfig_databasePort = Lens.lens (\RedshiftSourceConfig' {databasePort} -> databasePort) (\s@RedshiftSourceConfig' {} a -> s {databasePort = a} :: RedshiftSourceConfig)++-- | The Amazon Resource Name (ARN) of the role providing access to the+-- database.+redshiftSourceConfig_roleArn :: Lens.Lens' RedshiftSourceConfig (Prelude.Maybe Prelude.Text)+redshiftSourceConfig_roleArn = Lens.lens (\RedshiftSourceConfig' {roleArn} -> roleArn) (\s@RedshiftSourceConfig' {} a -> s {roleArn = a} :: RedshiftSourceConfig)++-- | The Amazon Resource Name (ARN) of the AWS Secrets Manager role.+redshiftSourceConfig_secretManagerArn :: Lens.Lens' RedshiftSourceConfig (Prelude.Maybe Prelude.Text)+redshiftSourceConfig_secretManagerArn = Lens.lens (\RedshiftSourceConfig' {secretManagerArn} -> secretManagerArn) (\s@RedshiftSourceConfig' {} a -> s {secretManagerArn = a} :: RedshiftSourceConfig)++-- | The table name of the Redshift database.+redshiftSourceConfig_tableName :: Lens.Lens' RedshiftSourceConfig (Prelude.Maybe Prelude.Text)+redshiftSourceConfig_tableName = Lens.lens (\RedshiftSourceConfig' {tableName} -> tableName) (\s@RedshiftSourceConfig' {} a -> s {tableName = a} :: RedshiftSourceConfig)++-- | Contains information about the Amazon Virtual Private Cloud (VPC)+-- configuration.+redshiftSourceConfig_vpcConfiguration :: Lens.Lens' RedshiftSourceConfig (Prelude.Maybe VpcConfiguration)+redshiftSourceConfig_vpcConfiguration = Lens.lens (\RedshiftSourceConfig' {vpcConfiguration} -> vpcConfiguration) (\s@RedshiftSourceConfig' {} a -> s {vpcConfiguration = a} :: RedshiftSourceConfig)++instance Data.FromJSON RedshiftSourceConfig where+  parseJSON =+    Data.withObject+      "RedshiftSourceConfig"+      ( \x ->+          RedshiftSourceConfig'+            Prelude.<$> (x Data..:? "ClusterIdentifier")+            Prelude.<*> (x Data..:? "DatabaseHost")+            Prelude.<*> (x Data..:? "DatabaseName")+            Prelude.<*> (x Data..:? "DatabasePort")+            Prelude.<*> (x Data..:? "RoleArn")+            Prelude.<*> (x Data..:? "SecretManagerArn")+            Prelude.<*> (x Data..:? "TableName")+            Prelude.<*> (x Data..:? "VpcConfiguration")+      )++instance Prelude.Hashable RedshiftSourceConfig where+  hashWithSalt _salt RedshiftSourceConfig' {..} =+    _salt+      `Prelude.hashWithSalt` clusterIdentifier+      `Prelude.hashWithSalt` databaseHost+      `Prelude.hashWithSalt` databaseName+      `Prelude.hashWithSalt` databasePort+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` secretManagerArn+      `Prelude.hashWithSalt` tableName+      `Prelude.hashWithSalt` vpcConfiguration++instance Prelude.NFData RedshiftSourceConfig where+  rnf RedshiftSourceConfig' {..} =+    Prelude.rnf clusterIdentifier+      `Prelude.seq` Prelude.rnf databaseHost+      `Prelude.seq` Prelude.rnf databaseName+      `Prelude.seq` Prelude.rnf databasePort+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf secretManagerArn+      `Prelude.seq` Prelude.rnf tableName+      `Prelude.seq` Prelude.rnf vpcConfiguration++instance Data.ToJSON RedshiftSourceConfig where+  toJSON RedshiftSourceConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClusterIdentifier" Data..=)+              Prelude.<$> clusterIdentifier,+            ("DatabaseHost" Data..=) Prelude.<$> databaseHost,+            ("DatabaseName" Data..=) Prelude.<$> databaseName,+            ("DatabasePort" Data..=) Prelude.<$> databasePort,+            ("RoleArn" Data..=) Prelude.<$> roleArn,+            ("SecretManagerArn" Data..=)+              Prelude.<$> secretManagerArn,+            ("TableName" Data..=) Prelude.<$> tableName,+            ("VpcConfiguration" Data..=)+              Prelude.<$> vpcConfiguration+          ]+      )
+ gen/Amazonka/LookoutMetrics/Types/RelationshipType.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.LookoutMetrics.Types.RelationshipType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.RelationshipType+  ( RelationshipType+      ( ..,+        RelationshipType_CAUSE_OF_INPUT_ANOMALY_GROUP,+        RelationshipType_EFFECT_OF_INPUT_ANOMALY_GROUP+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype RelationshipType = RelationshipType'+  { fromRelationshipType ::+      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 RelationshipType_CAUSE_OF_INPUT_ANOMALY_GROUP :: RelationshipType+pattern RelationshipType_CAUSE_OF_INPUT_ANOMALY_GROUP = RelationshipType' "CAUSE_OF_INPUT_ANOMALY_GROUP"++pattern RelationshipType_EFFECT_OF_INPUT_ANOMALY_GROUP :: RelationshipType+pattern RelationshipType_EFFECT_OF_INPUT_ANOMALY_GROUP = RelationshipType' "EFFECT_OF_INPUT_ANOMALY_GROUP"++{-# COMPLETE+  RelationshipType_CAUSE_OF_INPUT_ANOMALY_GROUP,+  RelationshipType_EFFECT_OF_INPUT_ANOMALY_GROUP,+  RelationshipType'+  #-}
+ gen/Amazonka/LookoutMetrics/Types/S3SourceConfig.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.LookoutMetrics.Types.S3SourceConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.S3SourceConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.FileFormatDescriptor+import qualified Amazonka.Prelude as Prelude++-- | Contains information about the configuration of the S3 bucket that+-- contains source files.+--+-- /See:/ 'newS3SourceConfig' smart constructor.+data S3SourceConfig = S3SourceConfig'+  { -- | Contains information about a source file\'s formatting.+    fileFormatDescriptor :: Prelude.Maybe FileFormatDescriptor,+    -- | A list of paths to the historical data files.+    historicalDataPathList :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The ARN of an IAM role that has read and write access permissions to the+    -- source S3 bucket.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | A list of templated paths to the source files.+    templatedPathList :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3SourceConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fileFormatDescriptor', 's3SourceConfig_fileFormatDescriptor' - Contains information about a source file\'s formatting.+--+-- 'historicalDataPathList', 's3SourceConfig_historicalDataPathList' - A list of paths to the historical data files.+--+-- 'roleArn', 's3SourceConfig_roleArn' - The ARN of an IAM role that has read and write access permissions to the+-- source S3 bucket.+--+-- 'templatedPathList', 's3SourceConfig_templatedPathList' - A list of templated paths to the source files.+newS3SourceConfig ::+  S3SourceConfig+newS3SourceConfig =+  S3SourceConfig'+    { fileFormatDescriptor =+        Prelude.Nothing,+      historicalDataPathList = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      templatedPathList = Prelude.Nothing+    }++-- | Contains information about a source file\'s formatting.+s3SourceConfig_fileFormatDescriptor :: Lens.Lens' S3SourceConfig (Prelude.Maybe FileFormatDescriptor)+s3SourceConfig_fileFormatDescriptor = Lens.lens (\S3SourceConfig' {fileFormatDescriptor} -> fileFormatDescriptor) (\s@S3SourceConfig' {} a -> s {fileFormatDescriptor = a} :: S3SourceConfig)++-- | A list of paths to the historical data files.+s3SourceConfig_historicalDataPathList :: Lens.Lens' S3SourceConfig (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+s3SourceConfig_historicalDataPathList = Lens.lens (\S3SourceConfig' {historicalDataPathList} -> historicalDataPathList) (\s@S3SourceConfig' {} a -> s {historicalDataPathList = a} :: S3SourceConfig) Prelude.. Lens.mapping Lens.coerced++-- | The ARN of an IAM role that has read and write access permissions to the+-- source S3 bucket.+s3SourceConfig_roleArn :: Lens.Lens' S3SourceConfig (Prelude.Maybe Prelude.Text)+s3SourceConfig_roleArn = Lens.lens (\S3SourceConfig' {roleArn} -> roleArn) (\s@S3SourceConfig' {} a -> s {roleArn = a} :: S3SourceConfig)++-- | A list of templated paths to the source files.+s3SourceConfig_templatedPathList :: Lens.Lens' S3SourceConfig (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+s3SourceConfig_templatedPathList = Lens.lens (\S3SourceConfig' {templatedPathList} -> templatedPathList) (\s@S3SourceConfig' {} a -> s {templatedPathList = a} :: S3SourceConfig) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON S3SourceConfig where+  parseJSON =+    Data.withObject+      "S3SourceConfig"+      ( \x ->+          S3SourceConfig'+            Prelude.<$> (x Data..:? "FileFormatDescriptor")+            Prelude.<*> (x Data..:? "HistoricalDataPathList")+            Prelude.<*> (x Data..:? "RoleArn")+            Prelude.<*> (x Data..:? "TemplatedPathList")+      )++instance Prelude.Hashable S3SourceConfig where+  hashWithSalt _salt S3SourceConfig' {..} =+    _salt+      `Prelude.hashWithSalt` fileFormatDescriptor+      `Prelude.hashWithSalt` historicalDataPathList+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` templatedPathList++instance Prelude.NFData S3SourceConfig where+  rnf S3SourceConfig' {..} =+    Prelude.rnf fileFormatDescriptor+      `Prelude.seq` Prelude.rnf historicalDataPathList+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf templatedPathList++instance Data.ToJSON S3SourceConfig where+  toJSON S3SourceConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("FileFormatDescriptor" Data..=)+              Prelude.<$> fileFormatDescriptor,+            ("HistoricalDataPathList" Data..=)+              Prelude.<$> historicalDataPathList,+            ("RoleArn" Data..=) Prelude.<$> roleArn,+            ("TemplatedPathList" Data..=)+              Prelude.<$> templatedPathList+          ]+      )
+ gen/Amazonka/LookoutMetrics/Types/SNSConfiguration.hs view
@@ -0,0 +1,142 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.Types.SNSConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.SNSConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.SnsFormat+import qualified Amazonka.Prelude as Prelude++-- | Contains information about the SNS topic to which you want to send your+-- alerts and the IAM role that has access to that topic.+--+-- /See:/ 'newSNSConfiguration' smart constructor.+data SNSConfiguration = SNSConfiguration'+  { -- | The format of the SNS topic.+    --+    -- -   @JSON@ – Send JSON alerts with an anomaly ID and a link to the+    --     anomaly detail page. This is the default.+    --+    -- -   @LONG_TEXT@ – Send human-readable alerts with information about the+    --     impacted timeseries and a link to the anomaly detail page. We+    --     recommend this for email.+    --+    -- -   @SHORT_TEXT@ – Send human-readable alerts with a link to the anomaly+    --     detail page. We recommend this for SMS.+    snsFormat :: Prelude.Maybe SnsFormat,+    -- | The ARN of the IAM role that has access to the target SNS topic.+    roleArn :: Prelude.Text,+    -- | The ARN of the target SNS topic.+    snsTopicArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SNSConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'snsFormat', 'sNSConfiguration_snsFormat' - The format of the SNS topic.+--+-- -   @JSON@ – Send JSON alerts with an anomaly ID and a link to the+--     anomaly detail page. This is the default.+--+-- -   @LONG_TEXT@ – Send human-readable alerts with information about the+--     impacted timeseries and a link to the anomaly detail page. We+--     recommend this for email.+--+-- -   @SHORT_TEXT@ – Send human-readable alerts with a link to the anomaly+--     detail page. We recommend this for SMS.+--+-- 'roleArn', 'sNSConfiguration_roleArn' - The ARN of the IAM role that has access to the target SNS topic.+--+-- 'snsTopicArn', 'sNSConfiguration_snsTopicArn' - The ARN of the target SNS topic.+newSNSConfiguration ::+  -- | 'roleArn'+  Prelude.Text ->+  -- | 'snsTopicArn'+  Prelude.Text ->+  SNSConfiguration+newSNSConfiguration pRoleArn_ pSnsTopicArn_ =+  SNSConfiguration'+    { snsFormat = Prelude.Nothing,+      roleArn = pRoleArn_,+      snsTopicArn = pSnsTopicArn_+    }++-- | The format of the SNS topic.+--+-- -   @JSON@ – Send JSON alerts with an anomaly ID and a link to the+--     anomaly detail page. This is the default.+--+-- -   @LONG_TEXT@ – Send human-readable alerts with information about the+--     impacted timeseries and a link to the anomaly detail page. We+--     recommend this for email.+--+-- -   @SHORT_TEXT@ – Send human-readable alerts with a link to the anomaly+--     detail page. We recommend this for SMS.+sNSConfiguration_snsFormat :: Lens.Lens' SNSConfiguration (Prelude.Maybe SnsFormat)+sNSConfiguration_snsFormat = Lens.lens (\SNSConfiguration' {snsFormat} -> snsFormat) (\s@SNSConfiguration' {} a -> s {snsFormat = a} :: SNSConfiguration)++-- | The ARN of the IAM role that has access to the target SNS topic.+sNSConfiguration_roleArn :: Lens.Lens' SNSConfiguration Prelude.Text+sNSConfiguration_roleArn = Lens.lens (\SNSConfiguration' {roleArn} -> roleArn) (\s@SNSConfiguration' {} a -> s {roleArn = a} :: SNSConfiguration)++-- | The ARN of the target SNS topic.+sNSConfiguration_snsTopicArn :: Lens.Lens' SNSConfiguration Prelude.Text+sNSConfiguration_snsTopicArn = Lens.lens (\SNSConfiguration' {snsTopicArn} -> snsTopicArn) (\s@SNSConfiguration' {} a -> s {snsTopicArn = a} :: SNSConfiguration)++instance Data.FromJSON SNSConfiguration where+  parseJSON =+    Data.withObject+      "SNSConfiguration"+      ( \x ->+          SNSConfiguration'+            Prelude.<$> (x Data..:? "SnsFormat")+            Prelude.<*> (x Data..: "RoleArn")+            Prelude.<*> (x Data..: "SnsTopicArn")+      )++instance Prelude.Hashable SNSConfiguration where+  hashWithSalt _salt SNSConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` snsFormat+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` snsTopicArn++instance Prelude.NFData SNSConfiguration where+  rnf SNSConfiguration' {..} =+    Prelude.rnf snsFormat+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf snsTopicArn++instance Data.ToJSON SNSConfiguration where+  toJSON SNSConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("SnsFormat" Data..=) Prelude.<$> snsFormat,+            Prelude.Just ("RoleArn" Data..= roleArn),+            Prelude.Just ("SnsTopicArn" Data..= snsTopicArn)+          ]+      )
+ gen/Amazonka/LookoutMetrics/Types/SampleDataS3SourceConfig.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.LookoutMetrics.Types.SampleDataS3SourceConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.SampleDataS3SourceConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.FileFormatDescriptor+import qualified Amazonka.Prelude as Prelude++-- | Contains information about the source configuration in Amazon S3.+--+-- /See:/ 'newSampleDataS3SourceConfig' smart constructor.+data SampleDataS3SourceConfig = SampleDataS3SourceConfig'+  { -- | An array of strings containing the historical set of data paths.+    historicalDataPathList :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | An array of strings containing the list of templated paths.+    templatedPathList :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The Amazon Resource Name (ARN) of the role.+    roleArn :: Prelude.Text,+    fileFormatDescriptor :: FileFormatDescriptor+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SampleDataS3SourceConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'historicalDataPathList', 'sampleDataS3SourceConfig_historicalDataPathList' - An array of strings containing the historical set of data paths.+--+-- 'templatedPathList', 'sampleDataS3SourceConfig_templatedPathList' - An array of strings containing the list of templated paths.+--+-- 'roleArn', 'sampleDataS3SourceConfig_roleArn' - The Amazon Resource Name (ARN) of the role.+--+-- 'fileFormatDescriptor', 'sampleDataS3SourceConfig_fileFormatDescriptor' - Undocumented member.+newSampleDataS3SourceConfig ::+  -- | 'roleArn'+  Prelude.Text ->+  -- | 'fileFormatDescriptor'+  FileFormatDescriptor ->+  SampleDataS3SourceConfig+newSampleDataS3SourceConfig+  pRoleArn_+  pFileFormatDescriptor_ =+    SampleDataS3SourceConfig'+      { historicalDataPathList =+          Prelude.Nothing,+        templatedPathList = Prelude.Nothing,+        roleArn = pRoleArn_,+        fileFormatDescriptor = pFileFormatDescriptor_+      }++-- | An array of strings containing the historical set of data paths.+sampleDataS3SourceConfig_historicalDataPathList :: Lens.Lens' SampleDataS3SourceConfig (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+sampleDataS3SourceConfig_historicalDataPathList = Lens.lens (\SampleDataS3SourceConfig' {historicalDataPathList} -> historicalDataPathList) (\s@SampleDataS3SourceConfig' {} a -> s {historicalDataPathList = a} :: SampleDataS3SourceConfig) Prelude.. Lens.mapping Lens.coerced++-- | An array of strings containing the list of templated paths.+sampleDataS3SourceConfig_templatedPathList :: Lens.Lens' SampleDataS3SourceConfig (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+sampleDataS3SourceConfig_templatedPathList = Lens.lens (\SampleDataS3SourceConfig' {templatedPathList} -> templatedPathList) (\s@SampleDataS3SourceConfig' {} a -> s {templatedPathList = a} :: SampleDataS3SourceConfig) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the role.+sampleDataS3SourceConfig_roleArn :: Lens.Lens' SampleDataS3SourceConfig Prelude.Text+sampleDataS3SourceConfig_roleArn = Lens.lens (\SampleDataS3SourceConfig' {roleArn} -> roleArn) (\s@SampleDataS3SourceConfig' {} a -> s {roleArn = a} :: SampleDataS3SourceConfig)++-- | Undocumented member.+sampleDataS3SourceConfig_fileFormatDescriptor :: Lens.Lens' SampleDataS3SourceConfig FileFormatDescriptor+sampleDataS3SourceConfig_fileFormatDescriptor = Lens.lens (\SampleDataS3SourceConfig' {fileFormatDescriptor} -> fileFormatDescriptor) (\s@SampleDataS3SourceConfig' {} a -> s {fileFormatDescriptor = a} :: SampleDataS3SourceConfig)++instance Prelude.Hashable SampleDataS3SourceConfig where+  hashWithSalt _salt SampleDataS3SourceConfig' {..} =+    _salt+      `Prelude.hashWithSalt` historicalDataPathList+      `Prelude.hashWithSalt` templatedPathList+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` fileFormatDescriptor++instance Prelude.NFData SampleDataS3SourceConfig where+  rnf SampleDataS3SourceConfig' {..} =+    Prelude.rnf historicalDataPathList+      `Prelude.seq` Prelude.rnf templatedPathList+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf fileFormatDescriptor++instance Data.ToJSON SampleDataS3SourceConfig where+  toJSON SampleDataS3SourceConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("HistoricalDataPathList" Data..=)+              Prelude.<$> historicalDataPathList,+            ("TemplatedPathList" Data..=)+              Prelude.<$> templatedPathList,+            Prelude.Just ("RoleArn" Data..= roleArn),+            Prelude.Just+              ( "FileFormatDescriptor"+                  Data..= fileFormatDescriptor+              )+          ]+      )
+ gen/Amazonka/LookoutMetrics/Types/SnsFormat.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.LookoutMetrics.Types.SnsFormat+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.SnsFormat+  ( SnsFormat+      ( ..,+        SnsFormat_JSON,+        SnsFormat_LONG_TEXT,+        SnsFormat_SHORT_TEXT+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SnsFormat = SnsFormat'+  { fromSnsFormat ::+      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 SnsFormat_JSON :: SnsFormat+pattern SnsFormat_JSON = SnsFormat' "JSON"++pattern SnsFormat_LONG_TEXT :: SnsFormat+pattern SnsFormat_LONG_TEXT = SnsFormat' "LONG_TEXT"++pattern SnsFormat_SHORT_TEXT :: SnsFormat+pattern SnsFormat_SHORT_TEXT = SnsFormat' "SHORT_TEXT"++{-# COMPLETE+  SnsFormat_JSON,+  SnsFormat_LONG_TEXT,+  SnsFormat_SHORT_TEXT,+  SnsFormat'+  #-}
+ gen/Amazonka/LookoutMetrics/Types/TimeSeries.hs view
@@ -0,0 +1,104 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.Types.TimeSeries+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.TimeSeries where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types.DimensionNameValue+import qualified Amazonka.Prelude as Prelude++-- | Details about a metric. A metric is an aggregation of the values of a+-- measure for a dimension value, such as /availability/ in the /us-east-1/+-- Region.+--+-- /See:/ 'newTimeSeries' smart constructor.+data TimeSeries = TimeSeries'+  { -- | The ID of the metric.+    timeSeriesId :: Prelude.Text,+    -- | The dimensions of the metric.+    dimensionList :: [DimensionNameValue],+    -- | The values for the metric.+    metricValueList :: [Prelude.Double]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TimeSeries' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'timeSeriesId', 'timeSeries_timeSeriesId' - The ID of the metric.+--+-- 'dimensionList', 'timeSeries_dimensionList' - The dimensions of the metric.+--+-- 'metricValueList', 'timeSeries_metricValueList' - The values for the metric.+newTimeSeries ::+  -- | 'timeSeriesId'+  Prelude.Text ->+  TimeSeries+newTimeSeries pTimeSeriesId_ =+  TimeSeries'+    { timeSeriesId = pTimeSeriesId_,+      dimensionList = Prelude.mempty,+      metricValueList = Prelude.mempty+    }++-- | The ID of the metric.+timeSeries_timeSeriesId :: Lens.Lens' TimeSeries Prelude.Text+timeSeries_timeSeriesId = Lens.lens (\TimeSeries' {timeSeriesId} -> timeSeriesId) (\s@TimeSeries' {} a -> s {timeSeriesId = a} :: TimeSeries)++-- | The dimensions of the metric.+timeSeries_dimensionList :: Lens.Lens' TimeSeries [DimensionNameValue]+timeSeries_dimensionList = Lens.lens (\TimeSeries' {dimensionList} -> dimensionList) (\s@TimeSeries' {} a -> s {dimensionList = a} :: TimeSeries) Prelude.. Lens.coerced++-- | The values for the metric.+timeSeries_metricValueList :: Lens.Lens' TimeSeries [Prelude.Double]+timeSeries_metricValueList = Lens.lens (\TimeSeries' {metricValueList} -> metricValueList) (\s@TimeSeries' {} a -> s {metricValueList = a} :: TimeSeries) Prelude.. Lens.coerced++instance Data.FromJSON TimeSeries where+  parseJSON =+    Data.withObject+      "TimeSeries"+      ( \x ->+          TimeSeries'+            Prelude.<$> (x Data..: "TimeSeriesId")+            Prelude.<*> (x Data..:? "DimensionList" Data..!= Prelude.mempty)+            Prelude.<*> ( x+                            Data..:? "MetricValueList"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable TimeSeries where+  hashWithSalt _salt TimeSeries' {..} =+    _salt+      `Prelude.hashWithSalt` timeSeriesId+      `Prelude.hashWithSalt` dimensionList+      `Prelude.hashWithSalt` metricValueList++instance Prelude.NFData TimeSeries where+  rnf TimeSeries' {..} =+    Prelude.rnf timeSeriesId+      `Prelude.seq` Prelude.rnf dimensionList+      `Prelude.seq` Prelude.rnf metricValueList
+ gen/Amazonka/LookoutMetrics/Types/TimeSeriesFeedback.hs view
@@ -0,0 +1,84 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.Types.TimeSeriesFeedback+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.TimeSeriesFeedback 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++-- | Details about feedback submitted for an anomalous metric.+--+-- /See:/ 'newTimeSeriesFeedback' smart constructor.+data TimeSeriesFeedback = TimeSeriesFeedback'+  { -- | Feedback on whether the metric is a legitimate anomaly.+    isAnomaly :: Prelude.Maybe Prelude.Bool,+    -- | The ID of the metric.+    timeSeriesId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TimeSeriesFeedback' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'isAnomaly', 'timeSeriesFeedback_isAnomaly' - Feedback on whether the metric is a legitimate anomaly.+--+-- 'timeSeriesId', 'timeSeriesFeedback_timeSeriesId' - The ID of the metric.+newTimeSeriesFeedback ::+  TimeSeriesFeedback+newTimeSeriesFeedback =+  TimeSeriesFeedback'+    { isAnomaly = Prelude.Nothing,+      timeSeriesId = Prelude.Nothing+    }++-- | Feedback on whether the metric is a legitimate anomaly.+timeSeriesFeedback_isAnomaly :: Lens.Lens' TimeSeriesFeedback (Prelude.Maybe Prelude.Bool)+timeSeriesFeedback_isAnomaly = Lens.lens (\TimeSeriesFeedback' {isAnomaly} -> isAnomaly) (\s@TimeSeriesFeedback' {} a -> s {isAnomaly = a} :: TimeSeriesFeedback)++-- | The ID of the metric.+timeSeriesFeedback_timeSeriesId :: Lens.Lens' TimeSeriesFeedback (Prelude.Maybe Prelude.Text)+timeSeriesFeedback_timeSeriesId = Lens.lens (\TimeSeriesFeedback' {timeSeriesId} -> timeSeriesId) (\s@TimeSeriesFeedback' {} a -> s {timeSeriesId = a} :: TimeSeriesFeedback)++instance Data.FromJSON TimeSeriesFeedback where+  parseJSON =+    Data.withObject+      "TimeSeriesFeedback"+      ( \x ->+          TimeSeriesFeedback'+            Prelude.<$> (x Data..:? "IsAnomaly")+            Prelude.<*> (x Data..:? "TimeSeriesId")+      )++instance Prelude.Hashable TimeSeriesFeedback where+  hashWithSalt _salt TimeSeriesFeedback' {..} =+    _salt+      `Prelude.hashWithSalt` isAnomaly+      `Prelude.hashWithSalt` timeSeriesId++instance Prelude.NFData TimeSeriesFeedback where+  rnf TimeSeriesFeedback' {..} =+    Prelude.rnf isAnomaly+      `Prelude.seq` Prelude.rnf timeSeriesId
+ gen/Amazonka/LookoutMetrics/Types/TimestampColumn.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.LookoutMetrics.Types.TimestampColumn+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.TimestampColumn 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 column used to track time in a source+-- data file.+--+-- /See:/ 'newTimestampColumn' smart constructor.+data TimestampColumn = TimestampColumn'+  { -- | The format of the timestamp column.+    columnFormat :: Prelude.Maybe Prelude.Text,+    -- | The name of the timestamp column.+    columnName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TimestampColumn' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'columnFormat', 'timestampColumn_columnFormat' - The format of the timestamp column.+--+-- 'columnName', 'timestampColumn_columnName' - The name of the timestamp column.+newTimestampColumn ::+  TimestampColumn+newTimestampColumn =+  TimestampColumn'+    { columnFormat = Prelude.Nothing,+      columnName = Prelude.Nothing+    }++-- | The format of the timestamp column.+timestampColumn_columnFormat :: Lens.Lens' TimestampColumn (Prelude.Maybe Prelude.Text)+timestampColumn_columnFormat = Lens.lens (\TimestampColumn' {columnFormat} -> columnFormat) (\s@TimestampColumn' {} a -> s {columnFormat = a} :: TimestampColumn)++-- | The name of the timestamp column.+timestampColumn_columnName :: Lens.Lens' TimestampColumn (Prelude.Maybe Prelude.Text)+timestampColumn_columnName = Lens.lens (\TimestampColumn' {columnName} -> columnName) (\s@TimestampColumn' {} a -> s {columnName = a} :: TimestampColumn)++instance Data.FromJSON TimestampColumn where+  parseJSON =+    Data.withObject+      "TimestampColumn"+      ( \x ->+          TimestampColumn'+            Prelude.<$> (x Data..:? "ColumnFormat")+            Prelude.<*> (x Data..:? "ColumnName")+      )++instance Prelude.Hashable TimestampColumn where+  hashWithSalt _salt TimestampColumn' {..} =+    _salt+      `Prelude.hashWithSalt` columnFormat+      `Prelude.hashWithSalt` columnName++instance Prelude.NFData TimestampColumn where+  rnf TimestampColumn' {..} =+    Prelude.rnf columnFormat+      `Prelude.seq` Prelude.rnf columnName++instance Data.ToJSON TimestampColumn where+  toJSON TimestampColumn' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ColumnFormat" Data..=) Prelude.<$> columnFormat,+            ("ColumnName" Data..=) Prelude.<$> columnName+          ]+      )
+ gen/Amazonka/LookoutMetrics/Types/VpcConfiguration.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.LookoutMetrics.Types.VpcConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutMetrics.Types.VpcConfiguration 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 configuration information about the Amazon Virtual Private+-- Cloud (VPC).+--+-- /See:/ 'newVpcConfiguration' smart constructor.+data VpcConfiguration = VpcConfiguration'+  { -- | An array of strings containing the Amazon VPC subnet IDs (e.g.,+    -- @subnet-0bb1c79de3EXAMPLE@.+    subnetIdList :: [Prelude.Text],+    -- | An array of strings containing the list of security groups.+    securityGroupIdList :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VpcConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'subnetIdList', 'vpcConfiguration_subnetIdList' - An array of strings containing the Amazon VPC subnet IDs (e.g.,+-- @subnet-0bb1c79de3EXAMPLE@.+--+-- 'securityGroupIdList', 'vpcConfiguration_securityGroupIdList' - An array of strings containing the list of security groups.+newVpcConfiguration ::+  VpcConfiguration+newVpcConfiguration =+  VpcConfiguration'+    { subnetIdList = Prelude.mempty,+      securityGroupIdList = Prelude.mempty+    }++-- | An array of strings containing the Amazon VPC subnet IDs (e.g.,+-- @subnet-0bb1c79de3EXAMPLE@.+vpcConfiguration_subnetIdList :: Lens.Lens' VpcConfiguration [Prelude.Text]+vpcConfiguration_subnetIdList = Lens.lens (\VpcConfiguration' {subnetIdList} -> subnetIdList) (\s@VpcConfiguration' {} a -> s {subnetIdList = a} :: VpcConfiguration) Prelude.. Lens.coerced++-- | An array of strings containing the list of security groups.+vpcConfiguration_securityGroupIdList :: Lens.Lens' VpcConfiguration [Prelude.Text]+vpcConfiguration_securityGroupIdList = Lens.lens (\VpcConfiguration' {securityGroupIdList} -> securityGroupIdList) (\s@VpcConfiguration' {} a -> s {securityGroupIdList = a} :: VpcConfiguration) Prelude.. Lens.coerced++instance Data.FromJSON VpcConfiguration where+  parseJSON =+    Data.withObject+      "VpcConfiguration"+      ( \x ->+          VpcConfiguration'+            Prelude.<$> (x Data..:? "SubnetIdList" Data..!= Prelude.mempty)+            Prelude.<*> ( x+                            Data..:? "SecurityGroupIdList"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable VpcConfiguration where+  hashWithSalt _salt VpcConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` subnetIdList+      `Prelude.hashWithSalt` securityGroupIdList++instance Prelude.NFData VpcConfiguration where+  rnf VpcConfiguration' {..} =+    Prelude.rnf subnetIdList+      `Prelude.seq` Prelude.rnf securityGroupIdList++instance Data.ToJSON VpcConfiguration where+  toJSON VpcConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("SubnetIdList" Data..= subnetIdList),+            Prelude.Just+              ("SecurityGroupIdList" Data..= securityGroupIdList)+          ]+      )
+ gen/Amazonka/LookoutMetrics/UntagResource.hs view
@@ -0,0 +1,165 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutMetrics.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+-- <https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html tags>+-- from a detector, dataset, or alert.+module Amazonka.LookoutMetrics.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.LookoutMetrics.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 resource\'s Amazon Resource Name (ARN).+    resourceArn :: Prelude.Text,+    -- | Keys to remove from the resource\'s tags.+    tagKeys :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'untagResource_resourceArn' - The resource\'s Amazon Resource Name (ARN).+--+-- 'tagKeys', 'untagResource_tagKeys' - Keys to remove from the resource\'s tags.+newUntagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  -- | 'tagKeys'+  Prelude.NonEmpty Prelude.Text ->+  UntagResource+newUntagResource pResourceArn_ pTagKeys_ =+  UntagResource'+    { resourceArn = pResourceArn_,+      tagKeys = Lens.coerced Lens.# pTagKeys_+    }++-- | The resource\'s Amazon Resource Name (ARN).+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | Keys to remove from the resource\'s tags.+untagResource_tagKeys :: Lens.Lens' UntagResource (Prelude.NonEmpty Prelude.Text)+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++instance Core.AWSRequest UntagResource where+  type+    AWSResponse UntagResource =+      UntagResourceResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UntagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UntagResource where+  hashWithSalt _salt UntagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+  rnf UntagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath UntagResource where+  toPath UntagResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery UntagResource where+  toQuery UntagResource' {..} =+    Prelude.mconcat+      ["tagKeys" Data.=: Data.toQueryList "member" tagKeys]++-- | /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'untagResourceResponse_httpStatus' - The response's http status code.+newUntagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UntagResourceResponse+newUntagResourceResponse pHttpStatus_ =+  UntagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+untagResourceResponse_httpStatus :: Lens.Lens' UntagResourceResponse Prelude.Int+untagResourceResponse_httpStatus = Lens.lens (\UntagResourceResponse' {httpStatus} -> httpStatus) (\s@UntagResourceResponse' {} a -> s {httpStatus = a} :: UntagResourceResponse)++instance Prelude.NFData UntagResourceResponse where+  rnf UntagResourceResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/UpdateAlert.hs view
@@ -0,0 +1,223 @@+{-# 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.LookoutMetrics.UpdateAlert+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Make changes to an existing alert.+module Amazonka.LookoutMetrics.UpdateAlert+  ( -- * Creating a Request+    UpdateAlert (..),+    newUpdateAlert,++    -- * Request Lenses+    updateAlert_action,+    updateAlert_alertDescription,+    updateAlert_alertFilters,+    updateAlert_alertSensitivityThreshold,+    updateAlert_alertArn,++    -- * Destructuring the Response+    UpdateAlertResponse (..),+    newUpdateAlertResponse,++    -- * Response Lenses+    updateAlertResponse_alertArn,+    updateAlertResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateAlert' smart constructor.+data UpdateAlert = UpdateAlert'+  { -- | Action that will be triggered when there is an alert.+    action :: Prelude.Maybe Action,+    -- | A description of the alert.+    alertDescription :: Prelude.Maybe Prelude.Text,+    -- | The configuration of the alert filters, containing MetricList and+    -- DimensionFilterList.+    alertFilters :: Prelude.Maybe AlertFilters,+    -- | An integer from 0 to 100 specifying the alert sensitivity threshold.+    alertSensitivityThreshold :: Prelude.Maybe Prelude.Natural,+    -- | The ARN of the alert to update.+    alertArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAlert' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'action', 'updateAlert_action' - Action that will be triggered when there is an alert.+--+-- 'alertDescription', 'updateAlert_alertDescription' - A description of the alert.+--+-- 'alertFilters', 'updateAlert_alertFilters' - The configuration of the alert filters, containing MetricList and+-- DimensionFilterList.+--+-- 'alertSensitivityThreshold', 'updateAlert_alertSensitivityThreshold' - An integer from 0 to 100 specifying the alert sensitivity threshold.+--+-- 'alertArn', 'updateAlert_alertArn' - The ARN of the alert to update.+newUpdateAlert ::+  -- | 'alertArn'+  Prelude.Text ->+  UpdateAlert+newUpdateAlert pAlertArn_ =+  UpdateAlert'+    { action = Prelude.Nothing,+      alertDescription = Prelude.Nothing,+      alertFilters = Prelude.Nothing,+      alertSensitivityThreshold = Prelude.Nothing,+      alertArn = pAlertArn_+    }++-- | Action that will be triggered when there is an alert.+updateAlert_action :: Lens.Lens' UpdateAlert (Prelude.Maybe Action)+updateAlert_action = Lens.lens (\UpdateAlert' {action} -> action) (\s@UpdateAlert' {} a -> s {action = a} :: UpdateAlert)++-- | A description of the alert.+updateAlert_alertDescription :: Lens.Lens' UpdateAlert (Prelude.Maybe Prelude.Text)+updateAlert_alertDescription = Lens.lens (\UpdateAlert' {alertDescription} -> alertDescription) (\s@UpdateAlert' {} a -> s {alertDescription = a} :: UpdateAlert)++-- | The configuration of the alert filters, containing MetricList and+-- DimensionFilterList.+updateAlert_alertFilters :: Lens.Lens' UpdateAlert (Prelude.Maybe AlertFilters)+updateAlert_alertFilters = Lens.lens (\UpdateAlert' {alertFilters} -> alertFilters) (\s@UpdateAlert' {} a -> s {alertFilters = a} :: UpdateAlert)++-- | An integer from 0 to 100 specifying the alert sensitivity threshold.+updateAlert_alertSensitivityThreshold :: Lens.Lens' UpdateAlert (Prelude.Maybe Prelude.Natural)+updateAlert_alertSensitivityThreshold = Lens.lens (\UpdateAlert' {alertSensitivityThreshold} -> alertSensitivityThreshold) (\s@UpdateAlert' {} a -> s {alertSensitivityThreshold = a} :: UpdateAlert)++-- | The ARN of the alert to update.+updateAlert_alertArn :: Lens.Lens' UpdateAlert Prelude.Text+updateAlert_alertArn = Lens.lens (\UpdateAlert' {alertArn} -> alertArn) (\s@UpdateAlert' {} a -> s {alertArn = a} :: UpdateAlert)++instance Core.AWSRequest UpdateAlert where+  type AWSResponse UpdateAlert = UpdateAlertResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateAlertResponse'+            Prelude.<$> (x Data..?> "AlertArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateAlert where+  hashWithSalt _salt UpdateAlert' {..} =+    _salt+      `Prelude.hashWithSalt` action+      `Prelude.hashWithSalt` alertDescription+      `Prelude.hashWithSalt` alertFilters+      `Prelude.hashWithSalt` alertSensitivityThreshold+      `Prelude.hashWithSalt` alertArn++instance Prelude.NFData UpdateAlert where+  rnf UpdateAlert' {..} =+    Prelude.rnf action+      `Prelude.seq` Prelude.rnf alertDescription+      `Prelude.seq` Prelude.rnf alertFilters+      `Prelude.seq` Prelude.rnf alertSensitivityThreshold+      `Prelude.seq` Prelude.rnf alertArn++instance Data.ToHeaders UpdateAlert where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateAlert where+  toJSON UpdateAlert' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Action" Data..=) Prelude.<$> action,+            ("AlertDescription" Data..=)+              Prelude.<$> alertDescription,+            ("AlertFilters" Data..=) Prelude.<$> alertFilters,+            ("AlertSensitivityThreshold" Data..=)+              Prelude.<$> alertSensitivityThreshold,+            Prelude.Just ("AlertArn" Data..= alertArn)+          ]+      )++instance Data.ToPath UpdateAlert where+  toPath = Prelude.const "/UpdateAlert"++instance Data.ToQuery UpdateAlert where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateAlertResponse' smart constructor.+data UpdateAlertResponse = UpdateAlertResponse'+  { -- | The ARN of the updated alert.+    alertArn :: 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 'UpdateAlertResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'alertArn', 'updateAlertResponse_alertArn' - The ARN of the updated alert.+--+-- 'httpStatus', 'updateAlertResponse_httpStatus' - The response's http status code.+newUpdateAlertResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateAlertResponse+newUpdateAlertResponse pHttpStatus_ =+  UpdateAlertResponse'+    { alertArn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the updated alert.+updateAlertResponse_alertArn :: Lens.Lens' UpdateAlertResponse (Prelude.Maybe Prelude.Text)+updateAlertResponse_alertArn = Lens.lens (\UpdateAlertResponse' {alertArn} -> alertArn) (\s@UpdateAlertResponse' {} a -> s {alertArn = a} :: UpdateAlertResponse)++-- | The response's http status code.+updateAlertResponse_httpStatus :: Lens.Lens' UpdateAlertResponse Prelude.Int+updateAlertResponse_httpStatus = Lens.lens (\UpdateAlertResponse' {httpStatus} -> httpStatus) (\s@UpdateAlertResponse' {} a -> s {httpStatus = a} :: UpdateAlertResponse)++instance Prelude.NFData UpdateAlertResponse where+  rnf UpdateAlertResponse' {..} =+    Prelude.rnf alertArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/UpdateAnomalyDetector.hs view
@@ -0,0 +1,216 @@+{-# 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.LookoutMetrics.UpdateAnomalyDetector+-- 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. After activation, you can only change a detector\'s+-- ingestion delay and description.+module Amazonka.LookoutMetrics.UpdateAnomalyDetector+  ( -- * Creating a Request+    UpdateAnomalyDetector (..),+    newUpdateAnomalyDetector,++    -- * Request Lenses+    updateAnomalyDetector_anomalyDetectorConfig,+    updateAnomalyDetector_anomalyDetectorDescription,+    updateAnomalyDetector_kmsKeyArn,+    updateAnomalyDetector_anomalyDetectorArn,++    -- * Destructuring the Response+    UpdateAnomalyDetectorResponse (..),+    newUpdateAnomalyDetectorResponse,++    -- * Response Lenses+    updateAnomalyDetectorResponse_anomalyDetectorArn,+    updateAnomalyDetectorResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateAnomalyDetector' smart constructor.+data UpdateAnomalyDetector = UpdateAnomalyDetector'+  { -- | Contains information about the configuration to which the detector will+    -- be updated.+    anomalyDetectorConfig :: Prelude.Maybe AnomalyDetectorConfig,+    -- | The updated detector description.+    anomalyDetectorDescription :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of an AWS KMS encryption key.+    kmsKeyArn :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the detector to update.+    anomalyDetectorArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAnomalyDetector' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyDetectorConfig', 'updateAnomalyDetector_anomalyDetectorConfig' - Contains information about the configuration to which the detector will+-- be updated.+--+-- 'anomalyDetectorDescription', 'updateAnomalyDetector_anomalyDetectorDescription' - The updated detector description.+--+-- 'kmsKeyArn', 'updateAnomalyDetector_kmsKeyArn' - The Amazon Resource Name (ARN) of an AWS KMS encryption key.+--+-- 'anomalyDetectorArn', 'updateAnomalyDetector_anomalyDetectorArn' - The ARN of the detector to update.+newUpdateAnomalyDetector ::+  -- | 'anomalyDetectorArn'+  Prelude.Text ->+  UpdateAnomalyDetector+newUpdateAnomalyDetector pAnomalyDetectorArn_ =+  UpdateAnomalyDetector'+    { anomalyDetectorConfig =+        Prelude.Nothing,+      anomalyDetectorDescription = Prelude.Nothing,+      kmsKeyArn = Prelude.Nothing,+      anomalyDetectorArn = pAnomalyDetectorArn_+    }++-- | Contains information about the configuration to which the detector will+-- be updated.+updateAnomalyDetector_anomalyDetectorConfig :: Lens.Lens' UpdateAnomalyDetector (Prelude.Maybe AnomalyDetectorConfig)+updateAnomalyDetector_anomalyDetectorConfig = Lens.lens (\UpdateAnomalyDetector' {anomalyDetectorConfig} -> anomalyDetectorConfig) (\s@UpdateAnomalyDetector' {} a -> s {anomalyDetectorConfig = a} :: UpdateAnomalyDetector)++-- | The updated detector description.+updateAnomalyDetector_anomalyDetectorDescription :: Lens.Lens' UpdateAnomalyDetector (Prelude.Maybe Prelude.Text)+updateAnomalyDetector_anomalyDetectorDescription = Lens.lens (\UpdateAnomalyDetector' {anomalyDetectorDescription} -> anomalyDetectorDescription) (\s@UpdateAnomalyDetector' {} a -> s {anomalyDetectorDescription = a} :: UpdateAnomalyDetector)++-- | The Amazon Resource Name (ARN) of an AWS KMS encryption key.+updateAnomalyDetector_kmsKeyArn :: Lens.Lens' UpdateAnomalyDetector (Prelude.Maybe Prelude.Text)+updateAnomalyDetector_kmsKeyArn = Lens.lens (\UpdateAnomalyDetector' {kmsKeyArn} -> kmsKeyArn) (\s@UpdateAnomalyDetector' {} a -> s {kmsKeyArn = a} :: UpdateAnomalyDetector)++-- | The ARN of the detector to update.+updateAnomalyDetector_anomalyDetectorArn :: Lens.Lens' UpdateAnomalyDetector Prelude.Text+updateAnomalyDetector_anomalyDetectorArn = Lens.lens (\UpdateAnomalyDetector' {anomalyDetectorArn} -> anomalyDetectorArn) (\s@UpdateAnomalyDetector' {} a -> s {anomalyDetectorArn = a} :: UpdateAnomalyDetector)++instance Core.AWSRequest UpdateAnomalyDetector where+  type+    AWSResponse UpdateAnomalyDetector =+      UpdateAnomalyDetectorResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateAnomalyDetectorResponse'+            Prelude.<$> (x Data..?> "AnomalyDetectorArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateAnomalyDetector where+  hashWithSalt _salt UpdateAnomalyDetector' {..} =+    _salt+      `Prelude.hashWithSalt` anomalyDetectorConfig+      `Prelude.hashWithSalt` anomalyDetectorDescription+      `Prelude.hashWithSalt` kmsKeyArn+      `Prelude.hashWithSalt` anomalyDetectorArn++instance Prelude.NFData UpdateAnomalyDetector where+  rnf UpdateAnomalyDetector' {..} =+    Prelude.rnf anomalyDetectorConfig+      `Prelude.seq` Prelude.rnf anomalyDetectorDescription+      `Prelude.seq` Prelude.rnf kmsKeyArn+      `Prelude.seq` Prelude.rnf anomalyDetectorArn++instance Data.ToHeaders UpdateAnomalyDetector where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateAnomalyDetector where+  toJSON UpdateAnomalyDetector' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AnomalyDetectorConfig" Data..=)+              Prelude.<$> anomalyDetectorConfig,+            ("AnomalyDetectorDescription" Data..=)+              Prelude.<$> anomalyDetectorDescription,+            ("KmsKeyArn" Data..=) Prelude.<$> kmsKeyArn,+            Prelude.Just+              ("AnomalyDetectorArn" Data..= anomalyDetectorArn)+          ]+      )++instance Data.ToPath UpdateAnomalyDetector where+  toPath = Prelude.const "/UpdateAnomalyDetector"++instance Data.ToQuery UpdateAnomalyDetector where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateAnomalyDetectorResponse' smart constructor.+data UpdateAnomalyDetectorResponse = UpdateAnomalyDetectorResponse'+  { -- | The ARN of the updated detector.+    anomalyDetectorArn :: 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 'UpdateAnomalyDetectorResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyDetectorArn', 'updateAnomalyDetectorResponse_anomalyDetectorArn' - The ARN of the updated detector.+--+-- 'httpStatus', 'updateAnomalyDetectorResponse_httpStatus' - The response's http status code.+newUpdateAnomalyDetectorResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateAnomalyDetectorResponse+newUpdateAnomalyDetectorResponse pHttpStatus_ =+  UpdateAnomalyDetectorResponse'+    { anomalyDetectorArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the updated detector.+updateAnomalyDetectorResponse_anomalyDetectorArn :: Lens.Lens' UpdateAnomalyDetectorResponse (Prelude.Maybe Prelude.Text)+updateAnomalyDetectorResponse_anomalyDetectorArn = Lens.lens (\UpdateAnomalyDetectorResponse' {anomalyDetectorArn} -> anomalyDetectorArn) (\s@UpdateAnomalyDetectorResponse' {} a -> s {anomalyDetectorArn = a} :: UpdateAnomalyDetectorResponse)++-- | The response's http status code.+updateAnomalyDetectorResponse_httpStatus :: Lens.Lens' UpdateAnomalyDetectorResponse Prelude.Int+updateAnomalyDetectorResponse_httpStatus = Lens.lens (\UpdateAnomalyDetectorResponse' {httpStatus} -> httpStatus) (\s@UpdateAnomalyDetectorResponse' {} a -> s {httpStatus = a} :: UpdateAnomalyDetectorResponse)++instance Prelude.NFData UpdateAnomalyDetectorResponse where+  rnf UpdateAnomalyDetectorResponse' {..} =+    Prelude.rnf anomalyDetectorArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/UpdateMetricSet.hs view
@@ -0,0 +1,295 @@+{-# 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.LookoutMetrics.UpdateMetricSet+-- 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 dataset.+module Amazonka.LookoutMetrics.UpdateMetricSet+  ( -- * Creating a Request+    UpdateMetricSet (..),+    newUpdateMetricSet,++    -- * Request Lenses+    updateMetricSet_dimensionFilterList,+    updateMetricSet_dimensionList,+    updateMetricSet_metricList,+    updateMetricSet_metricSetDescription,+    updateMetricSet_metricSetFrequency,+    updateMetricSet_metricSource,+    updateMetricSet_offset,+    updateMetricSet_timestampColumn,+    updateMetricSet_metricSetArn,++    -- * Destructuring the Response+    UpdateMetricSetResponse (..),+    newUpdateMetricSetResponse,++    -- * Response Lenses+    updateMetricSetResponse_metricSetArn,+    updateMetricSetResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateMetricSet' smart constructor.+data UpdateMetricSet = UpdateMetricSet'+  { -- | Describes a list of filters for choosing specific dimensions and+    -- specific values. Each filter consists of the dimension and one of its+    -- values that you want to include. When multiple dimensions or values are+    -- specified, the dimensions are joined with an AND operation and the+    -- values are joined with an OR operation.+    dimensionFilterList :: Prelude.Maybe [MetricSetDimensionFilter],+    -- | The dimension list.+    dimensionList :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The metric list.+    metricList :: Prelude.Maybe (Prelude.NonEmpty Metric),+    -- | The dataset\'s description.+    metricSetDescription :: Prelude.Maybe Prelude.Text,+    -- | The dataset\'s interval.+    metricSetFrequency :: Prelude.Maybe Frequency,+    metricSource :: Prelude.Maybe MetricSource,+    -- | After an interval ends, the amount of seconds that the detector waits+    -- before importing data. Offset is only supported for S3, Redshift, Athena+    -- and datasources.+    offset :: Prelude.Maybe Prelude.Natural,+    -- | The timestamp column.+    timestampColumn :: Prelude.Maybe TimestampColumn,+    -- | The ARN of the dataset to update.+    metricSetArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateMetricSet' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dimensionFilterList', 'updateMetricSet_dimensionFilterList' - Describes a list of filters for choosing specific dimensions and+-- specific values. Each filter consists of the dimension and one of its+-- values that you want to include. When multiple dimensions or values are+-- specified, the dimensions are joined with an AND operation and the+-- values are joined with an OR operation.+--+-- 'dimensionList', 'updateMetricSet_dimensionList' - The dimension list.+--+-- 'metricList', 'updateMetricSet_metricList' - The metric list.+--+-- 'metricSetDescription', 'updateMetricSet_metricSetDescription' - The dataset\'s description.+--+-- 'metricSetFrequency', 'updateMetricSet_metricSetFrequency' - The dataset\'s interval.+--+-- 'metricSource', 'updateMetricSet_metricSource' - Undocumented member.+--+-- 'offset', 'updateMetricSet_offset' - After an interval ends, the amount of seconds that the detector waits+-- before importing data. Offset is only supported for S3, Redshift, Athena+-- and datasources.+--+-- 'timestampColumn', 'updateMetricSet_timestampColumn' - The timestamp column.+--+-- 'metricSetArn', 'updateMetricSet_metricSetArn' - The ARN of the dataset to update.+newUpdateMetricSet ::+  -- | 'metricSetArn'+  Prelude.Text ->+  UpdateMetricSet+newUpdateMetricSet pMetricSetArn_ =+  UpdateMetricSet'+    { dimensionFilterList =+        Prelude.Nothing,+      dimensionList = Prelude.Nothing,+      metricList = Prelude.Nothing,+      metricSetDescription = Prelude.Nothing,+      metricSetFrequency = Prelude.Nothing,+      metricSource = Prelude.Nothing,+      offset = Prelude.Nothing,+      timestampColumn = Prelude.Nothing,+      metricSetArn = pMetricSetArn_+    }++-- | Describes a list of filters for choosing specific dimensions and+-- specific values. Each filter consists of the dimension and one of its+-- values that you want to include. When multiple dimensions or values are+-- specified, the dimensions are joined with an AND operation and the+-- values are joined with an OR operation.+updateMetricSet_dimensionFilterList :: Lens.Lens' UpdateMetricSet (Prelude.Maybe [MetricSetDimensionFilter])+updateMetricSet_dimensionFilterList = Lens.lens (\UpdateMetricSet' {dimensionFilterList} -> dimensionFilterList) (\s@UpdateMetricSet' {} a -> s {dimensionFilterList = a} :: UpdateMetricSet) Prelude.. Lens.mapping Lens.coerced++-- | The dimension list.+updateMetricSet_dimensionList :: Lens.Lens' UpdateMetricSet (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+updateMetricSet_dimensionList = Lens.lens (\UpdateMetricSet' {dimensionList} -> dimensionList) (\s@UpdateMetricSet' {} a -> s {dimensionList = a} :: UpdateMetricSet) Prelude.. Lens.mapping Lens.coerced++-- | The metric list.+updateMetricSet_metricList :: Lens.Lens' UpdateMetricSet (Prelude.Maybe (Prelude.NonEmpty Metric))+updateMetricSet_metricList = Lens.lens (\UpdateMetricSet' {metricList} -> metricList) (\s@UpdateMetricSet' {} a -> s {metricList = a} :: UpdateMetricSet) Prelude.. Lens.mapping Lens.coerced++-- | The dataset\'s description.+updateMetricSet_metricSetDescription :: Lens.Lens' UpdateMetricSet (Prelude.Maybe Prelude.Text)+updateMetricSet_metricSetDescription = Lens.lens (\UpdateMetricSet' {metricSetDescription} -> metricSetDescription) (\s@UpdateMetricSet' {} a -> s {metricSetDescription = a} :: UpdateMetricSet)++-- | The dataset\'s interval.+updateMetricSet_metricSetFrequency :: Lens.Lens' UpdateMetricSet (Prelude.Maybe Frequency)+updateMetricSet_metricSetFrequency = Lens.lens (\UpdateMetricSet' {metricSetFrequency} -> metricSetFrequency) (\s@UpdateMetricSet' {} a -> s {metricSetFrequency = a} :: UpdateMetricSet)++-- | Undocumented member.+updateMetricSet_metricSource :: Lens.Lens' UpdateMetricSet (Prelude.Maybe MetricSource)+updateMetricSet_metricSource = Lens.lens (\UpdateMetricSet' {metricSource} -> metricSource) (\s@UpdateMetricSet' {} a -> s {metricSource = a} :: UpdateMetricSet)++-- | After an interval ends, the amount of seconds that the detector waits+-- before importing data. Offset is only supported for S3, Redshift, Athena+-- and datasources.+updateMetricSet_offset :: Lens.Lens' UpdateMetricSet (Prelude.Maybe Prelude.Natural)+updateMetricSet_offset = Lens.lens (\UpdateMetricSet' {offset} -> offset) (\s@UpdateMetricSet' {} a -> s {offset = a} :: UpdateMetricSet)++-- | The timestamp column.+updateMetricSet_timestampColumn :: Lens.Lens' UpdateMetricSet (Prelude.Maybe TimestampColumn)+updateMetricSet_timestampColumn = Lens.lens (\UpdateMetricSet' {timestampColumn} -> timestampColumn) (\s@UpdateMetricSet' {} a -> s {timestampColumn = a} :: UpdateMetricSet)++-- | The ARN of the dataset to update.+updateMetricSet_metricSetArn :: Lens.Lens' UpdateMetricSet Prelude.Text+updateMetricSet_metricSetArn = Lens.lens (\UpdateMetricSet' {metricSetArn} -> metricSetArn) (\s@UpdateMetricSet' {} a -> s {metricSetArn = a} :: UpdateMetricSet)++instance Core.AWSRequest UpdateMetricSet where+  type+    AWSResponse UpdateMetricSet =+      UpdateMetricSetResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateMetricSetResponse'+            Prelude.<$> (x Data..?> "MetricSetArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateMetricSet where+  hashWithSalt _salt UpdateMetricSet' {..} =+    _salt+      `Prelude.hashWithSalt` dimensionFilterList+      `Prelude.hashWithSalt` dimensionList+      `Prelude.hashWithSalt` metricList+      `Prelude.hashWithSalt` metricSetDescription+      `Prelude.hashWithSalt` metricSetFrequency+      `Prelude.hashWithSalt` metricSource+      `Prelude.hashWithSalt` offset+      `Prelude.hashWithSalt` timestampColumn+      `Prelude.hashWithSalt` metricSetArn++instance Prelude.NFData UpdateMetricSet where+  rnf UpdateMetricSet' {..} =+    Prelude.rnf dimensionFilterList+      `Prelude.seq` Prelude.rnf dimensionList+      `Prelude.seq` Prelude.rnf metricList+      `Prelude.seq` Prelude.rnf metricSetDescription+      `Prelude.seq` Prelude.rnf metricSetFrequency+      `Prelude.seq` Prelude.rnf metricSource+      `Prelude.seq` Prelude.rnf offset+      `Prelude.seq` Prelude.rnf timestampColumn+      `Prelude.seq` Prelude.rnf metricSetArn++instance Data.ToHeaders UpdateMetricSet where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateMetricSet where+  toJSON UpdateMetricSet' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DimensionFilterList" Data..=)+              Prelude.<$> dimensionFilterList,+            ("DimensionList" Data..=) Prelude.<$> dimensionList,+            ("MetricList" Data..=) Prelude.<$> metricList,+            ("MetricSetDescription" Data..=)+              Prelude.<$> metricSetDescription,+            ("MetricSetFrequency" Data..=)+              Prelude.<$> metricSetFrequency,+            ("MetricSource" Data..=) Prelude.<$> metricSource,+            ("Offset" Data..=) Prelude.<$> offset,+            ("TimestampColumn" Data..=)+              Prelude.<$> timestampColumn,+            Prelude.Just ("MetricSetArn" Data..= metricSetArn)+          ]+      )++instance Data.ToPath UpdateMetricSet where+  toPath = Prelude.const "/UpdateMetricSet"++instance Data.ToQuery UpdateMetricSet where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateMetricSetResponse' smart constructor.+data UpdateMetricSetResponse = UpdateMetricSetResponse'+  { -- | The ARN of the dataset.+    metricSetArn :: 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 'UpdateMetricSetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metricSetArn', 'updateMetricSetResponse_metricSetArn' - The ARN of the dataset.+--+-- 'httpStatus', 'updateMetricSetResponse_httpStatus' - The response's http status code.+newUpdateMetricSetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateMetricSetResponse+newUpdateMetricSetResponse pHttpStatus_ =+  UpdateMetricSetResponse'+    { metricSetArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the dataset.+updateMetricSetResponse_metricSetArn :: Lens.Lens' UpdateMetricSetResponse (Prelude.Maybe Prelude.Text)+updateMetricSetResponse_metricSetArn = Lens.lens (\UpdateMetricSetResponse' {metricSetArn} -> metricSetArn) (\s@UpdateMetricSetResponse' {} a -> s {metricSetArn = a} :: UpdateMetricSetResponse)++-- | The response's http status code.+updateMetricSetResponse_httpStatus :: Lens.Lens' UpdateMetricSetResponse Prelude.Int+updateMetricSetResponse_httpStatus = Lens.lens (\UpdateMetricSetResponse' {httpStatus} -> httpStatus) (\s@UpdateMetricSetResponse' {} a -> s {httpStatus = a} :: UpdateMetricSetResponse)++instance Prelude.NFData UpdateMetricSetResponse where+  rnf UpdateMetricSetResponse' {..} =+    Prelude.rnf metricSetArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutMetrics/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.LookoutMetrics.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.LookoutMetrics.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutMetrics.Lens+import Amazonka.LookoutMetrics.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.LookoutMetrics+import Test.Amazonka.LookoutMetrics.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "LookoutMetrics"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/Gen/LookoutMetrics.hs view
@@ -0,0 +1,638 @@+{-# 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.LookoutMetrics+-- Copyright   : (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.LookoutMetrics where++import Amazonka.LookoutMetrics+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.LookoutMetrics.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"+--         [ requestActivateAnomalyDetector $+--             newActivateAnomalyDetector+--+--         , requestBackTestAnomalyDetector $+--             newBackTestAnomalyDetector+--+--         , requestCreateAlert $+--             newCreateAlert+--+--         , requestCreateAnomalyDetector $+--             newCreateAnomalyDetector+--+--         , requestCreateMetricSet $+--             newCreateMetricSet+--+--         , requestDeactivateAnomalyDetector $+--             newDeactivateAnomalyDetector+--+--         , requestDeleteAlert $+--             newDeleteAlert+--+--         , requestDeleteAnomalyDetector $+--             newDeleteAnomalyDetector+--+--         , requestDescribeAlert $+--             newDescribeAlert+--+--         , requestDescribeAnomalyDetectionExecutions $+--             newDescribeAnomalyDetectionExecutions+--+--         , requestDescribeAnomalyDetector $+--             newDescribeAnomalyDetector+--+--         , requestDescribeMetricSet $+--             newDescribeMetricSet+--+--         , requestDetectMetricSetConfig $+--             newDetectMetricSetConfig+--+--         , requestGetAnomalyGroup $+--             newGetAnomalyGroup+--+--         , requestGetDataQualityMetrics $+--             newGetDataQualityMetrics+--+--         , requestGetFeedback $+--             newGetFeedback+--+--         , requestGetSampleData $+--             newGetSampleData+--+--         , requestListAlerts $+--             newListAlerts+--+--         , requestListAnomalyDetectors $+--             newListAnomalyDetectors+--+--         , requestListAnomalyGroupRelatedMetrics $+--             newListAnomalyGroupRelatedMetrics+--+--         , requestListAnomalyGroupSummaries $+--             newListAnomalyGroupSummaries+--+--         , requestListAnomalyGroupTimeSeries $+--             newListAnomalyGroupTimeSeries+--+--         , requestListMetricSets $+--             newListMetricSets+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestPutFeedback $+--             newPutFeedback+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateAlert $+--             newUpdateAlert+--+--         , requestUpdateAnomalyDetector $+--             newUpdateAnomalyDetector+--+--         , requestUpdateMetricSet $+--             newUpdateMetricSet+--+--           ]++--     , testGroup "response"+--         [ responseActivateAnomalyDetector $+--             newActivateAnomalyDetectorResponse+--+--         , responseBackTestAnomalyDetector $+--             newBackTestAnomalyDetectorResponse+--+--         , responseCreateAlert $+--             newCreateAlertResponse+--+--         , responseCreateAnomalyDetector $+--             newCreateAnomalyDetectorResponse+--+--         , responseCreateMetricSet $+--             newCreateMetricSetResponse+--+--         , responseDeactivateAnomalyDetector $+--             newDeactivateAnomalyDetectorResponse+--+--         , responseDeleteAlert $+--             newDeleteAlertResponse+--+--         , responseDeleteAnomalyDetector $+--             newDeleteAnomalyDetectorResponse+--+--         , responseDescribeAlert $+--             newDescribeAlertResponse+--+--         , responseDescribeAnomalyDetectionExecutions $+--             newDescribeAnomalyDetectionExecutionsResponse+--+--         , responseDescribeAnomalyDetector $+--             newDescribeAnomalyDetectorResponse+--+--         , responseDescribeMetricSet $+--             newDescribeMetricSetResponse+--+--         , responseDetectMetricSetConfig $+--             newDetectMetricSetConfigResponse+--+--         , responseGetAnomalyGroup $+--             newGetAnomalyGroupResponse+--+--         , responseGetDataQualityMetrics $+--             newGetDataQualityMetricsResponse+--+--         , responseGetFeedback $+--             newGetFeedbackResponse+--+--         , responseGetSampleData $+--             newGetSampleDataResponse+--+--         , responseListAlerts $+--             newListAlertsResponse+--+--         , responseListAnomalyDetectors $+--             newListAnomalyDetectorsResponse+--+--         , responseListAnomalyGroupRelatedMetrics $+--             newListAnomalyGroupRelatedMetricsResponse+--+--         , responseListAnomalyGroupSummaries $+--             newListAnomalyGroupSummariesResponse+--+--         , responseListAnomalyGroupTimeSeries $+--             newListAnomalyGroupTimeSeriesResponse+--+--         , responseListMetricSets $+--             newListMetricSetsResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responsePutFeedback $+--             newPutFeedbackResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateAlert $+--             newUpdateAlertResponse+--+--         , responseUpdateAnomalyDetector $+--             newUpdateAnomalyDetectorResponse+--+--         , responseUpdateMetricSet $+--             newUpdateMetricSetResponse+--+--           ]+--     ]++-- Requests++requestActivateAnomalyDetector :: ActivateAnomalyDetector -> TestTree+requestActivateAnomalyDetector =+  req+    "ActivateAnomalyDetector"+    "fixture/ActivateAnomalyDetector.yaml"++requestBackTestAnomalyDetector :: BackTestAnomalyDetector -> TestTree+requestBackTestAnomalyDetector =+  req+    "BackTestAnomalyDetector"+    "fixture/BackTestAnomalyDetector.yaml"++requestCreateAlert :: CreateAlert -> TestTree+requestCreateAlert =+  req+    "CreateAlert"+    "fixture/CreateAlert.yaml"++requestCreateAnomalyDetector :: CreateAnomalyDetector -> TestTree+requestCreateAnomalyDetector =+  req+    "CreateAnomalyDetector"+    "fixture/CreateAnomalyDetector.yaml"++requestCreateMetricSet :: CreateMetricSet -> TestTree+requestCreateMetricSet =+  req+    "CreateMetricSet"+    "fixture/CreateMetricSet.yaml"++requestDeactivateAnomalyDetector :: DeactivateAnomalyDetector -> TestTree+requestDeactivateAnomalyDetector =+  req+    "DeactivateAnomalyDetector"+    "fixture/DeactivateAnomalyDetector.yaml"++requestDeleteAlert :: DeleteAlert -> TestTree+requestDeleteAlert =+  req+    "DeleteAlert"+    "fixture/DeleteAlert.yaml"++requestDeleteAnomalyDetector :: DeleteAnomalyDetector -> TestTree+requestDeleteAnomalyDetector =+  req+    "DeleteAnomalyDetector"+    "fixture/DeleteAnomalyDetector.yaml"++requestDescribeAlert :: DescribeAlert -> TestTree+requestDescribeAlert =+  req+    "DescribeAlert"+    "fixture/DescribeAlert.yaml"++requestDescribeAnomalyDetectionExecutions :: DescribeAnomalyDetectionExecutions -> TestTree+requestDescribeAnomalyDetectionExecutions =+  req+    "DescribeAnomalyDetectionExecutions"+    "fixture/DescribeAnomalyDetectionExecutions.yaml"++requestDescribeAnomalyDetector :: DescribeAnomalyDetector -> TestTree+requestDescribeAnomalyDetector =+  req+    "DescribeAnomalyDetector"+    "fixture/DescribeAnomalyDetector.yaml"++requestDescribeMetricSet :: DescribeMetricSet -> TestTree+requestDescribeMetricSet =+  req+    "DescribeMetricSet"+    "fixture/DescribeMetricSet.yaml"++requestDetectMetricSetConfig :: DetectMetricSetConfig -> TestTree+requestDetectMetricSetConfig =+  req+    "DetectMetricSetConfig"+    "fixture/DetectMetricSetConfig.yaml"++requestGetAnomalyGroup :: GetAnomalyGroup -> TestTree+requestGetAnomalyGroup =+  req+    "GetAnomalyGroup"+    "fixture/GetAnomalyGroup.yaml"++requestGetDataQualityMetrics :: GetDataQualityMetrics -> TestTree+requestGetDataQualityMetrics =+  req+    "GetDataQualityMetrics"+    "fixture/GetDataQualityMetrics.yaml"++requestGetFeedback :: GetFeedback -> TestTree+requestGetFeedback =+  req+    "GetFeedback"+    "fixture/GetFeedback.yaml"++requestGetSampleData :: GetSampleData -> TestTree+requestGetSampleData =+  req+    "GetSampleData"+    "fixture/GetSampleData.yaml"++requestListAlerts :: ListAlerts -> TestTree+requestListAlerts =+  req+    "ListAlerts"+    "fixture/ListAlerts.yaml"++requestListAnomalyDetectors :: ListAnomalyDetectors -> TestTree+requestListAnomalyDetectors =+  req+    "ListAnomalyDetectors"+    "fixture/ListAnomalyDetectors.yaml"++requestListAnomalyGroupRelatedMetrics :: ListAnomalyGroupRelatedMetrics -> TestTree+requestListAnomalyGroupRelatedMetrics =+  req+    "ListAnomalyGroupRelatedMetrics"+    "fixture/ListAnomalyGroupRelatedMetrics.yaml"++requestListAnomalyGroupSummaries :: ListAnomalyGroupSummaries -> TestTree+requestListAnomalyGroupSummaries =+  req+    "ListAnomalyGroupSummaries"+    "fixture/ListAnomalyGroupSummaries.yaml"++requestListAnomalyGroupTimeSeries :: ListAnomalyGroupTimeSeries -> TestTree+requestListAnomalyGroupTimeSeries =+  req+    "ListAnomalyGroupTimeSeries"+    "fixture/ListAnomalyGroupTimeSeries.yaml"++requestListMetricSets :: ListMetricSets -> TestTree+requestListMetricSets =+  req+    "ListMetricSets"+    "fixture/ListMetricSets.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestPutFeedback :: PutFeedback -> TestTree+requestPutFeedback =+  req+    "PutFeedback"+    "fixture/PutFeedback.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateAlert :: UpdateAlert -> TestTree+requestUpdateAlert =+  req+    "UpdateAlert"+    "fixture/UpdateAlert.yaml"++requestUpdateAnomalyDetector :: UpdateAnomalyDetector -> TestTree+requestUpdateAnomalyDetector =+  req+    "UpdateAnomalyDetector"+    "fixture/UpdateAnomalyDetector.yaml"++requestUpdateMetricSet :: UpdateMetricSet -> TestTree+requestUpdateMetricSet =+  req+    "UpdateMetricSet"+    "fixture/UpdateMetricSet.yaml"++-- Responses++responseActivateAnomalyDetector :: ActivateAnomalyDetectorResponse -> TestTree+responseActivateAnomalyDetector =+  res+    "ActivateAnomalyDetectorResponse"+    "fixture/ActivateAnomalyDetectorResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ActivateAnomalyDetector)++responseBackTestAnomalyDetector :: BackTestAnomalyDetectorResponse -> TestTree+responseBackTestAnomalyDetector =+  res+    "BackTestAnomalyDetectorResponse"+    "fixture/BackTestAnomalyDetectorResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy BackTestAnomalyDetector)++responseCreateAlert :: CreateAlertResponse -> TestTree+responseCreateAlert =+  res+    "CreateAlertResponse"+    "fixture/CreateAlertResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateAlert)++responseCreateAnomalyDetector :: CreateAnomalyDetectorResponse -> TestTree+responseCreateAnomalyDetector =+  res+    "CreateAnomalyDetectorResponse"+    "fixture/CreateAnomalyDetectorResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateAnomalyDetector)++responseCreateMetricSet :: CreateMetricSetResponse -> TestTree+responseCreateMetricSet =+  res+    "CreateMetricSetResponse"+    "fixture/CreateMetricSetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateMetricSet)++responseDeactivateAnomalyDetector :: DeactivateAnomalyDetectorResponse -> TestTree+responseDeactivateAnomalyDetector =+  res+    "DeactivateAnomalyDetectorResponse"+    "fixture/DeactivateAnomalyDetectorResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeactivateAnomalyDetector)++responseDeleteAlert :: DeleteAlertResponse -> TestTree+responseDeleteAlert =+  res+    "DeleteAlertResponse"+    "fixture/DeleteAlertResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteAlert)++responseDeleteAnomalyDetector :: DeleteAnomalyDetectorResponse -> TestTree+responseDeleteAnomalyDetector =+  res+    "DeleteAnomalyDetectorResponse"+    "fixture/DeleteAnomalyDetectorResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteAnomalyDetector)++responseDescribeAlert :: DescribeAlertResponse -> TestTree+responseDescribeAlert =+  res+    "DescribeAlertResponse"+    "fixture/DescribeAlertResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeAlert)++responseDescribeAnomalyDetectionExecutions :: DescribeAnomalyDetectionExecutionsResponse -> TestTree+responseDescribeAnomalyDetectionExecutions =+  res+    "DescribeAnomalyDetectionExecutionsResponse"+    "fixture/DescribeAnomalyDetectionExecutionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeAnomalyDetectionExecutions)++responseDescribeAnomalyDetector :: DescribeAnomalyDetectorResponse -> TestTree+responseDescribeAnomalyDetector =+  res+    "DescribeAnomalyDetectorResponse"+    "fixture/DescribeAnomalyDetectorResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeAnomalyDetector)++responseDescribeMetricSet :: DescribeMetricSetResponse -> TestTree+responseDescribeMetricSet =+  res+    "DescribeMetricSetResponse"+    "fixture/DescribeMetricSetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeMetricSet)++responseDetectMetricSetConfig :: DetectMetricSetConfigResponse -> TestTree+responseDetectMetricSetConfig =+  res+    "DetectMetricSetConfigResponse"+    "fixture/DetectMetricSetConfigResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DetectMetricSetConfig)++responseGetAnomalyGroup :: GetAnomalyGroupResponse -> TestTree+responseGetAnomalyGroup =+  res+    "GetAnomalyGroupResponse"+    "fixture/GetAnomalyGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetAnomalyGroup)++responseGetDataQualityMetrics :: GetDataQualityMetricsResponse -> TestTree+responseGetDataQualityMetrics =+  res+    "GetDataQualityMetricsResponse"+    "fixture/GetDataQualityMetricsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetDataQualityMetrics)++responseGetFeedback :: GetFeedbackResponse -> TestTree+responseGetFeedback =+  res+    "GetFeedbackResponse"+    "fixture/GetFeedbackResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetFeedback)++responseGetSampleData :: GetSampleDataResponse -> TestTree+responseGetSampleData =+  res+    "GetSampleDataResponse"+    "fixture/GetSampleDataResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetSampleData)++responseListAlerts :: ListAlertsResponse -> TestTree+responseListAlerts =+  res+    "ListAlertsResponse"+    "fixture/ListAlertsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListAlerts)++responseListAnomalyDetectors :: ListAnomalyDetectorsResponse -> TestTree+responseListAnomalyDetectors =+  res+    "ListAnomalyDetectorsResponse"+    "fixture/ListAnomalyDetectorsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListAnomalyDetectors)++responseListAnomalyGroupRelatedMetrics :: ListAnomalyGroupRelatedMetricsResponse -> TestTree+responseListAnomalyGroupRelatedMetrics =+  res+    "ListAnomalyGroupRelatedMetricsResponse"+    "fixture/ListAnomalyGroupRelatedMetricsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListAnomalyGroupRelatedMetrics)++responseListAnomalyGroupSummaries :: ListAnomalyGroupSummariesResponse -> TestTree+responseListAnomalyGroupSummaries =+  res+    "ListAnomalyGroupSummariesResponse"+    "fixture/ListAnomalyGroupSummariesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListAnomalyGroupSummaries)++responseListAnomalyGroupTimeSeries :: ListAnomalyGroupTimeSeriesResponse -> TestTree+responseListAnomalyGroupTimeSeries =+  res+    "ListAnomalyGroupTimeSeriesResponse"+    "fixture/ListAnomalyGroupTimeSeriesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListAnomalyGroupTimeSeries)++responseListMetricSets :: ListMetricSetsResponse -> TestTree+responseListMetricSets =+  res+    "ListMetricSetsResponse"+    "fixture/ListMetricSetsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListMetricSets)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responsePutFeedback :: PutFeedbackResponse -> TestTree+responsePutFeedback =+  res+    "PutFeedbackResponse"+    "fixture/PutFeedbackResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PutFeedback)++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)++responseUpdateAlert :: UpdateAlertResponse -> TestTree+responseUpdateAlert =+  res+    "UpdateAlertResponse"+    "fixture/UpdateAlertResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateAlert)++responseUpdateAnomalyDetector :: UpdateAnomalyDetectorResponse -> TestTree+responseUpdateAnomalyDetector =+  res+    "UpdateAnomalyDetectorResponse"+    "fixture/UpdateAnomalyDetectorResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateAnomalyDetector)++responseUpdateMetricSet :: UpdateMetricSetResponse -> TestTree+responseUpdateMetricSet =+  res+    "UpdateMetricSetResponse"+    "fixture/UpdateMetricSetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateMetricSet)
+ test/Test/Amazonka/LookoutMetrics.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.LookoutMetrics+-- Copyright   : (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.LookoutMetrics+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/LookoutMetrics/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.LookoutMetrics.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.LookoutMetrics.Internal where