amazonka-devops-guru (empty) → 2.0
raw patch · 217 files changed
+25109/−0 lines, 217 filesdep +amazonka-coredep +amazonka-devops-gurudep +amazonka-test
Dependencies added: amazonka-core, amazonka-devops-guru, amazonka-test, base, bytestring, case-insensitive, tasty, tasty-hunit, text, time, unordered-containers
Files
- LICENSE +367/−0
- README.md +44/−0
- amazonka-devops-guru.cabal +226/−0
- fixture/AddNotificationChannel.yaml +10/−0
- fixture/AddNotificationChannelResponse.proto +0/−0
- fixture/DeleteInsight.yaml +10/−0
- fixture/DeleteInsightResponse.proto +0/−0
- fixture/DescribeAccountHealth.yaml +10/−0
- fixture/DescribeAccountHealthResponse.proto +0/−0
- fixture/DescribeAccountOverview.yaml +10/−0
- fixture/DescribeAccountOverviewResponse.proto +0/−0
- fixture/DescribeAnomaly.yaml +10/−0
- fixture/DescribeAnomalyResponse.proto +0/−0
- fixture/DescribeEventSourcesConfig.yaml +10/−0
- fixture/DescribeEventSourcesConfigResponse.proto +0/−0
- fixture/DescribeFeedback.yaml +10/−0
- fixture/DescribeFeedbackResponse.proto +0/−0
- fixture/DescribeInsight.yaml +10/−0
- fixture/DescribeInsightResponse.proto +0/−0
- fixture/DescribeOrganizationHealth.yaml +10/−0
- fixture/DescribeOrganizationHealthResponse.proto +0/−0
- fixture/DescribeOrganizationOverview.yaml +10/−0
- fixture/DescribeOrganizationOverviewResponse.proto +0/−0
- fixture/DescribeOrganizationResourceCollectionHealth.yaml +10/−0
- fixture/DescribeOrganizationResourceCollectionHealthResponse.proto +0/−0
- fixture/DescribeResourceCollectionHealth.yaml +10/−0
- fixture/DescribeResourceCollectionHealthResponse.proto +0/−0
- fixture/DescribeServiceIntegration.yaml +10/−0
- fixture/DescribeServiceIntegrationResponse.proto +0/−0
- fixture/GetCostEstimation.yaml +10/−0
- fixture/GetCostEstimationResponse.proto +0/−0
- fixture/GetResourceCollection.yaml +10/−0
- fixture/GetResourceCollectionResponse.proto +0/−0
- fixture/ListAnomaliesForInsight.yaml +10/−0
- fixture/ListAnomaliesForInsightResponse.proto +0/−0
- fixture/ListAnomalousLogGroups.yaml +10/−0
- fixture/ListAnomalousLogGroupsResponse.proto +0/−0
- fixture/ListEvents.yaml +10/−0
- fixture/ListEventsResponse.proto +0/−0
- fixture/ListInsights.yaml +10/−0
- fixture/ListInsightsResponse.proto +0/−0
- fixture/ListMonitoredResources.yaml +10/−0
- fixture/ListMonitoredResourcesResponse.proto +0/−0
- fixture/ListNotificationChannels.yaml +10/−0
- fixture/ListNotificationChannelsResponse.proto +0/−0
- fixture/ListOrganizationInsights.yaml +10/−0
- fixture/ListOrganizationInsightsResponse.proto +0/−0
- fixture/ListRecommendations.yaml +10/−0
- fixture/ListRecommendationsResponse.proto +0/−0
- fixture/PutFeedback.yaml +10/−0
- fixture/PutFeedbackResponse.proto +0/−0
- fixture/RemoveNotificationChannel.yaml +10/−0
- fixture/RemoveNotificationChannelResponse.proto +0/−0
- fixture/SearchInsights.yaml +10/−0
- fixture/SearchInsightsResponse.proto +0/−0
- fixture/SearchOrganizationInsights.yaml +10/−0
- fixture/SearchOrganizationInsightsResponse.proto +0/−0
- fixture/StartCostEstimation.yaml +10/−0
- fixture/StartCostEstimationResponse.proto +0/−0
- fixture/UpdateEventSourcesConfig.yaml +10/−0
- fixture/UpdateEventSourcesConfigResponse.proto +0/−0
- fixture/UpdateResourceCollection.yaml +10/−0
- fixture/UpdateResourceCollectionResponse.proto +0/−0
- fixture/UpdateServiceIntegration.yaml +10/−0
- fixture/UpdateServiceIntegrationResponse.proto +0/−0
- gen/Amazonka/DevOpsGuru.hs +743/−0
- gen/Amazonka/DevOpsGuru/AddNotificationChannel.hs +194/−0
- gen/Amazonka/DevOpsGuru/DeleteInsight.hs +143/−0
- gen/Amazonka/DevOpsGuru/DescribeAccountHealth.hs +222/−0
- gen/Amazonka/DevOpsGuru/DescribeAccountOverview.hs +253/−0
- gen/Amazonka/DevOpsGuru/DescribeAnomaly.hs +186/−0
- gen/Amazonka/DevOpsGuru/DescribeEventSourcesConfig.hs +152/−0
- gen/Amazonka/DevOpsGuru/DescribeFeedback.hs +162/−0
- gen/Amazonka/DevOpsGuru/DescribeInsight.hs +186/−0
- gen/Amazonka/DevOpsGuru/DescribeOrganizationHealth.hs +249/−0
- gen/Amazonka/DevOpsGuru/DescribeOrganizationOverview.hs +259/−0
- gen/Amazonka/DevOpsGuru/DescribeOrganizationResourceCollectionHealth.hs +496/−0
- gen/Amazonka/DevOpsGuru/DescribeResourceCollectionHealth.hs +424/−0
- gen/Amazonka/DevOpsGuru/DescribeServiceIntegration.hs +147/−0
- gen/Amazonka/DevOpsGuru/GetCostEstimation.hs +270/−0
- gen/Amazonka/DevOpsGuru/GetResourceCollection.hs +263/−0
- gen/Amazonka/DevOpsGuru/Lens.hs +842/−0
- gen/Amazonka/DevOpsGuru/ListAnomaliesForInsight.hs +309/−0
- gen/Amazonka/DevOpsGuru/ListAnomalousLogGroups.hs +265/−0
- gen/Amazonka/DevOpsGuru/ListEvents.hs +251/−0
- gen/Amazonka/DevOpsGuru/ListInsights.hs +269/−0
- gen/Amazonka/DevOpsGuru/ListMonitoredResources.hs +257/−0
- gen/Amazonka/DevOpsGuru/ListNotificationChannels.hs +215/−0
- gen/Amazonka/DevOpsGuru/ListOrganizationInsights.hs +303/−0
- gen/Amazonka/DevOpsGuru/ListRecommendations.hs +255/−0
- gen/Amazonka/DevOpsGuru/PutFeedback.hs +149/−0
- gen/Amazonka/DevOpsGuru/RemoveNotificationChannel.hs +151/−0
- gen/Amazonka/DevOpsGuru/SearchInsights.hs +309/−0
- gen/Amazonka/DevOpsGuru/SearchOrganizationInsights.hs +334/−0
- gen/Amazonka/DevOpsGuru/StartCostEstimation.hs +175/−0
- gen/Amazonka/DevOpsGuru/Types.hs +999/−0
- gen/Amazonka/DevOpsGuru/Types/AccountHealth.hs +94/−0
- gen/Amazonka/DevOpsGuru/Types/AccountInsightHealth.hs +92/−0
- gen/Amazonka/DevOpsGuru/Types/AmazonCodeGuruProfilerIntegration.hs +102/−0
- gen/Amazonka/DevOpsGuru/Types/AnomalousLogGroup.hs +131/−0
- gen/Amazonka/DevOpsGuru/Types/AnomalyReportedTimeRange.hs +89/−0
- gen/Amazonka/DevOpsGuru/Types/AnomalyResource.hs +87/−0
- gen/Amazonka/DevOpsGuru/Types/AnomalySeverity.hs +76/−0
- gen/Amazonka/DevOpsGuru/Types/AnomalySourceDetails.hs +103/−0
- gen/Amazonka/DevOpsGuru/Types/AnomalySourceMetadata.hs +98/−0
- gen/Amazonka/DevOpsGuru/Types/AnomalyStatus.hs +71/−0
- gen/Amazonka/DevOpsGuru/Types/AnomalyTimeRange.hs +89/−0
- gen/Amazonka/DevOpsGuru/Types/AnomalyType.hs +71/−0
- gen/Amazonka/DevOpsGuru/Types/CloudFormationCollection.hs +83/−0
- gen/Amazonka/DevOpsGuru/Types/CloudFormationCollectionFilter.hs +84/−0
- gen/Amazonka/DevOpsGuru/Types/CloudFormationCostEstimationResourceCollectionFilter.hs +102/−0
- gen/Amazonka/DevOpsGuru/Types/CloudFormationHealth.hs +112/−0
- gen/Amazonka/DevOpsGuru/Types/CloudWatchMetricDataStatusCode.hs +76/−0
- gen/Amazonka/DevOpsGuru/Types/CloudWatchMetricsDataSummary.hs +98/−0
- gen/Amazonka/DevOpsGuru/Types/CloudWatchMetricsDetail.hs +166/−0
- gen/Amazonka/DevOpsGuru/Types/CloudWatchMetricsDimension.hs +89/−0
- gen/Amazonka/DevOpsGuru/Types/CloudWatchMetricsStat.hs +101/−0
- gen/Amazonka/DevOpsGuru/Types/CostEstimationResourceCollectionFilter.hs +221/−0
- gen/Amazonka/DevOpsGuru/Types/CostEstimationServiceResourceState.hs +71/−0
- gen/Amazonka/DevOpsGuru/Types/CostEstimationStatus.hs +71/−0
- gen/Amazonka/DevOpsGuru/Types/CostEstimationTimeRange.hs +84/−0
- gen/Amazonka/DevOpsGuru/Types/EndTimeRange.hs +84/−0
- gen/Amazonka/DevOpsGuru/Types/Event.hs +171/−0
- gen/Amazonka/DevOpsGuru/Types/EventClass.hs +86/−0
- gen/Amazonka/DevOpsGuru/Types/EventDataSource.hs +71/−0
- gen/Amazonka/DevOpsGuru/Types/EventResource.hs +99/−0
- gen/Amazonka/DevOpsGuru/Types/EventSourceOptInStatus.hs +71/−0
- gen/Amazonka/DevOpsGuru/Types/EventSourcesConfig.hs +86/−0
- gen/Amazonka/DevOpsGuru/Types/EventTimeRange.hs +91/−0
- gen/Amazonka/DevOpsGuru/Types/InsightFeedback.hs +93/−0
- gen/Amazonka/DevOpsGuru/Types/InsightFeedbackOption.hs +86/−0
- gen/Amazonka/DevOpsGuru/Types/InsightHealth.hs +98/−0
- gen/Amazonka/DevOpsGuru/Types/InsightSeverity.hs +76/−0
- gen/Amazonka/DevOpsGuru/Types/InsightStatus.hs +71/−0
- gen/Amazonka/DevOpsGuru/Types/InsightTimeRange.hs +87/−0
- gen/Amazonka/DevOpsGuru/Types/InsightType.hs +71/−0
- gen/Amazonka/DevOpsGuru/Types/ListEventsFilters.hs +149/−0
- gen/Amazonka/DevOpsGuru/Types/ListInsightsAnyStatusFilter.hs +95/−0
- gen/Amazonka/DevOpsGuru/Types/ListInsightsClosedStatusFilter.hs +102/−0
- gen/Amazonka/DevOpsGuru/Types/ListInsightsOngoingStatusFilter.hs +78/−0
- gen/Amazonka/DevOpsGuru/Types/ListInsightsStatusFilter.hs +107/−0
- gen/Amazonka/DevOpsGuru/Types/ListMonitoredResourcesFilters.hs +94/−0
- gen/Amazonka/DevOpsGuru/Types/Locale.hs +113/−0
- gen/Amazonka/DevOpsGuru/Types/LogAnomalyClass.hs +157/−0
- gen/Amazonka/DevOpsGuru/Types/LogAnomalyShowcase.hs +76/−0
- gen/Amazonka/DevOpsGuru/Types/LogAnomalyType.hs +101/−0
- gen/Amazonka/DevOpsGuru/Types/LogsAnomalyDetectionIntegration.hs +88/−0
- gen/Amazonka/DevOpsGuru/Types/LogsAnomalyDetectionIntegrationConfig.hs +87/−0
- gen/Amazonka/DevOpsGuru/Types/MonitoredResourceIdentifier.hs +124/−0
- gen/Amazonka/DevOpsGuru/Types/NotificationChannel.hs +107/−0
- gen/Amazonka/DevOpsGuru/Types/NotificationChannelConfig.hs +165/−0
- gen/Amazonka/DevOpsGuru/Types/NotificationFilterConfig.hs +114/−0
- gen/Amazonka/DevOpsGuru/Types/NotificationMessageType.hs +86/−0
- gen/Amazonka/DevOpsGuru/Types/OpsCenterIntegration.hs +78/−0
- gen/Amazonka/DevOpsGuru/Types/OpsCenterIntegrationConfig.hs +76/−0
- gen/Amazonka/DevOpsGuru/Types/OptInStatus.hs +73/−0
- gen/Amazonka/DevOpsGuru/Types/OrganizationResourceCollectionType.hs +81/−0
- gen/Amazonka/DevOpsGuru/Types/PerformanceInsightsMetricDimensionGroup.hs +360/−0
- gen/Amazonka/DevOpsGuru/Types/PerformanceInsightsMetricQuery.hs +212/−0
- gen/Amazonka/DevOpsGuru/Types/PerformanceInsightsMetricsDetail.hs +183/−0
- gen/Amazonka/DevOpsGuru/Types/PerformanceInsightsReferenceComparisonValues.hs +114/−0
- gen/Amazonka/DevOpsGuru/Types/PerformanceInsightsReferenceData.hs +104/−0
- gen/Amazonka/DevOpsGuru/Types/PerformanceInsightsReferenceMetric.hs +85/−0
- gen/Amazonka/DevOpsGuru/Types/PerformanceInsightsReferenceScalar.hs +84/−0
- gen/Amazonka/DevOpsGuru/Types/PerformanceInsightsStat.hs +83/−0
- gen/Amazonka/DevOpsGuru/Types/PredictionTimeRange.hs +90/−0
- gen/Amazonka/DevOpsGuru/Types/ProactiveAnomaly.hs +254/−0
- gen/Amazonka/DevOpsGuru/Types/ProactiveAnomalySummary.hs +254/−0
- gen/Amazonka/DevOpsGuru/Types/ProactiveInsight.hs +183/−0
- gen/Amazonka/DevOpsGuru/Types/ProactiveInsightSummary.hs +185/−0
- gen/Amazonka/DevOpsGuru/Types/ProactiveOrganizationInsightSummary.hs +204/−0
- gen/Amazonka/DevOpsGuru/Types/ReactiveAnomaly.hs +266/−0
- gen/Amazonka/DevOpsGuru/Types/ReactiveAnomalySummary.hs +266/−0
- gen/Amazonka/DevOpsGuru/Types/ReactiveInsight.hs +171/−0
- gen/Amazonka/DevOpsGuru/Types/ReactiveInsightSummary.hs +173/−0
- gen/Amazonka/DevOpsGuru/Types/ReactiveOrganizationInsightSummary.hs +192/−0
- gen/Amazonka/DevOpsGuru/Types/Recommendation.hs +156/−0
- gen/Amazonka/DevOpsGuru/Types/RecommendationRelatedAnomaly.hs +117/−0
- gen/Amazonka/DevOpsGuru/Types/RecommendationRelatedAnomalyResource.hs +111/−0
- gen/Amazonka/DevOpsGuru/Types/RecommendationRelatedAnomalySourceDetail.hs +92/−0
- gen/Amazonka/DevOpsGuru/Types/RecommendationRelatedCloudWatchMetricsSourceDetail.hs +103/−0
- gen/Amazonka/DevOpsGuru/Types/RecommendationRelatedEvent.hs +94/−0
- gen/Amazonka/DevOpsGuru/Types/RecommendationRelatedEventResource.hs +102/−0
- gen/Amazonka/DevOpsGuru/Types/ResourceCollection.hs +208/−0
- gen/Amazonka/DevOpsGuru/Types/ResourceCollectionFilter.hs +199/−0
- gen/Amazonka/DevOpsGuru/Types/ResourceCollectionType.hs +76/−0
- gen/Amazonka/DevOpsGuru/Types/ResourcePermission.hs +71/−0
- gen/Amazonka/DevOpsGuru/Types/ResourceTypeFilter.hs +196/−0
- gen/Amazonka/DevOpsGuru/Types/SearchInsightsFilters.hs +114/−0
- gen/Amazonka/DevOpsGuru/Types/SearchOrganizationInsightsFilters.hs +124/−0
- gen/Amazonka/DevOpsGuru/Types/ServiceCollection.hs +79/−0
- gen/Amazonka/DevOpsGuru/Types/ServiceHealth.hs +108/−0
- gen/Amazonka/DevOpsGuru/Types/ServiceInsightHealth.hs +86/−0
- gen/Amazonka/DevOpsGuru/Types/ServiceIntegrationConfig.hs +97/−0
- gen/Amazonka/DevOpsGuru/Types/ServiceName.hs +186/−0
- gen/Amazonka/DevOpsGuru/Types/ServiceResourceCost.hs +152/−0
- gen/Amazonka/DevOpsGuru/Types/SnsChannelConfig.hs +97/−0
- gen/Amazonka/DevOpsGuru/Types/StartTimeRange.hs +84/−0
- gen/Amazonka/DevOpsGuru/Types/TagCollection.hs +191/−0
- gen/Amazonka/DevOpsGuru/Types/TagCollectionFilter.hs +152/−0
- gen/Amazonka/DevOpsGuru/Types/TagCostEstimationResourceCollectionFilter.hs +188/−0
- gen/Amazonka/DevOpsGuru/Types/TagHealth.hs +185/−0
- gen/Amazonka/DevOpsGuru/Types/TimestampMetricValuePair.hs +85/−0
- gen/Amazonka/DevOpsGuru/Types/UpdateCloudFormationCollectionFilter.hs +89/−0
- gen/Amazonka/DevOpsGuru/Types/UpdateResourceCollectionAction.hs +71/−0
- gen/Amazonka/DevOpsGuru/Types/UpdateResourceCollectionFilter.hs +198/−0
- gen/Amazonka/DevOpsGuru/Types/UpdateServiceIntegrationConfig.hs +99/−0
- gen/Amazonka/DevOpsGuru/Types/UpdateTagCollectionFilter.hs +151/−0
- gen/Amazonka/DevOpsGuru/UpdateEventSourcesConfig.hs +163/−0
- gen/Amazonka/DevOpsGuru/UpdateResourceCollection.hs +187/−0
- gen/Amazonka/DevOpsGuru/UpdateServiceIntegration.hs +170/−0
- gen/Amazonka/DevOpsGuru/Waiters.hs +24/−0
- src/.gitkeep +0/−0
- test/Main.hs +23/−0
- test/Test/Amazonka/DevOpsGuru.hs +20/−0
- test/Test/Amazonka/DevOpsGuru/Internal.hs +8/−0
- test/Test/Amazonka/Gen/DevOpsGuru.hs +658/−0
+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+ means each individual or legal entity that creates, contributes to+ the creation of, or owns Covered Software.++1.2. "Contributor Version"+ means the combination of the Contributions of others (if any) used+ by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+ means Covered Software of a particular Contributor.++1.4. "Covered Software"+ means Source Code Form to which the initial Contributor has attached+ the notice in Exhibit A, the Executable Form of such Source Code+ Form, and Modifications of such Source Code Form, in each case+ including portions thereof.++1.5. "Incompatible With Secondary Licenses"+ means++ (a) that the initial Contributor has attached the notice described+ in Exhibit B to the Covered Software; or++ (b) that the Covered Software was made available under the terms of+ version 1.1 or earlier of the License, but not also under the+ terms of a Secondary License.++1.6. "Executable Form"+ means any form of the work other than Source Code Form.++1.7. "Larger Work"+ means a work that combines Covered Software with other material, in+ a separate file or files, that is not Covered Software.++1.8. "License"+ means this document.++1.9. "Licensable"+ means having the right to grant, to the maximum extent possible,+ whether at the time of the initial grant or subsequently, any and+ all of the rights conveyed by this License.++1.10. "Modifications"+ means any of the following:++ (a) any file in Source Code Form that results from an addition to,+ deletion from, or modification of the contents of Covered+ Software; or++ (b) any new file in Source Code Form that contains any Covered+ Software.++1.11. "Patent Claims" of a Contributor+ means any patent claim(s), including without limitation, method,+ process, and apparatus claims, in any patent Licensable by such+ Contributor that would be infringed, but for the grant of the+ License, by the making, using, selling, offering for sale, having+ made, import, or transfer of either its Contributions or its+ Contributor Version.++1.12. "Secondary License"+ means either the GNU General Public License, Version 2.0, the GNU+ Lesser General Public License, Version 2.1, the GNU Affero General+ Public License, Version 3.0, or any later versions of those+ licenses.++1.13. "Source Code Form"+ means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+ means an individual or a legal entity exercising rights under this+ License. For legal entities, "You" includes any entity that+ controls, is controlled by, or is under common control with You. For+ purposes of this definition, "control" means (a) the power, direct+ or indirect, to cause the direction or management of such entity,+ whether by contract or otherwise, or (b) ownership of more than+ fifty percent (50%) of the outstanding shares or beneficial+ ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+ Licensable by such Contributor to use, reproduce, make available,+ modify, display, perform, distribute, and otherwise exploit its+ Contributions, either on an unmodified basis, with Modifications, or+ as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+ for sale, have made, import, and otherwise transfer either its+ Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+ or++(b) for infringements caused by: (i) Your and any other third party's+ modifications of Covered Software, or (ii) the combination of its+ Contributions with other software (except as part of its Contributor+ Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+ its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+ Form, as described in Section 3.1, and You must inform recipients of+ the Executable Form how they can obtain a copy of such Source Code+ Form by reasonable means in a timely manner, at a charge no more+ than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+ License, or sublicense it under different terms, provided that the+ license for the Executable Form does not attempt to limit or alter+ the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+* *+* 6. Disclaimer of Warranty *+* ------------------------- *+* *+* Covered Software is provided under this License on an "as is" *+* basis, without warranty of any kind, either expressed, implied, or *+* statutory, including, without limitation, warranties that the *+* Covered Software is free of defects, merchantable, fit for a *+* particular purpose or non-infringing. The entire risk as to the *+* quality and performance of the Covered Software is with You. *+* Should any Covered Software prove defective in any respect, You *+* (not any Contributor) assume the cost of any necessary servicing, *+* repair, or correction. This disclaimer of warranty constitutes an *+* essential part of this License. No use of any Covered Software is *+* authorized under this License except under this disclaimer. *+* *+************************************************************************++************************************************************************+* *+* 7. Limitation of Liability *+* -------------------------- *+* *+* Under no circumstances and under no legal theory, whether tort *+* (including negligence), contract, or otherwise, shall any *+* Contributor, or anyone who distributes Covered Software as *+* permitted above, be liable to You for any direct, indirect, *+* special, incidental, or consequential damages of any character *+* including, without limitation, damages for lost profits, loss of *+* goodwill, work stoppage, computer failure or malfunction, or any *+* and all other commercial damages or losses, even if such party *+* shall have been informed of the possibility of such damages. This *+* limitation of liability shall not apply to liability for death or *+* personal injury resulting from such party's negligence to the *+* extent applicable law prohibits such limitation. Some *+* jurisdictions do not allow the exclusion or limitation of *+* incidental or consequential damages, so this exclusion and *+* limitation may not apply to You. *+* *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++ This Source Code Form is subject to the terms of the Mozilla Public+ License, v. 2.0. If a copy of the MPL was not distributed with this+ file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,44 @@+# Amazon DevOps Guru SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2020-12-01@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-devops-guru)+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.DevOpsGuru](http://hackage.haskell.org/package/amazonka-devops-guru/docs/Amazonka-DevOpsGuru.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-devops-guru` 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-devops-guru.cabal view
@@ -0,0 +1,226 @@+cabal-version: 2.2+name: amazonka-devops-guru+version: 2.0+synopsis: Amazon DevOps Guru SDK.+homepage: https://github.com/brendanhay/amazonka+bug-reports: https://github.com/brendanhay/amazonka/issues+license: MPL-2.0+license-file: LICENSE+author: Brendan Hay+maintainer:+ Brendan Hay <brendan.g.hay+amazonka@gmail.com>, Jack Kelly <jack@jackkelly.name>++copyright: Copyright (c) 2013-2023 Brendan Hay+category: AWS+build-type: Simple+extra-source-files:+ fixture/*.proto+ fixture/*.yaml+ README.md+ src/.gitkeep++description:+ Derived from API version @2020-12-01@ 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.DevOpsGuru.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.DevOpsGuru" 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-devops-guru++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.DevOpsGuru+ Amazonka.DevOpsGuru.AddNotificationChannel+ Amazonka.DevOpsGuru.DeleteInsight+ Amazonka.DevOpsGuru.DescribeAccountHealth+ Amazonka.DevOpsGuru.DescribeAccountOverview+ Amazonka.DevOpsGuru.DescribeAnomaly+ Amazonka.DevOpsGuru.DescribeEventSourcesConfig+ Amazonka.DevOpsGuru.DescribeFeedback+ Amazonka.DevOpsGuru.DescribeInsight+ Amazonka.DevOpsGuru.DescribeOrganizationHealth+ Amazonka.DevOpsGuru.DescribeOrganizationOverview+ Amazonka.DevOpsGuru.DescribeOrganizationResourceCollectionHealth+ Amazonka.DevOpsGuru.DescribeResourceCollectionHealth+ Amazonka.DevOpsGuru.DescribeServiceIntegration+ Amazonka.DevOpsGuru.GetCostEstimation+ Amazonka.DevOpsGuru.GetResourceCollection+ Amazonka.DevOpsGuru.Lens+ Amazonka.DevOpsGuru.ListAnomaliesForInsight+ Amazonka.DevOpsGuru.ListAnomalousLogGroups+ Amazonka.DevOpsGuru.ListEvents+ Amazonka.DevOpsGuru.ListInsights+ Amazonka.DevOpsGuru.ListMonitoredResources+ Amazonka.DevOpsGuru.ListNotificationChannels+ Amazonka.DevOpsGuru.ListOrganizationInsights+ Amazonka.DevOpsGuru.ListRecommendations+ Amazonka.DevOpsGuru.PutFeedback+ Amazonka.DevOpsGuru.RemoveNotificationChannel+ Amazonka.DevOpsGuru.SearchInsights+ Amazonka.DevOpsGuru.SearchOrganizationInsights+ Amazonka.DevOpsGuru.StartCostEstimation+ Amazonka.DevOpsGuru.Types+ Amazonka.DevOpsGuru.Types.AccountHealth+ Amazonka.DevOpsGuru.Types.AccountInsightHealth+ Amazonka.DevOpsGuru.Types.AmazonCodeGuruProfilerIntegration+ Amazonka.DevOpsGuru.Types.AnomalousLogGroup+ Amazonka.DevOpsGuru.Types.AnomalyReportedTimeRange+ Amazonka.DevOpsGuru.Types.AnomalyResource+ Amazonka.DevOpsGuru.Types.AnomalySeverity+ Amazonka.DevOpsGuru.Types.AnomalySourceDetails+ Amazonka.DevOpsGuru.Types.AnomalySourceMetadata+ Amazonka.DevOpsGuru.Types.AnomalyStatus+ Amazonka.DevOpsGuru.Types.AnomalyTimeRange+ Amazonka.DevOpsGuru.Types.AnomalyType+ Amazonka.DevOpsGuru.Types.CloudFormationCollection+ Amazonka.DevOpsGuru.Types.CloudFormationCollectionFilter+ Amazonka.DevOpsGuru.Types.CloudFormationCostEstimationResourceCollectionFilter+ Amazonka.DevOpsGuru.Types.CloudFormationHealth+ Amazonka.DevOpsGuru.Types.CloudWatchMetricDataStatusCode+ Amazonka.DevOpsGuru.Types.CloudWatchMetricsDataSummary+ Amazonka.DevOpsGuru.Types.CloudWatchMetricsDetail+ Amazonka.DevOpsGuru.Types.CloudWatchMetricsDimension+ Amazonka.DevOpsGuru.Types.CloudWatchMetricsStat+ Amazonka.DevOpsGuru.Types.CostEstimationResourceCollectionFilter+ Amazonka.DevOpsGuru.Types.CostEstimationServiceResourceState+ Amazonka.DevOpsGuru.Types.CostEstimationStatus+ Amazonka.DevOpsGuru.Types.CostEstimationTimeRange+ Amazonka.DevOpsGuru.Types.EndTimeRange+ Amazonka.DevOpsGuru.Types.Event+ Amazonka.DevOpsGuru.Types.EventClass+ Amazonka.DevOpsGuru.Types.EventDataSource+ Amazonka.DevOpsGuru.Types.EventResource+ Amazonka.DevOpsGuru.Types.EventSourceOptInStatus+ Amazonka.DevOpsGuru.Types.EventSourcesConfig+ Amazonka.DevOpsGuru.Types.EventTimeRange+ Amazonka.DevOpsGuru.Types.InsightFeedback+ Amazonka.DevOpsGuru.Types.InsightFeedbackOption+ Amazonka.DevOpsGuru.Types.InsightHealth+ Amazonka.DevOpsGuru.Types.InsightSeverity+ Amazonka.DevOpsGuru.Types.InsightStatus+ Amazonka.DevOpsGuru.Types.InsightTimeRange+ Amazonka.DevOpsGuru.Types.InsightType+ Amazonka.DevOpsGuru.Types.ListEventsFilters+ Amazonka.DevOpsGuru.Types.ListInsightsAnyStatusFilter+ Amazonka.DevOpsGuru.Types.ListInsightsClosedStatusFilter+ Amazonka.DevOpsGuru.Types.ListInsightsOngoingStatusFilter+ Amazonka.DevOpsGuru.Types.ListInsightsStatusFilter+ Amazonka.DevOpsGuru.Types.ListMonitoredResourcesFilters+ Amazonka.DevOpsGuru.Types.Locale+ Amazonka.DevOpsGuru.Types.LogAnomalyClass+ Amazonka.DevOpsGuru.Types.LogAnomalyShowcase+ Amazonka.DevOpsGuru.Types.LogAnomalyType+ Amazonka.DevOpsGuru.Types.LogsAnomalyDetectionIntegration+ Amazonka.DevOpsGuru.Types.LogsAnomalyDetectionIntegrationConfig+ Amazonka.DevOpsGuru.Types.MonitoredResourceIdentifier+ Amazonka.DevOpsGuru.Types.NotificationChannel+ Amazonka.DevOpsGuru.Types.NotificationChannelConfig+ Amazonka.DevOpsGuru.Types.NotificationFilterConfig+ Amazonka.DevOpsGuru.Types.NotificationMessageType+ Amazonka.DevOpsGuru.Types.OpsCenterIntegration+ Amazonka.DevOpsGuru.Types.OpsCenterIntegrationConfig+ Amazonka.DevOpsGuru.Types.OptInStatus+ Amazonka.DevOpsGuru.Types.OrganizationResourceCollectionType+ Amazonka.DevOpsGuru.Types.PerformanceInsightsMetricDimensionGroup+ Amazonka.DevOpsGuru.Types.PerformanceInsightsMetricQuery+ Amazonka.DevOpsGuru.Types.PerformanceInsightsMetricsDetail+ Amazonka.DevOpsGuru.Types.PerformanceInsightsReferenceComparisonValues+ Amazonka.DevOpsGuru.Types.PerformanceInsightsReferenceData+ Amazonka.DevOpsGuru.Types.PerformanceInsightsReferenceMetric+ Amazonka.DevOpsGuru.Types.PerformanceInsightsReferenceScalar+ Amazonka.DevOpsGuru.Types.PerformanceInsightsStat+ Amazonka.DevOpsGuru.Types.PredictionTimeRange+ Amazonka.DevOpsGuru.Types.ProactiveAnomaly+ Amazonka.DevOpsGuru.Types.ProactiveAnomalySummary+ Amazonka.DevOpsGuru.Types.ProactiveInsight+ Amazonka.DevOpsGuru.Types.ProactiveInsightSummary+ Amazonka.DevOpsGuru.Types.ProactiveOrganizationInsightSummary+ Amazonka.DevOpsGuru.Types.ReactiveAnomaly+ Amazonka.DevOpsGuru.Types.ReactiveAnomalySummary+ Amazonka.DevOpsGuru.Types.ReactiveInsight+ Amazonka.DevOpsGuru.Types.ReactiveInsightSummary+ Amazonka.DevOpsGuru.Types.ReactiveOrganizationInsightSummary+ Amazonka.DevOpsGuru.Types.Recommendation+ Amazonka.DevOpsGuru.Types.RecommendationRelatedAnomaly+ Amazonka.DevOpsGuru.Types.RecommendationRelatedAnomalyResource+ Amazonka.DevOpsGuru.Types.RecommendationRelatedAnomalySourceDetail+ Amazonka.DevOpsGuru.Types.RecommendationRelatedCloudWatchMetricsSourceDetail+ Amazonka.DevOpsGuru.Types.RecommendationRelatedEvent+ Amazonka.DevOpsGuru.Types.RecommendationRelatedEventResource+ Amazonka.DevOpsGuru.Types.ResourceCollection+ Amazonka.DevOpsGuru.Types.ResourceCollectionFilter+ Amazonka.DevOpsGuru.Types.ResourceCollectionType+ Amazonka.DevOpsGuru.Types.ResourcePermission+ Amazonka.DevOpsGuru.Types.ResourceTypeFilter+ Amazonka.DevOpsGuru.Types.SearchInsightsFilters+ Amazonka.DevOpsGuru.Types.SearchOrganizationInsightsFilters+ Amazonka.DevOpsGuru.Types.ServiceCollection+ Amazonka.DevOpsGuru.Types.ServiceHealth+ Amazonka.DevOpsGuru.Types.ServiceInsightHealth+ Amazonka.DevOpsGuru.Types.ServiceIntegrationConfig+ Amazonka.DevOpsGuru.Types.ServiceName+ Amazonka.DevOpsGuru.Types.ServiceResourceCost+ Amazonka.DevOpsGuru.Types.SnsChannelConfig+ Amazonka.DevOpsGuru.Types.StartTimeRange+ Amazonka.DevOpsGuru.Types.TagCollection+ Amazonka.DevOpsGuru.Types.TagCollectionFilter+ Amazonka.DevOpsGuru.Types.TagCostEstimationResourceCollectionFilter+ Amazonka.DevOpsGuru.Types.TagHealth+ Amazonka.DevOpsGuru.Types.TimestampMetricValuePair+ Amazonka.DevOpsGuru.Types.UpdateCloudFormationCollectionFilter+ Amazonka.DevOpsGuru.Types.UpdateResourceCollectionAction+ Amazonka.DevOpsGuru.Types.UpdateResourceCollectionFilter+ Amazonka.DevOpsGuru.Types.UpdateServiceIntegrationConfig+ Amazonka.DevOpsGuru.Types.UpdateTagCollectionFilter+ Amazonka.DevOpsGuru.UpdateEventSourcesConfig+ Amazonka.DevOpsGuru.UpdateResourceCollection+ Amazonka.DevOpsGuru.UpdateServiceIntegration+ Amazonka.DevOpsGuru.Waiters++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , base >=4.12 && <5++test-suite amazonka-devops-guru-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.DevOpsGuru+ Test.Amazonka.DevOpsGuru.Internal+ Test.Amazonka.Gen.DevOpsGuru++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , amazonka-devops-guru+ , amazonka-test >=2.0 && <2.1+ , base+ , bytestring+ , case-insensitive+ , tasty+ , tasty-hunit+ , text+ , time+ , unordered-containers
+ fixture/AddNotificationChannel.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/AddNotificationChannelResponse.proto view
+ fixture/DeleteInsight.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/DeleteInsightResponse.proto view
+ fixture/DescribeAccountHealth.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/DescribeAccountHealthResponse.proto view
+ fixture/DescribeAccountOverview.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/DescribeAccountOverviewResponse.proto view
+ fixture/DescribeAnomaly.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/DescribeAnomalyResponse.proto view
+ fixture/DescribeEventSourcesConfig.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/DescribeEventSourcesConfigResponse.proto view
+ fixture/DescribeFeedback.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/DescribeFeedbackResponse.proto view
+ fixture/DescribeInsight.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/DescribeInsightResponse.proto view
+ fixture/DescribeOrganizationHealth.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/DescribeOrganizationHealthResponse.proto view
+ fixture/DescribeOrganizationOverview.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/DescribeOrganizationOverviewResponse.proto view
+ fixture/DescribeOrganizationResourceCollectionHealth.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/DescribeOrganizationResourceCollectionHealthResponse.proto view
+ fixture/DescribeResourceCollectionHealth.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/DescribeResourceCollectionHealthResponse.proto view
+ fixture/DescribeServiceIntegration.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/DescribeServiceIntegrationResponse.proto view
+ fixture/GetCostEstimation.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/GetCostEstimationResponse.proto view
+ fixture/GetResourceCollection.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/GetResourceCollectionResponse.proto view
+ fixture/ListAnomaliesForInsight.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/ListAnomaliesForInsightResponse.proto view
+ fixture/ListAnomalousLogGroups.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/ListAnomalousLogGroupsResponse.proto view
+ fixture/ListEvents.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/ListEventsResponse.proto view
+ fixture/ListInsights.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/ListInsightsResponse.proto view
+ fixture/ListMonitoredResources.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/ListMonitoredResourcesResponse.proto view
+ fixture/ListNotificationChannels.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/ListNotificationChannelsResponse.proto view
+ fixture/ListOrganizationInsights.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/ListOrganizationInsightsResponse.proto view
+ fixture/ListRecommendations.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/ListRecommendationsResponse.proto view
+ fixture/PutFeedback.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/RemoveNotificationChannel.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/RemoveNotificationChannelResponse.proto view
+ fixture/SearchInsights.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/SearchInsightsResponse.proto view
+ fixture/SearchOrganizationInsights.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/SearchOrganizationInsightsResponse.proto view
+ fixture/StartCostEstimation.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/StartCostEstimationResponse.proto view
+ fixture/UpdateEventSourcesConfig.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/UpdateEventSourcesConfigResponse.proto view
+ fixture/UpdateResourceCollection.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/UpdateResourceCollectionResponse.proto view
+ fixture/UpdateServiceIntegration.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/devops-guru/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: devops-guru.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/UpdateServiceIntegrationResponse.proto view
+ gen/Amazonka/DevOpsGuru.hs view
@@ -0,0 +1,743 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Amazonka.DevOpsGuru+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Derived from API version @2020-12-01@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Amazon DevOps Guru is a fully managed service that helps you identify+-- anomalous behavior in business critical operational applications. You+-- specify the Amazon Web Services resources that you want DevOps Guru to+-- cover, then the Amazon CloudWatch metrics and Amazon Web Services+-- CloudTrail events related to those resources are analyzed. When+-- anomalous behavior is detected, DevOps Guru creates an /insight/ that+-- includes recommendations, related events, and related metrics that can+-- help you improve your operational applications. For more information,+-- see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/welcome.html What is Amazon DevOps Guru>.+--+-- You can specify 1 or 2 Amazon Simple Notification Service topics so you+-- are notified every time a new insight is created. You can also enable+-- DevOps Guru to generate an OpsItem in Amazon Web Services Systems+-- Manager for each insight to help you manage and track your work+-- addressing insights.+--+-- To learn about the DevOps Guru workflow, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/welcome.html#how-it-works How DevOps Guru works>.+-- To learn about DevOps Guru concepts, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/concepts.html Concepts in DevOps Guru>.+module Amazonka.DevOpsGuru+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ -- $errors++ -- ** AccessDeniedException+ _AccessDeniedException,++ -- ** ConflictException+ _ConflictException,++ -- ** InternalServerException+ _InternalServerException,++ -- ** ResourceNotFoundException+ _ResourceNotFoundException,++ -- ** ServiceQuotaExceededException+ _ServiceQuotaExceededException,++ -- ** ThrottlingException+ _ThrottlingException,++ -- ** ValidationException+ _ValidationException,++ -- * Waiters+ -- $waiters++ -- * Operations+ -- $operations++ -- ** AddNotificationChannel+ AddNotificationChannel (AddNotificationChannel'),+ newAddNotificationChannel,+ AddNotificationChannelResponse (AddNotificationChannelResponse'),+ newAddNotificationChannelResponse,++ -- ** DeleteInsight+ DeleteInsight (DeleteInsight'),+ newDeleteInsight,+ DeleteInsightResponse (DeleteInsightResponse'),+ newDeleteInsightResponse,++ -- ** DescribeAccountHealth+ DescribeAccountHealth (DescribeAccountHealth'),+ newDescribeAccountHealth,+ DescribeAccountHealthResponse (DescribeAccountHealthResponse'),+ newDescribeAccountHealthResponse,++ -- ** DescribeAccountOverview+ DescribeAccountOverview (DescribeAccountOverview'),+ newDescribeAccountOverview,+ DescribeAccountOverviewResponse (DescribeAccountOverviewResponse'),+ newDescribeAccountOverviewResponse,++ -- ** DescribeAnomaly+ DescribeAnomaly (DescribeAnomaly'),+ newDescribeAnomaly,+ DescribeAnomalyResponse (DescribeAnomalyResponse'),+ newDescribeAnomalyResponse,++ -- ** DescribeEventSourcesConfig+ DescribeEventSourcesConfig (DescribeEventSourcesConfig'),+ newDescribeEventSourcesConfig,+ DescribeEventSourcesConfigResponse (DescribeEventSourcesConfigResponse'),+ newDescribeEventSourcesConfigResponse,++ -- ** DescribeFeedback+ DescribeFeedback (DescribeFeedback'),+ newDescribeFeedback,+ DescribeFeedbackResponse (DescribeFeedbackResponse'),+ newDescribeFeedbackResponse,++ -- ** DescribeInsight+ DescribeInsight (DescribeInsight'),+ newDescribeInsight,+ DescribeInsightResponse (DescribeInsightResponse'),+ newDescribeInsightResponse,++ -- ** DescribeOrganizationHealth+ DescribeOrganizationHealth (DescribeOrganizationHealth'),+ newDescribeOrganizationHealth,+ DescribeOrganizationHealthResponse (DescribeOrganizationHealthResponse'),+ newDescribeOrganizationHealthResponse,++ -- ** DescribeOrganizationOverview+ DescribeOrganizationOverview (DescribeOrganizationOverview'),+ newDescribeOrganizationOverview,+ DescribeOrganizationOverviewResponse (DescribeOrganizationOverviewResponse'),+ newDescribeOrganizationOverviewResponse,++ -- ** DescribeOrganizationResourceCollectionHealth (Paginated)+ DescribeOrganizationResourceCollectionHealth (DescribeOrganizationResourceCollectionHealth'),+ newDescribeOrganizationResourceCollectionHealth,+ DescribeOrganizationResourceCollectionHealthResponse (DescribeOrganizationResourceCollectionHealthResponse'),+ newDescribeOrganizationResourceCollectionHealthResponse,++ -- ** DescribeResourceCollectionHealth (Paginated)+ DescribeResourceCollectionHealth (DescribeResourceCollectionHealth'),+ newDescribeResourceCollectionHealth,+ DescribeResourceCollectionHealthResponse (DescribeResourceCollectionHealthResponse'),+ newDescribeResourceCollectionHealthResponse,++ -- ** DescribeServiceIntegration+ DescribeServiceIntegration (DescribeServiceIntegration'),+ newDescribeServiceIntegration,+ DescribeServiceIntegrationResponse (DescribeServiceIntegrationResponse'),+ newDescribeServiceIntegrationResponse,++ -- ** GetCostEstimation (Paginated)+ GetCostEstimation (GetCostEstimation'),+ newGetCostEstimation,+ GetCostEstimationResponse (GetCostEstimationResponse'),+ newGetCostEstimationResponse,++ -- ** GetResourceCollection (Paginated)+ GetResourceCollection (GetResourceCollection'),+ newGetResourceCollection,+ GetResourceCollectionResponse (GetResourceCollectionResponse'),+ newGetResourceCollectionResponse,++ -- ** ListAnomaliesForInsight (Paginated)+ ListAnomaliesForInsight (ListAnomaliesForInsight'),+ newListAnomaliesForInsight,+ ListAnomaliesForInsightResponse (ListAnomaliesForInsightResponse'),+ newListAnomaliesForInsightResponse,++ -- ** ListAnomalousLogGroups (Paginated)+ ListAnomalousLogGroups (ListAnomalousLogGroups'),+ newListAnomalousLogGroups,+ ListAnomalousLogGroupsResponse (ListAnomalousLogGroupsResponse'),+ newListAnomalousLogGroupsResponse,++ -- ** ListEvents (Paginated)+ ListEvents (ListEvents'),+ newListEvents,+ ListEventsResponse (ListEventsResponse'),+ newListEventsResponse,++ -- ** ListInsights (Paginated)+ ListInsights (ListInsights'),+ newListInsights,+ ListInsightsResponse (ListInsightsResponse'),+ newListInsightsResponse,++ -- ** ListMonitoredResources (Paginated)+ ListMonitoredResources (ListMonitoredResources'),+ newListMonitoredResources,+ ListMonitoredResourcesResponse (ListMonitoredResourcesResponse'),+ newListMonitoredResourcesResponse,++ -- ** ListNotificationChannels (Paginated)+ ListNotificationChannels (ListNotificationChannels'),+ newListNotificationChannels,+ ListNotificationChannelsResponse (ListNotificationChannelsResponse'),+ newListNotificationChannelsResponse,++ -- ** ListOrganizationInsights (Paginated)+ ListOrganizationInsights (ListOrganizationInsights'),+ newListOrganizationInsights,+ ListOrganizationInsightsResponse (ListOrganizationInsightsResponse'),+ newListOrganizationInsightsResponse,++ -- ** ListRecommendations (Paginated)+ ListRecommendations (ListRecommendations'),+ newListRecommendations,+ ListRecommendationsResponse (ListRecommendationsResponse'),+ newListRecommendationsResponse,++ -- ** PutFeedback+ PutFeedback (PutFeedback'),+ newPutFeedback,+ PutFeedbackResponse (PutFeedbackResponse'),+ newPutFeedbackResponse,++ -- ** RemoveNotificationChannel+ RemoveNotificationChannel (RemoveNotificationChannel'),+ newRemoveNotificationChannel,+ RemoveNotificationChannelResponse (RemoveNotificationChannelResponse'),+ newRemoveNotificationChannelResponse,++ -- ** SearchInsights (Paginated)+ SearchInsights (SearchInsights'),+ newSearchInsights,+ SearchInsightsResponse (SearchInsightsResponse'),+ newSearchInsightsResponse,++ -- ** SearchOrganizationInsights (Paginated)+ SearchOrganizationInsights (SearchOrganizationInsights'),+ newSearchOrganizationInsights,+ SearchOrganizationInsightsResponse (SearchOrganizationInsightsResponse'),+ newSearchOrganizationInsightsResponse,++ -- ** StartCostEstimation+ StartCostEstimation (StartCostEstimation'),+ newStartCostEstimation,+ StartCostEstimationResponse (StartCostEstimationResponse'),+ newStartCostEstimationResponse,++ -- ** UpdateEventSourcesConfig+ UpdateEventSourcesConfig (UpdateEventSourcesConfig'),+ newUpdateEventSourcesConfig,+ UpdateEventSourcesConfigResponse (UpdateEventSourcesConfigResponse'),+ newUpdateEventSourcesConfigResponse,++ -- ** UpdateResourceCollection+ UpdateResourceCollection (UpdateResourceCollection'),+ newUpdateResourceCollection,+ UpdateResourceCollectionResponse (UpdateResourceCollectionResponse'),+ newUpdateResourceCollectionResponse,++ -- ** UpdateServiceIntegration+ UpdateServiceIntegration (UpdateServiceIntegration'),+ newUpdateServiceIntegration,+ UpdateServiceIntegrationResponse (UpdateServiceIntegrationResponse'),+ newUpdateServiceIntegrationResponse,++ -- * Types++ -- ** AnomalySeverity+ AnomalySeverity (..),++ -- ** AnomalyStatus+ AnomalyStatus (..),++ -- ** AnomalyType+ AnomalyType (..),++ -- ** CloudWatchMetricDataStatusCode+ CloudWatchMetricDataStatusCode (..),++ -- ** CloudWatchMetricsStat+ CloudWatchMetricsStat (..),++ -- ** CostEstimationServiceResourceState+ CostEstimationServiceResourceState (..),++ -- ** CostEstimationStatus+ CostEstimationStatus (..),++ -- ** EventClass+ EventClass (..),++ -- ** EventDataSource+ EventDataSource (..),++ -- ** EventSourceOptInStatus+ EventSourceOptInStatus (..),++ -- ** InsightFeedbackOption+ InsightFeedbackOption (..),++ -- ** InsightSeverity+ InsightSeverity (..),++ -- ** InsightStatus+ InsightStatus (..),++ -- ** InsightType+ InsightType (..),++ -- ** Locale+ Locale (..),++ -- ** LogAnomalyType+ LogAnomalyType (..),++ -- ** NotificationMessageType+ NotificationMessageType (..),++ -- ** OptInStatus+ OptInStatus (..),++ -- ** OrganizationResourceCollectionType+ OrganizationResourceCollectionType (..),++ -- ** ResourceCollectionType+ ResourceCollectionType (..),++ -- ** ResourcePermission+ ResourcePermission (..),++ -- ** ResourceTypeFilter+ ResourceTypeFilter (..),++ -- ** ServiceName+ ServiceName (..),++ -- ** UpdateResourceCollectionAction+ UpdateResourceCollectionAction (..),++ -- ** AccountHealth+ AccountHealth (AccountHealth'),+ newAccountHealth,++ -- ** AccountInsightHealth+ AccountInsightHealth (AccountInsightHealth'),+ newAccountInsightHealth,++ -- ** AmazonCodeGuruProfilerIntegration+ AmazonCodeGuruProfilerIntegration (AmazonCodeGuruProfilerIntegration'),+ newAmazonCodeGuruProfilerIntegration,++ -- ** AnomalousLogGroup+ AnomalousLogGroup (AnomalousLogGroup'),+ newAnomalousLogGroup,++ -- ** AnomalyReportedTimeRange+ AnomalyReportedTimeRange (AnomalyReportedTimeRange'),+ newAnomalyReportedTimeRange,++ -- ** AnomalyResource+ AnomalyResource (AnomalyResource'),+ newAnomalyResource,++ -- ** AnomalySourceDetails+ AnomalySourceDetails (AnomalySourceDetails'),+ newAnomalySourceDetails,++ -- ** AnomalySourceMetadata+ AnomalySourceMetadata (AnomalySourceMetadata'),+ newAnomalySourceMetadata,++ -- ** AnomalyTimeRange+ AnomalyTimeRange (AnomalyTimeRange'),+ newAnomalyTimeRange,++ -- ** CloudFormationCollection+ CloudFormationCollection (CloudFormationCollection'),+ newCloudFormationCollection,++ -- ** CloudFormationCollectionFilter+ CloudFormationCollectionFilter (CloudFormationCollectionFilter'),+ newCloudFormationCollectionFilter,++ -- ** CloudFormationCostEstimationResourceCollectionFilter+ CloudFormationCostEstimationResourceCollectionFilter (CloudFormationCostEstimationResourceCollectionFilter'),+ newCloudFormationCostEstimationResourceCollectionFilter,++ -- ** CloudFormationHealth+ CloudFormationHealth (CloudFormationHealth'),+ newCloudFormationHealth,++ -- ** CloudWatchMetricsDataSummary+ CloudWatchMetricsDataSummary (CloudWatchMetricsDataSummary'),+ newCloudWatchMetricsDataSummary,++ -- ** CloudWatchMetricsDetail+ CloudWatchMetricsDetail (CloudWatchMetricsDetail'),+ newCloudWatchMetricsDetail,++ -- ** CloudWatchMetricsDimension+ CloudWatchMetricsDimension (CloudWatchMetricsDimension'),+ newCloudWatchMetricsDimension,++ -- ** CostEstimationResourceCollectionFilter+ CostEstimationResourceCollectionFilter (CostEstimationResourceCollectionFilter'),+ newCostEstimationResourceCollectionFilter,++ -- ** CostEstimationTimeRange+ CostEstimationTimeRange (CostEstimationTimeRange'),+ newCostEstimationTimeRange,++ -- ** EndTimeRange+ EndTimeRange (EndTimeRange'),+ newEndTimeRange,++ -- ** Event+ Event (Event'),+ newEvent,++ -- ** EventResource+ EventResource (EventResource'),+ newEventResource,++ -- ** EventSourcesConfig+ EventSourcesConfig (EventSourcesConfig'),+ newEventSourcesConfig,++ -- ** EventTimeRange+ EventTimeRange (EventTimeRange'),+ newEventTimeRange,++ -- ** InsightFeedback+ InsightFeedback (InsightFeedback'),+ newInsightFeedback,++ -- ** InsightHealth+ InsightHealth (InsightHealth'),+ newInsightHealth,++ -- ** InsightTimeRange+ InsightTimeRange (InsightTimeRange'),+ newInsightTimeRange,++ -- ** ListEventsFilters+ ListEventsFilters (ListEventsFilters'),+ newListEventsFilters,++ -- ** ListInsightsAnyStatusFilter+ ListInsightsAnyStatusFilter (ListInsightsAnyStatusFilter'),+ newListInsightsAnyStatusFilter,++ -- ** ListInsightsClosedStatusFilter+ ListInsightsClosedStatusFilter (ListInsightsClosedStatusFilter'),+ newListInsightsClosedStatusFilter,++ -- ** ListInsightsOngoingStatusFilter+ ListInsightsOngoingStatusFilter (ListInsightsOngoingStatusFilter'),+ newListInsightsOngoingStatusFilter,++ -- ** ListInsightsStatusFilter+ ListInsightsStatusFilter (ListInsightsStatusFilter'),+ newListInsightsStatusFilter,++ -- ** ListMonitoredResourcesFilters+ ListMonitoredResourcesFilters (ListMonitoredResourcesFilters'),+ newListMonitoredResourcesFilters,++ -- ** LogAnomalyClass+ LogAnomalyClass (LogAnomalyClass'),+ newLogAnomalyClass,++ -- ** LogAnomalyShowcase+ LogAnomalyShowcase (LogAnomalyShowcase'),+ newLogAnomalyShowcase,++ -- ** LogsAnomalyDetectionIntegration+ LogsAnomalyDetectionIntegration (LogsAnomalyDetectionIntegration'),+ newLogsAnomalyDetectionIntegration,++ -- ** LogsAnomalyDetectionIntegrationConfig+ LogsAnomalyDetectionIntegrationConfig (LogsAnomalyDetectionIntegrationConfig'),+ newLogsAnomalyDetectionIntegrationConfig,++ -- ** MonitoredResourceIdentifier+ MonitoredResourceIdentifier (MonitoredResourceIdentifier'),+ newMonitoredResourceIdentifier,++ -- ** NotificationChannel+ NotificationChannel (NotificationChannel'),+ newNotificationChannel,++ -- ** NotificationChannelConfig+ NotificationChannelConfig (NotificationChannelConfig'),+ newNotificationChannelConfig,++ -- ** NotificationFilterConfig+ NotificationFilterConfig (NotificationFilterConfig'),+ newNotificationFilterConfig,++ -- ** OpsCenterIntegration+ OpsCenterIntegration (OpsCenterIntegration'),+ newOpsCenterIntegration,++ -- ** OpsCenterIntegrationConfig+ OpsCenterIntegrationConfig (OpsCenterIntegrationConfig'),+ newOpsCenterIntegrationConfig,++ -- ** PerformanceInsightsMetricDimensionGroup+ PerformanceInsightsMetricDimensionGroup (PerformanceInsightsMetricDimensionGroup'),+ newPerformanceInsightsMetricDimensionGroup,++ -- ** PerformanceInsightsMetricQuery+ PerformanceInsightsMetricQuery (PerformanceInsightsMetricQuery'),+ newPerformanceInsightsMetricQuery,++ -- ** PerformanceInsightsMetricsDetail+ PerformanceInsightsMetricsDetail (PerformanceInsightsMetricsDetail'),+ newPerformanceInsightsMetricsDetail,++ -- ** PerformanceInsightsReferenceComparisonValues+ PerformanceInsightsReferenceComparisonValues (PerformanceInsightsReferenceComparisonValues'),+ newPerformanceInsightsReferenceComparisonValues,++ -- ** PerformanceInsightsReferenceData+ PerformanceInsightsReferenceData (PerformanceInsightsReferenceData'),+ newPerformanceInsightsReferenceData,++ -- ** PerformanceInsightsReferenceMetric+ PerformanceInsightsReferenceMetric (PerformanceInsightsReferenceMetric'),+ newPerformanceInsightsReferenceMetric,++ -- ** PerformanceInsightsReferenceScalar+ PerformanceInsightsReferenceScalar (PerformanceInsightsReferenceScalar'),+ newPerformanceInsightsReferenceScalar,++ -- ** PerformanceInsightsStat+ PerformanceInsightsStat (PerformanceInsightsStat'),+ newPerformanceInsightsStat,++ -- ** PredictionTimeRange+ PredictionTimeRange (PredictionTimeRange'),+ newPredictionTimeRange,++ -- ** ProactiveAnomaly+ ProactiveAnomaly (ProactiveAnomaly'),+ newProactiveAnomaly,++ -- ** ProactiveAnomalySummary+ ProactiveAnomalySummary (ProactiveAnomalySummary'),+ newProactiveAnomalySummary,++ -- ** ProactiveInsight+ ProactiveInsight (ProactiveInsight'),+ newProactiveInsight,++ -- ** ProactiveInsightSummary+ ProactiveInsightSummary (ProactiveInsightSummary'),+ newProactiveInsightSummary,++ -- ** ProactiveOrganizationInsightSummary+ ProactiveOrganizationInsightSummary (ProactiveOrganizationInsightSummary'),+ newProactiveOrganizationInsightSummary,++ -- ** ReactiveAnomaly+ ReactiveAnomaly (ReactiveAnomaly'),+ newReactiveAnomaly,++ -- ** ReactiveAnomalySummary+ ReactiveAnomalySummary (ReactiveAnomalySummary'),+ newReactiveAnomalySummary,++ -- ** ReactiveInsight+ ReactiveInsight (ReactiveInsight'),+ newReactiveInsight,++ -- ** ReactiveInsightSummary+ ReactiveInsightSummary (ReactiveInsightSummary'),+ newReactiveInsightSummary,++ -- ** ReactiveOrganizationInsightSummary+ ReactiveOrganizationInsightSummary (ReactiveOrganizationInsightSummary'),+ newReactiveOrganizationInsightSummary,++ -- ** Recommendation+ Recommendation (Recommendation'),+ newRecommendation,++ -- ** RecommendationRelatedAnomaly+ RecommendationRelatedAnomaly (RecommendationRelatedAnomaly'),+ newRecommendationRelatedAnomaly,++ -- ** RecommendationRelatedAnomalyResource+ RecommendationRelatedAnomalyResource (RecommendationRelatedAnomalyResource'),+ newRecommendationRelatedAnomalyResource,++ -- ** RecommendationRelatedAnomalySourceDetail+ RecommendationRelatedAnomalySourceDetail (RecommendationRelatedAnomalySourceDetail'),+ newRecommendationRelatedAnomalySourceDetail,++ -- ** RecommendationRelatedCloudWatchMetricsSourceDetail+ RecommendationRelatedCloudWatchMetricsSourceDetail (RecommendationRelatedCloudWatchMetricsSourceDetail'),+ newRecommendationRelatedCloudWatchMetricsSourceDetail,++ -- ** RecommendationRelatedEvent+ RecommendationRelatedEvent (RecommendationRelatedEvent'),+ newRecommendationRelatedEvent,++ -- ** RecommendationRelatedEventResource+ RecommendationRelatedEventResource (RecommendationRelatedEventResource'),+ newRecommendationRelatedEventResource,++ -- ** ResourceCollection+ ResourceCollection (ResourceCollection'),+ newResourceCollection,++ -- ** ResourceCollectionFilter+ ResourceCollectionFilter (ResourceCollectionFilter'),+ newResourceCollectionFilter,++ -- ** SearchInsightsFilters+ SearchInsightsFilters (SearchInsightsFilters'),+ newSearchInsightsFilters,++ -- ** SearchOrganizationInsightsFilters+ SearchOrganizationInsightsFilters (SearchOrganizationInsightsFilters'),+ newSearchOrganizationInsightsFilters,++ -- ** ServiceCollection+ ServiceCollection (ServiceCollection'),+ newServiceCollection,++ -- ** ServiceHealth+ ServiceHealth (ServiceHealth'),+ newServiceHealth,++ -- ** ServiceInsightHealth+ ServiceInsightHealth (ServiceInsightHealth'),+ newServiceInsightHealth,++ -- ** ServiceIntegrationConfig+ ServiceIntegrationConfig (ServiceIntegrationConfig'),+ newServiceIntegrationConfig,++ -- ** ServiceResourceCost+ ServiceResourceCost (ServiceResourceCost'),+ newServiceResourceCost,++ -- ** SnsChannelConfig+ SnsChannelConfig (SnsChannelConfig'),+ newSnsChannelConfig,++ -- ** StartTimeRange+ StartTimeRange (StartTimeRange'),+ newStartTimeRange,++ -- ** TagCollection+ TagCollection (TagCollection'),+ newTagCollection,++ -- ** TagCollectionFilter+ TagCollectionFilter (TagCollectionFilter'),+ newTagCollectionFilter,++ -- ** TagCostEstimationResourceCollectionFilter+ TagCostEstimationResourceCollectionFilter (TagCostEstimationResourceCollectionFilter'),+ newTagCostEstimationResourceCollectionFilter,++ -- ** TagHealth+ TagHealth (TagHealth'),+ newTagHealth,++ -- ** TimestampMetricValuePair+ TimestampMetricValuePair (TimestampMetricValuePair'),+ newTimestampMetricValuePair,++ -- ** UpdateCloudFormationCollectionFilter+ UpdateCloudFormationCollectionFilter (UpdateCloudFormationCollectionFilter'),+ newUpdateCloudFormationCollectionFilter,++ -- ** UpdateResourceCollectionFilter+ UpdateResourceCollectionFilter (UpdateResourceCollectionFilter'),+ newUpdateResourceCollectionFilter,++ -- ** UpdateServiceIntegrationConfig+ UpdateServiceIntegrationConfig (UpdateServiceIntegrationConfig'),+ newUpdateServiceIntegrationConfig,++ -- ** UpdateTagCollectionFilter+ UpdateTagCollectionFilter (UpdateTagCollectionFilter'),+ newUpdateTagCollectionFilter,+ )+where++import Amazonka.DevOpsGuru.AddNotificationChannel+import Amazonka.DevOpsGuru.DeleteInsight+import Amazonka.DevOpsGuru.DescribeAccountHealth+import Amazonka.DevOpsGuru.DescribeAccountOverview+import Amazonka.DevOpsGuru.DescribeAnomaly+import Amazonka.DevOpsGuru.DescribeEventSourcesConfig+import Amazonka.DevOpsGuru.DescribeFeedback+import Amazonka.DevOpsGuru.DescribeInsight+import Amazonka.DevOpsGuru.DescribeOrganizationHealth+import Amazonka.DevOpsGuru.DescribeOrganizationOverview+import Amazonka.DevOpsGuru.DescribeOrganizationResourceCollectionHealth+import Amazonka.DevOpsGuru.DescribeResourceCollectionHealth+import Amazonka.DevOpsGuru.DescribeServiceIntegration+import Amazonka.DevOpsGuru.GetCostEstimation+import Amazonka.DevOpsGuru.GetResourceCollection+import Amazonka.DevOpsGuru.Lens+import Amazonka.DevOpsGuru.ListAnomaliesForInsight+import Amazonka.DevOpsGuru.ListAnomalousLogGroups+import Amazonka.DevOpsGuru.ListEvents+import Amazonka.DevOpsGuru.ListInsights+import Amazonka.DevOpsGuru.ListMonitoredResources+import Amazonka.DevOpsGuru.ListNotificationChannels+import Amazonka.DevOpsGuru.ListOrganizationInsights+import Amazonka.DevOpsGuru.ListRecommendations+import Amazonka.DevOpsGuru.PutFeedback+import Amazonka.DevOpsGuru.RemoveNotificationChannel+import Amazonka.DevOpsGuru.SearchInsights+import Amazonka.DevOpsGuru.SearchOrganizationInsights+import Amazonka.DevOpsGuru.StartCostEstimation+import Amazonka.DevOpsGuru.Types+import Amazonka.DevOpsGuru.UpdateEventSourcesConfig+import Amazonka.DevOpsGuru.UpdateResourceCollection+import Amazonka.DevOpsGuru.UpdateServiceIntegration+import Amazonka.DevOpsGuru.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 'DevOpsGuru'.++-- $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/DevOpsGuru/AddNotificationChannel.hs view
@@ -0,0 +1,194 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.AddNotificationChannel+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds a notification channel to DevOps Guru. A notification channel is+-- used to notify you about important DevOps Guru events, such as when an+-- insight is generated.+--+-- If you use an Amazon SNS topic in another account, you must attach a+-- policy to it that grants DevOps Guru permission to it notifications.+-- DevOps Guru adds the required policy on your behalf to send+-- notifications using Amazon SNS in your account. DevOps Guru only+-- supports standard SNS topics. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html Permissions for cross account Amazon SNS topics>.+--+-- If you use an Amazon SNS topic in another account, you must attach a+-- policy to it that grants DevOps Guru permission to it notifications.+-- DevOps Guru adds the required policy on your behalf to send+-- notifications using Amazon SNS in your account. For more information,+-- see Permissions for cross account Amazon SNS topics.+--+-- If you use an Amazon SNS topic that is encrypted by an Amazon Web+-- Services Key Management Service customer-managed key (CMK), then you+-- must add permissions to the CMK. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html Permissions for Amazon Web Services KMS–encrypted Amazon SNS topics>.+module Amazonka.DevOpsGuru.AddNotificationChannel+ ( -- * Creating a Request+ AddNotificationChannel (..),+ newAddNotificationChannel,++ -- * Request Lenses+ addNotificationChannel_config,++ -- * Destructuring the Response+ AddNotificationChannelResponse (..),+ newAddNotificationChannelResponse,++ -- * Response Lenses+ addNotificationChannelResponse_httpStatus,+ addNotificationChannelResponse_id,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newAddNotificationChannel' smart constructor.+data AddNotificationChannel = AddNotificationChannel'+ { -- | A @NotificationChannelConfig@ object that specifies what type of+ -- notification channel to add. The one supported notification channel is+ -- Amazon Simple Notification Service (Amazon SNS).+ config :: NotificationChannelConfig+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddNotificationChannel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'config', 'addNotificationChannel_config' - A @NotificationChannelConfig@ object that specifies what type of+-- notification channel to add. The one supported notification channel is+-- Amazon Simple Notification Service (Amazon SNS).+newAddNotificationChannel ::+ -- | 'config'+ NotificationChannelConfig ->+ AddNotificationChannel+newAddNotificationChannel pConfig_ =+ AddNotificationChannel' {config = pConfig_}++-- | A @NotificationChannelConfig@ object that specifies what type of+-- notification channel to add. The one supported notification channel is+-- Amazon Simple Notification Service (Amazon SNS).+addNotificationChannel_config :: Lens.Lens' AddNotificationChannel NotificationChannelConfig+addNotificationChannel_config = Lens.lens (\AddNotificationChannel' {config} -> config) (\s@AddNotificationChannel' {} a -> s {config = a} :: AddNotificationChannel)++instance Core.AWSRequest AddNotificationChannel where+ type+ AWSResponse AddNotificationChannel =+ AddNotificationChannelResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ AddNotificationChannelResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "Id")+ )++instance Prelude.Hashable AddNotificationChannel where+ hashWithSalt _salt AddNotificationChannel' {..} =+ _salt `Prelude.hashWithSalt` config++instance Prelude.NFData AddNotificationChannel where+ rnf AddNotificationChannel' {..} = Prelude.rnf config++instance Data.ToHeaders AddNotificationChannel where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON AddNotificationChannel where+ toJSON AddNotificationChannel' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("Config" Data..= config)]+ )++instance Data.ToPath AddNotificationChannel where+ toPath = Prelude.const "/channels"++instance Data.ToQuery AddNotificationChannel where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAddNotificationChannelResponse' smart constructor.+data AddNotificationChannelResponse = AddNotificationChannelResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The ID of the added notification channel.+ id :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddNotificationChannelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'addNotificationChannelResponse_httpStatus' - The response's http status code.+--+-- 'id', 'addNotificationChannelResponse_id' - The ID of the added notification channel.+newAddNotificationChannelResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'id'+ Prelude.Text ->+ AddNotificationChannelResponse+newAddNotificationChannelResponse pHttpStatus_ pId_ =+ AddNotificationChannelResponse'+ { httpStatus =+ pHttpStatus_,+ id = pId_+ }++-- | The response's http status code.+addNotificationChannelResponse_httpStatus :: Lens.Lens' AddNotificationChannelResponse Prelude.Int+addNotificationChannelResponse_httpStatus = Lens.lens (\AddNotificationChannelResponse' {httpStatus} -> httpStatus) (\s@AddNotificationChannelResponse' {} a -> s {httpStatus = a} :: AddNotificationChannelResponse)++-- | The ID of the added notification channel.+addNotificationChannelResponse_id :: Lens.Lens' AddNotificationChannelResponse Prelude.Text+addNotificationChannelResponse_id = Lens.lens (\AddNotificationChannelResponse' {id} -> id) (\s@AddNotificationChannelResponse' {} a -> s {id = a} :: AddNotificationChannelResponse)++instance+ Prelude.NFData+ AddNotificationChannelResponse+ where+ rnf AddNotificationChannelResponse' {..} =+ Prelude.rnf httpStatus `Prelude.seq` Prelude.rnf id
+ gen/Amazonka/DevOpsGuru/DeleteInsight.hs view
@@ -0,0 +1,143 @@+{-# 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.DevOpsGuru.DeleteInsight+-- 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 the insight along with the associated anomalies, events and+-- recommendations.+module Amazonka.DevOpsGuru.DeleteInsight+ ( -- * Creating a Request+ DeleteInsight (..),+ newDeleteInsight,++ -- * Request Lenses+ deleteInsight_id,++ -- * Destructuring the Response+ DeleteInsightResponse (..),+ newDeleteInsightResponse,++ -- * Response Lenses+ deleteInsightResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteInsight' smart constructor.+data DeleteInsight = DeleteInsight'+ { -- | The ID of the insight.+ id :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteInsight' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'deleteInsight_id' - The ID of the insight.+newDeleteInsight ::+ -- | 'id'+ Prelude.Text ->+ DeleteInsight+newDeleteInsight pId_ = DeleteInsight' {id = pId_}++-- | The ID of the insight.+deleteInsight_id :: Lens.Lens' DeleteInsight Prelude.Text+deleteInsight_id = Lens.lens (\DeleteInsight' {id} -> id) (\s@DeleteInsight' {} a -> s {id = a} :: DeleteInsight)++instance Core.AWSRequest DeleteInsight where+ type+ AWSResponse DeleteInsight =+ DeleteInsightResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ DeleteInsightResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteInsight where+ hashWithSalt _salt DeleteInsight' {..} =+ _salt `Prelude.hashWithSalt` id++instance Prelude.NFData DeleteInsight where+ rnf DeleteInsight' {..} = Prelude.rnf id++instance Data.ToHeaders DeleteInsight where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteInsight where+ toPath DeleteInsight' {..} =+ Prelude.mconcat ["/insights/", Data.toBS id]++instance Data.ToQuery DeleteInsight where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteInsightResponse' smart constructor.+data DeleteInsightResponse = DeleteInsightResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteInsightResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteInsightResponse_httpStatus' - The response's http status code.+newDeleteInsightResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteInsightResponse+newDeleteInsightResponse pHttpStatus_ =+ DeleteInsightResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteInsightResponse_httpStatus :: Lens.Lens' DeleteInsightResponse Prelude.Int+deleteInsightResponse_httpStatus = Lens.lens (\DeleteInsightResponse' {httpStatus} -> httpStatus) (\s@DeleteInsightResponse' {} a -> s {httpStatus = a} :: DeleteInsightResponse)++instance Prelude.NFData DeleteInsightResponse where+ rnf DeleteInsightResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/DevOpsGuru/DescribeAccountHealth.hs view
@@ -0,0 +1,222 @@+{-# 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.DevOpsGuru.DescribeAccountHealth+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the number of open reactive insights, the number of open+-- proactive insights, and the number of metrics analyzed in your Amazon+-- Web Services account. Use these numbers to gauge the health of+-- operations in your Amazon Web Services account.+module Amazonka.DevOpsGuru.DescribeAccountHealth+ ( -- * Creating a Request+ DescribeAccountHealth (..),+ newDescribeAccountHealth,++ -- * Destructuring the Response+ DescribeAccountHealthResponse (..),+ newDescribeAccountHealthResponse,++ -- * Response Lenses+ describeAccountHealthResponse_analyzedResourceCount,+ describeAccountHealthResponse_httpStatus,+ describeAccountHealthResponse_openReactiveInsights,+ describeAccountHealthResponse_openProactiveInsights,+ describeAccountHealthResponse_metricsAnalyzed,+ describeAccountHealthResponse_resourceHours,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeAccountHealth' smart constructor.+data DescribeAccountHealth = DescribeAccountHealth'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAccountHealth' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDescribeAccountHealth ::+ DescribeAccountHealth+newDescribeAccountHealth = DescribeAccountHealth'++instance Core.AWSRequest DescribeAccountHealth where+ type+ AWSResponse DescribeAccountHealth =+ DescribeAccountHealthResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeAccountHealthResponse'+ Prelude.<$> (x Data..?> "AnalyzedResourceCount")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "OpenReactiveInsights")+ Prelude.<*> (x Data..:> "OpenProactiveInsights")+ Prelude.<*> (x Data..:> "MetricsAnalyzed")+ Prelude.<*> (x Data..:> "ResourceHours")+ )++instance Prelude.Hashable DescribeAccountHealth where+ hashWithSalt _salt _ =+ _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData DescribeAccountHealth where+ rnf _ = ()++instance Data.ToHeaders DescribeAccountHealth where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DescribeAccountHealth where+ toPath = Prelude.const "/accounts/health"++instance Data.ToQuery DescribeAccountHealth where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeAccountHealthResponse' smart constructor.+data DescribeAccountHealthResponse = DescribeAccountHealthResponse'+ { -- | Number of resources that DevOps Guru is monitoring in your Amazon Web+ -- Services account.+ analyzedResourceCount :: Prelude.Maybe Prelude.Integer,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | An integer that specifies the number of open reactive insights in your+ -- Amazon Web Services account.+ openReactiveInsights :: Prelude.Int,+ -- | An integer that specifies the number of open proactive insights in your+ -- Amazon Web Services account.+ openProactiveInsights :: Prelude.Int,+ -- | An integer that specifies the number of metrics that have been analyzed+ -- in your Amazon Web Services account.+ metricsAnalyzed :: Prelude.Int,+ -- | The number of Amazon DevOps Guru resource analysis hours billed to the+ -- current Amazon Web Services account in the last hour.+ resourceHours :: Prelude.Integer+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAccountHealthResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'analyzedResourceCount', 'describeAccountHealthResponse_analyzedResourceCount' - Number of resources that DevOps Guru is monitoring in your Amazon Web+-- Services account.+--+-- 'httpStatus', 'describeAccountHealthResponse_httpStatus' - The response's http status code.+--+-- 'openReactiveInsights', 'describeAccountHealthResponse_openReactiveInsights' - An integer that specifies the number of open reactive insights in your+-- Amazon Web Services account.+--+-- 'openProactiveInsights', 'describeAccountHealthResponse_openProactiveInsights' - An integer that specifies the number of open proactive insights in your+-- Amazon Web Services account.+--+-- 'metricsAnalyzed', 'describeAccountHealthResponse_metricsAnalyzed' - An integer that specifies the number of metrics that have been analyzed+-- in your Amazon Web Services account.+--+-- 'resourceHours', 'describeAccountHealthResponse_resourceHours' - The number of Amazon DevOps Guru resource analysis hours billed to the+-- current Amazon Web Services account in the last hour.+newDescribeAccountHealthResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'openReactiveInsights'+ Prelude.Int ->+ -- | 'openProactiveInsights'+ Prelude.Int ->+ -- | 'metricsAnalyzed'+ Prelude.Int ->+ -- | 'resourceHours'+ Prelude.Integer ->+ DescribeAccountHealthResponse+newDescribeAccountHealthResponse+ pHttpStatus_+ pOpenReactiveInsights_+ pOpenProactiveInsights_+ pMetricsAnalyzed_+ pResourceHours_ =+ DescribeAccountHealthResponse'+ { analyzedResourceCount =+ Prelude.Nothing,+ httpStatus = pHttpStatus_,+ openReactiveInsights =+ pOpenReactiveInsights_,+ openProactiveInsights =+ pOpenProactiveInsights_,+ metricsAnalyzed = pMetricsAnalyzed_,+ resourceHours = pResourceHours_+ }++-- | Number of resources that DevOps Guru is monitoring in your Amazon Web+-- Services account.+describeAccountHealthResponse_analyzedResourceCount :: Lens.Lens' DescribeAccountHealthResponse (Prelude.Maybe Prelude.Integer)+describeAccountHealthResponse_analyzedResourceCount = Lens.lens (\DescribeAccountHealthResponse' {analyzedResourceCount} -> analyzedResourceCount) (\s@DescribeAccountHealthResponse' {} a -> s {analyzedResourceCount = a} :: DescribeAccountHealthResponse)++-- | The response's http status code.+describeAccountHealthResponse_httpStatus :: Lens.Lens' DescribeAccountHealthResponse Prelude.Int+describeAccountHealthResponse_httpStatus = Lens.lens (\DescribeAccountHealthResponse' {httpStatus} -> httpStatus) (\s@DescribeAccountHealthResponse' {} a -> s {httpStatus = a} :: DescribeAccountHealthResponse)++-- | An integer that specifies the number of open reactive insights in your+-- Amazon Web Services account.+describeAccountHealthResponse_openReactiveInsights :: Lens.Lens' DescribeAccountHealthResponse Prelude.Int+describeAccountHealthResponse_openReactiveInsights = Lens.lens (\DescribeAccountHealthResponse' {openReactiveInsights} -> openReactiveInsights) (\s@DescribeAccountHealthResponse' {} a -> s {openReactiveInsights = a} :: DescribeAccountHealthResponse)++-- | An integer that specifies the number of open proactive insights in your+-- Amazon Web Services account.+describeAccountHealthResponse_openProactiveInsights :: Lens.Lens' DescribeAccountHealthResponse Prelude.Int+describeAccountHealthResponse_openProactiveInsights = Lens.lens (\DescribeAccountHealthResponse' {openProactiveInsights} -> openProactiveInsights) (\s@DescribeAccountHealthResponse' {} a -> s {openProactiveInsights = a} :: DescribeAccountHealthResponse)++-- | An integer that specifies the number of metrics that have been analyzed+-- in your Amazon Web Services account.+describeAccountHealthResponse_metricsAnalyzed :: Lens.Lens' DescribeAccountHealthResponse Prelude.Int+describeAccountHealthResponse_metricsAnalyzed = Lens.lens (\DescribeAccountHealthResponse' {metricsAnalyzed} -> metricsAnalyzed) (\s@DescribeAccountHealthResponse' {} a -> s {metricsAnalyzed = a} :: DescribeAccountHealthResponse)++-- | The number of Amazon DevOps Guru resource analysis hours billed to the+-- current Amazon Web Services account in the last hour.+describeAccountHealthResponse_resourceHours :: Lens.Lens' DescribeAccountHealthResponse Prelude.Integer+describeAccountHealthResponse_resourceHours = Lens.lens (\DescribeAccountHealthResponse' {resourceHours} -> resourceHours) (\s@DescribeAccountHealthResponse' {} a -> s {resourceHours = a} :: DescribeAccountHealthResponse)++instance Prelude.NFData DescribeAccountHealthResponse where+ rnf DescribeAccountHealthResponse' {..} =+ Prelude.rnf analyzedResourceCount+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf openReactiveInsights+ `Prelude.seq` Prelude.rnf openProactiveInsights+ `Prelude.seq` Prelude.rnf metricsAnalyzed+ `Prelude.seq` Prelude.rnf resourceHours
+ gen/Amazonka/DevOpsGuru/DescribeAccountOverview.hs view
@@ -0,0 +1,253 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.DescribeAccountOverview+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- For the time range passed in, returns the number of open reactive+-- insight that were created, the number of open proactive insights that+-- were created, and the Mean Time to Recover (MTTR) for all closed+-- reactive insights.+module Amazonka.DevOpsGuru.DescribeAccountOverview+ ( -- * Creating a Request+ DescribeAccountOverview (..),+ newDescribeAccountOverview,++ -- * Request Lenses+ describeAccountOverview_toTime,+ describeAccountOverview_fromTime,++ -- * Destructuring the Response+ DescribeAccountOverviewResponse (..),+ newDescribeAccountOverviewResponse,++ -- * Response Lenses+ describeAccountOverviewResponse_httpStatus,+ describeAccountOverviewResponse_reactiveInsights,+ describeAccountOverviewResponse_proactiveInsights,+ describeAccountOverviewResponse_meanTimeToRecoverInMilliseconds,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeAccountOverview' smart constructor.+data DescribeAccountOverview = DescribeAccountOverview'+ { -- | The end of the time range passed in. The start time granularity is at+ -- the day level. The floor of the start time is used. Returned information+ -- occurred before this day. If this is not specified, then the current day+ -- is used.+ toTime :: Prelude.Maybe Data.POSIX,+ -- | The start of the time range passed in. The start time granularity is at+ -- the day level. The floor of the start time is used. Returned information+ -- occurred after this day.+ fromTime :: Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAccountOverview' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'toTime', 'describeAccountOverview_toTime' - The end of the time range passed in. The start time granularity is at+-- the day level. The floor of the start time is used. Returned information+-- occurred before this day. If this is not specified, then the current day+-- is used.+--+-- 'fromTime', 'describeAccountOverview_fromTime' - The start of the time range passed in. The start time granularity is at+-- the day level. The floor of the start time is used. Returned information+-- occurred after this day.+newDescribeAccountOverview ::+ -- | 'fromTime'+ Prelude.UTCTime ->+ DescribeAccountOverview+newDescribeAccountOverview pFromTime_ =+ DescribeAccountOverview'+ { toTime = Prelude.Nothing,+ fromTime = Data._Time Lens.# pFromTime_+ }++-- | The end of the time range passed in. The start time granularity is at+-- the day level. The floor of the start time is used. Returned information+-- occurred before this day. If this is not specified, then the current day+-- is used.+describeAccountOverview_toTime :: Lens.Lens' DescribeAccountOverview (Prelude.Maybe Prelude.UTCTime)+describeAccountOverview_toTime = Lens.lens (\DescribeAccountOverview' {toTime} -> toTime) (\s@DescribeAccountOverview' {} a -> s {toTime = a} :: DescribeAccountOverview) Prelude.. Lens.mapping Data._Time++-- | The start of the time range passed in. The start time granularity is at+-- the day level. The floor of the start time is used. Returned information+-- occurred after this day.+describeAccountOverview_fromTime :: Lens.Lens' DescribeAccountOverview Prelude.UTCTime+describeAccountOverview_fromTime = Lens.lens (\DescribeAccountOverview' {fromTime} -> fromTime) (\s@DescribeAccountOverview' {} a -> s {fromTime = a} :: DescribeAccountOverview) Prelude.. Data._Time++instance Core.AWSRequest DescribeAccountOverview where+ type+ AWSResponse DescribeAccountOverview =+ DescribeAccountOverviewResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeAccountOverviewResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "ReactiveInsights")+ Prelude.<*> (x Data..:> "ProactiveInsights")+ Prelude.<*> (x Data..:> "MeanTimeToRecoverInMilliseconds")+ )++instance Prelude.Hashable DescribeAccountOverview where+ hashWithSalt _salt DescribeAccountOverview' {..} =+ _salt+ `Prelude.hashWithSalt` toTime+ `Prelude.hashWithSalt` fromTime++instance Prelude.NFData DescribeAccountOverview where+ rnf DescribeAccountOverview' {..} =+ Prelude.rnf toTime+ `Prelude.seq` Prelude.rnf fromTime++instance Data.ToHeaders DescribeAccountOverview where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeAccountOverview where+ toJSON DescribeAccountOverview' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ToTime" Data..=) Prelude.<$> toTime,+ Prelude.Just ("FromTime" Data..= fromTime)+ ]+ )++instance Data.ToPath DescribeAccountOverview where+ toPath = Prelude.const "/accounts/overview"++instance Data.ToQuery DescribeAccountOverview where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeAccountOverviewResponse' smart constructor.+data DescribeAccountOverviewResponse = DescribeAccountOverviewResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | An integer that specifies the number of open reactive insights in your+ -- Amazon Web Services account that were created during the time range+ -- passed in.+ reactiveInsights :: Prelude.Int,+ -- | An integer that specifies the number of open proactive insights in your+ -- Amazon Web Services account that were created during the time range+ -- passed in.+ proactiveInsights :: Prelude.Int,+ -- | The Mean Time to Recover (MTTR) for all closed insights that were+ -- created during the time range passed in.+ meanTimeToRecoverInMilliseconds :: Prelude.Integer+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAccountOverviewResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeAccountOverviewResponse_httpStatus' - The response's http status code.+--+-- 'reactiveInsights', 'describeAccountOverviewResponse_reactiveInsights' - An integer that specifies the number of open reactive insights in your+-- Amazon Web Services account that were created during the time range+-- passed in.+--+-- 'proactiveInsights', 'describeAccountOverviewResponse_proactiveInsights' - An integer that specifies the number of open proactive insights in your+-- Amazon Web Services account that were created during the time range+-- passed in.+--+-- 'meanTimeToRecoverInMilliseconds', 'describeAccountOverviewResponse_meanTimeToRecoverInMilliseconds' - The Mean Time to Recover (MTTR) for all closed insights that were+-- created during the time range passed in.+newDescribeAccountOverviewResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'reactiveInsights'+ Prelude.Int ->+ -- | 'proactiveInsights'+ Prelude.Int ->+ -- | 'meanTimeToRecoverInMilliseconds'+ Prelude.Integer ->+ DescribeAccountOverviewResponse+newDescribeAccountOverviewResponse+ pHttpStatus_+ pReactiveInsights_+ pProactiveInsights_+ pMeanTimeToRecoverInMilliseconds_ =+ DescribeAccountOverviewResponse'+ { httpStatus =+ pHttpStatus_,+ reactiveInsights = pReactiveInsights_,+ proactiveInsights = pProactiveInsights_,+ meanTimeToRecoverInMilliseconds =+ pMeanTimeToRecoverInMilliseconds_+ }++-- | The response's http status code.+describeAccountOverviewResponse_httpStatus :: Lens.Lens' DescribeAccountOverviewResponse Prelude.Int+describeAccountOverviewResponse_httpStatus = Lens.lens (\DescribeAccountOverviewResponse' {httpStatus} -> httpStatus) (\s@DescribeAccountOverviewResponse' {} a -> s {httpStatus = a} :: DescribeAccountOverviewResponse)++-- | An integer that specifies the number of open reactive insights in your+-- Amazon Web Services account that were created during the time range+-- passed in.+describeAccountOverviewResponse_reactiveInsights :: Lens.Lens' DescribeAccountOverviewResponse Prelude.Int+describeAccountOverviewResponse_reactiveInsights = Lens.lens (\DescribeAccountOverviewResponse' {reactiveInsights} -> reactiveInsights) (\s@DescribeAccountOverviewResponse' {} a -> s {reactiveInsights = a} :: DescribeAccountOverviewResponse)++-- | An integer that specifies the number of open proactive insights in your+-- Amazon Web Services account that were created during the time range+-- passed in.+describeAccountOverviewResponse_proactiveInsights :: Lens.Lens' DescribeAccountOverviewResponse Prelude.Int+describeAccountOverviewResponse_proactiveInsights = Lens.lens (\DescribeAccountOverviewResponse' {proactiveInsights} -> proactiveInsights) (\s@DescribeAccountOverviewResponse' {} a -> s {proactiveInsights = a} :: DescribeAccountOverviewResponse)++-- | The Mean Time to Recover (MTTR) for all closed insights that were+-- created during the time range passed in.+describeAccountOverviewResponse_meanTimeToRecoverInMilliseconds :: Lens.Lens' DescribeAccountOverviewResponse Prelude.Integer+describeAccountOverviewResponse_meanTimeToRecoverInMilliseconds = Lens.lens (\DescribeAccountOverviewResponse' {meanTimeToRecoverInMilliseconds} -> meanTimeToRecoverInMilliseconds) (\s@DescribeAccountOverviewResponse' {} a -> s {meanTimeToRecoverInMilliseconds = a} :: DescribeAccountOverviewResponse)++instance+ Prelude.NFData+ DescribeAccountOverviewResponse+ where+ rnf DescribeAccountOverviewResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf reactiveInsights+ `Prelude.seq` Prelude.rnf proactiveInsights+ `Prelude.seq` Prelude.rnf meanTimeToRecoverInMilliseconds
+ gen/Amazonka/DevOpsGuru/DescribeAnomaly.hs view
@@ -0,0 +1,186 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.DescribeAnomaly+-- 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 an anomaly that you specify using its ID.+module Amazonka.DevOpsGuru.DescribeAnomaly+ ( -- * Creating a Request+ DescribeAnomaly (..),+ newDescribeAnomaly,++ -- * Request Lenses+ describeAnomaly_accountId,+ describeAnomaly_id,++ -- * Destructuring the Response+ DescribeAnomalyResponse (..),+ newDescribeAnomalyResponse,++ -- * Response Lenses+ describeAnomalyResponse_proactiveAnomaly,+ describeAnomalyResponse_reactiveAnomaly,+ describeAnomalyResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeAnomaly' smart constructor.+data DescribeAnomaly = DescribeAnomaly'+ { -- | The ID of the member account.+ accountId :: Prelude.Maybe Prelude.Text,+ -- | The ID of the anomaly.+ id :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAnomaly' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'describeAnomaly_accountId' - The ID of the member account.+--+-- 'id', 'describeAnomaly_id' - The ID of the anomaly.+newDescribeAnomaly ::+ -- | 'id'+ Prelude.Text ->+ DescribeAnomaly+newDescribeAnomaly pId_ =+ DescribeAnomaly'+ { accountId = Prelude.Nothing,+ id = pId_+ }++-- | The ID of the member account.+describeAnomaly_accountId :: Lens.Lens' DescribeAnomaly (Prelude.Maybe Prelude.Text)+describeAnomaly_accountId = Lens.lens (\DescribeAnomaly' {accountId} -> accountId) (\s@DescribeAnomaly' {} a -> s {accountId = a} :: DescribeAnomaly)++-- | The ID of the anomaly.+describeAnomaly_id :: Lens.Lens' DescribeAnomaly Prelude.Text+describeAnomaly_id = Lens.lens (\DescribeAnomaly' {id} -> id) (\s@DescribeAnomaly' {} a -> s {id = a} :: DescribeAnomaly)++instance Core.AWSRequest DescribeAnomaly where+ type+ AWSResponse DescribeAnomaly =+ DescribeAnomalyResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeAnomalyResponse'+ Prelude.<$> (x Data..?> "ProactiveAnomaly")+ Prelude.<*> (x Data..?> "ReactiveAnomaly")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeAnomaly where+ hashWithSalt _salt DescribeAnomaly' {..} =+ _salt+ `Prelude.hashWithSalt` accountId+ `Prelude.hashWithSalt` id++instance Prelude.NFData DescribeAnomaly where+ rnf DescribeAnomaly' {..} =+ Prelude.rnf accountId `Prelude.seq` Prelude.rnf id++instance Data.ToHeaders DescribeAnomaly where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DescribeAnomaly where+ toPath DescribeAnomaly' {..} =+ Prelude.mconcat ["/anomalies/", Data.toBS id]++instance Data.ToQuery DescribeAnomaly where+ toQuery DescribeAnomaly' {..} =+ Prelude.mconcat ["AccountId" Data.=: accountId]++-- | /See:/ 'newDescribeAnomalyResponse' smart constructor.+data DescribeAnomalyResponse = DescribeAnomalyResponse'+ { -- | A @ProactiveAnomaly@ object that represents the requested anomaly.+ proactiveAnomaly :: Prelude.Maybe ProactiveAnomaly,+ -- | A @ReactiveAnomaly@ object that represents the requested anomaly.+ reactiveAnomaly :: Prelude.Maybe ReactiveAnomaly,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAnomalyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'proactiveAnomaly', 'describeAnomalyResponse_proactiveAnomaly' - A @ProactiveAnomaly@ object that represents the requested anomaly.+--+-- 'reactiveAnomaly', 'describeAnomalyResponse_reactiveAnomaly' - A @ReactiveAnomaly@ object that represents the requested anomaly.+--+-- 'httpStatus', 'describeAnomalyResponse_httpStatus' - The response's http status code.+newDescribeAnomalyResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeAnomalyResponse+newDescribeAnomalyResponse pHttpStatus_ =+ DescribeAnomalyResponse'+ { proactiveAnomaly =+ Prelude.Nothing,+ reactiveAnomaly = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A @ProactiveAnomaly@ object that represents the requested anomaly.+describeAnomalyResponse_proactiveAnomaly :: Lens.Lens' DescribeAnomalyResponse (Prelude.Maybe ProactiveAnomaly)+describeAnomalyResponse_proactiveAnomaly = Lens.lens (\DescribeAnomalyResponse' {proactiveAnomaly} -> proactiveAnomaly) (\s@DescribeAnomalyResponse' {} a -> s {proactiveAnomaly = a} :: DescribeAnomalyResponse)++-- | A @ReactiveAnomaly@ object that represents the requested anomaly.+describeAnomalyResponse_reactiveAnomaly :: Lens.Lens' DescribeAnomalyResponse (Prelude.Maybe ReactiveAnomaly)+describeAnomalyResponse_reactiveAnomaly = Lens.lens (\DescribeAnomalyResponse' {reactiveAnomaly} -> reactiveAnomaly) (\s@DescribeAnomalyResponse' {} a -> s {reactiveAnomaly = a} :: DescribeAnomalyResponse)++-- | The response's http status code.+describeAnomalyResponse_httpStatus :: Lens.Lens' DescribeAnomalyResponse Prelude.Int+describeAnomalyResponse_httpStatus = Lens.lens (\DescribeAnomalyResponse' {httpStatus} -> httpStatus) (\s@DescribeAnomalyResponse' {} a -> s {httpStatus = a} :: DescribeAnomalyResponse)++instance Prelude.NFData DescribeAnomalyResponse where+ rnf DescribeAnomalyResponse' {..} =+ Prelude.rnf proactiveAnomaly+ `Prelude.seq` Prelude.rnf reactiveAnomaly+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DevOpsGuru/DescribeEventSourcesConfig.hs view
@@ -0,0 +1,152 @@+{-# 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.DevOpsGuru.DescribeEventSourcesConfig+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the integration status of services that are integrated with+-- DevOps Guru as Consumer via EventBridge. The one service that can be+-- integrated with DevOps Guru is Amazon CodeGuru Profiler, which can+-- produce proactive recommendations which can be stored and viewed in+-- DevOps Guru.+module Amazonka.DevOpsGuru.DescribeEventSourcesConfig+ ( -- * Creating a Request+ DescribeEventSourcesConfig (..),+ newDescribeEventSourcesConfig,++ -- * Destructuring the Response+ DescribeEventSourcesConfigResponse (..),+ newDescribeEventSourcesConfigResponse,++ -- * Response Lenses+ describeEventSourcesConfigResponse_eventSources,+ describeEventSourcesConfigResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeEventSourcesConfig' smart constructor.+data DescribeEventSourcesConfig = DescribeEventSourcesConfig'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeEventSourcesConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDescribeEventSourcesConfig ::+ DescribeEventSourcesConfig+newDescribeEventSourcesConfig =+ DescribeEventSourcesConfig'++instance Core.AWSRequest DescribeEventSourcesConfig where+ type+ AWSResponse DescribeEventSourcesConfig =+ DescribeEventSourcesConfigResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeEventSourcesConfigResponse'+ Prelude.<$> (x Data..?> "EventSources")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeEventSourcesConfig where+ hashWithSalt _salt _ =+ _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData DescribeEventSourcesConfig where+ rnf _ = ()++instance Data.ToHeaders DescribeEventSourcesConfig where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeEventSourcesConfig where+ toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath DescribeEventSourcesConfig where+ toPath = Prelude.const "/event-sources"++instance Data.ToQuery DescribeEventSourcesConfig where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeEventSourcesConfigResponse' smart constructor.+data DescribeEventSourcesConfigResponse = DescribeEventSourcesConfigResponse'+ { -- | Lists the event sources in the configuration.+ eventSources :: Prelude.Maybe EventSourcesConfig,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeEventSourcesConfigResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventSources', 'describeEventSourcesConfigResponse_eventSources' - Lists the event sources in the configuration.+--+-- 'httpStatus', 'describeEventSourcesConfigResponse_httpStatus' - The response's http status code.+newDescribeEventSourcesConfigResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeEventSourcesConfigResponse+newDescribeEventSourcesConfigResponse pHttpStatus_ =+ DescribeEventSourcesConfigResponse'+ { eventSources =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Lists the event sources in the configuration.+describeEventSourcesConfigResponse_eventSources :: Lens.Lens' DescribeEventSourcesConfigResponse (Prelude.Maybe EventSourcesConfig)+describeEventSourcesConfigResponse_eventSources = Lens.lens (\DescribeEventSourcesConfigResponse' {eventSources} -> eventSources) (\s@DescribeEventSourcesConfigResponse' {} a -> s {eventSources = a} :: DescribeEventSourcesConfigResponse)++-- | The response's http status code.+describeEventSourcesConfigResponse_httpStatus :: Lens.Lens' DescribeEventSourcesConfigResponse Prelude.Int+describeEventSourcesConfigResponse_httpStatus = Lens.lens (\DescribeEventSourcesConfigResponse' {httpStatus} -> httpStatus) (\s@DescribeEventSourcesConfigResponse' {} a -> s {httpStatus = a} :: DescribeEventSourcesConfigResponse)++instance+ Prelude.NFData+ DescribeEventSourcesConfigResponse+ where+ rnf DescribeEventSourcesConfigResponse' {..} =+ Prelude.rnf eventSources+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DevOpsGuru/DescribeFeedback.hs view
@@ -0,0 +1,162 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.DescribeFeedback+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the most recent feedback submitted in the current Amazon Web+-- Services account and Region.+module Amazonka.DevOpsGuru.DescribeFeedback+ ( -- * Creating a Request+ DescribeFeedback (..),+ newDescribeFeedback,++ -- * Request Lenses+ describeFeedback_insightId,++ -- * Destructuring the Response+ DescribeFeedbackResponse (..),+ newDescribeFeedbackResponse,++ -- * Response Lenses+ describeFeedbackResponse_insightFeedback,+ describeFeedbackResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeFeedback' smart constructor.+data DescribeFeedback = DescribeFeedback'+ { -- | The ID of the insight for which the feedback was provided.+ insightId :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeFeedback' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'insightId', 'describeFeedback_insightId' - The ID of the insight for which the feedback was provided.+newDescribeFeedback ::+ DescribeFeedback+newDescribeFeedback =+ DescribeFeedback' {insightId = Prelude.Nothing}++-- | The ID of the insight for which the feedback was provided.+describeFeedback_insightId :: Lens.Lens' DescribeFeedback (Prelude.Maybe Prelude.Text)+describeFeedback_insightId = Lens.lens (\DescribeFeedback' {insightId} -> insightId) (\s@DescribeFeedback' {} a -> s {insightId = a} :: DescribeFeedback)++instance Core.AWSRequest DescribeFeedback where+ type+ AWSResponse DescribeFeedback =+ DescribeFeedbackResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeFeedbackResponse'+ Prelude.<$> (x Data..?> "InsightFeedback")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeFeedback where+ hashWithSalt _salt DescribeFeedback' {..} =+ _salt `Prelude.hashWithSalt` insightId++instance Prelude.NFData DescribeFeedback where+ rnf DescribeFeedback' {..} = Prelude.rnf insightId++instance Data.ToHeaders DescribeFeedback where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeFeedback where+ toJSON DescribeFeedback' {..} =+ Data.object+ ( Prelude.catMaybes+ [("InsightId" Data..=) Prelude.<$> insightId]+ )++instance Data.ToPath DescribeFeedback where+ toPath = Prelude.const "/feedback"++instance Data.ToQuery DescribeFeedback where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeFeedbackResponse' smart constructor.+data DescribeFeedbackResponse = DescribeFeedbackResponse'+ { insightFeedback :: Prelude.Maybe InsightFeedback,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeFeedbackResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'insightFeedback', 'describeFeedbackResponse_insightFeedback' - Undocumented member.+--+-- 'httpStatus', 'describeFeedbackResponse_httpStatus' - The response's http status code.+newDescribeFeedbackResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeFeedbackResponse+newDescribeFeedbackResponse pHttpStatus_ =+ DescribeFeedbackResponse'+ { insightFeedback =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Undocumented member.+describeFeedbackResponse_insightFeedback :: Lens.Lens' DescribeFeedbackResponse (Prelude.Maybe InsightFeedback)+describeFeedbackResponse_insightFeedback = Lens.lens (\DescribeFeedbackResponse' {insightFeedback} -> insightFeedback) (\s@DescribeFeedbackResponse' {} a -> s {insightFeedback = a} :: DescribeFeedbackResponse)++-- | The response's http status code.+describeFeedbackResponse_httpStatus :: Lens.Lens' DescribeFeedbackResponse Prelude.Int+describeFeedbackResponse_httpStatus = Lens.lens (\DescribeFeedbackResponse' {httpStatus} -> httpStatus) (\s@DescribeFeedbackResponse' {} a -> s {httpStatus = a} :: DescribeFeedbackResponse)++instance Prelude.NFData DescribeFeedbackResponse where+ rnf DescribeFeedbackResponse' {..} =+ Prelude.rnf insightFeedback+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DevOpsGuru/DescribeInsight.hs view
@@ -0,0 +1,186 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.DescribeInsight+-- 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 an insight that you specify using its ID.+module Amazonka.DevOpsGuru.DescribeInsight+ ( -- * Creating a Request+ DescribeInsight (..),+ newDescribeInsight,++ -- * Request Lenses+ describeInsight_accountId,+ describeInsight_id,++ -- * Destructuring the Response+ DescribeInsightResponse (..),+ newDescribeInsightResponse,++ -- * Response Lenses+ describeInsightResponse_proactiveInsight,+ describeInsightResponse_reactiveInsight,+ describeInsightResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeInsight' smart constructor.+data DescribeInsight = DescribeInsight'+ { -- | The ID of the member account in the organization.+ accountId :: Prelude.Maybe Prelude.Text,+ -- | The ID of the insight.+ id :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeInsight' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'describeInsight_accountId' - The ID of the member account in the organization.+--+-- 'id', 'describeInsight_id' - The ID of the insight.+newDescribeInsight ::+ -- | 'id'+ Prelude.Text ->+ DescribeInsight+newDescribeInsight pId_ =+ DescribeInsight'+ { accountId = Prelude.Nothing,+ id = pId_+ }++-- | The ID of the member account in the organization.+describeInsight_accountId :: Lens.Lens' DescribeInsight (Prelude.Maybe Prelude.Text)+describeInsight_accountId = Lens.lens (\DescribeInsight' {accountId} -> accountId) (\s@DescribeInsight' {} a -> s {accountId = a} :: DescribeInsight)++-- | The ID of the insight.+describeInsight_id :: Lens.Lens' DescribeInsight Prelude.Text+describeInsight_id = Lens.lens (\DescribeInsight' {id} -> id) (\s@DescribeInsight' {} a -> s {id = a} :: DescribeInsight)++instance Core.AWSRequest DescribeInsight where+ type+ AWSResponse DescribeInsight =+ DescribeInsightResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeInsightResponse'+ Prelude.<$> (x Data..?> "ProactiveInsight")+ Prelude.<*> (x Data..?> "ReactiveInsight")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeInsight where+ hashWithSalt _salt DescribeInsight' {..} =+ _salt+ `Prelude.hashWithSalt` accountId+ `Prelude.hashWithSalt` id++instance Prelude.NFData DescribeInsight where+ rnf DescribeInsight' {..} =+ Prelude.rnf accountId `Prelude.seq` Prelude.rnf id++instance Data.ToHeaders DescribeInsight where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DescribeInsight where+ toPath DescribeInsight' {..} =+ Prelude.mconcat ["/insights/", Data.toBS id]++instance Data.ToQuery DescribeInsight where+ toQuery DescribeInsight' {..} =+ Prelude.mconcat ["AccountId" Data.=: accountId]++-- | /See:/ 'newDescribeInsightResponse' smart constructor.+data DescribeInsightResponse = DescribeInsightResponse'+ { -- | A @ProactiveInsight@ object that represents the requested insight.+ proactiveInsight :: Prelude.Maybe ProactiveInsight,+ -- | A @ReactiveInsight@ object that represents the requested insight.+ reactiveInsight :: Prelude.Maybe ReactiveInsight,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeInsightResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'proactiveInsight', 'describeInsightResponse_proactiveInsight' - A @ProactiveInsight@ object that represents the requested insight.+--+-- 'reactiveInsight', 'describeInsightResponse_reactiveInsight' - A @ReactiveInsight@ object that represents the requested insight.+--+-- 'httpStatus', 'describeInsightResponse_httpStatus' - The response's http status code.+newDescribeInsightResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeInsightResponse+newDescribeInsightResponse pHttpStatus_ =+ DescribeInsightResponse'+ { proactiveInsight =+ Prelude.Nothing,+ reactiveInsight = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A @ProactiveInsight@ object that represents the requested insight.+describeInsightResponse_proactiveInsight :: Lens.Lens' DescribeInsightResponse (Prelude.Maybe ProactiveInsight)+describeInsightResponse_proactiveInsight = Lens.lens (\DescribeInsightResponse' {proactiveInsight} -> proactiveInsight) (\s@DescribeInsightResponse' {} a -> s {proactiveInsight = a} :: DescribeInsightResponse)++-- | A @ReactiveInsight@ object that represents the requested insight.+describeInsightResponse_reactiveInsight :: Lens.Lens' DescribeInsightResponse (Prelude.Maybe ReactiveInsight)+describeInsightResponse_reactiveInsight = Lens.lens (\DescribeInsightResponse' {reactiveInsight} -> reactiveInsight) (\s@DescribeInsightResponse' {} a -> s {reactiveInsight = a} :: DescribeInsightResponse)++-- | The response's http status code.+describeInsightResponse_httpStatus :: Lens.Lens' DescribeInsightResponse Prelude.Int+describeInsightResponse_httpStatus = Lens.lens (\DescribeInsightResponse' {httpStatus} -> httpStatus) (\s@DescribeInsightResponse' {} a -> s {httpStatus = a} :: DescribeInsightResponse)++instance Prelude.NFData DescribeInsightResponse where+ rnf DescribeInsightResponse' {..} =+ Prelude.rnf proactiveInsight+ `Prelude.seq` Prelude.rnf reactiveInsight+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DevOpsGuru/DescribeOrganizationHealth.hs view
@@ -0,0 +1,249 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.DescribeOrganizationHealth+-- 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 active insights, predictive insights, and resource hours+-- analyzed in last hour.+module Amazonka.DevOpsGuru.DescribeOrganizationHealth+ ( -- * Creating a Request+ DescribeOrganizationHealth (..),+ newDescribeOrganizationHealth,++ -- * Request Lenses+ describeOrganizationHealth_accountIds,+ describeOrganizationHealth_organizationalUnitIds,++ -- * Destructuring the Response+ DescribeOrganizationHealthResponse (..),+ newDescribeOrganizationHealthResponse,++ -- * Response Lenses+ describeOrganizationHealthResponse_httpStatus,+ describeOrganizationHealthResponse_openReactiveInsights,+ describeOrganizationHealthResponse_openProactiveInsights,+ describeOrganizationHealthResponse_metricsAnalyzed,+ describeOrganizationHealthResponse_resourceHours,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeOrganizationHealth' smart constructor.+data DescribeOrganizationHealth = DescribeOrganizationHealth'+ { -- | The ID of the Amazon Web Services account.+ accountIds :: Prelude.Maybe [Prelude.Text],+ -- | The ID of the organizational unit.+ organizationalUnitIds :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeOrganizationHealth' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountIds', 'describeOrganizationHealth_accountIds' - The ID of the Amazon Web Services account.+--+-- 'organizationalUnitIds', 'describeOrganizationHealth_organizationalUnitIds' - The ID of the organizational unit.+newDescribeOrganizationHealth ::+ DescribeOrganizationHealth+newDescribeOrganizationHealth =+ DescribeOrganizationHealth'+ { accountIds =+ Prelude.Nothing,+ organizationalUnitIds = Prelude.Nothing+ }++-- | The ID of the Amazon Web Services account.+describeOrganizationHealth_accountIds :: Lens.Lens' DescribeOrganizationHealth (Prelude.Maybe [Prelude.Text])+describeOrganizationHealth_accountIds = Lens.lens (\DescribeOrganizationHealth' {accountIds} -> accountIds) (\s@DescribeOrganizationHealth' {} a -> s {accountIds = a} :: DescribeOrganizationHealth) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the organizational unit.+describeOrganizationHealth_organizationalUnitIds :: Lens.Lens' DescribeOrganizationHealth (Prelude.Maybe [Prelude.Text])+describeOrganizationHealth_organizationalUnitIds = Lens.lens (\DescribeOrganizationHealth' {organizationalUnitIds} -> organizationalUnitIds) (\s@DescribeOrganizationHealth' {} a -> s {organizationalUnitIds = a} :: DescribeOrganizationHealth) Prelude.. Lens.mapping Lens.coerced++instance Core.AWSRequest DescribeOrganizationHealth where+ type+ AWSResponse DescribeOrganizationHealth =+ DescribeOrganizationHealthResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeOrganizationHealthResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "OpenReactiveInsights")+ Prelude.<*> (x Data..:> "OpenProactiveInsights")+ Prelude.<*> (x Data..:> "MetricsAnalyzed")+ Prelude.<*> (x Data..:> "ResourceHours")+ )++instance Prelude.Hashable DescribeOrganizationHealth where+ hashWithSalt _salt DescribeOrganizationHealth' {..} =+ _salt+ `Prelude.hashWithSalt` accountIds+ `Prelude.hashWithSalt` organizationalUnitIds++instance Prelude.NFData DescribeOrganizationHealth where+ rnf DescribeOrganizationHealth' {..} =+ Prelude.rnf accountIds+ `Prelude.seq` Prelude.rnf organizationalUnitIds++instance Data.ToHeaders DescribeOrganizationHealth where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeOrganizationHealth where+ toJSON DescribeOrganizationHealth' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AccountIds" Data..=) Prelude.<$> accountIds,+ ("OrganizationalUnitIds" Data..=)+ Prelude.<$> organizationalUnitIds+ ]+ )++instance Data.ToPath DescribeOrganizationHealth where+ toPath = Prelude.const "/organization/health"++instance Data.ToQuery DescribeOrganizationHealth where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeOrganizationHealthResponse' smart constructor.+data DescribeOrganizationHealthResponse = DescribeOrganizationHealthResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | An integer that specifies the number of open reactive insights in your+ -- Amazon Web Services account.+ openReactiveInsights :: Prelude.Int,+ -- | An integer that specifies the number of open proactive insights in your+ -- Amazon Web Services account.+ openProactiveInsights :: Prelude.Int,+ -- | An integer that specifies the number of metrics that have been analyzed+ -- in your organization.+ metricsAnalyzed :: Prelude.Int,+ -- | The number of Amazon DevOps Guru resource analysis hours billed to the+ -- current Amazon Web Services account in the last hour.+ resourceHours :: Prelude.Integer+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeOrganizationHealthResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeOrganizationHealthResponse_httpStatus' - The response's http status code.+--+-- 'openReactiveInsights', 'describeOrganizationHealthResponse_openReactiveInsights' - An integer that specifies the number of open reactive insights in your+-- Amazon Web Services account.+--+-- 'openProactiveInsights', 'describeOrganizationHealthResponse_openProactiveInsights' - An integer that specifies the number of open proactive insights in your+-- Amazon Web Services account.+--+-- 'metricsAnalyzed', 'describeOrganizationHealthResponse_metricsAnalyzed' - An integer that specifies the number of metrics that have been analyzed+-- in your organization.+--+-- 'resourceHours', 'describeOrganizationHealthResponse_resourceHours' - The number of Amazon DevOps Guru resource analysis hours billed to the+-- current Amazon Web Services account in the last hour.+newDescribeOrganizationHealthResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'openReactiveInsights'+ Prelude.Int ->+ -- | 'openProactiveInsights'+ Prelude.Int ->+ -- | 'metricsAnalyzed'+ Prelude.Int ->+ -- | 'resourceHours'+ Prelude.Integer ->+ DescribeOrganizationHealthResponse+newDescribeOrganizationHealthResponse+ pHttpStatus_+ pOpenReactiveInsights_+ pOpenProactiveInsights_+ pMetricsAnalyzed_+ pResourceHours_ =+ DescribeOrganizationHealthResponse'+ { httpStatus =+ pHttpStatus_,+ openReactiveInsights =+ pOpenReactiveInsights_,+ openProactiveInsights =+ pOpenProactiveInsights_,+ metricsAnalyzed = pMetricsAnalyzed_,+ resourceHours = pResourceHours_+ }++-- | The response's http status code.+describeOrganizationHealthResponse_httpStatus :: Lens.Lens' DescribeOrganizationHealthResponse Prelude.Int+describeOrganizationHealthResponse_httpStatus = Lens.lens (\DescribeOrganizationHealthResponse' {httpStatus} -> httpStatus) (\s@DescribeOrganizationHealthResponse' {} a -> s {httpStatus = a} :: DescribeOrganizationHealthResponse)++-- | An integer that specifies the number of open reactive insights in your+-- Amazon Web Services account.+describeOrganizationHealthResponse_openReactiveInsights :: Lens.Lens' DescribeOrganizationHealthResponse Prelude.Int+describeOrganizationHealthResponse_openReactiveInsights = Lens.lens (\DescribeOrganizationHealthResponse' {openReactiveInsights} -> openReactiveInsights) (\s@DescribeOrganizationHealthResponse' {} a -> s {openReactiveInsights = a} :: DescribeOrganizationHealthResponse)++-- | An integer that specifies the number of open proactive insights in your+-- Amazon Web Services account.+describeOrganizationHealthResponse_openProactiveInsights :: Lens.Lens' DescribeOrganizationHealthResponse Prelude.Int+describeOrganizationHealthResponse_openProactiveInsights = Lens.lens (\DescribeOrganizationHealthResponse' {openProactiveInsights} -> openProactiveInsights) (\s@DescribeOrganizationHealthResponse' {} a -> s {openProactiveInsights = a} :: DescribeOrganizationHealthResponse)++-- | An integer that specifies the number of metrics that have been analyzed+-- in your organization.+describeOrganizationHealthResponse_metricsAnalyzed :: Lens.Lens' DescribeOrganizationHealthResponse Prelude.Int+describeOrganizationHealthResponse_metricsAnalyzed = Lens.lens (\DescribeOrganizationHealthResponse' {metricsAnalyzed} -> metricsAnalyzed) (\s@DescribeOrganizationHealthResponse' {} a -> s {metricsAnalyzed = a} :: DescribeOrganizationHealthResponse)++-- | The number of Amazon DevOps Guru resource analysis hours billed to the+-- current Amazon Web Services account in the last hour.+describeOrganizationHealthResponse_resourceHours :: Lens.Lens' DescribeOrganizationHealthResponse Prelude.Integer+describeOrganizationHealthResponse_resourceHours = Lens.lens (\DescribeOrganizationHealthResponse' {resourceHours} -> resourceHours) (\s@DescribeOrganizationHealthResponse' {} a -> s {resourceHours = a} :: DescribeOrganizationHealthResponse)++instance+ Prelude.NFData+ DescribeOrganizationHealthResponse+ where+ rnf DescribeOrganizationHealthResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf openReactiveInsights+ `Prelude.seq` Prelude.rnf openProactiveInsights+ `Prelude.seq` Prelude.rnf metricsAnalyzed+ `Prelude.seq` Prelude.rnf resourceHours
+ gen/Amazonka/DevOpsGuru/DescribeOrganizationOverview.hs view
@@ -0,0 +1,259 @@+{-# 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.DevOpsGuru.DescribeOrganizationOverview+-- 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 an overview of your organization\'s history based on the+-- specified time range. The overview includes the total reactive and+-- proactive insights.+module Amazonka.DevOpsGuru.DescribeOrganizationOverview+ ( -- * Creating a Request+ DescribeOrganizationOverview (..),+ newDescribeOrganizationOverview,++ -- * Request Lenses+ describeOrganizationOverview_accountIds,+ describeOrganizationOverview_organizationalUnitIds,+ describeOrganizationOverview_toTime,+ describeOrganizationOverview_fromTime,++ -- * Destructuring the Response+ DescribeOrganizationOverviewResponse (..),+ newDescribeOrganizationOverviewResponse,++ -- * Response Lenses+ describeOrganizationOverviewResponse_httpStatus,+ describeOrganizationOverviewResponse_reactiveInsights,+ describeOrganizationOverviewResponse_proactiveInsights,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeOrganizationOverview' smart constructor.+data DescribeOrganizationOverview = DescribeOrganizationOverview'+ { -- | The ID of the Amazon Web Services account.+ accountIds :: Prelude.Maybe [Prelude.Text],+ -- | The ID of the organizational unit.+ organizationalUnitIds :: Prelude.Maybe [Prelude.Text],+ -- | The end of the time range passed in. The start time granularity is at+ -- the day level. The floor of the start time is used. Returned information+ -- occurred before this day. If this is not specified, then the current day+ -- is used.+ toTime :: Prelude.Maybe Data.POSIX,+ -- | The start of the time range passed in. The start time granularity is at+ -- the day level. The floor of the start time is used. Returned information+ -- occurred after this day.+ fromTime :: Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeOrganizationOverview' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountIds', 'describeOrganizationOverview_accountIds' - The ID of the Amazon Web Services account.+--+-- 'organizationalUnitIds', 'describeOrganizationOverview_organizationalUnitIds' - The ID of the organizational unit.+--+-- 'toTime', 'describeOrganizationOverview_toTime' - The end of the time range passed in. The start time granularity is at+-- the day level. The floor of the start time is used. Returned information+-- occurred before this day. If this is not specified, then the current day+-- is used.+--+-- 'fromTime', 'describeOrganizationOverview_fromTime' - The start of the time range passed in. The start time granularity is at+-- the day level. The floor of the start time is used. Returned information+-- occurred after this day.+newDescribeOrganizationOverview ::+ -- | 'fromTime'+ Prelude.UTCTime ->+ DescribeOrganizationOverview+newDescribeOrganizationOverview pFromTime_ =+ DescribeOrganizationOverview'+ { accountIds =+ Prelude.Nothing,+ organizationalUnitIds = Prelude.Nothing,+ toTime = Prelude.Nothing,+ fromTime = Data._Time Lens.# pFromTime_+ }++-- | The ID of the Amazon Web Services account.+describeOrganizationOverview_accountIds :: Lens.Lens' DescribeOrganizationOverview (Prelude.Maybe [Prelude.Text])+describeOrganizationOverview_accountIds = Lens.lens (\DescribeOrganizationOverview' {accountIds} -> accountIds) (\s@DescribeOrganizationOverview' {} a -> s {accountIds = a} :: DescribeOrganizationOverview) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the organizational unit.+describeOrganizationOverview_organizationalUnitIds :: Lens.Lens' DescribeOrganizationOverview (Prelude.Maybe [Prelude.Text])+describeOrganizationOverview_organizationalUnitIds = Lens.lens (\DescribeOrganizationOverview' {organizationalUnitIds} -> organizationalUnitIds) (\s@DescribeOrganizationOverview' {} a -> s {organizationalUnitIds = a} :: DescribeOrganizationOverview) Prelude.. Lens.mapping Lens.coerced++-- | The end of the time range passed in. The start time granularity is at+-- the day level. The floor of the start time is used. Returned information+-- occurred before this day. If this is not specified, then the current day+-- is used.+describeOrganizationOverview_toTime :: Lens.Lens' DescribeOrganizationOverview (Prelude.Maybe Prelude.UTCTime)+describeOrganizationOverview_toTime = Lens.lens (\DescribeOrganizationOverview' {toTime} -> toTime) (\s@DescribeOrganizationOverview' {} a -> s {toTime = a} :: DescribeOrganizationOverview) Prelude.. Lens.mapping Data._Time++-- | The start of the time range passed in. The start time granularity is at+-- the day level. The floor of the start time is used. Returned information+-- occurred after this day.+describeOrganizationOverview_fromTime :: Lens.Lens' DescribeOrganizationOverview Prelude.UTCTime+describeOrganizationOverview_fromTime = Lens.lens (\DescribeOrganizationOverview' {fromTime} -> fromTime) (\s@DescribeOrganizationOverview' {} a -> s {fromTime = a} :: DescribeOrganizationOverview) Prelude.. Data._Time++instance Core.AWSRequest DescribeOrganizationOverview where+ type+ AWSResponse DescribeOrganizationOverview =+ DescribeOrganizationOverviewResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeOrganizationOverviewResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "ReactiveInsights")+ Prelude.<*> (x Data..:> "ProactiveInsights")+ )++instance+ Prelude.Hashable+ DescribeOrganizationOverview+ where+ hashWithSalt _salt DescribeOrganizationOverview' {..} =+ _salt+ `Prelude.hashWithSalt` accountIds+ `Prelude.hashWithSalt` organizationalUnitIds+ `Prelude.hashWithSalt` toTime+ `Prelude.hashWithSalt` fromTime++instance Prelude.NFData DescribeOrganizationOverview where+ rnf DescribeOrganizationOverview' {..} =+ Prelude.rnf accountIds+ `Prelude.seq` Prelude.rnf organizationalUnitIds+ `Prelude.seq` Prelude.rnf toTime+ `Prelude.seq` Prelude.rnf fromTime++instance Data.ToHeaders DescribeOrganizationOverview where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeOrganizationOverview where+ toJSON DescribeOrganizationOverview' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AccountIds" Data..=) Prelude.<$> accountIds,+ ("OrganizationalUnitIds" Data..=)+ Prelude.<$> organizationalUnitIds,+ ("ToTime" Data..=) Prelude.<$> toTime,+ Prelude.Just ("FromTime" Data..= fromTime)+ ]+ )++instance Data.ToPath DescribeOrganizationOverview where+ toPath = Prelude.const "/organization/overview"++instance Data.ToQuery DescribeOrganizationOverview where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeOrganizationOverviewResponse' smart constructor.+data DescribeOrganizationOverviewResponse = DescribeOrganizationOverviewResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | An integer that specifies the number of open reactive insights in your+ -- Amazon Web Services account.+ reactiveInsights :: Prelude.Int,+ -- | An integer that specifies the number of open proactive insights in your+ -- Amazon Web Services account.+ proactiveInsights :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeOrganizationOverviewResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeOrganizationOverviewResponse_httpStatus' - The response's http status code.+--+-- 'reactiveInsights', 'describeOrganizationOverviewResponse_reactiveInsights' - An integer that specifies the number of open reactive insights in your+-- Amazon Web Services account.+--+-- 'proactiveInsights', 'describeOrganizationOverviewResponse_proactiveInsights' - An integer that specifies the number of open proactive insights in your+-- Amazon Web Services account.+newDescribeOrganizationOverviewResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'reactiveInsights'+ Prelude.Int ->+ -- | 'proactiveInsights'+ Prelude.Int ->+ DescribeOrganizationOverviewResponse+newDescribeOrganizationOverviewResponse+ pHttpStatus_+ pReactiveInsights_+ pProactiveInsights_ =+ DescribeOrganizationOverviewResponse'+ { httpStatus =+ pHttpStatus_,+ reactiveInsights = pReactiveInsights_,+ proactiveInsights =+ pProactiveInsights_+ }++-- | The response's http status code.+describeOrganizationOverviewResponse_httpStatus :: Lens.Lens' DescribeOrganizationOverviewResponse Prelude.Int+describeOrganizationOverviewResponse_httpStatus = Lens.lens (\DescribeOrganizationOverviewResponse' {httpStatus} -> httpStatus) (\s@DescribeOrganizationOverviewResponse' {} a -> s {httpStatus = a} :: DescribeOrganizationOverviewResponse)++-- | An integer that specifies the number of open reactive insights in your+-- Amazon Web Services account.+describeOrganizationOverviewResponse_reactiveInsights :: Lens.Lens' DescribeOrganizationOverviewResponse Prelude.Int+describeOrganizationOverviewResponse_reactiveInsights = Lens.lens (\DescribeOrganizationOverviewResponse' {reactiveInsights} -> reactiveInsights) (\s@DescribeOrganizationOverviewResponse' {} a -> s {reactiveInsights = a} :: DescribeOrganizationOverviewResponse)++-- | An integer that specifies the number of open proactive insights in your+-- Amazon Web Services account.+describeOrganizationOverviewResponse_proactiveInsights :: Lens.Lens' DescribeOrganizationOverviewResponse Prelude.Int+describeOrganizationOverviewResponse_proactiveInsights = Lens.lens (\DescribeOrganizationOverviewResponse' {proactiveInsights} -> proactiveInsights) (\s@DescribeOrganizationOverviewResponse' {} a -> s {proactiveInsights = a} :: DescribeOrganizationOverviewResponse)++instance+ Prelude.NFData+ DescribeOrganizationOverviewResponse+ where+ rnf DescribeOrganizationOverviewResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf reactiveInsights+ `Prelude.seq` Prelude.rnf proactiveInsights
+ gen/Amazonka/DevOpsGuru/DescribeOrganizationResourceCollectionHealth.hs view
@@ -0,0 +1,496 @@+{-# 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.DevOpsGuru.DescribeOrganizationResourceCollectionHealth+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Provides an overview of your system\'s health. If additional member+-- accounts are part of your organization, you can filter those accounts+-- using the @AccountIds@ field.+--+-- This operation returns paginated results.+module Amazonka.DevOpsGuru.DescribeOrganizationResourceCollectionHealth+ ( -- * Creating a Request+ DescribeOrganizationResourceCollectionHealth (..),+ newDescribeOrganizationResourceCollectionHealth,++ -- * Request Lenses+ describeOrganizationResourceCollectionHealth_accountIds,+ describeOrganizationResourceCollectionHealth_maxResults,+ describeOrganizationResourceCollectionHealth_nextToken,+ describeOrganizationResourceCollectionHealth_organizationalUnitIds,+ describeOrganizationResourceCollectionHealth_organizationResourceCollectionType,++ -- * Destructuring the Response+ DescribeOrganizationResourceCollectionHealthResponse (..),+ newDescribeOrganizationResourceCollectionHealthResponse,++ -- * Response Lenses+ describeOrganizationResourceCollectionHealthResponse_account,+ describeOrganizationResourceCollectionHealthResponse_cloudFormation,+ describeOrganizationResourceCollectionHealthResponse_nextToken,+ describeOrganizationResourceCollectionHealthResponse_service,+ describeOrganizationResourceCollectionHealthResponse_tags,+ describeOrganizationResourceCollectionHealthResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeOrganizationResourceCollectionHealth' smart constructor.+data DescribeOrganizationResourceCollectionHealth = DescribeOrganizationResourceCollectionHealth'+ { -- | The ID of the Amazon Web Services account.+ accountIds :: Prelude.Maybe [Prelude.Text],+ -- | The maximum number of results to return with a single call. To retrieve+ -- the remaining results, make another call with the returned @nextToken@+ -- value.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If this value is null, it retrieves the first page.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The ID of the organizational unit.+ organizationalUnitIds :: Prelude.Maybe [Prelude.Text],+ -- | An Amazon Web Services resource collection type. This type specifies how+ -- analyzed Amazon Web Services resources are defined. The two types of+ -- Amazon Web Services resource collections supported are Amazon Web+ -- Services CloudFormation stacks and Amazon Web Services resources that+ -- contain the same Amazon Web Services tag. DevOps Guru can be configured+ -- to analyze the Amazon Web Services resources that are defined in the+ -- stacks or that are tagged using the same tag /key/. You can specify up+ -- to 500 Amazon Web Services CloudFormation stacks.+ organizationResourceCollectionType :: OrganizationResourceCollectionType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeOrganizationResourceCollectionHealth' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountIds', 'describeOrganizationResourceCollectionHealth_accountIds' - The ID of the Amazon Web Services account.+--+-- 'maxResults', 'describeOrganizationResourceCollectionHealth_maxResults' - The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+--+-- 'nextToken', 'describeOrganizationResourceCollectionHealth_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+--+-- 'organizationalUnitIds', 'describeOrganizationResourceCollectionHealth_organizationalUnitIds' - The ID of the organizational unit.+--+-- 'organizationResourceCollectionType', 'describeOrganizationResourceCollectionHealth_organizationResourceCollectionType' - An Amazon Web Services resource collection type. This type specifies how+-- analyzed Amazon Web Services resources are defined. The two types of+-- Amazon Web Services resource collections supported are Amazon Web+-- Services CloudFormation stacks and Amazon Web Services resources that+-- contain the same Amazon Web Services tag. DevOps Guru can be configured+-- to analyze the Amazon Web Services resources that are defined in the+-- stacks or that are tagged using the same tag /key/. You can specify up+-- to 500 Amazon Web Services CloudFormation stacks.+newDescribeOrganizationResourceCollectionHealth ::+ -- | 'organizationResourceCollectionType'+ OrganizationResourceCollectionType ->+ DescribeOrganizationResourceCollectionHealth+newDescribeOrganizationResourceCollectionHealth+ pOrganizationResourceCollectionType_ =+ DescribeOrganizationResourceCollectionHealth'+ { accountIds =+ Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ organizationalUnitIds =+ Prelude.Nothing,+ organizationResourceCollectionType =+ pOrganizationResourceCollectionType_+ }++-- | The ID of the Amazon Web Services account.+describeOrganizationResourceCollectionHealth_accountIds :: Lens.Lens' DescribeOrganizationResourceCollectionHealth (Prelude.Maybe [Prelude.Text])+describeOrganizationResourceCollectionHealth_accountIds = Lens.lens (\DescribeOrganizationResourceCollectionHealth' {accountIds} -> accountIds) (\s@DescribeOrganizationResourceCollectionHealth' {} a -> s {accountIds = a} :: DescribeOrganizationResourceCollectionHealth) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+describeOrganizationResourceCollectionHealth_maxResults :: Lens.Lens' DescribeOrganizationResourceCollectionHealth (Prelude.Maybe Prelude.Natural)+describeOrganizationResourceCollectionHealth_maxResults = Lens.lens (\DescribeOrganizationResourceCollectionHealth' {maxResults} -> maxResults) (\s@DescribeOrganizationResourceCollectionHealth' {} a -> s {maxResults = a} :: DescribeOrganizationResourceCollectionHealth)++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+describeOrganizationResourceCollectionHealth_nextToken :: Lens.Lens' DescribeOrganizationResourceCollectionHealth (Prelude.Maybe Prelude.Text)+describeOrganizationResourceCollectionHealth_nextToken = Lens.lens (\DescribeOrganizationResourceCollectionHealth' {nextToken} -> nextToken) (\s@DescribeOrganizationResourceCollectionHealth' {} a -> s {nextToken = a} :: DescribeOrganizationResourceCollectionHealth)++-- | The ID of the organizational unit.+describeOrganizationResourceCollectionHealth_organizationalUnitIds :: Lens.Lens' DescribeOrganizationResourceCollectionHealth (Prelude.Maybe [Prelude.Text])+describeOrganizationResourceCollectionHealth_organizationalUnitIds = Lens.lens (\DescribeOrganizationResourceCollectionHealth' {organizationalUnitIds} -> organizationalUnitIds) (\s@DescribeOrganizationResourceCollectionHealth' {} a -> s {organizationalUnitIds = a} :: DescribeOrganizationResourceCollectionHealth) Prelude.. Lens.mapping Lens.coerced++-- | An Amazon Web Services resource collection type. This type specifies how+-- analyzed Amazon Web Services resources are defined. The two types of+-- Amazon Web Services resource collections supported are Amazon Web+-- Services CloudFormation stacks and Amazon Web Services resources that+-- contain the same Amazon Web Services tag. DevOps Guru can be configured+-- to analyze the Amazon Web Services resources that are defined in the+-- stacks or that are tagged using the same tag /key/. You can specify up+-- to 500 Amazon Web Services CloudFormation stacks.+describeOrganizationResourceCollectionHealth_organizationResourceCollectionType :: Lens.Lens' DescribeOrganizationResourceCollectionHealth OrganizationResourceCollectionType+describeOrganizationResourceCollectionHealth_organizationResourceCollectionType = Lens.lens (\DescribeOrganizationResourceCollectionHealth' {organizationResourceCollectionType} -> organizationResourceCollectionType) (\s@DescribeOrganizationResourceCollectionHealth' {} a -> s {organizationResourceCollectionType = a} :: DescribeOrganizationResourceCollectionHealth)++instance+ Core.AWSPager+ DescribeOrganizationResourceCollectionHealth+ where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? describeOrganizationResourceCollectionHealthResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? describeOrganizationResourceCollectionHealthResponse_cloudFormation+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? describeOrganizationResourceCollectionHealthResponse_account+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? describeOrganizationResourceCollectionHealthResponse_service+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? describeOrganizationResourceCollectionHealthResponse_tags+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& describeOrganizationResourceCollectionHealth_nextToken+ Lens..~ rs+ Lens.^? describeOrganizationResourceCollectionHealthResponse_nextToken+ Prelude.. Lens._Just++instance+ Core.AWSRequest+ DescribeOrganizationResourceCollectionHealth+ where+ type+ AWSResponse+ DescribeOrganizationResourceCollectionHealth =+ DescribeOrganizationResourceCollectionHealthResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeOrganizationResourceCollectionHealthResponse'+ Prelude.<$> (x Data..?> "Account" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "CloudFormation" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (x Data..?> "Service" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ DescribeOrganizationResourceCollectionHealth+ where+ hashWithSalt+ _salt+ DescribeOrganizationResourceCollectionHealth' {..} =+ _salt+ `Prelude.hashWithSalt` accountIds+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` organizationalUnitIds+ `Prelude.hashWithSalt` organizationResourceCollectionType++instance+ Prelude.NFData+ DescribeOrganizationResourceCollectionHealth+ where+ rnf DescribeOrganizationResourceCollectionHealth' {..} =+ Prelude.rnf accountIds+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf organizationalUnitIds+ `Prelude.seq` Prelude.rnf organizationResourceCollectionType++instance+ Data.ToHeaders+ DescribeOrganizationResourceCollectionHealth+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToJSON+ DescribeOrganizationResourceCollectionHealth+ where+ toJSON+ DescribeOrganizationResourceCollectionHealth' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AccountIds" Data..=) Prelude.<$> accountIds,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ ("OrganizationalUnitIds" Data..=)+ Prelude.<$> organizationalUnitIds,+ Prelude.Just+ ( "OrganizationResourceCollectionType"+ Data..= organizationResourceCollectionType+ )+ ]+ )++instance+ Data.ToPath+ DescribeOrganizationResourceCollectionHealth+ where+ toPath =+ Prelude.const+ "/organization/health/resource-collection"++instance+ Data.ToQuery+ DescribeOrganizationResourceCollectionHealth+ where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeOrganizationResourceCollectionHealthResponse' smart constructor.+data DescribeOrganizationResourceCollectionHealthResponse = DescribeOrganizationResourceCollectionHealthResponse'+ { -- | The name of the organization\'s account.+ account :: Prelude.Maybe [AccountHealth],+ -- | The returned @CloudFormationHealthOverview@ object that contains an+ -- @InsightHealthOverview@ object with the requested system health+ -- information.+ cloudFormation :: Prelude.Maybe [CloudFormationHealth],+ -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If there are no more pages, this value is null.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | An array of @ServiceHealth@ objects that describes the health of the+ -- Amazon Web Services services associated with the resources in the+ -- collection.+ service :: Prelude.Maybe [ServiceHealth],+ -- | Tags help you identify and organize your Amazon Web Services resources.+ -- Many Amazon Web Services services support tagging, so you can assign the+ -- same tag to resources from different services to indicate that the+ -- resources are related. For example, you can assign the same tag to an+ -- Amazon DynamoDB table resource that you assign to an Lambda function.+ -- For more information about using tags, see the+ -- <https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf Tagging best practices>+ -- whitepaper.+ --+ -- Each Amazon Web Services tag has two parts.+ --+ -- - A tag /key/ (for example, @CostCenter@, @Environment@, @Project@, or+ -- @Secret@). Tag /keys/ are case-sensitive.+ --+ -- - An optional field known as a tag /value/ (for example,+ -- @111122223333@, @Production@, or a team name). Omitting the tag+ -- /value/ is the same as using an empty string. Like tag /keys/, tag+ -- /values/ are case-sensitive.+ --+ -- Together these are known as /key/-/value/ pairs.+ --+ -- The string used for a /key/ in a tag that you use to define your+ -- resource coverage must begin with the prefix @Devops-guru-@. The tag+ -- /key/ might be @DevOps-Guru-deployment-application@ or+ -- @devops-guru-rds-application@. When you create a /key/, the case of+ -- characters in the /key/ can be whatever you choose. After you create a+ -- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+ -- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+ -- act as two different /keys/. Possible /key/\//value/ pairs in your+ -- application might be @Devops-Guru-production-application\/RDS@ or+ -- @Devops-Guru-production-application\/containers@.+ tags :: Prelude.Maybe [TagHealth],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeOrganizationResourceCollectionHealthResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'account', 'describeOrganizationResourceCollectionHealthResponse_account' - The name of the organization\'s account.+--+-- 'cloudFormation', 'describeOrganizationResourceCollectionHealthResponse_cloudFormation' - The returned @CloudFormationHealthOverview@ object that contains an+-- @InsightHealthOverview@ object with the requested system health+-- information.+--+-- 'nextToken', 'describeOrganizationResourceCollectionHealthResponse_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+--+-- 'service', 'describeOrganizationResourceCollectionHealthResponse_service' - An array of @ServiceHealth@ objects that describes the health of the+-- Amazon Web Services services associated with the resources in the+-- collection.+--+-- 'tags', 'describeOrganizationResourceCollectionHealthResponse_tags' - Tags help you identify and organize your Amazon Web Services resources.+-- Many Amazon Web Services services support tagging, so you can assign the+-- same tag to resources from different services to indicate that the+-- resources are related. For example, you can assign the same tag to an+-- Amazon DynamoDB table resource that you assign to an Lambda function.+-- For more information about using tags, see the+-- <https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf Tagging best practices>+-- whitepaper.+--+-- Each Amazon Web Services tag has two parts.+--+-- - A tag /key/ (for example, @CostCenter@, @Environment@, @Project@, or+-- @Secret@). Tag /keys/ are case-sensitive.+--+-- - An optional field known as a tag /value/ (for example,+-- @111122223333@, @Production@, or a team name). Omitting the tag+-- /value/ is the same as using an empty string. Like tag /keys/, tag+-- /values/ are case-sensitive.+--+-- Together these are known as /key/-/value/ pairs.+--+-- The string used for a /key/ in a tag that you use to define your+-- resource coverage must begin with the prefix @Devops-guru-@. The tag+-- /key/ might be @DevOps-Guru-deployment-application@ or+-- @devops-guru-rds-application@. When you create a /key/, the case of+-- characters in the /key/ can be whatever you choose. After you create a+-- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+-- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+-- act as two different /keys/. Possible /key/\//value/ pairs in your+-- application might be @Devops-Guru-production-application\/RDS@ or+-- @Devops-Guru-production-application\/containers@.+--+-- 'httpStatus', 'describeOrganizationResourceCollectionHealthResponse_httpStatus' - The response's http status code.+newDescribeOrganizationResourceCollectionHealthResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeOrganizationResourceCollectionHealthResponse+newDescribeOrganizationResourceCollectionHealthResponse+ pHttpStatus_ =+ DescribeOrganizationResourceCollectionHealthResponse'+ { account =+ Prelude.Nothing,+ cloudFormation =+ Prelude.Nothing,+ nextToken =+ Prelude.Nothing,+ service =+ Prelude.Nothing,+ tags =+ Prelude.Nothing,+ httpStatus =+ pHttpStatus_+ }++-- | The name of the organization\'s account.+describeOrganizationResourceCollectionHealthResponse_account :: Lens.Lens' DescribeOrganizationResourceCollectionHealthResponse (Prelude.Maybe [AccountHealth])+describeOrganizationResourceCollectionHealthResponse_account = Lens.lens (\DescribeOrganizationResourceCollectionHealthResponse' {account} -> account) (\s@DescribeOrganizationResourceCollectionHealthResponse' {} a -> s {account = a} :: DescribeOrganizationResourceCollectionHealthResponse) Prelude.. Lens.mapping Lens.coerced++-- | The returned @CloudFormationHealthOverview@ object that contains an+-- @InsightHealthOverview@ object with the requested system health+-- information.+describeOrganizationResourceCollectionHealthResponse_cloudFormation :: Lens.Lens' DescribeOrganizationResourceCollectionHealthResponse (Prelude.Maybe [CloudFormationHealth])+describeOrganizationResourceCollectionHealthResponse_cloudFormation = Lens.lens (\DescribeOrganizationResourceCollectionHealthResponse' {cloudFormation} -> cloudFormation) (\s@DescribeOrganizationResourceCollectionHealthResponse' {} a -> s {cloudFormation = a} :: DescribeOrganizationResourceCollectionHealthResponse) Prelude.. Lens.mapping Lens.coerced++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+describeOrganizationResourceCollectionHealthResponse_nextToken :: Lens.Lens' DescribeOrganizationResourceCollectionHealthResponse (Prelude.Maybe Prelude.Text)+describeOrganizationResourceCollectionHealthResponse_nextToken = Lens.lens (\DescribeOrganizationResourceCollectionHealthResponse' {nextToken} -> nextToken) (\s@DescribeOrganizationResourceCollectionHealthResponse' {} a -> s {nextToken = a} :: DescribeOrganizationResourceCollectionHealthResponse)++-- | An array of @ServiceHealth@ objects that describes the health of the+-- Amazon Web Services services associated with the resources in the+-- collection.+describeOrganizationResourceCollectionHealthResponse_service :: Lens.Lens' DescribeOrganizationResourceCollectionHealthResponse (Prelude.Maybe [ServiceHealth])+describeOrganizationResourceCollectionHealthResponse_service = Lens.lens (\DescribeOrganizationResourceCollectionHealthResponse' {service} -> service) (\s@DescribeOrganizationResourceCollectionHealthResponse' {} a -> s {service = a} :: DescribeOrganizationResourceCollectionHealthResponse) Prelude.. Lens.mapping Lens.coerced++-- | Tags help you identify and organize your Amazon Web Services resources.+-- Many Amazon Web Services services support tagging, so you can assign the+-- same tag to resources from different services to indicate that the+-- resources are related. For example, you can assign the same tag to an+-- Amazon DynamoDB table resource that you assign to an Lambda function.+-- For more information about using tags, see the+-- <https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf Tagging best practices>+-- whitepaper.+--+-- Each Amazon Web Services tag has two parts.+--+-- - A tag /key/ (for example, @CostCenter@, @Environment@, @Project@, or+-- @Secret@). Tag /keys/ are case-sensitive.+--+-- - An optional field known as a tag /value/ (for example,+-- @111122223333@, @Production@, or a team name). Omitting the tag+-- /value/ is the same as using an empty string. Like tag /keys/, tag+-- /values/ are case-sensitive.+--+-- Together these are known as /key/-/value/ pairs.+--+-- The string used for a /key/ in a tag that you use to define your+-- resource coverage must begin with the prefix @Devops-guru-@. The tag+-- /key/ might be @DevOps-Guru-deployment-application@ or+-- @devops-guru-rds-application@. When you create a /key/, the case of+-- characters in the /key/ can be whatever you choose. After you create a+-- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+-- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+-- act as two different /keys/. Possible /key/\//value/ pairs in your+-- application might be @Devops-Guru-production-application\/RDS@ or+-- @Devops-Guru-production-application\/containers@.+describeOrganizationResourceCollectionHealthResponse_tags :: Lens.Lens' DescribeOrganizationResourceCollectionHealthResponse (Prelude.Maybe [TagHealth])+describeOrganizationResourceCollectionHealthResponse_tags = Lens.lens (\DescribeOrganizationResourceCollectionHealthResponse' {tags} -> tags) (\s@DescribeOrganizationResourceCollectionHealthResponse' {} a -> s {tags = a} :: DescribeOrganizationResourceCollectionHealthResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeOrganizationResourceCollectionHealthResponse_httpStatus :: Lens.Lens' DescribeOrganizationResourceCollectionHealthResponse Prelude.Int+describeOrganizationResourceCollectionHealthResponse_httpStatus = Lens.lens (\DescribeOrganizationResourceCollectionHealthResponse' {httpStatus} -> httpStatus) (\s@DescribeOrganizationResourceCollectionHealthResponse' {} a -> s {httpStatus = a} :: DescribeOrganizationResourceCollectionHealthResponse)++instance+ Prelude.NFData+ DescribeOrganizationResourceCollectionHealthResponse+ where+ rnf+ DescribeOrganizationResourceCollectionHealthResponse' {..} =+ Prelude.rnf account+ `Prelude.seq` Prelude.rnf cloudFormation+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf service+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DevOpsGuru/DescribeResourceCollectionHealth.hs view
@@ -0,0 +1,424 @@+{-# 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.DevOpsGuru.DescribeResourceCollectionHealth+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the number of open proactive insights, open reactive insights,+-- and the Mean Time to Recover (MTTR) for all closed insights in resource+-- collections in your account. You specify the type of Amazon Web Services+-- resources collection. The two types of Amazon Web Services resource+-- collections supported are Amazon Web Services CloudFormation stacks and+-- Amazon Web Services resources that contain the same Amazon Web Services+-- tag. DevOps Guru can be configured to analyze the Amazon Web Services+-- resources that are defined in the stacks or that are tagged using the+-- same tag /key/. You can specify up to 500 Amazon Web Services+-- CloudFormation stacks.+--+-- This operation returns paginated results.+module Amazonka.DevOpsGuru.DescribeResourceCollectionHealth+ ( -- * Creating a Request+ DescribeResourceCollectionHealth (..),+ newDescribeResourceCollectionHealth,++ -- * Request Lenses+ describeResourceCollectionHealth_nextToken,+ describeResourceCollectionHealth_resourceCollectionType,++ -- * Destructuring the Response+ DescribeResourceCollectionHealthResponse (..),+ newDescribeResourceCollectionHealthResponse,++ -- * Response Lenses+ describeResourceCollectionHealthResponse_cloudFormation,+ describeResourceCollectionHealthResponse_nextToken,+ describeResourceCollectionHealthResponse_service,+ describeResourceCollectionHealthResponse_tags,+ describeResourceCollectionHealthResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeResourceCollectionHealth' smart constructor.+data DescribeResourceCollectionHealth = DescribeResourceCollectionHealth'+ { -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If this value is null, it retrieves the first page.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | An Amazon Web Services resource collection type. This type specifies how+ -- analyzed Amazon Web Services resources are defined. The two types of+ -- Amazon Web Services resource collections supported are Amazon Web+ -- Services CloudFormation stacks and Amazon Web Services resources that+ -- contain the same Amazon Web Services tag. DevOps Guru can be configured+ -- to analyze the Amazon Web Services resources that are defined in the+ -- stacks or that are tagged using the same tag /key/. You can specify up+ -- to 500 Amazon Web Services CloudFormation stacks.+ resourceCollectionType :: ResourceCollectionType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeResourceCollectionHealth' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'describeResourceCollectionHealth_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+--+-- 'resourceCollectionType', 'describeResourceCollectionHealth_resourceCollectionType' - An Amazon Web Services resource collection type. This type specifies how+-- analyzed Amazon Web Services resources are defined. The two types of+-- Amazon Web Services resource collections supported are Amazon Web+-- Services CloudFormation stacks and Amazon Web Services resources that+-- contain the same Amazon Web Services tag. DevOps Guru can be configured+-- to analyze the Amazon Web Services resources that are defined in the+-- stacks or that are tagged using the same tag /key/. You can specify up+-- to 500 Amazon Web Services CloudFormation stacks.+newDescribeResourceCollectionHealth ::+ -- | 'resourceCollectionType'+ ResourceCollectionType ->+ DescribeResourceCollectionHealth+newDescribeResourceCollectionHealth+ pResourceCollectionType_ =+ DescribeResourceCollectionHealth'+ { nextToken =+ Prelude.Nothing,+ resourceCollectionType =+ pResourceCollectionType_+ }++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+describeResourceCollectionHealth_nextToken :: Lens.Lens' DescribeResourceCollectionHealth (Prelude.Maybe Prelude.Text)+describeResourceCollectionHealth_nextToken = Lens.lens (\DescribeResourceCollectionHealth' {nextToken} -> nextToken) (\s@DescribeResourceCollectionHealth' {} a -> s {nextToken = a} :: DescribeResourceCollectionHealth)++-- | An Amazon Web Services resource collection type. This type specifies how+-- analyzed Amazon Web Services resources are defined. The two types of+-- Amazon Web Services resource collections supported are Amazon Web+-- Services CloudFormation stacks and Amazon Web Services resources that+-- contain the same Amazon Web Services tag. DevOps Guru can be configured+-- to analyze the Amazon Web Services resources that are defined in the+-- stacks or that are tagged using the same tag /key/. You can specify up+-- to 500 Amazon Web Services CloudFormation stacks.+describeResourceCollectionHealth_resourceCollectionType :: Lens.Lens' DescribeResourceCollectionHealth ResourceCollectionType+describeResourceCollectionHealth_resourceCollectionType = Lens.lens (\DescribeResourceCollectionHealth' {resourceCollectionType} -> resourceCollectionType) (\s@DescribeResourceCollectionHealth' {} a -> s {resourceCollectionType = a} :: DescribeResourceCollectionHealth)++instance+ Core.AWSPager+ DescribeResourceCollectionHealth+ where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? describeResourceCollectionHealthResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? describeResourceCollectionHealthResponse_cloudFormation+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? describeResourceCollectionHealthResponse_service+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? describeResourceCollectionHealthResponse_tags+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& describeResourceCollectionHealth_nextToken+ Lens..~ rs+ Lens.^? describeResourceCollectionHealthResponse_nextToken+ Prelude.. Lens._Just++instance+ Core.AWSRequest+ DescribeResourceCollectionHealth+ where+ type+ AWSResponse DescribeResourceCollectionHealth =+ DescribeResourceCollectionHealthResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeResourceCollectionHealthResponse'+ Prelude.<$> (x Data..?> "CloudFormation" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (x Data..?> "Service" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ DescribeResourceCollectionHealth+ where+ hashWithSalt+ _salt+ DescribeResourceCollectionHealth' {..} =+ _salt+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` resourceCollectionType++instance+ Prelude.NFData+ DescribeResourceCollectionHealth+ where+ rnf DescribeResourceCollectionHealth' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf resourceCollectionType++instance+ Data.ToHeaders+ DescribeResourceCollectionHealth+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DescribeResourceCollectionHealth where+ toPath DescribeResourceCollectionHealth' {..} =+ Prelude.mconcat+ [ "/accounts/health/resource-collection/",+ Data.toBS resourceCollectionType+ ]++instance+ Data.ToQuery+ DescribeResourceCollectionHealth+ where+ toQuery DescribeResourceCollectionHealth' {..} =+ Prelude.mconcat ["NextToken" Data.=: nextToken]++-- | /See:/ 'newDescribeResourceCollectionHealthResponse' smart constructor.+data DescribeResourceCollectionHealthResponse = DescribeResourceCollectionHealthResponse'+ { -- | The returned @CloudFormationHealthOverview@ object that contains an+ -- @InsightHealthOverview@ object with the requested system health+ -- information.+ cloudFormation :: Prelude.Maybe [CloudFormationHealth],+ -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If there are no more pages, this value is null.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | An array of @ServiceHealth@ objects that describes the health of the+ -- Amazon Web Services services associated with the resources in the+ -- collection.+ service :: Prelude.Maybe [ServiceHealth],+ -- | The Amazon Web Services tags that are used by resources in the resource+ -- collection.+ --+ -- Tags help you identify and organize your Amazon Web Services resources.+ -- Many Amazon Web Services services support tagging, so you can assign the+ -- same tag to resources from different services to indicate that the+ -- resources are related. For example, you can assign the same tag to an+ -- Amazon DynamoDB table resource that you assign to an Lambda function.+ -- For more information about using tags, see the+ -- <https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf Tagging best practices>+ -- whitepaper.+ --+ -- Each Amazon Web Services tag has two parts.+ --+ -- - A tag /key/ (for example, @CostCenter@, @Environment@, @Project@, or+ -- @Secret@). Tag /keys/ are case-sensitive.+ --+ -- - An optional field known as a tag /value/ (for example,+ -- @111122223333@, @Production@, or a team name). Omitting the tag+ -- /value/ is the same as using an empty string. Like tag /keys/, tag+ -- /values/ are case-sensitive.+ --+ -- Together these are known as /key/-/value/ pairs.+ --+ -- The string used for a /key/ in a tag that you use to define your+ -- resource coverage must begin with the prefix @Devops-guru-@. The tag+ -- /key/ might be @DevOps-Guru-deployment-application@ or+ -- @devops-guru-rds-application@. When you create a /key/, the case of+ -- characters in the /key/ can be whatever you choose. After you create a+ -- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+ -- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+ -- act as two different /keys/. Possible /key/\//value/ pairs in your+ -- application might be @Devops-Guru-production-application\/RDS@ or+ -- @Devops-Guru-production-application\/containers@.+ tags :: Prelude.Maybe [TagHealth],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeResourceCollectionHealthResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cloudFormation', 'describeResourceCollectionHealthResponse_cloudFormation' - The returned @CloudFormationHealthOverview@ object that contains an+-- @InsightHealthOverview@ object with the requested system health+-- information.+--+-- 'nextToken', 'describeResourceCollectionHealthResponse_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+--+-- 'service', 'describeResourceCollectionHealthResponse_service' - An array of @ServiceHealth@ objects that describes the health of the+-- Amazon Web Services services associated with the resources in the+-- collection.+--+-- 'tags', 'describeResourceCollectionHealthResponse_tags' - The Amazon Web Services tags that are used by resources in the resource+-- collection.+--+-- Tags help you identify and organize your Amazon Web Services resources.+-- Many Amazon Web Services services support tagging, so you can assign the+-- same tag to resources from different services to indicate that the+-- resources are related. For example, you can assign the same tag to an+-- Amazon DynamoDB table resource that you assign to an Lambda function.+-- For more information about using tags, see the+-- <https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf Tagging best practices>+-- whitepaper.+--+-- Each Amazon Web Services tag has two parts.+--+-- - A tag /key/ (for example, @CostCenter@, @Environment@, @Project@, or+-- @Secret@). Tag /keys/ are case-sensitive.+--+-- - An optional field known as a tag /value/ (for example,+-- @111122223333@, @Production@, or a team name). Omitting the tag+-- /value/ is the same as using an empty string. Like tag /keys/, tag+-- /values/ are case-sensitive.+--+-- Together these are known as /key/-/value/ pairs.+--+-- The string used for a /key/ in a tag that you use to define your+-- resource coverage must begin with the prefix @Devops-guru-@. The tag+-- /key/ might be @DevOps-Guru-deployment-application@ or+-- @devops-guru-rds-application@. When you create a /key/, the case of+-- characters in the /key/ can be whatever you choose. After you create a+-- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+-- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+-- act as two different /keys/. Possible /key/\//value/ pairs in your+-- application might be @Devops-Guru-production-application\/RDS@ or+-- @Devops-Guru-production-application\/containers@.+--+-- 'httpStatus', 'describeResourceCollectionHealthResponse_httpStatus' - The response's http status code.+newDescribeResourceCollectionHealthResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeResourceCollectionHealthResponse+newDescribeResourceCollectionHealthResponse+ pHttpStatus_ =+ DescribeResourceCollectionHealthResponse'+ { cloudFormation =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ service = Prelude.Nothing,+ tags = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The returned @CloudFormationHealthOverview@ object that contains an+-- @InsightHealthOverview@ object with the requested system health+-- information.+describeResourceCollectionHealthResponse_cloudFormation :: Lens.Lens' DescribeResourceCollectionHealthResponse (Prelude.Maybe [CloudFormationHealth])+describeResourceCollectionHealthResponse_cloudFormation = Lens.lens (\DescribeResourceCollectionHealthResponse' {cloudFormation} -> cloudFormation) (\s@DescribeResourceCollectionHealthResponse' {} a -> s {cloudFormation = a} :: DescribeResourceCollectionHealthResponse) Prelude.. Lens.mapping Lens.coerced++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+describeResourceCollectionHealthResponse_nextToken :: Lens.Lens' DescribeResourceCollectionHealthResponse (Prelude.Maybe Prelude.Text)+describeResourceCollectionHealthResponse_nextToken = Lens.lens (\DescribeResourceCollectionHealthResponse' {nextToken} -> nextToken) (\s@DescribeResourceCollectionHealthResponse' {} a -> s {nextToken = a} :: DescribeResourceCollectionHealthResponse)++-- | An array of @ServiceHealth@ objects that describes the health of the+-- Amazon Web Services services associated with the resources in the+-- collection.+describeResourceCollectionHealthResponse_service :: Lens.Lens' DescribeResourceCollectionHealthResponse (Prelude.Maybe [ServiceHealth])+describeResourceCollectionHealthResponse_service = Lens.lens (\DescribeResourceCollectionHealthResponse' {service} -> service) (\s@DescribeResourceCollectionHealthResponse' {} a -> s {service = a} :: DescribeResourceCollectionHealthResponse) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Web Services tags that are used by resources in the resource+-- collection.+--+-- Tags help you identify and organize your Amazon Web Services resources.+-- Many Amazon Web Services services support tagging, so you can assign the+-- same tag to resources from different services to indicate that the+-- resources are related. For example, you can assign the same tag to an+-- Amazon DynamoDB table resource that you assign to an Lambda function.+-- For more information about using tags, see the+-- <https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf Tagging best practices>+-- whitepaper.+--+-- Each Amazon Web Services tag has two parts.+--+-- - A tag /key/ (for example, @CostCenter@, @Environment@, @Project@, or+-- @Secret@). Tag /keys/ are case-sensitive.+--+-- - An optional field known as a tag /value/ (for example,+-- @111122223333@, @Production@, or a team name). Omitting the tag+-- /value/ is the same as using an empty string. Like tag /keys/, tag+-- /values/ are case-sensitive.+--+-- Together these are known as /key/-/value/ pairs.+--+-- The string used for a /key/ in a tag that you use to define your+-- resource coverage must begin with the prefix @Devops-guru-@. The tag+-- /key/ might be @DevOps-Guru-deployment-application@ or+-- @devops-guru-rds-application@. When you create a /key/, the case of+-- characters in the /key/ can be whatever you choose. After you create a+-- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+-- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+-- act as two different /keys/. Possible /key/\//value/ pairs in your+-- application might be @Devops-Guru-production-application\/RDS@ or+-- @Devops-Guru-production-application\/containers@.+describeResourceCollectionHealthResponse_tags :: Lens.Lens' DescribeResourceCollectionHealthResponse (Prelude.Maybe [TagHealth])+describeResourceCollectionHealthResponse_tags = Lens.lens (\DescribeResourceCollectionHealthResponse' {tags} -> tags) (\s@DescribeResourceCollectionHealthResponse' {} a -> s {tags = a} :: DescribeResourceCollectionHealthResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeResourceCollectionHealthResponse_httpStatus :: Lens.Lens' DescribeResourceCollectionHealthResponse Prelude.Int+describeResourceCollectionHealthResponse_httpStatus = Lens.lens (\DescribeResourceCollectionHealthResponse' {httpStatus} -> httpStatus) (\s@DescribeResourceCollectionHealthResponse' {} a -> s {httpStatus = a} :: DescribeResourceCollectionHealthResponse)++instance+ Prelude.NFData+ DescribeResourceCollectionHealthResponse+ where+ rnf DescribeResourceCollectionHealthResponse' {..} =+ Prelude.rnf cloudFormation+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf service+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DevOpsGuru/DescribeServiceIntegration.hs view
@@ -0,0 +1,147 @@+{-# 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.DevOpsGuru.DescribeServiceIntegration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the integration status of services that are integrated with+-- DevOps Guru. The one service that can be integrated with DevOps Guru is+-- Amazon Web Services Systems Manager, which can be used to create an+-- OpsItem for each generated insight.+module Amazonka.DevOpsGuru.DescribeServiceIntegration+ ( -- * Creating a Request+ DescribeServiceIntegration (..),+ newDescribeServiceIntegration,++ -- * Destructuring the Response+ DescribeServiceIntegrationResponse (..),+ newDescribeServiceIntegrationResponse,++ -- * Response Lenses+ describeServiceIntegrationResponse_serviceIntegration,+ describeServiceIntegrationResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeServiceIntegration' smart constructor.+data DescribeServiceIntegration = DescribeServiceIntegration'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeServiceIntegration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDescribeServiceIntegration ::+ DescribeServiceIntegration+newDescribeServiceIntegration =+ DescribeServiceIntegration'++instance Core.AWSRequest DescribeServiceIntegration where+ type+ AWSResponse DescribeServiceIntegration =+ DescribeServiceIntegrationResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeServiceIntegrationResponse'+ Prelude.<$> (x Data..?> "ServiceIntegration")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeServiceIntegration where+ hashWithSalt _salt _ =+ _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData DescribeServiceIntegration where+ rnf _ = ()++instance Data.ToHeaders DescribeServiceIntegration where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DescribeServiceIntegration where+ toPath = Prelude.const "/service-integrations"++instance Data.ToQuery DescribeServiceIntegration where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeServiceIntegrationResponse' smart constructor.+data DescribeServiceIntegrationResponse = DescribeServiceIntegrationResponse'+ { serviceIntegration :: Prelude.Maybe ServiceIntegrationConfig,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeServiceIntegrationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'serviceIntegration', 'describeServiceIntegrationResponse_serviceIntegration' - Undocumented member.+--+-- 'httpStatus', 'describeServiceIntegrationResponse_httpStatus' - The response's http status code.+newDescribeServiceIntegrationResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeServiceIntegrationResponse+newDescribeServiceIntegrationResponse pHttpStatus_ =+ DescribeServiceIntegrationResponse'+ { serviceIntegration =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Undocumented member.+describeServiceIntegrationResponse_serviceIntegration :: Lens.Lens' DescribeServiceIntegrationResponse (Prelude.Maybe ServiceIntegrationConfig)+describeServiceIntegrationResponse_serviceIntegration = Lens.lens (\DescribeServiceIntegrationResponse' {serviceIntegration} -> serviceIntegration) (\s@DescribeServiceIntegrationResponse' {} a -> s {serviceIntegration = a} :: DescribeServiceIntegrationResponse)++-- | The response's http status code.+describeServiceIntegrationResponse_httpStatus :: Lens.Lens' DescribeServiceIntegrationResponse Prelude.Int+describeServiceIntegrationResponse_httpStatus = Lens.lens (\DescribeServiceIntegrationResponse' {httpStatus} -> httpStatus) (\s@DescribeServiceIntegrationResponse' {} a -> s {httpStatus = a} :: DescribeServiceIntegrationResponse)++instance+ Prelude.NFData+ DescribeServiceIntegrationResponse+ where+ rnf DescribeServiceIntegrationResponse' {..} =+ Prelude.rnf serviceIntegration+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DevOpsGuru/GetCostEstimation.hs view
@@ -0,0 +1,270 @@+{-# 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.DevOpsGuru.GetCostEstimation+-- 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 an estimate of the monthly cost for DevOps Guru to analyze your+-- Amazon Web Services resources. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/cost-estimate.html Estimate your Amazon DevOps Guru costs>+-- and+-- <http://aws.amazon.com/devops-guru/pricing/ Amazon DevOps Guru pricing>.+--+-- This operation returns paginated results.+module Amazonka.DevOpsGuru.GetCostEstimation+ ( -- * Creating a Request+ GetCostEstimation (..),+ newGetCostEstimation,++ -- * Request Lenses+ getCostEstimation_nextToken,++ -- * Destructuring the Response+ GetCostEstimationResponse (..),+ newGetCostEstimationResponse,++ -- * Response Lenses+ getCostEstimationResponse_costs,+ getCostEstimationResponse_nextToken,+ getCostEstimationResponse_resourceCollection,+ getCostEstimationResponse_status,+ getCostEstimationResponse_timeRange,+ getCostEstimationResponse_totalCost,+ getCostEstimationResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetCostEstimation' smart constructor.+data GetCostEstimation = GetCostEstimation'+ { -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If this value is null, it retrieves the first page.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetCostEstimation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'getCostEstimation_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+newGetCostEstimation ::+ GetCostEstimation+newGetCostEstimation =+ GetCostEstimation' {nextToken = Prelude.Nothing}++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+getCostEstimation_nextToken :: Lens.Lens' GetCostEstimation (Prelude.Maybe Prelude.Text)+getCostEstimation_nextToken = Lens.lens (\GetCostEstimation' {nextToken} -> nextToken) (\s@GetCostEstimation' {} a -> s {nextToken = a} :: GetCostEstimation)++instance Core.AWSPager GetCostEstimation where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? getCostEstimationResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? getCostEstimationResponse_costs+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& getCostEstimation_nextToken+ Lens..~ rs+ Lens.^? getCostEstimationResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest GetCostEstimation where+ type+ AWSResponse GetCostEstimation =+ GetCostEstimationResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetCostEstimationResponse'+ Prelude.<$> (x Data..?> "Costs" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (x Data..?> "ResourceCollection")+ Prelude.<*> (x Data..?> "Status")+ Prelude.<*> (x Data..?> "TimeRange")+ Prelude.<*> (x Data..?> "TotalCost")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetCostEstimation where+ hashWithSalt _salt GetCostEstimation' {..} =+ _salt `Prelude.hashWithSalt` nextToken++instance Prelude.NFData GetCostEstimation where+ rnf GetCostEstimation' {..} = Prelude.rnf nextToken++instance Data.ToHeaders GetCostEstimation where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetCostEstimation where+ toPath = Prelude.const "/cost-estimation"++instance Data.ToQuery GetCostEstimation where+ toQuery GetCostEstimation' {..} =+ Prelude.mconcat ["NextToken" Data.=: nextToken]++-- | /See:/ 'newGetCostEstimationResponse' smart constructor.+data GetCostEstimationResponse = GetCostEstimationResponse'+ { -- | An array of @ResourceCost@ objects that each contains details about the+ -- monthly cost estimate to analyze one of your Amazon Web Services+ -- resources.+ costs :: Prelude.Maybe [ServiceResourceCost],+ -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If there are no more pages, this value is null.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The collection of the Amazon Web Services resources used to create your+ -- monthly DevOps Guru cost estimate.+ resourceCollection :: Prelude.Maybe CostEstimationResourceCollectionFilter,+ -- | The status of creating this cost estimate. If it\'s still in progress,+ -- the status @ONGOING@ is returned. If it is finished, the status+ -- @COMPLETED@ is returned.+ status :: Prelude.Maybe CostEstimationStatus,+ -- | The start and end time of the cost estimation.+ timeRange :: Prelude.Maybe CostEstimationTimeRange,+ -- | The estimated monthly cost to analyze the Amazon Web Services resources.+ -- This value is the sum of the estimated costs to analyze each resource in+ -- the @Costs@ object in this response.+ totalCost :: Prelude.Maybe Prelude.Double,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetCostEstimationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'costs', 'getCostEstimationResponse_costs' - An array of @ResourceCost@ objects that each contains details about the+-- monthly cost estimate to analyze one of your Amazon Web Services+-- resources.+--+-- 'nextToken', 'getCostEstimationResponse_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+--+-- 'resourceCollection', 'getCostEstimationResponse_resourceCollection' - The collection of the Amazon Web Services resources used to create your+-- monthly DevOps Guru cost estimate.+--+-- 'status', 'getCostEstimationResponse_status' - The status of creating this cost estimate. If it\'s still in progress,+-- the status @ONGOING@ is returned. If it is finished, the status+-- @COMPLETED@ is returned.+--+-- 'timeRange', 'getCostEstimationResponse_timeRange' - The start and end time of the cost estimation.+--+-- 'totalCost', 'getCostEstimationResponse_totalCost' - The estimated monthly cost to analyze the Amazon Web Services resources.+-- This value is the sum of the estimated costs to analyze each resource in+-- the @Costs@ object in this response.+--+-- 'httpStatus', 'getCostEstimationResponse_httpStatus' - The response's http status code.+newGetCostEstimationResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetCostEstimationResponse+newGetCostEstimationResponse pHttpStatus_ =+ GetCostEstimationResponse'+ { costs = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ resourceCollection = Prelude.Nothing,+ status = Prelude.Nothing,+ timeRange = Prelude.Nothing,+ totalCost = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | An array of @ResourceCost@ objects that each contains details about the+-- monthly cost estimate to analyze one of your Amazon Web Services+-- resources.+getCostEstimationResponse_costs :: Lens.Lens' GetCostEstimationResponse (Prelude.Maybe [ServiceResourceCost])+getCostEstimationResponse_costs = Lens.lens (\GetCostEstimationResponse' {costs} -> costs) (\s@GetCostEstimationResponse' {} a -> s {costs = a} :: GetCostEstimationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+getCostEstimationResponse_nextToken :: Lens.Lens' GetCostEstimationResponse (Prelude.Maybe Prelude.Text)+getCostEstimationResponse_nextToken = Lens.lens (\GetCostEstimationResponse' {nextToken} -> nextToken) (\s@GetCostEstimationResponse' {} a -> s {nextToken = a} :: GetCostEstimationResponse)++-- | The collection of the Amazon Web Services resources used to create your+-- monthly DevOps Guru cost estimate.+getCostEstimationResponse_resourceCollection :: Lens.Lens' GetCostEstimationResponse (Prelude.Maybe CostEstimationResourceCollectionFilter)+getCostEstimationResponse_resourceCollection = Lens.lens (\GetCostEstimationResponse' {resourceCollection} -> resourceCollection) (\s@GetCostEstimationResponse' {} a -> s {resourceCollection = a} :: GetCostEstimationResponse)++-- | The status of creating this cost estimate. If it\'s still in progress,+-- the status @ONGOING@ is returned. If it is finished, the status+-- @COMPLETED@ is returned.+getCostEstimationResponse_status :: Lens.Lens' GetCostEstimationResponse (Prelude.Maybe CostEstimationStatus)+getCostEstimationResponse_status = Lens.lens (\GetCostEstimationResponse' {status} -> status) (\s@GetCostEstimationResponse' {} a -> s {status = a} :: GetCostEstimationResponse)++-- | The start and end time of the cost estimation.+getCostEstimationResponse_timeRange :: Lens.Lens' GetCostEstimationResponse (Prelude.Maybe CostEstimationTimeRange)+getCostEstimationResponse_timeRange = Lens.lens (\GetCostEstimationResponse' {timeRange} -> timeRange) (\s@GetCostEstimationResponse' {} a -> s {timeRange = a} :: GetCostEstimationResponse)++-- | The estimated monthly cost to analyze the Amazon Web Services resources.+-- This value is the sum of the estimated costs to analyze each resource in+-- the @Costs@ object in this response.+getCostEstimationResponse_totalCost :: Lens.Lens' GetCostEstimationResponse (Prelude.Maybe Prelude.Double)+getCostEstimationResponse_totalCost = Lens.lens (\GetCostEstimationResponse' {totalCost} -> totalCost) (\s@GetCostEstimationResponse' {} a -> s {totalCost = a} :: GetCostEstimationResponse)++-- | The response's http status code.+getCostEstimationResponse_httpStatus :: Lens.Lens' GetCostEstimationResponse Prelude.Int+getCostEstimationResponse_httpStatus = Lens.lens (\GetCostEstimationResponse' {httpStatus} -> httpStatus) (\s@GetCostEstimationResponse' {} a -> s {httpStatus = a} :: GetCostEstimationResponse)++instance Prelude.NFData GetCostEstimationResponse where+ rnf GetCostEstimationResponse' {..} =+ Prelude.rnf costs+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf resourceCollection+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf timeRange+ `Prelude.seq` Prelude.rnf totalCost+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DevOpsGuru/GetResourceCollection.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.DevOpsGuru.GetResourceCollection+-- 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 lists Amazon Web Services resources that are of the specified+-- resource collection type. The two types of Amazon Web Services resource+-- collections supported are Amazon Web Services CloudFormation stacks and+-- Amazon Web Services resources that contain the same Amazon Web Services+-- tag. DevOps Guru can be configured to analyze the Amazon Web Services+-- resources that are defined in the stacks or that are tagged using the+-- same tag /key/. You can specify up to 500 Amazon Web Services+-- CloudFormation stacks.+--+-- This operation returns paginated results.+module Amazonka.DevOpsGuru.GetResourceCollection+ ( -- * Creating a Request+ GetResourceCollection (..),+ newGetResourceCollection,++ -- * Request Lenses+ getResourceCollection_nextToken,+ getResourceCollection_resourceCollectionType,++ -- * Destructuring the Response+ GetResourceCollectionResponse (..),+ newGetResourceCollectionResponse,++ -- * Response Lenses+ getResourceCollectionResponse_nextToken,+ getResourceCollectionResponse_resourceCollection,+ getResourceCollectionResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetResourceCollection' smart constructor.+data GetResourceCollection = GetResourceCollection'+ { -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If this value is null, it retrieves the first page.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The type of Amazon Web Services resource collections to return. The one+ -- valid value is @CLOUD_FORMATION@ for Amazon Web Services CloudFormation+ -- stacks.+ resourceCollectionType :: ResourceCollectionType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetResourceCollection' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'getResourceCollection_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+--+-- 'resourceCollectionType', 'getResourceCollection_resourceCollectionType' - The type of Amazon Web Services resource collections to return. The one+-- valid value is @CLOUD_FORMATION@ for Amazon Web Services CloudFormation+-- stacks.+newGetResourceCollection ::+ -- | 'resourceCollectionType'+ ResourceCollectionType ->+ GetResourceCollection+newGetResourceCollection pResourceCollectionType_ =+ GetResourceCollection'+ { nextToken = Prelude.Nothing,+ resourceCollectionType = pResourceCollectionType_+ }++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+getResourceCollection_nextToken :: Lens.Lens' GetResourceCollection (Prelude.Maybe Prelude.Text)+getResourceCollection_nextToken = Lens.lens (\GetResourceCollection' {nextToken} -> nextToken) (\s@GetResourceCollection' {} a -> s {nextToken = a} :: GetResourceCollection)++-- | The type of Amazon Web Services resource collections to return. The one+-- valid value is @CLOUD_FORMATION@ for Amazon Web Services CloudFormation+-- stacks.+getResourceCollection_resourceCollectionType :: Lens.Lens' GetResourceCollection ResourceCollectionType+getResourceCollection_resourceCollectionType = Lens.lens (\GetResourceCollection' {resourceCollectionType} -> resourceCollectionType) (\s@GetResourceCollection' {} a -> s {resourceCollectionType = a} :: GetResourceCollection)++instance Core.AWSPager GetResourceCollection where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? getResourceCollectionResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? getResourceCollectionResponse_resourceCollection+ Prelude.. Lens._Just+ Prelude.. resourceCollectionFilter_cloudFormation+ Prelude.. Lens._Just+ Prelude.. cloudFormationCollectionFilter_stackNames+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? getResourceCollectionResponse_resourceCollection+ Prelude.. Lens._Just+ Prelude.. resourceCollectionFilter_tags+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& getResourceCollection_nextToken+ Lens..~ rs+ Lens.^? getResourceCollectionResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest GetResourceCollection where+ type+ AWSResponse GetResourceCollection =+ GetResourceCollectionResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetResourceCollectionResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> (x Data..?> "ResourceCollection")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetResourceCollection where+ hashWithSalt _salt GetResourceCollection' {..} =+ _salt+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` resourceCollectionType++instance Prelude.NFData GetResourceCollection where+ rnf GetResourceCollection' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf resourceCollectionType++instance Data.ToHeaders GetResourceCollection where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetResourceCollection where+ toPath GetResourceCollection' {..} =+ Prelude.mconcat+ [ "/resource-collections/",+ Data.toBS resourceCollectionType+ ]++instance Data.ToQuery GetResourceCollection where+ toQuery GetResourceCollection' {..} =+ Prelude.mconcat ["NextToken" Data.=: nextToken]++-- | /See:/ 'newGetResourceCollectionResponse' smart constructor.+data GetResourceCollectionResponse = GetResourceCollectionResponse'+ { -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If there are no more pages, this value is null.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The requested list of Amazon Web Services resource collections. The two+ -- types of Amazon Web Services resource collections supported are Amazon+ -- Web Services CloudFormation stacks and Amazon Web Services resources+ -- that contain the same Amazon Web Services tag. DevOps Guru can be+ -- configured to analyze the Amazon Web Services resources that are defined+ -- in the stacks or that are tagged using the same tag /key/. You can+ -- specify up to 500 Amazon Web Services CloudFormation stacks.+ resourceCollection :: Prelude.Maybe ResourceCollectionFilter,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetResourceCollectionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'getResourceCollectionResponse_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+--+-- 'resourceCollection', 'getResourceCollectionResponse_resourceCollection' - The requested list of Amazon Web Services resource collections. The two+-- types of Amazon Web Services resource collections supported are Amazon+-- Web Services CloudFormation stacks and Amazon Web Services resources+-- that contain the same Amazon Web Services tag. DevOps Guru can be+-- configured to analyze the Amazon Web Services resources that are defined+-- in the stacks or that are tagged using the same tag /key/. You can+-- specify up to 500 Amazon Web Services CloudFormation stacks.+--+-- 'httpStatus', 'getResourceCollectionResponse_httpStatus' - The response's http status code.+newGetResourceCollectionResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetResourceCollectionResponse+newGetResourceCollectionResponse pHttpStatus_ =+ GetResourceCollectionResponse'+ { nextToken =+ Prelude.Nothing,+ resourceCollection = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+getResourceCollectionResponse_nextToken :: Lens.Lens' GetResourceCollectionResponse (Prelude.Maybe Prelude.Text)+getResourceCollectionResponse_nextToken = Lens.lens (\GetResourceCollectionResponse' {nextToken} -> nextToken) (\s@GetResourceCollectionResponse' {} a -> s {nextToken = a} :: GetResourceCollectionResponse)++-- | The requested list of Amazon Web Services resource collections. The two+-- types of Amazon Web Services resource collections supported are Amazon+-- Web Services CloudFormation stacks and Amazon Web Services resources+-- that contain the same Amazon Web Services tag. DevOps Guru can be+-- configured to analyze the Amazon Web Services resources that are defined+-- in the stacks or that are tagged using the same tag /key/. You can+-- specify up to 500 Amazon Web Services CloudFormation stacks.+getResourceCollectionResponse_resourceCollection :: Lens.Lens' GetResourceCollectionResponse (Prelude.Maybe ResourceCollectionFilter)+getResourceCollectionResponse_resourceCollection = Lens.lens (\GetResourceCollectionResponse' {resourceCollection} -> resourceCollection) (\s@GetResourceCollectionResponse' {} a -> s {resourceCollection = a} :: GetResourceCollectionResponse)++-- | The response's http status code.+getResourceCollectionResponse_httpStatus :: Lens.Lens' GetResourceCollectionResponse Prelude.Int+getResourceCollectionResponse_httpStatus = Lens.lens (\GetResourceCollectionResponse' {httpStatus} -> httpStatus) (\s@GetResourceCollectionResponse' {} a -> s {httpStatus = a} :: GetResourceCollectionResponse)++instance Prelude.NFData GetResourceCollectionResponse where+ rnf GetResourceCollectionResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf resourceCollection+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DevOpsGuru/Lens.hs view
@@ -0,0 +1,842 @@+{-# 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.DevOpsGuru.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.DevOpsGuru.Lens+ ( -- * Operations++ -- ** AddNotificationChannel+ addNotificationChannel_config,+ addNotificationChannelResponse_httpStatus,+ addNotificationChannelResponse_id,++ -- ** DeleteInsight+ deleteInsight_id,+ deleteInsightResponse_httpStatus,++ -- ** DescribeAccountHealth+ describeAccountHealthResponse_analyzedResourceCount,+ describeAccountHealthResponse_httpStatus,+ describeAccountHealthResponse_openReactiveInsights,+ describeAccountHealthResponse_openProactiveInsights,+ describeAccountHealthResponse_metricsAnalyzed,+ describeAccountHealthResponse_resourceHours,++ -- ** DescribeAccountOverview+ describeAccountOverview_toTime,+ describeAccountOverview_fromTime,+ describeAccountOverviewResponse_httpStatus,+ describeAccountOverviewResponse_reactiveInsights,+ describeAccountOverviewResponse_proactiveInsights,+ describeAccountOverviewResponse_meanTimeToRecoverInMilliseconds,++ -- ** DescribeAnomaly+ describeAnomaly_accountId,+ describeAnomaly_id,+ describeAnomalyResponse_proactiveAnomaly,+ describeAnomalyResponse_reactiveAnomaly,+ describeAnomalyResponse_httpStatus,++ -- ** DescribeEventSourcesConfig+ describeEventSourcesConfigResponse_eventSources,+ describeEventSourcesConfigResponse_httpStatus,++ -- ** DescribeFeedback+ describeFeedback_insightId,+ describeFeedbackResponse_insightFeedback,+ describeFeedbackResponse_httpStatus,++ -- ** DescribeInsight+ describeInsight_accountId,+ describeInsight_id,+ describeInsightResponse_proactiveInsight,+ describeInsightResponse_reactiveInsight,+ describeInsightResponse_httpStatus,++ -- ** DescribeOrganizationHealth+ describeOrganizationHealth_accountIds,+ describeOrganizationHealth_organizationalUnitIds,+ describeOrganizationHealthResponse_httpStatus,+ describeOrganizationHealthResponse_openReactiveInsights,+ describeOrganizationHealthResponse_openProactiveInsights,+ describeOrganizationHealthResponse_metricsAnalyzed,+ describeOrganizationHealthResponse_resourceHours,++ -- ** DescribeOrganizationOverview+ describeOrganizationOverview_accountIds,+ describeOrganizationOverview_organizationalUnitIds,+ describeOrganizationOverview_toTime,+ describeOrganizationOverview_fromTime,+ describeOrganizationOverviewResponse_httpStatus,+ describeOrganizationOverviewResponse_reactiveInsights,+ describeOrganizationOverviewResponse_proactiveInsights,++ -- ** DescribeOrganizationResourceCollectionHealth+ describeOrganizationResourceCollectionHealth_accountIds,+ describeOrganizationResourceCollectionHealth_maxResults,+ describeOrganizationResourceCollectionHealth_nextToken,+ describeOrganizationResourceCollectionHealth_organizationalUnitIds,+ describeOrganizationResourceCollectionHealth_organizationResourceCollectionType,+ describeOrganizationResourceCollectionHealthResponse_account,+ describeOrganizationResourceCollectionHealthResponse_cloudFormation,+ describeOrganizationResourceCollectionHealthResponse_nextToken,+ describeOrganizationResourceCollectionHealthResponse_service,+ describeOrganizationResourceCollectionHealthResponse_tags,+ describeOrganizationResourceCollectionHealthResponse_httpStatus,++ -- ** DescribeResourceCollectionHealth+ describeResourceCollectionHealth_nextToken,+ describeResourceCollectionHealth_resourceCollectionType,+ describeResourceCollectionHealthResponse_cloudFormation,+ describeResourceCollectionHealthResponse_nextToken,+ describeResourceCollectionHealthResponse_service,+ describeResourceCollectionHealthResponse_tags,+ describeResourceCollectionHealthResponse_httpStatus,++ -- ** DescribeServiceIntegration+ describeServiceIntegrationResponse_serviceIntegration,+ describeServiceIntegrationResponse_httpStatus,++ -- ** GetCostEstimation+ getCostEstimation_nextToken,+ getCostEstimationResponse_costs,+ getCostEstimationResponse_nextToken,+ getCostEstimationResponse_resourceCollection,+ getCostEstimationResponse_status,+ getCostEstimationResponse_timeRange,+ getCostEstimationResponse_totalCost,+ getCostEstimationResponse_httpStatus,++ -- ** GetResourceCollection+ getResourceCollection_nextToken,+ getResourceCollection_resourceCollectionType,+ getResourceCollectionResponse_nextToken,+ getResourceCollectionResponse_resourceCollection,+ getResourceCollectionResponse_httpStatus,++ -- ** ListAnomaliesForInsight+ listAnomaliesForInsight_accountId,+ listAnomaliesForInsight_maxResults,+ listAnomaliesForInsight_nextToken,+ listAnomaliesForInsight_startTimeRange,+ listAnomaliesForInsight_insightId,+ listAnomaliesForInsightResponse_nextToken,+ listAnomaliesForInsightResponse_proactiveAnomalies,+ listAnomaliesForInsightResponse_reactiveAnomalies,+ listAnomaliesForInsightResponse_httpStatus,++ -- ** ListAnomalousLogGroups+ listAnomalousLogGroups_maxResults,+ listAnomalousLogGroups_nextToken,+ listAnomalousLogGroups_insightId,+ listAnomalousLogGroupsResponse_nextToken,+ listAnomalousLogGroupsResponse_httpStatus,+ listAnomalousLogGroupsResponse_insightId,+ listAnomalousLogGroupsResponse_anomalousLogGroups,++ -- ** ListEvents+ listEvents_accountId,+ listEvents_maxResults,+ listEvents_nextToken,+ listEvents_filters,+ listEventsResponse_nextToken,+ listEventsResponse_httpStatus,+ listEventsResponse_events,++ -- ** ListInsights+ listInsights_maxResults,+ listInsights_nextToken,+ listInsights_statusFilter,+ listInsightsResponse_nextToken,+ listInsightsResponse_proactiveInsights,+ listInsightsResponse_reactiveInsights,+ listInsightsResponse_httpStatus,++ -- ** ListMonitoredResources+ listMonitoredResources_filters,+ listMonitoredResources_maxResults,+ listMonitoredResources_nextToken,+ listMonitoredResourcesResponse_nextToken,+ listMonitoredResourcesResponse_httpStatus,+ listMonitoredResourcesResponse_monitoredResourceIdentifiers,++ -- ** ListNotificationChannels+ listNotificationChannels_nextToken,+ listNotificationChannelsResponse_channels,+ listNotificationChannelsResponse_nextToken,+ listNotificationChannelsResponse_httpStatus,++ -- ** ListOrganizationInsights+ listOrganizationInsights_accountIds,+ listOrganizationInsights_maxResults,+ listOrganizationInsights_nextToken,+ listOrganizationInsights_organizationalUnitIds,+ listOrganizationInsights_statusFilter,+ listOrganizationInsightsResponse_nextToken,+ listOrganizationInsightsResponse_proactiveInsights,+ listOrganizationInsightsResponse_reactiveInsights,+ listOrganizationInsightsResponse_httpStatus,++ -- ** ListRecommendations+ listRecommendations_accountId,+ listRecommendations_locale,+ listRecommendations_nextToken,+ listRecommendations_insightId,+ listRecommendationsResponse_nextToken,+ listRecommendationsResponse_recommendations,+ listRecommendationsResponse_httpStatus,++ -- ** PutFeedback+ putFeedback_insightFeedback,+ putFeedbackResponse_httpStatus,++ -- ** RemoveNotificationChannel+ removeNotificationChannel_id,+ removeNotificationChannelResponse_httpStatus,++ -- ** SearchInsights+ searchInsights_filters,+ searchInsights_maxResults,+ searchInsights_nextToken,+ searchInsights_startTimeRange,+ searchInsights_type,+ searchInsightsResponse_nextToken,+ searchInsightsResponse_proactiveInsights,+ searchInsightsResponse_reactiveInsights,+ searchInsightsResponse_httpStatus,++ -- ** SearchOrganizationInsights+ searchOrganizationInsights_filters,+ searchOrganizationInsights_maxResults,+ searchOrganizationInsights_nextToken,+ searchOrganizationInsights_accountIds,+ searchOrganizationInsights_startTimeRange,+ searchOrganizationInsights_type,+ searchOrganizationInsightsResponse_nextToken,+ searchOrganizationInsightsResponse_proactiveInsights,+ searchOrganizationInsightsResponse_reactiveInsights,+ searchOrganizationInsightsResponse_httpStatus,++ -- ** StartCostEstimation+ startCostEstimation_clientToken,+ startCostEstimation_resourceCollection,+ startCostEstimationResponse_httpStatus,++ -- ** UpdateEventSourcesConfig+ updateEventSourcesConfig_eventSources,+ updateEventSourcesConfigResponse_httpStatus,++ -- ** UpdateResourceCollection+ updateResourceCollection_action,+ updateResourceCollection_resourceCollection,+ updateResourceCollectionResponse_httpStatus,++ -- ** UpdateServiceIntegration+ updateServiceIntegration_serviceIntegration,+ updateServiceIntegrationResponse_httpStatus,++ -- * Types++ -- ** AccountHealth+ accountHealth_accountId,+ accountHealth_insight,++ -- ** AccountInsightHealth+ accountInsightHealth_openProactiveInsights,+ accountInsightHealth_openReactiveInsights,++ -- ** AmazonCodeGuruProfilerIntegration+ amazonCodeGuruProfilerIntegration_status,++ -- ** AnomalousLogGroup+ anomalousLogGroup_impactEndTime,+ anomalousLogGroup_impactStartTime,+ anomalousLogGroup_logAnomalyShowcases,+ anomalousLogGroup_logGroupName,+ anomalousLogGroup_numberOfLogLinesScanned,++ -- ** AnomalyReportedTimeRange+ anomalyReportedTimeRange_closeTime,+ anomalyReportedTimeRange_openTime,++ -- ** AnomalyResource+ anomalyResource_name,+ anomalyResource_type,++ -- ** AnomalySourceDetails+ anomalySourceDetails_cloudWatchMetrics,+ anomalySourceDetails_performanceInsightsMetrics,++ -- ** AnomalySourceMetadata+ anomalySourceMetadata_source,+ anomalySourceMetadata_sourceResourceName,+ anomalySourceMetadata_sourceResourceType,++ -- ** AnomalyTimeRange+ anomalyTimeRange_endTime,+ anomalyTimeRange_startTime,++ -- ** CloudFormationCollection+ cloudFormationCollection_stackNames,++ -- ** CloudFormationCollectionFilter+ cloudFormationCollectionFilter_stackNames,++ -- ** CloudFormationCostEstimationResourceCollectionFilter+ cloudFormationCostEstimationResourceCollectionFilter_stackNames,++ -- ** CloudFormationHealth+ cloudFormationHealth_analyzedResourceCount,+ cloudFormationHealth_insight,+ cloudFormationHealth_stackName,++ -- ** CloudWatchMetricsDataSummary+ cloudWatchMetricsDataSummary_statusCode,+ cloudWatchMetricsDataSummary_timestampMetricValuePairList,++ -- ** CloudWatchMetricsDetail+ cloudWatchMetricsDetail_dimensions,+ cloudWatchMetricsDetail_metricDataSummary,+ cloudWatchMetricsDetail_metricName,+ cloudWatchMetricsDetail_namespace,+ cloudWatchMetricsDetail_period,+ cloudWatchMetricsDetail_stat,+ cloudWatchMetricsDetail_unit,++ -- ** CloudWatchMetricsDimension+ cloudWatchMetricsDimension_name,+ cloudWatchMetricsDimension_value,++ -- ** CostEstimationResourceCollectionFilter+ costEstimationResourceCollectionFilter_cloudFormation,+ costEstimationResourceCollectionFilter_tags,++ -- ** CostEstimationTimeRange+ costEstimationTimeRange_endTime,+ costEstimationTimeRange_startTime,++ -- ** EndTimeRange+ endTimeRange_fromTime,+ endTimeRange_toTime,++ -- ** Event+ event_dataSource,+ event_eventClass,+ event_eventSource,+ event_id,+ event_name,+ event_resourceCollection,+ event_resources,+ event_time,++ -- ** EventResource+ eventResource_arn,+ eventResource_name,+ eventResource_type,++ -- ** EventSourcesConfig+ eventSourcesConfig_amazonCodeGuruProfiler,++ -- ** EventTimeRange+ eventTimeRange_fromTime,+ eventTimeRange_toTime,++ -- ** InsightFeedback+ insightFeedback_feedback,+ insightFeedback_id,++ -- ** InsightHealth+ insightHealth_meanTimeToRecoverInMilliseconds,+ insightHealth_openProactiveInsights,+ insightHealth_openReactiveInsights,++ -- ** InsightTimeRange+ insightTimeRange_endTime,+ insightTimeRange_startTime,++ -- ** ListEventsFilters+ listEventsFilters_dataSource,+ listEventsFilters_eventClass,+ listEventsFilters_eventSource,+ listEventsFilters_eventTimeRange,+ listEventsFilters_insightId,+ listEventsFilters_resourceCollection,++ -- ** ListInsightsAnyStatusFilter+ listInsightsAnyStatusFilter_type,+ listInsightsAnyStatusFilter_startTimeRange,++ -- ** ListInsightsClosedStatusFilter+ listInsightsClosedStatusFilter_type,+ listInsightsClosedStatusFilter_endTimeRange,++ -- ** ListInsightsOngoingStatusFilter+ listInsightsOngoingStatusFilter_type,++ -- ** ListInsightsStatusFilter+ listInsightsStatusFilter_any,+ listInsightsStatusFilter_closed,+ listInsightsStatusFilter_ongoing,++ -- ** ListMonitoredResourcesFilters+ listMonitoredResourcesFilters_resourcePermission,+ listMonitoredResourcesFilters_resourceTypeFilters,++ -- ** LogAnomalyClass+ logAnomalyClass_explanation,+ logAnomalyClass_logAnomalyToken,+ logAnomalyClass_logAnomalyType,+ logAnomalyClass_logEventId,+ logAnomalyClass_logEventTimestamp,+ logAnomalyClass_logStreamName,+ logAnomalyClass_numberOfLogLinesOccurrences,++ -- ** LogAnomalyShowcase+ logAnomalyShowcase_logAnomalyClasses,++ -- ** LogsAnomalyDetectionIntegration+ logsAnomalyDetectionIntegration_optInStatus,++ -- ** LogsAnomalyDetectionIntegrationConfig+ logsAnomalyDetectionIntegrationConfig_optInStatus,++ -- ** MonitoredResourceIdentifier+ monitoredResourceIdentifier_lastUpdated,+ monitoredResourceIdentifier_monitoredResourceName,+ monitoredResourceIdentifier_resourceCollection,+ monitoredResourceIdentifier_resourcePermission,+ monitoredResourceIdentifier_type,++ -- ** NotificationChannel+ notificationChannel_config,+ notificationChannel_id,++ -- ** NotificationChannelConfig+ notificationChannelConfig_filters,+ notificationChannelConfig_sns,++ -- ** NotificationFilterConfig+ notificationFilterConfig_messageTypes,+ notificationFilterConfig_severities,++ -- ** OpsCenterIntegration+ opsCenterIntegration_optInStatus,++ -- ** OpsCenterIntegrationConfig+ opsCenterIntegrationConfig_optInStatus,++ -- ** PerformanceInsightsMetricDimensionGroup+ performanceInsightsMetricDimensionGroup_dimensions,+ performanceInsightsMetricDimensionGroup_group,+ performanceInsightsMetricDimensionGroup_limit,++ -- ** PerformanceInsightsMetricQuery+ performanceInsightsMetricQuery_filter,+ performanceInsightsMetricQuery_groupBy,+ performanceInsightsMetricQuery_metric,++ -- ** PerformanceInsightsMetricsDetail+ performanceInsightsMetricsDetail_metricDisplayName,+ performanceInsightsMetricsDetail_metricQuery,+ performanceInsightsMetricsDetail_referenceData,+ performanceInsightsMetricsDetail_statsAtAnomaly,+ performanceInsightsMetricsDetail_statsAtBaseline,+ performanceInsightsMetricsDetail_unit,++ -- ** PerformanceInsightsReferenceComparisonValues+ performanceInsightsReferenceComparisonValues_referenceMetric,+ performanceInsightsReferenceComparisonValues_referenceScalar,++ -- ** PerformanceInsightsReferenceData+ performanceInsightsReferenceData_comparisonValues,+ performanceInsightsReferenceData_name,++ -- ** PerformanceInsightsReferenceMetric+ performanceInsightsReferenceMetric_metricQuery,++ -- ** PerformanceInsightsReferenceScalar+ performanceInsightsReferenceScalar_value,++ -- ** PerformanceInsightsStat+ performanceInsightsStat_type,+ performanceInsightsStat_value,++ -- ** PredictionTimeRange+ predictionTimeRange_endTime,+ predictionTimeRange_startTime,++ -- ** ProactiveAnomaly+ proactiveAnomaly_anomalyReportedTimeRange,+ proactiveAnomaly_anomalyResources,+ proactiveAnomaly_anomalyTimeRange,+ proactiveAnomaly_associatedInsightId,+ proactiveAnomaly_id,+ proactiveAnomaly_limit,+ proactiveAnomaly_predictionTimeRange,+ proactiveAnomaly_resourceCollection,+ proactiveAnomaly_severity,+ proactiveAnomaly_sourceDetails,+ proactiveAnomaly_sourceMetadata,+ proactiveAnomaly_status,+ proactiveAnomaly_updateTime,++ -- ** ProactiveAnomalySummary+ proactiveAnomalySummary_anomalyReportedTimeRange,+ proactiveAnomalySummary_anomalyResources,+ proactiveAnomalySummary_anomalyTimeRange,+ proactiveAnomalySummary_associatedInsightId,+ proactiveAnomalySummary_id,+ proactiveAnomalySummary_limit,+ proactiveAnomalySummary_predictionTimeRange,+ proactiveAnomalySummary_resourceCollection,+ proactiveAnomalySummary_severity,+ proactiveAnomalySummary_sourceDetails,+ proactiveAnomalySummary_sourceMetadata,+ proactiveAnomalySummary_status,+ proactiveAnomalySummary_updateTime,++ -- ** ProactiveInsight+ proactiveInsight_description,+ proactiveInsight_id,+ proactiveInsight_insightTimeRange,+ proactiveInsight_name,+ proactiveInsight_predictionTimeRange,+ proactiveInsight_resourceCollection,+ proactiveInsight_severity,+ proactiveInsight_ssmOpsItemId,+ proactiveInsight_status,++ -- ** ProactiveInsightSummary+ proactiveInsightSummary_associatedResourceArns,+ proactiveInsightSummary_id,+ proactiveInsightSummary_insightTimeRange,+ proactiveInsightSummary_name,+ proactiveInsightSummary_predictionTimeRange,+ proactiveInsightSummary_resourceCollection,+ proactiveInsightSummary_serviceCollection,+ proactiveInsightSummary_severity,+ proactiveInsightSummary_status,++ -- ** ProactiveOrganizationInsightSummary+ proactiveOrganizationInsightSummary_accountId,+ proactiveOrganizationInsightSummary_id,+ proactiveOrganizationInsightSummary_insightTimeRange,+ proactiveOrganizationInsightSummary_name,+ proactiveOrganizationInsightSummary_organizationalUnitId,+ proactiveOrganizationInsightSummary_predictionTimeRange,+ proactiveOrganizationInsightSummary_resourceCollection,+ proactiveOrganizationInsightSummary_serviceCollection,+ proactiveOrganizationInsightSummary_severity,+ proactiveOrganizationInsightSummary_status,++ -- ** ReactiveAnomaly+ reactiveAnomaly_anomalyReportedTimeRange,+ reactiveAnomaly_anomalyResources,+ reactiveAnomaly_anomalyTimeRange,+ reactiveAnomaly_associatedInsightId,+ reactiveAnomaly_causalAnomalyId,+ reactiveAnomaly_description,+ reactiveAnomaly_id,+ reactiveAnomaly_name,+ reactiveAnomaly_resourceCollection,+ reactiveAnomaly_severity,+ reactiveAnomaly_sourceDetails,+ reactiveAnomaly_status,+ reactiveAnomaly_type,++ -- ** ReactiveAnomalySummary+ reactiveAnomalySummary_anomalyReportedTimeRange,+ reactiveAnomalySummary_anomalyResources,+ reactiveAnomalySummary_anomalyTimeRange,+ reactiveAnomalySummary_associatedInsightId,+ reactiveAnomalySummary_causalAnomalyId,+ reactiveAnomalySummary_description,+ reactiveAnomalySummary_id,+ reactiveAnomalySummary_name,+ reactiveAnomalySummary_resourceCollection,+ reactiveAnomalySummary_severity,+ reactiveAnomalySummary_sourceDetails,+ reactiveAnomalySummary_status,+ reactiveAnomalySummary_type,++ -- ** ReactiveInsight+ reactiveInsight_description,+ reactiveInsight_id,+ reactiveInsight_insightTimeRange,+ reactiveInsight_name,+ reactiveInsight_resourceCollection,+ reactiveInsight_severity,+ reactiveInsight_ssmOpsItemId,+ reactiveInsight_status,++ -- ** ReactiveInsightSummary+ reactiveInsightSummary_associatedResourceArns,+ reactiveInsightSummary_id,+ reactiveInsightSummary_insightTimeRange,+ reactiveInsightSummary_name,+ reactiveInsightSummary_resourceCollection,+ reactiveInsightSummary_serviceCollection,+ reactiveInsightSummary_severity,+ reactiveInsightSummary_status,++ -- ** ReactiveOrganizationInsightSummary+ reactiveOrganizationInsightSummary_accountId,+ reactiveOrganizationInsightSummary_id,+ reactiveOrganizationInsightSummary_insightTimeRange,+ reactiveOrganizationInsightSummary_name,+ reactiveOrganizationInsightSummary_organizationalUnitId,+ reactiveOrganizationInsightSummary_resourceCollection,+ reactiveOrganizationInsightSummary_serviceCollection,+ reactiveOrganizationInsightSummary_severity,+ reactiveOrganizationInsightSummary_status,++ -- ** Recommendation+ recommendation_category,+ recommendation_description,+ recommendation_link,+ recommendation_name,+ recommendation_reason,+ recommendation_relatedAnomalies,+ recommendation_relatedEvents,++ -- ** RecommendationRelatedAnomaly+ recommendationRelatedAnomaly_anomalyId,+ recommendationRelatedAnomaly_resources,+ recommendationRelatedAnomaly_sourceDetails,++ -- ** RecommendationRelatedAnomalyResource+ recommendationRelatedAnomalyResource_name,+ recommendationRelatedAnomalyResource_type,++ -- ** RecommendationRelatedAnomalySourceDetail+ recommendationRelatedAnomalySourceDetail_cloudWatchMetrics,++ -- ** RecommendationRelatedCloudWatchMetricsSourceDetail+ recommendationRelatedCloudWatchMetricsSourceDetail_metricName,+ recommendationRelatedCloudWatchMetricsSourceDetail_namespace,++ -- ** RecommendationRelatedEvent+ recommendationRelatedEvent_name,+ recommendationRelatedEvent_resources,++ -- ** RecommendationRelatedEventResource+ recommendationRelatedEventResource_name,+ recommendationRelatedEventResource_type,++ -- ** ResourceCollection+ resourceCollection_cloudFormation,+ resourceCollection_tags,++ -- ** ResourceCollectionFilter+ resourceCollectionFilter_cloudFormation,+ resourceCollectionFilter_tags,++ -- ** SearchInsightsFilters+ searchInsightsFilters_resourceCollection,+ searchInsightsFilters_serviceCollection,+ searchInsightsFilters_severities,+ searchInsightsFilters_statuses,++ -- ** SearchOrganizationInsightsFilters+ searchOrganizationInsightsFilters_resourceCollection,+ searchOrganizationInsightsFilters_serviceCollection,+ searchOrganizationInsightsFilters_severities,+ searchOrganizationInsightsFilters_statuses,++ -- ** ServiceCollection+ serviceCollection_serviceNames,++ -- ** ServiceHealth+ serviceHealth_analyzedResourceCount,+ serviceHealth_insight,+ serviceHealth_serviceName,++ -- ** ServiceInsightHealth+ serviceInsightHealth_openProactiveInsights,+ serviceInsightHealth_openReactiveInsights,++ -- ** ServiceIntegrationConfig+ serviceIntegrationConfig_logsAnomalyDetection,+ serviceIntegrationConfig_opsCenter,++ -- ** ServiceResourceCost+ serviceResourceCost_cost,+ serviceResourceCost_count,+ serviceResourceCost_state,+ serviceResourceCost_type,+ serviceResourceCost_unitCost,++ -- ** SnsChannelConfig+ snsChannelConfig_topicArn,++ -- ** StartTimeRange+ startTimeRange_fromTime,+ startTimeRange_toTime,++ -- ** TagCollection+ tagCollection_appBoundaryKey,+ tagCollection_tagValues,++ -- ** TagCollectionFilter+ tagCollectionFilter_appBoundaryKey,+ tagCollectionFilter_tagValues,++ -- ** TagCostEstimationResourceCollectionFilter+ tagCostEstimationResourceCollectionFilter_appBoundaryKey,+ tagCostEstimationResourceCollectionFilter_tagValues,++ -- ** TagHealth+ tagHealth_analyzedResourceCount,+ tagHealth_appBoundaryKey,+ tagHealth_insight,+ tagHealth_tagValue,++ -- ** TimestampMetricValuePair+ timestampMetricValuePair_metricValue,+ timestampMetricValuePair_timestamp,++ -- ** UpdateCloudFormationCollectionFilter+ updateCloudFormationCollectionFilter_stackNames,++ -- ** UpdateResourceCollectionFilter+ updateResourceCollectionFilter_cloudFormation,+ updateResourceCollectionFilter_tags,++ -- ** UpdateServiceIntegrationConfig+ updateServiceIntegrationConfig_logsAnomalyDetection,+ updateServiceIntegrationConfig_opsCenter,++ -- ** UpdateTagCollectionFilter+ updateTagCollectionFilter_appBoundaryKey,+ updateTagCollectionFilter_tagValues,+ )+where++import Amazonka.DevOpsGuru.AddNotificationChannel+import Amazonka.DevOpsGuru.DeleteInsight+import Amazonka.DevOpsGuru.DescribeAccountHealth+import Amazonka.DevOpsGuru.DescribeAccountOverview+import Amazonka.DevOpsGuru.DescribeAnomaly+import Amazonka.DevOpsGuru.DescribeEventSourcesConfig+import Amazonka.DevOpsGuru.DescribeFeedback+import Amazonka.DevOpsGuru.DescribeInsight+import Amazonka.DevOpsGuru.DescribeOrganizationHealth+import Amazonka.DevOpsGuru.DescribeOrganizationOverview+import Amazonka.DevOpsGuru.DescribeOrganizationResourceCollectionHealth+import Amazonka.DevOpsGuru.DescribeResourceCollectionHealth+import Amazonka.DevOpsGuru.DescribeServiceIntegration+import Amazonka.DevOpsGuru.GetCostEstimation+import Amazonka.DevOpsGuru.GetResourceCollection+import Amazonka.DevOpsGuru.ListAnomaliesForInsight+import Amazonka.DevOpsGuru.ListAnomalousLogGroups+import Amazonka.DevOpsGuru.ListEvents+import Amazonka.DevOpsGuru.ListInsights+import Amazonka.DevOpsGuru.ListMonitoredResources+import Amazonka.DevOpsGuru.ListNotificationChannels+import Amazonka.DevOpsGuru.ListOrganizationInsights+import Amazonka.DevOpsGuru.ListRecommendations+import Amazonka.DevOpsGuru.PutFeedback+import Amazonka.DevOpsGuru.RemoveNotificationChannel+import Amazonka.DevOpsGuru.SearchInsights+import Amazonka.DevOpsGuru.SearchOrganizationInsights+import Amazonka.DevOpsGuru.StartCostEstimation+import Amazonka.DevOpsGuru.Types.AccountHealth+import Amazonka.DevOpsGuru.Types.AccountInsightHealth+import Amazonka.DevOpsGuru.Types.AmazonCodeGuruProfilerIntegration+import Amazonka.DevOpsGuru.Types.AnomalousLogGroup+import Amazonka.DevOpsGuru.Types.AnomalyReportedTimeRange+import Amazonka.DevOpsGuru.Types.AnomalyResource+import Amazonka.DevOpsGuru.Types.AnomalySourceDetails+import Amazonka.DevOpsGuru.Types.AnomalySourceMetadata+import Amazonka.DevOpsGuru.Types.AnomalyTimeRange+import Amazonka.DevOpsGuru.Types.CloudFormationCollection+import Amazonka.DevOpsGuru.Types.CloudFormationCollectionFilter+import Amazonka.DevOpsGuru.Types.CloudFormationCostEstimationResourceCollectionFilter+import Amazonka.DevOpsGuru.Types.CloudFormationHealth+import Amazonka.DevOpsGuru.Types.CloudWatchMetricsDataSummary+import Amazonka.DevOpsGuru.Types.CloudWatchMetricsDetail+import Amazonka.DevOpsGuru.Types.CloudWatchMetricsDimension+import Amazonka.DevOpsGuru.Types.CostEstimationResourceCollectionFilter+import Amazonka.DevOpsGuru.Types.CostEstimationTimeRange+import Amazonka.DevOpsGuru.Types.EndTimeRange+import Amazonka.DevOpsGuru.Types.Event+import Amazonka.DevOpsGuru.Types.EventResource+import Amazonka.DevOpsGuru.Types.EventSourcesConfig+import Amazonka.DevOpsGuru.Types.EventTimeRange+import Amazonka.DevOpsGuru.Types.InsightFeedback+import Amazonka.DevOpsGuru.Types.InsightHealth+import Amazonka.DevOpsGuru.Types.InsightTimeRange+import Amazonka.DevOpsGuru.Types.ListEventsFilters+import Amazonka.DevOpsGuru.Types.ListInsightsAnyStatusFilter+import Amazonka.DevOpsGuru.Types.ListInsightsClosedStatusFilter+import Amazonka.DevOpsGuru.Types.ListInsightsOngoingStatusFilter+import Amazonka.DevOpsGuru.Types.ListInsightsStatusFilter+import Amazonka.DevOpsGuru.Types.ListMonitoredResourcesFilters+import Amazonka.DevOpsGuru.Types.LogAnomalyClass+import Amazonka.DevOpsGuru.Types.LogAnomalyShowcase+import Amazonka.DevOpsGuru.Types.LogsAnomalyDetectionIntegration+import Amazonka.DevOpsGuru.Types.LogsAnomalyDetectionIntegrationConfig+import Amazonka.DevOpsGuru.Types.MonitoredResourceIdentifier+import Amazonka.DevOpsGuru.Types.NotificationChannel+import Amazonka.DevOpsGuru.Types.NotificationChannelConfig+import Amazonka.DevOpsGuru.Types.NotificationFilterConfig+import Amazonka.DevOpsGuru.Types.OpsCenterIntegration+import Amazonka.DevOpsGuru.Types.OpsCenterIntegrationConfig+import Amazonka.DevOpsGuru.Types.PerformanceInsightsMetricDimensionGroup+import Amazonka.DevOpsGuru.Types.PerformanceInsightsMetricQuery+import Amazonka.DevOpsGuru.Types.PerformanceInsightsMetricsDetail+import Amazonka.DevOpsGuru.Types.PerformanceInsightsReferenceComparisonValues+import Amazonka.DevOpsGuru.Types.PerformanceInsightsReferenceData+import Amazonka.DevOpsGuru.Types.PerformanceInsightsReferenceMetric+import Amazonka.DevOpsGuru.Types.PerformanceInsightsReferenceScalar+import Amazonka.DevOpsGuru.Types.PerformanceInsightsStat+import Amazonka.DevOpsGuru.Types.PredictionTimeRange+import Amazonka.DevOpsGuru.Types.ProactiveAnomaly+import Amazonka.DevOpsGuru.Types.ProactiveAnomalySummary+import Amazonka.DevOpsGuru.Types.ProactiveInsight+import Amazonka.DevOpsGuru.Types.ProactiveInsightSummary+import Amazonka.DevOpsGuru.Types.ProactiveOrganizationInsightSummary+import Amazonka.DevOpsGuru.Types.ReactiveAnomaly+import Amazonka.DevOpsGuru.Types.ReactiveAnomalySummary+import Amazonka.DevOpsGuru.Types.ReactiveInsight+import Amazonka.DevOpsGuru.Types.ReactiveInsightSummary+import Amazonka.DevOpsGuru.Types.ReactiveOrganizationInsightSummary+import Amazonka.DevOpsGuru.Types.Recommendation+import Amazonka.DevOpsGuru.Types.RecommendationRelatedAnomaly+import Amazonka.DevOpsGuru.Types.RecommendationRelatedAnomalyResource+import Amazonka.DevOpsGuru.Types.RecommendationRelatedAnomalySourceDetail+import Amazonka.DevOpsGuru.Types.RecommendationRelatedCloudWatchMetricsSourceDetail+import Amazonka.DevOpsGuru.Types.RecommendationRelatedEvent+import Amazonka.DevOpsGuru.Types.RecommendationRelatedEventResource+import Amazonka.DevOpsGuru.Types.ResourceCollection+import Amazonka.DevOpsGuru.Types.ResourceCollectionFilter+import Amazonka.DevOpsGuru.Types.SearchInsightsFilters+import Amazonka.DevOpsGuru.Types.SearchOrganizationInsightsFilters+import Amazonka.DevOpsGuru.Types.ServiceCollection+import Amazonka.DevOpsGuru.Types.ServiceHealth+import Amazonka.DevOpsGuru.Types.ServiceInsightHealth+import Amazonka.DevOpsGuru.Types.ServiceIntegrationConfig+import Amazonka.DevOpsGuru.Types.ServiceResourceCost+import Amazonka.DevOpsGuru.Types.SnsChannelConfig+import Amazonka.DevOpsGuru.Types.StartTimeRange+import Amazonka.DevOpsGuru.Types.TagCollection+import Amazonka.DevOpsGuru.Types.TagCollectionFilter+import Amazonka.DevOpsGuru.Types.TagCostEstimationResourceCollectionFilter+import Amazonka.DevOpsGuru.Types.TagHealth+import Amazonka.DevOpsGuru.Types.TimestampMetricValuePair+import Amazonka.DevOpsGuru.Types.UpdateCloudFormationCollectionFilter+import Amazonka.DevOpsGuru.Types.UpdateResourceCollectionFilter+import Amazonka.DevOpsGuru.Types.UpdateServiceIntegrationConfig+import Amazonka.DevOpsGuru.Types.UpdateTagCollectionFilter+import Amazonka.DevOpsGuru.UpdateEventSourcesConfig+import Amazonka.DevOpsGuru.UpdateResourceCollection+import Amazonka.DevOpsGuru.UpdateServiceIntegration
+ gen/Amazonka/DevOpsGuru/ListAnomaliesForInsight.hs view
@@ -0,0 +1,309 @@+{-# 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.DevOpsGuru.ListAnomaliesForInsight+-- 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 the anomalies that belong to an insight that you+-- specify using its ID.+--+-- This operation returns paginated results.+module Amazonka.DevOpsGuru.ListAnomaliesForInsight+ ( -- * Creating a Request+ ListAnomaliesForInsight (..),+ newListAnomaliesForInsight,++ -- * Request Lenses+ listAnomaliesForInsight_accountId,+ listAnomaliesForInsight_maxResults,+ listAnomaliesForInsight_nextToken,+ listAnomaliesForInsight_startTimeRange,+ listAnomaliesForInsight_insightId,++ -- * Destructuring the Response+ ListAnomaliesForInsightResponse (..),+ newListAnomaliesForInsightResponse,++ -- * Response Lenses+ listAnomaliesForInsightResponse_nextToken,+ listAnomaliesForInsightResponse_proactiveAnomalies,+ listAnomaliesForInsightResponse_reactiveAnomalies,+ listAnomaliesForInsightResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAnomaliesForInsight' smart constructor.+data ListAnomaliesForInsight = ListAnomaliesForInsight'+ { -- | The ID of the Amazon Web Services account.+ accountId :: Prelude.Maybe Prelude.Text,+ -- | The maximum number of results to return with a single call. To retrieve+ -- the remaining results, make another call with the returned @nextToken@+ -- value.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If this value is null, it retrieves the first page.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A time range used to specify when the requested anomalies started. All+ -- returned anomalies started during this time range.+ startTimeRange :: Prelude.Maybe StartTimeRange,+ -- | The ID of the insight. The returned anomalies belong to this insight.+ insightId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAnomaliesForInsight' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'listAnomaliesForInsight_accountId' - The ID of the Amazon Web Services account.+--+-- 'maxResults', 'listAnomaliesForInsight_maxResults' - The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+--+-- 'nextToken', 'listAnomaliesForInsight_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+--+-- 'startTimeRange', 'listAnomaliesForInsight_startTimeRange' - A time range used to specify when the requested anomalies started. All+-- returned anomalies started during this time range.+--+-- 'insightId', 'listAnomaliesForInsight_insightId' - The ID of the insight. The returned anomalies belong to this insight.+newListAnomaliesForInsight ::+ -- | 'insightId'+ Prelude.Text ->+ ListAnomaliesForInsight+newListAnomaliesForInsight pInsightId_ =+ ListAnomaliesForInsight'+ { accountId =+ Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ startTimeRange = Prelude.Nothing,+ insightId = pInsightId_+ }++-- | The ID of the Amazon Web Services account.+listAnomaliesForInsight_accountId :: Lens.Lens' ListAnomaliesForInsight (Prelude.Maybe Prelude.Text)+listAnomaliesForInsight_accountId = Lens.lens (\ListAnomaliesForInsight' {accountId} -> accountId) (\s@ListAnomaliesForInsight' {} a -> s {accountId = a} :: ListAnomaliesForInsight)++-- | The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+listAnomaliesForInsight_maxResults :: Lens.Lens' ListAnomaliesForInsight (Prelude.Maybe Prelude.Natural)+listAnomaliesForInsight_maxResults = Lens.lens (\ListAnomaliesForInsight' {maxResults} -> maxResults) (\s@ListAnomaliesForInsight' {} a -> s {maxResults = a} :: ListAnomaliesForInsight)++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+listAnomaliesForInsight_nextToken :: Lens.Lens' ListAnomaliesForInsight (Prelude.Maybe Prelude.Text)+listAnomaliesForInsight_nextToken = Lens.lens (\ListAnomaliesForInsight' {nextToken} -> nextToken) (\s@ListAnomaliesForInsight' {} a -> s {nextToken = a} :: ListAnomaliesForInsight)++-- | A time range used to specify when the requested anomalies started. All+-- returned anomalies started during this time range.+listAnomaliesForInsight_startTimeRange :: Lens.Lens' ListAnomaliesForInsight (Prelude.Maybe StartTimeRange)+listAnomaliesForInsight_startTimeRange = Lens.lens (\ListAnomaliesForInsight' {startTimeRange} -> startTimeRange) (\s@ListAnomaliesForInsight' {} a -> s {startTimeRange = a} :: ListAnomaliesForInsight)++-- | The ID of the insight. The returned anomalies belong to this insight.+listAnomaliesForInsight_insightId :: Lens.Lens' ListAnomaliesForInsight Prelude.Text+listAnomaliesForInsight_insightId = Lens.lens (\ListAnomaliesForInsight' {insightId} -> insightId) (\s@ListAnomaliesForInsight' {} a -> s {insightId = a} :: ListAnomaliesForInsight)++instance Core.AWSPager ListAnomaliesForInsight where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listAnomaliesForInsightResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listAnomaliesForInsightResponse_reactiveAnomalies+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listAnomaliesForInsightResponse_proactiveAnomalies+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listAnomaliesForInsight_nextToken+ Lens..~ rs+ Lens.^? listAnomaliesForInsightResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListAnomaliesForInsight where+ type+ AWSResponse ListAnomaliesForInsight =+ ListAnomaliesForInsightResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListAnomaliesForInsightResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> ( x+ Data..?> "ProactiveAnomalies"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> ( x+ Data..?> "ReactiveAnomalies"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListAnomaliesForInsight where+ hashWithSalt _salt ListAnomaliesForInsight' {..} =+ _salt+ `Prelude.hashWithSalt` accountId+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` startTimeRange+ `Prelude.hashWithSalt` insightId++instance Prelude.NFData ListAnomaliesForInsight where+ rnf ListAnomaliesForInsight' {..} =+ Prelude.rnf accountId+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf startTimeRange+ `Prelude.seq` Prelude.rnf insightId++instance Data.ToHeaders ListAnomaliesForInsight where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListAnomaliesForInsight where+ toJSON ListAnomaliesForInsight' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AccountId" Data..=) Prelude.<$> accountId,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ ("StartTimeRange" Data..=)+ Prelude.<$> startTimeRange+ ]+ )++instance Data.ToPath ListAnomaliesForInsight where+ toPath ListAnomaliesForInsight' {..} =+ Prelude.mconcat+ ["/anomalies/insight/", Data.toBS insightId]++instance Data.ToQuery ListAnomaliesForInsight where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListAnomaliesForInsightResponse' smart constructor.+data ListAnomaliesForInsightResponse = ListAnomaliesForInsightResponse'+ { -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If there are no more pages, this value is null.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | An array of @ProactiveAnomalySummary@ objects that represent the+ -- requested anomalies+ proactiveAnomalies :: Prelude.Maybe [ProactiveAnomalySummary],+ -- | An array of @ReactiveAnomalySummary@ objects that represent the+ -- requested anomalies+ reactiveAnomalies :: Prelude.Maybe [ReactiveAnomalySummary],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAnomaliesForInsightResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listAnomaliesForInsightResponse_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+--+-- 'proactiveAnomalies', 'listAnomaliesForInsightResponse_proactiveAnomalies' - An array of @ProactiveAnomalySummary@ objects that represent the+-- requested anomalies+--+-- 'reactiveAnomalies', 'listAnomaliesForInsightResponse_reactiveAnomalies' - An array of @ReactiveAnomalySummary@ objects that represent the+-- requested anomalies+--+-- 'httpStatus', 'listAnomaliesForInsightResponse_httpStatus' - The response's http status code.+newListAnomaliesForInsightResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListAnomaliesForInsightResponse+newListAnomaliesForInsightResponse pHttpStatus_ =+ ListAnomaliesForInsightResponse'+ { nextToken =+ Prelude.Nothing,+ proactiveAnomalies = Prelude.Nothing,+ reactiveAnomalies = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+listAnomaliesForInsightResponse_nextToken :: Lens.Lens' ListAnomaliesForInsightResponse (Prelude.Maybe Prelude.Text)+listAnomaliesForInsightResponse_nextToken = Lens.lens (\ListAnomaliesForInsightResponse' {nextToken} -> nextToken) (\s@ListAnomaliesForInsightResponse' {} a -> s {nextToken = a} :: ListAnomaliesForInsightResponse)++-- | An array of @ProactiveAnomalySummary@ objects that represent the+-- requested anomalies+listAnomaliesForInsightResponse_proactiveAnomalies :: Lens.Lens' ListAnomaliesForInsightResponse (Prelude.Maybe [ProactiveAnomalySummary])+listAnomaliesForInsightResponse_proactiveAnomalies = Lens.lens (\ListAnomaliesForInsightResponse' {proactiveAnomalies} -> proactiveAnomalies) (\s@ListAnomaliesForInsightResponse' {} a -> s {proactiveAnomalies = a} :: ListAnomaliesForInsightResponse) Prelude.. Lens.mapping Lens.coerced++-- | An array of @ReactiveAnomalySummary@ objects that represent the+-- requested anomalies+listAnomaliesForInsightResponse_reactiveAnomalies :: Lens.Lens' ListAnomaliesForInsightResponse (Prelude.Maybe [ReactiveAnomalySummary])+listAnomaliesForInsightResponse_reactiveAnomalies = Lens.lens (\ListAnomaliesForInsightResponse' {reactiveAnomalies} -> reactiveAnomalies) (\s@ListAnomaliesForInsightResponse' {} a -> s {reactiveAnomalies = a} :: ListAnomaliesForInsightResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listAnomaliesForInsightResponse_httpStatus :: Lens.Lens' ListAnomaliesForInsightResponse Prelude.Int+listAnomaliesForInsightResponse_httpStatus = Lens.lens (\ListAnomaliesForInsightResponse' {httpStatus} -> httpStatus) (\s@ListAnomaliesForInsightResponse' {} a -> s {httpStatus = a} :: ListAnomaliesForInsightResponse)++instance+ Prelude.NFData+ ListAnomaliesForInsightResponse+ where+ rnf ListAnomaliesForInsightResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf proactiveAnomalies+ `Prelude.seq` Prelude.rnf reactiveAnomalies+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DevOpsGuru/ListAnomalousLogGroups.hs view
@@ -0,0 +1,265 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.ListAnomalousLogGroups+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the list of log groups that contain log anomalies.+--+-- This operation returns paginated results.+module Amazonka.DevOpsGuru.ListAnomalousLogGroups+ ( -- * Creating a Request+ ListAnomalousLogGroups (..),+ newListAnomalousLogGroups,++ -- * Request Lenses+ listAnomalousLogGroups_maxResults,+ listAnomalousLogGroups_nextToken,+ listAnomalousLogGroups_insightId,++ -- * Destructuring the Response+ ListAnomalousLogGroupsResponse (..),+ newListAnomalousLogGroupsResponse,++ -- * Response Lenses+ listAnomalousLogGroupsResponse_nextToken,+ listAnomalousLogGroupsResponse_httpStatus,+ listAnomalousLogGroupsResponse_insightId,+ listAnomalousLogGroupsResponse_anomalousLogGroups,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAnomalousLogGroups' smart constructor.+data ListAnomalousLogGroups = ListAnomalousLogGroups'+ { -- | The maximum number of results to return with a single call. To retrieve+ -- the remaining results, make another call with the returned @nextToken@+ -- value.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If this value is null, it retrieves the first page.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The ID of the insight containing the log groups.+ insightId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAnomalousLogGroups' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listAnomalousLogGroups_maxResults' - The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+--+-- 'nextToken', 'listAnomalousLogGroups_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+--+-- 'insightId', 'listAnomalousLogGroups_insightId' - The ID of the insight containing the log groups.+newListAnomalousLogGroups ::+ -- | 'insightId'+ Prelude.Text ->+ ListAnomalousLogGroups+newListAnomalousLogGroups pInsightId_ =+ ListAnomalousLogGroups'+ { maxResults =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ insightId = pInsightId_+ }++-- | The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+listAnomalousLogGroups_maxResults :: Lens.Lens' ListAnomalousLogGroups (Prelude.Maybe Prelude.Natural)+listAnomalousLogGroups_maxResults = Lens.lens (\ListAnomalousLogGroups' {maxResults} -> maxResults) (\s@ListAnomalousLogGroups' {} a -> s {maxResults = a} :: ListAnomalousLogGroups)++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+listAnomalousLogGroups_nextToken :: Lens.Lens' ListAnomalousLogGroups (Prelude.Maybe Prelude.Text)+listAnomalousLogGroups_nextToken = Lens.lens (\ListAnomalousLogGroups' {nextToken} -> nextToken) (\s@ListAnomalousLogGroups' {} a -> s {nextToken = a} :: ListAnomalousLogGroups)++-- | The ID of the insight containing the log groups.+listAnomalousLogGroups_insightId :: Lens.Lens' ListAnomalousLogGroups Prelude.Text+listAnomalousLogGroups_insightId = Lens.lens (\ListAnomalousLogGroups' {insightId} -> insightId) (\s@ListAnomalousLogGroups' {} a -> s {insightId = a} :: ListAnomalousLogGroups)++instance Core.AWSPager ListAnomalousLogGroups where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listAnomalousLogGroupsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^. listAnomalousLogGroupsResponse_anomalousLogGroups+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listAnomalousLogGroups_nextToken+ Lens..~ rs+ Lens.^? listAnomalousLogGroupsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListAnomalousLogGroups where+ type+ AWSResponse ListAnomalousLogGroups =+ ListAnomalousLogGroupsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListAnomalousLogGroupsResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "InsightId")+ Prelude.<*> ( x+ Data..?> "AnomalousLogGroups"+ Core..!@ Prelude.mempty+ )+ )++instance Prelude.Hashable ListAnomalousLogGroups where+ hashWithSalt _salt ListAnomalousLogGroups' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` insightId++instance Prelude.NFData ListAnomalousLogGroups where+ rnf ListAnomalousLogGroups' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf insightId++instance Data.ToHeaders ListAnomalousLogGroups where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListAnomalousLogGroups where+ toJSON ListAnomalousLogGroups' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just ("InsightId" Data..= insightId)+ ]+ )++instance Data.ToPath ListAnomalousLogGroups where+ toPath = Prelude.const "/list-log-anomalies"++instance Data.ToQuery ListAnomalousLogGroups where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListAnomalousLogGroupsResponse' smart constructor.+data ListAnomalousLogGroupsResponse = ListAnomalousLogGroupsResponse'+ { -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If there are no more pages, this value is null.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The ID of the insight containing the log groups.+ insightId :: Prelude.Text,+ -- | The list of Amazon CloudWatch log groups that are related to an insight.+ anomalousLogGroups :: [AnomalousLogGroup]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAnomalousLogGroupsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listAnomalousLogGroupsResponse_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+--+-- 'httpStatus', 'listAnomalousLogGroupsResponse_httpStatus' - The response's http status code.+--+-- 'insightId', 'listAnomalousLogGroupsResponse_insightId' - The ID of the insight containing the log groups.+--+-- 'anomalousLogGroups', 'listAnomalousLogGroupsResponse_anomalousLogGroups' - The list of Amazon CloudWatch log groups that are related to an insight.+newListAnomalousLogGroupsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'insightId'+ Prelude.Text ->+ ListAnomalousLogGroupsResponse+newListAnomalousLogGroupsResponse+ pHttpStatus_+ pInsightId_ =+ ListAnomalousLogGroupsResponse'+ { nextToken =+ Prelude.Nothing,+ httpStatus = pHttpStatus_,+ insightId = pInsightId_,+ anomalousLogGroups = Prelude.mempty+ }++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+listAnomalousLogGroupsResponse_nextToken :: Lens.Lens' ListAnomalousLogGroupsResponse (Prelude.Maybe Prelude.Text)+listAnomalousLogGroupsResponse_nextToken = Lens.lens (\ListAnomalousLogGroupsResponse' {nextToken} -> nextToken) (\s@ListAnomalousLogGroupsResponse' {} a -> s {nextToken = a} :: ListAnomalousLogGroupsResponse)++-- | The response's http status code.+listAnomalousLogGroupsResponse_httpStatus :: Lens.Lens' ListAnomalousLogGroupsResponse Prelude.Int+listAnomalousLogGroupsResponse_httpStatus = Lens.lens (\ListAnomalousLogGroupsResponse' {httpStatus} -> httpStatus) (\s@ListAnomalousLogGroupsResponse' {} a -> s {httpStatus = a} :: ListAnomalousLogGroupsResponse)++-- | The ID of the insight containing the log groups.+listAnomalousLogGroupsResponse_insightId :: Lens.Lens' ListAnomalousLogGroupsResponse Prelude.Text+listAnomalousLogGroupsResponse_insightId = Lens.lens (\ListAnomalousLogGroupsResponse' {insightId} -> insightId) (\s@ListAnomalousLogGroupsResponse' {} a -> s {insightId = a} :: ListAnomalousLogGroupsResponse)++-- | The list of Amazon CloudWatch log groups that are related to an insight.+listAnomalousLogGroupsResponse_anomalousLogGroups :: Lens.Lens' ListAnomalousLogGroupsResponse [AnomalousLogGroup]+listAnomalousLogGroupsResponse_anomalousLogGroups = Lens.lens (\ListAnomalousLogGroupsResponse' {anomalousLogGroups} -> anomalousLogGroups) (\s@ListAnomalousLogGroupsResponse' {} a -> s {anomalousLogGroups = a} :: ListAnomalousLogGroupsResponse) Prelude.. Lens.coerced++instance+ Prelude.NFData+ ListAnomalousLogGroupsResponse+ where+ rnf ListAnomalousLogGroupsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf insightId+ `Prelude.seq` Prelude.rnf anomalousLogGroups
+ gen/Amazonka/DevOpsGuru/ListEvents.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.DevOpsGuru.ListEvents+-- 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 the events emitted by the resources that are evaluated+-- by DevOps Guru. You can use filters to specify which events are+-- returned.+--+-- This operation returns paginated results.+module Amazonka.DevOpsGuru.ListEvents+ ( -- * Creating a Request+ ListEvents (..),+ newListEvents,++ -- * Request Lenses+ listEvents_accountId,+ listEvents_maxResults,+ listEvents_nextToken,+ listEvents_filters,++ -- * Destructuring the Response+ ListEventsResponse (..),+ newListEventsResponse,++ -- * Response Lenses+ listEventsResponse_nextToken,+ listEventsResponse_httpStatus,+ listEventsResponse_events,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListEvents' smart constructor.+data ListEvents = ListEvents'+ { -- | The ID of the Amazon Web Services account.+ accountId :: Prelude.Maybe Prelude.Text,+ -- | The maximum number of results to return with a single call. To retrieve+ -- the remaining results, make another call with the returned @nextToken@+ -- value.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If this value is null, it retrieves the first page.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A @ListEventsFilters@ object used to specify which events to return.+ filters :: ListEventsFilters+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListEvents' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'listEvents_accountId' - The ID of the Amazon Web Services account.+--+-- 'maxResults', 'listEvents_maxResults' - The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+--+-- 'nextToken', 'listEvents_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+--+-- 'filters', 'listEvents_filters' - A @ListEventsFilters@ object used to specify which events to return.+newListEvents ::+ -- | 'filters'+ ListEventsFilters ->+ ListEvents+newListEvents pFilters_ =+ ListEvents'+ { accountId = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ filters = pFilters_+ }++-- | The ID of the Amazon Web Services account.+listEvents_accountId :: Lens.Lens' ListEvents (Prelude.Maybe Prelude.Text)+listEvents_accountId = Lens.lens (\ListEvents' {accountId} -> accountId) (\s@ListEvents' {} a -> s {accountId = a} :: ListEvents)++-- | The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+listEvents_maxResults :: Lens.Lens' ListEvents (Prelude.Maybe Prelude.Natural)+listEvents_maxResults = Lens.lens (\ListEvents' {maxResults} -> maxResults) (\s@ListEvents' {} a -> s {maxResults = a} :: ListEvents)++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+listEvents_nextToken :: Lens.Lens' ListEvents (Prelude.Maybe Prelude.Text)+listEvents_nextToken = Lens.lens (\ListEvents' {nextToken} -> nextToken) (\s@ListEvents' {} a -> s {nextToken = a} :: ListEvents)++-- | A @ListEventsFilters@ object used to specify which events to return.+listEvents_filters :: Lens.Lens' ListEvents ListEventsFilters+listEvents_filters = Lens.lens (\ListEvents' {filters} -> filters) (\s@ListEvents' {} a -> s {filters = a} :: ListEvents)++instance Core.AWSPager ListEvents where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listEventsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop (rs Lens.^. listEventsResponse_events) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listEvents_nextToken+ Lens..~ rs+ Lens.^? listEventsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListEvents where+ type AWSResponse ListEvents = ListEventsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListEventsResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..?> "Events" Core..!@ Prelude.mempty)+ )++instance Prelude.Hashable ListEvents where+ hashWithSalt _salt ListEvents' {..} =+ _salt+ `Prelude.hashWithSalt` accountId+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` filters++instance Prelude.NFData ListEvents where+ rnf ListEvents' {..} =+ Prelude.rnf accountId+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf filters++instance Data.ToHeaders ListEvents where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListEvents where+ toJSON ListEvents' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AccountId" Data..=) Prelude.<$> accountId,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just ("Filters" Data..= filters)+ ]+ )++instance Data.ToPath ListEvents where+ toPath = Prelude.const "/events"++instance Data.ToQuery ListEvents where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListEventsResponse' smart constructor.+data ListEventsResponse = ListEventsResponse'+ { -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If there are no more pages, this value is null.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | A list of the requested events.+ events :: [Event]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListEventsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listEventsResponse_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+--+-- 'httpStatus', 'listEventsResponse_httpStatus' - The response's http status code.+--+-- 'events', 'listEventsResponse_events' - A list of the requested events.+newListEventsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListEventsResponse+newListEventsResponse pHttpStatus_ =+ ListEventsResponse'+ { nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_,+ events = Prelude.mempty+ }++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+listEventsResponse_nextToken :: Lens.Lens' ListEventsResponse (Prelude.Maybe Prelude.Text)+listEventsResponse_nextToken = Lens.lens (\ListEventsResponse' {nextToken} -> nextToken) (\s@ListEventsResponse' {} a -> s {nextToken = a} :: ListEventsResponse)++-- | The response's http status code.+listEventsResponse_httpStatus :: Lens.Lens' ListEventsResponse Prelude.Int+listEventsResponse_httpStatus = Lens.lens (\ListEventsResponse' {httpStatus} -> httpStatus) (\s@ListEventsResponse' {} a -> s {httpStatus = a} :: ListEventsResponse)++-- | A list of the requested events.+listEventsResponse_events :: Lens.Lens' ListEventsResponse [Event]+listEventsResponse_events = Lens.lens (\ListEventsResponse' {events} -> events) (\s@ListEventsResponse' {} a -> s {events = a} :: ListEventsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListEventsResponse where+ rnf ListEventsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf events
+ gen/Amazonka/DevOpsGuru/ListInsights.hs view
@@ -0,0 +1,269 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.ListInsights+-- 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 insights in your Amazon Web Services account. You can+-- specify which insights are returned by their start time and status+-- (@ONGOING@, @CLOSED@, or @ANY@).+--+-- This operation returns paginated results.+module Amazonka.DevOpsGuru.ListInsights+ ( -- * Creating a Request+ ListInsights (..),+ newListInsights,++ -- * Request Lenses+ listInsights_maxResults,+ listInsights_nextToken,+ listInsights_statusFilter,++ -- * Destructuring the Response+ ListInsightsResponse (..),+ newListInsightsResponse,++ -- * Response Lenses+ listInsightsResponse_nextToken,+ listInsightsResponse_proactiveInsights,+ listInsightsResponse_reactiveInsights,+ listInsightsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListInsights' smart constructor.+data ListInsights = ListInsights'+ { -- | The maximum number of results to return with a single call. To retrieve+ -- the remaining results, make another call with the returned @nextToken@+ -- value.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If this value is null, it retrieves the first page.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A filter used to filter the returned insights by their status. You can+ -- specify one status filter.+ statusFilter :: ListInsightsStatusFilter+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListInsights' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listInsights_maxResults' - The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+--+-- 'nextToken', 'listInsights_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+--+-- 'statusFilter', 'listInsights_statusFilter' - A filter used to filter the returned insights by their status. You can+-- specify one status filter.+newListInsights ::+ -- | 'statusFilter'+ ListInsightsStatusFilter ->+ ListInsights+newListInsights pStatusFilter_ =+ ListInsights'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ statusFilter = pStatusFilter_+ }++-- | The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+listInsights_maxResults :: Lens.Lens' ListInsights (Prelude.Maybe Prelude.Natural)+listInsights_maxResults = Lens.lens (\ListInsights' {maxResults} -> maxResults) (\s@ListInsights' {} a -> s {maxResults = a} :: ListInsights)++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+listInsights_nextToken :: Lens.Lens' ListInsights (Prelude.Maybe Prelude.Text)+listInsights_nextToken = Lens.lens (\ListInsights' {nextToken} -> nextToken) (\s@ListInsights' {} a -> s {nextToken = a} :: ListInsights)++-- | A filter used to filter the returned insights by their status. You can+-- specify one status filter.+listInsights_statusFilter :: Lens.Lens' ListInsights ListInsightsStatusFilter+listInsights_statusFilter = Lens.lens (\ListInsights' {statusFilter} -> statusFilter) (\s@ListInsights' {} a -> s {statusFilter = a} :: ListInsights)++instance Core.AWSPager ListInsights where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listInsightsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listInsightsResponse_proactiveInsights+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listInsightsResponse_reactiveInsights+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listInsights_nextToken+ Lens..~ rs+ Lens.^? listInsightsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListInsights where+ type AWSResponse ListInsights = ListInsightsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListInsightsResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> ( x+ Data..?> "ProactiveInsights"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> ( x+ Data..?> "ReactiveInsights"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListInsights where+ hashWithSalt _salt ListInsights' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` statusFilter++instance Prelude.NFData ListInsights where+ rnf ListInsights' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf statusFilter++instance Data.ToHeaders ListInsights where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListInsights where+ toJSON ListInsights' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just ("StatusFilter" Data..= statusFilter)+ ]+ )++instance Data.ToPath ListInsights where+ toPath = Prelude.const "/insights"++instance Data.ToQuery ListInsights where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListInsightsResponse' smart constructor.+data ListInsightsResponse = ListInsightsResponse'+ { -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If there are no more pages, this value is null.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The returned list of proactive insights.+ proactiveInsights :: Prelude.Maybe [ProactiveInsightSummary],+ -- | The returned list of reactive insights.+ reactiveInsights :: Prelude.Maybe [ReactiveInsightSummary],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListInsightsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listInsightsResponse_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+--+-- 'proactiveInsights', 'listInsightsResponse_proactiveInsights' - The returned list of proactive insights.+--+-- 'reactiveInsights', 'listInsightsResponse_reactiveInsights' - The returned list of reactive insights.+--+-- 'httpStatus', 'listInsightsResponse_httpStatus' - The response's http status code.+newListInsightsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListInsightsResponse+newListInsightsResponse pHttpStatus_ =+ ListInsightsResponse'+ { nextToken = Prelude.Nothing,+ proactiveInsights = Prelude.Nothing,+ reactiveInsights = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+listInsightsResponse_nextToken :: Lens.Lens' ListInsightsResponse (Prelude.Maybe Prelude.Text)+listInsightsResponse_nextToken = Lens.lens (\ListInsightsResponse' {nextToken} -> nextToken) (\s@ListInsightsResponse' {} a -> s {nextToken = a} :: ListInsightsResponse)++-- | The returned list of proactive insights.+listInsightsResponse_proactiveInsights :: Lens.Lens' ListInsightsResponse (Prelude.Maybe [ProactiveInsightSummary])+listInsightsResponse_proactiveInsights = Lens.lens (\ListInsightsResponse' {proactiveInsights} -> proactiveInsights) (\s@ListInsightsResponse' {} a -> s {proactiveInsights = a} :: ListInsightsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The returned list of reactive insights.+listInsightsResponse_reactiveInsights :: Lens.Lens' ListInsightsResponse (Prelude.Maybe [ReactiveInsightSummary])+listInsightsResponse_reactiveInsights = Lens.lens (\ListInsightsResponse' {reactiveInsights} -> reactiveInsights) (\s@ListInsightsResponse' {} a -> s {reactiveInsights = a} :: ListInsightsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listInsightsResponse_httpStatus :: Lens.Lens' ListInsightsResponse Prelude.Int+listInsightsResponse_httpStatus = Lens.lens (\ListInsightsResponse' {httpStatus} -> httpStatus) (\s@ListInsightsResponse' {} a -> s {httpStatus = a} :: ListInsightsResponse)++instance Prelude.NFData ListInsightsResponse where+ rnf ListInsightsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf proactiveInsights+ `Prelude.seq` Prelude.rnf reactiveInsights+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DevOpsGuru/ListMonitoredResources.hs view
@@ -0,0 +1,257 @@+{-# 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.DevOpsGuru.ListMonitoredResources+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the list of all log groups that are being monitored and tagged+-- by DevOps Guru.+--+-- This operation returns paginated results.+module Amazonka.DevOpsGuru.ListMonitoredResources+ ( -- * Creating a Request+ ListMonitoredResources (..),+ newListMonitoredResources,++ -- * Request Lenses+ listMonitoredResources_filters,+ listMonitoredResources_maxResults,+ listMonitoredResources_nextToken,++ -- * Destructuring the Response+ ListMonitoredResourcesResponse (..),+ newListMonitoredResourcesResponse,++ -- * Response Lenses+ listMonitoredResourcesResponse_nextToken,+ listMonitoredResourcesResponse_httpStatus,+ listMonitoredResourcesResponse_monitoredResourceIdentifiers,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListMonitoredResources' smart constructor.+data ListMonitoredResources = ListMonitoredResources'+ { -- | Filters to determine which monitored resources you want to retrieve. You+ -- can filter by resource type or resource permission status.+ filters :: Prelude.Maybe ListMonitoredResourcesFilters,+ -- | The maximum number of results to return with a single call. To retrieve+ -- the remaining results, make another call with the returned @nextToken@+ -- value.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If this value is null, it retrieves the first page.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListMonitoredResources' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'listMonitoredResources_filters' - Filters to determine which monitored resources you want to retrieve. You+-- can filter by resource type or resource permission status.+--+-- 'maxResults', 'listMonitoredResources_maxResults' - The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+--+-- 'nextToken', 'listMonitoredResources_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+newListMonitoredResources ::+ ListMonitoredResources+newListMonitoredResources =+ ListMonitoredResources'+ { filters = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing+ }++-- | Filters to determine which monitored resources you want to retrieve. You+-- can filter by resource type or resource permission status.+listMonitoredResources_filters :: Lens.Lens' ListMonitoredResources (Prelude.Maybe ListMonitoredResourcesFilters)+listMonitoredResources_filters = Lens.lens (\ListMonitoredResources' {filters} -> filters) (\s@ListMonitoredResources' {} a -> s {filters = a} :: ListMonitoredResources)++-- | The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+listMonitoredResources_maxResults :: Lens.Lens' ListMonitoredResources (Prelude.Maybe Prelude.Natural)+listMonitoredResources_maxResults = Lens.lens (\ListMonitoredResources' {maxResults} -> maxResults) (\s@ListMonitoredResources' {} a -> s {maxResults = a} :: ListMonitoredResources)++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+listMonitoredResources_nextToken :: Lens.Lens' ListMonitoredResources (Prelude.Maybe Prelude.Text)+listMonitoredResources_nextToken = Lens.lens (\ListMonitoredResources' {nextToken} -> nextToken) (\s@ListMonitoredResources' {} a -> s {nextToken = a} :: ListMonitoredResources)++instance Core.AWSPager ListMonitoredResources where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listMonitoredResourcesResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^. listMonitoredResourcesResponse_monitoredResourceIdentifiers+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listMonitoredResources_nextToken+ Lens..~ rs+ Lens.^? listMonitoredResourcesResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListMonitoredResources where+ type+ AWSResponse ListMonitoredResources =+ ListMonitoredResourcesResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListMonitoredResourcesResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> ( x+ Data..?> "MonitoredResourceIdentifiers"+ Core..!@ Prelude.mempty+ )+ )++instance Prelude.Hashable ListMonitoredResources where+ hashWithSalt _salt ListMonitoredResources' {..} =+ _salt+ `Prelude.hashWithSalt` filters+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListMonitoredResources where+ rnf ListMonitoredResources' {..} =+ Prelude.rnf filters+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListMonitoredResources where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListMonitoredResources where+ toJSON ListMonitoredResources' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Filters" Data..=) Prelude.<$> filters,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken+ ]+ )++instance Data.ToPath ListMonitoredResources where+ toPath = Prelude.const "/monitoredResources"++instance Data.ToQuery ListMonitoredResources where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListMonitoredResourcesResponse' smart constructor.+data ListMonitoredResourcesResponse = ListMonitoredResourcesResponse'+ { -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If there are no more pages, this value is null.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | Information about the resource that is being monitored, including the+ -- name of the resource, the type of resource, and whether or not+ -- permission is given to DevOps Guru to access that resource.+ monitoredResourceIdentifiers :: [MonitoredResourceIdentifier]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListMonitoredResourcesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listMonitoredResourcesResponse_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+--+-- 'httpStatus', 'listMonitoredResourcesResponse_httpStatus' - The response's http status code.+--+-- 'monitoredResourceIdentifiers', 'listMonitoredResourcesResponse_monitoredResourceIdentifiers' - Information about the resource that is being monitored, including the+-- name of the resource, the type of resource, and whether or not+-- permission is given to DevOps Guru to access that resource.+newListMonitoredResourcesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListMonitoredResourcesResponse+newListMonitoredResourcesResponse pHttpStatus_ =+ ListMonitoredResourcesResponse'+ { nextToken =+ Prelude.Nothing,+ httpStatus = pHttpStatus_,+ monitoredResourceIdentifiers =+ Prelude.mempty+ }++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+listMonitoredResourcesResponse_nextToken :: Lens.Lens' ListMonitoredResourcesResponse (Prelude.Maybe Prelude.Text)+listMonitoredResourcesResponse_nextToken = Lens.lens (\ListMonitoredResourcesResponse' {nextToken} -> nextToken) (\s@ListMonitoredResourcesResponse' {} a -> s {nextToken = a} :: ListMonitoredResourcesResponse)++-- | The response's http status code.+listMonitoredResourcesResponse_httpStatus :: Lens.Lens' ListMonitoredResourcesResponse Prelude.Int+listMonitoredResourcesResponse_httpStatus = Lens.lens (\ListMonitoredResourcesResponse' {httpStatus} -> httpStatus) (\s@ListMonitoredResourcesResponse' {} a -> s {httpStatus = a} :: ListMonitoredResourcesResponse)++-- | Information about the resource that is being monitored, including the+-- name of the resource, the type of resource, and whether or not+-- permission is given to DevOps Guru to access that resource.+listMonitoredResourcesResponse_monitoredResourceIdentifiers :: Lens.Lens' ListMonitoredResourcesResponse [MonitoredResourceIdentifier]+listMonitoredResourcesResponse_monitoredResourceIdentifiers = Lens.lens (\ListMonitoredResourcesResponse' {monitoredResourceIdentifiers} -> monitoredResourceIdentifiers) (\s@ListMonitoredResourcesResponse' {} a -> s {monitoredResourceIdentifiers = a} :: ListMonitoredResourcesResponse) Prelude.. Lens.coerced++instance+ Prelude.NFData+ ListMonitoredResourcesResponse+ where+ rnf ListMonitoredResourcesResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf monitoredResourceIdentifiers
+ gen/Amazonka/DevOpsGuru/ListNotificationChannels.hs view
@@ -0,0 +1,215 @@+{-# 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.DevOpsGuru.ListNotificationChannels+-- 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 notification channels configured for DevOps Guru. Each+-- notification channel is used to notify you when DevOps Guru generates an+-- insight that contains information about how to improve your operations.+-- The one supported notification channel is Amazon Simple Notification+-- Service (Amazon SNS).+--+-- This operation returns paginated results.+module Amazonka.DevOpsGuru.ListNotificationChannels+ ( -- * Creating a Request+ ListNotificationChannels (..),+ newListNotificationChannels,++ -- * Request Lenses+ listNotificationChannels_nextToken,++ -- * Destructuring the Response+ ListNotificationChannelsResponse (..),+ newListNotificationChannelsResponse,++ -- * Response Lenses+ listNotificationChannelsResponse_channels,+ listNotificationChannelsResponse_nextToken,+ listNotificationChannelsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListNotificationChannels' smart constructor.+data ListNotificationChannels = ListNotificationChannels'+ { -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If this value is null, it retrieves the first page.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListNotificationChannels' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listNotificationChannels_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+newListNotificationChannels ::+ ListNotificationChannels+newListNotificationChannels =+ ListNotificationChannels'+ { nextToken =+ Prelude.Nothing+ }++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+listNotificationChannels_nextToken :: Lens.Lens' ListNotificationChannels (Prelude.Maybe Prelude.Text)+listNotificationChannels_nextToken = Lens.lens (\ListNotificationChannels' {nextToken} -> nextToken) (\s@ListNotificationChannels' {} a -> s {nextToken = a} :: ListNotificationChannels)++instance Core.AWSPager ListNotificationChannels where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listNotificationChannelsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listNotificationChannelsResponse_channels+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listNotificationChannels_nextToken+ Lens..~ rs+ Lens.^? listNotificationChannelsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListNotificationChannels where+ type+ AWSResponse ListNotificationChannels =+ ListNotificationChannelsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListNotificationChannelsResponse'+ Prelude.<$> (x Data..?> "Channels" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListNotificationChannels where+ hashWithSalt _salt ListNotificationChannels' {..} =+ _salt `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListNotificationChannels where+ rnf ListNotificationChannels' {..} =+ Prelude.rnf nextToken++instance Data.ToHeaders ListNotificationChannels where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListNotificationChannels where+ toJSON ListNotificationChannels' {..} =+ Data.object+ ( Prelude.catMaybes+ [("NextToken" Data..=) Prelude.<$> nextToken]+ )++instance Data.ToPath ListNotificationChannels where+ toPath = Prelude.const "/channels"++instance Data.ToQuery ListNotificationChannels where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListNotificationChannelsResponse' smart constructor.+data ListNotificationChannelsResponse = ListNotificationChannelsResponse'+ { -- | An array that contains the requested notification channels.+ channels :: Prelude.Maybe [NotificationChannel],+ -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If there are no more pages, this value is null.+ 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 'ListNotificationChannelsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channels', 'listNotificationChannelsResponse_channels' - An array that contains the requested notification channels.+--+-- 'nextToken', 'listNotificationChannelsResponse_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+--+-- 'httpStatus', 'listNotificationChannelsResponse_httpStatus' - The response's http status code.+newListNotificationChannelsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListNotificationChannelsResponse+newListNotificationChannelsResponse pHttpStatus_ =+ ListNotificationChannelsResponse'+ { channels =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | An array that contains the requested notification channels.+listNotificationChannelsResponse_channels :: Lens.Lens' ListNotificationChannelsResponse (Prelude.Maybe [NotificationChannel])+listNotificationChannelsResponse_channels = Lens.lens (\ListNotificationChannelsResponse' {channels} -> channels) (\s@ListNotificationChannelsResponse' {} a -> s {channels = a} :: ListNotificationChannelsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+listNotificationChannelsResponse_nextToken :: Lens.Lens' ListNotificationChannelsResponse (Prelude.Maybe Prelude.Text)+listNotificationChannelsResponse_nextToken = Lens.lens (\ListNotificationChannelsResponse' {nextToken} -> nextToken) (\s@ListNotificationChannelsResponse' {} a -> s {nextToken = a} :: ListNotificationChannelsResponse)++-- | The response's http status code.+listNotificationChannelsResponse_httpStatus :: Lens.Lens' ListNotificationChannelsResponse Prelude.Int+listNotificationChannelsResponse_httpStatus = Lens.lens (\ListNotificationChannelsResponse' {httpStatus} -> httpStatus) (\s@ListNotificationChannelsResponse' {} a -> s {httpStatus = a} :: ListNotificationChannelsResponse)++instance+ Prelude.NFData+ ListNotificationChannelsResponse+ where+ rnf ListNotificationChannelsResponse' {..} =+ Prelude.rnf channels+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DevOpsGuru/ListOrganizationInsights.hs view
@@ -0,0 +1,303 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.ListOrganizationInsights+-- 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 insights associated with the account or OU Id.+--+-- This operation returns paginated results.+module Amazonka.DevOpsGuru.ListOrganizationInsights+ ( -- * Creating a Request+ ListOrganizationInsights (..),+ newListOrganizationInsights,++ -- * Request Lenses+ listOrganizationInsights_accountIds,+ listOrganizationInsights_maxResults,+ listOrganizationInsights_nextToken,+ listOrganizationInsights_organizationalUnitIds,+ listOrganizationInsights_statusFilter,++ -- * Destructuring the Response+ ListOrganizationInsightsResponse (..),+ newListOrganizationInsightsResponse,++ -- * Response Lenses+ listOrganizationInsightsResponse_nextToken,+ listOrganizationInsightsResponse_proactiveInsights,+ listOrganizationInsightsResponse_reactiveInsights,+ listOrganizationInsightsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListOrganizationInsights' smart constructor.+data ListOrganizationInsights = ListOrganizationInsights'+ { -- | The ID of the Amazon Web Services account.+ accountIds :: Prelude.Maybe [Prelude.Text],+ -- | The maximum number of results to return with a single call. To retrieve+ -- the remaining results, make another call with the returned @nextToken@+ -- value.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If this value is null, it retrieves the first page.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The ID of the organizational unit.+ organizationalUnitIds :: Prelude.Maybe [Prelude.Text],+ statusFilter :: ListInsightsStatusFilter+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListOrganizationInsights' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountIds', 'listOrganizationInsights_accountIds' - The ID of the Amazon Web Services account.+--+-- 'maxResults', 'listOrganizationInsights_maxResults' - The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+--+-- 'nextToken', 'listOrganizationInsights_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+--+-- 'organizationalUnitIds', 'listOrganizationInsights_organizationalUnitIds' - The ID of the organizational unit.+--+-- 'statusFilter', 'listOrganizationInsights_statusFilter' - Undocumented member.+newListOrganizationInsights ::+ -- | 'statusFilter'+ ListInsightsStatusFilter ->+ ListOrganizationInsights+newListOrganizationInsights pStatusFilter_ =+ ListOrganizationInsights'+ { accountIds =+ Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ organizationalUnitIds = Prelude.Nothing,+ statusFilter = pStatusFilter_+ }++-- | The ID of the Amazon Web Services account.+listOrganizationInsights_accountIds :: Lens.Lens' ListOrganizationInsights (Prelude.Maybe [Prelude.Text])+listOrganizationInsights_accountIds = Lens.lens (\ListOrganizationInsights' {accountIds} -> accountIds) (\s@ListOrganizationInsights' {} a -> s {accountIds = a} :: ListOrganizationInsights) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+listOrganizationInsights_maxResults :: Lens.Lens' ListOrganizationInsights (Prelude.Maybe Prelude.Natural)+listOrganizationInsights_maxResults = Lens.lens (\ListOrganizationInsights' {maxResults} -> maxResults) (\s@ListOrganizationInsights' {} a -> s {maxResults = a} :: ListOrganizationInsights)++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+listOrganizationInsights_nextToken :: Lens.Lens' ListOrganizationInsights (Prelude.Maybe Prelude.Text)+listOrganizationInsights_nextToken = Lens.lens (\ListOrganizationInsights' {nextToken} -> nextToken) (\s@ListOrganizationInsights' {} a -> s {nextToken = a} :: ListOrganizationInsights)++-- | The ID of the organizational unit.+listOrganizationInsights_organizationalUnitIds :: Lens.Lens' ListOrganizationInsights (Prelude.Maybe [Prelude.Text])+listOrganizationInsights_organizationalUnitIds = Lens.lens (\ListOrganizationInsights' {organizationalUnitIds} -> organizationalUnitIds) (\s@ListOrganizationInsights' {} a -> s {organizationalUnitIds = a} :: ListOrganizationInsights) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+listOrganizationInsights_statusFilter :: Lens.Lens' ListOrganizationInsights ListInsightsStatusFilter+listOrganizationInsights_statusFilter = Lens.lens (\ListOrganizationInsights' {statusFilter} -> statusFilter) (\s@ListOrganizationInsights' {} a -> s {statusFilter = a} :: ListOrganizationInsights)++instance Core.AWSPager ListOrganizationInsights where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listOrganizationInsightsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listOrganizationInsightsResponse_proactiveInsights+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listOrganizationInsightsResponse_reactiveInsights+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listOrganizationInsights_nextToken+ Lens..~ rs+ Lens.^? listOrganizationInsightsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListOrganizationInsights where+ type+ AWSResponse ListOrganizationInsights =+ ListOrganizationInsightsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListOrganizationInsightsResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> ( x+ Data..?> "ProactiveInsights"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> ( x+ Data..?> "ReactiveInsights"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListOrganizationInsights where+ hashWithSalt _salt ListOrganizationInsights' {..} =+ _salt+ `Prelude.hashWithSalt` accountIds+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` organizationalUnitIds+ `Prelude.hashWithSalt` statusFilter++instance Prelude.NFData ListOrganizationInsights where+ rnf ListOrganizationInsights' {..} =+ Prelude.rnf accountIds+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf organizationalUnitIds+ `Prelude.seq` Prelude.rnf statusFilter++instance Data.ToHeaders ListOrganizationInsights where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListOrganizationInsights where+ toJSON ListOrganizationInsights' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AccountIds" Data..=) Prelude.<$> accountIds,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ ("OrganizationalUnitIds" Data..=)+ Prelude.<$> organizationalUnitIds,+ Prelude.Just ("StatusFilter" Data..= statusFilter)+ ]+ )++instance Data.ToPath ListOrganizationInsights where+ toPath = Prelude.const "/organization/insights"++instance Data.ToQuery ListOrganizationInsights where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListOrganizationInsightsResponse' smart constructor.+data ListOrganizationInsightsResponse = ListOrganizationInsightsResponse'+ { -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If there are no more pages, this value is null.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | An integer that specifies the number of open proactive insights in your+ -- Amazon Web Services account.+ proactiveInsights :: Prelude.Maybe [ProactiveOrganizationInsightSummary],+ -- | An integer that specifies the number of open reactive insights in your+ -- Amazon Web Services account.+ reactiveInsights :: Prelude.Maybe [ReactiveOrganizationInsightSummary],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListOrganizationInsightsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listOrganizationInsightsResponse_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+--+-- 'proactiveInsights', 'listOrganizationInsightsResponse_proactiveInsights' - An integer that specifies the number of open proactive insights in your+-- Amazon Web Services account.+--+-- 'reactiveInsights', 'listOrganizationInsightsResponse_reactiveInsights' - An integer that specifies the number of open reactive insights in your+-- Amazon Web Services account.+--+-- 'httpStatus', 'listOrganizationInsightsResponse_httpStatus' - The response's http status code.+newListOrganizationInsightsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListOrganizationInsightsResponse+newListOrganizationInsightsResponse pHttpStatus_ =+ ListOrganizationInsightsResponse'+ { nextToken =+ Prelude.Nothing,+ proactiveInsights = Prelude.Nothing,+ reactiveInsights = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+listOrganizationInsightsResponse_nextToken :: Lens.Lens' ListOrganizationInsightsResponse (Prelude.Maybe Prelude.Text)+listOrganizationInsightsResponse_nextToken = Lens.lens (\ListOrganizationInsightsResponse' {nextToken} -> nextToken) (\s@ListOrganizationInsightsResponse' {} a -> s {nextToken = a} :: ListOrganizationInsightsResponse)++-- | An integer that specifies the number of open proactive insights in your+-- Amazon Web Services account.+listOrganizationInsightsResponse_proactiveInsights :: Lens.Lens' ListOrganizationInsightsResponse (Prelude.Maybe [ProactiveOrganizationInsightSummary])+listOrganizationInsightsResponse_proactiveInsights = Lens.lens (\ListOrganizationInsightsResponse' {proactiveInsights} -> proactiveInsights) (\s@ListOrganizationInsightsResponse' {} a -> s {proactiveInsights = a} :: ListOrganizationInsightsResponse) Prelude.. Lens.mapping Lens.coerced++-- | An integer that specifies the number of open reactive insights in your+-- Amazon Web Services account.+listOrganizationInsightsResponse_reactiveInsights :: Lens.Lens' ListOrganizationInsightsResponse (Prelude.Maybe [ReactiveOrganizationInsightSummary])+listOrganizationInsightsResponse_reactiveInsights = Lens.lens (\ListOrganizationInsightsResponse' {reactiveInsights} -> reactiveInsights) (\s@ListOrganizationInsightsResponse' {} a -> s {reactiveInsights = a} :: ListOrganizationInsightsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listOrganizationInsightsResponse_httpStatus :: Lens.Lens' ListOrganizationInsightsResponse Prelude.Int+listOrganizationInsightsResponse_httpStatus = Lens.lens (\ListOrganizationInsightsResponse' {httpStatus} -> httpStatus) (\s@ListOrganizationInsightsResponse' {} a -> s {httpStatus = a} :: ListOrganizationInsightsResponse)++instance+ Prelude.NFData+ ListOrganizationInsightsResponse+ where+ rnf ListOrganizationInsightsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf proactiveInsights+ `Prelude.seq` Prelude.rnf reactiveInsights+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DevOpsGuru/ListRecommendations.hs view
@@ -0,0 +1,255 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.ListRecommendations+-- 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 a specified insight\'s recommendations. Each+-- recommendation includes a list of related metrics and a list of related+-- events.+--+-- This operation returns paginated results.+module Amazonka.DevOpsGuru.ListRecommendations+ ( -- * Creating a Request+ ListRecommendations (..),+ newListRecommendations,++ -- * Request Lenses+ listRecommendations_accountId,+ listRecommendations_locale,+ listRecommendations_nextToken,+ listRecommendations_insightId,++ -- * Destructuring the Response+ ListRecommendationsResponse (..),+ newListRecommendationsResponse,++ -- * Response Lenses+ listRecommendationsResponse_nextToken,+ listRecommendationsResponse_recommendations,+ listRecommendationsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListRecommendations' smart constructor.+data ListRecommendations = ListRecommendations'+ { -- | The ID of the Amazon Web Services account.+ accountId :: Prelude.Maybe Prelude.Text,+ -- | A locale that specifies the language to use for recommendations.+ locale :: Prelude.Maybe Locale,+ -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If this value is null, it retrieves the first page.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The ID of the requested insight.+ insightId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRecommendations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'listRecommendations_accountId' - The ID of the Amazon Web Services account.+--+-- 'locale', 'listRecommendations_locale' - A locale that specifies the language to use for recommendations.+--+-- 'nextToken', 'listRecommendations_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+--+-- 'insightId', 'listRecommendations_insightId' - The ID of the requested insight.+newListRecommendations ::+ -- | 'insightId'+ Prelude.Text ->+ ListRecommendations+newListRecommendations pInsightId_ =+ ListRecommendations'+ { accountId = Prelude.Nothing,+ locale = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ insightId = pInsightId_+ }++-- | The ID of the Amazon Web Services account.+listRecommendations_accountId :: Lens.Lens' ListRecommendations (Prelude.Maybe Prelude.Text)+listRecommendations_accountId = Lens.lens (\ListRecommendations' {accountId} -> accountId) (\s@ListRecommendations' {} a -> s {accountId = a} :: ListRecommendations)++-- | A locale that specifies the language to use for recommendations.+listRecommendations_locale :: Lens.Lens' ListRecommendations (Prelude.Maybe Locale)+listRecommendations_locale = Lens.lens (\ListRecommendations' {locale} -> locale) (\s@ListRecommendations' {} a -> s {locale = a} :: ListRecommendations)++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+listRecommendations_nextToken :: Lens.Lens' ListRecommendations (Prelude.Maybe Prelude.Text)+listRecommendations_nextToken = Lens.lens (\ListRecommendations' {nextToken} -> nextToken) (\s@ListRecommendations' {} a -> s {nextToken = a} :: ListRecommendations)++-- | The ID of the requested insight.+listRecommendations_insightId :: Lens.Lens' ListRecommendations Prelude.Text+listRecommendations_insightId = Lens.lens (\ListRecommendations' {insightId} -> insightId) (\s@ListRecommendations' {} a -> s {insightId = a} :: ListRecommendations)++instance Core.AWSPager ListRecommendations where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listRecommendationsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listRecommendationsResponse_recommendations+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listRecommendations_nextToken+ Lens..~ rs+ Lens.^? listRecommendationsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListRecommendations where+ type+ AWSResponse ListRecommendations =+ ListRecommendationsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListRecommendationsResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> ( x+ Data..?> "Recommendations"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListRecommendations where+ hashWithSalt _salt ListRecommendations' {..} =+ _salt+ `Prelude.hashWithSalt` accountId+ `Prelude.hashWithSalt` locale+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` insightId++instance Prelude.NFData ListRecommendations where+ rnf ListRecommendations' {..} =+ Prelude.rnf accountId+ `Prelude.seq` Prelude.rnf locale+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf insightId++instance Data.ToHeaders ListRecommendations where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListRecommendations where+ toJSON ListRecommendations' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AccountId" Data..=) Prelude.<$> accountId,+ ("Locale" Data..=) Prelude.<$> locale,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just ("InsightId" Data..= insightId)+ ]+ )++instance Data.ToPath ListRecommendations where+ toPath = Prelude.const "/recommendations"++instance Data.ToQuery ListRecommendations where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListRecommendationsResponse' smart constructor.+data ListRecommendationsResponse = ListRecommendationsResponse'+ { -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If there are no more pages, this value is null.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | An array of the requested recommendations.+ recommendations :: Prelude.Maybe [Recommendation],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRecommendationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listRecommendationsResponse_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+--+-- 'recommendations', 'listRecommendationsResponse_recommendations' - An array of the requested recommendations.+--+-- 'httpStatus', 'listRecommendationsResponse_httpStatus' - The response's http status code.+newListRecommendationsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListRecommendationsResponse+newListRecommendationsResponse pHttpStatus_ =+ ListRecommendationsResponse'+ { nextToken =+ Prelude.Nothing,+ recommendations = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+listRecommendationsResponse_nextToken :: Lens.Lens' ListRecommendationsResponse (Prelude.Maybe Prelude.Text)+listRecommendationsResponse_nextToken = Lens.lens (\ListRecommendationsResponse' {nextToken} -> nextToken) (\s@ListRecommendationsResponse' {} a -> s {nextToken = a} :: ListRecommendationsResponse)++-- | An array of the requested recommendations.+listRecommendationsResponse_recommendations :: Lens.Lens' ListRecommendationsResponse (Prelude.Maybe [Recommendation])+listRecommendationsResponse_recommendations = Lens.lens (\ListRecommendationsResponse' {recommendations} -> recommendations) (\s@ListRecommendationsResponse' {} a -> s {recommendations = a} :: ListRecommendationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listRecommendationsResponse_httpStatus :: Lens.Lens' ListRecommendationsResponse Prelude.Int+listRecommendationsResponse_httpStatus = Lens.lens (\ListRecommendationsResponse' {httpStatus} -> httpStatus) (\s@ListRecommendationsResponse' {} a -> s {httpStatus = a} :: ListRecommendationsResponse)++instance Prelude.NFData ListRecommendationsResponse where+ rnf ListRecommendationsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf recommendations+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DevOpsGuru/PutFeedback.hs view
@@ -0,0 +1,149 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.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)+--+-- Collects customer feedback about the specified insight.+module Amazonka.DevOpsGuru.PutFeedback+ ( -- * Creating a Request+ PutFeedback (..),+ newPutFeedback,++ -- * Request Lenses+ putFeedback_insightFeedback,++ -- * 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.DevOpsGuru.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 feedback from customers is about the recommendations in this+ -- insight.+ insightFeedback :: Prelude.Maybe InsightFeedback+ }+ 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:+--+-- 'insightFeedback', 'putFeedback_insightFeedback' - The feedback from customers is about the recommendations in this+-- insight.+newPutFeedback ::+ PutFeedback+newPutFeedback =+ PutFeedback' {insightFeedback = Prelude.Nothing}++-- | The feedback from customers is about the recommendations in this+-- insight.+putFeedback_insightFeedback :: Lens.Lens' PutFeedback (Prelude.Maybe InsightFeedback)+putFeedback_insightFeedback = Lens.lens (\PutFeedback' {insightFeedback} -> insightFeedback) (\s@PutFeedback' {} a -> s {insightFeedback = a} :: PutFeedback)++instance Core.AWSRequest PutFeedback where+ type AWSResponse PutFeedback = PutFeedbackResponse+ request overrides =+ Request.putJSON (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` insightFeedback++instance Prelude.NFData PutFeedback where+ rnf PutFeedback' {..} = Prelude.rnf insightFeedback++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+ [ ("InsightFeedback" Data..=)+ Prelude.<$> insightFeedback+ ]+ )++instance Data.ToPath PutFeedback where+ toPath = Prelude.const "/feedback"++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/DevOpsGuru/RemoveNotificationChannel.hs view
@@ -0,0 +1,151 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.RemoveNotificationChannel+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes a notification channel from DevOps Guru. A notification channel+-- is used to notify you when DevOps Guru generates an insight that+-- contains information about how to improve your operations.+module Amazonka.DevOpsGuru.RemoveNotificationChannel+ ( -- * Creating a Request+ RemoveNotificationChannel (..),+ newRemoveNotificationChannel,++ -- * Request Lenses+ removeNotificationChannel_id,++ -- * Destructuring the Response+ RemoveNotificationChannelResponse (..),+ newRemoveNotificationChannelResponse,++ -- * Response Lenses+ removeNotificationChannelResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newRemoveNotificationChannel' smart constructor.+data RemoveNotificationChannel = RemoveNotificationChannel'+ { -- | The ID of the notification channel to be removed.+ id :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveNotificationChannel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'removeNotificationChannel_id' - The ID of the notification channel to be removed.+newRemoveNotificationChannel ::+ -- | 'id'+ Prelude.Text ->+ RemoveNotificationChannel+newRemoveNotificationChannel pId_ =+ RemoveNotificationChannel' {id = pId_}++-- | The ID of the notification channel to be removed.+removeNotificationChannel_id :: Lens.Lens' RemoveNotificationChannel Prelude.Text+removeNotificationChannel_id = Lens.lens (\RemoveNotificationChannel' {id} -> id) (\s@RemoveNotificationChannel' {} a -> s {id = a} :: RemoveNotificationChannel)++instance Core.AWSRequest RemoveNotificationChannel where+ type+ AWSResponse RemoveNotificationChannel =+ RemoveNotificationChannelResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ RemoveNotificationChannelResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable RemoveNotificationChannel where+ hashWithSalt _salt RemoveNotificationChannel' {..} =+ _salt `Prelude.hashWithSalt` id++instance Prelude.NFData RemoveNotificationChannel where+ rnf RemoveNotificationChannel' {..} = Prelude.rnf id++instance Data.ToHeaders RemoveNotificationChannel where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath RemoveNotificationChannel where+ toPath RemoveNotificationChannel' {..} =+ Prelude.mconcat ["/channels/", Data.toBS id]++instance Data.ToQuery RemoveNotificationChannel where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newRemoveNotificationChannelResponse' smart constructor.+data RemoveNotificationChannelResponse = RemoveNotificationChannelResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveNotificationChannelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'removeNotificationChannelResponse_httpStatus' - The response's http status code.+newRemoveNotificationChannelResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ RemoveNotificationChannelResponse+newRemoveNotificationChannelResponse pHttpStatus_ =+ RemoveNotificationChannelResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+removeNotificationChannelResponse_httpStatus :: Lens.Lens' RemoveNotificationChannelResponse Prelude.Int+removeNotificationChannelResponse_httpStatus = Lens.lens (\RemoveNotificationChannelResponse' {httpStatus} -> httpStatus) (\s@RemoveNotificationChannelResponse' {} a -> s {httpStatus = a} :: RemoveNotificationChannelResponse)++instance+ Prelude.NFData+ RemoveNotificationChannelResponse+ where+ rnf RemoveNotificationChannelResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/DevOpsGuru/SearchInsights.hs view
@@ -0,0 +1,309 @@+{-# 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.DevOpsGuru.SearchInsights+-- 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 insights in your Amazon Web Services account. You can+-- specify which insights are returned by their start time, one or more+-- statuses (@ONGOING@ or @CLOSED@), one or more severities (@LOW@,+-- @MEDIUM@, and @HIGH@), and type (@REACTIVE@ or @PROACTIVE@).+--+-- Use the @Filters@ parameter to specify status and severity search+-- parameters. Use the @Type@ parameter to specify @REACTIVE@ or+-- @PROACTIVE@ in your search.+--+-- This operation returns paginated results.+module Amazonka.DevOpsGuru.SearchInsights+ ( -- * Creating a Request+ SearchInsights (..),+ newSearchInsights,++ -- * Request Lenses+ searchInsights_filters,+ searchInsights_maxResults,+ searchInsights_nextToken,+ searchInsights_startTimeRange,+ searchInsights_type,++ -- * Destructuring the Response+ SearchInsightsResponse (..),+ newSearchInsightsResponse,++ -- * Response Lenses+ searchInsightsResponse_nextToken,+ searchInsightsResponse_proactiveInsights,+ searchInsightsResponse_reactiveInsights,+ searchInsightsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newSearchInsights' smart constructor.+data SearchInsights = SearchInsights'+ { -- | A @SearchInsightsFilters@ object that is used to set the severity and+ -- status filters on your insight search.+ filters :: Prelude.Maybe SearchInsightsFilters,+ -- | The maximum number of results to return with a single call. To retrieve+ -- the remaining results, make another call with the returned @nextToken@+ -- value.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If this value is null, it retrieves the first page.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The start of the time range passed in. Returned insights occurred after+ -- this time.+ startTimeRange :: StartTimeRange,+ -- | The type of insights you are searching for (@REACTIVE@ or @PROACTIVE@).+ type' :: InsightType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SearchInsights' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'searchInsights_filters' - A @SearchInsightsFilters@ object that is used to set the severity and+-- status filters on your insight search.+--+-- 'maxResults', 'searchInsights_maxResults' - The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+--+-- 'nextToken', 'searchInsights_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+--+-- 'startTimeRange', 'searchInsights_startTimeRange' - The start of the time range passed in. Returned insights occurred after+-- this time.+--+-- 'type'', 'searchInsights_type' - The type of insights you are searching for (@REACTIVE@ or @PROACTIVE@).+newSearchInsights ::+ -- | 'startTimeRange'+ StartTimeRange ->+ -- | 'type''+ InsightType ->+ SearchInsights+newSearchInsights pStartTimeRange_ pType_ =+ SearchInsights'+ { filters = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ startTimeRange = pStartTimeRange_,+ type' = pType_+ }++-- | A @SearchInsightsFilters@ object that is used to set the severity and+-- status filters on your insight search.+searchInsights_filters :: Lens.Lens' SearchInsights (Prelude.Maybe SearchInsightsFilters)+searchInsights_filters = Lens.lens (\SearchInsights' {filters} -> filters) (\s@SearchInsights' {} a -> s {filters = a} :: SearchInsights)++-- | The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+searchInsights_maxResults :: Lens.Lens' SearchInsights (Prelude.Maybe Prelude.Natural)+searchInsights_maxResults = Lens.lens (\SearchInsights' {maxResults} -> maxResults) (\s@SearchInsights' {} a -> s {maxResults = a} :: SearchInsights)++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+searchInsights_nextToken :: Lens.Lens' SearchInsights (Prelude.Maybe Prelude.Text)+searchInsights_nextToken = Lens.lens (\SearchInsights' {nextToken} -> nextToken) (\s@SearchInsights' {} a -> s {nextToken = a} :: SearchInsights)++-- | The start of the time range passed in. Returned insights occurred after+-- this time.+searchInsights_startTimeRange :: Lens.Lens' SearchInsights StartTimeRange+searchInsights_startTimeRange = Lens.lens (\SearchInsights' {startTimeRange} -> startTimeRange) (\s@SearchInsights' {} a -> s {startTimeRange = a} :: SearchInsights)++-- | The type of insights you are searching for (@REACTIVE@ or @PROACTIVE@).+searchInsights_type :: Lens.Lens' SearchInsights InsightType+searchInsights_type = Lens.lens (\SearchInsights' {type'} -> type') (\s@SearchInsights' {} a -> s {type' = a} :: SearchInsights)++instance Core.AWSPager SearchInsights where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? searchInsightsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? searchInsightsResponse_proactiveInsights+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? searchInsightsResponse_reactiveInsights+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& searchInsights_nextToken+ Lens..~ rs+ Lens.^? searchInsightsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest SearchInsights where+ type+ AWSResponse SearchInsights =+ SearchInsightsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ SearchInsightsResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> ( x+ Data..?> "ProactiveInsights"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> ( x+ Data..?> "ReactiveInsights"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable SearchInsights where+ hashWithSalt _salt SearchInsights' {..} =+ _salt+ `Prelude.hashWithSalt` filters+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` startTimeRange+ `Prelude.hashWithSalt` type'++instance Prelude.NFData SearchInsights where+ rnf SearchInsights' {..} =+ Prelude.rnf filters+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf startTimeRange+ `Prelude.seq` Prelude.rnf type'++instance Data.ToHeaders SearchInsights where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON SearchInsights where+ toJSON SearchInsights' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Filters" Data..=) Prelude.<$> filters,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just+ ("StartTimeRange" Data..= startTimeRange),+ Prelude.Just ("Type" Data..= type')+ ]+ )++instance Data.ToPath SearchInsights where+ toPath = Prelude.const "/insights/search"++instance Data.ToQuery SearchInsights where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newSearchInsightsResponse' smart constructor.+data SearchInsightsResponse = SearchInsightsResponse'+ { -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If there are no more pages, this value is null.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The returned proactive insights.+ proactiveInsights :: Prelude.Maybe [ProactiveInsightSummary],+ -- | The returned reactive insights.+ reactiveInsights :: Prelude.Maybe [ReactiveInsightSummary],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SearchInsightsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'searchInsightsResponse_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+--+-- 'proactiveInsights', 'searchInsightsResponse_proactiveInsights' - The returned proactive insights.+--+-- 'reactiveInsights', 'searchInsightsResponse_reactiveInsights' - The returned reactive insights.+--+-- 'httpStatus', 'searchInsightsResponse_httpStatus' - The response's http status code.+newSearchInsightsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ SearchInsightsResponse+newSearchInsightsResponse pHttpStatus_ =+ SearchInsightsResponse'+ { nextToken =+ Prelude.Nothing,+ proactiveInsights = Prelude.Nothing,+ reactiveInsights = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+searchInsightsResponse_nextToken :: Lens.Lens' SearchInsightsResponse (Prelude.Maybe Prelude.Text)+searchInsightsResponse_nextToken = Lens.lens (\SearchInsightsResponse' {nextToken} -> nextToken) (\s@SearchInsightsResponse' {} a -> s {nextToken = a} :: SearchInsightsResponse)++-- | The returned proactive insights.+searchInsightsResponse_proactiveInsights :: Lens.Lens' SearchInsightsResponse (Prelude.Maybe [ProactiveInsightSummary])+searchInsightsResponse_proactiveInsights = Lens.lens (\SearchInsightsResponse' {proactiveInsights} -> proactiveInsights) (\s@SearchInsightsResponse' {} a -> s {proactiveInsights = a} :: SearchInsightsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The returned reactive insights.+searchInsightsResponse_reactiveInsights :: Lens.Lens' SearchInsightsResponse (Prelude.Maybe [ReactiveInsightSummary])+searchInsightsResponse_reactiveInsights = Lens.lens (\SearchInsightsResponse' {reactiveInsights} -> reactiveInsights) (\s@SearchInsightsResponse' {} a -> s {reactiveInsights = a} :: SearchInsightsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+searchInsightsResponse_httpStatus :: Lens.Lens' SearchInsightsResponse Prelude.Int+searchInsightsResponse_httpStatus = Lens.lens (\SearchInsightsResponse' {httpStatus} -> httpStatus) (\s@SearchInsightsResponse' {} a -> s {httpStatus = a} :: SearchInsightsResponse)++instance Prelude.NFData SearchInsightsResponse where+ rnf SearchInsightsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf proactiveInsights+ `Prelude.seq` Prelude.rnf reactiveInsights+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DevOpsGuru/SearchOrganizationInsights.hs view
@@ -0,0 +1,334 @@+{-# 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.DevOpsGuru.SearchOrganizationInsights+-- 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 insights in your organization. You can specify which+-- insights are returned by their start time, one or more statuses+-- (@ONGOING@, @CLOSED@, and @CLOSED@), one or more severities (@LOW@,+-- @MEDIUM@, and @HIGH@), and type (@REACTIVE@ or @PROACTIVE@).+--+-- Use the @Filters@ parameter to specify status and severity search+-- parameters. Use the @Type@ parameter to specify @REACTIVE@ or+-- @PROACTIVE@ in your search.+--+-- This operation returns paginated results.+module Amazonka.DevOpsGuru.SearchOrganizationInsights+ ( -- * Creating a Request+ SearchOrganizationInsights (..),+ newSearchOrganizationInsights,++ -- * Request Lenses+ searchOrganizationInsights_filters,+ searchOrganizationInsights_maxResults,+ searchOrganizationInsights_nextToken,+ searchOrganizationInsights_accountIds,+ searchOrganizationInsights_startTimeRange,+ searchOrganizationInsights_type,++ -- * Destructuring the Response+ SearchOrganizationInsightsResponse (..),+ newSearchOrganizationInsightsResponse,++ -- * Response Lenses+ searchOrganizationInsightsResponse_nextToken,+ searchOrganizationInsightsResponse_proactiveInsights,+ searchOrganizationInsightsResponse_reactiveInsights,+ searchOrganizationInsightsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newSearchOrganizationInsights' smart constructor.+data SearchOrganizationInsights = SearchOrganizationInsights'+ { -- | A @SearchOrganizationInsightsFilters@ object that is used to set the+ -- severity and status filters on your insight search.+ filters :: Prelude.Maybe SearchOrganizationInsightsFilters,+ -- | The maximum number of results to return with a single call. To retrieve+ -- the remaining results, make another call with the returned @nextToken@+ -- value.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If this value is null, it retrieves the first page.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The ID of the Amazon Web Services account.+ accountIds :: Prelude.NonEmpty Prelude.Text,+ startTimeRange :: StartTimeRange,+ -- | The type of insights you are searching for (@REACTIVE@ or @PROACTIVE@).+ type' :: InsightType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SearchOrganizationInsights' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'searchOrganizationInsights_filters' - A @SearchOrganizationInsightsFilters@ object that is used to set the+-- severity and status filters on your insight search.+--+-- 'maxResults', 'searchOrganizationInsights_maxResults' - The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+--+-- 'nextToken', 'searchOrganizationInsights_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+--+-- 'accountIds', 'searchOrganizationInsights_accountIds' - The ID of the Amazon Web Services account.+--+-- 'startTimeRange', 'searchOrganizationInsights_startTimeRange' - Undocumented member.+--+-- 'type'', 'searchOrganizationInsights_type' - The type of insights you are searching for (@REACTIVE@ or @PROACTIVE@).+newSearchOrganizationInsights ::+ -- | 'accountIds'+ Prelude.NonEmpty Prelude.Text ->+ -- | 'startTimeRange'+ StartTimeRange ->+ -- | 'type''+ InsightType ->+ SearchOrganizationInsights+newSearchOrganizationInsights+ pAccountIds_+ pStartTimeRange_+ pType_ =+ SearchOrganizationInsights'+ { filters =+ Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ accountIds = Lens.coerced Lens.# pAccountIds_,+ startTimeRange = pStartTimeRange_,+ type' = pType_+ }++-- | A @SearchOrganizationInsightsFilters@ object that is used to set the+-- severity and status filters on your insight search.+searchOrganizationInsights_filters :: Lens.Lens' SearchOrganizationInsights (Prelude.Maybe SearchOrganizationInsightsFilters)+searchOrganizationInsights_filters = Lens.lens (\SearchOrganizationInsights' {filters} -> filters) (\s@SearchOrganizationInsights' {} a -> s {filters = a} :: SearchOrganizationInsights)++-- | The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+searchOrganizationInsights_maxResults :: Lens.Lens' SearchOrganizationInsights (Prelude.Maybe Prelude.Natural)+searchOrganizationInsights_maxResults = Lens.lens (\SearchOrganizationInsights' {maxResults} -> maxResults) (\s@SearchOrganizationInsights' {} a -> s {maxResults = a} :: SearchOrganizationInsights)++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If this value is null, it retrieves the first page.+searchOrganizationInsights_nextToken :: Lens.Lens' SearchOrganizationInsights (Prelude.Maybe Prelude.Text)+searchOrganizationInsights_nextToken = Lens.lens (\SearchOrganizationInsights' {nextToken} -> nextToken) (\s@SearchOrganizationInsights' {} a -> s {nextToken = a} :: SearchOrganizationInsights)++-- | The ID of the Amazon Web Services account.+searchOrganizationInsights_accountIds :: Lens.Lens' SearchOrganizationInsights (Prelude.NonEmpty Prelude.Text)+searchOrganizationInsights_accountIds = Lens.lens (\SearchOrganizationInsights' {accountIds} -> accountIds) (\s@SearchOrganizationInsights' {} a -> s {accountIds = a} :: SearchOrganizationInsights) Prelude.. Lens.coerced++-- | Undocumented member.+searchOrganizationInsights_startTimeRange :: Lens.Lens' SearchOrganizationInsights StartTimeRange+searchOrganizationInsights_startTimeRange = Lens.lens (\SearchOrganizationInsights' {startTimeRange} -> startTimeRange) (\s@SearchOrganizationInsights' {} a -> s {startTimeRange = a} :: SearchOrganizationInsights)++-- | The type of insights you are searching for (@REACTIVE@ or @PROACTIVE@).+searchOrganizationInsights_type :: Lens.Lens' SearchOrganizationInsights InsightType+searchOrganizationInsights_type = Lens.lens (\SearchOrganizationInsights' {type'} -> type') (\s@SearchOrganizationInsights' {} a -> s {type' = a} :: SearchOrganizationInsights)++instance Core.AWSPager SearchOrganizationInsights where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? searchOrganizationInsightsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? searchOrganizationInsightsResponse_proactiveInsights+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? searchOrganizationInsightsResponse_reactiveInsights+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& searchOrganizationInsights_nextToken+ Lens..~ rs+ Lens.^? searchOrganizationInsightsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest SearchOrganizationInsights where+ type+ AWSResponse SearchOrganizationInsights =+ SearchOrganizationInsightsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ SearchOrganizationInsightsResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> ( x+ Data..?> "ProactiveInsights"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> ( x+ Data..?> "ReactiveInsights"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable SearchOrganizationInsights where+ hashWithSalt _salt SearchOrganizationInsights' {..} =+ _salt+ `Prelude.hashWithSalt` filters+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` accountIds+ `Prelude.hashWithSalt` startTimeRange+ `Prelude.hashWithSalt` type'++instance Prelude.NFData SearchOrganizationInsights where+ rnf SearchOrganizationInsights' {..} =+ Prelude.rnf filters+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf accountIds+ `Prelude.seq` Prelude.rnf startTimeRange+ `Prelude.seq` Prelude.rnf type'++instance Data.ToHeaders SearchOrganizationInsights where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON SearchOrganizationInsights where+ toJSON SearchOrganizationInsights' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Filters" Data..=) Prelude.<$> filters,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just ("AccountIds" Data..= accountIds),+ Prelude.Just+ ("StartTimeRange" Data..= startTimeRange),+ Prelude.Just ("Type" Data..= type')+ ]+ )++instance Data.ToPath SearchOrganizationInsights where+ toPath =+ Prelude.const "/organization/insights/search"++instance Data.ToQuery SearchOrganizationInsights where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newSearchOrganizationInsightsResponse' smart constructor.+data SearchOrganizationInsightsResponse = SearchOrganizationInsightsResponse'+ { -- | The pagination token to use to retrieve the next page of results for+ -- this operation. If there are no more pages, this value is null.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | An integer that specifies the number of open proactive insights in your+ -- Amazon Web Services account.+ proactiveInsights :: Prelude.Maybe [ProactiveInsightSummary],+ -- | An integer that specifies the number of open reactive insights in your+ -- Amazon Web Services account.+ reactiveInsights :: Prelude.Maybe [ReactiveInsightSummary],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SearchOrganizationInsightsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'searchOrganizationInsightsResponse_nextToken' - The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+--+-- 'proactiveInsights', 'searchOrganizationInsightsResponse_proactiveInsights' - An integer that specifies the number of open proactive insights in your+-- Amazon Web Services account.+--+-- 'reactiveInsights', 'searchOrganizationInsightsResponse_reactiveInsights' - An integer that specifies the number of open reactive insights in your+-- Amazon Web Services account.+--+-- 'httpStatus', 'searchOrganizationInsightsResponse_httpStatus' - The response's http status code.+newSearchOrganizationInsightsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ SearchOrganizationInsightsResponse+newSearchOrganizationInsightsResponse pHttpStatus_ =+ SearchOrganizationInsightsResponse'+ { nextToken =+ Prelude.Nothing,+ proactiveInsights = Prelude.Nothing,+ reactiveInsights = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The pagination token to use to retrieve the next page of results for+-- this operation. If there are no more pages, this value is null.+searchOrganizationInsightsResponse_nextToken :: Lens.Lens' SearchOrganizationInsightsResponse (Prelude.Maybe Prelude.Text)+searchOrganizationInsightsResponse_nextToken = Lens.lens (\SearchOrganizationInsightsResponse' {nextToken} -> nextToken) (\s@SearchOrganizationInsightsResponse' {} a -> s {nextToken = a} :: SearchOrganizationInsightsResponse)++-- | An integer that specifies the number of open proactive insights in your+-- Amazon Web Services account.+searchOrganizationInsightsResponse_proactiveInsights :: Lens.Lens' SearchOrganizationInsightsResponse (Prelude.Maybe [ProactiveInsightSummary])+searchOrganizationInsightsResponse_proactiveInsights = Lens.lens (\SearchOrganizationInsightsResponse' {proactiveInsights} -> proactiveInsights) (\s@SearchOrganizationInsightsResponse' {} a -> s {proactiveInsights = a} :: SearchOrganizationInsightsResponse) Prelude.. Lens.mapping Lens.coerced++-- | An integer that specifies the number of open reactive insights in your+-- Amazon Web Services account.+searchOrganizationInsightsResponse_reactiveInsights :: Lens.Lens' SearchOrganizationInsightsResponse (Prelude.Maybe [ReactiveInsightSummary])+searchOrganizationInsightsResponse_reactiveInsights = Lens.lens (\SearchOrganizationInsightsResponse' {reactiveInsights} -> reactiveInsights) (\s@SearchOrganizationInsightsResponse' {} a -> s {reactiveInsights = a} :: SearchOrganizationInsightsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+searchOrganizationInsightsResponse_httpStatus :: Lens.Lens' SearchOrganizationInsightsResponse Prelude.Int+searchOrganizationInsightsResponse_httpStatus = Lens.lens (\SearchOrganizationInsightsResponse' {httpStatus} -> httpStatus) (\s@SearchOrganizationInsightsResponse' {} a -> s {httpStatus = a} :: SearchOrganizationInsightsResponse)++instance+ Prelude.NFData+ SearchOrganizationInsightsResponse+ where+ rnf SearchOrganizationInsightsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf proactiveInsights+ `Prelude.seq` Prelude.rnf reactiveInsights+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DevOpsGuru/StartCostEstimation.hs view
@@ -0,0 +1,175 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.StartCostEstimation+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Starts the creation of an estimate of the monthly cost to analyze your+-- Amazon Web Services resources.+module Amazonka.DevOpsGuru.StartCostEstimation+ ( -- * Creating a Request+ StartCostEstimation (..),+ newStartCostEstimation,++ -- * Request Lenses+ startCostEstimation_clientToken,+ startCostEstimation_resourceCollection,++ -- * Destructuring the Response+ StartCostEstimationResponse (..),+ newStartCostEstimationResponse,++ -- * Response Lenses+ startCostEstimationResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartCostEstimation' smart constructor.+data StartCostEstimation = StartCostEstimation'+ { -- | The idempotency token used to identify each cost estimate request.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The collection of Amazon Web Services resources used to create a monthly+ -- DevOps Guru cost estimate.+ resourceCollection :: CostEstimationResourceCollectionFilter+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartCostEstimation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'startCostEstimation_clientToken' - The idempotency token used to identify each cost estimate request.+--+-- 'resourceCollection', 'startCostEstimation_resourceCollection' - The collection of Amazon Web Services resources used to create a monthly+-- DevOps Guru cost estimate.+newStartCostEstimation ::+ -- | 'resourceCollection'+ CostEstimationResourceCollectionFilter ->+ StartCostEstimation+newStartCostEstimation pResourceCollection_ =+ StartCostEstimation'+ { clientToken = Prelude.Nothing,+ resourceCollection = pResourceCollection_+ }++-- | The idempotency token used to identify each cost estimate request.+startCostEstimation_clientToken :: Lens.Lens' StartCostEstimation (Prelude.Maybe Prelude.Text)+startCostEstimation_clientToken = Lens.lens (\StartCostEstimation' {clientToken} -> clientToken) (\s@StartCostEstimation' {} a -> s {clientToken = a} :: StartCostEstimation)++-- | The collection of Amazon Web Services resources used to create a monthly+-- DevOps Guru cost estimate.+startCostEstimation_resourceCollection :: Lens.Lens' StartCostEstimation CostEstimationResourceCollectionFilter+startCostEstimation_resourceCollection = Lens.lens (\StartCostEstimation' {resourceCollection} -> resourceCollection) (\s@StartCostEstimation' {} a -> s {resourceCollection = a} :: StartCostEstimation)++instance Core.AWSRequest StartCostEstimation where+ type+ AWSResponse StartCostEstimation =+ StartCostEstimationResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ StartCostEstimationResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable StartCostEstimation where+ hashWithSalt _salt StartCostEstimation' {..} =+ _salt+ `Prelude.hashWithSalt` clientToken+ `Prelude.hashWithSalt` resourceCollection++instance Prelude.NFData StartCostEstimation where+ rnf StartCostEstimation' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf resourceCollection++instance Data.ToHeaders StartCostEstimation where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON StartCostEstimation where+ toJSON StartCostEstimation' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ClientToken" Data..=) Prelude.<$> clientToken,+ Prelude.Just+ ("ResourceCollection" Data..= resourceCollection)+ ]+ )++instance Data.ToPath StartCostEstimation where+ toPath = Prelude.const "/cost-estimation"++instance Data.ToQuery StartCostEstimation where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartCostEstimationResponse' smart constructor.+data StartCostEstimationResponse = StartCostEstimationResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartCostEstimationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'startCostEstimationResponse_httpStatus' - The response's http status code.+newStartCostEstimationResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ StartCostEstimationResponse+newStartCostEstimationResponse pHttpStatus_ =+ StartCostEstimationResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+startCostEstimationResponse_httpStatus :: Lens.Lens' StartCostEstimationResponse Prelude.Int+startCostEstimationResponse_httpStatus = Lens.lens (\StartCostEstimationResponse' {httpStatus} -> httpStatus) (\s@StartCostEstimationResponse' {} a -> s {httpStatus = a} :: StartCostEstimationResponse)++instance Prelude.NFData StartCostEstimationResponse where+ rnf StartCostEstimationResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/DevOpsGuru/Types.hs view
@@ -0,0 +1,999 @@+{-# 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.DevOpsGuru.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.DevOpsGuru.Types+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ _AccessDeniedException,+ _ConflictException,+ _InternalServerException,+ _ResourceNotFoundException,+ _ServiceQuotaExceededException,+ _ThrottlingException,+ _ValidationException,++ -- * AnomalySeverity+ AnomalySeverity (..),++ -- * AnomalyStatus+ AnomalyStatus (..),++ -- * AnomalyType+ AnomalyType (..),++ -- * CloudWatchMetricDataStatusCode+ CloudWatchMetricDataStatusCode (..),++ -- * CloudWatchMetricsStat+ CloudWatchMetricsStat (..),++ -- * CostEstimationServiceResourceState+ CostEstimationServiceResourceState (..),++ -- * CostEstimationStatus+ CostEstimationStatus (..),++ -- * EventClass+ EventClass (..),++ -- * EventDataSource+ EventDataSource (..),++ -- * EventSourceOptInStatus+ EventSourceOptInStatus (..),++ -- * InsightFeedbackOption+ InsightFeedbackOption (..),++ -- * InsightSeverity+ InsightSeverity (..),++ -- * InsightStatus+ InsightStatus (..),++ -- * InsightType+ InsightType (..),++ -- * Locale+ Locale (..),++ -- * LogAnomalyType+ LogAnomalyType (..),++ -- * NotificationMessageType+ NotificationMessageType (..),++ -- * OptInStatus+ OptInStatus (..),++ -- * OrganizationResourceCollectionType+ OrganizationResourceCollectionType (..),++ -- * ResourceCollectionType+ ResourceCollectionType (..),++ -- * ResourcePermission+ ResourcePermission (..),++ -- * ResourceTypeFilter+ ResourceTypeFilter (..),++ -- * ServiceName+ ServiceName (..),++ -- * UpdateResourceCollectionAction+ UpdateResourceCollectionAction (..),++ -- * AccountHealth+ AccountHealth (..),+ newAccountHealth,+ accountHealth_accountId,+ accountHealth_insight,++ -- * AccountInsightHealth+ AccountInsightHealth (..),+ newAccountInsightHealth,+ accountInsightHealth_openProactiveInsights,+ accountInsightHealth_openReactiveInsights,++ -- * AmazonCodeGuruProfilerIntegration+ AmazonCodeGuruProfilerIntegration (..),+ newAmazonCodeGuruProfilerIntegration,+ amazonCodeGuruProfilerIntegration_status,++ -- * AnomalousLogGroup+ AnomalousLogGroup (..),+ newAnomalousLogGroup,+ anomalousLogGroup_impactEndTime,+ anomalousLogGroup_impactStartTime,+ anomalousLogGroup_logAnomalyShowcases,+ anomalousLogGroup_logGroupName,+ anomalousLogGroup_numberOfLogLinesScanned,++ -- * AnomalyReportedTimeRange+ AnomalyReportedTimeRange (..),+ newAnomalyReportedTimeRange,+ anomalyReportedTimeRange_closeTime,+ anomalyReportedTimeRange_openTime,++ -- * AnomalyResource+ AnomalyResource (..),+ newAnomalyResource,+ anomalyResource_name,+ anomalyResource_type,++ -- * AnomalySourceDetails+ AnomalySourceDetails (..),+ newAnomalySourceDetails,+ anomalySourceDetails_cloudWatchMetrics,+ anomalySourceDetails_performanceInsightsMetrics,++ -- * AnomalySourceMetadata+ AnomalySourceMetadata (..),+ newAnomalySourceMetadata,+ anomalySourceMetadata_source,+ anomalySourceMetadata_sourceResourceName,+ anomalySourceMetadata_sourceResourceType,++ -- * AnomalyTimeRange+ AnomalyTimeRange (..),+ newAnomalyTimeRange,+ anomalyTimeRange_endTime,+ anomalyTimeRange_startTime,++ -- * CloudFormationCollection+ CloudFormationCollection (..),+ newCloudFormationCollection,+ cloudFormationCollection_stackNames,++ -- * CloudFormationCollectionFilter+ CloudFormationCollectionFilter (..),+ newCloudFormationCollectionFilter,+ cloudFormationCollectionFilter_stackNames,++ -- * CloudFormationCostEstimationResourceCollectionFilter+ CloudFormationCostEstimationResourceCollectionFilter (..),+ newCloudFormationCostEstimationResourceCollectionFilter,+ cloudFormationCostEstimationResourceCollectionFilter_stackNames,++ -- * CloudFormationHealth+ CloudFormationHealth (..),+ newCloudFormationHealth,+ cloudFormationHealth_analyzedResourceCount,+ cloudFormationHealth_insight,+ cloudFormationHealth_stackName,++ -- * CloudWatchMetricsDataSummary+ CloudWatchMetricsDataSummary (..),+ newCloudWatchMetricsDataSummary,+ cloudWatchMetricsDataSummary_statusCode,+ cloudWatchMetricsDataSummary_timestampMetricValuePairList,++ -- * CloudWatchMetricsDetail+ CloudWatchMetricsDetail (..),+ newCloudWatchMetricsDetail,+ cloudWatchMetricsDetail_dimensions,+ cloudWatchMetricsDetail_metricDataSummary,+ cloudWatchMetricsDetail_metricName,+ cloudWatchMetricsDetail_namespace,+ cloudWatchMetricsDetail_period,+ cloudWatchMetricsDetail_stat,+ cloudWatchMetricsDetail_unit,++ -- * CloudWatchMetricsDimension+ CloudWatchMetricsDimension (..),+ newCloudWatchMetricsDimension,+ cloudWatchMetricsDimension_name,+ cloudWatchMetricsDimension_value,++ -- * CostEstimationResourceCollectionFilter+ CostEstimationResourceCollectionFilter (..),+ newCostEstimationResourceCollectionFilter,+ costEstimationResourceCollectionFilter_cloudFormation,+ costEstimationResourceCollectionFilter_tags,++ -- * CostEstimationTimeRange+ CostEstimationTimeRange (..),+ newCostEstimationTimeRange,+ costEstimationTimeRange_endTime,+ costEstimationTimeRange_startTime,++ -- * EndTimeRange+ EndTimeRange (..),+ newEndTimeRange,+ endTimeRange_fromTime,+ endTimeRange_toTime,++ -- * Event+ Event (..),+ newEvent,+ event_dataSource,+ event_eventClass,+ event_eventSource,+ event_id,+ event_name,+ event_resourceCollection,+ event_resources,+ event_time,++ -- * EventResource+ EventResource (..),+ newEventResource,+ eventResource_arn,+ eventResource_name,+ eventResource_type,++ -- * EventSourcesConfig+ EventSourcesConfig (..),+ newEventSourcesConfig,+ eventSourcesConfig_amazonCodeGuruProfiler,++ -- * EventTimeRange+ EventTimeRange (..),+ newEventTimeRange,+ eventTimeRange_fromTime,+ eventTimeRange_toTime,++ -- * InsightFeedback+ InsightFeedback (..),+ newInsightFeedback,+ insightFeedback_feedback,+ insightFeedback_id,++ -- * InsightHealth+ InsightHealth (..),+ newInsightHealth,+ insightHealth_meanTimeToRecoverInMilliseconds,+ insightHealth_openProactiveInsights,+ insightHealth_openReactiveInsights,++ -- * InsightTimeRange+ InsightTimeRange (..),+ newInsightTimeRange,+ insightTimeRange_endTime,+ insightTimeRange_startTime,++ -- * ListEventsFilters+ ListEventsFilters (..),+ newListEventsFilters,+ listEventsFilters_dataSource,+ listEventsFilters_eventClass,+ listEventsFilters_eventSource,+ listEventsFilters_eventTimeRange,+ listEventsFilters_insightId,+ listEventsFilters_resourceCollection,++ -- * ListInsightsAnyStatusFilter+ ListInsightsAnyStatusFilter (..),+ newListInsightsAnyStatusFilter,+ listInsightsAnyStatusFilter_type,+ listInsightsAnyStatusFilter_startTimeRange,++ -- * ListInsightsClosedStatusFilter+ ListInsightsClosedStatusFilter (..),+ newListInsightsClosedStatusFilter,+ listInsightsClosedStatusFilter_type,+ listInsightsClosedStatusFilter_endTimeRange,++ -- * ListInsightsOngoingStatusFilter+ ListInsightsOngoingStatusFilter (..),+ newListInsightsOngoingStatusFilter,+ listInsightsOngoingStatusFilter_type,++ -- * ListInsightsStatusFilter+ ListInsightsStatusFilter (..),+ newListInsightsStatusFilter,+ listInsightsStatusFilter_any,+ listInsightsStatusFilter_closed,+ listInsightsStatusFilter_ongoing,++ -- * ListMonitoredResourcesFilters+ ListMonitoredResourcesFilters (..),+ newListMonitoredResourcesFilters,+ listMonitoredResourcesFilters_resourcePermission,+ listMonitoredResourcesFilters_resourceTypeFilters,++ -- * LogAnomalyClass+ LogAnomalyClass (..),+ newLogAnomalyClass,+ logAnomalyClass_explanation,+ logAnomalyClass_logAnomalyToken,+ logAnomalyClass_logAnomalyType,+ logAnomalyClass_logEventId,+ logAnomalyClass_logEventTimestamp,+ logAnomalyClass_logStreamName,+ logAnomalyClass_numberOfLogLinesOccurrences,++ -- * LogAnomalyShowcase+ LogAnomalyShowcase (..),+ newLogAnomalyShowcase,+ logAnomalyShowcase_logAnomalyClasses,++ -- * LogsAnomalyDetectionIntegration+ LogsAnomalyDetectionIntegration (..),+ newLogsAnomalyDetectionIntegration,+ logsAnomalyDetectionIntegration_optInStatus,++ -- * LogsAnomalyDetectionIntegrationConfig+ LogsAnomalyDetectionIntegrationConfig (..),+ newLogsAnomalyDetectionIntegrationConfig,+ logsAnomalyDetectionIntegrationConfig_optInStatus,++ -- * MonitoredResourceIdentifier+ MonitoredResourceIdentifier (..),+ newMonitoredResourceIdentifier,+ monitoredResourceIdentifier_lastUpdated,+ monitoredResourceIdentifier_monitoredResourceName,+ monitoredResourceIdentifier_resourceCollection,+ monitoredResourceIdentifier_resourcePermission,+ monitoredResourceIdentifier_type,++ -- * NotificationChannel+ NotificationChannel (..),+ newNotificationChannel,+ notificationChannel_config,+ notificationChannel_id,++ -- * NotificationChannelConfig+ NotificationChannelConfig (..),+ newNotificationChannelConfig,+ notificationChannelConfig_filters,+ notificationChannelConfig_sns,++ -- * NotificationFilterConfig+ NotificationFilterConfig (..),+ newNotificationFilterConfig,+ notificationFilterConfig_messageTypes,+ notificationFilterConfig_severities,++ -- * OpsCenterIntegration+ OpsCenterIntegration (..),+ newOpsCenterIntegration,+ opsCenterIntegration_optInStatus,++ -- * OpsCenterIntegrationConfig+ OpsCenterIntegrationConfig (..),+ newOpsCenterIntegrationConfig,+ opsCenterIntegrationConfig_optInStatus,++ -- * PerformanceInsightsMetricDimensionGroup+ PerformanceInsightsMetricDimensionGroup (..),+ newPerformanceInsightsMetricDimensionGroup,+ performanceInsightsMetricDimensionGroup_dimensions,+ performanceInsightsMetricDimensionGroup_group,+ performanceInsightsMetricDimensionGroup_limit,++ -- * PerformanceInsightsMetricQuery+ PerformanceInsightsMetricQuery (..),+ newPerformanceInsightsMetricQuery,+ performanceInsightsMetricQuery_filter,+ performanceInsightsMetricQuery_groupBy,+ performanceInsightsMetricQuery_metric,++ -- * PerformanceInsightsMetricsDetail+ PerformanceInsightsMetricsDetail (..),+ newPerformanceInsightsMetricsDetail,+ performanceInsightsMetricsDetail_metricDisplayName,+ performanceInsightsMetricsDetail_metricQuery,+ performanceInsightsMetricsDetail_referenceData,+ performanceInsightsMetricsDetail_statsAtAnomaly,+ performanceInsightsMetricsDetail_statsAtBaseline,+ performanceInsightsMetricsDetail_unit,++ -- * PerformanceInsightsReferenceComparisonValues+ PerformanceInsightsReferenceComparisonValues (..),+ newPerformanceInsightsReferenceComparisonValues,+ performanceInsightsReferenceComparisonValues_referenceMetric,+ performanceInsightsReferenceComparisonValues_referenceScalar,++ -- * PerformanceInsightsReferenceData+ PerformanceInsightsReferenceData (..),+ newPerformanceInsightsReferenceData,+ performanceInsightsReferenceData_comparisonValues,+ performanceInsightsReferenceData_name,++ -- * PerformanceInsightsReferenceMetric+ PerformanceInsightsReferenceMetric (..),+ newPerformanceInsightsReferenceMetric,+ performanceInsightsReferenceMetric_metricQuery,++ -- * PerformanceInsightsReferenceScalar+ PerformanceInsightsReferenceScalar (..),+ newPerformanceInsightsReferenceScalar,+ performanceInsightsReferenceScalar_value,++ -- * PerformanceInsightsStat+ PerformanceInsightsStat (..),+ newPerformanceInsightsStat,+ performanceInsightsStat_type,+ performanceInsightsStat_value,++ -- * PredictionTimeRange+ PredictionTimeRange (..),+ newPredictionTimeRange,+ predictionTimeRange_endTime,+ predictionTimeRange_startTime,++ -- * ProactiveAnomaly+ ProactiveAnomaly (..),+ newProactiveAnomaly,+ proactiveAnomaly_anomalyReportedTimeRange,+ proactiveAnomaly_anomalyResources,+ proactiveAnomaly_anomalyTimeRange,+ proactiveAnomaly_associatedInsightId,+ proactiveAnomaly_id,+ proactiveAnomaly_limit,+ proactiveAnomaly_predictionTimeRange,+ proactiveAnomaly_resourceCollection,+ proactiveAnomaly_severity,+ proactiveAnomaly_sourceDetails,+ proactiveAnomaly_sourceMetadata,+ proactiveAnomaly_status,+ proactiveAnomaly_updateTime,++ -- * ProactiveAnomalySummary+ ProactiveAnomalySummary (..),+ newProactiveAnomalySummary,+ proactiveAnomalySummary_anomalyReportedTimeRange,+ proactiveAnomalySummary_anomalyResources,+ proactiveAnomalySummary_anomalyTimeRange,+ proactiveAnomalySummary_associatedInsightId,+ proactiveAnomalySummary_id,+ proactiveAnomalySummary_limit,+ proactiveAnomalySummary_predictionTimeRange,+ proactiveAnomalySummary_resourceCollection,+ proactiveAnomalySummary_severity,+ proactiveAnomalySummary_sourceDetails,+ proactiveAnomalySummary_sourceMetadata,+ proactiveAnomalySummary_status,+ proactiveAnomalySummary_updateTime,++ -- * ProactiveInsight+ ProactiveInsight (..),+ newProactiveInsight,+ proactiveInsight_description,+ proactiveInsight_id,+ proactiveInsight_insightTimeRange,+ proactiveInsight_name,+ proactiveInsight_predictionTimeRange,+ proactiveInsight_resourceCollection,+ proactiveInsight_severity,+ proactiveInsight_ssmOpsItemId,+ proactiveInsight_status,++ -- * ProactiveInsightSummary+ ProactiveInsightSummary (..),+ newProactiveInsightSummary,+ proactiveInsightSummary_associatedResourceArns,+ proactiveInsightSummary_id,+ proactiveInsightSummary_insightTimeRange,+ proactiveInsightSummary_name,+ proactiveInsightSummary_predictionTimeRange,+ proactiveInsightSummary_resourceCollection,+ proactiveInsightSummary_serviceCollection,+ proactiveInsightSummary_severity,+ proactiveInsightSummary_status,++ -- * ProactiveOrganizationInsightSummary+ ProactiveOrganizationInsightSummary (..),+ newProactiveOrganizationInsightSummary,+ proactiveOrganizationInsightSummary_accountId,+ proactiveOrganizationInsightSummary_id,+ proactiveOrganizationInsightSummary_insightTimeRange,+ proactiveOrganizationInsightSummary_name,+ proactiveOrganizationInsightSummary_organizationalUnitId,+ proactiveOrganizationInsightSummary_predictionTimeRange,+ proactiveOrganizationInsightSummary_resourceCollection,+ proactiveOrganizationInsightSummary_serviceCollection,+ proactiveOrganizationInsightSummary_severity,+ proactiveOrganizationInsightSummary_status,++ -- * ReactiveAnomaly+ ReactiveAnomaly (..),+ newReactiveAnomaly,+ reactiveAnomaly_anomalyReportedTimeRange,+ reactiveAnomaly_anomalyResources,+ reactiveAnomaly_anomalyTimeRange,+ reactiveAnomaly_associatedInsightId,+ reactiveAnomaly_causalAnomalyId,+ reactiveAnomaly_description,+ reactiveAnomaly_id,+ reactiveAnomaly_name,+ reactiveAnomaly_resourceCollection,+ reactiveAnomaly_severity,+ reactiveAnomaly_sourceDetails,+ reactiveAnomaly_status,+ reactiveAnomaly_type,++ -- * ReactiveAnomalySummary+ ReactiveAnomalySummary (..),+ newReactiveAnomalySummary,+ reactiveAnomalySummary_anomalyReportedTimeRange,+ reactiveAnomalySummary_anomalyResources,+ reactiveAnomalySummary_anomalyTimeRange,+ reactiveAnomalySummary_associatedInsightId,+ reactiveAnomalySummary_causalAnomalyId,+ reactiveAnomalySummary_description,+ reactiveAnomalySummary_id,+ reactiveAnomalySummary_name,+ reactiveAnomalySummary_resourceCollection,+ reactiveAnomalySummary_severity,+ reactiveAnomalySummary_sourceDetails,+ reactiveAnomalySummary_status,+ reactiveAnomalySummary_type,++ -- * ReactiveInsight+ ReactiveInsight (..),+ newReactiveInsight,+ reactiveInsight_description,+ reactiveInsight_id,+ reactiveInsight_insightTimeRange,+ reactiveInsight_name,+ reactiveInsight_resourceCollection,+ reactiveInsight_severity,+ reactiveInsight_ssmOpsItemId,+ reactiveInsight_status,++ -- * ReactiveInsightSummary+ ReactiveInsightSummary (..),+ newReactiveInsightSummary,+ reactiveInsightSummary_associatedResourceArns,+ reactiveInsightSummary_id,+ reactiveInsightSummary_insightTimeRange,+ reactiveInsightSummary_name,+ reactiveInsightSummary_resourceCollection,+ reactiveInsightSummary_serviceCollection,+ reactiveInsightSummary_severity,+ reactiveInsightSummary_status,++ -- * ReactiveOrganizationInsightSummary+ ReactiveOrganizationInsightSummary (..),+ newReactiveOrganizationInsightSummary,+ reactiveOrganizationInsightSummary_accountId,+ reactiveOrganizationInsightSummary_id,+ reactiveOrganizationInsightSummary_insightTimeRange,+ reactiveOrganizationInsightSummary_name,+ reactiveOrganizationInsightSummary_organizationalUnitId,+ reactiveOrganizationInsightSummary_resourceCollection,+ reactiveOrganizationInsightSummary_serviceCollection,+ reactiveOrganizationInsightSummary_severity,+ reactiveOrganizationInsightSummary_status,++ -- * Recommendation+ Recommendation (..),+ newRecommendation,+ recommendation_category,+ recommendation_description,+ recommendation_link,+ recommendation_name,+ recommendation_reason,+ recommendation_relatedAnomalies,+ recommendation_relatedEvents,++ -- * RecommendationRelatedAnomaly+ RecommendationRelatedAnomaly (..),+ newRecommendationRelatedAnomaly,+ recommendationRelatedAnomaly_anomalyId,+ recommendationRelatedAnomaly_resources,+ recommendationRelatedAnomaly_sourceDetails,++ -- * RecommendationRelatedAnomalyResource+ RecommendationRelatedAnomalyResource (..),+ newRecommendationRelatedAnomalyResource,+ recommendationRelatedAnomalyResource_name,+ recommendationRelatedAnomalyResource_type,++ -- * RecommendationRelatedAnomalySourceDetail+ RecommendationRelatedAnomalySourceDetail (..),+ newRecommendationRelatedAnomalySourceDetail,+ recommendationRelatedAnomalySourceDetail_cloudWatchMetrics,++ -- * RecommendationRelatedCloudWatchMetricsSourceDetail+ RecommendationRelatedCloudWatchMetricsSourceDetail (..),+ newRecommendationRelatedCloudWatchMetricsSourceDetail,+ recommendationRelatedCloudWatchMetricsSourceDetail_metricName,+ recommendationRelatedCloudWatchMetricsSourceDetail_namespace,++ -- * RecommendationRelatedEvent+ RecommendationRelatedEvent (..),+ newRecommendationRelatedEvent,+ recommendationRelatedEvent_name,+ recommendationRelatedEvent_resources,++ -- * RecommendationRelatedEventResource+ RecommendationRelatedEventResource (..),+ newRecommendationRelatedEventResource,+ recommendationRelatedEventResource_name,+ recommendationRelatedEventResource_type,++ -- * ResourceCollection+ ResourceCollection (..),+ newResourceCollection,+ resourceCollection_cloudFormation,+ resourceCollection_tags,++ -- * ResourceCollectionFilter+ ResourceCollectionFilter (..),+ newResourceCollectionFilter,+ resourceCollectionFilter_cloudFormation,+ resourceCollectionFilter_tags,++ -- * SearchInsightsFilters+ SearchInsightsFilters (..),+ newSearchInsightsFilters,+ searchInsightsFilters_resourceCollection,+ searchInsightsFilters_serviceCollection,+ searchInsightsFilters_severities,+ searchInsightsFilters_statuses,++ -- * SearchOrganizationInsightsFilters+ SearchOrganizationInsightsFilters (..),+ newSearchOrganizationInsightsFilters,+ searchOrganizationInsightsFilters_resourceCollection,+ searchOrganizationInsightsFilters_serviceCollection,+ searchOrganizationInsightsFilters_severities,+ searchOrganizationInsightsFilters_statuses,++ -- * ServiceCollection+ ServiceCollection (..),+ newServiceCollection,+ serviceCollection_serviceNames,++ -- * ServiceHealth+ ServiceHealth (..),+ newServiceHealth,+ serviceHealth_analyzedResourceCount,+ serviceHealth_insight,+ serviceHealth_serviceName,++ -- * ServiceInsightHealth+ ServiceInsightHealth (..),+ newServiceInsightHealth,+ serviceInsightHealth_openProactiveInsights,+ serviceInsightHealth_openReactiveInsights,++ -- * ServiceIntegrationConfig+ ServiceIntegrationConfig (..),+ newServiceIntegrationConfig,+ serviceIntegrationConfig_logsAnomalyDetection,+ serviceIntegrationConfig_opsCenter,++ -- * ServiceResourceCost+ ServiceResourceCost (..),+ newServiceResourceCost,+ serviceResourceCost_cost,+ serviceResourceCost_count,+ serviceResourceCost_state,+ serviceResourceCost_type,+ serviceResourceCost_unitCost,++ -- * SnsChannelConfig+ SnsChannelConfig (..),+ newSnsChannelConfig,+ snsChannelConfig_topicArn,++ -- * StartTimeRange+ StartTimeRange (..),+ newStartTimeRange,+ startTimeRange_fromTime,+ startTimeRange_toTime,++ -- * TagCollection+ TagCollection (..),+ newTagCollection,+ tagCollection_appBoundaryKey,+ tagCollection_tagValues,++ -- * TagCollectionFilter+ TagCollectionFilter (..),+ newTagCollectionFilter,+ tagCollectionFilter_appBoundaryKey,+ tagCollectionFilter_tagValues,++ -- * TagCostEstimationResourceCollectionFilter+ TagCostEstimationResourceCollectionFilter (..),+ newTagCostEstimationResourceCollectionFilter,+ tagCostEstimationResourceCollectionFilter_appBoundaryKey,+ tagCostEstimationResourceCollectionFilter_tagValues,++ -- * TagHealth+ TagHealth (..),+ newTagHealth,+ tagHealth_analyzedResourceCount,+ tagHealth_appBoundaryKey,+ tagHealth_insight,+ tagHealth_tagValue,++ -- * TimestampMetricValuePair+ TimestampMetricValuePair (..),+ newTimestampMetricValuePair,+ timestampMetricValuePair_metricValue,+ timestampMetricValuePair_timestamp,++ -- * UpdateCloudFormationCollectionFilter+ UpdateCloudFormationCollectionFilter (..),+ newUpdateCloudFormationCollectionFilter,+ updateCloudFormationCollectionFilter_stackNames,++ -- * UpdateResourceCollectionFilter+ UpdateResourceCollectionFilter (..),+ newUpdateResourceCollectionFilter,+ updateResourceCollectionFilter_cloudFormation,+ updateResourceCollectionFilter_tags,++ -- * UpdateServiceIntegrationConfig+ UpdateServiceIntegrationConfig (..),+ newUpdateServiceIntegrationConfig,+ updateServiceIntegrationConfig_logsAnomalyDetection,+ updateServiceIntegrationConfig_opsCenter,++ -- * UpdateTagCollectionFilter+ UpdateTagCollectionFilter (..),+ newUpdateTagCollectionFilter,+ updateTagCollectionFilter_appBoundaryKey,+ updateTagCollectionFilter_tagValues,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.DevOpsGuru.Types.AccountHealth+import Amazonka.DevOpsGuru.Types.AccountInsightHealth+import Amazonka.DevOpsGuru.Types.AmazonCodeGuruProfilerIntegration+import Amazonka.DevOpsGuru.Types.AnomalousLogGroup+import Amazonka.DevOpsGuru.Types.AnomalyReportedTimeRange+import Amazonka.DevOpsGuru.Types.AnomalyResource+import Amazonka.DevOpsGuru.Types.AnomalySeverity+import Amazonka.DevOpsGuru.Types.AnomalySourceDetails+import Amazonka.DevOpsGuru.Types.AnomalySourceMetadata+import Amazonka.DevOpsGuru.Types.AnomalyStatus+import Amazonka.DevOpsGuru.Types.AnomalyTimeRange+import Amazonka.DevOpsGuru.Types.AnomalyType+import Amazonka.DevOpsGuru.Types.CloudFormationCollection+import Amazonka.DevOpsGuru.Types.CloudFormationCollectionFilter+import Amazonka.DevOpsGuru.Types.CloudFormationCostEstimationResourceCollectionFilter+import Amazonka.DevOpsGuru.Types.CloudFormationHealth+import Amazonka.DevOpsGuru.Types.CloudWatchMetricDataStatusCode+import Amazonka.DevOpsGuru.Types.CloudWatchMetricsDataSummary+import Amazonka.DevOpsGuru.Types.CloudWatchMetricsDetail+import Amazonka.DevOpsGuru.Types.CloudWatchMetricsDimension+import Amazonka.DevOpsGuru.Types.CloudWatchMetricsStat+import Amazonka.DevOpsGuru.Types.CostEstimationResourceCollectionFilter+import Amazonka.DevOpsGuru.Types.CostEstimationServiceResourceState+import Amazonka.DevOpsGuru.Types.CostEstimationStatus+import Amazonka.DevOpsGuru.Types.CostEstimationTimeRange+import Amazonka.DevOpsGuru.Types.EndTimeRange+import Amazonka.DevOpsGuru.Types.Event+import Amazonka.DevOpsGuru.Types.EventClass+import Amazonka.DevOpsGuru.Types.EventDataSource+import Amazonka.DevOpsGuru.Types.EventResource+import Amazonka.DevOpsGuru.Types.EventSourceOptInStatus+import Amazonka.DevOpsGuru.Types.EventSourcesConfig+import Amazonka.DevOpsGuru.Types.EventTimeRange+import Amazonka.DevOpsGuru.Types.InsightFeedback+import Amazonka.DevOpsGuru.Types.InsightFeedbackOption+import Amazonka.DevOpsGuru.Types.InsightHealth+import Amazonka.DevOpsGuru.Types.InsightSeverity+import Amazonka.DevOpsGuru.Types.InsightStatus+import Amazonka.DevOpsGuru.Types.InsightTimeRange+import Amazonka.DevOpsGuru.Types.InsightType+import Amazonka.DevOpsGuru.Types.ListEventsFilters+import Amazonka.DevOpsGuru.Types.ListInsightsAnyStatusFilter+import Amazonka.DevOpsGuru.Types.ListInsightsClosedStatusFilter+import Amazonka.DevOpsGuru.Types.ListInsightsOngoingStatusFilter+import Amazonka.DevOpsGuru.Types.ListInsightsStatusFilter+import Amazonka.DevOpsGuru.Types.ListMonitoredResourcesFilters+import Amazonka.DevOpsGuru.Types.Locale+import Amazonka.DevOpsGuru.Types.LogAnomalyClass+import Amazonka.DevOpsGuru.Types.LogAnomalyShowcase+import Amazonka.DevOpsGuru.Types.LogAnomalyType+import Amazonka.DevOpsGuru.Types.LogsAnomalyDetectionIntegration+import Amazonka.DevOpsGuru.Types.LogsAnomalyDetectionIntegrationConfig+import Amazonka.DevOpsGuru.Types.MonitoredResourceIdentifier+import Amazonka.DevOpsGuru.Types.NotificationChannel+import Amazonka.DevOpsGuru.Types.NotificationChannelConfig+import Amazonka.DevOpsGuru.Types.NotificationFilterConfig+import Amazonka.DevOpsGuru.Types.NotificationMessageType+import Amazonka.DevOpsGuru.Types.OpsCenterIntegration+import Amazonka.DevOpsGuru.Types.OpsCenterIntegrationConfig+import Amazonka.DevOpsGuru.Types.OptInStatus+import Amazonka.DevOpsGuru.Types.OrganizationResourceCollectionType+import Amazonka.DevOpsGuru.Types.PerformanceInsightsMetricDimensionGroup+import Amazonka.DevOpsGuru.Types.PerformanceInsightsMetricQuery+import Amazonka.DevOpsGuru.Types.PerformanceInsightsMetricsDetail+import Amazonka.DevOpsGuru.Types.PerformanceInsightsReferenceComparisonValues+import Amazonka.DevOpsGuru.Types.PerformanceInsightsReferenceData+import Amazonka.DevOpsGuru.Types.PerformanceInsightsReferenceMetric+import Amazonka.DevOpsGuru.Types.PerformanceInsightsReferenceScalar+import Amazonka.DevOpsGuru.Types.PerformanceInsightsStat+import Amazonka.DevOpsGuru.Types.PredictionTimeRange+import Amazonka.DevOpsGuru.Types.ProactiveAnomaly+import Amazonka.DevOpsGuru.Types.ProactiveAnomalySummary+import Amazonka.DevOpsGuru.Types.ProactiveInsight+import Amazonka.DevOpsGuru.Types.ProactiveInsightSummary+import Amazonka.DevOpsGuru.Types.ProactiveOrganizationInsightSummary+import Amazonka.DevOpsGuru.Types.ReactiveAnomaly+import Amazonka.DevOpsGuru.Types.ReactiveAnomalySummary+import Amazonka.DevOpsGuru.Types.ReactiveInsight+import Amazonka.DevOpsGuru.Types.ReactiveInsightSummary+import Amazonka.DevOpsGuru.Types.ReactiveOrganizationInsightSummary+import Amazonka.DevOpsGuru.Types.Recommendation+import Amazonka.DevOpsGuru.Types.RecommendationRelatedAnomaly+import Amazonka.DevOpsGuru.Types.RecommendationRelatedAnomalyResource+import Amazonka.DevOpsGuru.Types.RecommendationRelatedAnomalySourceDetail+import Amazonka.DevOpsGuru.Types.RecommendationRelatedCloudWatchMetricsSourceDetail+import Amazonka.DevOpsGuru.Types.RecommendationRelatedEvent+import Amazonka.DevOpsGuru.Types.RecommendationRelatedEventResource+import Amazonka.DevOpsGuru.Types.ResourceCollection+import Amazonka.DevOpsGuru.Types.ResourceCollectionFilter+import Amazonka.DevOpsGuru.Types.ResourceCollectionType+import Amazonka.DevOpsGuru.Types.ResourcePermission+import Amazonka.DevOpsGuru.Types.ResourceTypeFilter+import Amazonka.DevOpsGuru.Types.SearchInsightsFilters+import Amazonka.DevOpsGuru.Types.SearchOrganizationInsightsFilters+import Amazonka.DevOpsGuru.Types.ServiceCollection+import Amazonka.DevOpsGuru.Types.ServiceHealth+import Amazonka.DevOpsGuru.Types.ServiceInsightHealth+import Amazonka.DevOpsGuru.Types.ServiceIntegrationConfig+import Amazonka.DevOpsGuru.Types.ServiceName+import Amazonka.DevOpsGuru.Types.ServiceResourceCost+import Amazonka.DevOpsGuru.Types.SnsChannelConfig+import Amazonka.DevOpsGuru.Types.StartTimeRange+import Amazonka.DevOpsGuru.Types.TagCollection+import Amazonka.DevOpsGuru.Types.TagCollectionFilter+import Amazonka.DevOpsGuru.Types.TagCostEstimationResourceCollectionFilter+import Amazonka.DevOpsGuru.Types.TagHealth+import Amazonka.DevOpsGuru.Types.TimestampMetricValuePair+import Amazonka.DevOpsGuru.Types.UpdateCloudFormationCollectionFilter+import Amazonka.DevOpsGuru.Types.UpdateResourceCollectionAction+import Amazonka.DevOpsGuru.Types.UpdateResourceCollectionFilter+import Amazonka.DevOpsGuru.Types.UpdateServiceIntegrationConfig+import Amazonka.DevOpsGuru.Types.UpdateTagCollectionFilter+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2020-12-01@ of the Amazon DevOps Guru SDK configuration.+defaultService :: Core.Service+defaultService =+ Core.Service+ { Core.abbrev = "DevOpsGuru",+ Core.signer = Sign.v4,+ Core.endpointPrefix = "devops-guru",+ Core.signingName = "devops-guru",+ Core.version = "2020-12-01",+ Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+ Core.endpoint = Core.defaultEndpoint defaultService,+ Core.timeout = Prelude.Just 70,+ Core.check = Core.statusSuccess,+ Core.error = Core.parseJSONError "DevOpsGuru",+ Core.retry = retry+ }+ where+ retry =+ Core.Exponential+ { Core.base = 5.0e-2,+ Core.growth = 2,+ Core.attempts = 5,+ Core.check = check+ }+ check e+ | Lens.has (Core.hasStatus 502) e =+ Prelude.Just "bad_gateway"+ | Lens.has (Core.hasStatus 504) e =+ Prelude.Just "gateway_timeout"+ | Lens.has (Core.hasStatus 500) e =+ Prelude.Just "general_server_error"+ | Lens.has (Core.hasStatus 509) e =+ Prelude.Just "limit_exceeded"+ | Lens.has+ ( Core.hasCode "RequestThrottledException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "request_throttled_exception"+ | Lens.has (Core.hasStatus 503) e =+ Prelude.Just "service_unavailable"+ | Lens.has+ ( Core.hasCode "ThrottledException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throttled_exception"+ | Lens.has+ ( Core.hasCode "Throttling"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throttling"+ | Lens.has+ ( Core.hasCode "ThrottlingException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throttling_exception"+ | Lens.has+ ( Core.hasCode+ "ProvisionedThroughputExceededException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throughput_exceeded"+ | Lens.has (Core.hasStatus 429) e =+ Prelude.Just "too_many_requests"+ | Prelude.otherwise = Prelude.Nothing++-- | You don\'t have permissions to perform the requested operation. The user+-- or role that is making the request must have at least one IAM+-- permissions policy attached that grants the required permissions. For+-- more information, see+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html Access Management>+-- in the /IAM User Guide/.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+ Core._MatchServiceError+ defaultService+ "AccessDeniedException"+ Prelude.. Core.hasStatus 403++-- | An exception that is thrown when a conflict occurs.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+ Core._MatchServiceError+ defaultService+ "ConflictException"+ Prelude.. Core.hasStatus 409++-- | An internal failure in an Amazon service occurred.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+ Core._MatchServiceError+ defaultService+ "InternalServerException"+ Prelude.. Core.hasStatus 500++-- | A requested resource could not be found+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+ Core._MatchServiceError+ defaultService+ "ResourceNotFoundException"+ Prelude.. Core.hasStatus 404++-- | The request contains a value that exceeds a maximum quota.+_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceQuotaExceededException =+ Core._MatchServiceError+ defaultService+ "ServiceQuotaExceededException"+ Prelude.. Core.hasStatus 402++-- | The request was denied due to a request throttling.+_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottlingException =+ Core._MatchServiceError+ defaultService+ "ThrottlingException"+ Prelude.. Core.hasStatus 429++-- | Contains information about data passed in to a field during a request+-- that is not valid.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+ Core._MatchServiceError+ defaultService+ "ValidationException"+ Prelude.. Core.hasStatus 400
+ gen/Amazonka/DevOpsGuru/Types/AccountHealth.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.DevOpsGuru.Types.AccountHealth+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.AccountHealth where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.AccountInsightHealth+import qualified Amazonka.Prelude as Prelude++-- | Returns the number of open reactive insights, the number of open+-- proactive insights, and the number of metrics analyzed in your Amazon+-- Web Services account. Use these numbers to gauge the health of+-- operations in your Amazon Web Services account.+--+-- /See:/ 'newAccountHealth' smart constructor.+data AccountHealth = AccountHealth'+ { -- | The ID of the Amazon Web Services account.+ accountId :: Prelude.Maybe Prelude.Text,+ -- | Information about the health of the Amazon Web Services resources in+ -- your account, including the number of open proactive, open reactive+ -- insights, and the Mean Time to Recover (MTTR) of closed insights.+ insight :: Prelude.Maybe AccountInsightHealth+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AccountHealth' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'accountHealth_accountId' - The ID of the Amazon Web Services account.+--+-- 'insight', 'accountHealth_insight' - Information about the health of the Amazon Web Services resources in+-- your account, including the number of open proactive, open reactive+-- insights, and the Mean Time to Recover (MTTR) of closed insights.+newAccountHealth ::+ AccountHealth+newAccountHealth =+ AccountHealth'+ { accountId = Prelude.Nothing,+ insight = Prelude.Nothing+ }++-- | The ID of the Amazon Web Services account.+accountHealth_accountId :: Lens.Lens' AccountHealth (Prelude.Maybe Prelude.Text)+accountHealth_accountId = Lens.lens (\AccountHealth' {accountId} -> accountId) (\s@AccountHealth' {} a -> s {accountId = a} :: AccountHealth)++-- | Information about the health of the Amazon Web Services resources in+-- your account, including the number of open proactive, open reactive+-- insights, and the Mean Time to Recover (MTTR) of closed insights.+accountHealth_insight :: Lens.Lens' AccountHealth (Prelude.Maybe AccountInsightHealth)+accountHealth_insight = Lens.lens (\AccountHealth' {insight} -> insight) (\s@AccountHealth' {} a -> s {insight = a} :: AccountHealth)++instance Data.FromJSON AccountHealth where+ parseJSON =+ Data.withObject+ "AccountHealth"+ ( \x ->+ AccountHealth'+ Prelude.<$> (x Data..:? "AccountId")+ Prelude.<*> (x Data..:? "Insight")+ )++instance Prelude.Hashable AccountHealth where+ hashWithSalt _salt AccountHealth' {..} =+ _salt+ `Prelude.hashWithSalt` accountId+ `Prelude.hashWithSalt` insight++instance Prelude.NFData AccountHealth where+ rnf AccountHealth' {..} =+ Prelude.rnf accountId+ `Prelude.seq` Prelude.rnf insight
+ gen/Amazonka/DevOpsGuru/Types/AccountInsightHealth.hs view
@@ -0,0 +1,92 @@+{-# 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.DevOpsGuru.Types.AccountInsightHealth+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.AccountInsightHealth where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about the number of open reactive and proactive insights+-- that can be used to gauge the health of your system.+--+-- /See:/ 'newAccountInsightHealth' smart constructor.+data AccountInsightHealth = AccountInsightHealth'+ { -- | An integer that specifies the number of open proactive insights in your+ -- Amazon Web Services account.+ openProactiveInsights :: Prelude.Maybe Prelude.Int,+ -- | An integer that specifies the number of open reactive insights in your+ -- Amazon Web Services account.+ openReactiveInsights :: Prelude.Maybe Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AccountInsightHealth' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'openProactiveInsights', 'accountInsightHealth_openProactiveInsights' - An integer that specifies the number of open proactive insights in your+-- Amazon Web Services account.+--+-- 'openReactiveInsights', 'accountInsightHealth_openReactiveInsights' - An integer that specifies the number of open reactive insights in your+-- Amazon Web Services account.+newAccountInsightHealth ::+ AccountInsightHealth+newAccountInsightHealth =+ AccountInsightHealth'+ { openProactiveInsights =+ Prelude.Nothing,+ openReactiveInsights = Prelude.Nothing+ }++-- | An integer that specifies the number of open proactive insights in your+-- Amazon Web Services account.+accountInsightHealth_openProactiveInsights :: Lens.Lens' AccountInsightHealth (Prelude.Maybe Prelude.Int)+accountInsightHealth_openProactiveInsights = Lens.lens (\AccountInsightHealth' {openProactiveInsights} -> openProactiveInsights) (\s@AccountInsightHealth' {} a -> s {openProactiveInsights = a} :: AccountInsightHealth)++-- | An integer that specifies the number of open reactive insights in your+-- Amazon Web Services account.+accountInsightHealth_openReactiveInsights :: Lens.Lens' AccountInsightHealth (Prelude.Maybe Prelude.Int)+accountInsightHealth_openReactiveInsights = Lens.lens (\AccountInsightHealth' {openReactiveInsights} -> openReactiveInsights) (\s@AccountInsightHealth' {} a -> s {openReactiveInsights = a} :: AccountInsightHealth)++instance Data.FromJSON AccountInsightHealth where+ parseJSON =+ Data.withObject+ "AccountInsightHealth"+ ( \x ->+ AccountInsightHealth'+ Prelude.<$> (x Data..:? "OpenProactiveInsights")+ Prelude.<*> (x Data..:? "OpenReactiveInsights")+ )++instance Prelude.Hashable AccountInsightHealth where+ hashWithSalt _salt AccountInsightHealth' {..} =+ _salt+ `Prelude.hashWithSalt` openProactiveInsights+ `Prelude.hashWithSalt` openReactiveInsights++instance Prelude.NFData AccountInsightHealth where+ rnf AccountInsightHealth' {..} =+ Prelude.rnf openProactiveInsights+ `Prelude.seq` Prelude.rnf openReactiveInsights
+ gen/Amazonka/DevOpsGuru/Types/AmazonCodeGuruProfilerIntegration.hs view
@@ -0,0 +1,102 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.Types.AmazonCodeGuruProfilerIntegration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.AmazonCodeGuruProfilerIntegration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.EventSourceOptInStatus+import qualified Amazonka.Prelude as Prelude++-- | Information about your account\'s integration with Amazon CodeGuru+-- Profiler. This returns whether DevOps Guru is configured to consume+-- recommendations generated from Amazon CodeGuru Profiler.+--+-- /See:/ 'newAmazonCodeGuruProfilerIntegration' smart constructor.+data AmazonCodeGuruProfilerIntegration = AmazonCodeGuruProfilerIntegration'+ { -- | The status of the CodeGuru Profiler integration. Specifies if DevOps+ -- Guru is enabled to consume recommendations that are generated from+ -- Amazon CodeGuru Profiler.+ status :: Prelude.Maybe EventSourceOptInStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AmazonCodeGuruProfilerIntegration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'status', 'amazonCodeGuruProfilerIntegration_status' - The status of the CodeGuru Profiler integration. Specifies if DevOps+-- Guru is enabled to consume recommendations that are generated from+-- Amazon CodeGuru Profiler.+newAmazonCodeGuruProfilerIntegration ::+ AmazonCodeGuruProfilerIntegration+newAmazonCodeGuruProfilerIntegration =+ AmazonCodeGuruProfilerIntegration'+ { status =+ Prelude.Nothing+ }++-- | The status of the CodeGuru Profiler integration. Specifies if DevOps+-- Guru is enabled to consume recommendations that are generated from+-- Amazon CodeGuru Profiler.+amazonCodeGuruProfilerIntegration_status :: Lens.Lens' AmazonCodeGuruProfilerIntegration (Prelude.Maybe EventSourceOptInStatus)+amazonCodeGuruProfilerIntegration_status = Lens.lens (\AmazonCodeGuruProfilerIntegration' {status} -> status) (\s@AmazonCodeGuruProfilerIntegration' {} a -> s {status = a} :: AmazonCodeGuruProfilerIntegration)++instance+ Data.FromJSON+ AmazonCodeGuruProfilerIntegration+ where+ parseJSON =+ Data.withObject+ "AmazonCodeGuruProfilerIntegration"+ ( \x ->+ AmazonCodeGuruProfilerIntegration'+ Prelude.<$> (x Data..:? "Status")+ )++instance+ Prelude.Hashable+ AmazonCodeGuruProfilerIntegration+ where+ hashWithSalt+ _salt+ AmazonCodeGuruProfilerIntegration' {..} =+ _salt `Prelude.hashWithSalt` status++instance+ Prelude.NFData+ AmazonCodeGuruProfilerIntegration+ where+ rnf AmazonCodeGuruProfilerIntegration' {..} =+ Prelude.rnf status++instance+ Data.ToJSON+ AmazonCodeGuruProfilerIntegration+ where+ toJSON AmazonCodeGuruProfilerIntegration' {..} =+ Data.object+ ( Prelude.catMaybes+ [("Status" Data..=) Prelude.<$> status]+ )
+ gen/Amazonka/DevOpsGuru/Types/AnomalousLogGroup.hs view
@@ -0,0 +1,131 @@+{-# 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.DevOpsGuru.Types.AnomalousLogGroup+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.AnomalousLogGroup where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.LogAnomalyShowcase+import qualified Amazonka.Prelude as Prelude++-- | An Amazon CloudWatch log group that contains log anomalies and is used+-- to generate an insight.+--+-- /See:/ 'newAnomalousLogGroup' smart constructor.+data AnomalousLogGroup = AnomalousLogGroup'+ { -- | The time the anomalous log events stopped.+ impactEndTime :: Prelude.Maybe Data.POSIX,+ -- | The time the anomalous log events began. The impact start time indicates+ -- the time of the first log anomaly event that occurs.+ impactStartTime :: Prelude.Maybe Data.POSIX,+ -- | The log anomalies in the log group. Each log anomaly displayed+ -- represents a cluster of similar anomalous log events.+ logAnomalyShowcases :: Prelude.Maybe [LogAnomalyShowcase],+ -- | The name of the CloudWatch log group.+ logGroupName :: Prelude.Maybe Prelude.Text,+ -- | The number of log lines that were scanned for anomalous log events.+ numberOfLogLinesScanned :: Prelude.Maybe Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnomalousLogGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'impactEndTime', 'anomalousLogGroup_impactEndTime' - The time the anomalous log events stopped.+--+-- 'impactStartTime', 'anomalousLogGroup_impactStartTime' - The time the anomalous log events began. The impact start time indicates+-- the time of the first log anomaly event that occurs.+--+-- 'logAnomalyShowcases', 'anomalousLogGroup_logAnomalyShowcases' - The log anomalies in the log group. Each log anomaly displayed+-- represents a cluster of similar anomalous log events.+--+-- 'logGroupName', 'anomalousLogGroup_logGroupName' - The name of the CloudWatch log group.+--+-- 'numberOfLogLinesScanned', 'anomalousLogGroup_numberOfLogLinesScanned' - The number of log lines that were scanned for anomalous log events.+newAnomalousLogGroup ::+ AnomalousLogGroup+newAnomalousLogGroup =+ AnomalousLogGroup'+ { impactEndTime = Prelude.Nothing,+ impactStartTime = Prelude.Nothing,+ logAnomalyShowcases = Prelude.Nothing,+ logGroupName = Prelude.Nothing,+ numberOfLogLinesScanned = Prelude.Nothing+ }++-- | The time the anomalous log events stopped.+anomalousLogGroup_impactEndTime :: Lens.Lens' AnomalousLogGroup (Prelude.Maybe Prelude.UTCTime)+anomalousLogGroup_impactEndTime = Lens.lens (\AnomalousLogGroup' {impactEndTime} -> impactEndTime) (\s@AnomalousLogGroup' {} a -> s {impactEndTime = a} :: AnomalousLogGroup) Prelude.. Lens.mapping Data._Time++-- | The time the anomalous log events began. The impact start time indicates+-- the time of the first log anomaly event that occurs.+anomalousLogGroup_impactStartTime :: Lens.Lens' AnomalousLogGroup (Prelude.Maybe Prelude.UTCTime)+anomalousLogGroup_impactStartTime = Lens.lens (\AnomalousLogGroup' {impactStartTime} -> impactStartTime) (\s@AnomalousLogGroup' {} a -> s {impactStartTime = a} :: AnomalousLogGroup) Prelude.. Lens.mapping Data._Time++-- | The log anomalies in the log group. Each log anomaly displayed+-- represents a cluster of similar anomalous log events.+anomalousLogGroup_logAnomalyShowcases :: Lens.Lens' AnomalousLogGroup (Prelude.Maybe [LogAnomalyShowcase])+anomalousLogGroup_logAnomalyShowcases = Lens.lens (\AnomalousLogGroup' {logAnomalyShowcases} -> logAnomalyShowcases) (\s@AnomalousLogGroup' {} a -> s {logAnomalyShowcases = a} :: AnomalousLogGroup) Prelude.. Lens.mapping Lens.coerced++-- | The name of the CloudWatch log group.+anomalousLogGroup_logGroupName :: Lens.Lens' AnomalousLogGroup (Prelude.Maybe Prelude.Text)+anomalousLogGroup_logGroupName = Lens.lens (\AnomalousLogGroup' {logGroupName} -> logGroupName) (\s@AnomalousLogGroup' {} a -> s {logGroupName = a} :: AnomalousLogGroup)++-- | The number of log lines that were scanned for anomalous log events.+anomalousLogGroup_numberOfLogLinesScanned :: Lens.Lens' AnomalousLogGroup (Prelude.Maybe Prelude.Int)+anomalousLogGroup_numberOfLogLinesScanned = Lens.lens (\AnomalousLogGroup' {numberOfLogLinesScanned} -> numberOfLogLinesScanned) (\s@AnomalousLogGroup' {} a -> s {numberOfLogLinesScanned = a} :: AnomalousLogGroup)++instance Data.FromJSON AnomalousLogGroup where+ parseJSON =+ Data.withObject+ "AnomalousLogGroup"+ ( \x ->+ AnomalousLogGroup'+ Prelude.<$> (x Data..:? "ImpactEndTime")+ Prelude.<*> (x Data..:? "ImpactStartTime")+ Prelude.<*> ( x+ Data..:? "LogAnomalyShowcases"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "LogGroupName")+ Prelude.<*> (x Data..:? "NumberOfLogLinesScanned")+ )++instance Prelude.Hashable AnomalousLogGroup where+ hashWithSalt _salt AnomalousLogGroup' {..} =+ _salt+ `Prelude.hashWithSalt` impactEndTime+ `Prelude.hashWithSalt` impactStartTime+ `Prelude.hashWithSalt` logAnomalyShowcases+ `Prelude.hashWithSalt` logGroupName+ `Prelude.hashWithSalt` numberOfLogLinesScanned++instance Prelude.NFData AnomalousLogGroup where+ rnf AnomalousLogGroup' {..} =+ Prelude.rnf impactEndTime+ `Prelude.seq` Prelude.rnf impactStartTime+ `Prelude.seq` Prelude.rnf logAnomalyShowcases+ `Prelude.seq` Prelude.rnf logGroupName+ `Prelude.seq` Prelude.rnf numberOfLogLinesScanned
+ gen/Amazonka/DevOpsGuru/Types/AnomalyReportedTimeRange.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.DevOpsGuru.Types.AnomalyReportedTimeRange+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.AnomalyReportedTimeRange 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 time range that specifies when DevOps Guru opens and then closes an+-- anomaly. This is different from @AnomalyTimeRange@, which specifies the+-- time range when DevOps Guru actually observes the anomalous behavior.+--+-- /See:/ 'newAnomalyReportedTimeRange' smart constructor.+data AnomalyReportedTimeRange = AnomalyReportedTimeRange'+ { -- | The time when an anomaly is closed.+ closeTime :: Prelude.Maybe Data.POSIX,+ -- | The time when an anomaly is opened.+ openTime :: Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnomalyReportedTimeRange' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'closeTime', 'anomalyReportedTimeRange_closeTime' - The time when an anomaly is closed.+--+-- 'openTime', 'anomalyReportedTimeRange_openTime' - The time when an anomaly is opened.+newAnomalyReportedTimeRange ::+ -- | 'openTime'+ Prelude.UTCTime ->+ AnomalyReportedTimeRange+newAnomalyReportedTimeRange pOpenTime_ =+ AnomalyReportedTimeRange'+ { closeTime =+ Prelude.Nothing,+ openTime = Data._Time Lens.# pOpenTime_+ }++-- | The time when an anomaly is closed.+anomalyReportedTimeRange_closeTime :: Lens.Lens' AnomalyReportedTimeRange (Prelude.Maybe Prelude.UTCTime)+anomalyReportedTimeRange_closeTime = Lens.lens (\AnomalyReportedTimeRange' {closeTime} -> closeTime) (\s@AnomalyReportedTimeRange' {} a -> s {closeTime = a} :: AnomalyReportedTimeRange) Prelude.. Lens.mapping Data._Time++-- | The time when an anomaly is opened.+anomalyReportedTimeRange_openTime :: Lens.Lens' AnomalyReportedTimeRange Prelude.UTCTime+anomalyReportedTimeRange_openTime = Lens.lens (\AnomalyReportedTimeRange' {openTime} -> openTime) (\s@AnomalyReportedTimeRange' {} a -> s {openTime = a} :: AnomalyReportedTimeRange) Prelude.. Data._Time++instance Data.FromJSON AnomalyReportedTimeRange where+ parseJSON =+ Data.withObject+ "AnomalyReportedTimeRange"+ ( \x ->+ AnomalyReportedTimeRange'+ Prelude.<$> (x Data..:? "CloseTime")+ Prelude.<*> (x Data..: "OpenTime")+ )++instance Prelude.Hashable AnomalyReportedTimeRange where+ hashWithSalt _salt AnomalyReportedTimeRange' {..} =+ _salt+ `Prelude.hashWithSalt` closeTime+ `Prelude.hashWithSalt` openTime++instance Prelude.NFData AnomalyReportedTimeRange where+ rnf AnomalyReportedTimeRange' {..} =+ Prelude.rnf closeTime+ `Prelude.seq` Prelude.rnf openTime
+ gen/Amazonka/DevOpsGuru/Types/AnomalyResource.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.DevOpsGuru.Types.AnomalyResource+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.AnomalyResource 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 Amazon Web Services resources in which DevOps Guru detected unusual+-- behavior that resulted in the generation of an anomaly. When DevOps Guru+-- detects multiple related anomalies, it creates and insight with details+-- about the anomalous behavior and suggestions about how to correct the+-- problem.+--+-- /See:/ 'newAnomalyResource' smart constructor.+data AnomalyResource = AnomalyResource'+ { -- | The name of the Amazon Web Services resource.+ name :: Prelude.Maybe Prelude.Text,+ -- | The type of the Amazon Web Services resource.+ type' :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnomalyResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'anomalyResource_name' - The name of the Amazon Web Services resource.+--+-- 'type'', 'anomalyResource_type' - The type of the Amazon Web Services resource.+newAnomalyResource ::+ AnomalyResource+newAnomalyResource =+ AnomalyResource'+ { name = Prelude.Nothing,+ type' = Prelude.Nothing+ }++-- | The name of the Amazon Web Services resource.+anomalyResource_name :: Lens.Lens' AnomalyResource (Prelude.Maybe Prelude.Text)+anomalyResource_name = Lens.lens (\AnomalyResource' {name} -> name) (\s@AnomalyResource' {} a -> s {name = a} :: AnomalyResource)++-- | The type of the Amazon Web Services resource.+anomalyResource_type :: Lens.Lens' AnomalyResource (Prelude.Maybe Prelude.Text)+anomalyResource_type = Lens.lens (\AnomalyResource' {type'} -> type') (\s@AnomalyResource' {} a -> s {type' = a} :: AnomalyResource)++instance Data.FromJSON AnomalyResource where+ parseJSON =+ Data.withObject+ "AnomalyResource"+ ( \x ->+ AnomalyResource'+ Prelude.<$> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "Type")+ )++instance Prelude.Hashable AnomalyResource where+ hashWithSalt _salt AnomalyResource' {..} =+ _salt+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` type'++instance Prelude.NFData AnomalyResource where+ rnf AnomalyResource' {..} =+ Prelude.rnf name `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/DevOpsGuru/Types/AnomalySeverity.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.DevOpsGuru.Types.AnomalySeverity+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.AnomalySeverity+ ( AnomalySeverity+ ( ..,+ AnomalySeverity_HIGH,+ AnomalySeverity_LOW,+ AnomalySeverity_MEDIUM+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AnomalySeverity = AnomalySeverity'+ { fromAnomalySeverity ::+ 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 AnomalySeverity_HIGH :: AnomalySeverity+pattern AnomalySeverity_HIGH = AnomalySeverity' "HIGH"++pattern AnomalySeverity_LOW :: AnomalySeverity+pattern AnomalySeverity_LOW = AnomalySeverity' "LOW"++pattern AnomalySeverity_MEDIUM :: AnomalySeverity+pattern AnomalySeverity_MEDIUM = AnomalySeverity' "MEDIUM"++{-# COMPLETE+ AnomalySeverity_HIGH,+ AnomalySeverity_LOW,+ AnomalySeverity_MEDIUM,+ AnomalySeverity'+ #-}
+ gen/Amazonka/DevOpsGuru/Types/AnomalySourceDetails.hs view
@@ -0,0 +1,103 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.Types.AnomalySourceDetails+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.AnomalySourceDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.CloudWatchMetricsDetail+import Amazonka.DevOpsGuru.Types.PerformanceInsightsMetricsDetail+import qualified Amazonka.Prelude as Prelude++-- | Details about the source of the anomalous operational data that+-- triggered the anomaly.+--+-- /See:/ 'newAnomalySourceDetails' smart constructor.+data AnomalySourceDetails = AnomalySourceDetails'+ { -- | An array of @CloudWatchMetricsDetail@ objects that contain information+ -- about analyzed CloudWatch metrics that show anomalous behavior.+ cloudWatchMetrics :: Prelude.Maybe [CloudWatchMetricsDetail],+ -- | An array of @PerformanceInsightsMetricsDetail@ objects that contain+ -- information about analyzed Performance Insights metrics that show+ -- anomalous behavior.+ performanceInsightsMetrics :: Prelude.Maybe [PerformanceInsightsMetricsDetail]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnomalySourceDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cloudWatchMetrics', 'anomalySourceDetails_cloudWatchMetrics' - An array of @CloudWatchMetricsDetail@ objects that contain information+-- about analyzed CloudWatch metrics that show anomalous behavior.+--+-- 'performanceInsightsMetrics', 'anomalySourceDetails_performanceInsightsMetrics' - An array of @PerformanceInsightsMetricsDetail@ objects that contain+-- information about analyzed Performance Insights metrics that show+-- anomalous behavior.+newAnomalySourceDetails ::+ AnomalySourceDetails+newAnomalySourceDetails =+ AnomalySourceDetails'+ { cloudWatchMetrics =+ Prelude.Nothing,+ performanceInsightsMetrics = Prelude.Nothing+ }++-- | An array of @CloudWatchMetricsDetail@ objects that contain information+-- about analyzed CloudWatch metrics that show anomalous behavior.+anomalySourceDetails_cloudWatchMetrics :: Lens.Lens' AnomalySourceDetails (Prelude.Maybe [CloudWatchMetricsDetail])+anomalySourceDetails_cloudWatchMetrics = Lens.lens (\AnomalySourceDetails' {cloudWatchMetrics} -> cloudWatchMetrics) (\s@AnomalySourceDetails' {} a -> s {cloudWatchMetrics = a} :: AnomalySourceDetails) Prelude.. Lens.mapping Lens.coerced++-- | An array of @PerformanceInsightsMetricsDetail@ objects that contain+-- information about analyzed Performance Insights metrics that show+-- anomalous behavior.+anomalySourceDetails_performanceInsightsMetrics :: Lens.Lens' AnomalySourceDetails (Prelude.Maybe [PerformanceInsightsMetricsDetail])+anomalySourceDetails_performanceInsightsMetrics = Lens.lens (\AnomalySourceDetails' {performanceInsightsMetrics} -> performanceInsightsMetrics) (\s@AnomalySourceDetails' {} a -> s {performanceInsightsMetrics = a} :: AnomalySourceDetails) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON AnomalySourceDetails where+ parseJSON =+ Data.withObject+ "AnomalySourceDetails"+ ( \x ->+ AnomalySourceDetails'+ Prelude.<$> ( x+ Data..:? "CloudWatchMetrics"+ Data..!= Prelude.mempty+ )+ Prelude.<*> ( x+ Data..:? "PerformanceInsightsMetrics"+ Data..!= Prelude.mempty+ )+ )++instance Prelude.Hashable AnomalySourceDetails where+ hashWithSalt _salt AnomalySourceDetails' {..} =+ _salt+ `Prelude.hashWithSalt` cloudWatchMetrics+ `Prelude.hashWithSalt` performanceInsightsMetrics++instance Prelude.NFData AnomalySourceDetails where+ rnf AnomalySourceDetails' {..} =+ Prelude.rnf cloudWatchMetrics+ `Prelude.seq` Prelude.rnf performanceInsightsMetrics
+ gen/Amazonka/DevOpsGuru/Types/AnomalySourceMetadata.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.DevOpsGuru.Types.AnomalySourceMetadata+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.AnomalySourceMetadata where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Metadata about the detection source that generates proactive anomalies.+-- The anomaly is detected using analysis of the metric data over a period+-- of time+--+-- /See:/ 'newAnomalySourceMetadata' smart constructor.+data AnomalySourceMetadata = AnomalySourceMetadata'+ { -- | The source of the anomaly.+ source :: Prelude.Maybe Prelude.Text,+ -- | The name of the anomaly\'s resource.+ sourceResourceName :: Prelude.Maybe Prelude.Text,+ -- | The anomaly\'s resource type.+ sourceResourceType :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnomalySourceMetadata' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'source', 'anomalySourceMetadata_source' - The source of the anomaly.+--+-- 'sourceResourceName', 'anomalySourceMetadata_sourceResourceName' - The name of the anomaly\'s resource.+--+-- 'sourceResourceType', 'anomalySourceMetadata_sourceResourceType' - The anomaly\'s resource type.+newAnomalySourceMetadata ::+ AnomalySourceMetadata+newAnomalySourceMetadata =+ AnomalySourceMetadata'+ { source = Prelude.Nothing,+ sourceResourceName = Prelude.Nothing,+ sourceResourceType = Prelude.Nothing+ }++-- | The source of the anomaly.+anomalySourceMetadata_source :: Lens.Lens' AnomalySourceMetadata (Prelude.Maybe Prelude.Text)+anomalySourceMetadata_source = Lens.lens (\AnomalySourceMetadata' {source} -> source) (\s@AnomalySourceMetadata' {} a -> s {source = a} :: AnomalySourceMetadata)++-- | The name of the anomaly\'s resource.+anomalySourceMetadata_sourceResourceName :: Lens.Lens' AnomalySourceMetadata (Prelude.Maybe Prelude.Text)+anomalySourceMetadata_sourceResourceName = Lens.lens (\AnomalySourceMetadata' {sourceResourceName} -> sourceResourceName) (\s@AnomalySourceMetadata' {} a -> s {sourceResourceName = a} :: AnomalySourceMetadata)++-- | The anomaly\'s resource type.+anomalySourceMetadata_sourceResourceType :: Lens.Lens' AnomalySourceMetadata (Prelude.Maybe Prelude.Text)+anomalySourceMetadata_sourceResourceType = Lens.lens (\AnomalySourceMetadata' {sourceResourceType} -> sourceResourceType) (\s@AnomalySourceMetadata' {} a -> s {sourceResourceType = a} :: AnomalySourceMetadata)++instance Data.FromJSON AnomalySourceMetadata where+ parseJSON =+ Data.withObject+ "AnomalySourceMetadata"+ ( \x ->+ AnomalySourceMetadata'+ Prelude.<$> (x Data..:? "Source")+ Prelude.<*> (x Data..:? "SourceResourceName")+ Prelude.<*> (x Data..:? "SourceResourceType")+ )++instance Prelude.Hashable AnomalySourceMetadata where+ hashWithSalt _salt AnomalySourceMetadata' {..} =+ _salt+ `Prelude.hashWithSalt` source+ `Prelude.hashWithSalt` sourceResourceName+ `Prelude.hashWithSalt` sourceResourceType++instance Prelude.NFData AnomalySourceMetadata where+ rnf AnomalySourceMetadata' {..} =+ Prelude.rnf source+ `Prelude.seq` Prelude.rnf sourceResourceName+ `Prelude.seq` Prelude.rnf sourceResourceType
+ gen/Amazonka/DevOpsGuru/Types/AnomalyStatus.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.DevOpsGuru.Types.AnomalyStatus+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.AnomalyStatus+ ( AnomalyStatus+ ( ..,+ AnomalyStatus_CLOSED,+ AnomalyStatus_ONGOING+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AnomalyStatus = AnomalyStatus'+ { fromAnomalyStatus ::+ 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 AnomalyStatus_CLOSED :: AnomalyStatus+pattern AnomalyStatus_CLOSED = AnomalyStatus' "CLOSED"++pattern AnomalyStatus_ONGOING :: AnomalyStatus+pattern AnomalyStatus_ONGOING = AnomalyStatus' "ONGOING"++{-# COMPLETE+ AnomalyStatus_CLOSED,+ AnomalyStatus_ONGOING,+ AnomalyStatus'+ #-}
+ gen/Amazonka/DevOpsGuru/Types/AnomalyTimeRange.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.DevOpsGuru.Types.AnomalyTimeRange+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.AnomalyTimeRange 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 time range that specifies when the observed unusual behavior in an+-- anomaly started and ended. This is different from+-- @AnomalyReportedTimeRange@, which specifies the time range when DevOps+-- Guru opens and then closes an anomaly.+--+-- /See:/ 'newAnomalyTimeRange' smart constructor.+data AnomalyTimeRange = AnomalyTimeRange'+ { -- | The time when the anomalous behavior ended.+ endTime :: Prelude.Maybe Data.POSIX,+ -- | The time when the anomalous behavior started.+ startTime :: Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnomalyTimeRange' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endTime', 'anomalyTimeRange_endTime' - The time when the anomalous behavior ended.+--+-- 'startTime', 'anomalyTimeRange_startTime' - The time when the anomalous behavior started.+newAnomalyTimeRange ::+ -- | 'startTime'+ Prelude.UTCTime ->+ AnomalyTimeRange+newAnomalyTimeRange pStartTime_ =+ AnomalyTimeRange'+ { endTime = Prelude.Nothing,+ startTime = Data._Time Lens.# pStartTime_+ }++-- | The time when the anomalous behavior ended.+anomalyTimeRange_endTime :: Lens.Lens' AnomalyTimeRange (Prelude.Maybe Prelude.UTCTime)+anomalyTimeRange_endTime = Lens.lens (\AnomalyTimeRange' {endTime} -> endTime) (\s@AnomalyTimeRange' {} a -> s {endTime = a} :: AnomalyTimeRange) Prelude.. Lens.mapping Data._Time++-- | The time when the anomalous behavior started.+anomalyTimeRange_startTime :: Lens.Lens' AnomalyTimeRange Prelude.UTCTime+anomalyTimeRange_startTime = Lens.lens (\AnomalyTimeRange' {startTime} -> startTime) (\s@AnomalyTimeRange' {} a -> s {startTime = a} :: AnomalyTimeRange) Prelude.. Data._Time++instance Data.FromJSON AnomalyTimeRange where+ parseJSON =+ Data.withObject+ "AnomalyTimeRange"+ ( \x ->+ AnomalyTimeRange'+ Prelude.<$> (x Data..:? "EndTime")+ Prelude.<*> (x Data..: "StartTime")+ )++instance Prelude.Hashable AnomalyTimeRange where+ hashWithSalt _salt AnomalyTimeRange' {..} =+ _salt+ `Prelude.hashWithSalt` endTime+ `Prelude.hashWithSalt` startTime++instance Prelude.NFData AnomalyTimeRange where+ rnf AnomalyTimeRange' {..} =+ Prelude.rnf endTime+ `Prelude.seq` Prelude.rnf startTime
+ gen/Amazonka/DevOpsGuru/Types/AnomalyType.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.DevOpsGuru.Types.AnomalyType+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.AnomalyType+ ( AnomalyType+ ( ..,+ AnomalyType_CAUSAL,+ AnomalyType_CONTEXTUAL+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AnomalyType = AnomalyType'+ { fromAnomalyType ::+ 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 AnomalyType_CAUSAL :: AnomalyType+pattern AnomalyType_CAUSAL = AnomalyType' "CAUSAL"++pattern AnomalyType_CONTEXTUAL :: AnomalyType+pattern AnomalyType_CONTEXTUAL = AnomalyType' "CONTEXTUAL"++{-# COMPLETE+ AnomalyType_CAUSAL,+ AnomalyType_CONTEXTUAL,+ AnomalyType'+ #-}
+ gen/Amazonka/DevOpsGuru/Types/CloudFormationCollection.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.DevOpsGuru.Types.CloudFormationCollection+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.CloudFormationCollection where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about Amazon Web Services CloudFormation stacks. You can use+-- up to 500 stacks to specify which Amazon Web Services resources in your+-- account to analyze. For more information, see+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html Stacks>+-- in the /Amazon Web Services CloudFormation User Guide/.+--+-- /See:/ 'newCloudFormationCollection' smart constructor.+data CloudFormationCollection = CloudFormationCollection'+ { -- | An array of CloudFormation stack names.+ stackNames :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CloudFormationCollection' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'stackNames', 'cloudFormationCollection_stackNames' - An array of CloudFormation stack names.+newCloudFormationCollection ::+ CloudFormationCollection+newCloudFormationCollection =+ CloudFormationCollection'+ { stackNames =+ Prelude.Nothing+ }++-- | An array of CloudFormation stack names.+cloudFormationCollection_stackNames :: Lens.Lens' CloudFormationCollection (Prelude.Maybe [Prelude.Text])+cloudFormationCollection_stackNames = Lens.lens (\CloudFormationCollection' {stackNames} -> stackNames) (\s@CloudFormationCollection' {} a -> s {stackNames = a} :: CloudFormationCollection) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON CloudFormationCollection where+ parseJSON =+ Data.withObject+ "CloudFormationCollection"+ ( \x ->+ CloudFormationCollection'+ Prelude.<$> (x Data..:? "StackNames" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable CloudFormationCollection where+ hashWithSalt _salt CloudFormationCollection' {..} =+ _salt `Prelude.hashWithSalt` stackNames++instance Prelude.NFData CloudFormationCollection where+ rnf CloudFormationCollection' {..} =+ Prelude.rnf stackNames++instance Data.ToJSON CloudFormationCollection where+ toJSON CloudFormationCollection' {..} =+ Data.object+ ( Prelude.catMaybes+ [("StackNames" Data..=) Prelude.<$> stackNames]+ )
+ gen/Amazonka/DevOpsGuru/Types/CloudFormationCollectionFilter.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.DevOpsGuru.Types.CloudFormationCollectionFilter+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.CloudFormationCollectionFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about Amazon Web Services CloudFormation stacks. You can use+-- up to 500 stacks to specify which Amazon Web Services resources in your+-- account to analyze. For more information, see+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html Stacks>+-- in the /Amazon Web Services CloudFormation User Guide/.+--+-- /See:/ 'newCloudFormationCollectionFilter' smart constructor.+data CloudFormationCollectionFilter = CloudFormationCollectionFilter'+ { -- | An array of CloudFormation stack names.+ stackNames :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CloudFormationCollectionFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'stackNames', 'cloudFormationCollectionFilter_stackNames' - An array of CloudFormation stack names.+newCloudFormationCollectionFilter ::+ CloudFormationCollectionFilter+newCloudFormationCollectionFilter =+ CloudFormationCollectionFilter'+ { stackNames =+ Prelude.Nothing+ }++-- | An array of CloudFormation stack names.+cloudFormationCollectionFilter_stackNames :: Lens.Lens' CloudFormationCollectionFilter (Prelude.Maybe [Prelude.Text])+cloudFormationCollectionFilter_stackNames = Lens.lens (\CloudFormationCollectionFilter' {stackNames} -> stackNames) (\s@CloudFormationCollectionFilter' {} a -> s {stackNames = a} :: CloudFormationCollectionFilter) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON CloudFormationCollectionFilter where+ parseJSON =+ Data.withObject+ "CloudFormationCollectionFilter"+ ( \x ->+ CloudFormationCollectionFilter'+ Prelude.<$> (x Data..:? "StackNames" Data..!= Prelude.mempty)+ )++instance+ Prelude.Hashable+ CloudFormationCollectionFilter+ where+ hashWithSalt+ _salt+ CloudFormationCollectionFilter' {..} =+ _salt `Prelude.hashWithSalt` stackNames++instance+ Prelude.NFData+ CloudFormationCollectionFilter+ where+ rnf CloudFormationCollectionFilter' {..} =+ Prelude.rnf stackNames
+ gen/Amazonka/DevOpsGuru/Types/CloudFormationCostEstimationResourceCollectionFilter.hs view
@@ -0,0 +1,102 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.Types.CloudFormationCostEstimationResourceCollectionFilter+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.CloudFormationCostEstimationResourceCollectionFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about an Amazon Web Services CloudFormation stack used to+-- create a monthly cost estimate for DevOps Guru to analyze Amazon Web+-- Services resources. The maximum number of stacks you can specify for a+-- cost estimate is one. The estimate created is for the cost to analyze+-- the Amazon Web Services resources defined by the stack. For more+-- information, see+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html Stacks>+-- in the /Amazon Web Services CloudFormation User Guide/.+--+-- /See:/ 'newCloudFormationCostEstimationResourceCollectionFilter' smart constructor.+data CloudFormationCostEstimationResourceCollectionFilter = CloudFormationCostEstimationResourceCollectionFilter'+ { -- | An array of CloudFormation stack names. Its size is fixed at 1 item.+ stackNames :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CloudFormationCostEstimationResourceCollectionFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'stackNames', 'cloudFormationCostEstimationResourceCollectionFilter_stackNames' - An array of CloudFormation stack names. Its size is fixed at 1 item.+newCloudFormationCostEstimationResourceCollectionFilter ::+ CloudFormationCostEstimationResourceCollectionFilter+newCloudFormationCostEstimationResourceCollectionFilter =+ CloudFormationCostEstimationResourceCollectionFilter'+ { stackNames =+ Prelude.Nothing+ }++-- | An array of CloudFormation stack names. Its size is fixed at 1 item.+cloudFormationCostEstimationResourceCollectionFilter_stackNames :: Lens.Lens' CloudFormationCostEstimationResourceCollectionFilter (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+cloudFormationCostEstimationResourceCollectionFilter_stackNames = Lens.lens (\CloudFormationCostEstimationResourceCollectionFilter' {stackNames} -> stackNames) (\s@CloudFormationCostEstimationResourceCollectionFilter' {} a -> s {stackNames = a} :: CloudFormationCostEstimationResourceCollectionFilter) Prelude.. Lens.mapping Lens.coerced++instance+ Data.FromJSON+ CloudFormationCostEstimationResourceCollectionFilter+ where+ parseJSON =+ Data.withObject+ "CloudFormationCostEstimationResourceCollectionFilter"+ ( \x ->+ CloudFormationCostEstimationResourceCollectionFilter'+ Prelude.<$> (x Data..:? "StackNames")+ )++instance+ Prelude.Hashable+ CloudFormationCostEstimationResourceCollectionFilter+ where+ hashWithSalt+ _salt+ CloudFormationCostEstimationResourceCollectionFilter' {..} =+ _salt `Prelude.hashWithSalt` stackNames++instance+ Prelude.NFData+ CloudFormationCostEstimationResourceCollectionFilter+ where+ rnf+ CloudFormationCostEstimationResourceCollectionFilter' {..} =+ Prelude.rnf stackNames++instance+ Data.ToJSON+ CloudFormationCostEstimationResourceCollectionFilter+ where+ toJSON+ CloudFormationCostEstimationResourceCollectionFilter' {..} =+ Data.object+ ( Prelude.catMaybes+ [("StackNames" Data..=) Prelude.<$> stackNames]+ )
+ gen/Amazonka/DevOpsGuru/Types/CloudFormationHealth.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.DevOpsGuru.Types.CloudFormationHealth+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.CloudFormationHealth where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.InsightHealth+import qualified Amazonka.Prelude as Prelude++-- | Information about the health of Amazon Web Services resources in your+-- account that are specified by an Amazon Web Services CloudFormation+-- stack.+--+-- /See:/ 'newCloudFormationHealth' smart constructor.+data CloudFormationHealth = CloudFormationHealth'+ { -- | Number of resources that DevOps Guru is monitoring in your account that+ -- are specified by an Amazon Web Services CloudFormation stack.+ analyzedResourceCount :: Prelude.Maybe Prelude.Integer,+ -- | Information about the health of the Amazon Web Services resources in+ -- your account that are specified by an Amazon Web Services CloudFormation+ -- stack, including the number of open proactive, open reactive insights,+ -- and the Mean Time to Recover (MTTR) of closed insights.+ insight :: Prelude.Maybe InsightHealth,+ -- | The name of the CloudFormation stack.+ stackName :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CloudFormationHealth' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'analyzedResourceCount', 'cloudFormationHealth_analyzedResourceCount' - Number of resources that DevOps Guru is monitoring in your account that+-- are specified by an Amazon Web Services CloudFormation stack.+--+-- 'insight', 'cloudFormationHealth_insight' - Information about the health of the Amazon Web Services resources in+-- your account that are specified by an Amazon Web Services CloudFormation+-- stack, including the number of open proactive, open reactive insights,+-- and the Mean Time to Recover (MTTR) of closed insights.+--+-- 'stackName', 'cloudFormationHealth_stackName' - The name of the CloudFormation stack.+newCloudFormationHealth ::+ CloudFormationHealth+newCloudFormationHealth =+ CloudFormationHealth'+ { analyzedResourceCount =+ Prelude.Nothing,+ insight = Prelude.Nothing,+ stackName = Prelude.Nothing+ }++-- | Number of resources that DevOps Guru is monitoring in your account that+-- are specified by an Amazon Web Services CloudFormation stack.+cloudFormationHealth_analyzedResourceCount :: Lens.Lens' CloudFormationHealth (Prelude.Maybe Prelude.Integer)+cloudFormationHealth_analyzedResourceCount = Lens.lens (\CloudFormationHealth' {analyzedResourceCount} -> analyzedResourceCount) (\s@CloudFormationHealth' {} a -> s {analyzedResourceCount = a} :: CloudFormationHealth)++-- | Information about the health of the Amazon Web Services resources in+-- your account that are specified by an Amazon Web Services CloudFormation+-- stack, including the number of open proactive, open reactive insights,+-- and the Mean Time to Recover (MTTR) of closed insights.+cloudFormationHealth_insight :: Lens.Lens' CloudFormationHealth (Prelude.Maybe InsightHealth)+cloudFormationHealth_insight = Lens.lens (\CloudFormationHealth' {insight} -> insight) (\s@CloudFormationHealth' {} a -> s {insight = a} :: CloudFormationHealth)++-- | The name of the CloudFormation stack.+cloudFormationHealth_stackName :: Lens.Lens' CloudFormationHealth (Prelude.Maybe Prelude.Text)+cloudFormationHealth_stackName = Lens.lens (\CloudFormationHealth' {stackName} -> stackName) (\s@CloudFormationHealth' {} a -> s {stackName = a} :: CloudFormationHealth)++instance Data.FromJSON CloudFormationHealth where+ parseJSON =+ Data.withObject+ "CloudFormationHealth"+ ( \x ->+ CloudFormationHealth'+ Prelude.<$> (x Data..:? "AnalyzedResourceCount")+ Prelude.<*> (x Data..:? "Insight")+ Prelude.<*> (x Data..:? "StackName")+ )++instance Prelude.Hashable CloudFormationHealth where+ hashWithSalt _salt CloudFormationHealth' {..} =+ _salt+ `Prelude.hashWithSalt` analyzedResourceCount+ `Prelude.hashWithSalt` insight+ `Prelude.hashWithSalt` stackName++instance Prelude.NFData CloudFormationHealth where+ rnf CloudFormationHealth' {..} =+ Prelude.rnf analyzedResourceCount+ `Prelude.seq` Prelude.rnf insight+ `Prelude.seq` Prelude.rnf stackName
+ gen/Amazonka/DevOpsGuru/Types/CloudWatchMetricDataStatusCode.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.DevOpsGuru.Types.CloudWatchMetricDataStatusCode+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.CloudWatchMetricDataStatusCode+ ( CloudWatchMetricDataStatusCode+ ( ..,+ CloudWatchMetricDataStatusCode_Complete,+ CloudWatchMetricDataStatusCode_InternalError,+ CloudWatchMetricDataStatusCode_PartialData+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CloudWatchMetricDataStatusCode = CloudWatchMetricDataStatusCode'+ { fromCloudWatchMetricDataStatusCode ::+ 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 CloudWatchMetricDataStatusCode_Complete :: CloudWatchMetricDataStatusCode+pattern CloudWatchMetricDataStatusCode_Complete = CloudWatchMetricDataStatusCode' "Complete"++pattern CloudWatchMetricDataStatusCode_InternalError :: CloudWatchMetricDataStatusCode+pattern CloudWatchMetricDataStatusCode_InternalError = CloudWatchMetricDataStatusCode' "InternalError"++pattern CloudWatchMetricDataStatusCode_PartialData :: CloudWatchMetricDataStatusCode+pattern CloudWatchMetricDataStatusCode_PartialData = CloudWatchMetricDataStatusCode' "PartialData"++{-# COMPLETE+ CloudWatchMetricDataStatusCode_Complete,+ CloudWatchMetricDataStatusCode_InternalError,+ CloudWatchMetricDataStatusCode_PartialData,+ CloudWatchMetricDataStatusCode'+ #-}
+ gen/Amazonka/DevOpsGuru/Types/CloudWatchMetricsDataSummary.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.DevOpsGuru.Types.CloudWatchMetricsDataSummary+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.CloudWatchMetricsDataSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.CloudWatchMetricDataStatusCode+import Amazonka.DevOpsGuru.Types.TimestampMetricValuePair+import qualified Amazonka.Prelude as Prelude++-- | Contains information about the analyzed metrics that displayed anomalous+-- behavior.+--+-- /See:/ 'newCloudWatchMetricsDataSummary' smart constructor.+data CloudWatchMetricsDataSummary = CloudWatchMetricsDataSummary'+ { -- | This is an enum of the status showing whether the metric value pair list+ -- has partial or complete data, or if there was an error.+ statusCode :: Prelude.Maybe CloudWatchMetricDataStatusCode,+ -- | This is a list of Amazon CloudWatch metric values at given timestamp.+ timestampMetricValuePairList :: Prelude.Maybe [TimestampMetricValuePair]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CloudWatchMetricsDataSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'statusCode', 'cloudWatchMetricsDataSummary_statusCode' - This is an enum of the status showing whether the metric value pair list+-- has partial or complete data, or if there was an error.+--+-- 'timestampMetricValuePairList', 'cloudWatchMetricsDataSummary_timestampMetricValuePairList' - This is a list of Amazon CloudWatch metric values at given timestamp.+newCloudWatchMetricsDataSummary ::+ CloudWatchMetricsDataSummary+newCloudWatchMetricsDataSummary =+ CloudWatchMetricsDataSummary'+ { statusCode =+ Prelude.Nothing,+ timestampMetricValuePairList =+ Prelude.Nothing+ }++-- | This is an enum of the status showing whether the metric value pair list+-- has partial or complete data, or if there was an error.+cloudWatchMetricsDataSummary_statusCode :: Lens.Lens' CloudWatchMetricsDataSummary (Prelude.Maybe CloudWatchMetricDataStatusCode)+cloudWatchMetricsDataSummary_statusCode = Lens.lens (\CloudWatchMetricsDataSummary' {statusCode} -> statusCode) (\s@CloudWatchMetricsDataSummary' {} a -> s {statusCode = a} :: CloudWatchMetricsDataSummary)++-- | This is a list of Amazon CloudWatch metric values at given timestamp.+cloudWatchMetricsDataSummary_timestampMetricValuePairList :: Lens.Lens' CloudWatchMetricsDataSummary (Prelude.Maybe [TimestampMetricValuePair])+cloudWatchMetricsDataSummary_timestampMetricValuePairList = Lens.lens (\CloudWatchMetricsDataSummary' {timestampMetricValuePairList} -> timestampMetricValuePairList) (\s@CloudWatchMetricsDataSummary' {} a -> s {timestampMetricValuePairList = a} :: CloudWatchMetricsDataSummary) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON CloudWatchMetricsDataSummary where+ parseJSON =+ Data.withObject+ "CloudWatchMetricsDataSummary"+ ( \x ->+ CloudWatchMetricsDataSummary'+ Prelude.<$> (x Data..:? "StatusCode")+ Prelude.<*> ( x+ Data..:? "TimestampMetricValuePairList"+ Data..!= Prelude.mempty+ )+ )++instance+ Prelude.Hashable+ CloudWatchMetricsDataSummary+ where+ hashWithSalt _salt CloudWatchMetricsDataSummary' {..} =+ _salt+ `Prelude.hashWithSalt` statusCode+ `Prelude.hashWithSalt` timestampMetricValuePairList++instance Prelude.NFData CloudWatchMetricsDataSummary where+ rnf CloudWatchMetricsDataSummary' {..} =+ Prelude.rnf statusCode+ `Prelude.seq` Prelude.rnf timestampMetricValuePairList
+ gen/Amazonka/DevOpsGuru/Types/CloudWatchMetricsDetail.hs view
@@ -0,0 +1,166 @@+{-# 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.DevOpsGuru.Types.CloudWatchMetricsDetail+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.CloudWatchMetricsDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.CloudWatchMetricsDataSummary+import Amazonka.DevOpsGuru.Types.CloudWatchMetricsDimension+import Amazonka.DevOpsGuru.Types.CloudWatchMetricsStat+import qualified Amazonka.Prelude as Prelude++-- | Information about an Amazon CloudWatch metric.+--+-- /See:/ 'newCloudWatchMetricsDetail' smart constructor.+data CloudWatchMetricsDetail = CloudWatchMetricsDetail'+ { -- | An array of CloudWatch dimensions associated with+ dimensions :: Prelude.Maybe [CloudWatchMetricsDimension],+ -- | This object returns anomaly metric data.+ metricDataSummary :: Prelude.Maybe CloudWatchMetricsDataSummary,+ -- | The name of the CloudWatch metric.+ metricName :: Prelude.Maybe Prelude.Text,+ -- | The namespace of the CloudWatch metric. A namespace is a container for+ -- CloudWatch metrics.+ namespace :: Prelude.Maybe Prelude.Text,+ -- | The length of time associated with the CloudWatch metric in number of+ -- seconds.+ period :: Prelude.Maybe Prelude.Int,+ -- | The type of statistic associated with the CloudWatch metric. For more+ -- information, see+ -- <https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic Statistics>+ -- in the /Amazon CloudWatch User Guide/.+ stat :: Prelude.Maybe CloudWatchMetricsStat,+ -- | The unit of measure used for the CloudWatch metric. For example,+ -- @Bytes@, @Seconds@, @Count@, and @Percent@.+ unit :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CloudWatchMetricsDetail' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dimensions', 'cloudWatchMetricsDetail_dimensions' - An array of CloudWatch dimensions associated with+--+-- 'metricDataSummary', 'cloudWatchMetricsDetail_metricDataSummary' - This object returns anomaly metric data.+--+-- 'metricName', 'cloudWatchMetricsDetail_metricName' - The name of the CloudWatch metric.+--+-- 'namespace', 'cloudWatchMetricsDetail_namespace' - The namespace of the CloudWatch metric. A namespace is a container for+-- CloudWatch metrics.+--+-- 'period', 'cloudWatchMetricsDetail_period' - The length of time associated with the CloudWatch metric in number of+-- seconds.+--+-- 'stat', 'cloudWatchMetricsDetail_stat' - The type of statistic associated with the CloudWatch metric. For more+-- information, see+-- <https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic Statistics>+-- in the /Amazon CloudWatch User Guide/.+--+-- 'unit', 'cloudWatchMetricsDetail_unit' - The unit of measure used for the CloudWatch metric. For example,+-- @Bytes@, @Seconds@, @Count@, and @Percent@.+newCloudWatchMetricsDetail ::+ CloudWatchMetricsDetail+newCloudWatchMetricsDetail =+ CloudWatchMetricsDetail'+ { dimensions =+ Prelude.Nothing,+ metricDataSummary = Prelude.Nothing,+ metricName = Prelude.Nothing,+ namespace = Prelude.Nothing,+ period = Prelude.Nothing,+ stat = Prelude.Nothing,+ unit = Prelude.Nothing+ }++-- | An array of CloudWatch dimensions associated with+cloudWatchMetricsDetail_dimensions :: Lens.Lens' CloudWatchMetricsDetail (Prelude.Maybe [CloudWatchMetricsDimension])+cloudWatchMetricsDetail_dimensions = Lens.lens (\CloudWatchMetricsDetail' {dimensions} -> dimensions) (\s@CloudWatchMetricsDetail' {} a -> s {dimensions = a} :: CloudWatchMetricsDetail) Prelude.. Lens.mapping Lens.coerced++-- | This object returns anomaly metric data.+cloudWatchMetricsDetail_metricDataSummary :: Lens.Lens' CloudWatchMetricsDetail (Prelude.Maybe CloudWatchMetricsDataSummary)+cloudWatchMetricsDetail_metricDataSummary = Lens.lens (\CloudWatchMetricsDetail' {metricDataSummary} -> metricDataSummary) (\s@CloudWatchMetricsDetail' {} a -> s {metricDataSummary = a} :: CloudWatchMetricsDetail)++-- | The name of the CloudWatch metric.+cloudWatchMetricsDetail_metricName :: Lens.Lens' CloudWatchMetricsDetail (Prelude.Maybe Prelude.Text)+cloudWatchMetricsDetail_metricName = Lens.lens (\CloudWatchMetricsDetail' {metricName} -> metricName) (\s@CloudWatchMetricsDetail' {} a -> s {metricName = a} :: CloudWatchMetricsDetail)++-- | The namespace of the CloudWatch metric. A namespace is a container for+-- CloudWatch metrics.+cloudWatchMetricsDetail_namespace :: Lens.Lens' CloudWatchMetricsDetail (Prelude.Maybe Prelude.Text)+cloudWatchMetricsDetail_namespace = Lens.lens (\CloudWatchMetricsDetail' {namespace} -> namespace) (\s@CloudWatchMetricsDetail' {} a -> s {namespace = a} :: CloudWatchMetricsDetail)++-- | The length of time associated with the CloudWatch metric in number of+-- seconds.+cloudWatchMetricsDetail_period :: Lens.Lens' CloudWatchMetricsDetail (Prelude.Maybe Prelude.Int)+cloudWatchMetricsDetail_period = Lens.lens (\CloudWatchMetricsDetail' {period} -> period) (\s@CloudWatchMetricsDetail' {} a -> s {period = a} :: CloudWatchMetricsDetail)++-- | The type of statistic associated with the CloudWatch metric. For more+-- information, see+-- <https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic Statistics>+-- in the /Amazon CloudWatch User Guide/.+cloudWatchMetricsDetail_stat :: Lens.Lens' CloudWatchMetricsDetail (Prelude.Maybe CloudWatchMetricsStat)+cloudWatchMetricsDetail_stat = Lens.lens (\CloudWatchMetricsDetail' {stat} -> stat) (\s@CloudWatchMetricsDetail' {} a -> s {stat = a} :: CloudWatchMetricsDetail)++-- | The unit of measure used for the CloudWatch metric. For example,+-- @Bytes@, @Seconds@, @Count@, and @Percent@.+cloudWatchMetricsDetail_unit :: Lens.Lens' CloudWatchMetricsDetail (Prelude.Maybe Prelude.Text)+cloudWatchMetricsDetail_unit = Lens.lens (\CloudWatchMetricsDetail' {unit} -> unit) (\s@CloudWatchMetricsDetail' {} a -> s {unit = a} :: CloudWatchMetricsDetail)++instance Data.FromJSON CloudWatchMetricsDetail where+ parseJSON =+ Data.withObject+ "CloudWatchMetricsDetail"+ ( \x ->+ CloudWatchMetricsDetail'+ Prelude.<$> (x Data..:? "Dimensions" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "MetricDataSummary")+ Prelude.<*> (x Data..:? "MetricName")+ Prelude.<*> (x Data..:? "Namespace")+ Prelude.<*> (x Data..:? "Period")+ Prelude.<*> (x Data..:? "Stat")+ Prelude.<*> (x Data..:? "Unit")+ )++instance Prelude.Hashable CloudWatchMetricsDetail where+ hashWithSalt _salt CloudWatchMetricsDetail' {..} =+ _salt+ `Prelude.hashWithSalt` dimensions+ `Prelude.hashWithSalt` metricDataSummary+ `Prelude.hashWithSalt` metricName+ `Prelude.hashWithSalt` namespace+ `Prelude.hashWithSalt` period+ `Prelude.hashWithSalt` stat+ `Prelude.hashWithSalt` unit++instance Prelude.NFData CloudWatchMetricsDetail where+ rnf CloudWatchMetricsDetail' {..} =+ Prelude.rnf dimensions+ `Prelude.seq` Prelude.rnf metricDataSummary+ `Prelude.seq` Prelude.rnf metricName+ `Prelude.seq` Prelude.rnf namespace+ `Prelude.seq` Prelude.rnf period+ `Prelude.seq` Prelude.rnf stat+ `Prelude.seq` Prelude.rnf unit
+ gen/Amazonka/DevOpsGuru/Types/CloudWatchMetricsDimension.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.DevOpsGuru.Types.CloudWatchMetricsDimension+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.CloudWatchMetricsDimension 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 of an Amazon CloudWatch metric that is used when DevOps+-- Guru analyzes the resources in your account for operational problems and+-- anomalous behavior. A dimension is a name\/value pair that is part of+-- the identity of a metric. A metric can have up to 10 dimensions. For+-- more information, see+-- <https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Dimension Dimensions>+-- in the /Amazon CloudWatch User Guide/.+--+-- /See:/ 'newCloudWatchMetricsDimension' smart constructor.+data CloudWatchMetricsDimension = CloudWatchMetricsDimension'+ { -- | The name of the CloudWatch dimension.+ name :: Prelude.Maybe Prelude.Text,+ -- | The value of the CloudWatch dimension.+ value :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CloudWatchMetricsDimension' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'cloudWatchMetricsDimension_name' - The name of the CloudWatch dimension.+--+-- 'value', 'cloudWatchMetricsDimension_value' - The value of the CloudWatch dimension.+newCloudWatchMetricsDimension ::+ CloudWatchMetricsDimension+newCloudWatchMetricsDimension =+ CloudWatchMetricsDimension'+ { name = Prelude.Nothing,+ value = Prelude.Nothing+ }++-- | The name of the CloudWatch dimension.+cloudWatchMetricsDimension_name :: Lens.Lens' CloudWatchMetricsDimension (Prelude.Maybe Prelude.Text)+cloudWatchMetricsDimension_name = Lens.lens (\CloudWatchMetricsDimension' {name} -> name) (\s@CloudWatchMetricsDimension' {} a -> s {name = a} :: CloudWatchMetricsDimension)++-- | The value of the CloudWatch dimension.+cloudWatchMetricsDimension_value :: Lens.Lens' CloudWatchMetricsDimension (Prelude.Maybe Prelude.Text)+cloudWatchMetricsDimension_value = Lens.lens (\CloudWatchMetricsDimension' {value} -> value) (\s@CloudWatchMetricsDimension' {} a -> s {value = a} :: CloudWatchMetricsDimension)++instance Data.FromJSON CloudWatchMetricsDimension where+ parseJSON =+ Data.withObject+ "CloudWatchMetricsDimension"+ ( \x ->+ CloudWatchMetricsDimension'+ Prelude.<$> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "Value")+ )++instance Prelude.Hashable CloudWatchMetricsDimension where+ hashWithSalt _salt CloudWatchMetricsDimension' {..} =+ _salt+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` value++instance Prelude.NFData CloudWatchMetricsDimension where+ rnf CloudWatchMetricsDimension' {..} =+ Prelude.rnf name `Prelude.seq` Prelude.rnf value
+ gen/Amazonka/DevOpsGuru/Types/CloudWatchMetricsStat.hs view
@@ -0,0 +1,101 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.Types.CloudWatchMetricsStat+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.CloudWatchMetricsStat+ ( CloudWatchMetricsStat+ ( ..,+ CloudWatchMetricsStat_Average,+ CloudWatchMetricsStat_Maximum,+ CloudWatchMetricsStat_Minimum,+ CloudWatchMetricsStat_P50,+ CloudWatchMetricsStat_P90,+ CloudWatchMetricsStat_P99,+ CloudWatchMetricsStat_SampleCount,+ CloudWatchMetricsStat_Sum+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CloudWatchMetricsStat = CloudWatchMetricsStat'+ { fromCloudWatchMetricsStat ::+ 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 CloudWatchMetricsStat_Average :: CloudWatchMetricsStat+pattern CloudWatchMetricsStat_Average = CloudWatchMetricsStat' "Average"++pattern CloudWatchMetricsStat_Maximum :: CloudWatchMetricsStat+pattern CloudWatchMetricsStat_Maximum = CloudWatchMetricsStat' "Maximum"++pattern CloudWatchMetricsStat_Minimum :: CloudWatchMetricsStat+pattern CloudWatchMetricsStat_Minimum = CloudWatchMetricsStat' "Minimum"++pattern CloudWatchMetricsStat_P50 :: CloudWatchMetricsStat+pattern CloudWatchMetricsStat_P50 = CloudWatchMetricsStat' "p50"++pattern CloudWatchMetricsStat_P90 :: CloudWatchMetricsStat+pattern CloudWatchMetricsStat_P90 = CloudWatchMetricsStat' "p90"++pattern CloudWatchMetricsStat_P99 :: CloudWatchMetricsStat+pattern CloudWatchMetricsStat_P99 = CloudWatchMetricsStat' "p99"++pattern CloudWatchMetricsStat_SampleCount :: CloudWatchMetricsStat+pattern CloudWatchMetricsStat_SampleCount = CloudWatchMetricsStat' "SampleCount"++pattern CloudWatchMetricsStat_Sum :: CloudWatchMetricsStat+pattern CloudWatchMetricsStat_Sum = CloudWatchMetricsStat' "Sum"++{-# COMPLETE+ CloudWatchMetricsStat_Average,+ CloudWatchMetricsStat_Maximum,+ CloudWatchMetricsStat_Minimum,+ CloudWatchMetricsStat_P50,+ CloudWatchMetricsStat_P90,+ CloudWatchMetricsStat_P99,+ CloudWatchMetricsStat_SampleCount,+ CloudWatchMetricsStat_Sum,+ CloudWatchMetricsStat'+ #-}
+ gen/Amazonka/DevOpsGuru/Types/CostEstimationResourceCollectionFilter.hs view
@@ -0,0 +1,221 @@+{-# 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.DevOpsGuru.Types.CostEstimationResourceCollectionFilter+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.CostEstimationResourceCollectionFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.CloudFormationCostEstimationResourceCollectionFilter+import Amazonka.DevOpsGuru.Types.TagCostEstimationResourceCollectionFilter+import qualified Amazonka.Prelude as Prelude++-- | Information about a filter used to specify which Amazon Web Services+-- resources are analyzed to create a monthly DevOps Guru cost estimate.+-- For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/cost-estimate.html Estimate your Amazon DevOps Guru costs>+-- and+-- <http://aws.amazon.com/devops-guru/pricing/ Amazon DevOps Guru pricing>.+--+-- /See:/ 'newCostEstimationResourceCollectionFilter' smart constructor.+data CostEstimationResourceCollectionFilter = CostEstimationResourceCollectionFilter'+ { -- | An object that specifies the CloudFormation stack that defines the+ -- Amazon Web Services resources used to create a monthly estimate for+ -- DevOps Guru.+ cloudFormation :: Prelude.Maybe CloudFormationCostEstimationResourceCollectionFilter,+ -- | The Amazon Web Services tags used to filter the resource collection that+ -- is used for a cost estimate.+ --+ -- Tags help you identify and organize your Amazon Web Services resources.+ -- Many Amazon Web Services services support tagging, so you can assign the+ -- same tag to resources from different services to indicate that the+ -- resources are related. For example, you can assign the same tag to an+ -- Amazon DynamoDB table resource that you assign to an Lambda function.+ -- For more information about using tags, see the+ -- <https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf Tagging best practices>+ -- whitepaper.+ --+ -- Each Amazon Web Services tag has two parts.+ --+ -- - A tag /key/ (for example, @CostCenter@, @Environment@, @Project@, or+ -- @Secret@). Tag /keys/ are case-sensitive.+ --+ -- - An optional field known as a tag /value/ (for example,+ -- @111122223333@, @Production@, or a team name). Omitting the tag+ -- /value/ is the same as using an empty string. Like tag /keys/, tag+ -- /values/ are case-sensitive.+ --+ -- Together these are known as /key/-/value/ pairs.+ --+ -- The string used for a /key/ in a tag that you use to define your+ -- resource coverage must begin with the prefix @Devops-guru-@. The tag+ -- /key/ might be @DevOps-Guru-deployment-application@ or+ -- @devops-guru-rds-application@. When you create a /key/, the case of+ -- characters in the /key/ can be whatever you choose. After you create a+ -- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+ -- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+ -- act as two different /keys/. Possible /key/\//value/ pairs in your+ -- application might be @Devops-Guru-production-application\/RDS@ or+ -- @Devops-Guru-production-application\/containers@.+ tags :: Prelude.Maybe [TagCostEstimationResourceCollectionFilter]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CostEstimationResourceCollectionFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cloudFormation', 'costEstimationResourceCollectionFilter_cloudFormation' - An object that specifies the CloudFormation stack that defines the+-- Amazon Web Services resources used to create a monthly estimate for+-- DevOps Guru.+--+-- 'tags', 'costEstimationResourceCollectionFilter_tags' - The Amazon Web Services tags used to filter the resource collection that+-- is used for a cost estimate.+--+-- Tags help you identify and organize your Amazon Web Services resources.+-- Many Amazon Web Services services support tagging, so you can assign the+-- same tag to resources from different services to indicate that the+-- resources are related. For example, you can assign the same tag to an+-- Amazon DynamoDB table resource that you assign to an Lambda function.+-- For more information about using tags, see the+-- <https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf Tagging best practices>+-- whitepaper.+--+-- Each Amazon Web Services tag has two parts.+--+-- - A tag /key/ (for example, @CostCenter@, @Environment@, @Project@, or+-- @Secret@). Tag /keys/ are case-sensitive.+--+-- - An optional field known as a tag /value/ (for example,+-- @111122223333@, @Production@, or a team name). Omitting the tag+-- /value/ is the same as using an empty string. Like tag /keys/, tag+-- /values/ are case-sensitive.+--+-- Together these are known as /key/-/value/ pairs.+--+-- The string used for a /key/ in a tag that you use to define your+-- resource coverage must begin with the prefix @Devops-guru-@. The tag+-- /key/ might be @DevOps-Guru-deployment-application@ or+-- @devops-guru-rds-application@. When you create a /key/, the case of+-- characters in the /key/ can be whatever you choose. After you create a+-- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+-- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+-- act as two different /keys/. Possible /key/\//value/ pairs in your+-- application might be @Devops-Guru-production-application\/RDS@ or+-- @Devops-Guru-production-application\/containers@.+newCostEstimationResourceCollectionFilter ::+ CostEstimationResourceCollectionFilter+newCostEstimationResourceCollectionFilter =+ CostEstimationResourceCollectionFilter'+ { cloudFormation =+ Prelude.Nothing,+ tags = Prelude.Nothing+ }++-- | An object that specifies the CloudFormation stack that defines the+-- Amazon Web Services resources used to create a monthly estimate for+-- DevOps Guru.+costEstimationResourceCollectionFilter_cloudFormation :: Lens.Lens' CostEstimationResourceCollectionFilter (Prelude.Maybe CloudFormationCostEstimationResourceCollectionFilter)+costEstimationResourceCollectionFilter_cloudFormation = Lens.lens (\CostEstimationResourceCollectionFilter' {cloudFormation} -> cloudFormation) (\s@CostEstimationResourceCollectionFilter' {} a -> s {cloudFormation = a} :: CostEstimationResourceCollectionFilter)++-- | The Amazon Web Services tags used to filter the resource collection that+-- is used for a cost estimate.+--+-- Tags help you identify and organize your Amazon Web Services resources.+-- Many Amazon Web Services services support tagging, so you can assign the+-- same tag to resources from different services to indicate that the+-- resources are related. For example, you can assign the same tag to an+-- Amazon DynamoDB table resource that you assign to an Lambda function.+-- For more information about using tags, see the+-- <https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf Tagging best practices>+-- whitepaper.+--+-- Each Amazon Web Services tag has two parts.+--+-- - A tag /key/ (for example, @CostCenter@, @Environment@, @Project@, or+-- @Secret@). Tag /keys/ are case-sensitive.+--+-- - An optional field known as a tag /value/ (for example,+-- @111122223333@, @Production@, or a team name). Omitting the tag+-- /value/ is the same as using an empty string. Like tag /keys/, tag+-- /values/ are case-sensitive.+--+-- Together these are known as /key/-/value/ pairs.+--+-- The string used for a /key/ in a tag that you use to define your+-- resource coverage must begin with the prefix @Devops-guru-@. The tag+-- /key/ might be @DevOps-Guru-deployment-application@ or+-- @devops-guru-rds-application@. When you create a /key/, the case of+-- characters in the /key/ can be whatever you choose. After you create a+-- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+-- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+-- act as two different /keys/. Possible /key/\//value/ pairs in your+-- application might be @Devops-Guru-production-application\/RDS@ or+-- @Devops-Guru-production-application\/containers@.+costEstimationResourceCollectionFilter_tags :: Lens.Lens' CostEstimationResourceCollectionFilter (Prelude.Maybe [TagCostEstimationResourceCollectionFilter])+costEstimationResourceCollectionFilter_tags = Lens.lens (\CostEstimationResourceCollectionFilter' {tags} -> tags) (\s@CostEstimationResourceCollectionFilter' {} a -> s {tags = a} :: CostEstimationResourceCollectionFilter) Prelude.. Lens.mapping Lens.coerced++instance+ Data.FromJSON+ CostEstimationResourceCollectionFilter+ where+ parseJSON =+ Data.withObject+ "CostEstimationResourceCollectionFilter"+ ( \x ->+ CostEstimationResourceCollectionFilter'+ Prelude.<$> (x Data..:? "CloudFormation")+ Prelude.<*> (x Data..:? "Tags" Data..!= Prelude.mempty)+ )++instance+ Prelude.Hashable+ CostEstimationResourceCollectionFilter+ where+ hashWithSalt+ _salt+ CostEstimationResourceCollectionFilter' {..} =+ _salt+ `Prelude.hashWithSalt` cloudFormation+ `Prelude.hashWithSalt` tags++instance+ Prelude.NFData+ CostEstimationResourceCollectionFilter+ where+ rnf CostEstimationResourceCollectionFilter' {..} =+ Prelude.rnf cloudFormation+ `Prelude.seq` Prelude.rnf tags++instance+ Data.ToJSON+ CostEstimationResourceCollectionFilter+ where+ toJSON CostEstimationResourceCollectionFilter' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CloudFormation" Data..=)+ Prelude.<$> cloudFormation,+ ("Tags" Data..=) Prelude.<$> tags+ ]+ )
+ gen/Amazonka/DevOpsGuru/Types/CostEstimationServiceResourceState.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.DevOpsGuru.Types.CostEstimationServiceResourceState+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.CostEstimationServiceResourceState+ ( CostEstimationServiceResourceState+ ( ..,+ CostEstimationServiceResourceState_ACTIVE,+ CostEstimationServiceResourceState_INACTIVE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CostEstimationServiceResourceState = CostEstimationServiceResourceState'+ { fromCostEstimationServiceResourceState ::+ 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 CostEstimationServiceResourceState_ACTIVE :: CostEstimationServiceResourceState+pattern CostEstimationServiceResourceState_ACTIVE = CostEstimationServiceResourceState' "ACTIVE"++pattern CostEstimationServiceResourceState_INACTIVE :: CostEstimationServiceResourceState+pattern CostEstimationServiceResourceState_INACTIVE = CostEstimationServiceResourceState' "INACTIVE"++{-# COMPLETE+ CostEstimationServiceResourceState_ACTIVE,+ CostEstimationServiceResourceState_INACTIVE,+ CostEstimationServiceResourceState'+ #-}
+ gen/Amazonka/DevOpsGuru/Types/CostEstimationStatus.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.DevOpsGuru.Types.CostEstimationStatus+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.CostEstimationStatus+ ( CostEstimationStatus+ ( ..,+ CostEstimationStatus_COMPLETED,+ CostEstimationStatus_ONGOING+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CostEstimationStatus = CostEstimationStatus'+ { fromCostEstimationStatus ::+ 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 CostEstimationStatus_COMPLETED :: CostEstimationStatus+pattern CostEstimationStatus_COMPLETED = CostEstimationStatus' "COMPLETED"++pattern CostEstimationStatus_ONGOING :: CostEstimationStatus+pattern CostEstimationStatus_ONGOING = CostEstimationStatus' "ONGOING"++{-# COMPLETE+ CostEstimationStatus_COMPLETED,+ CostEstimationStatus_ONGOING,+ CostEstimationStatus'+ #-}
+ gen/Amazonka/DevOpsGuru/Types/CostEstimationTimeRange.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.DevOpsGuru.Types.CostEstimationTimeRange+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.CostEstimationTimeRange 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 time range of a cost estimation.+--+-- /See:/ 'newCostEstimationTimeRange' smart constructor.+data CostEstimationTimeRange = CostEstimationTimeRange'+ { -- | The end time of the cost estimation.+ endTime :: Prelude.Maybe Data.POSIX,+ -- | The start time of the cost estimation.+ startTime :: Prelude.Maybe Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CostEstimationTimeRange' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endTime', 'costEstimationTimeRange_endTime' - The end time of the cost estimation.+--+-- 'startTime', 'costEstimationTimeRange_startTime' - The start time of the cost estimation.+newCostEstimationTimeRange ::+ CostEstimationTimeRange+newCostEstimationTimeRange =+ CostEstimationTimeRange'+ { endTime = Prelude.Nothing,+ startTime = Prelude.Nothing+ }++-- | The end time of the cost estimation.+costEstimationTimeRange_endTime :: Lens.Lens' CostEstimationTimeRange (Prelude.Maybe Prelude.UTCTime)+costEstimationTimeRange_endTime = Lens.lens (\CostEstimationTimeRange' {endTime} -> endTime) (\s@CostEstimationTimeRange' {} a -> s {endTime = a} :: CostEstimationTimeRange) Prelude.. Lens.mapping Data._Time++-- | The start time of the cost estimation.+costEstimationTimeRange_startTime :: Lens.Lens' CostEstimationTimeRange (Prelude.Maybe Prelude.UTCTime)+costEstimationTimeRange_startTime = Lens.lens (\CostEstimationTimeRange' {startTime} -> startTime) (\s@CostEstimationTimeRange' {} a -> s {startTime = a} :: CostEstimationTimeRange) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON CostEstimationTimeRange where+ parseJSON =+ Data.withObject+ "CostEstimationTimeRange"+ ( \x ->+ CostEstimationTimeRange'+ Prelude.<$> (x Data..:? "EndTime")+ Prelude.<*> (x Data..:? "StartTime")+ )++instance Prelude.Hashable CostEstimationTimeRange where+ hashWithSalt _salt CostEstimationTimeRange' {..} =+ _salt+ `Prelude.hashWithSalt` endTime+ `Prelude.hashWithSalt` startTime++instance Prelude.NFData CostEstimationTimeRange where+ rnf CostEstimationTimeRange' {..} =+ Prelude.rnf endTime+ `Prelude.seq` Prelude.rnf startTime
+ gen/Amazonka/DevOpsGuru/Types/EndTimeRange.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.DevOpsGuru.Types.EndTimeRange+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.EndTimeRange 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 range of time that specifies when anomalous behavior in an anomaly or+-- insight ended.+--+-- /See:/ 'newEndTimeRange' smart constructor.+data EndTimeRange = EndTimeRange'+ { -- | The earliest end time in the time range.+ fromTime :: Prelude.Maybe Data.POSIX,+ -- | The latest end time in the time range.+ toTime :: Prelude.Maybe Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EndTimeRange' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fromTime', 'endTimeRange_fromTime' - The earliest end time in the time range.+--+-- 'toTime', 'endTimeRange_toTime' - The latest end time in the time range.+newEndTimeRange ::+ EndTimeRange+newEndTimeRange =+ EndTimeRange'+ { fromTime = Prelude.Nothing,+ toTime = Prelude.Nothing+ }++-- | The earliest end time in the time range.+endTimeRange_fromTime :: Lens.Lens' EndTimeRange (Prelude.Maybe Prelude.UTCTime)+endTimeRange_fromTime = Lens.lens (\EndTimeRange' {fromTime} -> fromTime) (\s@EndTimeRange' {} a -> s {fromTime = a} :: EndTimeRange) Prelude.. Lens.mapping Data._Time++-- | The latest end time in the time range.+endTimeRange_toTime :: Lens.Lens' EndTimeRange (Prelude.Maybe Prelude.UTCTime)+endTimeRange_toTime = Lens.lens (\EndTimeRange' {toTime} -> toTime) (\s@EndTimeRange' {} a -> s {toTime = a} :: EndTimeRange) Prelude.. Lens.mapping Data._Time++instance Prelude.Hashable EndTimeRange where+ hashWithSalt _salt EndTimeRange' {..} =+ _salt+ `Prelude.hashWithSalt` fromTime+ `Prelude.hashWithSalt` toTime++instance Prelude.NFData EndTimeRange where+ rnf EndTimeRange' {..} =+ Prelude.rnf fromTime+ `Prelude.seq` Prelude.rnf toTime++instance Data.ToJSON EndTimeRange where+ toJSON EndTimeRange' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("FromTime" Data..=) Prelude.<$> fromTime,+ ("ToTime" Data..=) Prelude.<$> toTime+ ]+ )
+ gen/Amazonka/DevOpsGuru/Types/Event.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.Types.Event+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.Event where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.EventClass+import Amazonka.DevOpsGuru.Types.EventDataSource+import Amazonka.DevOpsGuru.Types.EventResource+import Amazonka.DevOpsGuru.Types.ResourceCollection+import qualified Amazonka.Prelude as Prelude++-- | An Amazon Web Services resource event. Amazon Web Services resource+-- events and metrics are analyzed by DevOps Guru to find anomalous+-- behavior and provide recommendations to improve your operational+-- solutions.+--+-- /See:/ 'newEvent' smart constructor.+data Event = Event'+ { -- | The source, @AWS_CLOUD_TRAIL@ or @AWS_CODE_DEPLOY@, where DevOps Guru+ -- analysis found the event.+ dataSource :: Prelude.Maybe EventDataSource,+ -- | The class of the event. The class specifies what the event is related+ -- to, such as an infrastructure change, a deployment, or a schema change.+ eventClass :: Prelude.Maybe EventClass,+ -- | The Amazon Web Services source that emitted the event.+ eventSource :: Prelude.Maybe Prelude.Text,+ -- | The ID of the event.+ id :: Prelude.Maybe Prelude.Text,+ -- | The name of the event.+ name :: Prelude.Maybe Prelude.Text,+ resourceCollection :: Prelude.Maybe ResourceCollection,+ -- | An @EventResource@ object that contains information about the resource+ -- that emitted the event.+ resources :: Prelude.Maybe [EventResource],+ -- | A @Timestamp@ that specifies the time the event occurred.+ time :: Prelude.Maybe Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Event' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataSource', 'event_dataSource' - The source, @AWS_CLOUD_TRAIL@ or @AWS_CODE_DEPLOY@, where DevOps Guru+-- analysis found the event.+--+-- 'eventClass', 'event_eventClass' - The class of the event. The class specifies what the event is related+-- to, such as an infrastructure change, a deployment, or a schema change.+--+-- 'eventSource', 'event_eventSource' - The Amazon Web Services source that emitted the event.+--+-- 'id', 'event_id' - The ID of the event.+--+-- 'name', 'event_name' - The name of the event.+--+-- 'resourceCollection', 'event_resourceCollection' - Undocumented member.+--+-- 'resources', 'event_resources' - An @EventResource@ object that contains information about the resource+-- that emitted the event.+--+-- 'time', 'event_time' - A @Timestamp@ that specifies the time the event occurred.+newEvent ::+ Event+newEvent =+ Event'+ { dataSource = Prelude.Nothing,+ eventClass = Prelude.Nothing,+ eventSource = Prelude.Nothing,+ id = Prelude.Nothing,+ name = Prelude.Nothing,+ resourceCollection = Prelude.Nothing,+ resources = Prelude.Nothing,+ time = Prelude.Nothing+ }++-- | The source, @AWS_CLOUD_TRAIL@ or @AWS_CODE_DEPLOY@, where DevOps Guru+-- analysis found the event.+event_dataSource :: Lens.Lens' Event (Prelude.Maybe EventDataSource)+event_dataSource = Lens.lens (\Event' {dataSource} -> dataSource) (\s@Event' {} a -> s {dataSource = a} :: Event)++-- | The class of the event. The class specifies what the event is related+-- to, such as an infrastructure change, a deployment, or a schema change.+event_eventClass :: Lens.Lens' Event (Prelude.Maybe EventClass)+event_eventClass = Lens.lens (\Event' {eventClass} -> eventClass) (\s@Event' {} a -> s {eventClass = a} :: Event)++-- | The Amazon Web Services source that emitted the event.+event_eventSource :: Lens.Lens' Event (Prelude.Maybe Prelude.Text)+event_eventSource = Lens.lens (\Event' {eventSource} -> eventSource) (\s@Event' {} a -> s {eventSource = a} :: Event)++-- | The ID of the event.+event_id :: Lens.Lens' Event (Prelude.Maybe Prelude.Text)+event_id = Lens.lens (\Event' {id} -> id) (\s@Event' {} a -> s {id = a} :: Event)++-- | The name of the event.+event_name :: Lens.Lens' Event (Prelude.Maybe Prelude.Text)+event_name = Lens.lens (\Event' {name} -> name) (\s@Event' {} a -> s {name = a} :: Event)++-- | Undocumented member.+event_resourceCollection :: Lens.Lens' Event (Prelude.Maybe ResourceCollection)+event_resourceCollection = Lens.lens (\Event' {resourceCollection} -> resourceCollection) (\s@Event' {} a -> s {resourceCollection = a} :: Event)++-- | An @EventResource@ object that contains information about the resource+-- that emitted the event.+event_resources :: Lens.Lens' Event (Prelude.Maybe [EventResource])+event_resources = Lens.lens (\Event' {resources} -> resources) (\s@Event' {} a -> s {resources = a} :: Event) Prelude.. Lens.mapping Lens.coerced++-- | A @Timestamp@ that specifies the time the event occurred.+event_time :: Lens.Lens' Event (Prelude.Maybe Prelude.UTCTime)+event_time = Lens.lens (\Event' {time} -> time) (\s@Event' {} a -> s {time = a} :: Event) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON Event where+ parseJSON =+ Data.withObject+ "Event"+ ( \x ->+ Event'+ Prelude.<$> (x Data..:? "DataSource")+ Prelude.<*> (x Data..:? "EventClass")+ Prelude.<*> (x Data..:? "EventSource")+ Prelude.<*> (x Data..:? "Id")+ Prelude.<*> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "ResourceCollection")+ Prelude.<*> (x Data..:? "Resources" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "Time")+ )++instance Prelude.Hashable Event where+ hashWithSalt _salt Event' {..} =+ _salt+ `Prelude.hashWithSalt` dataSource+ `Prelude.hashWithSalt` eventClass+ `Prelude.hashWithSalt` eventSource+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` resourceCollection+ `Prelude.hashWithSalt` resources+ `Prelude.hashWithSalt` time++instance Prelude.NFData Event where+ rnf Event' {..} =+ Prelude.rnf dataSource+ `Prelude.seq` Prelude.rnf eventClass+ `Prelude.seq` Prelude.rnf eventSource+ `Prelude.seq` Prelude.rnf id+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf resourceCollection+ `Prelude.seq` Prelude.rnf resources+ `Prelude.seq` Prelude.rnf time
+ gen/Amazonka/DevOpsGuru/Types/EventClass.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.DevOpsGuru.Types.EventClass+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.EventClass+ ( EventClass+ ( ..,+ EventClass_CONFIG_CHANGE,+ EventClass_DEPLOYMENT,+ EventClass_INFRASTRUCTURE,+ EventClass_SCHEMA_CHANGE,+ EventClass_SECURITY_CHANGE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EventClass = EventClass'+ { fromEventClass ::+ 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 EventClass_CONFIG_CHANGE :: EventClass+pattern EventClass_CONFIG_CHANGE = EventClass' "CONFIG_CHANGE"++pattern EventClass_DEPLOYMENT :: EventClass+pattern EventClass_DEPLOYMENT = EventClass' "DEPLOYMENT"++pattern EventClass_INFRASTRUCTURE :: EventClass+pattern EventClass_INFRASTRUCTURE = EventClass' "INFRASTRUCTURE"++pattern EventClass_SCHEMA_CHANGE :: EventClass+pattern EventClass_SCHEMA_CHANGE = EventClass' "SCHEMA_CHANGE"++pattern EventClass_SECURITY_CHANGE :: EventClass+pattern EventClass_SECURITY_CHANGE = EventClass' "SECURITY_CHANGE"++{-# COMPLETE+ EventClass_CONFIG_CHANGE,+ EventClass_DEPLOYMENT,+ EventClass_INFRASTRUCTURE,+ EventClass_SCHEMA_CHANGE,+ EventClass_SECURITY_CHANGE,+ EventClass'+ #-}
+ gen/Amazonka/DevOpsGuru/Types/EventDataSource.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.DevOpsGuru.Types.EventDataSource+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.EventDataSource+ ( EventDataSource+ ( ..,+ EventDataSource_AWS_CLOUD_TRAIL,+ EventDataSource_AWS_CODE_DEPLOY+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EventDataSource = EventDataSource'+ { fromEventDataSource ::+ 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 EventDataSource_AWS_CLOUD_TRAIL :: EventDataSource+pattern EventDataSource_AWS_CLOUD_TRAIL = EventDataSource' "AWS_CLOUD_TRAIL"++pattern EventDataSource_AWS_CODE_DEPLOY :: EventDataSource+pattern EventDataSource_AWS_CODE_DEPLOY = EventDataSource' "AWS_CODE_DEPLOY"++{-# COMPLETE+ EventDataSource_AWS_CLOUD_TRAIL,+ EventDataSource_AWS_CODE_DEPLOY,+ EventDataSource'+ #-}
+ gen/Amazonka/DevOpsGuru/Types/EventResource.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.DevOpsGuru.Types.EventResource+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.EventResource 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 Amazon Web Services resource that emitted an event. Amazon Web+-- Services resource events and metrics are analyzed by DevOps Guru to find+-- anomalous behavior and provide recommendations to improve your+-- operational solutions.+--+-- /See:/ 'newEventResource' smart constructor.+data EventResource = EventResource'+ { -- | The Amazon Resource Name (ARN) of the resource that emitted an event.+ arn :: Prelude.Maybe Prelude.Text,+ -- | The name of the resource that emitted an event.+ name :: Prelude.Maybe Prelude.Text,+ -- | The type of resource that emitted an event.+ type' :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EventResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'eventResource_arn' - The Amazon Resource Name (ARN) of the resource that emitted an event.+--+-- 'name', 'eventResource_name' - The name of the resource that emitted an event.+--+-- 'type'', 'eventResource_type' - The type of resource that emitted an event.+newEventResource ::+ EventResource+newEventResource =+ EventResource'+ { arn = Prelude.Nothing,+ name = Prelude.Nothing,+ type' = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the resource that emitted an event.+eventResource_arn :: Lens.Lens' EventResource (Prelude.Maybe Prelude.Text)+eventResource_arn = Lens.lens (\EventResource' {arn} -> arn) (\s@EventResource' {} a -> s {arn = a} :: EventResource)++-- | The name of the resource that emitted an event.+eventResource_name :: Lens.Lens' EventResource (Prelude.Maybe Prelude.Text)+eventResource_name = Lens.lens (\EventResource' {name} -> name) (\s@EventResource' {} a -> s {name = a} :: EventResource)++-- | The type of resource that emitted an event.+eventResource_type :: Lens.Lens' EventResource (Prelude.Maybe Prelude.Text)+eventResource_type = Lens.lens (\EventResource' {type'} -> type') (\s@EventResource' {} a -> s {type' = a} :: EventResource)++instance Data.FromJSON EventResource where+ parseJSON =+ Data.withObject+ "EventResource"+ ( \x ->+ EventResource'+ Prelude.<$> (x Data..:? "Arn")+ Prelude.<*> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "Type")+ )++instance Prelude.Hashable EventResource where+ hashWithSalt _salt EventResource' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` type'++instance Prelude.NFData EventResource where+ rnf EventResource' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/DevOpsGuru/Types/EventSourceOptInStatus.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.DevOpsGuru.Types.EventSourceOptInStatus+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.EventSourceOptInStatus+ ( EventSourceOptInStatus+ ( ..,+ EventSourceOptInStatus_DISABLED,+ EventSourceOptInStatus_ENABLED+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EventSourceOptInStatus = EventSourceOptInStatus'+ { fromEventSourceOptInStatus ::+ 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 EventSourceOptInStatus_DISABLED :: EventSourceOptInStatus+pattern EventSourceOptInStatus_DISABLED = EventSourceOptInStatus' "DISABLED"++pattern EventSourceOptInStatus_ENABLED :: EventSourceOptInStatus+pattern EventSourceOptInStatus_ENABLED = EventSourceOptInStatus' "ENABLED"++{-# COMPLETE+ EventSourceOptInStatus_DISABLED,+ EventSourceOptInStatus_ENABLED,+ EventSourceOptInStatus'+ #-}
+ gen/Amazonka/DevOpsGuru/Types/EventSourcesConfig.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.DevOpsGuru.Types.EventSourcesConfig+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.EventSourcesConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.AmazonCodeGuruProfilerIntegration+import qualified Amazonka.Prelude as Prelude++-- | Information about the integration of DevOps Guru as consumer with+-- another AWS service, such as AWS CodeGuru Profiler via EventBridge.+--+-- /See:/ 'newEventSourcesConfig' smart constructor.+data EventSourcesConfig = EventSourcesConfig'+ { -- | Information about whether DevOps Guru is configured to consume+ -- recommendations which are generated from AWS CodeGuru Profiler.+ amazonCodeGuruProfiler :: Prelude.Maybe AmazonCodeGuruProfilerIntegration+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EventSourcesConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'amazonCodeGuruProfiler', 'eventSourcesConfig_amazonCodeGuruProfiler' - Information about whether DevOps Guru is configured to consume+-- recommendations which are generated from AWS CodeGuru Profiler.+newEventSourcesConfig ::+ EventSourcesConfig+newEventSourcesConfig =+ EventSourcesConfig'+ { amazonCodeGuruProfiler =+ Prelude.Nothing+ }++-- | Information about whether DevOps Guru is configured to consume+-- recommendations which are generated from AWS CodeGuru Profiler.+eventSourcesConfig_amazonCodeGuruProfiler :: Lens.Lens' EventSourcesConfig (Prelude.Maybe AmazonCodeGuruProfilerIntegration)+eventSourcesConfig_amazonCodeGuruProfiler = Lens.lens (\EventSourcesConfig' {amazonCodeGuruProfiler} -> amazonCodeGuruProfiler) (\s@EventSourcesConfig' {} a -> s {amazonCodeGuruProfiler = a} :: EventSourcesConfig)++instance Data.FromJSON EventSourcesConfig where+ parseJSON =+ Data.withObject+ "EventSourcesConfig"+ ( \x ->+ EventSourcesConfig'+ Prelude.<$> (x Data..:? "AmazonCodeGuruProfiler")+ )++instance Prelude.Hashable EventSourcesConfig where+ hashWithSalt _salt EventSourcesConfig' {..} =+ _salt `Prelude.hashWithSalt` amazonCodeGuruProfiler++instance Prelude.NFData EventSourcesConfig where+ rnf EventSourcesConfig' {..} =+ Prelude.rnf amazonCodeGuruProfiler++instance Data.ToJSON EventSourcesConfig where+ toJSON EventSourcesConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AmazonCodeGuruProfiler" Data..=)+ Prelude.<$> amazonCodeGuruProfiler+ ]+ )
+ gen/Amazonka/DevOpsGuru/Types/EventTimeRange.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.DevOpsGuru.Types.EventTimeRange+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.EventTimeRange 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 time range during which an Amazon Web Services event occurred.+-- Amazon Web Services resource events and metrics are analyzed by DevOps+-- Guru to find anomalous behavior and provide recommendations to improve+-- your operational solutions.+--+-- /See:/ 'newEventTimeRange' smart constructor.+data EventTimeRange = EventTimeRange'+ { -- | The time when the event started.+ fromTime :: Data.POSIX,+ -- | The time when the event ended.+ toTime :: Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EventTimeRange' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fromTime', 'eventTimeRange_fromTime' - The time when the event started.+--+-- 'toTime', 'eventTimeRange_toTime' - The time when the event ended.+newEventTimeRange ::+ -- | 'fromTime'+ Prelude.UTCTime ->+ -- | 'toTime'+ Prelude.UTCTime ->+ EventTimeRange+newEventTimeRange pFromTime_ pToTime_ =+ EventTimeRange'+ { fromTime =+ Data._Time Lens.# pFromTime_,+ toTime = Data._Time Lens.# pToTime_+ }++-- | The time when the event started.+eventTimeRange_fromTime :: Lens.Lens' EventTimeRange Prelude.UTCTime+eventTimeRange_fromTime = Lens.lens (\EventTimeRange' {fromTime} -> fromTime) (\s@EventTimeRange' {} a -> s {fromTime = a} :: EventTimeRange) Prelude.. Data._Time++-- | The time when the event ended.+eventTimeRange_toTime :: Lens.Lens' EventTimeRange Prelude.UTCTime+eventTimeRange_toTime = Lens.lens (\EventTimeRange' {toTime} -> toTime) (\s@EventTimeRange' {} a -> s {toTime = a} :: EventTimeRange) Prelude.. Data._Time++instance Prelude.Hashable EventTimeRange where+ hashWithSalt _salt EventTimeRange' {..} =+ _salt+ `Prelude.hashWithSalt` fromTime+ `Prelude.hashWithSalt` toTime++instance Prelude.NFData EventTimeRange where+ rnf EventTimeRange' {..} =+ Prelude.rnf fromTime+ `Prelude.seq` Prelude.rnf toTime++instance Data.ToJSON EventTimeRange where+ toJSON EventTimeRange' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("FromTime" Data..= fromTime),+ Prelude.Just ("ToTime" Data..= toTime)+ ]+ )
+ gen/Amazonka/DevOpsGuru/Types/InsightFeedback.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.DevOpsGuru.Types.InsightFeedback+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.InsightFeedback where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.InsightFeedbackOption+import qualified Amazonka.Prelude as Prelude++-- | Information about insight feedback received from a customer.+--+-- /See:/ 'newInsightFeedback' smart constructor.+data InsightFeedback = InsightFeedback'+ { -- | The feedback provided by the customer.+ feedback :: Prelude.Maybe InsightFeedbackOption,+ -- | The insight feedback ID.+ id :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InsightFeedback' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'feedback', 'insightFeedback_feedback' - The feedback provided by the customer.+--+-- 'id', 'insightFeedback_id' - The insight feedback ID.+newInsightFeedback ::+ InsightFeedback+newInsightFeedback =+ InsightFeedback'+ { feedback = Prelude.Nothing,+ id = Prelude.Nothing+ }++-- | The feedback provided by the customer.+insightFeedback_feedback :: Lens.Lens' InsightFeedback (Prelude.Maybe InsightFeedbackOption)+insightFeedback_feedback = Lens.lens (\InsightFeedback' {feedback} -> feedback) (\s@InsightFeedback' {} a -> s {feedback = a} :: InsightFeedback)++-- | The insight feedback ID.+insightFeedback_id :: Lens.Lens' InsightFeedback (Prelude.Maybe Prelude.Text)+insightFeedback_id = Lens.lens (\InsightFeedback' {id} -> id) (\s@InsightFeedback' {} a -> s {id = a} :: InsightFeedback)++instance Data.FromJSON InsightFeedback where+ parseJSON =+ Data.withObject+ "InsightFeedback"+ ( \x ->+ InsightFeedback'+ Prelude.<$> (x Data..:? "Feedback")+ Prelude.<*> (x Data..:? "Id")+ )++instance Prelude.Hashable InsightFeedback where+ hashWithSalt _salt InsightFeedback' {..} =+ _salt+ `Prelude.hashWithSalt` feedback+ `Prelude.hashWithSalt` id++instance Prelude.NFData InsightFeedback where+ rnf InsightFeedback' {..} =+ Prelude.rnf feedback `Prelude.seq` Prelude.rnf id++instance Data.ToJSON InsightFeedback where+ toJSON InsightFeedback' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Feedback" Data..=) Prelude.<$> feedback,+ ("Id" Data..=) Prelude.<$> id+ ]+ )
+ gen/Amazonka/DevOpsGuru/Types/InsightFeedbackOption.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.DevOpsGuru.Types.InsightFeedbackOption+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.InsightFeedbackOption+ ( InsightFeedbackOption+ ( ..,+ InsightFeedbackOption_ALERT_TOO_SENSITIVE,+ InsightFeedbackOption_DATA_INCORRECT,+ InsightFeedbackOption_DATA_NOISY_ANOMALY,+ InsightFeedbackOption_RECOMMENDATION_USEFUL,+ InsightFeedbackOption_VALID_COLLECTION+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype InsightFeedbackOption = InsightFeedbackOption'+ { fromInsightFeedbackOption ::+ 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 InsightFeedbackOption_ALERT_TOO_SENSITIVE :: InsightFeedbackOption+pattern InsightFeedbackOption_ALERT_TOO_SENSITIVE = InsightFeedbackOption' "ALERT_TOO_SENSITIVE"++pattern InsightFeedbackOption_DATA_INCORRECT :: InsightFeedbackOption+pattern InsightFeedbackOption_DATA_INCORRECT = InsightFeedbackOption' "DATA_INCORRECT"++pattern InsightFeedbackOption_DATA_NOISY_ANOMALY :: InsightFeedbackOption+pattern InsightFeedbackOption_DATA_NOISY_ANOMALY = InsightFeedbackOption' "DATA_NOISY_ANOMALY"++pattern InsightFeedbackOption_RECOMMENDATION_USEFUL :: InsightFeedbackOption+pattern InsightFeedbackOption_RECOMMENDATION_USEFUL = InsightFeedbackOption' "RECOMMENDATION_USEFUL"++pattern InsightFeedbackOption_VALID_COLLECTION :: InsightFeedbackOption+pattern InsightFeedbackOption_VALID_COLLECTION = InsightFeedbackOption' "VALID_COLLECTION"++{-# COMPLETE+ InsightFeedbackOption_ALERT_TOO_SENSITIVE,+ InsightFeedbackOption_DATA_INCORRECT,+ InsightFeedbackOption_DATA_NOISY_ANOMALY,+ InsightFeedbackOption_RECOMMENDATION_USEFUL,+ InsightFeedbackOption_VALID_COLLECTION,+ InsightFeedbackOption'+ #-}
+ gen/Amazonka/DevOpsGuru/Types/InsightHealth.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.DevOpsGuru.Types.InsightHealth+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.InsightHealth where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about the number of open reactive and proactive insights+-- that can be used to gauge the health of your system.+--+-- /See:/ 'newInsightHealth' smart constructor.+data InsightHealth = InsightHealth'+ { -- | The Meant Time to Recover (MTTR) for the insight.+ meanTimeToRecoverInMilliseconds :: Prelude.Maybe Prelude.Integer,+ -- | The number of open proactive insights.+ openProactiveInsights :: Prelude.Maybe Prelude.Int,+ -- | The number of open reactive insights.+ openReactiveInsights :: Prelude.Maybe Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InsightHealth' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'meanTimeToRecoverInMilliseconds', 'insightHealth_meanTimeToRecoverInMilliseconds' - The Meant Time to Recover (MTTR) for the insight.+--+-- 'openProactiveInsights', 'insightHealth_openProactiveInsights' - The number of open proactive insights.+--+-- 'openReactiveInsights', 'insightHealth_openReactiveInsights' - The number of open reactive insights.+newInsightHealth ::+ InsightHealth+newInsightHealth =+ InsightHealth'+ { meanTimeToRecoverInMilliseconds =+ Prelude.Nothing,+ openProactiveInsights = Prelude.Nothing,+ openReactiveInsights = Prelude.Nothing+ }++-- | The Meant Time to Recover (MTTR) for the insight.+insightHealth_meanTimeToRecoverInMilliseconds :: Lens.Lens' InsightHealth (Prelude.Maybe Prelude.Integer)+insightHealth_meanTimeToRecoverInMilliseconds = Lens.lens (\InsightHealth' {meanTimeToRecoverInMilliseconds} -> meanTimeToRecoverInMilliseconds) (\s@InsightHealth' {} a -> s {meanTimeToRecoverInMilliseconds = a} :: InsightHealth)++-- | The number of open proactive insights.+insightHealth_openProactiveInsights :: Lens.Lens' InsightHealth (Prelude.Maybe Prelude.Int)+insightHealth_openProactiveInsights = Lens.lens (\InsightHealth' {openProactiveInsights} -> openProactiveInsights) (\s@InsightHealth' {} a -> s {openProactiveInsights = a} :: InsightHealth)++-- | The number of open reactive insights.+insightHealth_openReactiveInsights :: Lens.Lens' InsightHealth (Prelude.Maybe Prelude.Int)+insightHealth_openReactiveInsights = Lens.lens (\InsightHealth' {openReactiveInsights} -> openReactiveInsights) (\s@InsightHealth' {} a -> s {openReactiveInsights = a} :: InsightHealth)++instance Data.FromJSON InsightHealth where+ parseJSON =+ Data.withObject+ "InsightHealth"+ ( \x ->+ InsightHealth'+ Prelude.<$> (x Data..:? "MeanTimeToRecoverInMilliseconds")+ Prelude.<*> (x Data..:? "OpenProactiveInsights")+ Prelude.<*> (x Data..:? "OpenReactiveInsights")+ )++instance Prelude.Hashable InsightHealth where+ hashWithSalt _salt InsightHealth' {..} =+ _salt+ `Prelude.hashWithSalt` meanTimeToRecoverInMilliseconds+ `Prelude.hashWithSalt` openProactiveInsights+ `Prelude.hashWithSalt` openReactiveInsights++instance Prelude.NFData InsightHealth where+ rnf InsightHealth' {..} =+ Prelude.rnf meanTimeToRecoverInMilliseconds+ `Prelude.seq` Prelude.rnf openProactiveInsights+ `Prelude.seq` Prelude.rnf openReactiveInsights
+ gen/Amazonka/DevOpsGuru/Types/InsightSeverity.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.DevOpsGuru.Types.InsightSeverity+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.InsightSeverity+ ( InsightSeverity+ ( ..,+ InsightSeverity_HIGH,+ InsightSeverity_LOW,+ InsightSeverity_MEDIUM+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype InsightSeverity = InsightSeverity'+ { fromInsightSeverity ::+ 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 InsightSeverity_HIGH :: InsightSeverity+pattern InsightSeverity_HIGH = InsightSeverity' "HIGH"++pattern InsightSeverity_LOW :: InsightSeverity+pattern InsightSeverity_LOW = InsightSeverity' "LOW"++pattern InsightSeverity_MEDIUM :: InsightSeverity+pattern InsightSeverity_MEDIUM = InsightSeverity' "MEDIUM"++{-# COMPLETE+ InsightSeverity_HIGH,+ InsightSeverity_LOW,+ InsightSeverity_MEDIUM,+ InsightSeverity'+ #-}
+ gen/Amazonka/DevOpsGuru/Types/InsightStatus.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.DevOpsGuru.Types.InsightStatus+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.InsightStatus+ ( InsightStatus+ ( ..,+ InsightStatus_CLOSED,+ InsightStatus_ONGOING+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype InsightStatus = InsightStatus'+ { fromInsightStatus ::+ 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 InsightStatus_CLOSED :: InsightStatus+pattern InsightStatus_CLOSED = InsightStatus' "CLOSED"++pattern InsightStatus_ONGOING :: InsightStatus+pattern InsightStatus_ONGOING = InsightStatus' "ONGOING"++{-# COMPLETE+ InsightStatus_CLOSED,+ InsightStatus_ONGOING,+ InsightStatus'+ #-}
+ gen/Amazonka/DevOpsGuru/Types/InsightTimeRange.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.DevOpsGuru.Types.InsightTimeRange+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.InsightTimeRange 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 time ranged that specifies when the observed behavior in an insight+-- started and ended.+--+-- /See:/ 'newInsightTimeRange' smart constructor.+data InsightTimeRange = InsightTimeRange'+ { -- | The time when the behavior described in an insight ended.+ endTime :: Prelude.Maybe Data.POSIX,+ -- | The time when the behavior described in an insight started.+ startTime :: Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InsightTimeRange' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endTime', 'insightTimeRange_endTime' - The time when the behavior described in an insight ended.+--+-- 'startTime', 'insightTimeRange_startTime' - The time when the behavior described in an insight started.+newInsightTimeRange ::+ -- | 'startTime'+ Prelude.UTCTime ->+ InsightTimeRange+newInsightTimeRange pStartTime_ =+ InsightTimeRange'+ { endTime = Prelude.Nothing,+ startTime = Data._Time Lens.# pStartTime_+ }++-- | The time when the behavior described in an insight ended.+insightTimeRange_endTime :: Lens.Lens' InsightTimeRange (Prelude.Maybe Prelude.UTCTime)+insightTimeRange_endTime = Lens.lens (\InsightTimeRange' {endTime} -> endTime) (\s@InsightTimeRange' {} a -> s {endTime = a} :: InsightTimeRange) Prelude.. Lens.mapping Data._Time++-- | The time when the behavior described in an insight started.+insightTimeRange_startTime :: Lens.Lens' InsightTimeRange Prelude.UTCTime+insightTimeRange_startTime = Lens.lens (\InsightTimeRange' {startTime} -> startTime) (\s@InsightTimeRange' {} a -> s {startTime = a} :: InsightTimeRange) Prelude.. Data._Time++instance Data.FromJSON InsightTimeRange where+ parseJSON =+ Data.withObject+ "InsightTimeRange"+ ( \x ->+ InsightTimeRange'+ Prelude.<$> (x Data..:? "EndTime")+ Prelude.<*> (x Data..: "StartTime")+ )++instance Prelude.Hashable InsightTimeRange where+ hashWithSalt _salt InsightTimeRange' {..} =+ _salt+ `Prelude.hashWithSalt` endTime+ `Prelude.hashWithSalt` startTime++instance Prelude.NFData InsightTimeRange where+ rnf InsightTimeRange' {..} =+ Prelude.rnf endTime+ `Prelude.seq` Prelude.rnf startTime
+ gen/Amazonka/DevOpsGuru/Types/InsightType.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.DevOpsGuru.Types.InsightType+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.InsightType+ ( InsightType+ ( ..,+ InsightType_PROACTIVE,+ InsightType_REACTIVE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype InsightType = InsightType'+ { fromInsightType ::+ 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 InsightType_PROACTIVE :: InsightType+pattern InsightType_PROACTIVE = InsightType' "PROACTIVE"++pattern InsightType_REACTIVE :: InsightType+pattern InsightType_REACTIVE = InsightType' "REACTIVE"++{-# COMPLETE+ InsightType_PROACTIVE,+ InsightType_REACTIVE,+ InsightType'+ #-}
+ gen/Amazonka/DevOpsGuru/Types/ListEventsFilters.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.DevOpsGuru.Types.ListEventsFilters+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.ListEventsFilters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.EventClass+import Amazonka.DevOpsGuru.Types.EventDataSource+import Amazonka.DevOpsGuru.Types.EventTimeRange+import Amazonka.DevOpsGuru.Types.ResourceCollection+import qualified Amazonka.Prelude as Prelude++-- | Filters you can use to specify which events are returned when+-- @ListEvents@ is called.+--+-- /See:/ 'newListEventsFilters' smart constructor.+data ListEventsFilters = ListEventsFilters'+ { -- | The source, @AWS_CLOUD_TRAIL@ or @AWS_CODE_DEPLOY@, of the events you+ -- want returned.+ dataSource :: Prelude.Maybe EventDataSource,+ -- | The class of the events you want to filter for, such as an+ -- infrastructure change, a deployment, or a schema change.+ eventClass :: Prelude.Maybe EventClass,+ -- | The Amazon Web Services source that emitted the events you want to+ -- filter for.+ eventSource :: Prelude.Maybe Prelude.Text,+ -- | A time range during which you want the filtered events to have occurred.+ eventTimeRange :: Prelude.Maybe EventTimeRange,+ -- | An ID of an insight that is related to the events you want to filter+ -- for.+ insightId :: Prelude.Maybe Prelude.Text,+ resourceCollection :: Prelude.Maybe ResourceCollection+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListEventsFilters' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataSource', 'listEventsFilters_dataSource' - The source, @AWS_CLOUD_TRAIL@ or @AWS_CODE_DEPLOY@, of the events you+-- want returned.+--+-- 'eventClass', 'listEventsFilters_eventClass' - The class of the events you want to filter for, such as an+-- infrastructure change, a deployment, or a schema change.+--+-- 'eventSource', 'listEventsFilters_eventSource' - The Amazon Web Services source that emitted the events you want to+-- filter for.+--+-- 'eventTimeRange', 'listEventsFilters_eventTimeRange' - A time range during which you want the filtered events to have occurred.+--+-- 'insightId', 'listEventsFilters_insightId' - An ID of an insight that is related to the events you want to filter+-- for.+--+-- 'resourceCollection', 'listEventsFilters_resourceCollection' - Undocumented member.+newListEventsFilters ::+ ListEventsFilters+newListEventsFilters =+ ListEventsFilters'+ { dataSource = Prelude.Nothing,+ eventClass = Prelude.Nothing,+ eventSource = Prelude.Nothing,+ eventTimeRange = Prelude.Nothing,+ insightId = Prelude.Nothing,+ resourceCollection = Prelude.Nothing+ }++-- | The source, @AWS_CLOUD_TRAIL@ or @AWS_CODE_DEPLOY@, of the events you+-- want returned.+listEventsFilters_dataSource :: Lens.Lens' ListEventsFilters (Prelude.Maybe EventDataSource)+listEventsFilters_dataSource = Lens.lens (\ListEventsFilters' {dataSource} -> dataSource) (\s@ListEventsFilters' {} a -> s {dataSource = a} :: ListEventsFilters)++-- | The class of the events you want to filter for, such as an+-- infrastructure change, a deployment, or a schema change.+listEventsFilters_eventClass :: Lens.Lens' ListEventsFilters (Prelude.Maybe EventClass)+listEventsFilters_eventClass = Lens.lens (\ListEventsFilters' {eventClass} -> eventClass) (\s@ListEventsFilters' {} a -> s {eventClass = a} :: ListEventsFilters)++-- | The Amazon Web Services source that emitted the events you want to+-- filter for.+listEventsFilters_eventSource :: Lens.Lens' ListEventsFilters (Prelude.Maybe Prelude.Text)+listEventsFilters_eventSource = Lens.lens (\ListEventsFilters' {eventSource} -> eventSource) (\s@ListEventsFilters' {} a -> s {eventSource = a} :: ListEventsFilters)++-- | A time range during which you want the filtered events to have occurred.+listEventsFilters_eventTimeRange :: Lens.Lens' ListEventsFilters (Prelude.Maybe EventTimeRange)+listEventsFilters_eventTimeRange = Lens.lens (\ListEventsFilters' {eventTimeRange} -> eventTimeRange) (\s@ListEventsFilters' {} a -> s {eventTimeRange = a} :: ListEventsFilters)++-- | An ID of an insight that is related to the events you want to filter+-- for.+listEventsFilters_insightId :: Lens.Lens' ListEventsFilters (Prelude.Maybe Prelude.Text)+listEventsFilters_insightId = Lens.lens (\ListEventsFilters' {insightId} -> insightId) (\s@ListEventsFilters' {} a -> s {insightId = a} :: ListEventsFilters)++-- | Undocumented member.+listEventsFilters_resourceCollection :: Lens.Lens' ListEventsFilters (Prelude.Maybe ResourceCollection)+listEventsFilters_resourceCollection = Lens.lens (\ListEventsFilters' {resourceCollection} -> resourceCollection) (\s@ListEventsFilters' {} a -> s {resourceCollection = a} :: ListEventsFilters)++instance Prelude.Hashable ListEventsFilters where+ hashWithSalt _salt ListEventsFilters' {..} =+ _salt+ `Prelude.hashWithSalt` dataSource+ `Prelude.hashWithSalt` eventClass+ `Prelude.hashWithSalt` eventSource+ `Prelude.hashWithSalt` eventTimeRange+ `Prelude.hashWithSalt` insightId+ `Prelude.hashWithSalt` resourceCollection++instance Prelude.NFData ListEventsFilters where+ rnf ListEventsFilters' {..} =+ Prelude.rnf dataSource+ `Prelude.seq` Prelude.rnf eventClass+ `Prelude.seq` Prelude.rnf eventSource+ `Prelude.seq` Prelude.rnf eventTimeRange+ `Prelude.seq` Prelude.rnf insightId+ `Prelude.seq` Prelude.rnf resourceCollection++instance Data.ToJSON ListEventsFilters where+ toJSON ListEventsFilters' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("DataSource" Data..=) Prelude.<$> dataSource,+ ("EventClass" Data..=) Prelude.<$> eventClass,+ ("EventSource" Data..=) Prelude.<$> eventSource,+ ("EventTimeRange" Data..=)+ Prelude.<$> eventTimeRange,+ ("InsightId" Data..=) Prelude.<$> insightId,+ ("ResourceCollection" Data..=)+ Prelude.<$> resourceCollection+ ]+ )
+ gen/Amazonka/DevOpsGuru/Types/ListInsightsAnyStatusFilter.hs view
@@ -0,0 +1,95 @@+{-# 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.DevOpsGuru.Types.ListInsightsAnyStatusFilter+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.ListInsightsAnyStatusFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.InsightType+import Amazonka.DevOpsGuru.Types.StartTimeRange+import qualified Amazonka.Prelude as Prelude++-- | Used to filter for insights that have any status.+--+-- /See:/ 'newListInsightsAnyStatusFilter' smart constructor.+data ListInsightsAnyStatusFilter = ListInsightsAnyStatusFilter'+ { -- | Use to filter for either @REACTIVE@ or @PROACTIVE@ insights.+ type' :: InsightType,+ -- | A time range used to specify when the behavior of the filtered insights+ -- started.+ startTimeRange :: StartTimeRange+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListInsightsAnyStatusFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'type'', 'listInsightsAnyStatusFilter_type' - Use to filter for either @REACTIVE@ or @PROACTIVE@ insights.+--+-- 'startTimeRange', 'listInsightsAnyStatusFilter_startTimeRange' - A time range used to specify when the behavior of the filtered insights+-- started.+newListInsightsAnyStatusFilter ::+ -- | 'type''+ InsightType ->+ -- | 'startTimeRange'+ StartTimeRange ->+ ListInsightsAnyStatusFilter+newListInsightsAnyStatusFilter+ pType_+ pStartTimeRange_ =+ ListInsightsAnyStatusFilter'+ { type' = pType_,+ startTimeRange = pStartTimeRange_+ }++-- | Use to filter for either @REACTIVE@ or @PROACTIVE@ insights.+listInsightsAnyStatusFilter_type :: Lens.Lens' ListInsightsAnyStatusFilter InsightType+listInsightsAnyStatusFilter_type = Lens.lens (\ListInsightsAnyStatusFilter' {type'} -> type') (\s@ListInsightsAnyStatusFilter' {} a -> s {type' = a} :: ListInsightsAnyStatusFilter)++-- | A time range used to specify when the behavior of the filtered insights+-- started.+listInsightsAnyStatusFilter_startTimeRange :: Lens.Lens' ListInsightsAnyStatusFilter StartTimeRange+listInsightsAnyStatusFilter_startTimeRange = Lens.lens (\ListInsightsAnyStatusFilter' {startTimeRange} -> startTimeRange) (\s@ListInsightsAnyStatusFilter' {} a -> s {startTimeRange = a} :: ListInsightsAnyStatusFilter)++instance Prelude.Hashable ListInsightsAnyStatusFilter where+ hashWithSalt _salt ListInsightsAnyStatusFilter' {..} =+ _salt+ `Prelude.hashWithSalt` type'+ `Prelude.hashWithSalt` startTimeRange++instance Prelude.NFData ListInsightsAnyStatusFilter where+ rnf ListInsightsAnyStatusFilter' {..} =+ Prelude.rnf type'+ `Prelude.seq` Prelude.rnf startTimeRange++instance Data.ToJSON ListInsightsAnyStatusFilter where+ toJSON ListInsightsAnyStatusFilter' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("Type" Data..= type'),+ Prelude.Just+ ("StartTimeRange" Data..= startTimeRange)+ ]+ )
+ gen/Amazonka/DevOpsGuru/Types/ListInsightsClosedStatusFilter.hs view
@@ -0,0 +1,102 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.Types.ListInsightsClosedStatusFilter+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.ListInsightsClosedStatusFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.EndTimeRange+import Amazonka.DevOpsGuru.Types.InsightType+import qualified Amazonka.Prelude as Prelude++-- | Used to filter for insights that have the status @CLOSED@.+--+-- /See:/ 'newListInsightsClosedStatusFilter' smart constructor.+data ListInsightsClosedStatusFilter = ListInsightsClosedStatusFilter'+ { -- | Use to filter for either @REACTIVE@ or @PROACTIVE@ insights.+ type' :: InsightType,+ -- | A time range used to specify when the behavior of the filtered insights+ -- ended.+ endTimeRange :: EndTimeRange+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListInsightsClosedStatusFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'type'', 'listInsightsClosedStatusFilter_type' - Use to filter for either @REACTIVE@ or @PROACTIVE@ insights.+--+-- 'endTimeRange', 'listInsightsClosedStatusFilter_endTimeRange' - A time range used to specify when the behavior of the filtered insights+-- ended.+newListInsightsClosedStatusFilter ::+ -- | 'type''+ InsightType ->+ -- | 'endTimeRange'+ EndTimeRange ->+ ListInsightsClosedStatusFilter+newListInsightsClosedStatusFilter+ pType_+ pEndTimeRange_ =+ ListInsightsClosedStatusFilter'+ { type' = pType_,+ endTimeRange = pEndTimeRange_+ }++-- | Use to filter for either @REACTIVE@ or @PROACTIVE@ insights.+listInsightsClosedStatusFilter_type :: Lens.Lens' ListInsightsClosedStatusFilter InsightType+listInsightsClosedStatusFilter_type = Lens.lens (\ListInsightsClosedStatusFilter' {type'} -> type') (\s@ListInsightsClosedStatusFilter' {} a -> s {type' = a} :: ListInsightsClosedStatusFilter)++-- | A time range used to specify when the behavior of the filtered insights+-- ended.+listInsightsClosedStatusFilter_endTimeRange :: Lens.Lens' ListInsightsClosedStatusFilter EndTimeRange+listInsightsClosedStatusFilter_endTimeRange = Lens.lens (\ListInsightsClosedStatusFilter' {endTimeRange} -> endTimeRange) (\s@ListInsightsClosedStatusFilter' {} a -> s {endTimeRange = a} :: ListInsightsClosedStatusFilter)++instance+ Prelude.Hashable+ ListInsightsClosedStatusFilter+ where+ hashWithSalt+ _salt+ ListInsightsClosedStatusFilter' {..} =+ _salt+ `Prelude.hashWithSalt` type'+ `Prelude.hashWithSalt` endTimeRange++instance+ Prelude.NFData+ ListInsightsClosedStatusFilter+ where+ rnf ListInsightsClosedStatusFilter' {..} =+ Prelude.rnf type'+ `Prelude.seq` Prelude.rnf endTimeRange++instance Data.ToJSON ListInsightsClosedStatusFilter where+ toJSON ListInsightsClosedStatusFilter' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("Type" Data..= type'),+ Prelude.Just ("EndTimeRange" Data..= endTimeRange)+ ]+ )
+ gen/Amazonka/DevOpsGuru/Types/ListInsightsOngoingStatusFilter.hs view
@@ -0,0 +1,78 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.Types.ListInsightsOngoingStatusFilter+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.ListInsightsOngoingStatusFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.InsightType+import qualified Amazonka.Prelude as Prelude++-- | Used to filter for insights that have the status @ONGOING@.+--+-- /See:/ 'newListInsightsOngoingStatusFilter' smart constructor.+data ListInsightsOngoingStatusFilter = ListInsightsOngoingStatusFilter'+ { -- | Use to filter for either @REACTIVE@ or @PROACTIVE@ insights.+ type' :: InsightType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListInsightsOngoingStatusFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'type'', 'listInsightsOngoingStatusFilter_type' - Use to filter for either @REACTIVE@ or @PROACTIVE@ insights.+newListInsightsOngoingStatusFilter ::+ -- | 'type''+ InsightType ->+ ListInsightsOngoingStatusFilter+newListInsightsOngoingStatusFilter pType_ =+ ListInsightsOngoingStatusFilter' {type' = pType_}++-- | Use to filter for either @REACTIVE@ or @PROACTIVE@ insights.+listInsightsOngoingStatusFilter_type :: Lens.Lens' ListInsightsOngoingStatusFilter InsightType+listInsightsOngoingStatusFilter_type = Lens.lens (\ListInsightsOngoingStatusFilter' {type'} -> type') (\s@ListInsightsOngoingStatusFilter' {} a -> s {type' = a} :: ListInsightsOngoingStatusFilter)++instance+ Prelude.Hashable+ ListInsightsOngoingStatusFilter+ where+ hashWithSalt+ _salt+ ListInsightsOngoingStatusFilter' {..} =+ _salt `Prelude.hashWithSalt` type'++instance+ Prelude.NFData+ ListInsightsOngoingStatusFilter+ where+ rnf ListInsightsOngoingStatusFilter' {..} =+ Prelude.rnf type'++instance Data.ToJSON ListInsightsOngoingStatusFilter where+ toJSON ListInsightsOngoingStatusFilter' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("Type" Data..= type')]+ )
+ gen/Amazonka/DevOpsGuru/Types/ListInsightsStatusFilter.hs view
@@ -0,0 +1,107 @@+{-# 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.DevOpsGuru.Types.ListInsightsStatusFilter+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.ListInsightsStatusFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.ListInsightsAnyStatusFilter+import Amazonka.DevOpsGuru.Types.ListInsightsClosedStatusFilter+import Amazonka.DevOpsGuru.Types.ListInsightsOngoingStatusFilter+import qualified Amazonka.Prelude as Prelude++-- | A filter used by @ListInsights@ to specify which insights to return.+--+-- /See:/ 'newListInsightsStatusFilter' smart constructor.+data ListInsightsStatusFilter = ListInsightsStatusFilter'+ { -- | A @ListInsightsAnyStatusFilter@ that specifies insights of any status+ -- that are either @REACTIVE@ or @PROACTIVE@.+ any :: Prelude.Maybe ListInsightsAnyStatusFilter,+ -- | A @ListInsightsClosedStatusFilter@ that specifies closed insights that+ -- are either @REACTIVE@ or @PROACTIVE@.+ closed :: Prelude.Maybe ListInsightsClosedStatusFilter,+ -- | A @ListInsightsAnyStatusFilter@ that specifies ongoing insights that are+ -- either @REACTIVE@ or @PROACTIVE@.+ ongoing :: Prelude.Maybe ListInsightsOngoingStatusFilter+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListInsightsStatusFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'any', 'listInsightsStatusFilter_any' - A @ListInsightsAnyStatusFilter@ that specifies insights of any status+-- that are either @REACTIVE@ or @PROACTIVE@.+--+-- 'closed', 'listInsightsStatusFilter_closed' - A @ListInsightsClosedStatusFilter@ that specifies closed insights that+-- are either @REACTIVE@ or @PROACTIVE@.+--+-- 'ongoing', 'listInsightsStatusFilter_ongoing' - A @ListInsightsAnyStatusFilter@ that specifies ongoing insights that are+-- either @REACTIVE@ or @PROACTIVE@.+newListInsightsStatusFilter ::+ ListInsightsStatusFilter+newListInsightsStatusFilter =+ ListInsightsStatusFilter'+ { any = Prelude.Nothing,+ closed = Prelude.Nothing,+ ongoing = Prelude.Nothing+ }++-- | A @ListInsightsAnyStatusFilter@ that specifies insights of any status+-- that are either @REACTIVE@ or @PROACTIVE@.+listInsightsStatusFilter_any :: Lens.Lens' ListInsightsStatusFilter (Prelude.Maybe ListInsightsAnyStatusFilter)+listInsightsStatusFilter_any = Lens.lens (\ListInsightsStatusFilter' {any} -> any) (\s@ListInsightsStatusFilter' {} a -> s {any = a} :: ListInsightsStatusFilter)++-- | A @ListInsightsClosedStatusFilter@ that specifies closed insights that+-- are either @REACTIVE@ or @PROACTIVE@.+listInsightsStatusFilter_closed :: Lens.Lens' ListInsightsStatusFilter (Prelude.Maybe ListInsightsClosedStatusFilter)+listInsightsStatusFilter_closed = Lens.lens (\ListInsightsStatusFilter' {closed} -> closed) (\s@ListInsightsStatusFilter' {} a -> s {closed = a} :: ListInsightsStatusFilter)++-- | A @ListInsightsAnyStatusFilter@ that specifies ongoing insights that are+-- either @REACTIVE@ or @PROACTIVE@.+listInsightsStatusFilter_ongoing :: Lens.Lens' ListInsightsStatusFilter (Prelude.Maybe ListInsightsOngoingStatusFilter)+listInsightsStatusFilter_ongoing = Lens.lens (\ListInsightsStatusFilter' {ongoing} -> ongoing) (\s@ListInsightsStatusFilter' {} a -> s {ongoing = a} :: ListInsightsStatusFilter)++instance Prelude.Hashable ListInsightsStatusFilter where+ hashWithSalt _salt ListInsightsStatusFilter' {..} =+ _salt+ `Prelude.hashWithSalt` any+ `Prelude.hashWithSalt` closed+ `Prelude.hashWithSalt` ongoing++instance Prelude.NFData ListInsightsStatusFilter where+ rnf ListInsightsStatusFilter' {..} =+ Prelude.rnf any+ `Prelude.seq` Prelude.rnf closed+ `Prelude.seq` Prelude.rnf ongoing++instance Data.ToJSON ListInsightsStatusFilter where+ toJSON ListInsightsStatusFilter' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Any" Data..=) Prelude.<$> any,+ ("Closed" Data..=) Prelude.<$> closed,+ ("Ongoing" Data..=) Prelude.<$> ongoing+ ]+ )
+ gen/Amazonka/DevOpsGuru/Types/ListMonitoredResourcesFilters.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.DevOpsGuru.Types.ListMonitoredResourcesFilters+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.ListMonitoredResourcesFilters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.ResourcePermission+import Amazonka.DevOpsGuru.Types.ResourceTypeFilter+import qualified Amazonka.Prelude as Prelude++-- | Filters to determine which monitored resources you want to retrieve. You+-- can filter by resource type or resource permission status.+--+-- /See:/ 'newListMonitoredResourcesFilters' smart constructor.+data ListMonitoredResourcesFilters = ListMonitoredResourcesFilters'+ { -- | The permission status of a resource.+ resourcePermission :: ResourcePermission,+ -- | The type of resource that you wish to retrieve, such as log groups.+ resourceTypeFilters :: [ResourceTypeFilter]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListMonitoredResourcesFilters' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourcePermission', 'listMonitoredResourcesFilters_resourcePermission' - The permission status of a resource.+--+-- 'resourceTypeFilters', 'listMonitoredResourcesFilters_resourceTypeFilters' - The type of resource that you wish to retrieve, such as log groups.+newListMonitoredResourcesFilters ::+ -- | 'resourcePermission'+ ResourcePermission ->+ ListMonitoredResourcesFilters+newListMonitoredResourcesFilters pResourcePermission_ =+ ListMonitoredResourcesFilters'+ { resourcePermission =+ pResourcePermission_,+ resourceTypeFilters = Prelude.mempty+ }++-- | The permission status of a resource.+listMonitoredResourcesFilters_resourcePermission :: Lens.Lens' ListMonitoredResourcesFilters ResourcePermission+listMonitoredResourcesFilters_resourcePermission = Lens.lens (\ListMonitoredResourcesFilters' {resourcePermission} -> resourcePermission) (\s@ListMonitoredResourcesFilters' {} a -> s {resourcePermission = a} :: ListMonitoredResourcesFilters)++-- | The type of resource that you wish to retrieve, such as log groups.+listMonitoredResourcesFilters_resourceTypeFilters :: Lens.Lens' ListMonitoredResourcesFilters [ResourceTypeFilter]+listMonitoredResourcesFilters_resourceTypeFilters = Lens.lens (\ListMonitoredResourcesFilters' {resourceTypeFilters} -> resourceTypeFilters) (\s@ListMonitoredResourcesFilters' {} a -> s {resourceTypeFilters = a} :: ListMonitoredResourcesFilters) Prelude.. Lens.coerced++instance+ Prelude.Hashable+ ListMonitoredResourcesFilters+ where+ hashWithSalt _salt ListMonitoredResourcesFilters' {..} =+ _salt+ `Prelude.hashWithSalt` resourcePermission+ `Prelude.hashWithSalt` resourceTypeFilters++instance Prelude.NFData ListMonitoredResourcesFilters where+ rnf ListMonitoredResourcesFilters' {..} =+ Prelude.rnf resourcePermission+ `Prelude.seq` Prelude.rnf resourceTypeFilters++instance Data.ToJSON ListMonitoredResourcesFilters where+ toJSON ListMonitoredResourcesFilters' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("ResourcePermission" Data..= resourcePermission),+ Prelude.Just+ ("ResourceTypeFilters" Data..= resourceTypeFilters)+ ]+ )
+ gen/Amazonka/DevOpsGuru/Types/Locale.hs view
@@ -0,0 +1,113 @@+{-# 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.DevOpsGuru.Types.Locale+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.Locale+ ( Locale+ ( ..,+ Locale_DE_DE,+ Locale_EN_GB,+ Locale_EN_US,+ Locale_ES_ES,+ Locale_FR_FR,+ Locale_IT_IT,+ Locale_JA_JP,+ Locale_KO_KR,+ Locale_PT_BR,+ Locale_ZH_CN,+ Locale_ZH_TW+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Locale = Locale' {fromLocale :: 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 Locale_DE_DE :: Locale+pattern Locale_DE_DE = Locale' "DE_DE"++pattern Locale_EN_GB :: Locale+pattern Locale_EN_GB = Locale' "EN_GB"++pattern Locale_EN_US :: Locale+pattern Locale_EN_US = Locale' "EN_US"++pattern Locale_ES_ES :: Locale+pattern Locale_ES_ES = Locale' "ES_ES"++pattern Locale_FR_FR :: Locale+pattern Locale_FR_FR = Locale' "FR_FR"++pattern Locale_IT_IT :: Locale+pattern Locale_IT_IT = Locale' "IT_IT"++pattern Locale_JA_JP :: Locale+pattern Locale_JA_JP = Locale' "JA_JP"++pattern Locale_KO_KR :: Locale+pattern Locale_KO_KR = Locale' "KO_KR"++pattern Locale_PT_BR :: Locale+pattern Locale_PT_BR = Locale' "PT_BR"++pattern Locale_ZH_CN :: Locale+pattern Locale_ZH_CN = Locale' "ZH_CN"++pattern Locale_ZH_TW :: Locale+pattern Locale_ZH_TW = Locale' "ZH_TW"++{-# COMPLETE+ Locale_DE_DE,+ Locale_EN_GB,+ Locale_EN_US,+ Locale_ES_ES,+ Locale_FR_FR,+ Locale_IT_IT,+ Locale_JA_JP,+ Locale_KO_KR,+ Locale_PT_BR,+ Locale_ZH_CN,+ Locale_ZH_TW,+ Locale'+ #-}
+ gen/Amazonka/DevOpsGuru/Types/LogAnomalyClass.hs view
@@ -0,0 +1,157 @@+{-# 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.DevOpsGuru.Types.LogAnomalyClass+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.LogAnomalyClass where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.LogAnomalyType+import qualified Amazonka.Prelude as Prelude++-- | Information about an anomalous log event found within a log group.+--+-- /See:/ 'newLogAnomalyClass' smart constructor.+data LogAnomalyClass = LogAnomalyClass'+ { -- | The explanation for why the log event is considered an anomaly.+ explanation :: Prelude.Maybe Prelude.Text,+ -- | The token where the anomaly was detected. This may refer to an exception+ -- or another location, or it may be blank for log anomalies such as format+ -- anomalies.+ logAnomalyToken :: Prelude.Maybe Prelude.Text,+ -- | The type of log anomaly that has been detected.+ logAnomalyType :: Prelude.Maybe LogAnomalyType,+ -- | The ID of the log event.+ logEventId :: Prelude.Maybe Prelude.Text,+ -- | The time of the first occurrence of the anomalous log event.+ logEventTimestamp :: Prelude.Maybe Data.POSIX,+ -- | The name of the Amazon CloudWatch log stream that the anomalous log+ -- event belongs to. A log stream is a sequence of log events that share+ -- the same source.+ logStreamName :: Prelude.Maybe Prelude.Text,+ -- | The number of log lines where this anomalous log event occurs.+ numberOfLogLinesOccurrences :: Prelude.Maybe Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LogAnomalyClass' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'explanation', 'logAnomalyClass_explanation' - The explanation for why the log event is considered an anomaly.+--+-- 'logAnomalyToken', 'logAnomalyClass_logAnomalyToken' - The token where the anomaly was detected. This may refer to an exception+-- or another location, or it may be blank for log anomalies such as format+-- anomalies.+--+-- 'logAnomalyType', 'logAnomalyClass_logAnomalyType' - The type of log anomaly that has been detected.+--+-- 'logEventId', 'logAnomalyClass_logEventId' - The ID of the log event.+--+-- 'logEventTimestamp', 'logAnomalyClass_logEventTimestamp' - The time of the first occurrence of the anomalous log event.+--+-- 'logStreamName', 'logAnomalyClass_logStreamName' - The name of the Amazon CloudWatch log stream that the anomalous log+-- event belongs to. A log stream is a sequence of log events that share+-- the same source.+--+-- 'numberOfLogLinesOccurrences', 'logAnomalyClass_numberOfLogLinesOccurrences' - The number of log lines where this anomalous log event occurs.+newLogAnomalyClass ::+ LogAnomalyClass+newLogAnomalyClass =+ LogAnomalyClass'+ { explanation = Prelude.Nothing,+ logAnomalyToken = Prelude.Nothing,+ logAnomalyType = Prelude.Nothing,+ logEventId = Prelude.Nothing,+ logEventTimestamp = Prelude.Nothing,+ logStreamName = Prelude.Nothing,+ numberOfLogLinesOccurrences = Prelude.Nothing+ }++-- | The explanation for why the log event is considered an anomaly.+logAnomalyClass_explanation :: Lens.Lens' LogAnomalyClass (Prelude.Maybe Prelude.Text)+logAnomalyClass_explanation = Lens.lens (\LogAnomalyClass' {explanation} -> explanation) (\s@LogAnomalyClass' {} a -> s {explanation = a} :: LogAnomalyClass)++-- | The token where the anomaly was detected. This may refer to an exception+-- or another location, or it may be blank for log anomalies such as format+-- anomalies.+logAnomalyClass_logAnomalyToken :: Lens.Lens' LogAnomalyClass (Prelude.Maybe Prelude.Text)+logAnomalyClass_logAnomalyToken = Lens.lens (\LogAnomalyClass' {logAnomalyToken} -> logAnomalyToken) (\s@LogAnomalyClass' {} a -> s {logAnomalyToken = a} :: LogAnomalyClass)++-- | The type of log anomaly that has been detected.+logAnomalyClass_logAnomalyType :: Lens.Lens' LogAnomalyClass (Prelude.Maybe LogAnomalyType)+logAnomalyClass_logAnomalyType = Lens.lens (\LogAnomalyClass' {logAnomalyType} -> logAnomalyType) (\s@LogAnomalyClass' {} a -> s {logAnomalyType = a} :: LogAnomalyClass)++-- | The ID of the log event.+logAnomalyClass_logEventId :: Lens.Lens' LogAnomalyClass (Prelude.Maybe Prelude.Text)+logAnomalyClass_logEventId = Lens.lens (\LogAnomalyClass' {logEventId} -> logEventId) (\s@LogAnomalyClass' {} a -> s {logEventId = a} :: LogAnomalyClass)++-- | The time of the first occurrence of the anomalous log event.+logAnomalyClass_logEventTimestamp :: Lens.Lens' LogAnomalyClass (Prelude.Maybe Prelude.UTCTime)+logAnomalyClass_logEventTimestamp = Lens.lens (\LogAnomalyClass' {logEventTimestamp} -> logEventTimestamp) (\s@LogAnomalyClass' {} a -> s {logEventTimestamp = a} :: LogAnomalyClass) Prelude.. Lens.mapping Data._Time++-- | The name of the Amazon CloudWatch log stream that the anomalous log+-- event belongs to. A log stream is a sequence of log events that share+-- the same source.+logAnomalyClass_logStreamName :: Lens.Lens' LogAnomalyClass (Prelude.Maybe Prelude.Text)+logAnomalyClass_logStreamName = Lens.lens (\LogAnomalyClass' {logStreamName} -> logStreamName) (\s@LogAnomalyClass' {} a -> s {logStreamName = a} :: LogAnomalyClass)++-- | The number of log lines where this anomalous log event occurs.+logAnomalyClass_numberOfLogLinesOccurrences :: Lens.Lens' LogAnomalyClass (Prelude.Maybe Prelude.Int)+logAnomalyClass_numberOfLogLinesOccurrences = Lens.lens (\LogAnomalyClass' {numberOfLogLinesOccurrences} -> numberOfLogLinesOccurrences) (\s@LogAnomalyClass' {} a -> s {numberOfLogLinesOccurrences = a} :: LogAnomalyClass)++instance Data.FromJSON LogAnomalyClass where+ parseJSON =+ Data.withObject+ "LogAnomalyClass"+ ( \x ->+ LogAnomalyClass'+ Prelude.<$> (x Data..:? "Explanation")+ Prelude.<*> (x Data..:? "LogAnomalyToken")+ Prelude.<*> (x Data..:? "LogAnomalyType")+ Prelude.<*> (x Data..:? "LogEventId")+ Prelude.<*> (x Data..:? "LogEventTimestamp")+ Prelude.<*> (x Data..:? "LogStreamName")+ Prelude.<*> (x Data..:? "NumberOfLogLinesOccurrences")+ )++instance Prelude.Hashable LogAnomalyClass where+ hashWithSalt _salt LogAnomalyClass' {..} =+ _salt+ `Prelude.hashWithSalt` explanation+ `Prelude.hashWithSalt` logAnomalyToken+ `Prelude.hashWithSalt` logAnomalyType+ `Prelude.hashWithSalt` logEventId+ `Prelude.hashWithSalt` logEventTimestamp+ `Prelude.hashWithSalt` logStreamName+ `Prelude.hashWithSalt` numberOfLogLinesOccurrences++instance Prelude.NFData LogAnomalyClass where+ rnf LogAnomalyClass' {..} =+ Prelude.rnf explanation+ `Prelude.seq` Prelude.rnf logAnomalyToken+ `Prelude.seq` Prelude.rnf logAnomalyType+ `Prelude.seq` Prelude.rnf logEventId+ `Prelude.seq` Prelude.rnf logEventTimestamp+ `Prelude.seq` Prelude.rnf logStreamName+ `Prelude.seq` Prelude.rnf numberOfLogLinesOccurrences
+ gen/Amazonka/DevOpsGuru/Types/LogAnomalyShowcase.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.Types.LogAnomalyShowcase+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.LogAnomalyShowcase where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.LogAnomalyClass+import qualified Amazonka.Prelude as Prelude++-- | A cluster of similar anomalous log events found within a log group.+--+-- /See:/ 'newLogAnomalyShowcase' smart constructor.+data LogAnomalyShowcase = LogAnomalyShowcase'+ { -- | A list of anomalous log events that may be related.+ logAnomalyClasses :: Prelude.Maybe [LogAnomalyClass]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LogAnomalyShowcase' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'logAnomalyClasses', 'logAnomalyShowcase_logAnomalyClasses' - A list of anomalous log events that may be related.+newLogAnomalyShowcase ::+ LogAnomalyShowcase+newLogAnomalyShowcase =+ LogAnomalyShowcase'+ { logAnomalyClasses =+ Prelude.Nothing+ }++-- | A list of anomalous log events that may be related.+logAnomalyShowcase_logAnomalyClasses :: Lens.Lens' LogAnomalyShowcase (Prelude.Maybe [LogAnomalyClass])+logAnomalyShowcase_logAnomalyClasses = Lens.lens (\LogAnomalyShowcase' {logAnomalyClasses} -> logAnomalyClasses) (\s@LogAnomalyShowcase' {} a -> s {logAnomalyClasses = a} :: LogAnomalyShowcase) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON LogAnomalyShowcase where+ parseJSON =+ Data.withObject+ "LogAnomalyShowcase"+ ( \x ->+ LogAnomalyShowcase'+ Prelude.<$> ( x+ Data..:? "LogAnomalyClasses"+ Data..!= Prelude.mempty+ )+ )++instance Prelude.Hashable LogAnomalyShowcase where+ hashWithSalt _salt LogAnomalyShowcase' {..} =+ _salt `Prelude.hashWithSalt` logAnomalyClasses++instance Prelude.NFData LogAnomalyShowcase where+ rnf LogAnomalyShowcase' {..} =+ Prelude.rnf logAnomalyClasses
+ gen/Amazonka/DevOpsGuru/Types/LogAnomalyType.hs view
@@ -0,0 +1,101 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.Types.LogAnomalyType+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.LogAnomalyType+ ( LogAnomalyType+ ( ..,+ LogAnomalyType_BLOCK_FORMAT,+ LogAnomalyType_FORMAT,+ LogAnomalyType_HTTP_CODE,+ LogAnomalyType_KEYWORD,+ LogAnomalyType_KEYWORD_TOKEN,+ LogAnomalyType_NEW_FIELD_NAME,+ LogAnomalyType_NUMERICAL_NAN,+ LogAnomalyType_NUMERICAL_POINT+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LogAnomalyType = LogAnomalyType'+ { fromLogAnomalyType ::+ 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 LogAnomalyType_BLOCK_FORMAT :: LogAnomalyType+pattern LogAnomalyType_BLOCK_FORMAT = LogAnomalyType' "BLOCK_FORMAT"++pattern LogAnomalyType_FORMAT :: LogAnomalyType+pattern LogAnomalyType_FORMAT = LogAnomalyType' "FORMAT"++pattern LogAnomalyType_HTTP_CODE :: LogAnomalyType+pattern LogAnomalyType_HTTP_CODE = LogAnomalyType' "HTTP_CODE"++pattern LogAnomalyType_KEYWORD :: LogAnomalyType+pattern LogAnomalyType_KEYWORD = LogAnomalyType' "KEYWORD"++pattern LogAnomalyType_KEYWORD_TOKEN :: LogAnomalyType+pattern LogAnomalyType_KEYWORD_TOKEN = LogAnomalyType' "KEYWORD_TOKEN"++pattern LogAnomalyType_NEW_FIELD_NAME :: LogAnomalyType+pattern LogAnomalyType_NEW_FIELD_NAME = LogAnomalyType' "NEW_FIELD_NAME"++pattern LogAnomalyType_NUMERICAL_NAN :: LogAnomalyType+pattern LogAnomalyType_NUMERICAL_NAN = LogAnomalyType' "NUMERICAL_NAN"++pattern LogAnomalyType_NUMERICAL_POINT :: LogAnomalyType+pattern LogAnomalyType_NUMERICAL_POINT = LogAnomalyType' "NUMERICAL_POINT"++{-# COMPLETE+ LogAnomalyType_BLOCK_FORMAT,+ LogAnomalyType_FORMAT,+ LogAnomalyType_HTTP_CODE,+ LogAnomalyType_KEYWORD,+ LogAnomalyType_KEYWORD_TOKEN,+ LogAnomalyType_NEW_FIELD_NAME,+ LogAnomalyType_NUMERICAL_NAN,+ LogAnomalyType_NUMERICAL_POINT,+ LogAnomalyType'+ #-}
+ gen/Amazonka/DevOpsGuru/Types/LogsAnomalyDetectionIntegration.hs view
@@ -0,0 +1,88 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.Types.LogsAnomalyDetectionIntegration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.LogsAnomalyDetectionIntegration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.OptInStatus+import qualified Amazonka.Prelude as Prelude++-- | Information about the integration of DevOps Guru with CloudWatch log+-- groups for log anomaly detection.+--+-- /See:/ 'newLogsAnomalyDetectionIntegration' smart constructor.+data LogsAnomalyDetectionIntegration = LogsAnomalyDetectionIntegration'+ { -- | Specifies if DevOps Guru is configured to perform log anomaly detection+ -- on CloudWatch log groups.+ optInStatus :: Prelude.Maybe OptInStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LogsAnomalyDetectionIntegration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'optInStatus', 'logsAnomalyDetectionIntegration_optInStatus' - Specifies if DevOps Guru is configured to perform log anomaly detection+-- on CloudWatch log groups.+newLogsAnomalyDetectionIntegration ::+ LogsAnomalyDetectionIntegration+newLogsAnomalyDetectionIntegration =+ LogsAnomalyDetectionIntegration'+ { optInStatus =+ Prelude.Nothing+ }++-- | Specifies if DevOps Guru is configured to perform log anomaly detection+-- on CloudWatch log groups.+logsAnomalyDetectionIntegration_optInStatus :: Lens.Lens' LogsAnomalyDetectionIntegration (Prelude.Maybe OptInStatus)+logsAnomalyDetectionIntegration_optInStatus = Lens.lens (\LogsAnomalyDetectionIntegration' {optInStatus} -> optInStatus) (\s@LogsAnomalyDetectionIntegration' {} a -> s {optInStatus = a} :: LogsAnomalyDetectionIntegration)++instance+ Data.FromJSON+ LogsAnomalyDetectionIntegration+ where+ parseJSON =+ Data.withObject+ "LogsAnomalyDetectionIntegration"+ ( \x ->+ LogsAnomalyDetectionIntegration'+ Prelude.<$> (x Data..:? "OptInStatus")+ )++instance+ Prelude.Hashable+ LogsAnomalyDetectionIntegration+ where+ hashWithSalt+ _salt+ LogsAnomalyDetectionIntegration' {..} =+ _salt `Prelude.hashWithSalt` optInStatus++instance+ Prelude.NFData+ LogsAnomalyDetectionIntegration+ where+ rnf LogsAnomalyDetectionIntegration' {..} =+ Prelude.rnf optInStatus
+ gen/Amazonka/DevOpsGuru/Types/LogsAnomalyDetectionIntegrationConfig.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.DevOpsGuru.Types.LogsAnomalyDetectionIntegrationConfig+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.LogsAnomalyDetectionIntegrationConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.OptInStatus+import qualified Amazonka.Prelude as Prelude++-- | Information about the integration of DevOps Guru with CloudWatch log+-- groups for log anomaly detection. You can use this to update the+-- configuration.+--+-- /See:/ 'newLogsAnomalyDetectionIntegrationConfig' smart constructor.+data LogsAnomalyDetectionIntegrationConfig = LogsAnomalyDetectionIntegrationConfig'+ { -- | Specifies if DevOps Guru is configured to perform log anomaly detection+ -- on CloudWatch log groups.+ optInStatus :: Prelude.Maybe OptInStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LogsAnomalyDetectionIntegrationConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'optInStatus', 'logsAnomalyDetectionIntegrationConfig_optInStatus' - Specifies if DevOps Guru is configured to perform log anomaly detection+-- on CloudWatch log groups.+newLogsAnomalyDetectionIntegrationConfig ::+ LogsAnomalyDetectionIntegrationConfig+newLogsAnomalyDetectionIntegrationConfig =+ LogsAnomalyDetectionIntegrationConfig'+ { optInStatus =+ Prelude.Nothing+ }++-- | Specifies if DevOps Guru is configured to perform log anomaly detection+-- on CloudWatch log groups.+logsAnomalyDetectionIntegrationConfig_optInStatus :: Lens.Lens' LogsAnomalyDetectionIntegrationConfig (Prelude.Maybe OptInStatus)+logsAnomalyDetectionIntegrationConfig_optInStatus = Lens.lens (\LogsAnomalyDetectionIntegrationConfig' {optInStatus} -> optInStatus) (\s@LogsAnomalyDetectionIntegrationConfig' {} a -> s {optInStatus = a} :: LogsAnomalyDetectionIntegrationConfig)++instance+ Prelude.Hashable+ LogsAnomalyDetectionIntegrationConfig+ where+ hashWithSalt+ _salt+ LogsAnomalyDetectionIntegrationConfig' {..} =+ _salt `Prelude.hashWithSalt` optInStatus++instance+ Prelude.NFData+ LogsAnomalyDetectionIntegrationConfig+ where+ rnf LogsAnomalyDetectionIntegrationConfig' {..} =+ Prelude.rnf optInStatus++instance+ Data.ToJSON+ LogsAnomalyDetectionIntegrationConfig+ where+ toJSON LogsAnomalyDetectionIntegrationConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [("OptInStatus" Data..=) Prelude.<$> optInStatus]+ )
+ gen/Amazonka/DevOpsGuru/Types/MonitoredResourceIdentifier.hs view
@@ -0,0 +1,124 @@+{-# 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.DevOpsGuru.Types.MonitoredResourceIdentifier+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.MonitoredResourceIdentifier where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.ResourceCollection+import Amazonka.DevOpsGuru.Types.ResourcePermission+import qualified Amazonka.Prelude as Prelude++-- | Information about the resource that is being monitored, including the+-- name of the resource, the type of resource, and whether or not+-- permission is given to DevOps Guru to access that resource.+--+-- /See:/ 'newMonitoredResourceIdentifier' smart constructor.+data MonitoredResourceIdentifier = MonitoredResourceIdentifier'+ { -- | The time at which DevOps Guru last updated this resource.+ lastUpdated :: Prelude.Maybe Data.POSIX,+ -- | The name of the resource being monitored.+ monitoredResourceName :: Prelude.Maybe Prelude.Text,+ resourceCollection :: Prelude.Maybe ResourceCollection,+ -- | The permission status of a resource.+ resourcePermission :: Prelude.Maybe ResourcePermission,+ -- | The type of resource being monitored.+ type' :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MonitoredResourceIdentifier' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'lastUpdated', 'monitoredResourceIdentifier_lastUpdated' - The time at which DevOps Guru last updated this resource.+--+-- 'monitoredResourceName', 'monitoredResourceIdentifier_monitoredResourceName' - The name of the resource being monitored.+--+-- 'resourceCollection', 'monitoredResourceIdentifier_resourceCollection' - Undocumented member.+--+-- 'resourcePermission', 'monitoredResourceIdentifier_resourcePermission' - The permission status of a resource.+--+-- 'type'', 'monitoredResourceIdentifier_type' - The type of resource being monitored.+newMonitoredResourceIdentifier ::+ MonitoredResourceIdentifier+newMonitoredResourceIdentifier =+ MonitoredResourceIdentifier'+ { lastUpdated =+ Prelude.Nothing,+ monitoredResourceName = Prelude.Nothing,+ resourceCollection = Prelude.Nothing,+ resourcePermission = Prelude.Nothing,+ type' = Prelude.Nothing+ }++-- | The time at which DevOps Guru last updated this resource.+monitoredResourceIdentifier_lastUpdated :: Lens.Lens' MonitoredResourceIdentifier (Prelude.Maybe Prelude.UTCTime)+monitoredResourceIdentifier_lastUpdated = Lens.lens (\MonitoredResourceIdentifier' {lastUpdated} -> lastUpdated) (\s@MonitoredResourceIdentifier' {} a -> s {lastUpdated = a} :: MonitoredResourceIdentifier) Prelude.. Lens.mapping Data._Time++-- | The name of the resource being monitored.+monitoredResourceIdentifier_monitoredResourceName :: Lens.Lens' MonitoredResourceIdentifier (Prelude.Maybe Prelude.Text)+monitoredResourceIdentifier_monitoredResourceName = Lens.lens (\MonitoredResourceIdentifier' {monitoredResourceName} -> monitoredResourceName) (\s@MonitoredResourceIdentifier' {} a -> s {monitoredResourceName = a} :: MonitoredResourceIdentifier)++-- | Undocumented member.+monitoredResourceIdentifier_resourceCollection :: Lens.Lens' MonitoredResourceIdentifier (Prelude.Maybe ResourceCollection)+monitoredResourceIdentifier_resourceCollection = Lens.lens (\MonitoredResourceIdentifier' {resourceCollection} -> resourceCollection) (\s@MonitoredResourceIdentifier' {} a -> s {resourceCollection = a} :: MonitoredResourceIdentifier)++-- | The permission status of a resource.+monitoredResourceIdentifier_resourcePermission :: Lens.Lens' MonitoredResourceIdentifier (Prelude.Maybe ResourcePermission)+monitoredResourceIdentifier_resourcePermission = Lens.lens (\MonitoredResourceIdentifier' {resourcePermission} -> resourcePermission) (\s@MonitoredResourceIdentifier' {} a -> s {resourcePermission = a} :: MonitoredResourceIdentifier)++-- | The type of resource being monitored.+monitoredResourceIdentifier_type :: Lens.Lens' MonitoredResourceIdentifier (Prelude.Maybe Prelude.Text)+monitoredResourceIdentifier_type = Lens.lens (\MonitoredResourceIdentifier' {type'} -> type') (\s@MonitoredResourceIdentifier' {} a -> s {type' = a} :: MonitoredResourceIdentifier)++instance Data.FromJSON MonitoredResourceIdentifier where+ parseJSON =+ Data.withObject+ "MonitoredResourceIdentifier"+ ( \x ->+ MonitoredResourceIdentifier'+ Prelude.<$> (x Data..:? "LastUpdated")+ Prelude.<*> (x Data..:? "MonitoredResourceName")+ Prelude.<*> (x Data..:? "ResourceCollection")+ Prelude.<*> (x Data..:? "ResourcePermission")+ Prelude.<*> (x Data..:? "Type")+ )++instance Prelude.Hashable MonitoredResourceIdentifier where+ hashWithSalt _salt MonitoredResourceIdentifier' {..} =+ _salt+ `Prelude.hashWithSalt` lastUpdated+ `Prelude.hashWithSalt` monitoredResourceName+ `Prelude.hashWithSalt` resourceCollection+ `Prelude.hashWithSalt` resourcePermission+ `Prelude.hashWithSalt` type'++instance Prelude.NFData MonitoredResourceIdentifier where+ rnf MonitoredResourceIdentifier' {..} =+ Prelude.rnf lastUpdated+ `Prelude.seq` Prelude.rnf monitoredResourceName+ `Prelude.seq` Prelude.rnf resourceCollection+ `Prelude.seq` Prelude.rnf resourcePermission+ `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/DevOpsGuru/Types/NotificationChannel.hs view
@@ -0,0 +1,107 @@+{-# 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.DevOpsGuru.Types.NotificationChannel+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.NotificationChannel where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.NotificationChannelConfig+import qualified Amazonka.Prelude as Prelude++-- | Information about a notification channel. A notification channel is used+-- to notify you when DevOps Guru creates an insight. The one supported+-- notification channel is Amazon Simple Notification Service (Amazon SNS).+--+-- If you use an Amazon SNS topic in another account, you must attach a+-- policy to it that grants DevOps Guru permission to it notifications.+-- DevOps Guru adds the required policy on your behalf to send+-- notifications using Amazon SNS in your account. DevOps Guru only+-- supports standard SNS topics. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html Permissions for cross account Amazon SNS topics>.+--+-- If you use an Amazon SNS topic in another account, you must attach a+-- policy to it that grants DevOps Guru permission to it notifications.+-- DevOps Guru adds the required policy on your behalf to send+-- notifications using Amazon SNS in your account. For more information,+-- see Permissions for cross account Amazon SNS topics.+--+-- If you use an Amazon SNS topic that is encrypted by an Amazon Web+-- Services Key Management Service customer-managed key (CMK), then you+-- must add permissions to the CMK. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html Permissions for Amazon Web Services KMS–encrypted Amazon SNS topics>.+--+-- /See:/ 'newNotificationChannel' smart constructor.+data NotificationChannel = NotificationChannel'+ { -- | A @NotificationChannelConfig@ object that contains information about+ -- configured notification channels.+ config :: Prelude.Maybe NotificationChannelConfig,+ -- | The ID of a notification channel.+ id :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NotificationChannel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'config', 'notificationChannel_config' - A @NotificationChannelConfig@ object that contains information about+-- configured notification channels.+--+-- 'id', 'notificationChannel_id' - The ID of a notification channel.+newNotificationChannel ::+ NotificationChannel+newNotificationChannel =+ NotificationChannel'+ { config = Prelude.Nothing,+ id = Prelude.Nothing+ }++-- | A @NotificationChannelConfig@ object that contains information about+-- configured notification channels.+notificationChannel_config :: Lens.Lens' NotificationChannel (Prelude.Maybe NotificationChannelConfig)+notificationChannel_config = Lens.lens (\NotificationChannel' {config} -> config) (\s@NotificationChannel' {} a -> s {config = a} :: NotificationChannel)++-- | The ID of a notification channel.+notificationChannel_id :: Lens.Lens' NotificationChannel (Prelude.Maybe Prelude.Text)+notificationChannel_id = Lens.lens (\NotificationChannel' {id} -> id) (\s@NotificationChannel' {} a -> s {id = a} :: NotificationChannel)++instance Data.FromJSON NotificationChannel where+ parseJSON =+ Data.withObject+ "NotificationChannel"+ ( \x ->+ NotificationChannel'+ Prelude.<$> (x Data..:? "Config")+ Prelude.<*> (x Data..:? "Id")+ )++instance Prelude.Hashable NotificationChannel where+ hashWithSalt _salt NotificationChannel' {..} =+ _salt+ `Prelude.hashWithSalt` config+ `Prelude.hashWithSalt` id++instance Prelude.NFData NotificationChannel where+ rnf NotificationChannel' {..} =+ Prelude.rnf config `Prelude.seq` Prelude.rnf id
+ gen/Amazonka/DevOpsGuru/Types/NotificationChannelConfig.hs view
@@ -0,0 +1,165 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.Types.NotificationChannelConfig+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.NotificationChannelConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.NotificationFilterConfig+import Amazonka.DevOpsGuru.Types.SnsChannelConfig+import qualified Amazonka.Prelude as Prelude++-- | Information about notification channels you have configured with DevOps+-- Guru. The one supported notification channel is Amazon Simple+-- Notification Service (Amazon SNS).+--+-- /See:/ 'newNotificationChannelConfig' smart constructor.+data NotificationChannelConfig = NotificationChannelConfig'+ { -- | The filter configurations for the Amazon SNS notification topic you use+ -- with DevOps Guru. If you do not provide filter configurations, the+ -- default configurations are to receive notifications for all message+ -- types of @High@ or @Medium@ severity.+ filters :: Prelude.Maybe NotificationFilterConfig,+ -- | Information about a notification channel configured in DevOps Guru to+ -- send notifications when insights are created.+ --+ -- If you use an Amazon SNS topic in another account, you must attach a+ -- policy to it that grants DevOps Guru permission to it notifications.+ -- DevOps Guru adds the required policy on your behalf to send+ -- notifications using Amazon SNS in your account. DevOps Guru only+ -- supports standard SNS topics. For more information, see+ -- <https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html Permissions for cross account Amazon SNS topics>.+ --+ -- If you use an Amazon SNS topic in another account, you must attach a+ -- policy to it that grants DevOps Guru permission to it notifications.+ -- DevOps Guru adds the required policy on your behalf to send+ -- notifications using Amazon SNS in your account. For more information,+ -- see Permissions for cross account Amazon SNS topics.+ --+ -- If you use an Amazon SNS topic that is encrypted by an Amazon Web+ -- Services Key Management Service customer-managed key (CMK), then you+ -- must add permissions to the CMK. For more information, see+ -- <https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html Permissions for Amazon Web Services KMS–encrypted Amazon SNS topics>.+ sns :: SnsChannelConfig+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NotificationChannelConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'notificationChannelConfig_filters' - The filter configurations for the Amazon SNS notification topic you use+-- with DevOps Guru. If you do not provide filter configurations, the+-- default configurations are to receive notifications for all message+-- types of @High@ or @Medium@ severity.+--+-- 'sns', 'notificationChannelConfig_sns' - Information about a notification channel configured in DevOps Guru to+-- send notifications when insights are created.+--+-- If you use an Amazon SNS topic in another account, you must attach a+-- policy to it that grants DevOps Guru permission to it notifications.+-- DevOps Guru adds the required policy on your behalf to send+-- notifications using Amazon SNS in your account. DevOps Guru only+-- supports standard SNS topics. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html Permissions for cross account Amazon SNS topics>.+--+-- If you use an Amazon SNS topic in another account, you must attach a+-- policy to it that grants DevOps Guru permission to it notifications.+-- DevOps Guru adds the required policy on your behalf to send+-- notifications using Amazon SNS in your account. For more information,+-- see Permissions for cross account Amazon SNS topics.+--+-- If you use an Amazon SNS topic that is encrypted by an Amazon Web+-- Services Key Management Service customer-managed key (CMK), then you+-- must add permissions to the CMK. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html Permissions for Amazon Web Services KMS–encrypted Amazon SNS topics>.+newNotificationChannelConfig ::+ -- | 'sns'+ SnsChannelConfig ->+ NotificationChannelConfig+newNotificationChannelConfig pSns_ =+ NotificationChannelConfig'+ { filters =+ Prelude.Nothing,+ sns = pSns_+ }++-- | The filter configurations for the Amazon SNS notification topic you use+-- with DevOps Guru. If you do not provide filter configurations, the+-- default configurations are to receive notifications for all message+-- types of @High@ or @Medium@ severity.+notificationChannelConfig_filters :: Lens.Lens' NotificationChannelConfig (Prelude.Maybe NotificationFilterConfig)+notificationChannelConfig_filters = Lens.lens (\NotificationChannelConfig' {filters} -> filters) (\s@NotificationChannelConfig' {} a -> s {filters = a} :: NotificationChannelConfig)++-- | Information about a notification channel configured in DevOps Guru to+-- send notifications when insights are created.+--+-- If you use an Amazon SNS topic in another account, you must attach a+-- policy to it that grants DevOps Guru permission to it notifications.+-- DevOps Guru adds the required policy on your behalf to send+-- notifications using Amazon SNS in your account. DevOps Guru only+-- supports standard SNS topics. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html Permissions for cross account Amazon SNS topics>.+--+-- If you use an Amazon SNS topic in another account, you must attach a+-- policy to it that grants DevOps Guru permission to it notifications.+-- DevOps Guru adds the required policy on your behalf to send+-- notifications using Amazon SNS in your account. For more information,+-- see Permissions for cross account Amazon SNS topics.+--+-- If you use an Amazon SNS topic that is encrypted by an Amazon Web+-- Services Key Management Service customer-managed key (CMK), then you+-- must add permissions to the CMK. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html Permissions for Amazon Web Services KMS–encrypted Amazon SNS topics>.+notificationChannelConfig_sns :: Lens.Lens' NotificationChannelConfig SnsChannelConfig+notificationChannelConfig_sns = Lens.lens (\NotificationChannelConfig' {sns} -> sns) (\s@NotificationChannelConfig' {} a -> s {sns = a} :: NotificationChannelConfig)++instance Data.FromJSON NotificationChannelConfig where+ parseJSON =+ Data.withObject+ "NotificationChannelConfig"+ ( \x ->+ NotificationChannelConfig'+ Prelude.<$> (x Data..:? "Filters")+ Prelude.<*> (x Data..: "Sns")+ )++instance Prelude.Hashable NotificationChannelConfig where+ hashWithSalt _salt NotificationChannelConfig' {..} =+ _salt+ `Prelude.hashWithSalt` filters+ `Prelude.hashWithSalt` sns++instance Prelude.NFData NotificationChannelConfig where+ rnf NotificationChannelConfig' {..} =+ Prelude.rnf filters `Prelude.seq` Prelude.rnf sns++instance Data.ToJSON NotificationChannelConfig where+ toJSON NotificationChannelConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Filters" Data..=) Prelude.<$> filters,+ Prelude.Just ("Sns" Data..= sns)+ ]+ )
+ gen/Amazonka/DevOpsGuru/Types/NotificationFilterConfig.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.DevOpsGuru.Types.NotificationFilterConfig+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.NotificationFilterConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.InsightSeverity+import Amazonka.DevOpsGuru.Types.NotificationMessageType+import qualified Amazonka.Prelude as Prelude++-- | The filter configurations for the Amazon SNS notification topic you use+-- with DevOps Guru. You can choose to specify which events or message+-- types to receive notifications for. You can also choose to specify which+-- severity levels to receive notifications for.+--+-- /See:/ 'newNotificationFilterConfig' smart constructor.+data NotificationFilterConfig = NotificationFilterConfig'+ { -- | The events that you want to receive notifications for. For example, you+ -- can choose to receive notifications only when the severity level is+ -- upgraded or a new insight is created.+ messageTypes :: Prelude.Maybe [NotificationMessageType],+ -- | The severity levels that you want to receive notifications for. For+ -- example, you can choose to receive notifications only for insights with+ -- @HIGH@ and @MEDIUM@ severity levels. For more information, see+ -- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>.+ severities :: Prelude.Maybe [InsightSeverity]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NotificationFilterConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'messageTypes', 'notificationFilterConfig_messageTypes' - The events that you want to receive notifications for. For example, you+-- can choose to receive notifications only when the severity level is+-- upgraded or a new insight is created.+--+-- 'severities', 'notificationFilterConfig_severities' - The severity levels that you want to receive notifications for. For+-- example, you can choose to receive notifications only for insights with+-- @HIGH@ and @MEDIUM@ severity levels. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>.+newNotificationFilterConfig ::+ NotificationFilterConfig+newNotificationFilterConfig =+ NotificationFilterConfig'+ { messageTypes =+ Prelude.Nothing,+ severities = Prelude.Nothing+ }++-- | The events that you want to receive notifications for. For example, you+-- can choose to receive notifications only when the severity level is+-- upgraded or a new insight is created.+notificationFilterConfig_messageTypes :: Lens.Lens' NotificationFilterConfig (Prelude.Maybe [NotificationMessageType])+notificationFilterConfig_messageTypes = Lens.lens (\NotificationFilterConfig' {messageTypes} -> messageTypes) (\s@NotificationFilterConfig' {} a -> s {messageTypes = a} :: NotificationFilterConfig) Prelude.. Lens.mapping Lens.coerced++-- | The severity levels that you want to receive notifications for. For+-- example, you can choose to receive notifications only for insights with+-- @HIGH@ and @MEDIUM@ severity levels. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>.+notificationFilterConfig_severities :: Lens.Lens' NotificationFilterConfig (Prelude.Maybe [InsightSeverity])+notificationFilterConfig_severities = Lens.lens (\NotificationFilterConfig' {severities} -> severities) (\s@NotificationFilterConfig' {} a -> s {severities = a} :: NotificationFilterConfig) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON NotificationFilterConfig where+ parseJSON =+ Data.withObject+ "NotificationFilterConfig"+ ( \x ->+ NotificationFilterConfig'+ Prelude.<$> (x Data..:? "MessageTypes" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "Severities" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable NotificationFilterConfig where+ hashWithSalt _salt NotificationFilterConfig' {..} =+ _salt+ `Prelude.hashWithSalt` messageTypes+ `Prelude.hashWithSalt` severities++instance Prelude.NFData NotificationFilterConfig where+ rnf NotificationFilterConfig' {..} =+ Prelude.rnf messageTypes+ `Prelude.seq` Prelude.rnf severities++instance Data.ToJSON NotificationFilterConfig where+ toJSON NotificationFilterConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("MessageTypes" Data..=) Prelude.<$> messageTypes,+ ("Severities" Data..=) Prelude.<$> severities+ ]+ )
+ gen/Amazonka/DevOpsGuru/Types/NotificationMessageType.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.DevOpsGuru.Types.NotificationMessageType+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.NotificationMessageType+ ( NotificationMessageType+ ( ..,+ NotificationMessageType_CLOSED_INSIGHT,+ NotificationMessageType_NEW_ASSOCIATION,+ NotificationMessageType_NEW_INSIGHT,+ NotificationMessageType_NEW_RECOMMENDATION,+ NotificationMessageType_SEVERITY_UPGRADED+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype NotificationMessageType = NotificationMessageType'+ { fromNotificationMessageType ::+ 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 NotificationMessageType_CLOSED_INSIGHT :: NotificationMessageType+pattern NotificationMessageType_CLOSED_INSIGHT = NotificationMessageType' "CLOSED_INSIGHT"++pattern NotificationMessageType_NEW_ASSOCIATION :: NotificationMessageType+pattern NotificationMessageType_NEW_ASSOCIATION = NotificationMessageType' "NEW_ASSOCIATION"++pattern NotificationMessageType_NEW_INSIGHT :: NotificationMessageType+pattern NotificationMessageType_NEW_INSIGHT = NotificationMessageType' "NEW_INSIGHT"++pattern NotificationMessageType_NEW_RECOMMENDATION :: NotificationMessageType+pattern NotificationMessageType_NEW_RECOMMENDATION = NotificationMessageType' "NEW_RECOMMENDATION"++pattern NotificationMessageType_SEVERITY_UPGRADED :: NotificationMessageType+pattern NotificationMessageType_SEVERITY_UPGRADED = NotificationMessageType' "SEVERITY_UPGRADED"++{-# COMPLETE+ NotificationMessageType_CLOSED_INSIGHT,+ NotificationMessageType_NEW_ASSOCIATION,+ NotificationMessageType_NEW_INSIGHT,+ NotificationMessageType_NEW_RECOMMENDATION,+ NotificationMessageType_SEVERITY_UPGRADED,+ NotificationMessageType'+ #-}
+ gen/Amazonka/DevOpsGuru/Types/OpsCenterIntegration.hs view
@@ -0,0 +1,78 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.Types.OpsCenterIntegration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.OpsCenterIntegration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.OptInStatus+import qualified Amazonka.Prelude as Prelude++-- | Information about whether DevOps Guru is configured to create an OpsItem+-- in Amazon Web Services Systems Manager OpsCenter for each created+-- insight.+--+-- /See:/ 'newOpsCenterIntegration' smart constructor.+data OpsCenterIntegration = OpsCenterIntegration'+ { -- | Specifies if DevOps Guru is enabled to create an Amazon Web Services+ -- Systems Manager OpsItem for each created insight.+ optInStatus :: Prelude.Maybe OptInStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OpsCenterIntegration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'optInStatus', 'opsCenterIntegration_optInStatus' - Specifies if DevOps Guru is enabled to create an Amazon Web Services+-- Systems Manager OpsItem for each created insight.+newOpsCenterIntegration ::+ OpsCenterIntegration+newOpsCenterIntegration =+ OpsCenterIntegration'+ { optInStatus =+ Prelude.Nothing+ }++-- | Specifies if DevOps Guru is enabled to create an Amazon Web Services+-- Systems Manager OpsItem for each created insight.+opsCenterIntegration_optInStatus :: Lens.Lens' OpsCenterIntegration (Prelude.Maybe OptInStatus)+opsCenterIntegration_optInStatus = Lens.lens (\OpsCenterIntegration' {optInStatus} -> optInStatus) (\s@OpsCenterIntegration' {} a -> s {optInStatus = a} :: OpsCenterIntegration)++instance Data.FromJSON OpsCenterIntegration where+ parseJSON =+ Data.withObject+ "OpsCenterIntegration"+ ( \x ->+ OpsCenterIntegration'+ Prelude.<$> (x Data..:? "OptInStatus")+ )++instance Prelude.Hashable OpsCenterIntegration where+ hashWithSalt _salt OpsCenterIntegration' {..} =+ _salt `Prelude.hashWithSalt` optInStatus++instance Prelude.NFData OpsCenterIntegration where+ rnf OpsCenterIntegration' {..} =+ Prelude.rnf optInStatus
+ gen/Amazonka/DevOpsGuru/Types/OpsCenterIntegrationConfig.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.Types.OpsCenterIntegrationConfig+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.OpsCenterIntegrationConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.OptInStatus+import qualified Amazonka.Prelude as Prelude++-- | Information about whether DevOps Guru is configured to create an OpsItem+-- in Amazon Web Services Systems Manager OpsCenter for each created+-- insight. You can use this to update the configuration.+--+-- /See:/ 'newOpsCenterIntegrationConfig' smart constructor.+data OpsCenterIntegrationConfig = OpsCenterIntegrationConfig'+ { -- | Specifies if DevOps Guru is enabled to create an Amazon Web Services+ -- Systems Manager OpsItem for each created insight.+ optInStatus :: Prelude.Maybe OptInStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OpsCenterIntegrationConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'optInStatus', 'opsCenterIntegrationConfig_optInStatus' - Specifies if DevOps Guru is enabled to create an Amazon Web Services+-- Systems Manager OpsItem for each created insight.+newOpsCenterIntegrationConfig ::+ OpsCenterIntegrationConfig+newOpsCenterIntegrationConfig =+ OpsCenterIntegrationConfig'+ { optInStatus =+ Prelude.Nothing+ }++-- | Specifies if DevOps Guru is enabled to create an Amazon Web Services+-- Systems Manager OpsItem for each created insight.+opsCenterIntegrationConfig_optInStatus :: Lens.Lens' OpsCenterIntegrationConfig (Prelude.Maybe OptInStatus)+opsCenterIntegrationConfig_optInStatus = Lens.lens (\OpsCenterIntegrationConfig' {optInStatus} -> optInStatus) (\s@OpsCenterIntegrationConfig' {} a -> s {optInStatus = a} :: OpsCenterIntegrationConfig)++instance Prelude.Hashable OpsCenterIntegrationConfig where+ hashWithSalt _salt OpsCenterIntegrationConfig' {..} =+ _salt `Prelude.hashWithSalt` optInStatus++instance Prelude.NFData OpsCenterIntegrationConfig where+ rnf OpsCenterIntegrationConfig' {..} =+ Prelude.rnf optInStatus++instance Data.ToJSON OpsCenterIntegrationConfig where+ toJSON OpsCenterIntegrationConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [("OptInStatus" Data..=) Prelude.<$> optInStatus]+ )
+ gen/Amazonka/DevOpsGuru/Types/OptInStatus.hs view
@@ -0,0 +1,73 @@+{-# 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.DevOpsGuru.Types.OptInStatus+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.OptInStatus+ ( OptInStatus+ ( ..,+ OptInStatus_DISABLED,+ OptInStatus_ENABLED+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Specifies if DevOps Guru is enabled to create an Amazon Web Services+-- Systems Manager OpsItem for each created insight.+newtype OptInStatus = OptInStatus'+ { fromOptInStatus ::+ 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 OptInStatus_DISABLED :: OptInStatus+pattern OptInStatus_DISABLED = OptInStatus' "DISABLED"++pattern OptInStatus_ENABLED :: OptInStatus+pattern OptInStatus_ENABLED = OptInStatus' "ENABLED"++{-# COMPLETE+ OptInStatus_DISABLED,+ OptInStatus_ENABLED,+ OptInStatus'+ #-}
+ gen/Amazonka/DevOpsGuru/Types/OrganizationResourceCollectionType.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.DevOpsGuru.Types.OrganizationResourceCollectionType+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.OrganizationResourceCollectionType+ ( OrganizationResourceCollectionType+ ( ..,+ OrganizationResourceCollectionType_AWS_ACCOUNT,+ OrganizationResourceCollectionType_AWS_CLOUD_FORMATION,+ OrganizationResourceCollectionType_AWS_SERVICE,+ OrganizationResourceCollectionType_AWS_TAGS+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype OrganizationResourceCollectionType = OrganizationResourceCollectionType'+ { fromOrganizationResourceCollectionType ::+ 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 OrganizationResourceCollectionType_AWS_ACCOUNT :: OrganizationResourceCollectionType+pattern OrganizationResourceCollectionType_AWS_ACCOUNT = OrganizationResourceCollectionType' "AWS_ACCOUNT"++pattern OrganizationResourceCollectionType_AWS_CLOUD_FORMATION :: OrganizationResourceCollectionType+pattern OrganizationResourceCollectionType_AWS_CLOUD_FORMATION = OrganizationResourceCollectionType' "AWS_CLOUD_FORMATION"++pattern OrganizationResourceCollectionType_AWS_SERVICE :: OrganizationResourceCollectionType+pattern OrganizationResourceCollectionType_AWS_SERVICE = OrganizationResourceCollectionType' "AWS_SERVICE"++pattern OrganizationResourceCollectionType_AWS_TAGS :: OrganizationResourceCollectionType+pattern OrganizationResourceCollectionType_AWS_TAGS = OrganizationResourceCollectionType' "AWS_TAGS"++{-# COMPLETE+ OrganizationResourceCollectionType_AWS_ACCOUNT,+ OrganizationResourceCollectionType_AWS_CLOUD_FORMATION,+ OrganizationResourceCollectionType_AWS_SERVICE,+ OrganizationResourceCollectionType_AWS_TAGS,+ OrganizationResourceCollectionType'+ #-}
+ gen/Amazonka/DevOpsGuru/Types/PerformanceInsightsMetricDimensionGroup.hs view
@@ -0,0 +1,360 @@+{-# 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.DevOpsGuru.Types.PerformanceInsightsMetricDimensionGroup+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.PerformanceInsightsMetricDimensionGroup 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 logical grouping of Performance Insights metrics for a related subject+-- area. For example, the @db.sql@ dimension group consists of the+-- following dimensions: @db.sql.id@, @db.sql.db_id@, @db.sql.statement@,+-- and @db.sql.tokenized_id@.+--+-- Each response element returns a maximum of 500 bytes. For larger+-- elements, such as SQL statements, only the first 500 bytes are returned.+--+-- Amazon RDS Performance Insights enables you to monitor and explore+-- different dimensions of database load based on data captured from a+-- running DB instance. DB load is measured as average active sessions.+-- Performance Insights provides the data to API consumers as a+-- two-dimensional time-series dataset. The time dimension provides DB load+-- data for each time point in the queried time range. Each time point+-- decomposes overall load in relation to the requested dimensions,+-- measured at that time point. Examples include SQL, Wait event, User, and+-- Host.+--+-- - To learn more about Performance Insights and Amazon Aurora DB+-- instances, go to the+-- <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.html Amazon Aurora User Guide>.+--+-- - To learn more about Performance Insights and Amazon RDS DB+-- instances, go to the+-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html Amazon RDS User Guide>.+--+-- /See:/ 'newPerformanceInsightsMetricDimensionGroup' smart constructor.+data PerformanceInsightsMetricDimensionGroup = PerformanceInsightsMetricDimensionGroup'+ { -- | A list of specific dimensions from a dimension group. If this parameter+ -- is not present, then it signifies that all of the dimensions in the+ -- group were requested or are present in the response.+ --+ -- Valid values for elements in the @Dimensions@ array are:+ --+ -- - @db.application.name@ - The name of the application that is+ -- connected to the database (only Aurora PostgreSQL and RDS+ -- PostgreSQL)+ --+ -- - @db.host.id@ - The host ID of the connected client (all engines)+ --+ -- - @db.host.name@ - The host name of the connected client (all engines)+ --+ -- - @db.name@ - The name of the database to which the client is+ -- connected (only Aurora PostgreSQL, Amazon RDS PostgreSQL, Aurora+ -- MySQL, Amazon RDS MySQL, and MariaDB)+ --+ -- - @db.session_type.name@ - The type of the current session (only+ -- Aurora PostgreSQL and RDS PostgreSQL)+ --+ -- - @db.sql.id@ - The SQL ID generated by Performance Insights (all+ -- engines)+ --+ -- - @db.sql.db_id@ - The SQL ID generated by the database (all engines)+ --+ -- - @db.sql.statement@ - The SQL text that is being executed (all+ -- engines)+ --+ -- - @db.sql.tokenized_id@+ --+ -- - @db.sql_tokenized.id@ - The SQL digest ID generated by Performance+ -- Insights (all engines)+ --+ -- - @db.sql_tokenized.db_id@ - SQL digest ID generated by the database+ -- (all engines)+ --+ -- - @db.sql_tokenized.statement@ - The SQL digest text (all engines)+ --+ -- - @db.user.id@ - The ID of the user logged in to the database (all+ -- engines)+ --+ -- - @db.user.name@ - The name of the user logged in to the database (all+ -- engines)+ --+ -- - @db.wait_event.name@ - The event for which the backend is waiting+ -- (all engines)+ --+ -- - @db.wait_event.type@ - The type of event for which the backend is+ -- waiting (all engines)+ --+ -- - @db.wait_event_type.name@ - The name of the event type for which the+ -- backend is waiting (all engines)+ dimensions :: Prelude.Maybe [Prelude.Text],+ -- | The name of the dimension group. Its valid values are:+ --+ -- - @db@ - The name of the database to which the client is connected+ -- (only Aurora PostgreSQL, Amazon RDS PostgreSQL, Aurora MySQL, Amazon+ -- RDS MySQL, and MariaDB)+ --+ -- - @db.application@ - The name of the application that is connected to+ -- the database (only Aurora PostgreSQL and RDS PostgreSQL)+ --+ -- - @db.host@ - The host name of the connected client (all engines)+ --+ -- - @db.session_type@ - The type of the current session (only Aurora+ -- PostgreSQL and RDS PostgreSQL)+ --+ -- - @db.sql@ - The SQL that is currently executing (all engines)+ --+ -- - @db.sql_tokenized@ - The SQL digest (all engines)+ --+ -- - @db.wait_event@ - The event for which the database backend is+ -- waiting (all engines)+ --+ -- - @db.wait_event_type@ - The type of event for which the database+ -- backend is waiting (all engines)+ --+ -- - @db.user@ - The user logged in to the database (all engines)+ group' :: Prelude.Maybe Prelude.Text,+ -- | The maximum number of items to fetch for this dimension group.+ limit :: Prelude.Maybe Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PerformanceInsightsMetricDimensionGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dimensions', 'performanceInsightsMetricDimensionGroup_dimensions' - A list of specific dimensions from a dimension group. If this parameter+-- is not present, then it signifies that all of the dimensions in the+-- group were requested or are present in the response.+--+-- Valid values for elements in the @Dimensions@ array are:+--+-- - @db.application.name@ - The name of the application that is+-- connected to the database (only Aurora PostgreSQL and RDS+-- PostgreSQL)+--+-- - @db.host.id@ - The host ID of the connected client (all engines)+--+-- - @db.host.name@ - The host name of the connected client (all engines)+--+-- - @db.name@ - The name of the database to which the client is+-- connected (only Aurora PostgreSQL, Amazon RDS PostgreSQL, Aurora+-- MySQL, Amazon RDS MySQL, and MariaDB)+--+-- - @db.session_type.name@ - The type of the current session (only+-- Aurora PostgreSQL and RDS PostgreSQL)+--+-- - @db.sql.id@ - The SQL ID generated by Performance Insights (all+-- engines)+--+-- - @db.sql.db_id@ - The SQL ID generated by the database (all engines)+--+-- - @db.sql.statement@ - The SQL text that is being executed (all+-- engines)+--+-- - @db.sql.tokenized_id@+--+-- - @db.sql_tokenized.id@ - The SQL digest ID generated by Performance+-- Insights (all engines)+--+-- - @db.sql_tokenized.db_id@ - SQL digest ID generated by the database+-- (all engines)+--+-- - @db.sql_tokenized.statement@ - The SQL digest text (all engines)+--+-- - @db.user.id@ - The ID of the user logged in to the database (all+-- engines)+--+-- - @db.user.name@ - The name of the user logged in to the database (all+-- engines)+--+-- - @db.wait_event.name@ - The event for which the backend is waiting+-- (all engines)+--+-- - @db.wait_event.type@ - The type of event for which the backend is+-- waiting (all engines)+--+-- - @db.wait_event_type.name@ - The name of the event type for which the+-- backend is waiting (all engines)+--+-- 'group'', 'performanceInsightsMetricDimensionGroup_group' - The name of the dimension group. Its valid values are:+--+-- - @db@ - The name of the database to which the client is connected+-- (only Aurora PostgreSQL, Amazon RDS PostgreSQL, Aurora MySQL, Amazon+-- RDS MySQL, and MariaDB)+--+-- - @db.application@ - The name of the application that is connected to+-- the database (only Aurora PostgreSQL and RDS PostgreSQL)+--+-- - @db.host@ - The host name of the connected client (all engines)+--+-- - @db.session_type@ - The type of the current session (only Aurora+-- PostgreSQL and RDS PostgreSQL)+--+-- - @db.sql@ - The SQL that is currently executing (all engines)+--+-- - @db.sql_tokenized@ - The SQL digest (all engines)+--+-- - @db.wait_event@ - The event for which the database backend is+-- waiting (all engines)+--+-- - @db.wait_event_type@ - The type of event for which the database+-- backend is waiting (all engines)+--+-- - @db.user@ - The user logged in to the database (all engines)+--+-- 'limit', 'performanceInsightsMetricDimensionGroup_limit' - The maximum number of items to fetch for this dimension group.+newPerformanceInsightsMetricDimensionGroup ::+ PerformanceInsightsMetricDimensionGroup+newPerformanceInsightsMetricDimensionGroup =+ PerformanceInsightsMetricDimensionGroup'+ { dimensions =+ Prelude.Nothing,+ group' = Prelude.Nothing,+ limit = Prelude.Nothing+ }++-- | A list of specific dimensions from a dimension group. If this parameter+-- is not present, then it signifies that all of the dimensions in the+-- group were requested or are present in the response.+--+-- Valid values for elements in the @Dimensions@ array are:+--+-- - @db.application.name@ - The name of the application that is+-- connected to the database (only Aurora PostgreSQL and RDS+-- PostgreSQL)+--+-- - @db.host.id@ - The host ID of the connected client (all engines)+--+-- - @db.host.name@ - The host name of the connected client (all engines)+--+-- - @db.name@ - The name of the database to which the client is+-- connected (only Aurora PostgreSQL, Amazon RDS PostgreSQL, Aurora+-- MySQL, Amazon RDS MySQL, and MariaDB)+--+-- - @db.session_type.name@ - The type of the current session (only+-- Aurora PostgreSQL and RDS PostgreSQL)+--+-- - @db.sql.id@ - The SQL ID generated by Performance Insights (all+-- engines)+--+-- - @db.sql.db_id@ - The SQL ID generated by the database (all engines)+--+-- - @db.sql.statement@ - The SQL text that is being executed (all+-- engines)+--+-- - @db.sql.tokenized_id@+--+-- - @db.sql_tokenized.id@ - The SQL digest ID generated by Performance+-- Insights (all engines)+--+-- - @db.sql_tokenized.db_id@ - SQL digest ID generated by the database+-- (all engines)+--+-- - @db.sql_tokenized.statement@ - The SQL digest text (all engines)+--+-- - @db.user.id@ - The ID of the user logged in to the database (all+-- engines)+--+-- - @db.user.name@ - The name of the user logged in to the database (all+-- engines)+--+-- - @db.wait_event.name@ - The event for which the backend is waiting+-- (all engines)+--+-- - @db.wait_event.type@ - The type of event for which the backend is+-- waiting (all engines)+--+-- - @db.wait_event_type.name@ - The name of the event type for which the+-- backend is waiting (all engines)+performanceInsightsMetricDimensionGroup_dimensions :: Lens.Lens' PerformanceInsightsMetricDimensionGroup (Prelude.Maybe [Prelude.Text])+performanceInsightsMetricDimensionGroup_dimensions = Lens.lens (\PerformanceInsightsMetricDimensionGroup' {dimensions} -> dimensions) (\s@PerformanceInsightsMetricDimensionGroup' {} a -> s {dimensions = a} :: PerformanceInsightsMetricDimensionGroup) Prelude.. Lens.mapping Lens.coerced++-- | The name of the dimension group. Its valid values are:+--+-- - @db@ - The name of the database to which the client is connected+-- (only Aurora PostgreSQL, Amazon RDS PostgreSQL, Aurora MySQL, Amazon+-- RDS MySQL, and MariaDB)+--+-- - @db.application@ - The name of the application that is connected to+-- the database (only Aurora PostgreSQL and RDS PostgreSQL)+--+-- - @db.host@ - The host name of the connected client (all engines)+--+-- - @db.session_type@ - The type of the current session (only Aurora+-- PostgreSQL and RDS PostgreSQL)+--+-- - @db.sql@ - The SQL that is currently executing (all engines)+--+-- - @db.sql_tokenized@ - The SQL digest (all engines)+--+-- - @db.wait_event@ - The event for which the database backend is+-- waiting (all engines)+--+-- - @db.wait_event_type@ - The type of event for which the database+-- backend is waiting (all engines)+--+-- - @db.user@ - The user logged in to the database (all engines)+performanceInsightsMetricDimensionGroup_group :: Lens.Lens' PerformanceInsightsMetricDimensionGroup (Prelude.Maybe Prelude.Text)+performanceInsightsMetricDimensionGroup_group = Lens.lens (\PerformanceInsightsMetricDimensionGroup' {group'} -> group') (\s@PerformanceInsightsMetricDimensionGroup' {} a -> s {group' = a} :: PerformanceInsightsMetricDimensionGroup)++-- | The maximum number of items to fetch for this dimension group.+performanceInsightsMetricDimensionGroup_limit :: Lens.Lens' PerformanceInsightsMetricDimensionGroup (Prelude.Maybe Prelude.Natural)+performanceInsightsMetricDimensionGroup_limit = Lens.lens (\PerformanceInsightsMetricDimensionGroup' {limit} -> limit) (\s@PerformanceInsightsMetricDimensionGroup' {} a -> s {limit = a} :: PerformanceInsightsMetricDimensionGroup)++instance+ Data.FromJSON+ PerformanceInsightsMetricDimensionGroup+ where+ parseJSON =+ Data.withObject+ "PerformanceInsightsMetricDimensionGroup"+ ( \x ->+ PerformanceInsightsMetricDimensionGroup'+ Prelude.<$> (x Data..:? "Dimensions" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "Group")+ Prelude.<*> (x Data..:? "Limit")+ )++instance+ Prelude.Hashable+ PerformanceInsightsMetricDimensionGroup+ where+ hashWithSalt+ _salt+ PerformanceInsightsMetricDimensionGroup' {..} =+ _salt+ `Prelude.hashWithSalt` dimensions+ `Prelude.hashWithSalt` group'+ `Prelude.hashWithSalt` limit++instance+ Prelude.NFData+ PerformanceInsightsMetricDimensionGroup+ where+ rnf PerformanceInsightsMetricDimensionGroup' {..} =+ Prelude.rnf dimensions+ `Prelude.seq` Prelude.rnf group'+ `Prelude.seq` Prelude.rnf limit
+ gen/Amazonka/DevOpsGuru/Types/PerformanceInsightsMetricQuery.hs view
@@ -0,0 +1,212 @@+{-# 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.DevOpsGuru.Types.PerformanceInsightsMetricQuery+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.PerformanceInsightsMetricQuery where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.PerformanceInsightsMetricDimensionGroup+import qualified Amazonka.Prelude as Prelude++-- | A single query to be processed. Use these parameters to query the+-- Performance Insights @GetResourceMetrics@ API to retrieve the metrics+-- for an anomaly. For more information, see+-- @ @<https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetResourceMetrics.html GetResourceMetrics>@ @+-- in the /Amazon RDS Performance Insights API Reference/.+--+-- Amazon RDS Performance Insights enables you to monitor and explore+-- different dimensions of database load based on data captured from a+-- running DB instance. DB load is measured as average active sessions.+-- Performance Insights provides the data to API consumers as a+-- two-dimensional time-series dataset. The time dimension provides DB load+-- data for each time point in the queried time range. Each time point+-- decomposes overall load in relation to the requested dimensions,+-- measured at that time point. Examples include SQL, Wait event, User, and+-- Host.+--+-- - To learn more about Performance Insights and Amazon Aurora DB+-- instances, go to the+-- <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.html Amazon Aurora User Guide>.+--+-- - To learn more about Performance Insights and Amazon RDS DB+-- instances, go to the+-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html Amazon RDS User Guide>.+--+-- /See:/ 'newPerformanceInsightsMetricQuery' smart constructor.+data PerformanceInsightsMetricQuery = PerformanceInsightsMetricQuery'+ { -- | One or more filters to apply to a Performance Insights+ -- @GetResourceMetrics@ API query. Restrictions:+ --+ -- - Any number of filters by the same dimension, as specified in the+ -- @GroupBy@ parameter.+ --+ -- - A single filter for any other dimension in this dimension group.+ filter' :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The specification for how to aggregate the data points from a+ -- Performance Insights @GetResourceMetrics@ API query. The Performance+ -- Insights query returns all of the dimensions within that group, unless+ -- you provide the names of specific dimensions within that group. You can+ -- also request that Performance Insights return a limited number of values+ -- for a dimension.+ groupBy :: Prelude.Maybe PerformanceInsightsMetricDimensionGroup,+ -- | The name of the meteric used used when querying an Performance Insights+ -- @GetResourceMetrics@ API for anomaly metrics.+ --+ -- Valid values for @Metric@ are:+ --+ -- - @db.load.avg@ - a scaled representation of the number of active+ -- sessions for the database engine.+ --+ -- - @db.sampledload.avg@ - the raw number of active sessions for the+ -- database engine.+ --+ -- If the number of active sessions is less than an internal Performance+ -- Insights threshold, @db.load.avg@ and @db.sampledload.avg@ are the same+ -- value. If the number of active sessions is greater than the internal+ -- threshold, Performance Insights samples the active sessions, with+ -- @db.load.avg@ showing the scaled values, @db.sampledload.avg@ showing+ -- the raw values, and @db.sampledload.avg@ less than @db.load.avg@. For+ -- most use cases, you can query @db.load.avg@ only.+ metric :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PerformanceInsightsMetricQuery' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filter'', 'performanceInsightsMetricQuery_filter' - One or more filters to apply to a Performance Insights+-- @GetResourceMetrics@ API query. Restrictions:+--+-- - Any number of filters by the same dimension, as specified in the+-- @GroupBy@ parameter.+--+-- - A single filter for any other dimension in this dimension group.+--+-- 'groupBy', 'performanceInsightsMetricQuery_groupBy' - The specification for how to aggregate the data points from a+-- Performance Insights @GetResourceMetrics@ API query. The Performance+-- Insights query returns all of the dimensions within that group, unless+-- you provide the names of specific dimensions within that group. You can+-- also request that Performance Insights return a limited number of values+-- for a dimension.+--+-- 'metric', 'performanceInsightsMetricQuery_metric' - The name of the meteric used used when querying an Performance Insights+-- @GetResourceMetrics@ API for anomaly metrics.+--+-- Valid values for @Metric@ are:+--+-- - @db.load.avg@ - a scaled representation of the number of active+-- sessions for the database engine.+--+-- - @db.sampledload.avg@ - the raw number of active sessions for the+-- database engine.+--+-- If the number of active sessions is less than an internal Performance+-- Insights threshold, @db.load.avg@ and @db.sampledload.avg@ are the same+-- value. If the number of active sessions is greater than the internal+-- threshold, Performance Insights samples the active sessions, with+-- @db.load.avg@ showing the scaled values, @db.sampledload.avg@ showing+-- the raw values, and @db.sampledload.avg@ less than @db.load.avg@. For+-- most use cases, you can query @db.load.avg@ only.+newPerformanceInsightsMetricQuery ::+ PerformanceInsightsMetricQuery+newPerformanceInsightsMetricQuery =+ PerformanceInsightsMetricQuery'+ { filter' =+ Prelude.Nothing,+ groupBy = Prelude.Nothing,+ metric = Prelude.Nothing+ }++-- | One or more filters to apply to a Performance Insights+-- @GetResourceMetrics@ API query. Restrictions:+--+-- - Any number of filters by the same dimension, as specified in the+-- @GroupBy@ parameter.+--+-- - A single filter for any other dimension in this dimension group.+performanceInsightsMetricQuery_filter :: Lens.Lens' PerformanceInsightsMetricQuery (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+performanceInsightsMetricQuery_filter = Lens.lens (\PerformanceInsightsMetricQuery' {filter'} -> filter') (\s@PerformanceInsightsMetricQuery' {} a -> s {filter' = a} :: PerformanceInsightsMetricQuery) Prelude.. Lens.mapping Lens.coerced++-- | The specification for how to aggregate the data points from a+-- Performance Insights @GetResourceMetrics@ API query. The Performance+-- Insights query returns all of the dimensions within that group, unless+-- you provide the names of specific dimensions within that group. You can+-- also request that Performance Insights return a limited number of values+-- for a dimension.+performanceInsightsMetricQuery_groupBy :: Lens.Lens' PerformanceInsightsMetricQuery (Prelude.Maybe PerformanceInsightsMetricDimensionGroup)+performanceInsightsMetricQuery_groupBy = Lens.lens (\PerformanceInsightsMetricQuery' {groupBy} -> groupBy) (\s@PerformanceInsightsMetricQuery' {} a -> s {groupBy = a} :: PerformanceInsightsMetricQuery)++-- | The name of the meteric used used when querying an Performance Insights+-- @GetResourceMetrics@ API for anomaly metrics.+--+-- Valid values for @Metric@ are:+--+-- - @db.load.avg@ - a scaled representation of the number of active+-- sessions for the database engine.+--+-- - @db.sampledload.avg@ - the raw number of active sessions for the+-- database engine.+--+-- If the number of active sessions is less than an internal Performance+-- Insights threshold, @db.load.avg@ and @db.sampledload.avg@ are the same+-- value. If the number of active sessions is greater than the internal+-- threshold, Performance Insights samples the active sessions, with+-- @db.load.avg@ showing the scaled values, @db.sampledload.avg@ showing+-- the raw values, and @db.sampledload.avg@ less than @db.load.avg@. For+-- most use cases, you can query @db.load.avg@ only.+performanceInsightsMetricQuery_metric :: Lens.Lens' PerformanceInsightsMetricQuery (Prelude.Maybe Prelude.Text)+performanceInsightsMetricQuery_metric = Lens.lens (\PerformanceInsightsMetricQuery' {metric} -> metric) (\s@PerformanceInsightsMetricQuery' {} a -> s {metric = a} :: PerformanceInsightsMetricQuery)++instance Data.FromJSON PerformanceInsightsMetricQuery where+ parseJSON =+ Data.withObject+ "PerformanceInsightsMetricQuery"+ ( \x ->+ PerformanceInsightsMetricQuery'+ Prelude.<$> (x Data..:? "Filter" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "GroupBy")+ Prelude.<*> (x Data..:? "Metric")+ )++instance+ Prelude.Hashable+ PerformanceInsightsMetricQuery+ where+ hashWithSalt+ _salt+ PerformanceInsightsMetricQuery' {..} =+ _salt+ `Prelude.hashWithSalt` filter'+ `Prelude.hashWithSalt` groupBy+ `Prelude.hashWithSalt` metric++instance+ Prelude.NFData+ PerformanceInsightsMetricQuery+ where+ rnf PerformanceInsightsMetricQuery' {..} =+ Prelude.rnf filter'+ `Prelude.seq` Prelude.rnf groupBy+ `Prelude.seq` Prelude.rnf metric
+ gen/Amazonka/DevOpsGuru/Types/PerformanceInsightsMetricsDetail.hs view
@@ -0,0 +1,183 @@+{-# 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.DevOpsGuru.Types.PerformanceInsightsMetricsDetail+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.PerformanceInsightsMetricsDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.PerformanceInsightsMetricQuery+import Amazonka.DevOpsGuru.Types.PerformanceInsightsReferenceData+import Amazonka.DevOpsGuru.Types.PerformanceInsightsStat+import qualified Amazonka.Prelude as Prelude++-- | Details about Performance Insights metrics.+--+-- Amazon RDS Performance Insights enables you to monitor and explore+-- different dimensions of database load based on data captured from a+-- running DB instance. DB load is measured as average active sessions.+-- Performance Insights provides the data to API consumers as a+-- two-dimensional time-series dataset. The time dimension provides DB load+-- data for each time point in the queried time range. Each time point+-- decomposes overall load in relation to the requested dimensions,+-- measured at that time point. Examples include SQL, Wait event, User, and+-- Host.+--+-- - To learn more about Performance Insights and Amazon Aurora DB+-- instances, go to the+-- <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.html Amazon Aurora User Guide>.+--+-- - To learn more about Performance Insights and Amazon RDS DB+-- instances, go to the+-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html Amazon RDS User Guide>.+--+-- /See:/ 'newPerformanceInsightsMetricsDetail' smart constructor.+data PerformanceInsightsMetricsDetail = PerformanceInsightsMetricsDetail'+ { -- | The name used for a specific Performance Insights metric.+ metricDisplayName :: Prelude.Maybe Prelude.Text,+ -- | A single query to be processed for the metric. For more information, see+ -- @ @<https://docs.aws.amazon.com/devops-guru/latest/APIReference/API_PerformanceInsightsMetricQuery.html PerformanceInsightsMetricQuery>@ @.+ metricQuery :: Prelude.Maybe PerformanceInsightsMetricQuery,+ -- | For more information, see+ -- @ @<https://docs.aws.amazon.com/devops-guru/latest/APIReference/API_PerformanceInsightsReferenceData.html PerformanceInsightsReferenceData>@ @.+ referenceData :: Prelude.Maybe [PerformanceInsightsReferenceData],+ -- | The metric statistics during the anomalous period detected by DevOps+ -- Guru;+ statsAtAnomaly :: Prelude.Maybe [PerformanceInsightsStat],+ -- | Typical metric statistics that are not considered anomalous. When DevOps+ -- Guru analyzes metrics, it compares them to @StatsAtBaseline@ to help+ -- determine if they are anomalous.+ statsAtBaseline :: Prelude.Maybe [PerformanceInsightsStat],+ -- | The unit of measure for a metric. For example, a session or a process.+ unit :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PerformanceInsightsMetricsDetail' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metricDisplayName', 'performanceInsightsMetricsDetail_metricDisplayName' - The name used for a specific Performance Insights metric.+--+-- 'metricQuery', 'performanceInsightsMetricsDetail_metricQuery' - A single query to be processed for the metric. For more information, see+-- @ @<https://docs.aws.amazon.com/devops-guru/latest/APIReference/API_PerformanceInsightsMetricQuery.html PerformanceInsightsMetricQuery>@ @.+--+-- 'referenceData', 'performanceInsightsMetricsDetail_referenceData' - For more information, see+-- @ @<https://docs.aws.amazon.com/devops-guru/latest/APIReference/API_PerformanceInsightsReferenceData.html PerformanceInsightsReferenceData>@ @.+--+-- 'statsAtAnomaly', 'performanceInsightsMetricsDetail_statsAtAnomaly' - The metric statistics during the anomalous period detected by DevOps+-- Guru;+--+-- 'statsAtBaseline', 'performanceInsightsMetricsDetail_statsAtBaseline' - Typical metric statistics that are not considered anomalous. When DevOps+-- Guru analyzes metrics, it compares them to @StatsAtBaseline@ to help+-- determine if they are anomalous.+--+-- 'unit', 'performanceInsightsMetricsDetail_unit' - The unit of measure for a metric. For example, a session or a process.+newPerformanceInsightsMetricsDetail ::+ PerformanceInsightsMetricsDetail+newPerformanceInsightsMetricsDetail =+ PerformanceInsightsMetricsDetail'+ { metricDisplayName =+ Prelude.Nothing,+ metricQuery = Prelude.Nothing,+ referenceData = Prelude.Nothing,+ statsAtAnomaly = Prelude.Nothing,+ statsAtBaseline = Prelude.Nothing,+ unit = Prelude.Nothing+ }++-- | The name used for a specific Performance Insights metric.+performanceInsightsMetricsDetail_metricDisplayName :: Lens.Lens' PerformanceInsightsMetricsDetail (Prelude.Maybe Prelude.Text)+performanceInsightsMetricsDetail_metricDisplayName = Lens.lens (\PerformanceInsightsMetricsDetail' {metricDisplayName} -> metricDisplayName) (\s@PerformanceInsightsMetricsDetail' {} a -> s {metricDisplayName = a} :: PerformanceInsightsMetricsDetail)++-- | A single query to be processed for the metric. For more information, see+-- @ @<https://docs.aws.amazon.com/devops-guru/latest/APIReference/API_PerformanceInsightsMetricQuery.html PerformanceInsightsMetricQuery>@ @.+performanceInsightsMetricsDetail_metricQuery :: Lens.Lens' PerformanceInsightsMetricsDetail (Prelude.Maybe PerformanceInsightsMetricQuery)+performanceInsightsMetricsDetail_metricQuery = Lens.lens (\PerformanceInsightsMetricsDetail' {metricQuery} -> metricQuery) (\s@PerformanceInsightsMetricsDetail' {} a -> s {metricQuery = a} :: PerformanceInsightsMetricsDetail)++-- | For more information, see+-- @ @<https://docs.aws.amazon.com/devops-guru/latest/APIReference/API_PerformanceInsightsReferenceData.html PerformanceInsightsReferenceData>@ @.+performanceInsightsMetricsDetail_referenceData :: Lens.Lens' PerformanceInsightsMetricsDetail (Prelude.Maybe [PerformanceInsightsReferenceData])+performanceInsightsMetricsDetail_referenceData = Lens.lens (\PerformanceInsightsMetricsDetail' {referenceData} -> referenceData) (\s@PerformanceInsightsMetricsDetail' {} a -> s {referenceData = a} :: PerformanceInsightsMetricsDetail) Prelude.. Lens.mapping Lens.coerced++-- | The metric statistics during the anomalous period detected by DevOps+-- Guru;+performanceInsightsMetricsDetail_statsAtAnomaly :: Lens.Lens' PerformanceInsightsMetricsDetail (Prelude.Maybe [PerformanceInsightsStat])+performanceInsightsMetricsDetail_statsAtAnomaly = Lens.lens (\PerformanceInsightsMetricsDetail' {statsAtAnomaly} -> statsAtAnomaly) (\s@PerformanceInsightsMetricsDetail' {} a -> s {statsAtAnomaly = a} :: PerformanceInsightsMetricsDetail) Prelude.. Lens.mapping Lens.coerced++-- | Typical metric statistics that are not considered anomalous. When DevOps+-- Guru analyzes metrics, it compares them to @StatsAtBaseline@ to help+-- determine if they are anomalous.+performanceInsightsMetricsDetail_statsAtBaseline :: Lens.Lens' PerformanceInsightsMetricsDetail (Prelude.Maybe [PerformanceInsightsStat])+performanceInsightsMetricsDetail_statsAtBaseline = Lens.lens (\PerformanceInsightsMetricsDetail' {statsAtBaseline} -> statsAtBaseline) (\s@PerformanceInsightsMetricsDetail' {} a -> s {statsAtBaseline = a} :: PerformanceInsightsMetricsDetail) Prelude.. Lens.mapping Lens.coerced++-- | The unit of measure for a metric. For example, a session or a process.+performanceInsightsMetricsDetail_unit :: Lens.Lens' PerformanceInsightsMetricsDetail (Prelude.Maybe Prelude.Text)+performanceInsightsMetricsDetail_unit = Lens.lens (\PerformanceInsightsMetricsDetail' {unit} -> unit) (\s@PerformanceInsightsMetricsDetail' {} a -> s {unit = a} :: PerformanceInsightsMetricsDetail)++instance+ Data.FromJSON+ PerformanceInsightsMetricsDetail+ where+ parseJSON =+ Data.withObject+ "PerformanceInsightsMetricsDetail"+ ( \x ->+ PerformanceInsightsMetricsDetail'+ Prelude.<$> (x Data..:? "MetricDisplayName")+ Prelude.<*> (x Data..:? "MetricQuery")+ Prelude.<*> (x Data..:? "ReferenceData" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "StatsAtAnomaly" Data..!= Prelude.mempty)+ Prelude.<*> ( x+ Data..:? "StatsAtBaseline"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "Unit")+ )++instance+ Prelude.Hashable+ PerformanceInsightsMetricsDetail+ where+ hashWithSalt+ _salt+ PerformanceInsightsMetricsDetail' {..} =+ _salt+ `Prelude.hashWithSalt` metricDisplayName+ `Prelude.hashWithSalt` metricQuery+ `Prelude.hashWithSalt` referenceData+ `Prelude.hashWithSalt` statsAtAnomaly+ `Prelude.hashWithSalt` statsAtBaseline+ `Prelude.hashWithSalt` unit++instance+ Prelude.NFData+ PerformanceInsightsMetricsDetail+ where+ rnf PerformanceInsightsMetricsDetail' {..} =+ Prelude.rnf metricDisplayName+ `Prelude.seq` Prelude.rnf metricQuery+ `Prelude.seq` Prelude.rnf referenceData+ `Prelude.seq` Prelude.rnf statsAtAnomaly+ `Prelude.seq` Prelude.rnf statsAtBaseline+ `Prelude.seq` Prelude.rnf unit
+ gen/Amazonka/DevOpsGuru/Types/PerformanceInsightsReferenceComparisonValues.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.DevOpsGuru.Types.PerformanceInsightsReferenceComparisonValues+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.PerformanceInsightsReferenceComparisonValues where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.PerformanceInsightsReferenceMetric+import Amazonka.DevOpsGuru.Types.PerformanceInsightsReferenceScalar+import qualified Amazonka.Prelude as Prelude++-- | Reference scalar values and other metrics that DevOps Guru displays on a+-- graph in its console along with the actual metrics it analyzed. Compare+-- these reference values to your actual metrics to help you understand+-- anomalous behavior that DevOps Guru detected.+--+-- /See:/ 'newPerformanceInsightsReferenceComparisonValues' smart constructor.+data PerformanceInsightsReferenceComparisonValues = PerformanceInsightsReferenceComparisonValues'+ { -- | A metric that DevOps Guru compares to actual metric values. This+ -- reference metric is used to determine if an actual metric should be+ -- considered anomalous.+ referenceMetric :: Prelude.Maybe PerformanceInsightsReferenceMetric,+ -- | A scalar value DevOps Guru for a metric that DevOps Guru compares to+ -- actual metric values. This reference value is used to determine if an+ -- actual metric value should be considered anomalous.+ referenceScalar :: Prelude.Maybe PerformanceInsightsReferenceScalar+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PerformanceInsightsReferenceComparisonValues' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'referenceMetric', 'performanceInsightsReferenceComparisonValues_referenceMetric' - A metric that DevOps Guru compares to actual metric values. This+-- reference metric is used to determine if an actual metric should be+-- considered anomalous.+--+-- 'referenceScalar', 'performanceInsightsReferenceComparisonValues_referenceScalar' - A scalar value DevOps Guru for a metric that DevOps Guru compares to+-- actual metric values. This reference value is used to determine if an+-- actual metric value should be considered anomalous.+newPerformanceInsightsReferenceComparisonValues ::+ PerformanceInsightsReferenceComparisonValues+newPerformanceInsightsReferenceComparisonValues =+ PerformanceInsightsReferenceComparisonValues'+ { referenceMetric =+ Prelude.Nothing,+ referenceScalar =+ Prelude.Nothing+ }++-- | A metric that DevOps Guru compares to actual metric values. This+-- reference metric is used to determine if an actual metric should be+-- considered anomalous.+performanceInsightsReferenceComparisonValues_referenceMetric :: Lens.Lens' PerformanceInsightsReferenceComparisonValues (Prelude.Maybe PerformanceInsightsReferenceMetric)+performanceInsightsReferenceComparisonValues_referenceMetric = Lens.lens (\PerformanceInsightsReferenceComparisonValues' {referenceMetric} -> referenceMetric) (\s@PerformanceInsightsReferenceComparisonValues' {} a -> s {referenceMetric = a} :: PerformanceInsightsReferenceComparisonValues)++-- | A scalar value DevOps Guru for a metric that DevOps Guru compares to+-- actual metric values. This reference value is used to determine if an+-- actual metric value should be considered anomalous.+performanceInsightsReferenceComparisonValues_referenceScalar :: Lens.Lens' PerformanceInsightsReferenceComparisonValues (Prelude.Maybe PerformanceInsightsReferenceScalar)+performanceInsightsReferenceComparisonValues_referenceScalar = Lens.lens (\PerformanceInsightsReferenceComparisonValues' {referenceScalar} -> referenceScalar) (\s@PerformanceInsightsReferenceComparisonValues' {} a -> s {referenceScalar = a} :: PerformanceInsightsReferenceComparisonValues)++instance+ Data.FromJSON+ PerformanceInsightsReferenceComparisonValues+ where+ parseJSON =+ Data.withObject+ "PerformanceInsightsReferenceComparisonValues"+ ( \x ->+ PerformanceInsightsReferenceComparisonValues'+ Prelude.<$> (x Data..:? "ReferenceMetric")+ Prelude.<*> (x Data..:? "ReferenceScalar")+ )++instance+ Prelude.Hashable+ PerformanceInsightsReferenceComparisonValues+ where+ hashWithSalt+ _salt+ PerformanceInsightsReferenceComparisonValues' {..} =+ _salt+ `Prelude.hashWithSalt` referenceMetric+ `Prelude.hashWithSalt` referenceScalar++instance+ Prelude.NFData+ PerformanceInsightsReferenceComparisonValues+ where+ rnf PerformanceInsightsReferenceComparisonValues' {..} =+ Prelude.rnf referenceMetric+ `Prelude.seq` Prelude.rnf referenceScalar
+ gen/Amazonka/DevOpsGuru/Types/PerformanceInsightsReferenceData.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.DevOpsGuru.Types.PerformanceInsightsReferenceData+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.PerformanceInsightsReferenceData where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.PerformanceInsightsReferenceComparisonValues+import qualified Amazonka.Prelude as Prelude++-- | Reference data used to evaluate Performance Insights to determine if its+-- performance is anomalous or not.+--+-- /See:/ 'newPerformanceInsightsReferenceData' smart constructor.+data PerformanceInsightsReferenceData = PerformanceInsightsReferenceData'+ { -- | The specific reference values used to evaluate the Performance Insights.+ -- For more information, see+ -- @ @<https://docs.aws.amazon.com/devops-guru/latest/APIReference/API_PerformanceInsightsReferenceComparisonValues.html PerformanceInsightsReferenceComparisonValues>@ @.+ comparisonValues :: Prelude.Maybe PerformanceInsightsReferenceComparisonValues,+ -- | The name of the reference data.+ name :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PerformanceInsightsReferenceData' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'comparisonValues', 'performanceInsightsReferenceData_comparisonValues' - The specific reference values used to evaluate the Performance Insights.+-- For more information, see+-- @ @<https://docs.aws.amazon.com/devops-guru/latest/APIReference/API_PerformanceInsightsReferenceComparisonValues.html PerformanceInsightsReferenceComparisonValues>@ @.+--+-- 'name', 'performanceInsightsReferenceData_name' - The name of the reference data.+newPerformanceInsightsReferenceData ::+ PerformanceInsightsReferenceData+newPerformanceInsightsReferenceData =+ PerformanceInsightsReferenceData'+ { comparisonValues =+ Prelude.Nothing,+ name = Prelude.Nothing+ }++-- | The specific reference values used to evaluate the Performance Insights.+-- For more information, see+-- @ @<https://docs.aws.amazon.com/devops-guru/latest/APIReference/API_PerformanceInsightsReferenceComparisonValues.html PerformanceInsightsReferenceComparisonValues>@ @.+performanceInsightsReferenceData_comparisonValues :: Lens.Lens' PerformanceInsightsReferenceData (Prelude.Maybe PerformanceInsightsReferenceComparisonValues)+performanceInsightsReferenceData_comparisonValues = Lens.lens (\PerformanceInsightsReferenceData' {comparisonValues} -> comparisonValues) (\s@PerformanceInsightsReferenceData' {} a -> s {comparisonValues = a} :: PerformanceInsightsReferenceData)++-- | The name of the reference data.+performanceInsightsReferenceData_name :: Lens.Lens' PerformanceInsightsReferenceData (Prelude.Maybe Prelude.Text)+performanceInsightsReferenceData_name = Lens.lens (\PerformanceInsightsReferenceData' {name} -> name) (\s@PerformanceInsightsReferenceData' {} a -> s {name = a} :: PerformanceInsightsReferenceData)++instance+ Data.FromJSON+ PerformanceInsightsReferenceData+ where+ parseJSON =+ Data.withObject+ "PerformanceInsightsReferenceData"+ ( \x ->+ PerformanceInsightsReferenceData'+ Prelude.<$> (x Data..:? "ComparisonValues")+ Prelude.<*> (x Data..:? "Name")+ )++instance+ Prelude.Hashable+ PerformanceInsightsReferenceData+ where+ hashWithSalt+ _salt+ PerformanceInsightsReferenceData' {..} =+ _salt+ `Prelude.hashWithSalt` comparisonValues+ `Prelude.hashWithSalt` name++instance+ Prelude.NFData+ PerformanceInsightsReferenceData+ where+ rnf PerformanceInsightsReferenceData' {..} =+ Prelude.rnf comparisonValues+ `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DevOpsGuru/Types/PerformanceInsightsReferenceMetric.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.DevOpsGuru.Types.PerformanceInsightsReferenceMetric+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.PerformanceInsightsReferenceMetric where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.PerformanceInsightsMetricQuery+import qualified Amazonka.Prelude as Prelude++-- | Information about a reference metric used to evaluate Performance+-- Insights.+--+-- /See:/ 'newPerformanceInsightsReferenceMetric' smart constructor.+data PerformanceInsightsReferenceMetric = PerformanceInsightsReferenceMetric'+ { -- | A query to be processed on the metric.+ metricQuery :: Prelude.Maybe PerformanceInsightsMetricQuery+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PerformanceInsightsReferenceMetric' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metricQuery', 'performanceInsightsReferenceMetric_metricQuery' - A query to be processed on the metric.+newPerformanceInsightsReferenceMetric ::+ PerformanceInsightsReferenceMetric+newPerformanceInsightsReferenceMetric =+ PerformanceInsightsReferenceMetric'+ { metricQuery =+ Prelude.Nothing+ }++-- | A query to be processed on the metric.+performanceInsightsReferenceMetric_metricQuery :: Lens.Lens' PerformanceInsightsReferenceMetric (Prelude.Maybe PerformanceInsightsMetricQuery)+performanceInsightsReferenceMetric_metricQuery = Lens.lens (\PerformanceInsightsReferenceMetric' {metricQuery} -> metricQuery) (\s@PerformanceInsightsReferenceMetric' {} a -> s {metricQuery = a} :: PerformanceInsightsReferenceMetric)++instance+ Data.FromJSON+ PerformanceInsightsReferenceMetric+ where+ parseJSON =+ Data.withObject+ "PerformanceInsightsReferenceMetric"+ ( \x ->+ PerformanceInsightsReferenceMetric'+ Prelude.<$> (x Data..:? "MetricQuery")+ )++instance+ Prelude.Hashable+ PerformanceInsightsReferenceMetric+ where+ hashWithSalt+ _salt+ PerformanceInsightsReferenceMetric' {..} =+ _salt `Prelude.hashWithSalt` metricQuery++instance+ Prelude.NFData+ PerformanceInsightsReferenceMetric+ where+ rnf PerformanceInsightsReferenceMetric' {..} =+ Prelude.rnf metricQuery
+ gen/Amazonka/DevOpsGuru/Types/PerformanceInsightsReferenceScalar.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.DevOpsGuru.Types.PerformanceInsightsReferenceScalar+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.PerformanceInsightsReferenceScalar 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 reference value to compare Performance Insights metrics against to+-- determine if the metrics demonstrate anomalous behavior.+--+-- /See:/ 'newPerformanceInsightsReferenceScalar' smart constructor.+data PerformanceInsightsReferenceScalar = PerformanceInsightsReferenceScalar'+ { -- | The reference value.+ value :: Prelude.Maybe Prelude.Double+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PerformanceInsightsReferenceScalar' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'value', 'performanceInsightsReferenceScalar_value' - The reference value.+newPerformanceInsightsReferenceScalar ::+ PerformanceInsightsReferenceScalar+newPerformanceInsightsReferenceScalar =+ PerformanceInsightsReferenceScalar'+ { value =+ Prelude.Nothing+ }++-- | The reference value.+performanceInsightsReferenceScalar_value :: Lens.Lens' PerformanceInsightsReferenceScalar (Prelude.Maybe Prelude.Double)+performanceInsightsReferenceScalar_value = Lens.lens (\PerformanceInsightsReferenceScalar' {value} -> value) (\s@PerformanceInsightsReferenceScalar' {} a -> s {value = a} :: PerformanceInsightsReferenceScalar)++instance+ Data.FromJSON+ PerformanceInsightsReferenceScalar+ where+ parseJSON =+ Data.withObject+ "PerformanceInsightsReferenceScalar"+ ( \x ->+ PerformanceInsightsReferenceScalar'+ Prelude.<$> (x Data..:? "Value")+ )++instance+ Prelude.Hashable+ PerformanceInsightsReferenceScalar+ where+ hashWithSalt+ _salt+ PerformanceInsightsReferenceScalar' {..} =+ _salt `Prelude.hashWithSalt` value++instance+ Prelude.NFData+ PerformanceInsightsReferenceScalar+ where+ rnf PerformanceInsightsReferenceScalar' {..} =+ Prelude.rnf value
+ gen/Amazonka/DevOpsGuru/Types/PerformanceInsightsStat.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.DevOpsGuru.Types.PerformanceInsightsStat+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.PerformanceInsightsStat 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 statistic in a Performance Insights collection.+--+-- /See:/ 'newPerformanceInsightsStat' smart constructor.+data PerformanceInsightsStat = PerformanceInsightsStat'+ { -- | The statistic type.+ type' :: Prelude.Maybe Prelude.Text,+ -- | The value of the statistic.+ value :: Prelude.Maybe Prelude.Double+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PerformanceInsightsStat' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'type'', 'performanceInsightsStat_type' - The statistic type.+--+-- 'value', 'performanceInsightsStat_value' - The value of the statistic.+newPerformanceInsightsStat ::+ PerformanceInsightsStat+newPerformanceInsightsStat =+ PerformanceInsightsStat'+ { type' = Prelude.Nothing,+ value = Prelude.Nothing+ }++-- | The statistic type.+performanceInsightsStat_type :: Lens.Lens' PerformanceInsightsStat (Prelude.Maybe Prelude.Text)+performanceInsightsStat_type = Lens.lens (\PerformanceInsightsStat' {type'} -> type') (\s@PerformanceInsightsStat' {} a -> s {type' = a} :: PerformanceInsightsStat)++-- | The value of the statistic.+performanceInsightsStat_value :: Lens.Lens' PerformanceInsightsStat (Prelude.Maybe Prelude.Double)+performanceInsightsStat_value = Lens.lens (\PerformanceInsightsStat' {value} -> value) (\s@PerformanceInsightsStat' {} a -> s {value = a} :: PerformanceInsightsStat)++instance Data.FromJSON PerformanceInsightsStat where+ parseJSON =+ Data.withObject+ "PerformanceInsightsStat"+ ( \x ->+ PerformanceInsightsStat'+ Prelude.<$> (x Data..:? "Type")+ Prelude.<*> (x Data..:? "Value")+ )++instance Prelude.Hashable PerformanceInsightsStat where+ hashWithSalt _salt PerformanceInsightsStat' {..} =+ _salt+ `Prelude.hashWithSalt` type'+ `Prelude.hashWithSalt` value++instance Prelude.NFData PerformanceInsightsStat where+ rnf PerformanceInsightsStat' {..} =+ Prelude.rnf type' `Prelude.seq` Prelude.rnf value
+ gen/Amazonka/DevOpsGuru/Types/PredictionTimeRange.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.DevOpsGuru.Types.PredictionTimeRange+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.PredictionTimeRange 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 time range during which anomalous behavior in a proactive anomaly or+-- an insight is expected to occur.+--+-- /See:/ 'newPredictionTimeRange' smart constructor.+data PredictionTimeRange = PredictionTimeRange'+ { -- | The time when the behavior in a proactive insight is expected to end.+ endTime :: Prelude.Maybe Data.POSIX,+ -- | The time range during which a metric limit is expected to be exceeded.+ -- This applies to proactive insights only.+ startTime :: Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PredictionTimeRange' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endTime', 'predictionTimeRange_endTime' - The time when the behavior in a proactive insight is expected to end.+--+-- 'startTime', 'predictionTimeRange_startTime' - The time range during which a metric limit is expected to be exceeded.+-- This applies to proactive insights only.+newPredictionTimeRange ::+ -- | 'startTime'+ Prelude.UTCTime ->+ PredictionTimeRange+newPredictionTimeRange pStartTime_ =+ PredictionTimeRange'+ { endTime = Prelude.Nothing,+ startTime = Data._Time Lens.# pStartTime_+ }++-- | The time when the behavior in a proactive insight is expected to end.+predictionTimeRange_endTime :: Lens.Lens' PredictionTimeRange (Prelude.Maybe Prelude.UTCTime)+predictionTimeRange_endTime = Lens.lens (\PredictionTimeRange' {endTime} -> endTime) (\s@PredictionTimeRange' {} a -> s {endTime = a} :: PredictionTimeRange) Prelude.. Lens.mapping Data._Time++-- | The time range during which a metric limit is expected to be exceeded.+-- This applies to proactive insights only.+predictionTimeRange_startTime :: Lens.Lens' PredictionTimeRange Prelude.UTCTime+predictionTimeRange_startTime = Lens.lens (\PredictionTimeRange' {startTime} -> startTime) (\s@PredictionTimeRange' {} a -> s {startTime = a} :: PredictionTimeRange) Prelude.. Data._Time++instance Data.FromJSON PredictionTimeRange where+ parseJSON =+ Data.withObject+ "PredictionTimeRange"+ ( \x ->+ PredictionTimeRange'+ Prelude.<$> (x Data..:? "EndTime")+ Prelude.<*> (x Data..: "StartTime")+ )++instance Prelude.Hashable PredictionTimeRange where+ hashWithSalt _salt PredictionTimeRange' {..} =+ _salt+ `Prelude.hashWithSalt` endTime+ `Prelude.hashWithSalt` startTime++instance Prelude.NFData PredictionTimeRange where+ rnf PredictionTimeRange' {..} =+ Prelude.rnf endTime+ `Prelude.seq` Prelude.rnf startTime
+ gen/Amazonka/DevOpsGuru/Types/ProactiveAnomaly.hs view
@@ -0,0 +1,254 @@+{-# 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.DevOpsGuru.Types.ProactiveAnomaly+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.ProactiveAnomaly where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.AnomalyReportedTimeRange+import Amazonka.DevOpsGuru.Types.AnomalyResource+import Amazonka.DevOpsGuru.Types.AnomalySeverity+import Amazonka.DevOpsGuru.Types.AnomalySourceDetails+import Amazonka.DevOpsGuru.Types.AnomalySourceMetadata+import Amazonka.DevOpsGuru.Types.AnomalyStatus+import Amazonka.DevOpsGuru.Types.AnomalyTimeRange+import Amazonka.DevOpsGuru.Types.PredictionTimeRange+import Amazonka.DevOpsGuru.Types.ResourceCollection+import qualified Amazonka.Prelude as Prelude++-- | Information about an anomaly. This object is returned by+-- @ListAnomalies@.+--+-- /See:/ 'newProactiveAnomaly' smart constructor.+data ProactiveAnomaly = ProactiveAnomaly'+ { -- | An @AnomalyReportedTimeRange@ object that specifies the time range+ -- between when the anomaly is opened and the time when it is closed.+ anomalyReportedTimeRange :: Prelude.Maybe AnomalyReportedTimeRange,+ -- | Information about a resource in which DevOps Guru detected anomalous+ -- behavior.+ anomalyResources :: Prelude.Maybe [AnomalyResource],+ anomalyTimeRange :: Prelude.Maybe AnomalyTimeRange,+ -- | The ID of the insight that contains this anomaly. An insight is composed+ -- of related anomalies.+ associatedInsightId :: Prelude.Maybe Prelude.Text,+ -- | The ID of a proactive anomaly.+ id :: Prelude.Maybe Prelude.Text,+ -- | A threshold that was exceeded by behavior in analyzed resources.+ -- Exceeding this threshold is related to the anomalous behavior that+ -- generated this anomaly.+ limit :: Prelude.Maybe Prelude.Double,+ predictionTimeRange :: Prelude.Maybe PredictionTimeRange,+ resourceCollection :: Prelude.Maybe ResourceCollection,+ -- | The severity of the anomaly. The severity of anomalies that generate an+ -- insight determine that insight\'s severity. For more information, see+ -- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+ -- in the /Amazon DevOps Guru User Guide/.+ severity :: Prelude.Maybe AnomalySeverity,+ -- | Details about the source of the analyzed operational data that triggered+ -- the anomaly. The one supported source is Amazon CloudWatch metrics.+ sourceDetails :: Prelude.Maybe AnomalySourceDetails,+ -- | The metadata for the anomaly.+ sourceMetadata :: Prelude.Maybe AnomalySourceMetadata,+ -- | The status of a proactive anomaly.+ status :: Prelude.Maybe AnomalyStatus,+ -- | The time of the anomaly\'s most recent update.+ updateTime :: Prelude.Maybe Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ProactiveAnomaly' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyReportedTimeRange', 'proactiveAnomaly_anomalyReportedTimeRange' - An @AnomalyReportedTimeRange@ object that specifies the time range+-- between when the anomaly is opened and the time when it is closed.+--+-- 'anomalyResources', 'proactiveAnomaly_anomalyResources' - Information about a resource in which DevOps Guru detected anomalous+-- behavior.+--+-- 'anomalyTimeRange', 'proactiveAnomaly_anomalyTimeRange' - Undocumented member.+--+-- 'associatedInsightId', 'proactiveAnomaly_associatedInsightId' - The ID of the insight that contains this anomaly. An insight is composed+-- of related anomalies.+--+-- 'id', 'proactiveAnomaly_id' - The ID of a proactive anomaly.+--+-- 'limit', 'proactiveAnomaly_limit' - A threshold that was exceeded by behavior in analyzed resources.+-- Exceeding this threshold is related to the anomalous behavior that+-- generated this anomaly.+--+-- 'predictionTimeRange', 'proactiveAnomaly_predictionTimeRange' - Undocumented member.+--+-- 'resourceCollection', 'proactiveAnomaly_resourceCollection' - Undocumented member.+--+-- 'severity', 'proactiveAnomaly_severity' - The severity of the anomaly. The severity of anomalies that generate an+-- insight determine that insight\'s severity. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+-- in the /Amazon DevOps Guru User Guide/.+--+-- 'sourceDetails', 'proactiveAnomaly_sourceDetails' - Details about the source of the analyzed operational data that triggered+-- the anomaly. The one supported source is Amazon CloudWatch metrics.+--+-- 'sourceMetadata', 'proactiveAnomaly_sourceMetadata' - The metadata for the anomaly.+--+-- 'status', 'proactiveAnomaly_status' - The status of a proactive anomaly.+--+-- 'updateTime', 'proactiveAnomaly_updateTime' - The time of the anomaly\'s most recent update.+newProactiveAnomaly ::+ ProactiveAnomaly+newProactiveAnomaly =+ ProactiveAnomaly'+ { anomalyReportedTimeRange =+ Prelude.Nothing,+ anomalyResources = Prelude.Nothing,+ anomalyTimeRange = Prelude.Nothing,+ associatedInsightId = Prelude.Nothing,+ id = Prelude.Nothing,+ limit = Prelude.Nothing,+ predictionTimeRange = Prelude.Nothing,+ resourceCollection = Prelude.Nothing,+ severity = Prelude.Nothing,+ sourceDetails = Prelude.Nothing,+ sourceMetadata = Prelude.Nothing,+ status = Prelude.Nothing,+ updateTime = Prelude.Nothing+ }++-- | An @AnomalyReportedTimeRange@ object that specifies the time range+-- between when the anomaly is opened and the time when it is closed.+proactiveAnomaly_anomalyReportedTimeRange :: Lens.Lens' ProactiveAnomaly (Prelude.Maybe AnomalyReportedTimeRange)+proactiveAnomaly_anomalyReportedTimeRange = Lens.lens (\ProactiveAnomaly' {anomalyReportedTimeRange} -> anomalyReportedTimeRange) (\s@ProactiveAnomaly' {} a -> s {anomalyReportedTimeRange = a} :: ProactiveAnomaly)++-- | Information about a resource in which DevOps Guru detected anomalous+-- behavior.+proactiveAnomaly_anomalyResources :: Lens.Lens' ProactiveAnomaly (Prelude.Maybe [AnomalyResource])+proactiveAnomaly_anomalyResources = Lens.lens (\ProactiveAnomaly' {anomalyResources} -> anomalyResources) (\s@ProactiveAnomaly' {} a -> s {anomalyResources = a} :: ProactiveAnomaly) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+proactiveAnomaly_anomalyTimeRange :: Lens.Lens' ProactiveAnomaly (Prelude.Maybe AnomalyTimeRange)+proactiveAnomaly_anomalyTimeRange = Lens.lens (\ProactiveAnomaly' {anomalyTimeRange} -> anomalyTimeRange) (\s@ProactiveAnomaly' {} a -> s {anomalyTimeRange = a} :: ProactiveAnomaly)++-- | The ID of the insight that contains this anomaly. An insight is composed+-- of related anomalies.+proactiveAnomaly_associatedInsightId :: Lens.Lens' ProactiveAnomaly (Prelude.Maybe Prelude.Text)+proactiveAnomaly_associatedInsightId = Lens.lens (\ProactiveAnomaly' {associatedInsightId} -> associatedInsightId) (\s@ProactiveAnomaly' {} a -> s {associatedInsightId = a} :: ProactiveAnomaly)++-- | The ID of a proactive anomaly.+proactiveAnomaly_id :: Lens.Lens' ProactiveAnomaly (Prelude.Maybe Prelude.Text)+proactiveAnomaly_id = Lens.lens (\ProactiveAnomaly' {id} -> id) (\s@ProactiveAnomaly' {} a -> s {id = a} :: ProactiveAnomaly)++-- | A threshold that was exceeded by behavior in analyzed resources.+-- Exceeding this threshold is related to the anomalous behavior that+-- generated this anomaly.+proactiveAnomaly_limit :: Lens.Lens' ProactiveAnomaly (Prelude.Maybe Prelude.Double)+proactiveAnomaly_limit = Lens.lens (\ProactiveAnomaly' {limit} -> limit) (\s@ProactiveAnomaly' {} a -> s {limit = a} :: ProactiveAnomaly)++-- | Undocumented member.+proactiveAnomaly_predictionTimeRange :: Lens.Lens' ProactiveAnomaly (Prelude.Maybe PredictionTimeRange)+proactiveAnomaly_predictionTimeRange = Lens.lens (\ProactiveAnomaly' {predictionTimeRange} -> predictionTimeRange) (\s@ProactiveAnomaly' {} a -> s {predictionTimeRange = a} :: ProactiveAnomaly)++-- | Undocumented member.+proactiveAnomaly_resourceCollection :: Lens.Lens' ProactiveAnomaly (Prelude.Maybe ResourceCollection)+proactiveAnomaly_resourceCollection = Lens.lens (\ProactiveAnomaly' {resourceCollection} -> resourceCollection) (\s@ProactiveAnomaly' {} a -> s {resourceCollection = a} :: ProactiveAnomaly)++-- | The severity of the anomaly. The severity of anomalies that generate an+-- insight determine that insight\'s severity. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+-- in the /Amazon DevOps Guru User Guide/.+proactiveAnomaly_severity :: Lens.Lens' ProactiveAnomaly (Prelude.Maybe AnomalySeverity)+proactiveAnomaly_severity = Lens.lens (\ProactiveAnomaly' {severity} -> severity) (\s@ProactiveAnomaly' {} a -> s {severity = a} :: ProactiveAnomaly)++-- | Details about the source of the analyzed operational data that triggered+-- the anomaly. The one supported source is Amazon CloudWatch metrics.+proactiveAnomaly_sourceDetails :: Lens.Lens' ProactiveAnomaly (Prelude.Maybe AnomalySourceDetails)+proactiveAnomaly_sourceDetails = Lens.lens (\ProactiveAnomaly' {sourceDetails} -> sourceDetails) (\s@ProactiveAnomaly' {} a -> s {sourceDetails = a} :: ProactiveAnomaly)++-- | The metadata for the anomaly.+proactiveAnomaly_sourceMetadata :: Lens.Lens' ProactiveAnomaly (Prelude.Maybe AnomalySourceMetadata)+proactiveAnomaly_sourceMetadata = Lens.lens (\ProactiveAnomaly' {sourceMetadata} -> sourceMetadata) (\s@ProactiveAnomaly' {} a -> s {sourceMetadata = a} :: ProactiveAnomaly)++-- | The status of a proactive anomaly.+proactiveAnomaly_status :: Lens.Lens' ProactiveAnomaly (Prelude.Maybe AnomalyStatus)+proactiveAnomaly_status = Lens.lens (\ProactiveAnomaly' {status} -> status) (\s@ProactiveAnomaly' {} a -> s {status = a} :: ProactiveAnomaly)++-- | The time of the anomaly\'s most recent update.+proactiveAnomaly_updateTime :: Lens.Lens' ProactiveAnomaly (Prelude.Maybe Prelude.UTCTime)+proactiveAnomaly_updateTime = Lens.lens (\ProactiveAnomaly' {updateTime} -> updateTime) (\s@ProactiveAnomaly' {} a -> s {updateTime = a} :: ProactiveAnomaly) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON ProactiveAnomaly where+ parseJSON =+ Data.withObject+ "ProactiveAnomaly"+ ( \x ->+ ProactiveAnomaly'+ Prelude.<$> (x Data..:? "AnomalyReportedTimeRange")+ Prelude.<*> ( x+ Data..:? "AnomalyResources"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "AnomalyTimeRange")+ Prelude.<*> (x Data..:? "AssociatedInsightId")+ Prelude.<*> (x Data..:? "Id")+ Prelude.<*> (x Data..:? "Limit")+ Prelude.<*> (x Data..:? "PredictionTimeRange")+ Prelude.<*> (x Data..:? "ResourceCollection")+ Prelude.<*> (x Data..:? "Severity")+ Prelude.<*> (x Data..:? "SourceDetails")+ Prelude.<*> (x Data..:? "SourceMetadata")+ Prelude.<*> (x Data..:? "Status")+ Prelude.<*> (x Data..:? "UpdateTime")+ )++instance Prelude.Hashable ProactiveAnomaly where+ hashWithSalt _salt ProactiveAnomaly' {..} =+ _salt+ `Prelude.hashWithSalt` anomalyReportedTimeRange+ `Prelude.hashWithSalt` anomalyResources+ `Prelude.hashWithSalt` anomalyTimeRange+ `Prelude.hashWithSalt` associatedInsightId+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` limit+ `Prelude.hashWithSalt` predictionTimeRange+ `Prelude.hashWithSalt` resourceCollection+ `Prelude.hashWithSalt` severity+ `Prelude.hashWithSalt` sourceDetails+ `Prelude.hashWithSalt` sourceMetadata+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` updateTime++instance Prelude.NFData ProactiveAnomaly where+ rnf ProactiveAnomaly' {..} =+ Prelude.rnf anomalyReportedTimeRange+ `Prelude.seq` Prelude.rnf anomalyResources+ `Prelude.seq` Prelude.rnf anomalyTimeRange+ `Prelude.seq` Prelude.rnf associatedInsightId+ `Prelude.seq` Prelude.rnf id+ `Prelude.seq` Prelude.rnf limit+ `Prelude.seq` Prelude.rnf predictionTimeRange+ `Prelude.seq` Prelude.rnf resourceCollection+ `Prelude.seq` Prelude.rnf severity+ `Prelude.seq` Prelude.rnf sourceDetails+ `Prelude.seq` Prelude.rnf sourceMetadata+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf updateTime
+ gen/Amazonka/DevOpsGuru/Types/ProactiveAnomalySummary.hs view
@@ -0,0 +1,254 @@+{-# 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.DevOpsGuru.Types.ProactiveAnomalySummary+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.ProactiveAnomalySummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.AnomalyReportedTimeRange+import Amazonka.DevOpsGuru.Types.AnomalyResource+import Amazonka.DevOpsGuru.Types.AnomalySeverity+import Amazonka.DevOpsGuru.Types.AnomalySourceDetails+import Amazonka.DevOpsGuru.Types.AnomalySourceMetadata+import Amazonka.DevOpsGuru.Types.AnomalyStatus+import Amazonka.DevOpsGuru.Types.AnomalyTimeRange+import Amazonka.DevOpsGuru.Types.PredictionTimeRange+import Amazonka.DevOpsGuru.Types.ResourceCollection+import qualified Amazonka.Prelude as Prelude++-- | Details about a proactive anomaly. This object is returned by+-- @DescribeAnomaly.@+--+-- /See:/ 'newProactiveAnomalySummary' smart constructor.+data ProactiveAnomalySummary = ProactiveAnomalySummary'+ { -- | An @AnomalyReportedTimeRange@ object that specifies the time range+ -- between when the anomaly is opened and the time when it is closed.+ anomalyReportedTimeRange :: Prelude.Maybe AnomalyReportedTimeRange,+ -- | Information about a resource in which DevOps Guru detected anomalous+ -- behavior.+ anomalyResources :: Prelude.Maybe [AnomalyResource],+ anomalyTimeRange :: Prelude.Maybe AnomalyTimeRange,+ -- | The ID of the insight that contains this anomaly. An insight is composed+ -- of related anomalies.+ associatedInsightId :: Prelude.Maybe Prelude.Text,+ -- | The ID of the anomaly.+ id :: Prelude.Maybe Prelude.Text,+ -- | A threshold that was exceeded by behavior in analyzed resources.+ -- Exceeding this threshold is related to the anomalous behavior that+ -- generated this anomaly.+ limit :: Prelude.Maybe Prelude.Double,+ predictionTimeRange :: Prelude.Maybe PredictionTimeRange,+ resourceCollection :: Prelude.Maybe ResourceCollection,+ -- | The severity of the anomaly. The severity of anomalies that generate an+ -- insight determine that insight\'s severity. For more information, see+ -- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+ -- in the /Amazon DevOps Guru User Guide/.+ severity :: Prelude.Maybe AnomalySeverity,+ -- | Details about the source of the analyzed operational data that triggered+ -- the anomaly. The one supported source is Amazon CloudWatch metrics.+ sourceDetails :: Prelude.Maybe AnomalySourceDetails,+ -- | The metadata of the source which detects proactive anomalies.+ sourceMetadata :: Prelude.Maybe AnomalySourceMetadata,+ -- | The status of the anomaly.+ status :: Prelude.Maybe AnomalyStatus,+ -- | The time of the anomaly\'s most recent update.+ updateTime :: Prelude.Maybe Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ProactiveAnomalySummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyReportedTimeRange', 'proactiveAnomalySummary_anomalyReportedTimeRange' - An @AnomalyReportedTimeRange@ object that specifies the time range+-- between when the anomaly is opened and the time when it is closed.+--+-- 'anomalyResources', 'proactiveAnomalySummary_anomalyResources' - Information about a resource in which DevOps Guru detected anomalous+-- behavior.+--+-- 'anomalyTimeRange', 'proactiveAnomalySummary_anomalyTimeRange' - Undocumented member.+--+-- 'associatedInsightId', 'proactiveAnomalySummary_associatedInsightId' - The ID of the insight that contains this anomaly. An insight is composed+-- of related anomalies.+--+-- 'id', 'proactiveAnomalySummary_id' - The ID of the anomaly.+--+-- 'limit', 'proactiveAnomalySummary_limit' - A threshold that was exceeded by behavior in analyzed resources.+-- Exceeding this threshold is related to the anomalous behavior that+-- generated this anomaly.+--+-- 'predictionTimeRange', 'proactiveAnomalySummary_predictionTimeRange' - Undocumented member.+--+-- 'resourceCollection', 'proactiveAnomalySummary_resourceCollection' - Undocumented member.+--+-- 'severity', 'proactiveAnomalySummary_severity' - The severity of the anomaly. The severity of anomalies that generate an+-- insight determine that insight\'s severity. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+-- in the /Amazon DevOps Guru User Guide/.+--+-- 'sourceDetails', 'proactiveAnomalySummary_sourceDetails' - Details about the source of the analyzed operational data that triggered+-- the anomaly. The one supported source is Amazon CloudWatch metrics.+--+-- 'sourceMetadata', 'proactiveAnomalySummary_sourceMetadata' - The metadata of the source which detects proactive anomalies.+--+-- 'status', 'proactiveAnomalySummary_status' - The status of the anomaly.+--+-- 'updateTime', 'proactiveAnomalySummary_updateTime' - The time of the anomaly\'s most recent update.+newProactiveAnomalySummary ::+ ProactiveAnomalySummary+newProactiveAnomalySummary =+ ProactiveAnomalySummary'+ { anomalyReportedTimeRange =+ Prelude.Nothing,+ anomalyResources = Prelude.Nothing,+ anomalyTimeRange = Prelude.Nothing,+ associatedInsightId = Prelude.Nothing,+ id = Prelude.Nothing,+ limit = Prelude.Nothing,+ predictionTimeRange = Prelude.Nothing,+ resourceCollection = Prelude.Nothing,+ severity = Prelude.Nothing,+ sourceDetails = Prelude.Nothing,+ sourceMetadata = Prelude.Nothing,+ status = Prelude.Nothing,+ updateTime = Prelude.Nothing+ }++-- | An @AnomalyReportedTimeRange@ object that specifies the time range+-- between when the anomaly is opened and the time when it is closed.+proactiveAnomalySummary_anomalyReportedTimeRange :: Lens.Lens' ProactiveAnomalySummary (Prelude.Maybe AnomalyReportedTimeRange)+proactiveAnomalySummary_anomalyReportedTimeRange = Lens.lens (\ProactiveAnomalySummary' {anomalyReportedTimeRange} -> anomalyReportedTimeRange) (\s@ProactiveAnomalySummary' {} a -> s {anomalyReportedTimeRange = a} :: ProactiveAnomalySummary)++-- | Information about a resource in which DevOps Guru detected anomalous+-- behavior.+proactiveAnomalySummary_anomalyResources :: Lens.Lens' ProactiveAnomalySummary (Prelude.Maybe [AnomalyResource])+proactiveAnomalySummary_anomalyResources = Lens.lens (\ProactiveAnomalySummary' {anomalyResources} -> anomalyResources) (\s@ProactiveAnomalySummary' {} a -> s {anomalyResources = a} :: ProactiveAnomalySummary) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+proactiveAnomalySummary_anomalyTimeRange :: Lens.Lens' ProactiveAnomalySummary (Prelude.Maybe AnomalyTimeRange)+proactiveAnomalySummary_anomalyTimeRange = Lens.lens (\ProactiveAnomalySummary' {anomalyTimeRange} -> anomalyTimeRange) (\s@ProactiveAnomalySummary' {} a -> s {anomalyTimeRange = a} :: ProactiveAnomalySummary)++-- | The ID of the insight that contains this anomaly. An insight is composed+-- of related anomalies.+proactiveAnomalySummary_associatedInsightId :: Lens.Lens' ProactiveAnomalySummary (Prelude.Maybe Prelude.Text)+proactiveAnomalySummary_associatedInsightId = Lens.lens (\ProactiveAnomalySummary' {associatedInsightId} -> associatedInsightId) (\s@ProactiveAnomalySummary' {} a -> s {associatedInsightId = a} :: ProactiveAnomalySummary)++-- | The ID of the anomaly.+proactiveAnomalySummary_id :: Lens.Lens' ProactiveAnomalySummary (Prelude.Maybe Prelude.Text)+proactiveAnomalySummary_id = Lens.lens (\ProactiveAnomalySummary' {id} -> id) (\s@ProactiveAnomalySummary' {} a -> s {id = a} :: ProactiveAnomalySummary)++-- | A threshold that was exceeded by behavior in analyzed resources.+-- Exceeding this threshold is related to the anomalous behavior that+-- generated this anomaly.+proactiveAnomalySummary_limit :: Lens.Lens' ProactiveAnomalySummary (Prelude.Maybe Prelude.Double)+proactiveAnomalySummary_limit = Lens.lens (\ProactiveAnomalySummary' {limit} -> limit) (\s@ProactiveAnomalySummary' {} a -> s {limit = a} :: ProactiveAnomalySummary)++-- | Undocumented member.+proactiveAnomalySummary_predictionTimeRange :: Lens.Lens' ProactiveAnomalySummary (Prelude.Maybe PredictionTimeRange)+proactiveAnomalySummary_predictionTimeRange = Lens.lens (\ProactiveAnomalySummary' {predictionTimeRange} -> predictionTimeRange) (\s@ProactiveAnomalySummary' {} a -> s {predictionTimeRange = a} :: ProactiveAnomalySummary)++-- | Undocumented member.+proactiveAnomalySummary_resourceCollection :: Lens.Lens' ProactiveAnomalySummary (Prelude.Maybe ResourceCollection)+proactiveAnomalySummary_resourceCollection = Lens.lens (\ProactiveAnomalySummary' {resourceCollection} -> resourceCollection) (\s@ProactiveAnomalySummary' {} a -> s {resourceCollection = a} :: ProactiveAnomalySummary)++-- | The severity of the anomaly. The severity of anomalies that generate an+-- insight determine that insight\'s severity. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+-- in the /Amazon DevOps Guru User Guide/.+proactiveAnomalySummary_severity :: Lens.Lens' ProactiveAnomalySummary (Prelude.Maybe AnomalySeverity)+proactiveAnomalySummary_severity = Lens.lens (\ProactiveAnomalySummary' {severity} -> severity) (\s@ProactiveAnomalySummary' {} a -> s {severity = a} :: ProactiveAnomalySummary)++-- | Details about the source of the analyzed operational data that triggered+-- the anomaly. The one supported source is Amazon CloudWatch metrics.+proactiveAnomalySummary_sourceDetails :: Lens.Lens' ProactiveAnomalySummary (Prelude.Maybe AnomalySourceDetails)+proactiveAnomalySummary_sourceDetails = Lens.lens (\ProactiveAnomalySummary' {sourceDetails} -> sourceDetails) (\s@ProactiveAnomalySummary' {} a -> s {sourceDetails = a} :: ProactiveAnomalySummary)++-- | The metadata of the source which detects proactive anomalies.+proactiveAnomalySummary_sourceMetadata :: Lens.Lens' ProactiveAnomalySummary (Prelude.Maybe AnomalySourceMetadata)+proactiveAnomalySummary_sourceMetadata = Lens.lens (\ProactiveAnomalySummary' {sourceMetadata} -> sourceMetadata) (\s@ProactiveAnomalySummary' {} a -> s {sourceMetadata = a} :: ProactiveAnomalySummary)++-- | The status of the anomaly.+proactiveAnomalySummary_status :: Lens.Lens' ProactiveAnomalySummary (Prelude.Maybe AnomalyStatus)+proactiveAnomalySummary_status = Lens.lens (\ProactiveAnomalySummary' {status} -> status) (\s@ProactiveAnomalySummary' {} a -> s {status = a} :: ProactiveAnomalySummary)++-- | The time of the anomaly\'s most recent update.+proactiveAnomalySummary_updateTime :: Lens.Lens' ProactiveAnomalySummary (Prelude.Maybe Prelude.UTCTime)+proactiveAnomalySummary_updateTime = Lens.lens (\ProactiveAnomalySummary' {updateTime} -> updateTime) (\s@ProactiveAnomalySummary' {} a -> s {updateTime = a} :: ProactiveAnomalySummary) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON ProactiveAnomalySummary where+ parseJSON =+ Data.withObject+ "ProactiveAnomalySummary"+ ( \x ->+ ProactiveAnomalySummary'+ Prelude.<$> (x Data..:? "AnomalyReportedTimeRange")+ Prelude.<*> ( x+ Data..:? "AnomalyResources"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "AnomalyTimeRange")+ Prelude.<*> (x Data..:? "AssociatedInsightId")+ Prelude.<*> (x Data..:? "Id")+ Prelude.<*> (x Data..:? "Limit")+ Prelude.<*> (x Data..:? "PredictionTimeRange")+ Prelude.<*> (x Data..:? "ResourceCollection")+ Prelude.<*> (x Data..:? "Severity")+ Prelude.<*> (x Data..:? "SourceDetails")+ Prelude.<*> (x Data..:? "SourceMetadata")+ Prelude.<*> (x Data..:? "Status")+ Prelude.<*> (x Data..:? "UpdateTime")+ )++instance Prelude.Hashable ProactiveAnomalySummary where+ hashWithSalt _salt ProactiveAnomalySummary' {..} =+ _salt+ `Prelude.hashWithSalt` anomalyReportedTimeRange+ `Prelude.hashWithSalt` anomalyResources+ `Prelude.hashWithSalt` anomalyTimeRange+ `Prelude.hashWithSalt` associatedInsightId+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` limit+ `Prelude.hashWithSalt` predictionTimeRange+ `Prelude.hashWithSalt` resourceCollection+ `Prelude.hashWithSalt` severity+ `Prelude.hashWithSalt` sourceDetails+ `Prelude.hashWithSalt` sourceMetadata+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` updateTime++instance Prelude.NFData ProactiveAnomalySummary where+ rnf ProactiveAnomalySummary' {..} =+ Prelude.rnf anomalyReportedTimeRange+ `Prelude.seq` Prelude.rnf anomalyResources+ `Prelude.seq` Prelude.rnf anomalyTimeRange+ `Prelude.seq` Prelude.rnf associatedInsightId+ `Prelude.seq` Prelude.rnf id+ `Prelude.seq` Prelude.rnf limit+ `Prelude.seq` Prelude.rnf predictionTimeRange+ `Prelude.seq` Prelude.rnf resourceCollection+ `Prelude.seq` Prelude.rnf severity+ `Prelude.seq` Prelude.rnf sourceDetails+ `Prelude.seq` Prelude.rnf sourceMetadata+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf updateTime
+ gen/Amazonka/DevOpsGuru/Types/ProactiveInsight.hs view
@@ -0,0 +1,183 @@+{-# 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.DevOpsGuru.Types.ProactiveInsight+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.ProactiveInsight where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.InsightSeverity+import Amazonka.DevOpsGuru.Types.InsightStatus+import Amazonka.DevOpsGuru.Types.InsightTimeRange+import Amazonka.DevOpsGuru.Types.PredictionTimeRange+import Amazonka.DevOpsGuru.Types.ResourceCollection+import qualified Amazonka.Prelude as Prelude++-- | Details about a proactive insight. This object is returned by+-- @ListInsights@.+--+-- /See:/ 'newProactiveInsight' smart constructor.+data ProactiveInsight = ProactiveInsight'+ { -- | Describes the proactive insight.+ description :: Prelude.Maybe Prelude.Text,+ -- | The ID of the proactive insight.+ id :: Prelude.Maybe Prelude.Text,+ insightTimeRange :: Prelude.Maybe InsightTimeRange,+ -- | The name of the proactive insight.+ name :: Prelude.Maybe Prelude.Text,+ predictionTimeRange :: Prelude.Maybe PredictionTimeRange,+ resourceCollection :: Prelude.Maybe ResourceCollection,+ -- | The severity of the insight. For more information, see+ -- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+ -- in the /Amazon DevOps Guru User Guide/.+ severity :: Prelude.Maybe InsightSeverity,+ -- | The ID of the Amazon Web Services System Manager OpsItem created for+ -- this insight. You must enable the creation of OpstItems insights before+ -- they are created for each insight.+ ssmOpsItemId :: Prelude.Maybe Prelude.Text,+ -- | The status of the proactive insight.+ status :: Prelude.Maybe InsightStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ProactiveInsight' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'proactiveInsight_description' - Describes the proactive insight.+--+-- 'id', 'proactiveInsight_id' - The ID of the proactive insight.+--+-- 'insightTimeRange', 'proactiveInsight_insightTimeRange' - Undocumented member.+--+-- 'name', 'proactiveInsight_name' - The name of the proactive insight.+--+-- 'predictionTimeRange', 'proactiveInsight_predictionTimeRange' - Undocumented member.+--+-- 'resourceCollection', 'proactiveInsight_resourceCollection' - Undocumented member.+--+-- 'severity', 'proactiveInsight_severity' - The severity of the insight. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+-- in the /Amazon DevOps Guru User Guide/.+--+-- 'ssmOpsItemId', 'proactiveInsight_ssmOpsItemId' - The ID of the Amazon Web Services System Manager OpsItem created for+-- this insight. You must enable the creation of OpstItems insights before+-- they are created for each insight.+--+-- 'status', 'proactiveInsight_status' - The status of the proactive insight.+newProactiveInsight ::+ ProactiveInsight+newProactiveInsight =+ ProactiveInsight'+ { description = Prelude.Nothing,+ id = Prelude.Nothing,+ insightTimeRange = Prelude.Nothing,+ name = Prelude.Nothing,+ predictionTimeRange = Prelude.Nothing,+ resourceCollection = Prelude.Nothing,+ severity = Prelude.Nothing,+ ssmOpsItemId = Prelude.Nothing,+ status = Prelude.Nothing+ }++-- | Describes the proactive insight.+proactiveInsight_description :: Lens.Lens' ProactiveInsight (Prelude.Maybe Prelude.Text)+proactiveInsight_description = Lens.lens (\ProactiveInsight' {description} -> description) (\s@ProactiveInsight' {} a -> s {description = a} :: ProactiveInsight)++-- | The ID of the proactive insight.+proactiveInsight_id :: Lens.Lens' ProactiveInsight (Prelude.Maybe Prelude.Text)+proactiveInsight_id = Lens.lens (\ProactiveInsight' {id} -> id) (\s@ProactiveInsight' {} a -> s {id = a} :: ProactiveInsight)++-- | Undocumented member.+proactiveInsight_insightTimeRange :: Lens.Lens' ProactiveInsight (Prelude.Maybe InsightTimeRange)+proactiveInsight_insightTimeRange = Lens.lens (\ProactiveInsight' {insightTimeRange} -> insightTimeRange) (\s@ProactiveInsight' {} a -> s {insightTimeRange = a} :: ProactiveInsight)++-- | The name of the proactive insight.+proactiveInsight_name :: Lens.Lens' ProactiveInsight (Prelude.Maybe Prelude.Text)+proactiveInsight_name = Lens.lens (\ProactiveInsight' {name} -> name) (\s@ProactiveInsight' {} a -> s {name = a} :: ProactiveInsight)++-- | Undocumented member.+proactiveInsight_predictionTimeRange :: Lens.Lens' ProactiveInsight (Prelude.Maybe PredictionTimeRange)+proactiveInsight_predictionTimeRange = Lens.lens (\ProactiveInsight' {predictionTimeRange} -> predictionTimeRange) (\s@ProactiveInsight' {} a -> s {predictionTimeRange = a} :: ProactiveInsight)++-- | Undocumented member.+proactiveInsight_resourceCollection :: Lens.Lens' ProactiveInsight (Prelude.Maybe ResourceCollection)+proactiveInsight_resourceCollection = Lens.lens (\ProactiveInsight' {resourceCollection} -> resourceCollection) (\s@ProactiveInsight' {} a -> s {resourceCollection = a} :: ProactiveInsight)++-- | The severity of the insight. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+-- in the /Amazon DevOps Guru User Guide/.+proactiveInsight_severity :: Lens.Lens' ProactiveInsight (Prelude.Maybe InsightSeverity)+proactiveInsight_severity = Lens.lens (\ProactiveInsight' {severity} -> severity) (\s@ProactiveInsight' {} a -> s {severity = a} :: ProactiveInsight)++-- | The ID of the Amazon Web Services System Manager OpsItem created for+-- this insight. You must enable the creation of OpstItems insights before+-- they are created for each insight.+proactiveInsight_ssmOpsItemId :: Lens.Lens' ProactiveInsight (Prelude.Maybe Prelude.Text)+proactiveInsight_ssmOpsItemId = Lens.lens (\ProactiveInsight' {ssmOpsItemId} -> ssmOpsItemId) (\s@ProactiveInsight' {} a -> s {ssmOpsItemId = a} :: ProactiveInsight)++-- | The status of the proactive insight.+proactiveInsight_status :: Lens.Lens' ProactiveInsight (Prelude.Maybe InsightStatus)+proactiveInsight_status = Lens.lens (\ProactiveInsight' {status} -> status) (\s@ProactiveInsight' {} a -> s {status = a} :: ProactiveInsight)++instance Data.FromJSON ProactiveInsight where+ parseJSON =+ Data.withObject+ "ProactiveInsight"+ ( \x ->+ ProactiveInsight'+ Prelude.<$> (x Data..:? "Description")+ Prelude.<*> (x Data..:? "Id")+ Prelude.<*> (x Data..:? "InsightTimeRange")+ Prelude.<*> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "PredictionTimeRange")+ Prelude.<*> (x Data..:? "ResourceCollection")+ Prelude.<*> (x Data..:? "Severity")+ Prelude.<*> (x Data..:? "SsmOpsItemId")+ Prelude.<*> (x Data..:? "Status")+ )++instance Prelude.Hashable ProactiveInsight where+ hashWithSalt _salt ProactiveInsight' {..} =+ _salt+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` insightTimeRange+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` predictionTimeRange+ `Prelude.hashWithSalt` resourceCollection+ `Prelude.hashWithSalt` severity+ `Prelude.hashWithSalt` ssmOpsItemId+ `Prelude.hashWithSalt` status++instance Prelude.NFData ProactiveInsight where+ rnf ProactiveInsight' {..} =+ Prelude.rnf description+ `Prelude.seq` Prelude.rnf id+ `Prelude.seq` Prelude.rnf insightTimeRange+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf predictionTimeRange+ `Prelude.seq` Prelude.rnf resourceCollection+ `Prelude.seq` Prelude.rnf severity+ `Prelude.seq` Prelude.rnf ssmOpsItemId+ `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/DevOpsGuru/Types/ProactiveInsightSummary.hs view
@@ -0,0 +1,185 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.Types.ProactiveInsightSummary+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.ProactiveInsightSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.InsightSeverity+import Amazonka.DevOpsGuru.Types.InsightStatus+import Amazonka.DevOpsGuru.Types.InsightTimeRange+import Amazonka.DevOpsGuru.Types.PredictionTimeRange+import Amazonka.DevOpsGuru.Types.ResourceCollection+import Amazonka.DevOpsGuru.Types.ServiceCollection+import qualified Amazonka.Prelude as Prelude++-- | Details about a proactive insight. This object is returned by+-- @DescribeInsight.@+--+-- /See:/ 'newProactiveInsightSummary' smart constructor.+data ProactiveInsightSummary = ProactiveInsightSummary'+ { -- | The Amazon Resource Names (ARNs) of the Amazon Web Services resources+ -- that generated this insight.+ associatedResourceArns :: Prelude.Maybe [Prelude.Text],+ -- | The ID of the proactive insight.+ id :: Prelude.Maybe Prelude.Text,+ insightTimeRange :: Prelude.Maybe InsightTimeRange,+ -- | The name of the proactive insight.+ name :: Prelude.Maybe Prelude.Text,+ predictionTimeRange :: Prelude.Maybe PredictionTimeRange,+ resourceCollection :: Prelude.Maybe ResourceCollection,+ -- | A collection of the names of Amazon Web Services services.+ serviceCollection :: Prelude.Maybe ServiceCollection,+ -- | The severity of the insight. For more information, see+ -- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+ -- in the /Amazon DevOps Guru User Guide/.+ severity :: Prelude.Maybe InsightSeverity,+ -- | The status of the proactive insight.+ status :: Prelude.Maybe InsightStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ProactiveInsightSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'associatedResourceArns', 'proactiveInsightSummary_associatedResourceArns' - The Amazon Resource Names (ARNs) of the Amazon Web Services resources+-- that generated this insight.+--+-- 'id', 'proactiveInsightSummary_id' - The ID of the proactive insight.+--+-- 'insightTimeRange', 'proactiveInsightSummary_insightTimeRange' - Undocumented member.+--+-- 'name', 'proactiveInsightSummary_name' - The name of the proactive insight.+--+-- 'predictionTimeRange', 'proactiveInsightSummary_predictionTimeRange' - Undocumented member.+--+-- 'resourceCollection', 'proactiveInsightSummary_resourceCollection' - Undocumented member.+--+-- 'serviceCollection', 'proactiveInsightSummary_serviceCollection' - A collection of the names of Amazon Web Services services.+--+-- 'severity', 'proactiveInsightSummary_severity' - The severity of the insight. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+-- in the /Amazon DevOps Guru User Guide/.+--+-- 'status', 'proactiveInsightSummary_status' - The status of the proactive insight.+newProactiveInsightSummary ::+ ProactiveInsightSummary+newProactiveInsightSummary =+ ProactiveInsightSummary'+ { associatedResourceArns =+ Prelude.Nothing,+ id = Prelude.Nothing,+ insightTimeRange = Prelude.Nothing,+ name = Prelude.Nothing,+ predictionTimeRange = Prelude.Nothing,+ resourceCollection = Prelude.Nothing,+ serviceCollection = Prelude.Nothing,+ severity = Prelude.Nothing,+ status = Prelude.Nothing+ }++-- | The Amazon Resource Names (ARNs) of the Amazon Web Services resources+-- that generated this insight.+proactiveInsightSummary_associatedResourceArns :: Lens.Lens' ProactiveInsightSummary (Prelude.Maybe [Prelude.Text])+proactiveInsightSummary_associatedResourceArns = Lens.lens (\ProactiveInsightSummary' {associatedResourceArns} -> associatedResourceArns) (\s@ProactiveInsightSummary' {} a -> s {associatedResourceArns = a} :: ProactiveInsightSummary) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the proactive insight.+proactiveInsightSummary_id :: Lens.Lens' ProactiveInsightSummary (Prelude.Maybe Prelude.Text)+proactiveInsightSummary_id = Lens.lens (\ProactiveInsightSummary' {id} -> id) (\s@ProactiveInsightSummary' {} a -> s {id = a} :: ProactiveInsightSummary)++-- | Undocumented member.+proactiveInsightSummary_insightTimeRange :: Lens.Lens' ProactiveInsightSummary (Prelude.Maybe InsightTimeRange)+proactiveInsightSummary_insightTimeRange = Lens.lens (\ProactiveInsightSummary' {insightTimeRange} -> insightTimeRange) (\s@ProactiveInsightSummary' {} a -> s {insightTimeRange = a} :: ProactiveInsightSummary)++-- | The name of the proactive insight.+proactiveInsightSummary_name :: Lens.Lens' ProactiveInsightSummary (Prelude.Maybe Prelude.Text)+proactiveInsightSummary_name = Lens.lens (\ProactiveInsightSummary' {name} -> name) (\s@ProactiveInsightSummary' {} a -> s {name = a} :: ProactiveInsightSummary)++-- | Undocumented member.+proactiveInsightSummary_predictionTimeRange :: Lens.Lens' ProactiveInsightSummary (Prelude.Maybe PredictionTimeRange)+proactiveInsightSummary_predictionTimeRange = Lens.lens (\ProactiveInsightSummary' {predictionTimeRange} -> predictionTimeRange) (\s@ProactiveInsightSummary' {} a -> s {predictionTimeRange = a} :: ProactiveInsightSummary)++-- | Undocumented member.+proactiveInsightSummary_resourceCollection :: Lens.Lens' ProactiveInsightSummary (Prelude.Maybe ResourceCollection)+proactiveInsightSummary_resourceCollection = Lens.lens (\ProactiveInsightSummary' {resourceCollection} -> resourceCollection) (\s@ProactiveInsightSummary' {} a -> s {resourceCollection = a} :: ProactiveInsightSummary)++-- | A collection of the names of Amazon Web Services services.+proactiveInsightSummary_serviceCollection :: Lens.Lens' ProactiveInsightSummary (Prelude.Maybe ServiceCollection)+proactiveInsightSummary_serviceCollection = Lens.lens (\ProactiveInsightSummary' {serviceCollection} -> serviceCollection) (\s@ProactiveInsightSummary' {} a -> s {serviceCollection = a} :: ProactiveInsightSummary)++-- | The severity of the insight. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+-- in the /Amazon DevOps Guru User Guide/.+proactiveInsightSummary_severity :: Lens.Lens' ProactiveInsightSummary (Prelude.Maybe InsightSeverity)+proactiveInsightSummary_severity = Lens.lens (\ProactiveInsightSummary' {severity} -> severity) (\s@ProactiveInsightSummary' {} a -> s {severity = a} :: ProactiveInsightSummary)++-- | The status of the proactive insight.+proactiveInsightSummary_status :: Lens.Lens' ProactiveInsightSummary (Prelude.Maybe InsightStatus)+proactiveInsightSummary_status = Lens.lens (\ProactiveInsightSummary' {status} -> status) (\s@ProactiveInsightSummary' {} a -> s {status = a} :: ProactiveInsightSummary)++instance Data.FromJSON ProactiveInsightSummary where+ parseJSON =+ Data.withObject+ "ProactiveInsightSummary"+ ( \x ->+ ProactiveInsightSummary'+ Prelude.<$> ( x+ Data..:? "AssociatedResourceArns"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "Id")+ Prelude.<*> (x Data..:? "InsightTimeRange")+ Prelude.<*> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "PredictionTimeRange")+ Prelude.<*> (x Data..:? "ResourceCollection")+ Prelude.<*> (x Data..:? "ServiceCollection")+ Prelude.<*> (x Data..:? "Severity")+ Prelude.<*> (x Data..:? "Status")+ )++instance Prelude.Hashable ProactiveInsightSummary where+ hashWithSalt _salt ProactiveInsightSummary' {..} =+ _salt+ `Prelude.hashWithSalt` associatedResourceArns+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` insightTimeRange+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` predictionTimeRange+ `Prelude.hashWithSalt` resourceCollection+ `Prelude.hashWithSalt` serviceCollection+ `Prelude.hashWithSalt` severity+ `Prelude.hashWithSalt` status++instance Prelude.NFData ProactiveInsightSummary where+ rnf ProactiveInsightSummary' {..} =+ Prelude.rnf associatedResourceArns+ `Prelude.seq` Prelude.rnf id+ `Prelude.seq` Prelude.rnf insightTimeRange+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf predictionTimeRange+ `Prelude.seq` Prelude.rnf resourceCollection+ `Prelude.seq` Prelude.rnf serviceCollection+ `Prelude.seq` Prelude.rnf severity+ `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/DevOpsGuru/Types/ProactiveOrganizationInsightSummary.hs view
@@ -0,0 +1,204 @@+{-# 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.DevOpsGuru.Types.ProactiveOrganizationInsightSummary+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.ProactiveOrganizationInsightSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.InsightSeverity+import Amazonka.DevOpsGuru.Types.InsightStatus+import Amazonka.DevOpsGuru.Types.InsightTimeRange+import Amazonka.DevOpsGuru.Types.PredictionTimeRange+import Amazonka.DevOpsGuru.Types.ResourceCollection+import Amazonka.DevOpsGuru.Types.ServiceCollection+import qualified Amazonka.Prelude as Prelude++-- | Details about a proactive insight. This object is returned by+-- @DescribeInsight@.+--+-- /See:/ 'newProactiveOrganizationInsightSummary' smart constructor.+data ProactiveOrganizationInsightSummary = ProactiveOrganizationInsightSummary'+ { -- | The ID of the Amazon Web Services account.+ accountId :: Prelude.Maybe Prelude.Text,+ -- | The ID of the insight summary.+ id :: Prelude.Maybe Prelude.Text,+ insightTimeRange :: Prelude.Maybe InsightTimeRange,+ -- | The name of the insight summary.+ name :: Prelude.Maybe Prelude.Text,+ -- | The ID of the organizational unit.+ organizationalUnitId :: Prelude.Maybe Prelude.Text,+ predictionTimeRange :: Prelude.Maybe PredictionTimeRange,+ resourceCollection :: Prelude.Maybe ResourceCollection,+ serviceCollection :: Prelude.Maybe ServiceCollection,+ -- | An array of severity values used to search for insights. For more+ -- information, see+ -- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+ -- in the /Amazon DevOps Guru User Guide/.+ severity :: Prelude.Maybe InsightSeverity,+ -- | An array of status values used to search for insights.+ status :: Prelude.Maybe InsightStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ProactiveOrganizationInsightSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'proactiveOrganizationInsightSummary_accountId' - The ID of the Amazon Web Services account.+--+-- 'id', 'proactiveOrganizationInsightSummary_id' - The ID of the insight summary.+--+-- 'insightTimeRange', 'proactiveOrganizationInsightSummary_insightTimeRange' - Undocumented member.+--+-- 'name', 'proactiveOrganizationInsightSummary_name' - The name of the insight summary.+--+-- 'organizationalUnitId', 'proactiveOrganizationInsightSummary_organizationalUnitId' - The ID of the organizational unit.+--+-- 'predictionTimeRange', 'proactiveOrganizationInsightSummary_predictionTimeRange' - Undocumented member.+--+-- 'resourceCollection', 'proactiveOrganizationInsightSummary_resourceCollection' - Undocumented member.+--+-- 'serviceCollection', 'proactiveOrganizationInsightSummary_serviceCollection' - Undocumented member.+--+-- 'severity', 'proactiveOrganizationInsightSummary_severity' - An array of severity values used to search for insights. For more+-- information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+-- in the /Amazon DevOps Guru User Guide/.+--+-- 'status', 'proactiveOrganizationInsightSummary_status' - An array of status values used to search for insights.+newProactiveOrganizationInsightSummary ::+ ProactiveOrganizationInsightSummary+newProactiveOrganizationInsightSummary =+ ProactiveOrganizationInsightSummary'+ { accountId =+ Prelude.Nothing,+ id = Prelude.Nothing,+ insightTimeRange = Prelude.Nothing,+ name = Prelude.Nothing,+ organizationalUnitId = Prelude.Nothing,+ predictionTimeRange = Prelude.Nothing,+ resourceCollection = Prelude.Nothing,+ serviceCollection = Prelude.Nothing,+ severity = Prelude.Nothing,+ status = Prelude.Nothing+ }++-- | The ID of the Amazon Web Services account.+proactiveOrganizationInsightSummary_accountId :: Lens.Lens' ProactiveOrganizationInsightSummary (Prelude.Maybe Prelude.Text)+proactiveOrganizationInsightSummary_accountId = Lens.lens (\ProactiveOrganizationInsightSummary' {accountId} -> accountId) (\s@ProactiveOrganizationInsightSummary' {} a -> s {accountId = a} :: ProactiveOrganizationInsightSummary)++-- | The ID of the insight summary.+proactiveOrganizationInsightSummary_id :: Lens.Lens' ProactiveOrganizationInsightSummary (Prelude.Maybe Prelude.Text)+proactiveOrganizationInsightSummary_id = Lens.lens (\ProactiveOrganizationInsightSummary' {id} -> id) (\s@ProactiveOrganizationInsightSummary' {} a -> s {id = a} :: ProactiveOrganizationInsightSummary)++-- | Undocumented member.+proactiveOrganizationInsightSummary_insightTimeRange :: Lens.Lens' ProactiveOrganizationInsightSummary (Prelude.Maybe InsightTimeRange)+proactiveOrganizationInsightSummary_insightTimeRange = Lens.lens (\ProactiveOrganizationInsightSummary' {insightTimeRange} -> insightTimeRange) (\s@ProactiveOrganizationInsightSummary' {} a -> s {insightTimeRange = a} :: ProactiveOrganizationInsightSummary)++-- | The name of the insight summary.+proactiveOrganizationInsightSummary_name :: Lens.Lens' ProactiveOrganizationInsightSummary (Prelude.Maybe Prelude.Text)+proactiveOrganizationInsightSummary_name = Lens.lens (\ProactiveOrganizationInsightSummary' {name} -> name) (\s@ProactiveOrganizationInsightSummary' {} a -> s {name = a} :: ProactiveOrganizationInsightSummary)++-- | The ID of the organizational unit.+proactiveOrganizationInsightSummary_organizationalUnitId :: Lens.Lens' ProactiveOrganizationInsightSummary (Prelude.Maybe Prelude.Text)+proactiveOrganizationInsightSummary_organizationalUnitId = Lens.lens (\ProactiveOrganizationInsightSummary' {organizationalUnitId} -> organizationalUnitId) (\s@ProactiveOrganizationInsightSummary' {} a -> s {organizationalUnitId = a} :: ProactiveOrganizationInsightSummary)++-- | Undocumented member.+proactiveOrganizationInsightSummary_predictionTimeRange :: Lens.Lens' ProactiveOrganizationInsightSummary (Prelude.Maybe PredictionTimeRange)+proactiveOrganizationInsightSummary_predictionTimeRange = Lens.lens (\ProactiveOrganizationInsightSummary' {predictionTimeRange} -> predictionTimeRange) (\s@ProactiveOrganizationInsightSummary' {} a -> s {predictionTimeRange = a} :: ProactiveOrganizationInsightSummary)++-- | Undocumented member.+proactiveOrganizationInsightSummary_resourceCollection :: Lens.Lens' ProactiveOrganizationInsightSummary (Prelude.Maybe ResourceCollection)+proactiveOrganizationInsightSummary_resourceCollection = Lens.lens (\ProactiveOrganizationInsightSummary' {resourceCollection} -> resourceCollection) (\s@ProactiveOrganizationInsightSummary' {} a -> s {resourceCollection = a} :: ProactiveOrganizationInsightSummary)++-- | Undocumented member.+proactiveOrganizationInsightSummary_serviceCollection :: Lens.Lens' ProactiveOrganizationInsightSummary (Prelude.Maybe ServiceCollection)+proactiveOrganizationInsightSummary_serviceCollection = Lens.lens (\ProactiveOrganizationInsightSummary' {serviceCollection} -> serviceCollection) (\s@ProactiveOrganizationInsightSummary' {} a -> s {serviceCollection = a} :: ProactiveOrganizationInsightSummary)++-- | An array of severity values used to search for insights. For more+-- information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+-- in the /Amazon DevOps Guru User Guide/.+proactiveOrganizationInsightSummary_severity :: Lens.Lens' ProactiveOrganizationInsightSummary (Prelude.Maybe InsightSeverity)+proactiveOrganizationInsightSummary_severity = Lens.lens (\ProactiveOrganizationInsightSummary' {severity} -> severity) (\s@ProactiveOrganizationInsightSummary' {} a -> s {severity = a} :: ProactiveOrganizationInsightSummary)++-- | An array of status values used to search for insights.+proactiveOrganizationInsightSummary_status :: Lens.Lens' ProactiveOrganizationInsightSummary (Prelude.Maybe InsightStatus)+proactiveOrganizationInsightSummary_status = Lens.lens (\ProactiveOrganizationInsightSummary' {status} -> status) (\s@ProactiveOrganizationInsightSummary' {} a -> s {status = a} :: ProactiveOrganizationInsightSummary)++instance+ Data.FromJSON+ ProactiveOrganizationInsightSummary+ where+ parseJSON =+ Data.withObject+ "ProactiveOrganizationInsightSummary"+ ( \x ->+ ProactiveOrganizationInsightSummary'+ Prelude.<$> (x Data..:? "AccountId")+ Prelude.<*> (x Data..:? "Id")+ Prelude.<*> (x Data..:? "InsightTimeRange")+ Prelude.<*> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "OrganizationalUnitId")+ Prelude.<*> (x Data..:? "PredictionTimeRange")+ Prelude.<*> (x Data..:? "ResourceCollection")+ Prelude.<*> (x Data..:? "ServiceCollection")+ Prelude.<*> (x Data..:? "Severity")+ Prelude.<*> (x Data..:? "Status")+ )++instance+ Prelude.Hashable+ ProactiveOrganizationInsightSummary+ where+ hashWithSalt+ _salt+ ProactiveOrganizationInsightSummary' {..} =+ _salt+ `Prelude.hashWithSalt` accountId+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` insightTimeRange+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` organizationalUnitId+ `Prelude.hashWithSalt` predictionTimeRange+ `Prelude.hashWithSalt` resourceCollection+ `Prelude.hashWithSalt` serviceCollection+ `Prelude.hashWithSalt` severity+ `Prelude.hashWithSalt` status++instance+ Prelude.NFData+ ProactiveOrganizationInsightSummary+ where+ rnf ProactiveOrganizationInsightSummary' {..} =+ Prelude.rnf accountId+ `Prelude.seq` Prelude.rnf id+ `Prelude.seq` Prelude.rnf insightTimeRange+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf organizationalUnitId+ `Prelude.seq` Prelude.rnf predictionTimeRange+ `Prelude.seq` Prelude.rnf resourceCollection+ `Prelude.seq` Prelude.rnf serviceCollection+ `Prelude.seq` Prelude.rnf severity+ `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/DevOpsGuru/Types/ReactiveAnomaly.hs view
@@ -0,0 +1,266 @@+{-# 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.DevOpsGuru.Types.ReactiveAnomaly+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.ReactiveAnomaly where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.AnomalyReportedTimeRange+import Amazonka.DevOpsGuru.Types.AnomalyResource+import Amazonka.DevOpsGuru.Types.AnomalySeverity+import Amazonka.DevOpsGuru.Types.AnomalySourceDetails+import Amazonka.DevOpsGuru.Types.AnomalyStatus+import Amazonka.DevOpsGuru.Types.AnomalyTimeRange+import Amazonka.DevOpsGuru.Types.AnomalyType+import Amazonka.DevOpsGuru.Types.ResourceCollection+import qualified Amazonka.Prelude as Prelude++-- | Details about a reactive anomaly. This object is returned by+-- @ListAnomalies@.+--+-- /See:/ 'newReactiveAnomaly' smart constructor.+data ReactiveAnomaly = ReactiveAnomaly'+ { -- | An @AnomalyReportedTimeRange@ object that specifies the time range+ -- between when the anomaly is opened and the time when it is closed.+ anomalyReportedTimeRange :: Prelude.Maybe AnomalyReportedTimeRange,+ -- | The Amazon Web Services resources in which anomalous behavior was+ -- detected by DevOps Guru.+ anomalyResources :: Prelude.Maybe [AnomalyResource],+ anomalyTimeRange :: Prelude.Maybe AnomalyTimeRange,+ -- | The ID of the insight that contains this anomaly. An insight is composed+ -- of related anomalies.+ associatedInsightId :: Prelude.Maybe Prelude.Text,+ -- | The ID of the causal anomaly that is associated with this reactive+ -- anomaly. The ID of a \`CAUSAL\` anomaly is always \`NULL\`.+ causalAnomalyId :: Prelude.Maybe Prelude.Text,+ -- | A description of the reactive anomaly.+ description :: Prelude.Maybe Prelude.Text,+ -- | The ID of the reactive anomaly.+ id :: Prelude.Maybe Prelude.Text,+ -- | The name of the reactive anomaly.+ name :: Prelude.Maybe Prelude.Text,+ resourceCollection :: Prelude.Maybe ResourceCollection,+ -- | The severity of the anomaly. The severity of anomalies that generate an+ -- insight determine that insight\'s severity. For more information, see+ -- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+ -- in the /Amazon DevOps Guru User Guide/.+ severity :: Prelude.Maybe AnomalySeverity,+ -- | Details about the source of the analyzed operational data that triggered+ -- the anomaly. The one supported source is Amazon CloudWatch metrics.+ sourceDetails :: Prelude.Maybe AnomalySourceDetails,+ -- | The status of the anomaly.+ status :: Prelude.Maybe AnomalyStatus,+ -- | The type of the reactive anomaly. It can be one of the following types.+ --+ -- - @CAUSAL@ - the anomaly can cause a new insight.+ --+ -- - @CONTEXTUAL@ - the anomaly contains additional information about an+ -- insight or its causal anomaly.+ type' :: Prelude.Maybe AnomalyType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReactiveAnomaly' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyReportedTimeRange', 'reactiveAnomaly_anomalyReportedTimeRange' - An @AnomalyReportedTimeRange@ object that specifies the time range+-- between when the anomaly is opened and the time when it is closed.+--+-- 'anomalyResources', 'reactiveAnomaly_anomalyResources' - The Amazon Web Services resources in which anomalous behavior was+-- detected by DevOps Guru.+--+-- 'anomalyTimeRange', 'reactiveAnomaly_anomalyTimeRange' - Undocumented member.+--+-- 'associatedInsightId', 'reactiveAnomaly_associatedInsightId' - The ID of the insight that contains this anomaly. An insight is composed+-- of related anomalies.+--+-- 'causalAnomalyId', 'reactiveAnomaly_causalAnomalyId' - The ID of the causal anomaly that is associated with this reactive+-- anomaly. The ID of a \`CAUSAL\` anomaly is always \`NULL\`.+--+-- 'description', 'reactiveAnomaly_description' - A description of the reactive anomaly.+--+-- 'id', 'reactiveAnomaly_id' - The ID of the reactive anomaly.+--+-- 'name', 'reactiveAnomaly_name' - The name of the reactive anomaly.+--+-- 'resourceCollection', 'reactiveAnomaly_resourceCollection' - Undocumented member.+--+-- 'severity', 'reactiveAnomaly_severity' - The severity of the anomaly. The severity of anomalies that generate an+-- insight determine that insight\'s severity. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+-- in the /Amazon DevOps Guru User Guide/.+--+-- 'sourceDetails', 'reactiveAnomaly_sourceDetails' - Details about the source of the analyzed operational data that triggered+-- the anomaly. The one supported source is Amazon CloudWatch metrics.+--+-- 'status', 'reactiveAnomaly_status' - The status of the anomaly.+--+-- 'type'', 'reactiveAnomaly_type' - The type of the reactive anomaly. It can be one of the following types.+--+-- - @CAUSAL@ - the anomaly can cause a new insight.+--+-- - @CONTEXTUAL@ - the anomaly contains additional information about an+-- insight or its causal anomaly.+newReactiveAnomaly ::+ ReactiveAnomaly+newReactiveAnomaly =+ ReactiveAnomaly'+ { anomalyReportedTimeRange =+ Prelude.Nothing,+ anomalyResources = Prelude.Nothing,+ anomalyTimeRange = Prelude.Nothing,+ associatedInsightId = Prelude.Nothing,+ causalAnomalyId = Prelude.Nothing,+ description = Prelude.Nothing,+ id = Prelude.Nothing,+ name = Prelude.Nothing,+ resourceCollection = Prelude.Nothing,+ severity = Prelude.Nothing,+ sourceDetails = Prelude.Nothing,+ status = Prelude.Nothing,+ type' = Prelude.Nothing+ }++-- | An @AnomalyReportedTimeRange@ object that specifies the time range+-- between when the anomaly is opened and the time when it is closed.+reactiveAnomaly_anomalyReportedTimeRange :: Lens.Lens' ReactiveAnomaly (Prelude.Maybe AnomalyReportedTimeRange)+reactiveAnomaly_anomalyReportedTimeRange = Lens.lens (\ReactiveAnomaly' {anomalyReportedTimeRange} -> anomalyReportedTimeRange) (\s@ReactiveAnomaly' {} a -> s {anomalyReportedTimeRange = a} :: ReactiveAnomaly)++-- | The Amazon Web Services resources in which anomalous behavior was+-- detected by DevOps Guru.+reactiveAnomaly_anomalyResources :: Lens.Lens' ReactiveAnomaly (Prelude.Maybe [AnomalyResource])+reactiveAnomaly_anomalyResources = Lens.lens (\ReactiveAnomaly' {anomalyResources} -> anomalyResources) (\s@ReactiveAnomaly' {} a -> s {anomalyResources = a} :: ReactiveAnomaly) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+reactiveAnomaly_anomalyTimeRange :: Lens.Lens' ReactiveAnomaly (Prelude.Maybe AnomalyTimeRange)+reactiveAnomaly_anomalyTimeRange = Lens.lens (\ReactiveAnomaly' {anomalyTimeRange} -> anomalyTimeRange) (\s@ReactiveAnomaly' {} a -> s {anomalyTimeRange = a} :: ReactiveAnomaly)++-- | The ID of the insight that contains this anomaly. An insight is composed+-- of related anomalies.+reactiveAnomaly_associatedInsightId :: Lens.Lens' ReactiveAnomaly (Prelude.Maybe Prelude.Text)+reactiveAnomaly_associatedInsightId = Lens.lens (\ReactiveAnomaly' {associatedInsightId} -> associatedInsightId) (\s@ReactiveAnomaly' {} a -> s {associatedInsightId = a} :: ReactiveAnomaly)++-- | The ID of the causal anomaly that is associated with this reactive+-- anomaly. The ID of a \`CAUSAL\` anomaly is always \`NULL\`.+reactiveAnomaly_causalAnomalyId :: Lens.Lens' ReactiveAnomaly (Prelude.Maybe Prelude.Text)+reactiveAnomaly_causalAnomalyId = Lens.lens (\ReactiveAnomaly' {causalAnomalyId} -> causalAnomalyId) (\s@ReactiveAnomaly' {} a -> s {causalAnomalyId = a} :: ReactiveAnomaly)++-- | A description of the reactive anomaly.+reactiveAnomaly_description :: Lens.Lens' ReactiveAnomaly (Prelude.Maybe Prelude.Text)+reactiveAnomaly_description = Lens.lens (\ReactiveAnomaly' {description} -> description) (\s@ReactiveAnomaly' {} a -> s {description = a} :: ReactiveAnomaly)++-- | The ID of the reactive anomaly.+reactiveAnomaly_id :: Lens.Lens' ReactiveAnomaly (Prelude.Maybe Prelude.Text)+reactiveAnomaly_id = Lens.lens (\ReactiveAnomaly' {id} -> id) (\s@ReactiveAnomaly' {} a -> s {id = a} :: ReactiveAnomaly)++-- | The name of the reactive anomaly.+reactiveAnomaly_name :: Lens.Lens' ReactiveAnomaly (Prelude.Maybe Prelude.Text)+reactiveAnomaly_name = Lens.lens (\ReactiveAnomaly' {name} -> name) (\s@ReactiveAnomaly' {} a -> s {name = a} :: ReactiveAnomaly)++-- | Undocumented member.+reactiveAnomaly_resourceCollection :: Lens.Lens' ReactiveAnomaly (Prelude.Maybe ResourceCollection)+reactiveAnomaly_resourceCollection = Lens.lens (\ReactiveAnomaly' {resourceCollection} -> resourceCollection) (\s@ReactiveAnomaly' {} a -> s {resourceCollection = a} :: ReactiveAnomaly)++-- | The severity of the anomaly. The severity of anomalies that generate an+-- insight determine that insight\'s severity. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+-- in the /Amazon DevOps Guru User Guide/.+reactiveAnomaly_severity :: Lens.Lens' ReactiveAnomaly (Prelude.Maybe AnomalySeverity)+reactiveAnomaly_severity = Lens.lens (\ReactiveAnomaly' {severity} -> severity) (\s@ReactiveAnomaly' {} a -> s {severity = a} :: ReactiveAnomaly)++-- | Details about the source of the analyzed operational data that triggered+-- the anomaly. The one supported source is Amazon CloudWatch metrics.+reactiveAnomaly_sourceDetails :: Lens.Lens' ReactiveAnomaly (Prelude.Maybe AnomalySourceDetails)+reactiveAnomaly_sourceDetails = Lens.lens (\ReactiveAnomaly' {sourceDetails} -> sourceDetails) (\s@ReactiveAnomaly' {} a -> s {sourceDetails = a} :: ReactiveAnomaly)++-- | The status of the anomaly.+reactiveAnomaly_status :: Lens.Lens' ReactiveAnomaly (Prelude.Maybe AnomalyStatus)+reactiveAnomaly_status = Lens.lens (\ReactiveAnomaly' {status} -> status) (\s@ReactiveAnomaly' {} a -> s {status = a} :: ReactiveAnomaly)++-- | The type of the reactive anomaly. It can be one of the following types.+--+-- - @CAUSAL@ - the anomaly can cause a new insight.+--+-- - @CONTEXTUAL@ - the anomaly contains additional information about an+-- insight or its causal anomaly.+reactiveAnomaly_type :: Lens.Lens' ReactiveAnomaly (Prelude.Maybe AnomalyType)+reactiveAnomaly_type = Lens.lens (\ReactiveAnomaly' {type'} -> type') (\s@ReactiveAnomaly' {} a -> s {type' = a} :: ReactiveAnomaly)++instance Data.FromJSON ReactiveAnomaly where+ parseJSON =+ Data.withObject+ "ReactiveAnomaly"+ ( \x ->+ ReactiveAnomaly'+ Prelude.<$> (x Data..:? "AnomalyReportedTimeRange")+ Prelude.<*> ( x+ Data..:? "AnomalyResources"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "AnomalyTimeRange")+ Prelude.<*> (x Data..:? "AssociatedInsightId")+ Prelude.<*> (x Data..:? "CausalAnomalyId")+ Prelude.<*> (x Data..:? "Description")+ Prelude.<*> (x Data..:? "Id")+ Prelude.<*> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "ResourceCollection")+ Prelude.<*> (x Data..:? "Severity")+ Prelude.<*> (x Data..:? "SourceDetails")+ Prelude.<*> (x Data..:? "Status")+ Prelude.<*> (x Data..:? "Type")+ )++instance Prelude.Hashable ReactiveAnomaly where+ hashWithSalt _salt ReactiveAnomaly' {..} =+ _salt+ `Prelude.hashWithSalt` anomalyReportedTimeRange+ `Prelude.hashWithSalt` anomalyResources+ `Prelude.hashWithSalt` anomalyTimeRange+ `Prelude.hashWithSalt` associatedInsightId+ `Prelude.hashWithSalt` causalAnomalyId+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` resourceCollection+ `Prelude.hashWithSalt` severity+ `Prelude.hashWithSalt` sourceDetails+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` type'++instance Prelude.NFData ReactiveAnomaly where+ rnf ReactiveAnomaly' {..} =+ Prelude.rnf anomalyReportedTimeRange+ `Prelude.seq` Prelude.rnf anomalyResources+ `Prelude.seq` Prelude.rnf anomalyTimeRange+ `Prelude.seq` Prelude.rnf associatedInsightId+ `Prelude.seq` Prelude.rnf causalAnomalyId+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf id+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf resourceCollection+ `Prelude.seq` Prelude.rnf severity+ `Prelude.seq` Prelude.rnf sourceDetails+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/DevOpsGuru/Types/ReactiveAnomalySummary.hs view
@@ -0,0 +1,266 @@+{-# 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.DevOpsGuru.Types.ReactiveAnomalySummary+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.ReactiveAnomalySummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.AnomalyReportedTimeRange+import Amazonka.DevOpsGuru.Types.AnomalyResource+import Amazonka.DevOpsGuru.Types.AnomalySeverity+import Amazonka.DevOpsGuru.Types.AnomalySourceDetails+import Amazonka.DevOpsGuru.Types.AnomalyStatus+import Amazonka.DevOpsGuru.Types.AnomalyTimeRange+import Amazonka.DevOpsGuru.Types.AnomalyType+import Amazonka.DevOpsGuru.Types.ResourceCollection+import qualified Amazonka.Prelude as Prelude++-- | Details about a reactive anomaly. This object is returned by+-- @DescribeAnomaly.@+--+-- /See:/ 'newReactiveAnomalySummary' smart constructor.+data ReactiveAnomalySummary = ReactiveAnomalySummary'+ { -- | An @AnomalyReportedTimeRange@ object that specifies the time range+ -- between when the anomaly is opened and the time when it is closed.+ anomalyReportedTimeRange :: Prelude.Maybe AnomalyReportedTimeRange,+ -- | The Amazon Web Services resources in which anomalous behavior was+ -- detected by DevOps Guru.+ anomalyResources :: Prelude.Maybe [AnomalyResource],+ anomalyTimeRange :: Prelude.Maybe AnomalyTimeRange,+ -- | The ID of the insight that contains this anomaly. An insight is composed+ -- of related anomalies.+ associatedInsightId :: Prelude.Maybe Prelude.Text,+ -- | The ID of the causal anomaly that is associated with this reactive+ -- anomaly. The ID of a \`CAUSAL\` anomaly is always \`NULL\`.+ causalAnomalyId :: Prelude.Maybe Prelude.Text,+ -- | A description of the reactive anomaly.+ description :: Prelude.Maybe Prelude.Text,+ -- | The ID of the reactive anomaly.+ id :: Prelude.Maybe Prelude.Text,+ -- | The name of the reactive anomaly.+ name :: Prelude.Maybe Prelude.Text,+ resourceCollection :: Prelude.Maybe ResourceCollection,+ -- | The severity of the anomaly. The severity of anomalies that generate an+ -- insight determine that insight\'s severity. For more information, see+ -- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+ -- in the /Amazon DevOps Guru User Guide/.+ severity :: Prelude.Maybe AnomalySeverity,+ -- | Details about the source of the analyzed operational data that triggered+ -- the anomaly. The one supported source is Amazon CloudWatch metrics.+ sourceDetails :: Prelude.Maybe AnomalySourceDetails,+ -- | The status of the reactive anomaly.+ status :: Prelude.Maybe AnomalyStatus,+ -- | The type of the reactive anomaly. It can be one of the following types.+ --+ -- - @CAUSAL@ - the anomaly can cause a new insight.+ --+ -- - @CONTEXTUAL@ - the anomaly contains additional information about an+ -- insight or its causal anomaly.+ type' :: Prelude.Maybe AnomalyType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReactiveAnomalySummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyReportedTimeRange', 'reactiveAnomalySummary_anomalyReportedTimeRange' - An @AnomalyReportedTimeRange@ object that specifies the time range+-- between when the anomaly is opened and the time when it is closed.+--+-- 'anomalyResources', 'reactiveAnomalySummary_anomalyResources' - The Amazon Web Services resources in which anomalous behavior was+-- detected by DevOps Guru.+--+-- 'anomalyTimeRange', 'reactiveAnomalySummary_anomalyTimeRange' - Undocumented member.+--+-- 'associatedInsightId', 'reactiveAnomalySummary_associatedInsightId' - The ID of the insight that contains this anomaly. An insight is composed+-- of related anomalies.+--+-- 'causalAnomalyId', 'reactiveAnomalySummary_causalAnomalyId' - The ID of the causal anomaly that is associated with this reactive+-- anomaly. The ID of a \`CAUSAL\` anomaly is always \`NULL\`.+--+-- 'description', 'reactiveAnomalySummary_description' - A description of the reactive anomaly.+--+-- 'id', 'reactiveAnomalySummary_id' - The ID of the reactive anomaly.+--+-- 'name', 'reactiveAnomalySummary_name' - The name of the reactive anomaly.+--+-- 'resourceCollection', 'reactiveAnomalySummary_resourceCollection' - Undocumented member.+--+-- 'severity', 'reactiveAnomalySummary_severity' - The severity of the anomaly. The severity of anomalies that generate an+-- insight determine that insight\'s severity. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+-- in the /Amazon DevOps Guru User Guide/.+--+-- 'sourceDetails', 'reactiveAnomalySummary_sourceDetails' - Details about the source of the analyzed operational data that triggered+-- the anomaly. The one supported source is Amazon CloudWatch metrics.+--+-- 'status', 'reactiveAnomalySummary_status' - The status of the reactive anomaly.+--+-- 'type'', 'reactiveAnomalySummary_type' - The type of the reactive anomaly. It can be one of the following types.+--+-- - @CAUSAL@ - the anomaly can cause a new insight.+--+-- - @CONTEXTUAL@ - the anomaly contains additional information about an+-- insight or its causal anomaly.+newReactiveAnomalySummary ::+ ReactiveAnomalySummary+newReactiveAnomalySummary =+ ReactiveAnomalySummary'+ { anomalyReportedTimeRange =+ Prelude.Nothing,+ anomalyResources = Prelude.Nothing,+ anomalyTimeRange = Prelude.Nothing,+ associatedInsightId = Prelude.Nothing,+ causalAnomalyId = Prelude.Nothing,+ description = Prelude.Nothing,+ id = Prelude.Nothing,+ name = Prelude.Nothing,+ resourceCollection = Prelude.Nothing,+ severity = Prelude.Nothing,+ sourceDetails = Prelude.Nothing,+ status = Prelude.Nothing,+ type' = Prelude.Nothing+ }++-- | An @AnomalyReportedTimeRange@ object that specifies the time range+-- between when the anomaly is opened and the time when it is closed.+reactiveAnomalySummary_anomalyReportedTimeRange :: Lens.Lens' ReactiveAnomalySummary (Prelude.Maybe AnomalyReportedTimeRange)+reactiveAnomalySummary_anomalyReportedTimeRange = Lens.lens (\ReactiveAnomalySummary' {anomalyReportedTimeRange} -> anomalyReportedTimeRange) (\s@ReactiveAnomalySummary' {} a -> s {anomalyReportedTimeRange = a} :: ReactiveAnomalySummary)++-- | The Amazon Web Services resources in which anomalous behavior was+-- detected by DevOps Guru.+reactiveAnomalySummary_anomalyResources :: Lens.Lens' ReactiveAnomalySummary (Prelude.Maybe [AnomalyResource])+reactiveAnomalySummary_anomalyResources = Lens.lens (\ReactiveAnomalySummary' {anomalyResources} -> anomalyResources) (\s@ReactiveAnomalySummary' {} a -> s {anomalyResources = a} :: ReactiveAnomalySummary) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+reactiveAnomalySummary_anomalyTimeRange :: Lens.Lens' ReactiveAnomalySummary (Prelude.Maybe AnomalyTimeRange)+reactiveAnomalySummary_anomalyTimeRange = Lens.lens (\ReactiveAnomalySummary' {anomalyTimeRange} -> anomalyTimeRange) (\s@ReactiveAnomalySummary' {} a -> s {anomalyTimeRange = a} :: ReactiveAnomalySummary)++-- | The ID of the insight that contains this anomaly. An insight is composed+-- of related anomalies.+reactiveAnomalySummary_associatedInsightId :: Lens.Lens' ReactiveAnomalySummary (Prelude.Maybe Prelude.Text)+reactiveAnomalySummary_associatedInsightId = Lens.lens (\ReactiveAnomalySummary' {associatedInsightId} -> associatedInsightId) (\s@ReactiveAnomalySummary' {} a -> s {associatedInsightId = a} :: ReactiveAnomalySummary)++-- | The ID of the causal anomaly that is associated with this reactive+-- anomaly. The ID of a \`CAUSAL\` anomaly is always \`NULL\`.+reactiveAnomalySummary_causalAnomalyId :: Lens.Lens' ReactiveAnomalySummary (Prelude.Maybe Prelude.Text)+reactiveAnomalySummary_causalAnomalyId = Lens.lens (\ReactiveAnomalySummary' {causalAnomalyId} -> causalAnomalyId) (\s@ReactiveAnomalySummary' {} a -> s {causalAnomalyId = a} :: ReactiveAnomalySummary)++-- | A description of the reactive anomaly.+reactiveAnomalySummary_description :: Lens.Lens' ReactiveAnomalySummary (Prelude.Maybe Prelude.Text)+reactiveAnomalySummary_description = Lens.lens (\ReactiveAnomalySummary' {description} -> description) (\s@ReactiveAnomalySummary' {} a -> s {description = a} :: ReactiveAnomalySummary)++-- | The ID of the reactive anomaly.+reactiveAnomalySummary_id :: Lens.Lens' ReactiveAnomalySummary (Prelude.Maybe Prelude.Text)+reactiveAnomalySummary_id = Lens.lens (\ReactiveAnomalySummary' {id} -> id) (\s@ReactiveAnomalySummary' {} a -> s {id = a} :: ReactiveAnomalySummary)++-- | The name of the reactive anomaly.+reactiveAnomalySummary_name :: Lens.Lens' ReactiveAnomalySummary (Prelude.Maybe Prelude.Text)+reactiveAnomalySummary_name = Lens.lens (\ReactiveAnomalySummary' {name} -> name) (\s@ReactiveAnomalySummary' {} a -> s {name = a} :: ReactiveAnomalySummary)++-- | Undocumented member.+reactiveAnomalySummary_resourceCollection :: Lens.Lens' ReactiveAnomalySummary (Prelude.Maybe ResourceCollection)+reactiveAnomalySummary_resourceCollection = Lens.lens (\ReactiveAnomalySummary' {resourceCollection} -> resourceCollection) (\s@ReactiveAnomalySummary' {} a -> s {resourceCollection = a} :: ReactiveAnomalySummary)++-- | The severity of the anomaly. The severity of anomalies that generate an+-- insight determine that insight\'s severity. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+-- in the /Amazon DevOps Guru User Guide/.+reactiveAnomalySummary_severity :: Lens.Lens' ReactiveAnomalySummary (Prelude.Maybe AnomalySeverity)+reactiveAnomalySummary_severity = Lens.lens (\ReactiveAnomalySummary' {severity} -> severity) (\s@ReactiveAnomalySummary' {} a -> s {severity = a} :: ReactiveAnomalySummary)++-- | Details about the source of the analyzed operational data that triggered+-- the anomaly. The one supported source is Amazon CloudWatch metrics.+reactiveAnomalySummary_sourceDetails :: Lens.Lens' ReactiveAnomalySummary (Prelude.Maybe AnomalySourceDetails)+reactiveAnomalySummary_sourceDetails = Lens.lens (\ReactiveAnomalySummary' {sourceDetails} -> sourceDetails) (\s@ReactiveAnomalySummary' {} a -> s {sourceDetails = a} :: ReactiveAnomalySummary)++-- | The status of the reactive anomaly.+reactiveAnomalySummary_status :: Lens.Lens' ReactiveAnomalySummary (Prelude.Maybe AnomalyStatus)+reactiveAnomalySummary_status = Lens.lens (\ReactiveAnomalySummary' {status} -> status) (\s@ReactiveAnomalySummary' {} a -> s {status = a} :: ReactiveAnomalySummary)++-- | The type of the reactive anomaly. It can be one of the following types.+--+-- - @CAUSAL@ - the anomaly can cause a new insight.+--+-- - @CONTEXTUAL@ - the anomaly contains additional information about an+-- insight or its causal anomaly.+reactiveAnomalySummary_type :: Lens.Lens' ReactiveAnomalySummary (Prelude.Maybe AnomalyType)+reactiveAnomalySummary_type = Lens.lens (\ReactiveAnomalySummary' {type'} -> type') (\s@ReactiveAnomalySummary' {} a -> s {type' = a} :: ReactiveAnomalySummary)++instance Data.FromJSON ReactiveAnomalySummary where+ parseJSON =+ Data.withObject+ "ReactiveAnomalySummary"+ ( \x ->+ ReactiveAnomalySummary'+ Prelude.<$> (x Data..:? "AnomalyReportedTimeRange")+ Prelude.<*> ( x+ Data..:? "AnomalyResources"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "AnomalyTimeRange")+ Prelude.<*> (x Data..:? "AssociatedInsightId")+ Prelude.<*> (x Data..:? "CausalAnomalyId")+ Prelude.<*> (x Data..:? "Description")+ Prelude.<*> (x Data..:? "Id")+ Prelude.<*> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "ResourceCollection")+ Prelude.<*> (x Data..:? "Severity")+ Prelude.<*> (x Data..:? "SourceDetails")+ Prelude.<*> (x Data..:? "Status")+ Prelude.<*> (x Data..:? "Type")+ )++instance Prelude.Hashable ReactiveAnomalySummary where+ hashWithSalt _salt ReactiveAnomalySummary' {..} =+ _salt+ `Prelude.hashWithSalt` anomalyReportedTimeRange+ `Prelude.hashWithSalt` anomalyResources+ `Prelude.hashWithSalt` anomalyTimeRange+ `Prelude.hashWithSalt` associatedInsightId+ `Prelude.hashWithSalt` causalAnomalyId+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` resourceCollection+ `Prelude.hashWithSalt` severity+ `Prelude.hashWithSalt` sourceDetails+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` type'++instance Prelude.NFData ReactiveAnomalySummary where+ rnf ReactiveAnomalySummary' {..} =+ Prelude.rnf anomalyReportedTimeRange+ `Prelude.seq` Prelude.rnf anomalyResources+ `Prelude.seq` Prelude.rnf anomalyTimeRange+ `Prelude.seq` Prelude.rnf associatedInsightId+ `Prelude.seq` Prelude.rnf causalAnomalyId+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf id+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf resourceCollection+ `Prelude.seq` Prelude.rnf severity+ `Prelude.seq` Prelude.rnf sourceDetails+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/DevOpsGuru/Types/ReactiveInsight.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.Types.ReactiveInsight+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.ReactiveInsight where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.InsightSeverity+import Amazonka.DevOpsGuru.Types.InsightStatus+import Amazonka.DevOpsGuru.Types.InsightTimeRange+import Amazonka.DevOpsGuru.Types.ResourceCollection+import qualified Amazonka.Prelude as Prelude++-- | Information about a reactive insight. This object is returned by+-- @ListInsights@.+--+-- /See:/ 'newReactiveInsight' smart constructor.+data ReactiveInsight = ReactiveInsight'+ { -- | Describes the reactive insight.+ description :: Prelude.Maybe Prelude.Text,+ -- | The ID of a reactive insight.+ id :: Prelude.Maybe Prelude.Text,+ insightTimeRange :: Prelude.Maybe InsightTimeRange,+ -- | The name of a reactive insight.+ name :: Prelude.Maybe Prelude.Text,+ resourceCollection :: Prelude.Maybe ResourceCollection,+ -- | The severity of the insight. For more information, see+ -- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+ -- in the /Amazon DevOps Guru User Guide/.+ severity :: Prelude.Maybe InsightSeverity,+ -- | The ID of the Amazon Web Services System Manager OpsItem created for+ -- this insight. You must enable the creation of OpstItems insights before+ -- they are created for each insight.+ ssmOpsItemId :: Prelude.Maybe Prelude.Text,+ -- | The status of a reactive insight.+ status :: Prelude.Maybe InsightStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReactiveInsight' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'reactiveInsight_description' - Describes the reactive insight.+--+-- 'id', 'reactiveInsight_id' - The ID of a reactive insight.+--+-- 'insightTimeRange', 'reactiveInsight_insightTimeRange' - Undocumented member.+--+-- 'name', 'reactiveInsight_name' - The name of a reactive insight.+--+-- 'resourceCollection', 'reactiveInsight_resourceCollection' - Undocumented member.+--+-- 'severity', 'reactiveInsight_severity' - The severity of the insight. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+-- in the /Amazon DevOps Guru User Guide/.+--+-- 'ssmOpsItemId', 'reactiveInsight_ssmOpsItemId' - The ID of the Amazon Web Services System Manager OpsItem created for+-- this insight. You must enable the creation of OpstItems insights before+-- they are created for each insight.+--+-- 'status', 'reactiveInsight_status' - The status of a reactive insight.+newReactiveInsight ::+ ReactiveInsight+newReactiveInsight =+ ReactiveInsight'+ { description = Prelude.Nothing,+ id = Prelude.Nothing,+ insightTimeRange = Prelude.Nothing,+ name = Prelude.Nothing,+ resourceCollection = Prelude.Nothing,+ severity = Prelude.Nothing,+ ssmOpsItemId = Prelude.Nothing,+ status = Prelude.Nothing+ }++-- | Describes the reactive insight.+reactiveInsight_description :: Lens.Lens' ReactiveInsight (Prelude.Maybe Prelude.Text)+reactiveInsight_description = Lens.lens (\ReactiveInsight' {description} -> description) (\s@ReactiveInsight' {} a -> s {description = a} :: ReactiveInsight)++-- | The ID of a reactive insight.+reactiveInsight_id :: Lens.Lens' ReactiveInsight (Prelude.Maybe Prelude.Text)+reactiveInsight_id = Lens.lens (\ReactiveInsight' {id} -> id) (\s@ReactiveInsight' {} a -> s {id = a} :: ReactiveInsight)++-- | Undocumented member.+reactiveInsight_insightTimeRange :: Lens.Lens' ReactiveInsight (Prelude.Maybe InsightTimeRange)+reactiveInsight_insightTimeRange = Lens.lens (\ReactiveInsight' {insightTimeRange} -> insightTimeRange) (\s@ReactiveInsight' {} a -> s {insightTimeRange = a} :: ReactiveInsight)++-- | The name of a reactive insight.+reactiveInsight_name :: Lens.Lens' ReactiveInsight (Prelude.Maybe Prelude.Text)+reactiveInsight_name = Lens.lens (\ReactiveInsight' {name} -> name) (\s@ReactiveInsight' {} a -> s {name = a} :: ReactiveInsight)++-- | Undocumented member.+reactiveInsight_resourceCollection :: Lens.Lens' ReactiveInsight (Prelude.Maybe ResourceCollection)+reactiveInsight_resourceCollection = Lens.lens (\ReactiveInsight' {resourceCollection} -> resourceCollection) (\s@ReactiveInsight' {} a -> s {resourceCollection = a} :: ReactiveInsight)++-- | The severity of the insight. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+-- in the /Amazon DevOps Guru User Guide/.+reactiveInsight_severity :: Lens.Lens' ReactiveInsight (Prelude.Maybe InsightSeverity)+reactiveInsight_severity = Lens.lens (\ReactiveInsight' {severity} -> severity) (\s@ReactiveInsight' {} a -> s {severity = a} :: ReactiveInsight)++-- | The ID of the Amazon Web Services System Manager OpsItem created for+-- this insight. You must enable the creation of OpstItems insights before+-- they are created for each insight.+reactiveInsight_ssmOpsItemId :: Lens.Lens' ReactiveInsight (Prelude.Maybe Prelude.Text)+reactiveInsight_ssmOpsItemId = Lens.lens (\ReactiveInsight' {ssmOpsItemId} -> ssmOpsItemId) (\s@ReactiveInsight' {} a -> s {ssmOpsItemId = a} :: ReactiveInsight)++-- | The status of a reactive insight.+reactiveInsight_status :: Lens.Lens' ReactiveInsight (Prelude.Maybe InsightStatus)+reactiveInsight_status = Lens.lens (\ReactiveInsight' {status} -> status) (\s@ReactiveInsight' {} a -> s {status = a} :: ReactiveInsight)++instance Data.FromJSON ReactiveInsight where+ parseJSON =+ Data.withObject+ "ReactiveInsight"+ ( \x ->+ ReactiveInsight'+ Prelude.<$> (x Data..:? "Description")+ Prelude.<*> (x Data..:? "Id")+ Prelude.<*> (x Data..:? "InsightTimeRange")+ Prelude.<*> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "ResourceCollection")+ Prelude.<*> (x Data..:? "Severity")+ Prelude.<*> (x Data..:? "SsmOpsItemId")+ Prelude.<*> (x Data..:? "Status")+ )++instance Prelude.Hashable ReactiveInsight where+ hashWithSalt _salt ReactiveInsight' {..} =+ _salt+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` insightTimeRange+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` resourceCollection+ `Prelude.hashWithSalt` severity+ `Prelude.hashWithSalt` ssmOpsItemId+ `Prelude.hashWithSalt` status++instance Prelude.NFData ReactiveInsight where+ rnf ReactiveInsight' {..} =+ Prelude.rnf description+ `Prelude.seq` Prelude.rnf id+ `Prelude.seq` Prelude.rnf insightTimeRange+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf resourceCollection+ `Prelude.seq` Prelude.rnf severity+ `Prelude.seq` Prelude.rnf ssmOpsItemId+ `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/DevOpsGuru/Types/ReactiveInsightSummary.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.DevOpsGuru.Types.ReactiveInsightSummary+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.ReactiveInsightSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.InsightSeverity+import Amazonka.DevOpsGuru.Types.InsightStatus+import Amazonka.DevOpsGuru.Types.InsightTimeRange+import Amazonka.DevOpsGuru.Types.ResourceCollection+import Amazonka.DevOpsGuru.Types.ServiceCollection+import qualified Amazonka.Prelude as Prelude++-- | Information about a reactive insight. This object is returned by+-- @DescribeInsight.@+--+-- /See:/ 'newReactiveInsightSummary' smart constructor.+data ReactiveInsightSummary = ReactiveInsightSummary'+ { -- | The Amazon Resource Names (ARNs) of the Amazon Web Services resources+ -- that generated this insight.+ associatedResourceArns :: Prelude.Maybe [Prelude.Text],+ -- | The ID of a reactive summary.+ id :: Prelude.Maybe Prelude.Text,+ insightTimeRange :: Prelude.Maybe InsightTimeRange,+ -- | The name of a reactive insight.+ name :: Prelude.Maybe Prelude.Text,+ resourceCollection :: Prelude.Maybe ResourceCollection,+ -- | A collection of the names of Amazon Web Services services.+ serviceCollection :: Prelude.Maybe ServiceCollection,+ -- | The severity of the insight. For more information, see+ -- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+ -- in the /Amazon DevOps Guru User Guide/.+ severity :: Prelude.Maybe InsightSeverity,+ -- | The status of a reactive insight.+ status :: Prelude.Maybe InsightStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReactiveInsightSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'associatedResourceArns', 'reactiveInsightSummary_associatedResourceArns' - The Amazon Resource Names (ARNs) of the Amazon Web Services resources+-- that generated this insight.+--+-- 'id', 'reactiveInsightSummary_id' - The ID of a reactive summary.+--+-- 'insightTimeRange', 'reactiveInsightSummary_insightTimeRange' - Undocumented member.+--+-- 'name', 'reactiveInsightSummary_name' - The name of a reactive insight.+--+-- 'resourceCollection', 'reactiveInsightSummary_resourceCollection' - Undocumented member.+--+-- 'serviceCollection', 'reactiveInsightSummary_serviceCollection' - A collection of the names of Amazon Web Services services.+--+-- 'severity', 'reactiveInsightSummary_severity' - The severity of the insight. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+-- in the /Amazon DevOps Guru User Guide/.+--+-- 'status', 'reactiveInsightSummary_status' - The status of a reactive insight.+newReactiveInsightSummary ::+ ReactiveInsightSummary+newReactiveInsightSummary =+ ReactiveInsightSummary'+ { associatedResourceArns =+ Prelude.Nothing,+ id = Prelude.Nothing,+ insightTimeRange = Prelude.Nothing,+ name = Prelude.Nothing,+ resourceCollection = Prelude.Nothing,+ serviceCollection = Prelude.Nothing,+ severity = Prelude.Nothing,+ status = Prelude.Nothing+ }++-- | The Amazon Resource Names (ARNs) of the Amazon Web Services resources+-- that generated this insight.+reactiveInsightSummary_associatedResourceArns :: Lens.Lens' ReactiveInsightSummary (Prelude.Maybe [Prelude.Text])+reactiveInsightSummary_associatedResourceArns = Lens.lens (\ReactiveInsightSummary' {associatedResourceArns} -> associatedResourceArns) (\s@ReactiveInsightSummary' {} a -> s {associatedResourceArns = a} :: ReactiveInsightSummary) Prelude.. Lens.mapping Lens.coerced++-- | The ID of a reactive summary.+reactiveInsightSummary_id :: Lens.Lens' ReactiveInsightSummary (Prelude.Maybe Prelude.Text)+reactiveInsightSummary_id = Lens.lens (\ReactiveInsightSummary' {id} -> id) (\s@ReactiveInsightSummary' {} a -> s {id = a} :: ReactiveInsightSummary)++-- | Undocumented member.+reactiveInsightSummary_insightTimeRange :: Lens.Lens' ReactiveInsightSummary (Prelude.Maybe InsightTimeRange)+reactiveInsightSummary_insightTimeRange = Lens.lens (\ReactiveInsightSummary' {insightTimeRange} -> insightTimeRange) (\s@ReactiveInsightSummary' {} a -> s {insightTimeRange = a} :: ReactiveInsightSummary)++-- | The name of a reactive insight.+reactiveInsightSummary_name :: Lens.Lens' ReactiveInsightSummary (Prelude.Maybe Prelude.Text)+reactiveInsightSummary_name = Lens.lens (\ReactiveInsightSummary' {name} -> name) (\s@ReactiveInsightSummary' {} a -> s {name = a} :: ReactiveInsightSummary)++-- | Undocumented member.+reactiveInsightSummary_resourceCollection :: Lens.Lens' ReactiveInsightSummary (Prelude.Maybe ResourceCollection)+reactiveInsightSummary_resourceCollection = Lens.lens (\ReactiveInsightSummary' {resourceCollection} -> resourceCollection) (\s@ReactiveInsightSummary' {} a -> s {resourceCollection = a} :: ReactiveInsightSummary)++-- | A collection of the names of Amazon Web Services services.+reactiveInsightSummary_serviceCollection :: Lens.Lens' ReactiveInsightSummary (Prelude.Maybe ServiceCollection)+reactiveInsightSummary_serviceCollection = Lens.lens (\ReactiveInsightSummary' {serviceCollection} -> serviceCollection) (\s@ReactiveInsightSummary' {} a -> s {serviceCollection = a} :: ReactiveInsightSummary)++-- | The severity of the insight. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+-- in the /Amazon DevOps Guru User Guide/.+reactiveInsightSummary_severity :: Lens.Lens' ReactiveInsightSummary (Prelude.Maybe InsightSeverity)+reactiveInsightSummary_severity = Lens.lens (\ReactiveInsightSummary' {severity} -> severity) (\s@ReactiveInsightSummary' {} a -> s {severity = a} :: ReactiveInsightSummary)++-- | The status of a reactive insight.+reactiveInsightSummary_status :: Lens.Lens' ReactiveInsightSummary (Prelude.Maybe InsightStatus)+reactiveInsightSummary_status = Lens.lens (\ReactiveInsightSummary' {status} -> status) (\s@ReactiveInsightSummary' {} a -> s {status = a} :: ReactiveInsightSummary)++instance Data.FromJSON ReactiveInsightSummary where+ parseJSON =+ Data.withObject+ "ReactiveInsightSummary"+ ( \x ->+ ReactiveInsightSummary'+ Prelude.<$> ( x+ Data..:? "AssociatedResourceArns"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "Id")+ Prelude.<*> (x Data..:? "InsightTimeRange")+ Prelude.<*> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "ResourceCollection")+ Prelude.<*> (x Data..:? "ServiceCollection")+ Prelude.<*> (x Data..:? "Severity")+ Prelude.<*> (x Data..:? "Status")+ )++instance Prelude.Hashable ReactiveInsightSummary where+ hashWithSalt _salt ReactiveInsightSummary' {..} =+ _salt+ `Prelude.hashWithSalt` associatedResourceArns+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` insightTimeRange+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` resourceCollection+ `Prelude.hashWithSalt` serviceCollection+ `Prelude.hashWithSalt` severity+ `Prelude.hashWithSalt` status++instance Prelude.NFData ReactiveInsightSummary where+ rnf ReactiveInsightSummary' {..} =+ Prelude.rnf associatedResourceArns+ `Prelude.seq` Prelude.rnf id+ `Prelude.seq` Prelude.rnf insightTimeRange+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf resourceCollection+ `Prelude.seq` Prelude.rnf serviceCollection+ `Prelude.seq` Prelude.rnf severity+ `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/DevOpsGuru/Types/ReactiveOrganizationInsightSummary.hs view
@@ -0,0 +1,192 @@+{-# 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.DevOpsGuru.Types.ReactiveOrganizationInsightSummary+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.ReactiveOrganizationInsightSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.InsightSeverity+import Amazonka.DevOpsGuru.Types.InsightStatus+import Amazonka.DevOpsGuru.Types.InsightTimeRange+import Amazonka.DevOpsGuru.Types.ResourceCollection+import Amazonka.DevOpsGuru.Types.ServiceCollection+import qualified Amazonka.Prelude as Prelude++-- | Information about a reactive insight. This object is returned by+-- @DescribeInsight@.+--+-- /See:/ 'newReactiveOrganizationInsightSummary' smart constructor.+data ReactiveOrganizationInsightSummary = ReactiveOrganizationInsightSummary'+ { -- | The ID of the Amazon Web Services account.+ accountId :: Prelude.Maybe Prelude.Text,+ -- | The ID of the insight summary.+ id :: Prelude.Maybe Prelude.Text,+ insightTimeRange :: Prelude.Maybe InsightTimeRange,+ -- | The name of the insight summary.+ name :: Prelude.Maybe Prelude.Text,+ -- | The ID of the organizational unit.+ organizationalUnitId :: Prelude.Maybe Prelude.Text,+ resourceCollection :: Prelude.Maybe ResourceCollection,+ serviceCollection :: Prelude.Maybe ServiceCollection,+ -- | An array of severity values used to search for insights. For more+ -- information, see+ -- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+ -- in the /Amazon DevOps Guru User Guide/.+ severity :: Prelude.Maybe InsightSeverity,+ -- | An array of status values used to search for insights.+ status :: Prelude.Maybe InsightStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReactiveOrganizationInsightSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'reactiveOrganizationInsightSummary_accountId' - The ID of the Amazon Web Services account.+--+-- 'id', 'reactiveOrganizationInsightSummary_id' - The ID of the insight summary.+--+-- 'insightTimeRange', 'reactiveOrganizationInsightSummary_insightTimeRange' - Undocumented member.+--+-- 'name', 'reactiveOrganizationInsightSummary_name' - The name of the insight summary.+--+-- 'organizationalUnitId', 'reactiveOrganizationInsightSummary_organizationalUnitId' - The ID of the organizational unit.+--+-- 'resourceCollection', 'reactiveOrganizationInsightSummary_resourceCollection' - Undocumented member.+--+-- 'serviceCollection', 'reactiveOrganizationInsightSummary_serviceCollection' - Undocumented member.+--+-- 'severity', 'reactiveOrganizationInsightSummary_severity' - An array of severity values used to search for insights. For more+-- information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+-- in the /Amazon DevOps Guru User Guide/.+--+-- 'status', 'reactiveOrganizationInsightSummary_status' - An array of status values used to search for insights.+newReactiveOrganizationInsightSummary ::+ ReactiveOrganizationInsightSummary+newReactiveOrganizationInsightSummary =+ ReactiveOrganizationInsightSummary'+ { accountId =+ Prelude.Nothing,+ id = Prelude.Nothing,+ insightTimeRange = Prelude.Nothing,+ name = Prelude.Nothing,+ organizationalUnitId = Prelude.Nothing,+ resourceCollection = Prelude.Nothing,+ serviceCollection = Prelude.Nothing,+ severity = Prelude.Nothing,+ status = Prelude.Nothing+ }++-- | The ID of the Amazon Web Services account.+reactiveOrganizationInsightSummary_accountId :: Lens.Lens' ReactiveOrganizationInsightSummary (Prelude.Maybe Prelude.Text)+reactiveOrganizationInsightSummary_accountId = Lens.lens (\ReactiveOrganizationInsightSummary' {accountId} -> accountId) (\s@ReactiveOrganizationInsightSummary' {} a -> s {accountId = a} :: ReactiveOrganizationInsightSummary)++-- | The ID of the insight summary.+reactiveOrganizationInsightSummary_id :: Lens.Lens' ReactiveOrganizationInsightSummary (Prelude.Maybe Prelude.Text)+reactiveOrganizationInsightSummary_id = Lens.lens (\ReactiveOrganizationInsightSummary' {id} -> id) (\s@ReactiveOrganizationInsightSummary' {} a -> s {id = a} :: ReactiveOrganizationInsightSummary)++-- | Undocumented member.+reactiveOrganizationInsightSummary_insightTimeRange :: Lens.Lens' ReactiveOrganizationInsightSummary (Prelude.Maybe InsightTimeRange)+reactiveOrganizationInsightSummary_insightTimeRange = Lens.lens (\ReactiveOrganizationInsightSummary' {insightTimeRange} -> insightTimeRange) (\s@ReactiveOrganizationInsightSummary' {} a -> s {insightTimeRange = a} :: ReactiveOrganizationInsightSummary)++-- | The name of the insight summary.+reactiveOrganizationInsightSummary_name :: Lens.Lens' ReactiveOrganizationInsightSummary (Prelude.Maybe Prelude.Text)+reactiveOrganizationInsightSummary_name = Lens.lens (\ReactiveOrganizationInsightSummary' {name} -> name) (\s@ReactiveOrganizationInsightSummary' {} a -> s {name = a} :: ReactiveOrganizationInsightSummary)++-- | The ID of the organizational unit.+reactiveOrganizationInsightSummary_organizationalUnitId :: Lens.Lens' ReactiveOrganizationInsightSummary (Prelude.Maybe Prelude.Text)+reactiveOrganizationInsightSummary_organizationalUnitId = Lens.lens (\ReactiveOrganizationInsightSummary' {organizationalUnitId} -> organizationalUnitId) (\s@ReactiveOrganizationInsightSummary' {} a -> s {organizationalUnitId = a} :: ReactiveOrganizationInsightSummary)++-- | Undocumented member.+reactiveOrganizationInsightSummary_resourceCollection :: Lens.Lens' ReactiveOrganizationInsightSummary (Prelude.Maybe ResourceCollection)+reactiveOrganizationInsightSummary_resourceCollection = Lens.lens (\ReactiveOrganizationInsightSummary' {resourceCollection} -> resourceCollection) (\s@ReactiveOrganizationInsightSummary' {} a -> s {resourceCollection = a} :: ReactiveOrganizationInsightSummary)++-- | Undocumented member.+reactiveOrganizationInsightSummary_serviceCollection :: Lens.Lens' ReactiveOrganizationInsightSummary (Prelude.Maybe ServiceCollection)+reactiveOrganizationInsightSummary_serviceCollection = Lens.lens (\ReactiveOrganizationInsightSummary' {serviceCollection} -> serviceCollection) (\s@ReactiveOrganizationInsightSummary' {} a -> s {serviceCollection = a} :: ReactiveOrganizationInsightSummary)++-- | An array of severity values used to search for insights. For more+-- information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities Understanding insight severities>+-- in the /Amazon DevOps Guru User Guide/.+reactiveOrganizationInsightSummary_severity :: Lens.Lens' ReactiveOrganizationInsightSummary (Prelude.Maybe InsightSeverity)+reactiveOrganizationInsightSummary_severity = Lens.lens (\ReactiveOrganizationInsightSummary' {severity} -> severity) (\s@ReactiveOrganizationInsightSummary' {} a -> s {severity = a} :: ReactiveOrganizationInsightSummary)++-- | An array of status values used to search for insights.+reactiveOrganizationInsightSummary_status :: Lens.Lens' ReactiveOrganizationInsightSummary (Prelude.Maybe InsightStatus)+reactiveOrganizationInsightSummary_status = Lens.lens (\ReactiveOrganizationInsightSummary' {status} -> status) (\s@ReactiveOrganizationInsightSummary' {} a -> s {status = a} :: ReactiveOrganizationInsightSummary)++instance+ Data.FromJSON+ ReactiveOrganizationInsightSummary+ where+ parseJSON =+ Data.withObject+ "ReactiveOrganizationInsightSummary"+ ( \x ->+ ReactiveOrganizationInsightSummary'+ Prelude.<$> (x Data..:? "AccountId")+ Prelude.<*> (x Data..:? "Id")+ Prelude.<*> (x Data..:? "InsightTimeRange")+ Prelude.<*> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "OrganizationalUnitId")+ Prelude.<*> (x Data..:? "ResourceCollection")+ Prelude.<*> (x Data..:? "ServiceCollection")+ Prelude.<*> (x Data..:? "Severity")+ Prelude.<*> (x Data..:? "Status")+ )++instance+ Prelude.Hashable+ ReactiveOrganizationInsightSummary+ where+ hashWithSalt+ _salt+ ReactiveOrganizationInsightSummary' {..} =+ _salt+ `Prelude.hashWithSalt` accountId+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` insightTimeRange+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` organizationalUnitId+ `Prelude.hashWithSalt` resourceCollection+ `Prelude.hashWithSalt` serviceCollection+ `Prelude.hashWithSalt` severity+ `Prelude.hashWithSalt` status++instance+ Prelude.NFData+ ReactiveOrganizationInsightSummary+ where+ rnf ReactiveOrganizationInsightSummary' {..} =+ Prelude.rnf accountId+ `Prelude.seq` Prelude.rnf id+ `Prelude.seq` Prelude.rnf insightTimeRange+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf organizationalUnitId+ `Prelude.seq` Prelude.rnf resourceCollection+ `Prelude.seq` Prelude.rnf serviceCollection+ `Prelude.seq` Prelude.rnf severity+ `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/DevOpsGuru/Types/Recommendation.hs view
@@ -0,0 +1,156 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.Types.Recommendation+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.Recommendation where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.RecommendationRelatedAnomaly+import Amazonka.DevOpsGuru.Types.RecommendationRelatedEvent+import qualified Amazonka.Prelude as Prelude++-- | Recommendation information to help you remediate detected anomalous+-- behavior that generated an insight.+--+-- /See:/ 'newRecommendation' smart constructor.+data Recommendation = Recommendation'+ { -- | The category type of the recommendation.+ category :: Prelude.Maybe Prelude.Text,+ -- | A description of the problem.+ description :: Prelude.Maybe Prelude.Text,+ -- | A hyperlink to information to help you address the problem.+ link :: Prelude.Maybe Prelude.Text,+ -- | The name of the recommendation.+ name :: Prelude.Maybe Prelude.Text,+ -- | The reason DevOps Guru flagged the anomalous behavior as a problem.+ reason :: Prelude.Maybe Prelude.Text,+ -- | Anomalies that are related to the problem. Use these Anomalies to learn+ -- more about what\'s happening and to help address the issue.+ relatedAnomalies :: Prelude.Maybe [RecommendationRelatedAnomaly],+ -- | Events that are related to the problem. Use these events to learn more+ -- about what\'s happening and to help address the issue.+ relatedEvents :: Prelude.Maybe [RecommendationRelatedEvent]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Recommendation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'category', 'recommendation_category' - The category type of the recommendation.+--+-- 'description', 'recommendation_description' - A description of the problem.+--+-- 'link', 'recommendation_link' - A hyperlink to information to help you address the problem.+--+-- 'name', 'recommendation_name' - The name of the recommendation.+--+-- 'reason', 'recommendation_reason' - The reason DevOps Guru flagged the anomalous behavior as a problem.+--+-- 'relatedAnomalies', 'recommendation_relatedAnomalies' - Anomalies that are related to the problem. Use these Anomalies to learn+-- more about what\'s happening and to help address the issue.+--+-- 'relatedEvents', 'recommendation_relatedEvents' - Events that are related to the problem. Use these events to learn more+-- about what\'s happening and to help address the issue.+newRecommendation ::+ Recommendation+newRecommendation =+ Recommendation'+ { category = Prelude.Nothing,+ description = Prelude.Nothing,+ link = Prelude.Nothing,+ name = Prelude.Nothing,+ reason = Prelude.Nothing,+ relatedAnomalies = Prelude.Nothing,+ relatedEvents = Prelude.Nothing+ }++-- | The category type of the recommendation.+recommendation_category :: Lens.Lens' Recommendation (Prelude.Maybe Prelude.Text)+recommendation_category = Lens.lens (\Recommendation' {category} -> category) (\s@Recommendation' {} a -> s {category = a} :: Recommendation)++-- | A description of the problem.+recommendation_description :: Lens.Lens' Recommendation (Prelude.Maybe Prelude.Text)+recommendation_description = Lens.lens (\Recommendation' {description} -> description) (\s@Recommendation' {} a -> s {description = a} :: Recommendation)++-- | A hyperlink to information to help you address the problem.+recommendation_link :: Lens.Lens' Recommendation (Prelude.Maybe Prelude.Text)+recommendation_link = Lens.lens (\Recommendation' {link} -> link) (\s@Recommendation' {} a -> s {link = a} :: Recommendation)++-- | The name of the recommendation.+recommendation_name :: Lens.Lens' Recommendation (Prelude.Maybe Prelude.Text)+recommendation_name = Lens.lens (\Recommendation' {name} -> name) (\s@Recommendation' {} a -> s {name = a} :: Recommendation)++-- | The reason DevOps Guru flagged the anomalous behavior as a problem.+recommendation_reason :: Lens.Lens' Recommendation (Prelude.Maybe Prelude.Text)+recommendation_reason = Lens.lens (\Recommendation' {reason} -> reason) (\s@Recommendation' {} a -> s {reason = a} :: Recommendation)++-- | Anomalies that are related to the problem. Use these Anomalies to learn+-- more about what\'s happening and to help address the issue.+recommendation_relatedAnomalies :: Lens.Lens' Recommendation (Prelude.Maybe [RecommendationRelatedAnomaly])+recommendation_relatedAnomalies = Lens.lens (\Recommendation' {relatedAnomalies} -> relatedAnomalies) (\s@Recommendation' {} a -> s {relatedAnomalies = a} :: Recommendation) Prelude.. Lens.mapping Lens.coerced++-- | Events that are related to the problem. Use these events to learn more+-- about what\'s happening and to help address the issue.+recommendation_relatedEvents :: Lens.Lens' Recommendation (Prelude.Maybe [RecommendationRelatedEvent])+recommendation_relatedEvents = Lens.lens (\Recommendation' {relatedEvents} -> relatedEvents) (\s@Recommendation' {} a -> s {relatedEvents = a} :: Recommendation) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON Recommendation where+ parseJSON =+ Data.withObject+ "Recommendation"+ ( \x ->+ Recommendation'+ Prelude.<$> (x Data..:? "Category")+ Prelude.<*> (x Data..:? "Description")+ Prelude.<*> (x Data..:? "Link")+ Prelude.<*> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "Reason")+ Prelude.<*> ( x+ Data..:? "RelatedAnomalies"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "RelatedEvents" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable Recommendation where+ hashWithSalt _salt Recommendation' {..} =+ _salt+ `Prelude.hashWithSalt` category+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` link+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` reason+ `Prelude.hashWithSalt` relatedAnomalies+ `Prelude.hashWithSalt` relatedEvents++instance Prelude.NFData Recommendation where+ rnf Recommendation' {..} =+ Prelude.rnf category+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf link+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf reason+ `Prelude.seq` Prelude.rnf relatedAnomalies+ `Prelude.seq` Prelude.rnf relatedEvents
+ gen/Amazonka/DevOpsGuru/Types/RecommendationRelatedAnomaly.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.Types.RecommendationRelatedAnomaly+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.RecommendationRelatedAnomaly where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.RecommendationRelatedAnomalyResource+import Amazonka.DevOpsGuru.Types.RecommendationRelatedAnomalySourceDetail+import qualified Amazonka.Prelude as Prelude++-- | Information about an anomaly that is related to a recommendation.+--+-- /See:/ 'newRecommendationRelatedAnomaly' smart constructor.+data RecommendationRelatedAnomaly = RecommendationRelatedAnomaly'+ { -- | The ID of an anomaly that generated the insight with this+ -- recommendation.+ anomalyId :: Prelude.Maybe Prelude.Text,+ -- | An array of objects that represent resources in which DevOps Guru+ -- detected anomalous behavior. Each object contains the name and type of+ -- the resource.+ resources :: Prelude.Maybe [RecommendationRelatedAnomalyResource],+ -- | Information about where the anomalous behavior related the+ -- recommendation was found. For example, details in Amazon CloudWatch+ -- metrics.+ sourceDetails :: Prelude.Maybe [RecommendationRelatedAnomalySourceDetail]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RecommendationRelatedAnomaly' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyId', 'recommendationRelatedAnomaly_anomalyId' - The ID of an anomaly that generated the insight with this+-- recommendation.+--+-- 'resources', 'recommendationRelatedAnomaly_resources' - An array of objects that represent resources in which DevOps Guru+-- detected anomalous behavior. Each object contains the name and type of+-- the resource.+--+-- 'sourceDetails', 'recommendationRelatedAnomaly_sourceDetails' - Information about where the anomalous behavior related the+-- recommendation was found. For example, details in Amazon CloudWatch+-- metrics.+newRecommendationRelatedAnomaly ::+ RecommendationRelatedAnomaly+newRecommendationRelatedAnomaly =+ RecommendationRelatedAnomaly'+ { anomalyId =+ Prelude.Nothing,+ resources = Prelude.Nothing,+ sourceDetails = Prelude.Nothing+ }++-- | The ID of an anomaly that generated the insight with this+-- recommendation.+recommendationRelatedAnomaly_anomalyId :: Lens.Lens' RecommendationRelatedAnomaly (Prelude.Maybe Prelude.Text)+recommendationRelatedAnomaly_anomalyId = Lens.lens (\RecommendationRelatedAnomaly' {anomalyId} -> anomalyId) (\s@RecommendationRelatedAnomaly' {} a -> s {anomalyId = a} :: RecommendationRelatedAnomaly)++-- | An array of objects that represent resources in which DevOps Guru+-- detected anomalous behavior. Each object contains the name and type of+-- the resource.+recommendationRelatedAnomaly_resources :: Lens.Lens' RecommendationRelatedAnomaly (Prelude.Maybe [RecommendationRelatedAnomalyResource])+recommendationRelatedAnomaly_resources = Lens.lens (\RecommendationRelatedAnomaly' {resources} -> resources) (\s@RecommendationRelatedAnomaly' {} a -> s {resources = a} :: RecommendationRelatedAnomaly) Prelude.. Lens.mapping Lens.coerced++-- | Information about where the anomalous behavior related the+-- recommendation was found. For example, details in Amazon CloudWatch+-- metrics.+recommendationRelatedAnomaly_sourceDetails :: Lens.Lens' RecommendationRelatedAnomaly (Prelude.Maybe [RecommendationRelatedAnomalySourceDetail])+recommendationRelatedAnomaly_sourceDetails = Lens.lens (\RecommendationRelatedAnomaly' {sourceDetails} -> sourceDetails) (\s@RecommendationRelatedAnomaly' {} a -> s {sourceDetails = a} :: RecommendationRelatedAnomaly) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON RecommendationRelatedAnomaly where+ parseJSON =+ Data.withObject+ "RecommendationRelatedAnomaly"+ ( \x ->+ RecommendationRelatedAnomaly'+ Prelude.<$> (x Data..:? "AnomalyId")+ Prelude.<*> (x Data..:? "Resources" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "SourceDetails" Data..!= Prelude.mempty)+ )++instance+ Prelude.Hashable+ RecommendationRelatedAnomaly+ where+ hashWithSalt _salt RecommendationRelatedAnomaly' {..} =+ _salt+ `Prelude.hashWithSalt` anomalyId+ `Prelude.hashWithSalt` resources+ `Prelude.hashWithSalt` sourceDetails++instance Prelude.NFData RecommendationRelatedAnomaly where+ rnf RecommendationRelatedAnomaly' {..} =+ Prelude.rnf anomalyId+ `Prelude.seq` Prelude.rnf resources+ `Prelude.seq` Prelude.rnf sourceDetails
+ gen/Amazonka/DevOpsGuru/Types/RecommendationRelatedAnomalyResource.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.Types.RecommendationRelatedAnomalyResource+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.RecommendationRelatedAnomalyResource where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about a resource in which DevOps Guru detected anomalous+-- behavior.+--+-- /See:/ 'newRecommendationRelatedAnomalyResource' smart constructor.+data RecommendationRelatedAnomalyResource = RecommendationRelatedAnomalyResource'+ { -- | The name of the resource.+ name :: Prelude.Maybe Prelude.Text,+ -- | The type of the resource. Resource types take the same form that is used+ -- by Amazon Web Services CloudFormation resource type identifiers,+ -- @service-provider::service-name::data-type-name@. For example,+ -- @AWS::RDS::DBCluster@. For more information, see+ -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html Amazon Web Services resource and property types reference>+ -- in the /Amazon Web Services CloudFormation User Guide/.+ type' :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RecommendationRelatedAnomalyResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'recommendationRelatedAnomalyResource_name' - The name of the resource.+--+-- 'type'', 'recommendationRelatedAnomalyResource_type' - The type of the resource. Resource types take the same form that is used+-- by Amazon Web Services CloudFormation resource type identifiers,+-- @service-provider::service-name::data-type-name@. For example,+-- @AWS::RDS::DBCluster@. For more information, see+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html Amazon Web Services resource and property types reference>+-- in the /Amazon Web Services CloudFormation User Guide/.+newRecommendationRelatedAnomalyResource ::+ RecommendationRelatedAnomalyResource+newRecommendationRelatedAnomalyResource =+ RecommendationRelatedAnomalyResource'+ { name =+ Prelude.Nothing,+ type' = Prelude.Nothing+ }++-- | The name of the resource.+recommendationRelatedAnomalyResource_name :: Lens.Lens' RecommendationRelatedAnomalyResource (Prelude.Maybe Prelude.Text)+recommendationRelatedAnomalyResource_name = Lens.lens (\RecommendationRelatedAnomalyResource' {name} -> name) (\s@RecommendationRelatedAnomalyResource' {} a -> s {name = a} :: RecommendationRelatedAnomalyResource)++-- | The type of the resource. Resource types take the same form that is used+-- by Amazon Web Services CloudFormation resource type identifiers,+-- @service-provider::service-name::data-type-name@. For example,+-- @AWS::RDS::DBCluster@. For more information, see+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html Amazon Web Services resource and property types reference>+-- in the /Amazon Web Services CloudFormation User Guide/.+recommendationRelatedAnomalyResource_type :: Lens.Lens' RecommendationRelatedAnomalyResource (Prelude.Maybe Prelude.Text)+recommendationRelatedAnomalyResource_type = Lens.lens (\RecommendationRelatedAnomalyResource' {type'} -> type') (\s@RecommendationRelatedAnomalyResource' {} a -> s {type' = a} :: RecommendationRelatedAnomalyResource)++instance+ Data.FromJSON+ RecommendationRelatedAnomalyResource+ where+ parseJSON =+ Data.withObject+ "RecommendationRelatedAnomalyResource"+ ( \x ->+ RecommendationRelatedAnomalyResource'+ Prelude.<$> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "Type")+ )++instance+ Prelude.Hashable+ RecommendationRelatedAnomalyResource+ where+ hashWithSalt+ _salt+ RecommendationRelatedAnomalyResource' {..} =+ _salt+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` type'++instance+ Prelude.NFData+ RecommendationRelatedAnomalyResource+ where+ rnf RecommendationRelatedAnomalyResource' {..} =+ Prelude.rnf name `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/DevOpsGuru/Types/RecommendationRelatedAnomalySourceDetail.hs view
@@ -0,0 +1,92 @@+{-# 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.DevOpsGuru.Types.RecommendationRelatedAnomalySourceDetail+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.RecommendationRelatedAnomalySourceDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.RecommendationRelatedCloudWatchMetricsSourceDetail+import qualified Amazonka.Prelude as Prelude++-- | Contains an array of+-- @RecommendationRelatedCloudWatchMetricsSourceDetail@ objects that+-- contain the name and namespace of an Amazon CloudWatch metric.+--+-- /See:/ 'newRecommendationRelatedAnomalySourceDetail' smart constructor.+data RecommendationRelatedAnomalySourceDetail = RecommendationRelatedAnomalySourceDetail'+ { -- | An array of @CloudWatchMetricsDetail@ objects that contains information+ -- about the analyzed metrics that displayed anomalous behavior.+ cloudWatchMetrics :: Prelude.Maybe [RecommendationRelatedCloudWatchMetricsSourceDetail]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RecommendationRelatedAnomalySourceDetail' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cloudWatchMetrics', 'recommendationRelatedAnomalySourceDetail_cloudWatchMetrics' - An array of @CloudWatchMetricsDetail@ objects that contains information+-- about the analyzed metrics that displayed anomalous behavior.+newRecommendationRelatedAnomalySourceDetail ::+ RecommendationRelatedAnomalySourceDetail+newRecommendationRelatedAnomalySourceDetail =+ RecommendationRelatedAnomalySourceDetail'+ { cloudWatchMetrics =+ Prelude.Nothing+ }++-- | An array of @CloudWatchMetricsDetail@ objects that contains information+-- about the analyzed metrics that displayed anomalous behavior.+recommendationRelatedAnomalySourceDetail_cloudWatchMetrics :: Lens.Lens' RecommendationRelatedAnomalySourceDetail (Prelude.Maybe [RecommendationRelatedCloudWatchMetricsSourceDetail])+recommendationRelatedAnomalySourceDetail_cloudWatchMetrics = Lens.lens (\RecommendationRelatedAnomalySourceDetail' {cloudWatchMetrics} -> cloudWatchMetrics) (\s@RecommendationRelatedAnomalySourceDetail' {} a -> s {cloudWatchMetrics = a} :: RecommendationRelatedAnomalySourceDetail) Prelude.. Lens.mapping Lens.coerced++instance+ Data.FromJSON+ RecommendationRelatedAnomalySourceDetail+ where+ parseJSON =+ Data.withObject+ "RecommendationRelatedAnomalySourceDetail"+ ( \x ->+ RecommendationRelatedAnomalySourceDetail'+ Prelude.<$> ( x+ Data..:? "CloudWatchMetrics"+ Data..!= Prelude.mempty+ )+ )++instance+ Prelude.Hashable+ RecommendationRelatedAnomalySourceDetail+ where+ hashWithSalt+ _salt+ RecommendationRelatedAnomalySourceDetail' {..} =+ _salt `Prelude.hashWithSalt` cloudWatchMetrics++instance+ Prelude.NFData+ RecommendationRelatedAnomalySourceDetail+ where+ rnf RecommendationRelatedAnomalySourceDetail' {..} =+ Prelude.rnf cloudWatchMetrics
+ gen/Amazonka/DevOpsGuru/Types/RecommendationRelatedCloudWatchMetricsSourceDetail.hs view
@@ -0,0 +1,103 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.Types.RecommendationRelatedCloudWatchMetricsSourceDetail+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.RecommendationRelatedCloudWatchMetricsSourceDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about an Amazon CloudWatch metric that is analyzed by DevOps+-- Guru. It is one of many analyzed metrics that are used to generate+-- insights.+--+-- /See:/ 'newRecommendationRelatedCloudWatchMetricsSourceDetail' smart constructor.+data RecommendationRelatedCloudWatchMetricsSourceDetail = RecommendationRelatedCloudWatchMetricsSourceDetail'+ { -- | The name of the CloudWatch metric.+ metricName :: Prelude.Maybe Prelude.Text,+ -- | The namespace of the CloudWatch metric. A namespace is a container for+ -- CloudWatch metrics.+ namespace :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RecommendationRelatedCloudWatchMetricsSourceDetail' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'recommendationRelatedCloudWatchMetricsSourceDetail_metricName' - The name of the CloudWatch metric.+--+-- 'namespace', 'recommendationRelatedCloudWatchMetricsSourceDetail_namespace' - The namespace of the CloudWatch metric. A namespace is a container for+-- CloudWatch metrics.+newRecommendationRelatedCloudWatchMetricsSourceDetail ::+ RecommendationRelatedCloudWatchMetricsSourceDetail+newRecommendationRelatedCloudWatchMetricsSourceDetail =+ RecommendationRelatedCloudWatchMetricsSourceDetail'+ { metricName =+ Prelude.Nothing,+ namespace =+ Prelude.Nothing+ }++-- | The name of the CloudWatch metric.+recommendationRelatedCloudWatchMetricsSourceDetail_metricName :: Lens.Lens' RecommendationRelatedCloudWatchMetricsSourceDetail (Prelude.Maybe Prelude.Text)+recommendationRelatedCloudWatchMetricsSourceDetail_metricName = Lens.lens (\RecommendationRelatedCloudWatchMetricsSourceDetail' {metricName} -> metricName) (\s@RecommendationRelatedCloudWatchMetricsSourceDetail' {} a -> s {metricName = a} :: RecommendationRelatedCloudWatchMetricsSourceDetail)++-- | The namespace of the CloudWatch metric. A namespace is a container for+-- CloudWatch metrics.+recommendationRelatedCloudWatchMetricsSourceDetail_namespace :: Lens.Lens' RecommendationRelatedCloudWatchMetricsSourceDetail (Prelude.Maybe Prelude.Text)+recommendationRelatedCloudWatchMetricsSourceDetail_namespace = Lens.lens (\RecommendationRelatedCloudWatchMetricsSourceDetail' {namespace} -> namespace) (\s@RecommendationRelatedCloudWatchMetricsSourceDetail' {} a -> s {namespace = a} :: RecommendationRelatedCloudWatchMetricsSourceDetail)++instance+ Data.FromJSON+ RecommendationRelatedCloudWatchMetricsSourceDetail+ where+ parseJSON =+ Data.withObject+ "RecommendationRelatedCloudWatchMetricsSourceDetail"+ ( \x ->+ RecommendationRelatedCloudWatchMetricsSourceDetail'+ Prelude.<$> (x Data..:? "MetricName")+ Prelude.<*> (x Data..:? "Namespace")+ )++instance+ Prelude.Hashable+ RecommendationRelatedCloudWatchMetricsSourceDetail+ where+ hashWithSalt+ _salt+ RecommendationRelatedCloudWatchMetricsSourceDetail' {..} =+ _salt+ `Prelude.hashWithSalt` metricName+ `Prelude.hashWithSalt` namespace++instance+ Prelude.NFData+ RecommendationRelatedCloudWatchMetricsSourceDetail+ where+ rnf+ RecommendationRelatedCloudWatchMetricsSourceDetail' {..} =+ Prelude.rnf metricName+ `Prelude.seq` Prelude.rnf namespace
+ gen/Amazonka/DevOpsGuru/Types/RecommendationRelatedEvent.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.DevOpsGuru.Types.RecommendationRelatedEvent+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.RecommendationRelatedEvent where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.RecommendationRelatedEventResource+import qualified Amazonka.Prelude as Prelude++-- | Information about an event that is related to a recommendation.+--+-- /See:/ 'newRecommendationRelatedEvent' smart constructor.+data RecommendationRelatedEvent = RecommendationRelatedEvent'+ { -- | The name of the event. This corresponds to the @Name@ field in an+ -- @Event@ object.+ name :: Prelude.Maybe Prelude.Text,+ -- | A @ResourceCollection@ object that contains arrays of the names of+ -- Amazon Web Services CloudFormation stacks. You can specify up to 500+ -- Amazon Web Services CloudFormation stacks.+ resources :: Prelude.Maybe [RecommendationRelatedEventResource]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RecommendationRelatedEvent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'recommendationRelatedEvent_name' - The name of the event. This corresponds to the @Name@ field in an+-- @Event@ object.+--+-- 'resources', 'recommendationRelatedEvent_resources' - A @ResourceCollection@ object that contains arrays of the names of+-- Amazon Web Services CloudFormation stacks. You can specify up to 500+-- Amazon Web Services CloudFormation stacks.+newRecommendationRelatedEvent ::+ RecommendationRelatedEvent+newRecommendationRelatedEvent =+ RecommendationRelatedEvent'+ { name = Prelude.Nothing,+ resources = Prelude.Nothing+ }++-- | The name of the event. This corresponds to the @Name@ field in an+-- @Event@ object.+recommendationRelatedEvent_name :: Lens.Lens' RecommendationRelatedEvent (Prelude.Maybe Prelude.Text)+recommendationRelatedEvent_name = Lens.lens (\RecommendationRelatedEvent' {name} -> name) (\s@RecommendationRelatedEvent' {} a -> s {name = a} :: RecommendationRelatedEvent)++-- | A @ResourceCollection@ object that contains arrays of the names of+-- Amazon Web Services CloudFormation stacks. You can specify up to 500+-- Amazon Web Services CloudFormation stacks.+recommendationRelatedEvent_resources :: Lens.Lens' RecommendationRelatedEvent (Prelude.Maybe [RecommendationRelatedEventResource])+recommendationRelatedEvent_resources = Lens.lens (\RecommendationRelatedEvent' {resources} -> resources) (\s@RecommendationRelatedEvent' {} a -> s {resources = a} :: RecommendationRelatedEvent) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON RecommendationRelatedEvent where+ parseJSON =+ Data.withObject+ "RecommendationRelatedEvent"+ ( \x ->+ RecommendationRelatedEvent'+ Prelude.<$> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "Resources" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable RecommendationRelatedEvent where+ hashWithSalt _salt RecommendationRelatedEvent' {..} =+ _salt+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` resources++instance Prelude.NFData RecommendationRelatedEvent where+ rnf RecommendationRelatedEvent' {..} =+ Prelude.rnf name+ `Prelude.seq` Prelude.rnf resources
+ gen/Amazonka/DevOpsGuru/Types/RecommendationRelatedEventResource.hs view
@@ -0,0 +1,102 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.Types.RecommendationRelatedEventResource+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.RecommendationRelatedEventResource where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about an Amazon Web Services resource that emitted and event+-- that is related to a recommendation in an insight.+--+-- /See:/ 'newRecommendationRelatedEventResource' smart constructor.+data RecommendationRelatedEventResource = RecommendationRelatedEventResource'+ { -- | The name of the resource that emitted the event. This corresponds to the+ -- @Name@ field in an @EventResource@ object.+ name :: Prelude.Maybe Prelude.Text,+ -- | The type of the resource that emitted the event. This corresponds to the+ -- @Type@ field in an @EventResource@ object.+ type' :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RecommendationRelatedEventResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'recommendationRelatedEventResource_name' - The name of the resource that emitted the event. This corresponds to the+-- @Name@ field in an @EventResource@ object.+--+-- 'type'', 'recommendationRelatedEventResource_type' - The type of the resource that emitted the event. This corresponds to the+-- @Type@ field in an @EventResource@ object.+newRecommendationRelatedEventResource ::+ RecommendationRelatedEventResource+newRecommendationRelatedEventResource =+ RecommendationRelatedEventResource'+ { name =+ Prelude.Nothing,+ type' = Prelude.Nothing+ }++-- | The name of the resource that emitted the event. This corresponds to the+-- @Name@ field in an @EventResource@ object.+recommendationRelatedEventResource_name :: Lens.Lens' RecommendationRelatedEventResource (Prelude.Maybe Prelude.Text)+recommendationRelatedEventResource_name = Lens.lens (\RecommendationRelatedEventResource' {name} -> name) (\s@RecommendationRelatedEventResource' {} a -> s {name = a} :: RecommendationRelatedEventResource)++-- | The type of the resource that emitted the event. This corresponds to the+-- @Type@ field in an @EventResource@ object.+recommendationRelatedEventResource_type :: Lens.Lens' RecommendationRelatedEventResource (Prelude.Maybe Prelude.Text)+recommendationRelatedEventResource_type = Lens.lens (\RecommendationRelatedEventResource' {type'} -> type') (\s@RecommendationRelatedEventResource' {} a -> s {type' = a} :: RecommendationRelatedEventResource)++instance+ Data.FromJSON+ RecommendationRelatedEventResource+ where+ parseJSON =+ Data.withObject+ "RecommendationRelatedEventResource"+ ( \x ->+ RecommendationRelatedEventResource'+ Prelude.<$> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "Type")+ )++instance+ Prelude.Hashable+ RecommendationRelatedEventResource+ where+ hashWithSalt+ _salt+ RecommendationRelatedEventResource' {..} =+ _salt+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` type'++instance+ Prelude.NFData+ RecommendationRelatedEventResource+ where+ rnf RecommendationRelatedEventResource' {..} =+ Prelude.rnf name `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/DevOpsGuru/Types/ResourceCollection.hs view
@@ -0,0 +1,208 @@+{-# 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.DevOpsGuru.Types.ResourceCollection+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.ResourceCollection where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.CloudFormationCollection+import Amazonka.DevOpsGuru.Types.TagCollection+import qualified Amazonka.Prelude as Prelude++-- | A collection of Amazon Web Services resources supported by DevOps Guru.+-- The two types of Amazon Web Services resource collections supported are+-- Amazon Web Services CloudFormation stacks and Amazon Web Services+-- resources that contain the same Amazon Web Services tag. DevOps Guru can+-- be configured to analyze the Amazon Web Services resources that are+-- defined in the stacks or that are tagged using the same tag /key/. You+-- can specify up to 500 Amazon Web Services CloudFormation stacks.+--+-- /See:/ 'newResourceCollection' smart constructor.+data ResourceCollection = ResourceCollection'+ { -- | An array of the names of Amazon Web Services CloudFormation stacks. The+ -- stacks define Amazon Web Services resources that DevOps Guru analyzes.+ -- You can specify up to 500 Amazon Web Services CloudFormation stacks.+ cloudFormation :: Prelude.Maybe CloudFormationCollection,+ -- | The Amazon Web Services tags that are used by resources in the resource+ -- collection.+ --+ -- Tags help you identify and organize your Amazon Web Services resources.+ -- Many Amazon Web Services services support tagging, so you can assign the+ -- same tag to resources from different services to indicate that the+ -- resources are related. For example, you can assign the same tag to an+ -- Amazon DynamoDB table resource that you assign to an Lambda function.+ -- For more information about using tags, see the+ -- <https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf Tagging best practices>+ -- whitepaper.+ --+ -- Each Amazon Web Services tag has two parts.+ --+ -- - A tag /key/ (for example, @CostCenter@, @Environment@, @Project@, or+ -- @Secret@). Tag /keys/ are case-sensitive.+ --+ -- - An optional field known as a tag /value/ (for example,+ -- @111122223333@, @Production@, or a team name). Omitting the tag+ -- /value/ is the same as using an empty string. Like tag /keys/, tag+ -- /values/ are case-sensitive.+ --+ -- Together these are known as /key/-/value/ pairs.+ --+ -- The string used for a /key/ in a tag that you use to define your+ -- resource coverage must begin with the prefix @Devops-guru-@. The tag+ -- /key/ might be @DevOps-Guru-deployment-application@ or+ -- @devops-guru-rds-application@. When you create a /key/, the case of+ -- characters in the /key/ can be whatever you choose. After you create a+ -- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+ -- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+ -- act as two different /keys/. Possible /key/\//value/ pairs in your+ -- application might be @Devops-Guru-production-application\/RDS@ or+ -- @Devops-Guru-production-application\/containers@.+ tags :: Prelude.Maybe [TagCollection]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResourceCollection' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cloudFormation', 'resourceCollection_cloudFormation' - An array of the names of Amazon Web Services CloudFormation stacks. The+-- stacks define Amazon Web Services resources that DevOps Guru analyzes.+-- You can specify up to 500 Amazon Web Services CloudFormation stacks.+--+-- 'tags', 'resourceCollection_tags' - The Amazon Web Services tags that are used by resources in the resource+-- collection.+--+-- Tags help you identify and organize your Amazon Web Services resources.+-- Many Amazon Web Services services support tagging, so you can assign the+-- same tag to resources from different services to indicate that the+-- resources are related. For example, you can assign the same tag to an+-- Amazon DynamoDB table resource that you assign to an Lambda function.+-- For more information about using tags, see the+-- <https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf Tagging best practices>+-- whitepaper.+--+-- Each Amazon Web Services tag has two parts.+--+-- - A tag /key/ (for example, @CostCenter@, @Environment@, @Project@, or+-- @Secret@). Tag /keys/ are case-sensitive.+--+-- - An optional field known as a tag /value/ (for example,+-- @111122223333@, @Production@, or a team name). Omitting the tag+-- /value/ is the same as using an empty string. Like tag /keys/, tag+-- /values/ are case-sensitive.+--+-- Together these are known as /key/-/value/ pairs.+--+-- The string used for a /key/ in a tag that you use to define your+-- resource coverage must begin with the prefix @Devops-guru-@. The tag+-- /key/ might be @DevOps-Guru-deployment-application@ or+-- @devops-guru-rds-application@. When you create a /key/, the case of+-- characters in the /key/ can be whatever you choose. After you create a+-- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+-- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+-- act as two different /keys/. Possible /key/\//value/ pairs in your+-- application might be @Devops-Guru-production-application\/RDS@ or+-- @Devops-Guru-production-application\/containers@.+newResourceCollection ::+ ResourceCollection+newResourceCollection =+ ResourceCollection'+ { cloudFormation =+ Prelude.Nothing,+ tags = Prelude.Nothing+ }++-- | An array of the names of Amazon Web Services CloudFormation stacks. The+-- stacks define Amazon Web Services resources that DevOps Guru analyzes.+-- You can specify up to 500 Amazon Web Services CloudFormation stacks.+resourceCollection_cloudFormation :: Lens.Lens' ResourceCollection (Prelude.Maybe CloudFormationCollection)+resourceCollection_cloudFormation = Lens.lens (\ResourceCollection' {cloudFormation} -> cloudFormation) (\s@ResourceCollection' {} a -> s {cloudFormation = a} :: ResourceCollection)++-- | The Amazon Web Services tags that are used by resources in the resource+-- collection.+--+-- Tags help you identify and organize your Amazon Web Services resources.+-- Many Amazon Web Services services support tagging, so you can assign the+-- same tag to resources from different services to indicate that the+-- resources are related. For example, you can assign the same tag to an+-- Amazon DynamoDB table resource that you assign to an Lambda function.+-- For more information about using tags, see the+-- <https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf Tagging best practices>+-- whitepaper.+--+-- Each Amazon Web Services tag has two parts.+--+-- - A tag /key/ (for example, @CostCenter@, @Environment@, @Project@, or+-- @Secret@). Tag /keys/ are case-sensitive.+--+-- - An optional field known as a tag /value/ (for example,+-- @111122223333@, @Production@, or a team name). Omitting the tag+-- /value/ is the same as using an empty string. Like tag /keys/, tag+-- /values/ are case-sensitive.+--+-- Together these are known as /key/-/value/ pairs.+--+-- The string used for a /key/ in a tag that you use to define your+-- resource coverage must begin with the prefix @Devops-guru-@. The tag+-- /key/ might be @DevOps-Guru-deployment-application@ or+-- @devops-guru-rds-application@. When you create a /key/, the case of+-- characters in the /key/ can be whatever you choose. After you create a+-- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+-- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+-- act as two different /keys/. Possible /key/\//value/ pairs in your+-- application might be @Devops-Guru-production-application\/RDS@ or+-- @Devops-Guru-production-application\/containers@.+resourceCollection_tags :: Lens.Lens' ResourceCollection (Prelude.Maybe [TagCollection])+resourceCollection_tags = Lens.lens (\ResourceCollection' {tags} -> tags) (\s@ResourceCollection' {} a -> s {tags = a} :: ResourceCollection) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ResourceCollection where+ parseJSON =+ Data.withObject+ "ResourceCollection"+ ( \x ->+ ResourceCollection'+ Prelude.<$> (x Data..:? "CloudFormation")+ Prelude.<*> (x Data..:? "Tags" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable ResourceCollection where+ hashWithSalt _salt ResourceCollection' {..} =+ _salt+ `Prelude.hashWithSalt` cloudFormation+ `Prelude.hashWithSalt` tags++instance Prelude.NFData ResourceCollection where+ rnf ResourceCollection' {..} =+ Prelude.rnf cloudFormation+ `Prelude.seq` Prelude.rnf tags++instance Data.ToJSON ResourceCollection where+ toJSON ResourceCollection' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CloudFormation" Data..=)+ Prelude.<$> cloudFormation,+ ("Tags" Data..=) Prelude.<$> tags+ ]+ )
+ gen/Amazonka/DevOpsGuru/Types/ResourceCollectionFilter.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.DevOpsGuru.Types.ResourceCollectionFilter+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.ResourceCollectionFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.CloudFormationCollectionFilter+import Amazonka.DevOpsGuru.Types.TagCollectionFilter+import qualified Amazonka.Prelude as Prelude++-- | Information about a filter used to specify which Amazon Web Services+-- resources are analyzed for anomalous behavior by DevOps Guru.+--+-- /See:/ 'newResourceCollectionFilter' smart constructor.+data ResourceCollectionFilter = ResourceCollectionFilter'+ { -- | Information about Amazon Web Services CloudFormation stacks. You can use+ -- up to 500 stacks to specify which Amazon Web Services resources in your+ -- account to analyze. For more information, see+ -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html Stacks>+ -- in the /Amazon Web Services CloudFormation User Guide/.+ cloudFormation :: Prelude.Maybe CloudFormationCollectionFilter,+ -- | The Amazon Web Services tags used to filter the resources in the+ -- resource collection.+ --+ -- Tags help you identify and organize your Amazon Web Services resources.+ -- Many Amazon Web Services services support tagging, so you can assign the+ -- same tag to resources from different services to indicate that the+ -- resources are related. For example, you can assign the same tag to an+ -- Amazon DynamoDB table resource that you assign to an Lambda function.+ -- For more information about using tags, see the+ -- <https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf Tagging best practices>+ -- whitepaper.+ --+ -- Each Amazon Web Services tag has two parts.+ --+ -- - A tag /key/ (for example, @CostCenter@, @Environment@, @Project@, or+ -- @Secret@). Tag /keys/ are case-sensitive.+ --+ -- - An optional field known as a tag /value/ (for example,+ -- @111122223333@, @Production@, or a team name). Omitting the tag+ -- /value/ is the same as using an empty string. Like tag /keys/, tag+ -- /values/ are case-sensitive.+ --+ -- Together these are known as /key/-/value/ pairs.+ --+ -- The string used for a /key/ in a tag that you use to define your+ -- resource coverage must begin with the prefix @Devops-guru-@. The tag+ -- /key/ might be @DevOps-Guru-deployment-application@ or+ -- @devops-guru-rds-application@. When you create a /key/, the case of+ -- characters in the /key/ can be whatever you choose. After you create a+ -- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+ -- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+ -- act as two different /keys/. Possible /key/\//value/ pairs in your+ -- application might be @Devops-Guru-production-application\/RDS@ or+ -- @Devops-Guru-production-application\/containers@.+ tags :: Prelude.Maybe [TagCollectionFilter]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResourceCollectionFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cloudFormation', 'resourceCollectionFilter_cloudFormation' - Information about Amazon Web Services CloudFormation stacks. You can use+-- up to 500 stacks to specify which Amazon Web Services resources in your+-- account to analyze. For more information, see+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html Stacks>+-- in the /Amazon Web Services CloudFormation User Guide/.+--+-- 'tags', 'resourceCollectionFilter_tags' - The Amazon Web Services tags used to filter the resources in the+-- resource collection.+--+-- Tags help you identify and organize your Amazon Web Services resources.+-- Many Amazon Web Services services support tagging, so you can assign the+-- same tag to resources from different services to indicate that the+-- resources are related. For example, you can assign the same tag to an+-- Amazon DynamoDB table resource that you assign to an Lambda function.+-- For more information about using tags, see the+-- <https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf Tagging best practices>+-- whitepaper.+--+-- Each Amazon Web Services tag has two parts.+--+-- - A tag /key/ (for example, @CostCenter@, @Environment@, @Project@, or+-- @Secret@). Tag /keys/ are case-sensitive.+--+-- - An optional field known as a tag /value/ (for example,+-- @111122223333@, @Production@, or a team name). Omitting the tag+-- /value/ is the same as using an empty string. Like tag /keys/, tag+-- /values/ are case-sensitive.+--+-- Together these are known as /key/-/value/ pairs.+--+-- The string used for a /key/ in a tag that you use to define your+-- resource coverage must begin with the prefix @Devops-guru-@. The tag+-- /key/ might be @DevOps-Guru-deployment-application@ or+-- @devops-guru-rds-application@. When you create a /key/, the case of+-- characters in the /key/ can be whatever you choose. After you create a+-- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+-- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+-- act as two different /keys/. Possible /key/\//value/ pairs in your+-- application might be @Devops-Guru-production-application\/RDS@ or+-- @Devops-Guru-production-application\/containers@.+newResourceCollectionFilter ::+ ResourceCollectionFilter+newResourceCollectionFilter =+ ResourceCollectionFilter'+ { cloudFormation =+ Prelude.Nothing,+ tags = Prelude.Nothing+ }++-- | Information about Amazon Web Services CloudFormation stacks. You can use+-- up to 500 stacks to specify which Amazon Web Services resources in your+-- account to analyze. For more information, see+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html Stacks>+-- in the /Amazon Web Services CloudFormation User Guide/.+resourceCollectionFilter_cloudFormation :: Lens.Lens' ResourceCollectionFilter (Prelude.Maybe CloudFormationCollectionFilter)+resourceCollectionFilter_cloudFormation = Lens.lens (\ResourceCollectionFilter' {cloudFormation} -> cloudFormation) (\s@ResourceCollectionFilter' {} a -> s {cloudFormation = a} :: ResourceCollectionFilter)++-- | The Amazon Web Services tags used to filter the resources in the+-- resource collection.+--+-- Tags help you identify and organize your Amazon Web Services resources.+-- Many Amazon Web Services services support tagging, so you can assign the+-- same tag to resources from different services to indicate that the+-- resources are related. For example, you can assign the same tag to an+-- Amazon DynamoDB table resource that you assign to an Lambda function.+-- For more information about using tags, see the+-- <https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf Tagging best practices>+-- whitepaper.+--+-- Each Amazon Web Services tag has two parts.+--+-- - A tag /key/ (for example, @CostCenter@, @Environment@, @Project@, or+-- @Secret@). Tag /keys/ are case-sensitive.+--+-- - An optional field known as a tag /value/ (for example,+-- @111122223333@, @Production@, or a team name). Omitting the tag+-- /value/ is the same as using an empty string. Like tag /keys/, tag+-- /values/ are case-sensitive.+--+-- Together these are known as /key/-/value/ pairs.+--+-- The string used for a /key/ in a tag that you use to define your+-- resource coverage must begin with the prefix @Devops-guru-@. The tag+-- /key/ might be @DevOps-Guru-deployment-application@ or+-- @devops-guru-rds-application@. When you create a /key/, the case of+-- characters in the /key/ can be whatever you choose. After you create a+-- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+-- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+-- act as two different /keys/. Possible /key/\//value/ pairs in your+-- application might be @Devops-Guru-production-application\/RDS@ or+-- @Devops-Guru-production-application\/containers@.+resourceCollectionFilter_tags :: Lens.Lens' ResourceCollectionFilter (Prelude.Maybe [TagCollectionFilter])+resourceCollectionFilter_tags = Lens.lens (\ResourceCollectionFilter' {tags} -> tags) (\s@ResourceCollectionFilter' {} a -> s {tags = a} :: ResourceCollectionFilter) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ResourceCollectionFilter where+ parseJSON =+ Data.withObject+ "ResourceCollectionFilter"+ ( \x ->+ ResourceCollectionFilter'+ Prelude.<$> (x Data..:? "CloudFormation")+ Prelude.<*> (x Data..:? "Tags" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable ResourceCollectionFilter where+ hashWithSalt _salt ResourceCollectionFilter' {..} =+ _salt+ `Prelude.hashWithSalt` cloudFormation+ `Prelude.hashWithSalt` tags++instance Prelude.NFData ResourceCollectionFilter where+ rnf ResourceCollectionFilter' {..} =+ Prelude.rnf cloudFormation+ `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/DevOpsGuru/Types/ResourceCollectionType.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.DevOpsGuru.Types.ResourceCollectionType+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.ResourceCollectionType+ ( ResourceCollectionType+ ( ..,+ ResourceCollectionType_AWS_CLOUD_FORMATION,+ ResourceCollectionType_AWS_SERVICE,+ ResourceCollectionType_AWS_TAGS+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ResourceCollectionType = ResourceCollectionType'+ { fromResourceCollectionType ::+ 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 ResourceCollectionType_AWS_CLOUD_FORMATION :: ResourceCollectionType+pattern ResourceCollectionType_AWS_CLOUD_FORMATION = ResourceCollectionType' "AWS_CLOUD_FORMATION"++pattern ResourceCollectionType_AWS_SERVICE :: ResourceCollectionType+pattern ResourceCollectionType_AWS_SERVICE = ResourceCollectionType' "AWS_SERVICE"++pattern ResourceCollectionType_AWS_TAGS :: ResourceCollectionType+pattern ResourceCollectionType_AWS_TAGS = ResourceCollectionType' "AWS_TAGS"++{-# COMPLETE+ ResourceCollectionType_AWS_CLOUD_FORMATION,+ ResourceCollectionType_AWS_SERVICE,+ ResourceCollectionType_AWS_TAGS,+ ResourceCollectionType'+ #-}
+ gen/Amazonka/DevOpsGuru/Types/ResourcePermission.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.DevOpsGuru.Types.ResourcePermission+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.ResourcePermission+ ( ResourcePermission+ ( ..,+ ResourcePermission_FULL_PERMISSION,+ ResourcePermission_MISSING_PERMISSION+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ResourcePermission = ResourcePermission'+ { fromResourcePermission ::+ 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 ResourcePermission_FULL_PERMISSION :: ResourcePermission+pattern ResourcePermission_FULL_PERMISSION = ResourcePermission' "FULL_PERMISSION"++pattern ResourcePermission_MISSING_PERMISSION :: ResourcePermission+pattern ResourcePermission_MISSING_PERMISSION = ResourcePermission' "MISSING_PERMISSION"++{-# COMPLETE+ ResourcePermission_FULL_PERMISSION,+ ResourcePermission_MISSING_PERMISSION,+ ResourcePermission'+ #-}
+ gen/Amazonka/DevOpsGuru/Types/ResourceTypeFilter.hs view
@@ -0,0 +1,196 @@+{-# 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.DevOpsGuru.Types.ResourceTypeFilter+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.ResourceTypeFilter+ ( ResourceTypeFilter+ ( ..,+ ResourceTypeFilter_CLOUDFRONT_DISTRIBUTION,+ ResourceTypeFilter_DYNAMODB_TABLE,+ ResourceTypeFilter_EC2_NAT_GATEWAY,+ ResourceTypeFilter_ECS_CLUSTER,+ ResourceTypeFilter_ECS_SERVICE,+ ResourceTypeFilter_EKS_CLUSTER,+ ResourceTypeFilter_ELASTICACHE_CACHE_CLUSTER,+ ResourceTypeFilter_ELASTICSEARCH_DOMAIN,+ ResourceTypeFilter_ELASTIC_BEANSTALK_ENVIRONMENT,+ ResourceTypeFilter_ELASTIC_LOAD_BALANCER_LOAD_BALANCER,+ ResourceTypeFilter_ELASTIC_LOAD_BALANCING_V2_LOAD_BALANCER,+ ResourceTypeFilter_ELASTIC_LOAD_BALANCING_V2_TARGET_GROUP,+ ResourceTypeFilter_KINESIS_STREAM,+ ResourceTypeFilter_LAMBDA_FUNCTION,+ ResourceTypeFilter_LOG_GROUPS,+ ResourceTypeFilter_OPEN_SEARCH_SERVICE_DOMAIN,+ ResourceTypeFilter_RDS_DB_CLUSTER,+ ResourceTypeFilter_RDS_DB_INSTANCE,+ ResourceTypeFilter_REDSHIFT_CLUSTER,+ ResourceTypeFilter_ROUTE53_HEALTH_CHECK,+ ResourceTypeFilter_ROUTE53_HOSTED_ZONE,+ ResourceTypeFilter_S3_BUCKET,+ ResourceTypeFilter_SAGEMAKER_ENDPOINT,+ ResourceTypeFilter_SNS_TOPIC,+ ResourceTypeFilter_SQS_QUEUE,+ ResourceTypeFilter_STEP_FUNCTIONS_ACTIVITY,+ ResourceTypeFilter_STEP_FUNCTIONS_STATE_MACHINE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ResourceTypeFilter = ResourceTypeFilter'+ { fromResourceTypeFilter ::+ 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 ResourceTypeFilter_CLOUDFRONT_DISTRIBUTION :: ResourceTypeFilter+pattern ResourceTypeFilter_CLOUDFRONT_DISTRIBUTION = ResourceTypeFilter' "CLOUDFRONT_DISTRIBUTION"++pattern ResourceTypeFilter_DYNAMODB_TABLE :: ResourceTypeFilter+pattern ResourceTypeFilter_DYNAMODB_TABLE = ResourceTypeFilter' "DYNAMODB_TABLE"++pattern ResourceTypeFilter_EC2_NAT_GATEWAY :: ResourceTypeFilter+pattern ResourceTypeFilter_EC2_NAT_GATEWAY = ResourceTypeFilter' "EC2_NAT_GATEWAY"++pattern ResourceTypeFilter_ECS_CLUSTER :: ResourceTypeFilter+pattern ResourceTypeFilter_ECS_CLUSTER = ResourceTypeFilter' "ECS_CLUSTER"++pattern ResourceTypeFilter_ECS_SERVICE :: ResourceTypeFilter+pattern ResourceTypeFilter_ECS_SERVICE = ResourceTypeFilter' "ECS_SERVICE"++pattern ResourceTypeFilter_EKS_CLUSTER :: ResourceTypeFilter+pattern ResourceTypeFilter_EKS_CLUSTER = ResourceTypeFilter' "EKS_CLUSTER"++pattern ResourceTypeFilter_ELASTICACHE_CACHE_CLUSTER :: ResourceTypeFilter+pattern ResourceTypeFilter_ELASTICACHE_CACHE_CLUSTER = ResourceTypeFilter' "ELASTICACHE_CACHE_CLUSTER"++pattern ResourceTypeFilter_ELASTICSEARCH_DOMAIN :: ResourceTypeFilter+pattern ResourceTypeFilter_ELASTICSEARCH_DOMAIN = ResourceTypeFilter' "ELASTICSEARCH_DOMAIN"++pattern ResourceTypeFilter_ELASTIC_BEANSTALK_ENVIRONMENT :: ResourceTypeFilter+pattern ResourceTypeFilter_ELASTIC_BEANSTALK_ENVIRONMENT = ResourceTypeFilter' "ELASTIC_BEANSTALK_ENVIRONMENT"++pattern ResourceTypeFilter_ELASTIC_LOAD_BALANCER_LOAD_BALANCER :: ResourceTypeFilter+pattern ResourceTypeFilter_ELASTIC_LOAD_BALANCER_LOAD_BALANCER = ResourceTypeFilter' "ELASTIC_LOAD_BALANCER_LOAD_BALANCER"++pattern ResourceTypeFilter_ELASTIC_LOAD_BALANCING_V2_LOAD_BALANCER :: ResourceTypeFilter+pattern ResourceTypeFilter_ELASTIC_LOAD_BALANCING_V2_LOAD_BALANCER = ResourceTypeFilter' "ELASTIC_LOAD_BALANCING_V2_LOAD_BALANCER"++pattern ResourceTypeFilter_ELASTIC_LOAD_BALANCING_V2_TARGET_GROUP :: ResourceTypeFilter+pattern ResourceTypeFilter_ELASTIC_LOAD_BALANCING_V2_TARGET_GROUP = ResourceTypeFilter' "ELASTIC_LOAD_BALANCING_V2_TARGET_GROUP"++pattern ResourceTypeFilter_KINESIS_STREAM :: ResourceTypeFilter+pattern ResourceTypeFilter_KINESIS_STREAM = ResourceTypeFilter' "KINESIS_STREAM"++pattern ResourceTypeFilter_LAMBDA_FUNCTION :: ResourceTypeFilter+pattern ResourceTypeFilter_LAMBDA_FUNCTION = ResourceTypeFilter' "LAMBDA_FUNCTION"++pattern ResourceTypeFilter_LOG_GROUPS :: ResourceTypeFilter+pattern ResourceTypeFilter_LOG_GROUPS = ResourceTypeFilter' "LOG_GROUPS"++pattern ResourceTypeFilter_OPEN_SEARCH_SERVICE_DOMAIN :: ResourceTypeFilter+pattern ResourceTypeFilter_OPEN_SEARCH_SERVICE_DOMAIN = ResourceTypeFilter' "OPEN_SEARCH_SERVICE_DOMAIN"++pattern ResourceTypeFilter_RDS_DB_CLUSTER :: ResourceTypeFilter+pattern ResourceTypeFilter_RDS_DB_CLUSTER = ResourceTypeFilter' "RDS_DB_CLUSTER"++pattern ResourceTypeFilter_RDS_DB_INSTANCE :: ResourceTypeFilter+pattern ResourceTypeFilter_RDS_DB_INSTANCE = ResourceTypeFilter' "RDS_DB_INSTANCE"++pattern ResourceTypeFilter_REDSHIFT_CLUSTER :: ResourceTypeFilter+pattern ResourceTypeFilter_REDSHIFT_CLUSTER = ResourceTypeFilter' "REDSHIFT_CLUSTER"++pattern ResourceTypeFilter_ROUTE53_HEALTH_CHECK :: ResourceTypeFilter+pattern ResourceTypeFilter_ROUTE53_HEALTH_CHECK = ResourceTypeFilter' "ROUTE53_HEALTH_CHECK"++pattern ResourceTypeFilter_ROUTE53_HOSTED_ZONE :: ResourceTypeFilter+pattern ResourceTypeFilter_ROUTE53_HOSTED_ZONE = ResourceTypeFilter' "ROUTE53_HOSTED_ZONE"++pattern ResourceTypeFilter_S3_BUCKET :: ResourceTypeFilter+pattern ResourceTypeFilter_S3_BUCKET = ResourceTypeFilter' "S3_BUCKET"++pattern ResourceTypeFilter_SAGEMAKER_ENDPOINT :: ResourceTypeFilter+pattern ResourceTypeFilter_SAGEMAKER_ENDPOINT = ResourceTypeFilter' "SAGEMAKER_ENDPOINT"++pattern ResourceTypeFilter_SNS_TOPIC :: ResourceTypeFilter+pattern ResourceTypeFilter_SNS_TOPIC = ResourceTypeFilter' "SNS_TOPIC"++pattern ResourceTypeFilter_SQS_QUEUE :: ResourceTypeFilter+pattern ResourceTypeFilter_SQS_QUEUE = ResourceTypeFilter' "SQS_QUEUE"++pattern ResourceTypeFilter_STEP_FUNCTIONS_ACTIVITY :: ResourceTypeFilter+pattern ResourceTypeFilter_STEP_FUNCTIONS_ACTIVITY = ResourceTypeFilter' "STEP_FUNCTIONS_ACTIVITY"++pattern ResourceTypeFilter_STEP_FUNCTIONS_STATE_MACHINE :: ResourceTypeFilter+pattern ResourceTypeFilter_STEP_FUNCTIONS_STATE_MACHINE = ResourceTypeFilter' "STEP_FUNCTIONS_STATE_MACHINE"++{-# COMPLETE+ ResourceTypeFilter_CLOUDFRONT_DISTRIBUTION,+ ResourceTypeFilter_DYNAMODB_TABLE,+ ResourceTypeFilter_EC2_NAT_GATEWAY,+ ResourceTypeFilter_ECS_CLUSTER,+ ResourceTypeFilter_ECS_SERVICE,+ ResourceTypeFilter_EKS_CLUSTER,+ ResourceTypeFilter_ELASTICACHE_CACHE_CLUSTER,+ ResourceTypeFilter_ELASTICSEARCH_DOMAIN,+ ResourceTypeFilter_ELASTIC_BEANSTALK_ENVIRONMENT,+ ResourceTypeFilter_ELASTIC_LOAD_BALANCER_LOAD_BALANCER,+ ResourceTypeFilter_ELASTIC_LOAD_BALANCING_V2_LOAD_BALANCER,+ ResourceTypeFilter_ELASTIC_LOAD_BALANCING_V2_TARGET_GROUP,+ ResourceTypeFilter_KINESIS_STREAM,+ ResourceTypeFilter_LAMBDA_FUNCTION,+ ResourceTypeFilter_LOG_GROUPS,+ ResourceTypeFilter_OPEN_SEARCH_SERVICE_DOMAIN,+ ResourceTypeFilter_RDS_DB_CLUSTER,+ ResourceTypeFilter_RDS_DB_INSTANCE,+ ResourceTypeFilter_REDSHIFT_CLUSTER,+ ResourceTypeFilter_ROUTE53_HEALTH_CHECK,+ ResourceTypeFilter_ROUTE53_HOSTED_ZONE,+ ResourceTypeFilter_S3_BUCKET,+ ResourceTypeFilter_SAGEMAKER_ENDPOINT,+ ResourceTypeFilter_SNS_TOPIC,+ ResourceTypeFilter_SQS_QUEUE,+ ResourceTypeFilter_STEP_FUNCTIONS_ACTIVITY,+ ResourceTypeFilter_STEP_FUNCTIONS_STATE_MACHINE,+ ResourceTypeFilter'+ #-}
+ gen/Amazonka/DevOpsGuru/Types/SearchInsightsFilters.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.DevOpsGuru.Types.SearchInsightsFilters+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.SearchInsightsFilters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.InsightSeverity+import Amazonka.DevOpsGuru.Types.InsightStatus+import Amazonka.DevOpsGuru.Types.ResourceCollection+import Amazonka.DevOpsGuru.Types.ServiceCollection+import qualified Amazonka.Prelude as Prelude++-- | Specifies one or more severity values and one or more status values that+-- are used to search for insights.+--+-- /See:/ 'newSearchInsightsFilters' smart constructor.+data SearchInsightsFilters = SearchInsightsFilters'+ { resourceCollection :: Prelude.Maybe ResourceCollection,+ -- | A collection of the names of Amazon Web Services services.+ serviceCollection :: Prelude.Maybe ServiceCollection,+ -- | An array of severity values used to search for insights.+ severities :: Prelude.Maybe [InsightSeverity],+ -- | An array of status values used to search for insights.+ statuses :: Prelude.Maybe [InsightStatus]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SearchInsightsFilters' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceCollection', 'searchInsightsFilters_resourceCollection' - Undocumented member.+--+-- 'serviceCollection', 'searchInsightsFilters_serviceCollection' - A collection of the names of Amazon Web Services services.+--+-- 'severities', 'searchInsightsFilters_severities' - An array of severity values used to search for insights.+--+-- 'statuses', 'searchInsightsFilters_statuses' - An array of status values used to search for insights.+newSearchInsightsFilters ::+ SearchInsightsFilters+newSearchInsightsFilters =+ SearchInsightsFilters'+ { resourceCollection =+ Prelude.Nothing,+ serviceCollection = Prelude.Nothing,+ severities = Prelude.Nothing,+ statuses = Prelude.Nothing+ }++-- | Undocumented member.+searchInsightsFilters_resourceCollection :: Lens.Lens' SearchInsightsFilters (Prelude.Maybe ResourceCollection)+searchInsightsFilters_resourceCollection = Lens.lens (\SearchInsightsFilters' {resourceCollection} -> resourceCollection) (\s@SearchInsightsFilters' {} a -> s {resourceCollection = a} :: SearchInsightsFilters)++-- | A collection of the names of Amazon Web Services services.+searchInsightsFilters_serviceCollection :: Lens.Lens' SearchInsightsFilters (Prelude.Maybe ServiceCollection)+searchInsightsFilters_serviceCollection = Lens.lens (\SearchInsightsFilters' {serviceCollection} -> serviceCollection) (\s@SearchInsightsFilters' {} a -> s {serviceCollection = a} :: SearchInsightsFilters)++-- | An array of severity values used to search for insights.+searchInsightsFilters_severities :: Lens.Lens' SearchInsightsFilters (Prelude.Maybe [InsightSeverity])+searchInsightsFilters_severities = Lens.lens (\SearchInsightsFilters' {severities} -> severities) (\s@SearchInsightsFilters' {} a -> s {severities = a} :: SearchInsightsFilters) Prelude.. Lens.mapping Lens.coerced++-- | An array of status values used to search for insights.+searchInsightsFilters_statuses :: Lens.Lens' SearchInsightsFilters (Prelude.Maybe [InsightStatus])+searchInsightsFilters_statuses = Lens.lens (\SearchInsightsFilters' {statuses} -> statuses) (\s@SearchInsightsFilters' {} a -> s {statuses = a} :: SearchInsightsFilters) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable SearchInsightsFilters where+ hashWithSalt _salt SearchInsightsFilters' {..} =+ _salt+ `Prelude.hashWithSalt` resourceCollection+ `Prelude.hashWithSalt` serviceCollection+ `Prelude.hashWithSalt` severities+ `Prelude.hashWithSalt` statuses++instance Prelude.NFData SearchInsightsFilters where+ rnf SearchInsightsFilters' {..} =+ Prelude.rnf resourceCollection+ `Prelude.seq` Prelude.rnf serviceCollection+ `Prelude.seq` Prelude.rnf severities+ `Prelude.seq` Prelude.rnf statuses++instance Data.ToJSON SearchInsightsFilters where+ toJSON SearchInsightsFilters' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ResourceCollection" Data..=)+ Prelude.<$> resourceCollection,+ ("ServiceCollection" Data..=)+ Prelude.<$> serviceCollection,+ ("Severities" Data..=) Prelude.<$> severities,+ ("Statuses" Data..=) Prelude.<$> statuses+ ]+ )
+ gen/Amazonka/DevOpsGuru/Types/SearchOrganizationInsightsFilters.hs view
@@ -0,0 +1,124 @@+{-# 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.DevOpsGuru.Types.SearchOrganizationInsightsFilters+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.SearchOrganizationInsightsFilters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.InsightSeverity+import Amazonka.DevOpsGuru.Types.InsightStatus+import Amazonka.DevOpsGuru.Types.ResourceCollection+import Amazonka.DevOpsGuru.Types.ServiceCollection+import qualified Amazonka.Prelude as Prelude++-- | Filters you can use to specify which events are returned when+-- @ListEvents@ is called.+--+-- /See:/ 'newSearchOrganizationInsightsFilters' smart constructor.+data SearchOrganizationInsightsFilters = SearchOrganizationInsightsFilters'+ { resourceCollection :: Prelude.Maybe ResourceCollection,+ serviceCollection :: Prelude.Maybe ServiceCollection,+ -- | An array of severity values used to search for insights.+ severities :: Prelude.Maybe [InsightSeverity],+ -- | An array of status values used to search for insights.+ statuses :: Prelude.Maybe [InsightStatus]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SearchOrganizationInsightsFilters' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceCollection', 'searchOrganizationInsightsFilters_resourceCollection' - Undocumented member.+--+-- 'serviceCollection', 'searchOrganizationInsightsFilters_serviceCollection' - Undocumented member.+--+-- 'severities', 'searchOrganizationInsightsFilters_severities' - An array of severity values used to search for insights.+--+-- 'statuses', 'searchOrganizationInsightsFilters_statuses' - An array of status values used to search for insights.+newSearchOrganizationInsightsFilters ::+ SearchOrganizationInsightsFilters+newSearchOrganizationInsightsFilters =+ SearchOrganizationInsightsFilters'+ { resourceCollection =+ Prelude.Nothing,+ serviceCollection = Prelude.Nothing,+ severities = Prelude.Nothing,+ statuses = Prelude.Nothing+ }++-- | Undocumented member.+searchOrganizationInsightsFilters_resourceCollection :: Lens.Lens' SearchOrganizationInsightsFilters (Prelude.Maybe ResourceCollection)+searchOrganizationInsightsFilters_resourceCollection = Lens.lens (\SearchOrganizationInsightsFilters' {resourceCollection} -> resourceCollection) (\s@SearchOrganizationInsightsFilters' {} a -> s {resourceCollection = a} :: SearchOrganizationInsightsFilters)++-- | Undocumented member.+searchOrganizationInsightsFilters_serviceCollection :: Lens.Lens' SearchOrganizationInsightsFilters (Prelude.Maybe ServiceCollection)+searchOrganizationInsightsFilters_serviceCollection = Lens.lens (\SearchOrganizationInsightsFilters' {serviceCollection} -> serviceCollection) (\s@SearchOrganizationInsightsFilters' {} a -> s {serviceCollection = a} :: SearchOrganizationInsightsFilters)++-- | An array of severity values used to search for insights.+searchOrganizationInsightsFilters_severities :: Lens.Lens' SearchOrganizationInsightsFilters (Prelude.Maybe [InsightSeverity])+searchOrganizationInsightsFilters_severities = Lens.lens (\SearchOrganizationInsightsFilters' {severities} -> severities) (\s@SearchOrganizationInsightsFilters' {} a -> s {severities = a} :: SearchOrganizationInsightsFilters) Prelude.. Lens.mapping Lens.coerced++-- | An array of status values used to search for insights.+searchOrganizationInsightsFilters_statuses :: Lens.Lens' SearchOrganizationInsightsFilters (Prelude.Maybe [InsightStatus])+searchOrganizationInsightsFilters_statuses = Lens.lens (\SearchOrganizationInsightsFilters' {statuses} -> statuses) (\s@SearchOrganizationInsightsFilters' {} a -> s {statuses = a} :: SearchOrganizationInsightsFilters) Prelude.. Lens.mapping Lens.coerced++instance+ Prelude.Hashable+ SearchOrganizationInsightsFilters+ where+ hashWithSalt+ _salt+ SearchOrganizationInsightsFilters' {..} =+ _salt+ `Prelude.hashWithSalt` resourceCollection+ `Prelude.hashWithSalt` serviceCollection+ `Prelude.hashWithSalt` severities+ `Prelude.hashWithSalt` statuses++instance+ Prelude.NFData+ SearchOrganizationInsightsFilters+ where+ rnf SearchOrganizationInsightsFilters' {..} =+ Prelude.rnf resourceCollection+ `Prelude.seq` Prelude.rnf serviceCollection+ `Prelude.seq` Prelude.rnf severities+ `Prelude.seq` Prelude.rnf statuses++instance+ Data.ToJSON+ SearchOrganizationInsightsFilters+ where+ toJSON SearchOrganizationInsightsFilters' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ResourceCollection" Data..=)+ Prelude.<$> resourceCollection,+ ("ServiceCollection" Data..=)+ Prelude.<$> serviceCollection,+ ("Severities" Data..=) Prelude.<$> severities,+ ("Statuses" Data..=) Prelude.<$> statuses+ ]+ )
+ gen/Amazonka/DevOpsGuru/Types/ServiceCollection.hs view
@@ -0,0 +1,79 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.Types.ServiceCollection+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.ServiceCollection where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.ServiceName+import qualified Amazonka.Prelude as Prelude++-- | A collection of the names of Amazon Web Services services.+--+-- /See:/ 'newServiceCollection' smart constructor.+data ServiceCollection = ServiceCollection'+ { -- | An array of strings that each specifies the name of an Amazon Web+ -- Services service.+ serviceNames :: Prelude.Maybe [ServiceName]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ServiceCollection' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'serviceNames', 'serviceCollection_serviceNames' - An array of strings that each specifies the name of an Amazon Web+-- Services service.+newServiceCollection ::+ ServiceCollection+newServiceCollection =+ ServiceCollection' {serviceNames = Prelude.Nothing}++-- | An array of strings that each specifies the name of an Amazon Web+-- Services service.+serviceCollection_serviceNames :: Lens.Lens' ServiceCollection (Prelude.Maybe [ServiceName])+serviceCollection_serviceNames = Lens.lens (\ServiceCollection' {serviceNames} -> serviceNames) (\s@ServiceCollection' {} a -> s {serviceNames = a} :: ServiceCollection) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ServiceCollection where+ parseJSON =+ Data.withObject+ "ServiceCollection"+ ( \x ->+ ServiceCollection'+ Prelude.<$> (x Data..:? "ServiceNames" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable ServiceCollection where+ hashWithSalt _salt ServiceCollection' {..} =+ _salt `Prelude.hashWithSalt` serviceNames++instance Prelude.NFData ServiceCollection where+ rnf ServiceCollection' {..} = Prelude.rnf serviceNames++instance Data.ToJSON ServiceCollection where+ toJSON ServiceCollection' {..} =+ Data.object+ ( Prelude.catMaybes+ [("ServiceNames" Data..=) Prelude.<$> serviceNames]+ )
+ gen/Amazonka/DevOpsGuru/Types/ServiceHealth.hs view
@@ -0,0 +1,108 @@+{-# 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.DevOpsGuru.Types.ServiceHealth+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.ServiceHealth where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.ServiceInsightHealth+import Amazonka.DevOpsGuru.Types.ServiceName+import qualified Amazonka.Prelude as Prelude++-- | Represents the health of an Amazon Web Services service.+--+-- /See:/ 'newServiceHealth' smart constructor.+data ServiceHealth = ServiceHealth'+ { -- | Number of resources that DevOps Guru is monitoring in an analyzed Amazon+ -- Web Services service.+ analyzedResourceCount :: Prelude.Maybe Prelude.Integer,+ -- | Represents the health of an Amazon Web Services service. This is a+ -- @ServiceInsightHealth@ that contains the number of open proactive and+ -- reactive insights for this service.+ insight :: Prelude.Maybe ServiceInsightHealth,+ -- | The name of the Amazon Web Services service.+ serviceName :: Prelude.Maybe ServiceName+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ServiceHealth' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'analyzedResourceCount', 'serviceHealth_analyzedResourceCount' - Number of resources that DevOps Guru is monitoring in an analyzed Amazon+-- Web Services service.+--+-- 'insight', 'serviceHealth_insight' - Represents the health of an Amazon Web Services service. This is a+-- @ServiceInsightHealth@ that contains the number of open proactive and+-- reactive insights for this service.+--+-- 'serviceName', 'serviceHealth_serviceName' - The name of the Amazon Web Services service.+newServiceHealth ::+ ServiceHealth+newServiceHealth =+ ServiceHealth'+ { analyzedResourceCount =+ Prelude.Nothing,+ insight = Prelude.Nothing,+ serviceName = Prelude.Nothing+ }++-- | Number of resources that DevOps Guru is monitoring in an analyzed Amazon+-- Web Services service.+serviceHealth_analyzedResourceCount :: Lens.Lens' ServiceHealth (Prelude.Maybe Prelude.Integer)+serviceHealth_analyzedResourceCount = Lens.lens (\ServiceHealth' {analyzedResourceCount} -> analyzedResourceCount) (\s@ServiceHealth' {} a -> s {analyzedResourceCount = a} :: ServiceHealth)++-- | Represents the health of an Amazon Web Services service. This is a+-- @ServiceInsightHealth@ that contains the number of open proactive and+-- reactive insights for this service.+serviceHealth_insight :: Lens.Lens' ServiceHealth (Prelude.Maybe ServiceInsightHealth)+serviceHealth_insight = Lens.lens (\ServiceHealth' {insight} -> insight) (\s@ServiceHealth' {} a -> s {insight = a} :: ServiceHealth)++-- | The name of the Amazon Web Services service.+serviceHealth_serviceName :: Lens.Lens' ServiceHealth (Prelude.Maybe ServiceName)+serviceHealth_serviceName = Lens.lens (\ServiceHealth' {serviceName} -> serviceName) (\s@ServiceHealth' {} a -> s {serviceName = a} :: ServiceHealth)++instance Data.FromJSON ServiceHealth where+ parseJSON =+ Data.withObject+ "ServiceHealth"+ ( \x ->+ ServiceHealth'+ Prelude.<$> (x Data..:? "AnalyzedResourceCount")+ Prelude.<*> (x Data..:? "Insight")+ Prelude.<*> (x Data..:? "ServiceName")+ )++instance Prelude.Hashable ServiceHealth where+ hashWithSalt _salt ServiceHealth' {..} =+ _salt+ `Prelude.hashWithSalt` analyzedResourceCount+ `Prelude.hashWithSalt` insight+ `Prelude.hashWithSalt` serviceName++instance Prelude.NFData ServiceHealth where+ rnf ServiceHealth' {..} =+ Prelude.rnf analyzedResourceCount+ `Prelude.seq` Prelude.rnf insight+ `Prelude.seq` Prelude.rnf serviceName
+ gen/Amazonka/DevOpsGuru/Types/ServiceInsightHealth.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.DevOpsGuru.Types.ServiceInsightHealth+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.ServiceInsightHealth where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Contains the number of open proactive and reactive insights in an+-- analyzed Amazon Web Services service.+--+-- /See:/ 'newServiceInsightHealth' smart constructor.+data ServiceInsightHealth = ServiceInsightHealth'+ { -- | The number of open proactive insights in the Amazon Web Services service+ openProactiveInsights :: Prelude.Maybe Prelude.Int,+ -- | The number of open reactive insights in the Amazon Web Services service+ openReactiveInsights :: Prelude.Maybe Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ServiceInsightHealth' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'openProactiveInsights', 'serviceInsightHealth_openProactiveInsights' - The number of open proactive insights in the Amazon Web Services service+--+-- 'openReactiveInsights', 'serviceInsightHealth_openReactiveInsights' - The number of open reactive insights in the Amazon Web Services service+newServiceInsightHealth ::+ ServiceInsightHealth+newServiceInsightHealth =+ ServiceInsightHealth'+ { openProactiveInsights =+ Prelude.Nothing,+ openReactiveInsights = Prelude.Nothing+ }++-- | The number of open proactive insights in the Amazon Web Services service+serviceInsightHealth_openProactiveInsights :: Lens.Lens' ServiceInsightHealth (Prelude.Maybe Prelude.Int)+serviceInsightHealth_openProactiveInsights = Lens.lens (\ServiceInsightHealth' {openProactiveInsights} -> openProactiveInsights) (\s@ServiceInsightHealth' {} a -> s {openProactiveInsights = a} :: ServiceInsightHealth)++-- | The number of open reactive insights in the Amazon Web Services service+serviceInsightHealth_openReactiveInsights :: Lens.Lens' ServiceInsightHealth (Prelude.Maybe Prelude.Int)+serviceInsightHealth_openReactiveInsights = Lens.lens (\ServiceInsightHealth' {openReactiveInsights} -> openReactiveInsights) (\s@ServiceInsightHealth' {} a -> s {openReactiveInsights = a} :: ServiceInsightHealth)++instance Data.FromJSON ServiceInsightHealth where+ parseJSON =+ Data.withObject+ "ServiceInsightHealth"+ ( \x ->+ ServiceInsightHealth'+ Prelude.<$> (x Data..:? "OpenProactiveInsights")+ Prelude.<*> (x Data..:? "OpenReactiveInsights")+ )++instance Prelude.Hashable ServiceInsightHealth where+ hashWithSalt _salt ServiceInsightHealth' {..} =+ _salt+ `Prelude.hashWithSalt` openProactiveInsights+ `Prelude.hashWithSalt` openReactiveInsights++instance Prelude.NFData ServiceInsightHealth where+ rnf ServiceInsightHealth' {..} =+ Prelude.rnf openProactiveInsights+ `Prelude.seq` Prelude.rnf openReactiveInsights
+ gen/Amazonka/DevOpsGuru/Types/ServiceIntegrationConfig.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.DevOpsGuru.Types.ServiceIntegrationConfig+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.ServiceIntegrationConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.LogsAnomalyDetectionIntegration+import Amazonka.DevOpsGuru.Types.OpsCenterIntegration+import qualified Amazonka.Prelude as Prelude++-- | Information about the integration of DevOps Guru with another Amazon Web+-- Services service, such as Amazon Web Services Systems Manager.+--+-- /See:/ 'newServiceIntegrationConfig' smart constructor.+data ServiceIntegrationConfig = ServiceIntegrationConfig'+ { -- | Information about whether DevOps Guru is configured to perform log+ -- anomaly detection on Amazon CloudWatch log groups.+ logsAnomalyDetection :: Prelude.Maybe LogsAnomalyDetectionIntegration,+ -- | Information about whether DevOps Guru is configured to create an OpsItem+ -- in Amazon Web Services Systems Manager OpsCenter for each created+ -- insight.+ opsCenter :: Prelude.Maybe OpsCenterIntegration+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ServiceIntegrationConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'logsAnomalyDetection', 'serviceIntegrationConfig_logsAnomalyDetection' - Information about whether DevOps Guru is configured to perform log+-- anomaly detection on Amazon CloudWatch log groups.+--+-- 'opsCenter', 'serviceIntegrationConfig_opsCenter' - Information about whether DevOps Guru is configured to create an OpsItem+-- in Amazon Web Services Systems Manager OpsCenter for each created+-- insight.+newServiceIntegrationConfig ::+ ServiceIntegrationConfig+newServiceIntegrationConfig =+ ServiceIntegrationConfig'+ { logsAnomalyDetection =+ Prelude.Nothing,+ opsCenter = Prelude.Nothing+ }++-- | Information about whether DevOps Guru is configured to perform log+-- anomaly detection on Amazon CloudWatch log groups.+serviceIntegrationConfig_logsAnomalyDetection :: Lens.Lens' ServiceIntegrationConfig (Prelude.Maybe LogsAnomalyDetectionIntegration)+serviceIntegrationConfig_logsAnomalyDetection = Lens.lens (\ServiceIntegrationConfig' {logsAnomalyDetection} -> logsAnomalyDetection) (\s@ServiceIntegrationConfig' {} a -> s {logsAnomalyDetection = a} :: ServiceIntegrationConfig)++-- | Information about whether DevOps Guru is configured to create an OpsItem+-- in Amazon Web Services Systems Manager OpsCenter for each created+-- insight.+serviceIntegrationConfig_opsCenter :: Lens.Lens' ServiceIntegrationConfig (Prelude.Maybe OpsCenterIntegration)+serviceIntegrationConfig_opsCenter = Lens.lens (\ServiceIntegrationConfig' {opsCenter} -> opsCenter) (\s@ServiceIntegrationConfig' {} a -> s {opsCenter = a} :: ServiceIntegrationConfig)++instance Data.FromJSON ServiceIntegrationConfig where+ parseJSON =+ Data.withObject+ "ServiceIntegrationConfig"+ ( \x ->+ ServiceIntegrationConfig'+ Prelude.<$> (x Data..:? "LogsAnomalyDetection")+ Prelude.<*> (x Data..:? "OpsCenter")+ )++instance Prelude.Hashable ServiceIntegrationConfig where+ hashWithSalt _salt ServiceIntegrationConfig' {..} =+ _salt+ `Prelude.hashWithSalt` logsAnomalyDetection+ `Prelude.hashWithSalt` opsCenter++instance Prelude.NFData ServiceIntegrationConfig where+ rnf ServiceIntegrationConfig' {..} =+ Prelude.rnf logsAnomalyDetection+ `Prelude.seq` Prelude.rnf opsCenter
+ gen/Amazonka/DevOpsGuru/Types/ServiceName.hs view
@@ -0,0 +1,186 @@+{-# 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.DevOpsGuru.Types.ServiceName+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.ServiceName+ ( ServiceName+ ( ..,+ ServiceName_API_GATEWAY,+ ServiceName_APPLICATION_ELB,+ ServiceName_AUTO_SCALING_GROUP,+ ServiceName_CLOUD_FRONT,+ ServiceName_DYNAMO_DB,+ ServiceName_EC2,+ ServiceName_ECS,+ ServiceName_EKS,+ ServiceName_ELASTIC_BEANSTALK,+ ServiceName_ELASTI_CACHE,+ ServiceName_ELB,+ ServiceName_ES,+ ServiceName_KINESIS,+ ServiceName_LAMBDA,+ ServiceName_NAT_GATEWAY,+ ServiceName_NETWORK_ELB,+ ServiceName_RDS,+ ServiceName_REDSHIFT,+ ServiceName_ROUTE_53,+ ServiceName_S3,+ ServiceName_SAGE_MAKER,+ ServiceName_SNS,+ ServiceName_SQS,+ ServiceName_STEP_FUNCTIONS,+ ServiceName_SWF+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ServiceName = ServiceName'+ { fromServiceName ::+ 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 ServiceName_API_GATEWAY :: ServiceName+pattern ServiceName_API_GATEWAY = ServiceName' "API_GATEWAY"++pattern ServiceName_APPLICATION_ELB :: ServiceName+pattern ServiceName_APPLICATION_ELB = ServiceName' "APPLICATION_ELB"++pattern ServiceName_AUTO_SCALING_GROUP :: ServiceName+pattern ServiceName_AUTO_SCALING_GROUP = ServiceName' "AUTO_SCALING_GROUP"++pattern ServiceName_CLOUD_FRONT :: ServiceName+pattern ServiceName_CLOUD_FRONT = ServiceName' "CLOUD_FRONT"++pattern ServiceName_DYNAMO_DB :: ServiceName+pattern ServiceName_DYNAMO_DB = ServiceName' "DYNAMO_DB"++pattern ServiceName_EC2 :: ServiceName+pattern ServiceName_EC2 = ServiceName' "EC2"++pattern ServiceName_ECS :: ServiceName+pattern ServiceName_ECS = ServiceName' "ECS"++pattern ServiceName_EKS :: ServiceName+pattern ServiceName_EKS = ServiceName' "EKS"++pattern ServiceName_ELASTIC_BEANSTALK :: ServiceName+pattern ServiceName_ELASTIC_BEANSTALK = ServiceName' "ELASTIC_BEANSTALK"++pattern ServiceName_ELASTI_CACHE :: ServiceName+pattern ServiceName_ELASTI_CACHE = ServiceName' "ELASTI_CACHE"++pattern ServiceName_ELB :: ServiceName+pattern ServiceName_ELB = ServiceName' "ELB"++pattern ServiceName_ES :: ServiceName+pattern ServiceName_ES = ServiceName' "ES"++pattern ServiceName_KINESIS :: ServiceName+pattern ServiceName_KINESIS = ServiceName' "KINESIS"++pattern ServiceName_LAMBDA :: ServiceName+pattern ServiceName_LAMBDA = ServiceName' "LAMBDA"++pattern ServiceName_NAT_GATEWAY :: ServiceName+pattern ServiceName_NAT_GATEWAY = ServiceName' "NAT_GATEWAY"++pattern ServiceName_NETWORK_ELB :: ServiceName+pattern ServiceName_NETWORK_ELB = ServiceName' "NETWORK_ELB"++pattern ServiceName_RDS :: ServiceName+pattern ServiceName_RDS = ServiceName' "RDS"++pattern ServiceName_REDSHIFT :: ServiceName+pattern ServiceName_REDSHIFT = ServiceName' "REDSHIFT"++pattern ServiceName_ROUTE_53 :: ServiceName+pattern ServiceName_ROUTE_53 = ServiceName' "ROUTE_53"++pattern ServiceName_S3 :: ServiceName+pattern ServiceName_S3 = ServiceName' "S3"++pattern ServiceName_SAGE_MAKER :: ServiceName+pattern ServiceName_SAGE_MAKER = ServiceName' "SAGE_MAKER"++pattern ServiceName_SNS :: ServiceName+pattern ServiceName_SNS = ServiceName' "SNS"++pattern ServiceName_SQS :: ServiceName+pattern ServiceName_SQS = ServiceName' "SQS"++pattern ServiceName_STEP_FUNCTIONS :: ServiceName+pattern ServiceName_STEP_FUNCTIONS = ServiceName' "STEP_FUNCTIONS"++pattern ServiceName_SWF :: ServiceName+pattern ServiceName_SWF = ServiceName' "SWF"++{-# COMPLETE+ ServiceName_API_GATEWAY,+ ServiceName_APPLICATION_ELB,+ ServiceName_AUTO_SCALING_GROUP,+ ServiceName_CLOUD_FRONT,+ ServiceName_DYNAMO_DB,+ ServiceName_EC2,+ ServiceName_ECS,+ ServiceName_EKS,+ ServiceName_ELASTIC_BEANSTALK,+ ServiceName_ELASTI_CACHE,+ ServiceName_ELB,+ ServiceName_ES,+ ServiceName_KINESIS,+ ServiceName_LAMBDA,+ ServiceName_NAT_GATEWAY,+ ServiceName_NETWORK_ELB,+ ServiceName_RDS,+ ServiceName_REDSHIFT,+ ServiceName_ROUTE_53,+ ServiceName_S3,+ ServiceName_SAGE_MAKER,+ ServiceName_SNS,+ ServiceName_SQS,+ ServiceName_STEP_FUNCTIONS,+ ServiceName_SWF,+ ServiceName'+ #-}
+ gen/Amazonka/DevOpsGuru/Types/ServiceResourceCost.hs view
@@ -0,0 +1,152 @@+{-# 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.DevOpsGuru.Types.ServiceResourceCost+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.ServiceResourceCost where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.CostEstimationServiceResourceState+import qualified Amazonka.Prelude as Prelude++-- | An object that contains information about the estimated monthly cost to+-- analyze an Amazon Web Services resource. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/cost-estimate.html Estimate your Amazon DevOps Guru costs>+-- and+-- <http://aws.amazon.com/devops-guru/pricing/ Amazon DevOps Guru pricing>.+--+-- /See:/ 'newServiceResourceCost' smart constructor.+data ServiceResourceCost = ServiceResourceCost'+ { -- | The total estimated monthly cost to analyze the active resources for+ -- this resource.+ cost :: Prelude.Maybe Prelude.Double,+ -- | The number of active resources analyzed for this service to create a+ -- monthly cost estimate.+ count :: Prelude.Maybe Prelude.Int,+ -- | The state of the resource. The resource is @ACTIVE@ if it produces+ -- metrics, events, or logs within an hour, otherwise it is @INACTIVE@. You+ -- pay for the number of active Amazon Web Services resource hours analyzed+ -- for each resource. Inactive resources are not charged.+ state :: Prelude.Maybe CostEstimationServiceResourceState,+ -- | The type of the Amazon Web Services resource.+ type' :: Prelude.Maybe Prelude.Text,+ -- | The price per hour to analyze the resources in the service. For more+ -- information, see+ -- <https://docs.aws.amazon.com/devops-guru/latest/userguide/cost-estimate.html Estimate your Amazon DevOps Guru costs>+ -- and+ -- <http://aws.amazon.com/devops-guru/pricing/ Amazon DevOps Guru pricing>.+ unitCost :: Prelude.Maybe Prelude.Double+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ServiceResourceCost' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cost', 'serviceResourceCost_cost' - The total estimated monthly cost to analyze the active resources for+-- this resource.+--+-- 'count', 'serviceResourceCost_count' - The number of active resources analyzed for this service to create a+-- monthly cost estimate.+--+-- 'state', 'serviceResourceCost_state' - The state of the resource. The resource is @ACTIVE@ if it produces+-- metrics, events, or logs within an hour, otherwise it is @INACTIVE@. You+-- pay for the number of active Amazon Web Services resource hours analyzed+-- for each resource. Inactive resources are not charged.+--+-- 'type'', 'serviceResourceCost_type' - The type of the Amazon Web Services resource.+--+-- 'unitCost', 'serviceResourceCost_unitCost' - The price per hour to analyze the resources in the service. For more+-- information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/cost-estimate.html Estimate your Amazon DevOps Guru costs>+-- and+-- <http://aws.amazon.com/devops-guru/pricing/ Amazon DevOps Guru pricing>.+newServiceResourceCost ::+ ServiceResourceCost+newServiceResourceCost =+ ServiceResourceCost'+ { cost = Prelude.Nothing,+ count = Prelude.Nothing,+ state = Prelude.Nothing,+ type' = Prelude.Nothing,+ unitCost = Prelude.Nothing+ }++-- | The total estimated monthly cost to analyze the active resources for+-- this resource.+serviceResourceCost_cost :: Lens.Lens' ServiceResourceCost (Prelude.Maybe Prelude.Double)+serviceResourceCost_cost = Lens.lens (\ServiceResourceCost' {cost} -> cost) (\s@ServiceResourceCost' {} a -> s {cost = a} :: ServiceResourceCost)++-- | The number of active resources analyzed for this service to create a+-- monthly cost estimate.+serviceResourceCost_count :: Lens.Lens' ServiceResourceCost (Prelude.Maybe Prelude.Int)+serviceResourceCost_count = Lens.lens (\ServiceResourceCost' {count} -> count) (\s@ServiceResourceCost' {} a -> s {count = a} :: ServiceResourceCost)++-- | The state of the resource. The resource is @ACTIVE@ if it produces+-- metrics, events, or logs within an hour, otherwise it is @INACTIVE@. You+-- pay for the number of active Amazon Web Services resource hours analyzed+-- for each resource. Inactive resources are not charged.+serviceResourceCost_state :: Lens.Lens' ServiceResourceCost (Prelude.Maybe CostEstimationServiceResourceState)+serviceResourceCost_state = Lens.lens (\ServiceResourceCost' {state} -> state) (\s@ServiceResourceCost' {} a -> s {state = a} :: ServiceResourceCost)++-- | The type of the Amazon Web Services resource.+serviceResourceCost_type :: Lens.Lens' ServiceResourceCost (Prelude.Maybe Prelude.Text)+serviceResourceCost_type = Lens.lens (\ServiceResourceCost' {type'} -> type') (\s@ServiceResourceCost' {} a -> s {type' = a} :: ServiceResourceCost)++-- | The price per hour to analyze the resources in the service. For more+-- information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/cost-estimate.html Estimate your Amazon DevOps Guru costs>+-- and+-- <http://aws.amazon.com/devops-guru/pricing/ Amazon DevOps Guru pricing>.+serviceResourceCost_unitCost :: Lens.Lens' ServiceResourceCost (Prelude.Maybe Prelude.Double)+serviceResourceCost_unitCost = Lens.lens (\ServiceResourceCost' {unitCost} -> unitCost) (\s@ServiceResourceCost' {} a -> s {unitCost = a} :: ServiceResourceCost)++instance Data.FromJSON ServiceResourceCost where+ parseJSON =+ Data.withObject+ "ServiceResourceCost"+ ( \x ->+ ServiceResourceCost'+ Prelude.<$> (x Data..:? "Cost")+ Prelude.<*> (x Data..:? "Count")+ Prelude.<*> (x Data..:? "State")+ Prelude.<*> (x Data..:? "Type")+ Prelude.<*> (x Data..:? "UnitCost")+ )++instance Prelude.Hashable ServiceResourceCost where+ hashWithSalt _salt ServiceResourceCost' {..} =+ _salt+ `Prelude.hashWithSalt` cost+ `Prelude.hashWithSalt` count+ `Prelude.hashWithSalt` state+ `Prelude.hashWithSalt` type'+ `Prelude.hashWithSalt` unitCost++instance Prelude.NFData ServiceResourceCost where+ rnf ServiceResourceCost' {..} =+ Prelude.rnf cost+ `Prelude.seq` Prelude.rnf count+ `Prelude.seq` Prelude.rnf state+ `Prelude.seq` Prelude.rnf type'+ `Prelude.seq` Prelude.rnf unitCost
+ gen/Amazonka/DevOpsGuru/Types/SnsChannelConfig.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.DevOpsGuru.Types.SnsChannelConfig+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.SnsChannelConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Contains the Amazon Resource Name (ARN) of an Amazon Simple Notification+-- Service topic.+--+-- If you use an Amazon SNS topic in another account, you must attach a+-- policy to it that grants DevOps Guru permission to it notifications.+-- DevOps Guru adds the required policy on your behalf to send+-- notifications using Amazon SNS in your account. DevOps Guru only+-- supports standard SNS topics. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html Permissions for cross account Amazon SNS topics>.+--+-- If you use an Amazon SNS topic in another account, you must attach a+-- policy to it that grants DevOps Guru permission to it notifications.+-- DevOps Guru adds the required policy on your behalf to send+-- notifications using Amazon SNS in your account. For more information,+-- see Permissions for cross account Amazon SNS topics.+--+-- If you use an Amazon SNS topic that is encrypted by an Amazon Web+-- Services Key Management Service customer-managed key (CMK), then you+-- must add permissions to the CMK. For more information, see+-- <https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html Permissions for Amazon Web Services KMS–encrypted Amazon SNS topics>.+--+-- /See:/ 'newSnsChannelConfig' smart constructor.+data SnsChannelConfig = SnsChannelConfig'+ { -- | The Amazon Resource Name (ARN) of an Amazon Simple Notification Service+ -- topic.+ topicArn :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SnsChannelConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'topicArn', 'snsChannelConfig_topicArn' - The Amazon Resource Name (ARN) of an Amazon Simple Notification Service+-- topic.+newSnsChannelConfig ::+ SnsChannelConfig+newSnsChannelConfig =+ SnsChannelConfig' {topicArn = Prelude.Nothing}++-- | The Amazon Resource Name (ARN) of an Amazon Simple Notification Service+-- topic.+snsChannelConfig_topicArn :: Lens.Lens' SnsChannelConfig (Prelude.Maybe Prelude.Text)+snsChannelConfig_topicArn = Lens.lens (\SnsChannelConfig' {topicArn} -> topicArn) (\s@SnsChannelConfig' {} a -> s {topicArn = a} :: SnsChannelConfig)++instance Data.FromJSON SnsChannelConfig where+ parseJSON =+ Data.withObject+ "SnsChannelConfig"+ ( \x ->+ SnsChannelConfig'+ Prelude.<$> (x Data..:? "TopicArn")+ )++instance Prelude.Hashable SnsChannelConfig where+ hashWithSalt _salt SnsChannelConfig' {..} =+ _salt `Prelude.hashWithSalt` topicArn++instance Prelude.NFData SnsChannelConfig where+ rnf SnsChannelConfig' {..} = Prelude.rnf topicArn++instance Data.ToJSON SnsChannelConfig where+ toJSON SnsChannelConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [("TopicArn" Data..=) Prelude.<$> topicArn]+ )
+ gen/Amazonka/DevOpsGuru/Types/StartTimeRange.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.DevOpsGuru.Types.StartTimeRange+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.StartTimeRange 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 time range used to specify when the behavior of an insight or anomaly+-- started.+--+-- /See:/ 'newStartTimeRange' smart constructor.+data StartTimeRange = StartTimeRange'+ { -- | The start time of the time range.+ fromTime :: Prelude.Maybe Data.POSIX,+ -- | The end time of the time range.+ toTime :: Prelude.Maybe Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartTimeRange' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fromTime', 'startTimeRange_fromTime' - The start time of the time range.+--+-- 'toTime', 'startTimeRange_toTime' - The end time of the time range.+newStartTimeRange ::+ StartTimeRange+newStartTimeRange =+ StartTimeRange'+ { fromTime = Prelude.Nothing,+ toTime = Prelude.Nothing+ }++-- | The start time of the time range.+startTimeRange_fromTime :: Lens.Lens' StartTimeRange (Prelude.Maybe Prelude.UTCTime)+startTimeRange_fromTime = Lens.lens (\StartTimeRange' {fromTime} -> fromTime) (\s@StartTimeRange' {} a -> s {fromTime = a} :: StartTimeRange) Prelude.. Lens.mapping Data._Time++-- | The end time of the time range.+startTimeRange_toTime :: Lens.Lens' StartTimeRange (Prelude.Maybe Prelude.UTCTime)+startTimeRange_toTime = Lens.lens (\StartTimeRange' {toTime} -> toTime) (\s@StartTimeRange' {} a -> s {toTime = a} :: StartTimeRange) Prelude.. Lens.mapping Data._Time++instance Prelude.Hashable StartTimeRange where+ hashWithSalt _salt StartTimeRange' {..} =+ _salt+ `Prelude.hashWithSalt` fromTime+ `Prelude.hashWithSalt` toTime++instance Prelude.NFData StartTimeRange where+ rnf StartTimeRange' {..} =+ Prelude.rnf fromTime+ `Prelude.seq` Prelude.rnf toTime++instance Data.ToJSON StartTimeRange where+ toJSON StartTimeRange' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("FromTime" Data..=) Prelude.<$> fromTime,+ ("ToTime" Data..=) Prelude.<$> toTime+ ]+ )
+ gen/Amazonka/DevOpsGuru/Types/TagCollection.hs view
@@ -0,0 +1,191 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.Types.TagCollection+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.TagCollection 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 collection of Amazon Web Services tags.+--+-- Tags help you identify and organize your Amazon Web Services resources.+-- Many Amazon Web Services services support tagging, so you can assign the+-- same tag to resources from different services to indicate that the+-- resources are related. For example, you can assign the same tag to an+-- Amazon DynamoDB table resource that you assign to an Lambda function.+-- For more information about using tags, see the+-- <https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf Tagging best practices>+-- whitepaper.+--+-- Each Amazon Web Services tag has two parts.+--+-- - A tag /key/ (for example, @CostCenter@, @Environment@, @Project@, or+-- @Secret@). Tag /keys/ are case-sensitive.+--+-- - An optional field known as a tag /value/ (for example,+-- @111122223333@, @Production@, or a team name). Omitting the tag+-- /value/ is the same as using an empty string. Like tag /keys/, tag+-- /values/ are case-sensitive.+--+-- Together these are known as /key/-/value/ pairs.+--+-- The string used for a /key/ in a tag that you use to define your+-- resource coverage must begin with the prefix @Devops-guru-@. The tag+-- /key/ might be @DevOps-Guru-deployment-application@ or+-- @devops-guru-rds-application@. When you create a /key/, the case of+-- characters in the /key/ can be whatever you choose. After you create a+-- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+-- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+-- act as two different /keys/. Possible /key/\//value/ pairs in your+-- application might be @Devops-Guru-production-application\/RDS@ or+-- @Devops-Guru-production-application\/containers@.+--+-- /See:/ 'newTagCollection' smart constructor.+data TagCollection = TagCollection'+ { -- | An Amazon Web Services tag /key/ that is used to identify the Amazon Web+ -- Services resources that DevOps Guru analyzes. All Amazon Web Services+ -- resources in your account and Region tagged with this /key/ make up your+ -- DevOps Guru application and analysis boundary.+ --+ -- The string used for a /key/ in a tag that you use to define your+ -- resource coverage must begin with the prefix @Devops-guru-@. The tag+ -- /key/ might be @DevOps-Guru-deployment-application@ or+ -- @devops-guru-rds-application@. When you create a /key/, the case of+ -- characters in the /key/ can be whatever you choose. After you create a+ -- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+ -- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+ -- act as two different /keys/. Possible /key/\//value/ pairs in your+ -- application might be @Devops-Guru-production-application\/RDS@ or+ -- @Devops-Guru-production-application\/containers@.+ appBoundaryKey :: Prelude.Text,+ -- | The values in an Amazon Web Services tag collection.+ --+ -- The tag\'s /value/ is an optional field used to associate a string with+ -- the tag /key/ (for example, @111122223333@, @Production@, or a team+ -- name). The /key/ and /value/ are the tag\'s /key/ pair. Omitting the tag+ -- /value/ is the same as using an empty string. Like tag /keys/, tag+ -- /values/ are case-sensitive. You can specify a maximum of 256 characters+ -- for a tag value.+ tagValues :: [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagCollection' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'appBoundaryKey', 'tagCollection_appBoundaryKey' - An Amazon Web Services tag /key/ that is used to identify the Amazon Web+-- Services resources that DevOps Guru analyzes. All Amazon Web Services+-- resources in your account and Region tagged with this /key/ make up your+-- DevOps Guru application and analysis boundary.+--+-- The string used for a /key/ in a tag that you use to define your+-- resource coverage must begin with the prefix @Devops-guru-@. The tag+-- /key/ might be @DevOps-Guru-deployment-application@ or+-- @devops-guru-rds-application@. When you create a /key/, the case of+-- characters in the /key/ can be whatever you choose. After you create a+-- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+-- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+-- act as two different /keys/. Possible /key/\//value/ pairs in your+-- application might be @Devops-Guru-production-application\/RDS@ or+-- @Devops-Guru-production-application\/containers@.+--+-- 'tagValues', 'tagCollection_tagValues' - The values in an Amazon Web Services tag collection.+--+-- The tag\'s /value/ is an optional field used to associate a string with+-- the tag /key/ (for example, @111122223333@, @Production@, or a team+-- name). The /key/ and /value/ are the tag\'s /key/ pair. Omitting the tag+-- /value/ is the same as using an empty string. Like tag /keys/, tag+-- /values/ are case-sensitive. You can specify a maximum of 256 characters+-- for a tag value.+newTagCollection ::+ -- | 'appBoundaryKey'+ Prelude.Text ->+ TagCollection+newTagCollection pAppBoundaryKey_ =+ TagCollection'+ { appBoundaryKey = pAppBoundaryKey_,+ tagValues = Prelude.mempty+ }++-- | An Amazon Web Services tag /key/ that is used to identify the Amazon Web+-- Services resources that DevOps Guru analyzes. All Amazon Web Services+-- resources in your account and Region tagged with this /key/ make up your+-- DevOps Guru application and analysis boundary.+--+-- The string used for a /key/ in a tag that you use to define your+-- resource coverage must begin with the prefix @Devops-guru-@. The tag+-- /key/ might be @DevOps-Guru-deployment-application@ or+-- @devops-guru-rds-application@. When you create a /key/, the case of+-- characters in the /key/ can be whatever you choose. After you create a+-- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+-- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+-- act as two different /keys/. Possible /key/\//value/ pairs in your+-- application might be @Devops-Guru-production-application\/RDS@ or+-- @Devops-Guru-production-application\/containers@.+tagCollection_appBoundaryKey :: Lens.Lens' TagCollection Prelude.Text+tagCollection_appBoundaryKey = Lens.lens (\TagCollection' {appBoundaryKey} -> appBoundaryKey) (\s@TagCollection' {} a -> s {appBoundaryKey = a} :: TagCollection)++-- | The values in an Amazon Web Services tag collection.+--+-- The tag\'s /value/ is an optional field used to associate a string with+-- the tag /key/ (for example, @111122223333@, @Production@, or a team+-- name). The /key/ and /value/ are the tag\'s /key/ pair. Omitting the tag+-- /value/ is the same as using an empty string. Like tag /keys/, tag+-- /values/ are case-sensitive. You can specify a maximum of 256 characters+-- for a tag value.+tagCollection_tagValues :: Lens.Lens' TagCollection [Prelude.Text]+tagCollection_tagValues = Lens.lens (\TagCollection' {tagValues} -> tagValues) (\s@TagCollection' {} a -> s {tagValues = a} :: TagCollection) Prelude.. Lens.coerced++instance Data.FromJSON TagCollection where+ parseJSON =+ Data.withObject+ "TagCollection"+ ( \x ->+ TagCollection'+ Prelude.<$> (x Data..: "AppBoundaryKey")+ Prelude.<*> (x Data..:? "TagValues" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable TagCollection where+ hashWithSalt _salt TagCollection' {..} =+ _salt+ `Prelude.hashWithSalt` appBoundaryKey+ `Prelude.hashWithSalt` tagValues++instance Prelude.NFData TagCollection where+ rnf TagCollection' {..} =+ Prelude.rnf appBoundaryKey+ `Prelude.seq` Prelude.rnf tagValues++instance Data.ToJSON TagCollection where+ toJSON TagCollection' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("AppBoundaryKey" Data..= appBoundaryKey),+ Prelude.Just ("TagValues" Data..= tagValues)+ ]+ )
+ gen/Amazonka/DevOpsGuru/Types/TagCollectionFilter.hs view
@@ -0,0 +1,152 @@+{-# 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.DevOpsGuru.Types.TagCollectionFilter+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.TagCollectionFilter 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 collection of Amazon Web Services tags used to filter insights. This+-- is used to return insights generated from only resources that contain+-- the tags in the tag collection.+--+-- /See:/ 'newTagCollectionFilter' smart constructor.+data TagCollectionFilter = TagCollectionFilter'+ { -- | An Amazon Web Services tag /key/ that is used to identify the Amazon Web+ -- Services resources that DevOps Guru analyzes. All Amazon Web Services+ -- resources in your account and Region tagged with this /key/ make up your+ -- DevOps Guru application and analysis boundary.+ --+ -- The string used for a /key/ in a tag that you use to define your+ -- resource coverage must begin with the prefix @Devops-guru-@. The tag+ -- /key/ might be @DevOps-Guru-deployment-application@ or+ -- @devops-guru-rds-application@. When you create a /key/, the case of+ -- characters in the /key/ can be whatever you choose. After you create a+ -- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+ -- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+ -- act as two different /keys/. Possible /key/\//value/ pairs in your+ -- application might be @Devops-Guru-production-application\/RDS@ or+ -- @Devops-Guru-production-application\/containers@.+ appBoundaryKey :: Prelude.Text,+ -- | The values in an Amazon Web Services tag collection.+ --+ -- The tag\'s /value/ is an optional field used to associate a string with+ -- the tag /key/ (for example, @111122223333@, @Production@, or a team+ -- name). The /key/ and /value/ are the tag\'s /key/ pair. Omitting the tag+ -- /value/ is the same as using an empty string. Like tag /keys/, tag+ -- /values/ are case-sensitive. You can specify a maximum of 256 characters+ -- for a tag value.+ tagValues :: [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagCollectionFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'appBoundaryKey', 'tagCollectionFilter_appBoundaryKey' - An Amazon Web Services tag /key/ that is used to identify the Amazon Web+-- Services resources that DevOps Guru analyzes. All Amazon Web Services+-- resources in your account and Region tagged with this /key/ make up your+-- DevOps Guru application and analysis boundary.+--+-- The string used for a /key/ in a tag that you use to define your+-- resource coverage must begin with the prefix @Devops-guru-@. The tag+-- /key/ might be @DevOps-Guru-deployment-application@ or+-- @devops-guru-rds-application@. When you create a /key/, the case of+-- characters in the /key/ can be whatever you choose. After you create a+-- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+-- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+-- act as two different /keys/. Possible /key/\//value/ pairs in your+-- application might be @Devops-Guru-production-application\/RDS@ or+-- @Devops-Guru-production-application\/containers@.+--+-- 'tagValues', 'tagCollectionFilter_tagValues' - The values in an Amazon Web Services tag collection.+--+-- The tag\'s /value/ is an optional field used to associate a string with+-- the tag /key/ (for example, @111122223333@, @Production@, or a team+-- name). The /key/ and /value/ are the tag\'s /key/ pair. Omitting the tag+-- /value/ is the same as using an empty string. Like tag /keys/, tag+-- /values/ are case-sensitive. You can specify a maximum of 256 characters+-- for a tag value.+newTagCollectionFilter ::+ -- | 'appBoundaryKey'+ Prelude.Text ->+ TagCollectionFilter+newTagCollectionFilter pAppBoundaryKey_ =+ TagCollectionFilter'+ { appBoundaryKey =+ pAppBoundaryKey_,+ tagValues = Prelude.mempty+ }++-- | An Amazon Web Services tag /key/ that is used to identify the Amazon Web+-- Services resources that DevOps Guru analyzes. All Amazon Web Services+-- resources in your account and Region tagged with this /key/ make up your+-- DevOps Guru application and analysis boundary.+--+-- The string used for a /key/ in a tag that you use to define your+-- resource coverage must begin with the prefix @Devops-guru-@. The tag+-- /key/ might be @DevOps-Guru-deployment-application@ or+-- @devops-guru-rds-application@. When you create a /key/, the case of+-- characters in the /key/ can be whatever you choose. After you create a+-- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+-- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+-- act as two different /keys/. Possible /key/\//value/ pairs in your+-- application might be @Devops-Guru-production-application\/RDS@ or+-- @Devops-Guru-production-application\/containers@.+tagCollectionFilter_appBoundaryKey :: Lens.Lens' TagCollectionFilter Prelude.Text+tagCollectionFilter_appBoundaryKey = Lens.lens (\TagCollectionFilter' {appBoundaryKey} -> appBoundaryKey) (\s@TagCollectionFilter' {} a -> s {appBoundaryKey = a} :: TagCollectionFilter)++-- | The values in an Amazon Web Services tag collection.+--+-- The tag\'s /value/ is an optional field used to associate a string with+-- the tag /key/ (for example, @111122223333@, @Production@, or a team+-- name). The /key/ and /value/ are the tag\'s /key/ pair. Omitting the tag+-- /value/ is the same as using an empty string. Like tag /keys/, tag+-- /values/ are case-sensitive. You can specify a maximum of 256 characters+-- for a tag value.+tagCollectionFilter_tagValues :: Lens.Lens' TagCollectionFilter [Prelude.Text]+tagCollectionFilter_tagValues = Lens.lens (\TagCollectionFilter' {tagValues} -> tagValues) (\s@TagCollectionFilter' {} a -> s {tagValues = a} :: TagCollectionFilter) Prelude.. Lens.coerced++instance Data.FromJSON TagCollectionFilter where+ parseJSON =+ Data.withObject+ "TagCollectionFilter"+ ( \x ->+ TagCollectionFilter'+ Prelude.<$> (x Data..: "AppBoundaryKey")+ Prelude.<*> (x Data..:? "TagValues" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable TagCollectionFilter where+ hashWithSalt _salt TagCollectionFilter' {..} =+ _salt+ `Prelude.hashWithSalt` appBoundaryKey+ `Prelude.hashWithSalt` tagValues++instance Prelude.NFData TagCollectionFilter where+ rnf TagCollectionFilter' {..} =+ Prelude.rnf appBoundaryKey+ `Prelude.seq` Prelude.rnf tagValues
+ gen/Amazonka/DevOpsGuru/Types/TagCostEstimationResourceCollectionFilter.hs view
@@ -0,0 +1,188 @@+{-# 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.DevOpsGuru.Types.TagCostEstimationResourceCollectionFilter+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.TagCostEstimationResourceCollectionFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about a collection of Amazon Web Services resources that are+-- identified by an Amazon Web Services tag. This collection of resources+-- is used to create a monthly cost estimate for DevOps Guru to analyze+-- Amazon Web Services resources. The maximum number of tags you can+-- specify for a cost estimate is one. The estimate created is for the cost+-- to analyze the Amazon Web Services resources defined by the tag. For+-- more information, see+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html Stacks>+-- in the /Amazon Web Services CloudFormation User Guide/.+--+-- /See:/ 'newTagCostEstimationResourceCollectionFilter' smart constructor.+data TagCostEstimationResourceCollectionFilter = TagCostEstimationResourceCollectionFilter'+ { -- | An Amazon Web Services tag /key/ that is used to identify the Amazon Web+ -- Services resources that DevOps Guru analyzes. All Amazon Web Services+ -- resources in your account and Region tagged with this /key/ make up your+ -- DevOps Guru application and analysis boundary.+ --+ -- The string used for a /key/ in a tag that you use to define your+ -- resource coverage must begin with the prefix @Devops-guru-@. The tag+ -- /key/ might be @DevOps-Guru-deployment-application@ or+ -- @devops-guru-rds-application@. When you create a /key/, the case of+ -- characters in the /key/ can be whatever you choose. After you create a+ -- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+ -- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+ -- act as two different /keys/. Possible /key/\//value/ pairs in your+ -- application might be @Devops-Guru-production-application\/RDS@ or+ -- @Devops-Guru-production-application\/containers@.+ appBoundaryKey :: Prelude.Text,+ -- | The values in an Amazon Web Services tag collection.+ --+ -- The tag\'s /value/ is an optional field used to associate a string with+ -- the tag /key/ (for example, @111122223333@, @Production@, or a team+ -- name). The /key/ and /value/ are the tag\'s /key/ pair. Omitting the tag+ -- /value/ is the same as using an empty string. Like tag /keys/, tag+ -- /values/ are case-sensitive. You can specify a maximum of 256 characters+ -- for a tag value.+ tagValues :: Prelude.NonEmpty Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagCostEstimationResourceCollectionFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'appBoundaryKey', 'tagCostEstimationResourceCollectionFilter_appBoundaryKey' - An Amazon Web Services tag /key/ that is used to identify the Amazon Web+-- Services resources that DevOps Guru analyzes. All Amazon Web Services+-- resources in your account and Region tagged with this /key/ make up your+-- DevOps Guru application and analysis boundary.+--+-- The string used for a /key/ in a tag that you use to define your+-- resource coverage must begin with the prefix @Devops-guru-@. The tag+-- /key/ might be @DevOps-Guru-deployment-application@ or+-- @devops-guru-rds-application@. When you create a /key/, the case of+-- characters in the /key/ can be whatever you choose. After you create a+-- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+-- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+-- act as two different /keys/. Possible /key/\//value/ pairs in your+-- application might be @Devops-Guru-production-application\/RDS@ or+-- @Devops-Guru-production-application\/containers@.+--+-- 'tagValues', 'tagCostEstimationResourceCollectionFilter_tagValues' - The values in an Amazon Web Services tag collection.+--+-- The tag\'s /value/ is an optional field used to associate a string with+-- the tag /key/ (for example, @111122223333@, @Production@, or a team+-- name). The /key/ and /value/ are the tag\'s /key/ pair. Omitting the tag+-- /value/ is the same as using an empty string. Like tag /keys/, tag+-- /values/ are case-sensitive. You can specify a maximum of 256 characters+-- for a tag value.+newTagCostEstimationResourceCollectionFilter ::+ -- | 'appBoundaryKey'+ Prelude.Text ->+ -- | 'tagValues'+ Prelude.NonEmpty Prelude.Text ->+ TagCostEstimationResourceCollectionFilter+newTagCostEstimationResourceCollectionFilter+ pAppBoundaryKey_+ pTagValues_ =+ TagCostEstimationResourceCollectionFilter'+ { appBoundaryKey =+ pAppBoundaryKey_,+ tagValues =+ Lens.coerced+ Lens.# pTagValues_+ }++-- | An Amazon Web Services tag /key/ that is used to identify the Amazon Web+-- Services resources that DevOps Guru analyzes. All Amazon Web Services+-- resources in your account and Region tagged with this /key/ make up your+-- DevOps Guru application and analysis boundary.+--+-- The string used for a /key/ in a tag that you use to define your+-- resource coverage must begin with the prefix @Devops-guru-@. The tag+-- /key/ might be @DevOps-Guru-deployment-application@ or+-- @devops-guru-rds-application@. When you create a /key/, the case of+-- characters in the /key/ can be whatever you choose. After you create a+-- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+-- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+-- act as two different /keys/. Possible /key/\//value/ pairs in your+-- application might be @Devops-Guru-production-application\/RDS@ or+-- @Devops-Guru-production-application\/containers@.+tagCostEstimationResourceCollectionFilter_appBoundaryKey :: Lens.Lens' TagCostEstimationResourceCollectionFilter Prelude.Text+tagCostEstimationResourceCollectionFilter_appBoundaryKey = Lens.lens (\TagCostEstimationResourceCollectionFilter' {appBoundaryKey} -> appBoundaryKey) (\s@TagCostEstimationResourceCollectionFilter' {} a -> s {appBoundaryKey = a} :: TagCostEstimationResourceCollectionFilter)++-- | The values in an Amazon Web Services tag collection.+--+-- The tag\'s /value/ is an optional field used to associate a string with+-- the tag /key/ (for example, @111122223333@, @Production@, or a team+-- name). The /key/ and /value/ are the tag\'s /key/ pair. Omitting the tag+-- /value/ is the same as using an empty string. Like tag /keys/, tag+-- /values/ are case-sensitive. You can specify a maximum of 256 characters+-- for a tag value.+tagCostEstimationResourceCollectionFilter_tagValues :: Lens.Lens' TagCostEstimationResourceCollectionFilter (Prelude.NonEmpty Prelude.Text)+tagCostEstimationResourceCollectionFilter_tagValues = Lens.lens (\TagCostEstimationResourceCollectionFilter' {tagValues} -> tagValues) (\s@TagCostEstimationResourceCollectionFilter' {} a -> s {tagValues = a} :: TagCostEstimationResourceCollectionFilter) Prelude.. Lens.coerced++instance+ Data.FromJSON+ TagCostEstimationResourceCollectionFilter+ where+ parseJSON =+ Data.withObject+ "TagCostEstimationResourceCollectionFilter"+ ( \x ->+ TagCostEstimationResourceCollectionFilter'+ Prelude.<$> (x Data..: "AppBoundaryKey")+ Prelude.<*> (x Data..: "TagValues")+ )++instance+ Prelude.Hashable+ TagCostEstimationResourceCollectionFilter+ where+ hashWithSalt+ _salt+ TagCostEstimationResourceCollectionFilter' {..} =+ _salt+ `Prelude.hashWithSalt` appBoundaryKey+ `Prelude.hashWithSalt` tagValues++instance+ Prelude.NFData+ TagCostEstimationResourceCollectionFilter+ where+ rnf TagCostEstimationResourceCollectionFilter' {..} =+ Prelude.rnf appBoundaryKey+ `Prelude.seq` Prelude.rnf tagValues++instance+ Data.ToJSON+ TagCostEstimationResourceCollectionFilter+ where+ toJSON TagCostEstimationResourceCollectionFilter' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("AppBoundaryKey" Data..= appBoundaryKey),+ Prelude.Just ("TagValues" Data..= tagValues)+ ]+ )
+ gen/Amazonka/DevOpsGuru/Types/TagHealth.hs view
@@ -0,0 +1,185 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.Types.TagHealth+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.TagHealth where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.InsightHealth+import qualified Amazonka.Prelude as Prelude++-- | Information about the health of Amazon Web Services resources in your+-- account that are specified by an Amazon Web Services tag /key/.+--+-- /See:/ 'newTagHealth' smart constructor.+data TagHealth = TagHealth'+ { -- | Number of resources that DevOps Guru is monitoring in your account that+ -- are specified by an Amazon Web Services tag.+ analyzedResourceCount :: Prelude.Maybe Prelude.Integer,+ -- | An Amazon Web Services tag /key/ that is used to identify the Amazon Web+ -- Services resources that DevOps Guru analyzes. All Amazon Web Services+ -- resources in your account and Region tagged with this /key/ make up your+ -- DevOps Guru application and analysis boundary.+ --+ -- The string used for a /key/ in a tag that you use to define your+ -- resource coverage must begin with the prefix @Devops-guru-@. The tag+ -- /key/ might be @DevOps-Guru-deployment-application@ or+ -- @devops-guru-rds-application@. When you create a /key/, the case of+ -- characters in the /key/ can be whatever you choose. After you create a+ -- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+ -- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+ -- act as two different /keys/. Possible /key/\//value/ pairs in your+ -- application might be @Devops-Guru-production-application\/RDS@ or+ -- @Devops-Guru-production-application\/containers@.+ appBoundaryKey :: Prelude.Maybe Prelude.Text,+ -- | Information about the health of the Amazon Web Services resources in+ -- your account that are specified by an Amazon Web Services tag, including+ -- the number of open proactive, open reactive insights, and the Mean Time+ -- to Recover (MTTR) of closed insights.+ insight :: Prelude.Maybe InsightHealth,+ -- | The value in an Amazon Web Services tag.+ --+ -- The tag\'s /value/ is an optional field used to associate a string with+ -- the tag /key/ (for example, @111122223333@, @Production@, or a team+ -- name). The /key/ and /value/ are the tag\'s /key/ pair. Omitting the tag+ -- /value/ is the same as using an empty string. Like tag /keys/, tag+ -- /values/ are case-sensitive. You can specify a maximum of 256 characters+ -- for a tag value.+ tagValue :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagHealth' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'analyzedResourceCount', 'tagHealth_analyzedResourceCount' - Number of resources that DevOps Guru is monitoring in your account that+-- are specified by an Amazon Web Services tag.+--+-- 'appBoundaryKey', 'tagHealth_appBoundaryKey' - An Amazon Web Services tag /key/ that is used to identify the Amazon Web+-- Services resources that DevOps Guru analyzes. All Amazon Web Services+-- resources in your account and Region tagged with this /key/ make up your+-- DevOps Guru application and analysis boundary.+--+-- The string used for a /key/ in a tag that you use to define your+-- resource coverage must begin with the prefix @Devops-guru-@. The tag+-- /key/ might be @DevOps-Guru-deployment-application@ or+-- @devops-guru-rds-application@. When you create a /key/, the case of+-- characters in the /key/ can be whatever you choose. After you create a+-- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+-- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+-- act as two different /keys/. Possible /key/\//value/ pairs in your+-- application might be @Devops-Guru-production-application\/RDS@ or+-- @Devops-Guru-production-application\/containers@.+--+-- 'insight', 'tagHealth_insight' - Information about the health of the Amazon Web Services resources in+-- your account that are specified by an Amazon Web Services tag, including+-- the number of open proactive, open reactive insights, and the Mean Time+-- to Recover (MTTR) of closed insights.+--+-- 'tagValue', 'tagHealth_tagValue' - The value in an Amazon Web Services tag.+--+-- The tag\'s /value/ is an optional field used to associate a string with+-- the tag /key/ (for example, @111122223333@, @Production@, or a team+-- name). The /key/ and /value/ are the tag\'s /key/ pair. Omitting the tag+-- /value/ is the same as using an empty string. Like tag /keys/, tag+-- /values/ are case-sensitive. You can specify a maximum of 256 characters+-- for a tag value.+newTagHealth ::+ TagHealth+newTagHealth =+ TagHealth'+ { analyzedResourceCount = Prelude.Nothing,+ appBoundaryKey = Prelude.Nothing,+ insight = Prelude.Nothing,+ tagValue = Prelude.Nothing+ }++-- | Number of resources that DevOps Guru is monitoring in your account that+-- are specified by an Amazon Web Services tag.+tagHealth_analyzedResourceCount :: Lens.Lens' TagHealth (Prelude.Maybe Prelude.Integer)+tagHealth_analyzedResourceCount = Lens.lens (\TagHealth' {analyzedResourceCount} -> analyzedResourceCount) (\s@TagHealth' {} a -> s {analyzedResourceCount = a} :: TagHealth)++-- | An Amazon Web Services tag /key/ that is used to identify the Amazon Web+-- Services resources that DevOps Guru analyzes. All Amazon Web Services+-- resources in your account and Region tagged with this /key/ make up your+-- DevOps Guru application and analysis boundary.+--+-- The string used for a /key/ in a tag that you use to define your+-- resource coverage must begin with the prefix @Devops-guru-@. The tag+-- /key/ might be @DevOps-Guru-deployment-application@ or+-- @devops-guru-rds-application@. When you create a /key/, the case of+-- characters in the /key/ can be whatever you choose. After you create a+-- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+-- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+-- act as two different /keys/. Possible /key/\//value/ pairs in your+-- application might be @Devops-Guru-production-application\/RDS@ or+-- @Devops-Guru-production-application\/containers@.+tagHealth_appBoundaryKey :: Lens.Lens' TagHealth (Prelude.Maybe Prelude.Text)+tagHealth_appBoundaryKey = Lens.lens (\TagHealth' {appBoundaryKey} -> appBoundaryKey) (\s@TagHealth' {} a -> s {appBoundaryKey = a} :: TagHealth)++-- | Information about the health of the Amazon Web Services resources in+-- your account that are specified by an Amazon Web Services tag, including+-- the number of open proactive, open reactive insights, and the Mean Time+-- to Recover (MTTR) of closed insights.+tagHealth_insight :: Lens.Lens' TagHealth (Prelude.Maybe InsightHealth)+tagHealth_insight = Lens.lens (\TagHealth' {insight} -> insight) (\s@TagHealth' {} a -> s {insight = a} :: TagHealth)++-- | The value in an Amazon Web Services tag.+--+-- The tag\'s /value/ is an optional field used to associate a string with+-- the tag /key/ (for example, @111122223333@, @Production@, or a team+-- name). The /key/ and /value/ are the tag\'s /key/ pair. Omitting the tag+-- /value/ is the same as using an empty string. Like tag /keys/, tag+-- /values/ are case-sensitive. You can specify a maximum of 256 characters+-- for a tag value.+tagHealth_tagValue :: Lens.Lens' TagHealth (Prelude.Maybe Prelude.Text)+tagHealth_tagValue = Lens.lens (\TagHealth' {tagValue} -> tagValue) (\s@TagHealth' {} a -> s {tagValue = a} :: TagHealth)++instance Data.FromJSON TagHealth where+ parseJSON =+ Data.withObject+ "TagHealth"+ ( \x ->+ TagHealth'+ Prelude.<$> (x Data..:? "AnalyzedResourceCount")+ Prelude.<*> (x Data..:? "AppBoundaryKey")+ Prelude.<*> (x Data..:? "Insight")+ Prelude.<*> (x Data..:? "TagValue")+ )++instance Prelude.Hashable TagHealth where+ hashWithSalt _salt TagHealth' {..} =+ _salt+ `Prelude.hashWithSalt` analyzedResourceCount+ `Prelude.hashWithSalt` appBoundaryKey+ `Prelude.hashWithSalt` insight+ `Prelude.hashWithSalt` tagValue++instance Prelude.NFData TagHealth where+ rnf TagHealth' {..} =+ Prelude.rnf analyzedResourceCount+ `Prelude.seq` Prelude.rnf appBoundaryKey+ `Prelude.seq` Prelude.rnf insight+ `Prelude.seq` Prelude.rnf tagValue
+ gen/Amazonka/DevOpsGuru/Types/TimestampMetricValuePair.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.DevOpsGuru.Types.TimestampMetricValuePair+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.TimestampMetricValuePair 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 pair that contains metric values at the respective timestamp.+--+-- /See:/ 'newTimestampMetricValuePair' smart constructor.+data TimestampMetricValuePair = TimestampMetricValuePair'+ { -- | Value of the anomalous metric data point at respective Timestamp.+ metricValue :: Prelude.Maybe Prelude.Double,+ -- | A @Timestamp@ that specifies the time the event occurred.+ timestamp :: Prelude.Maybe Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TimestampMetricValuePair' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metricValue', 'timestampMetricValuePair_metricValue' - Value of the anomalous metric data point at respective Timestamp.+--+-- 'timestamp', 'timestampMetricValuePair_timestamp' - A @Timestamp@ that specifies the time the event occurred.+newTimestampMetricValuePair ::+ TimestampMetricValuePair+newTimestampMetricValuePair =+ TimestampMetricValuePair'+ { metricValue =+ Prelude.Nothing,+ timestamp = Prelude.Nothing+ }++-- | Value of the anomalous metric data point at respective Timestamp.+timestampMetricValuePair_metricValue :: Lens.Lens' TimestampMetricValuePair (Prelude.Maybe Prelude.Double)+timestampMetricValuePair_metricValue = Lens.lens (\TimestampMetricValuePair' {metricValue} -> metricValue) (\s@TimestampMetricValuePair' {} a -> s {metricValue = a} :: TimestampMetricValuePair)++-- | A @Timestamp@ that specifies the time the event occurred.+timestampMetricValuePair_timestamp :: Lens.Lens' TimestampMetricValuePair (Prelude.Maybe Prelude.UTCTime)+timestampMetricValuePair_timestamp = Lens.lens (\TimestampMetricValuePair' {timestamp} -> timestamp) (\s@TimestampMetricValuePair' {} a -> s {timestamp = a} :: TimestampMetricValuePair) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON TimestampMetricValuePair where+ parseJSON =+ Data.withObject+ "TimestampMetricValuePair"+ ( \x ->+ TimestampMetricValuePair'+ Prelude.<$> (x Data..:? "MetricValue")+ Prelude.<*> (x Data..:? "Timestamp")+ )++instance Prelude.Hashable TimestampMetricValuePair where+ hashWithSalt _salt TimestampMetricValuePair' {..} =+ _salt+ `Prelude.hashWithSalt` metricValue+ `Prelude.hashWithSalt` timestamp++instance Prelude.NFData TimestampMetricValuePair where+ rnf TimestampMetricValuePair' {..} =+ Prelude.rnf metricValue+ `Prelude.seq` Prelude.rnf timestamp
+ gen/Amazonka/DevOpsGuru/Types/UpdateCloudFormationCollectionFilter.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.DevOpsGuru.Types.UpdateCloudFormationCollectionFilter+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.UpdateCloudFormationCollectionFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Contains the names of Amazon Web Services CloudFormation stacks used to+-- update a collection of stacks. You can specify up to 500 Amazon Web+-- Services CloudFormation stacks.+--+-- /See:/ 'newUpdateCloudFormationCollectionFilter' smart constructor.+data UpdateCloudFormationCollectionFilter = UpdateCloudFormationCollectionFilter'+ { -- | An array of the names of the Amazon Web Services CloudFormation stacks+ -- to update. You can specify up to 500 Amazon Web Services CloudFormation+ -- stacks.+ stackNames :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateCloudFormationCollectionFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'stackNames', 'updateCloudFormationCollectionFilter_stackNames' - An array of the names of the Amazon Web Services CloudFormation stacks+-- to update. You can specify up to 500 Amazon Web Services CloudFormation+-- stacks.+newUpdateCloudFormationCollectionFilter ::+ UpdateCloudFormationCollectionFilter+newUpdateCloudFormationCollectionFilter =+ UpdateCloudFormationCollectionFilter'+ { stackNames =+ Prelude.Nothing+ }++-- | An array of the names of the Amazon Web Services CloudFormation stacks+-- to update. You can specify up to 500 Amazon Web Services CloudFormation+-- stacks.+updateCloudFormationCollectionFilter_stackNames :: Lens.Lens' UpdateCloudFormationCollectionFilter (Prelude.Maybe [Prelude.Text])+updateCloudFormationCollectionFilter_stackNames = Lens.lens (\UpdateCloudFormationCollectionFilter' {stackNames} -> stackNames) (\s@UpdateCloudFormationCollectionFilter' {} a -> s {stackNames = a} :: UpdateCloudFormationCollectionFilter) Prelude.. Lens.mapping Lens.coerced++instance+ Prelude.Hashable+ UpdateCloudFormationCollectionFilter+ where+ hashWithSalt+ _salt+ UpdateCloudFormationCollectionFilter' {..} =+ _salt `Prelude.hashWithSalt` stackNames++instance+ Prelude.NFData+ UpdateCloudFormationCollectionFilter+ where+ rnf UpdateCloudFormationCollectionFilter' {..} =+ Prelude.rnf stackNames++instance+ Data.ToJSON+ UpdateCloudFormationCollectionFilter+ where+ toJSON UpdateCloudFormationCollectionFilter' {..} =+ Data.object+ ( Prelude.catMaybes+ [("StackNames" Data..=) Prelude.<$> stackNames]+ )
+ gen/Amazonka/DevOpsGuru/Types/UpdateResourceCollectionAction.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.DevOpsGuru.Types.UpdateResourceCollectionAction+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.UpdateResourceCollectionAction+ ( UpdateResourceCollectionAction+ ( ..,+ UpdateResourceCollectionAction_ADD,+ UpdateResourceCollectionAction_REMOVE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype UpdateResourceCollectionAction = UpdateResourceCollectionAction'+ { fromUpdateResourceCollectionAction ::+ 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 UpdateResourceCollectionAction_ADD :: UpdateResourceCollectionAction+pattern UpdateResourceCollectionAction_ADD = UpdateResourceCollectionAction' "ADD"++pattern UpdateResourceCollectionAction_REMOVE :: UpdateResourceCollectionAction+pattern UpdateResourceCollectionAction_REMOVE = UpdateResourceCollectionAction' "REMOVE"++{-# COMPLETE+ UpdateResourceCollectionAction_ADD,+ UpdateResourceCollectionAction_REMOVE,+ UpdateResourceCollectionAction'+ #-}
+ gen/Amazonka/DevOpsGuru/Types/UpdateResourceCollectionFilter.hs view
@@ -0,0 +1,198 @@+{-# 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.DevOpsGuru.Types.UpdateResourceCollectionFilter+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.UpdateResourceCollectionFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.UpdateCloudFormationCollectionFilter+import Amazonka.DevOpsGuru.Types.UpdateTagCollectionFilter+import qualified Amazonka.Prelude as Prelude++-- | Contains information used to update a collection of Amazon Web Services+-- resources.+--+-- /See:/ 'newUpdateResourceCollectionFilter' smart constructor.+data UpdateResourceCollectionFilter = UpdateResourceCollectionFilter'+ { -- | A collection of Amazon Web Services CloudFormation stacks. You can+ -- specify up to 500 Amazon Web Services CloudFormation stacks.+ cloudFormation :: Prelude.Maybe UpdateCloudFormationCollectionFilter,+ -- | The updated Amazon Web Services tags used to filter the resources in the+ -- resource collection.+ --+ -- Tags help you identify and organize your Amazon Web Services resources.+ -- Many Amazon Web Services services support tagging, so you can assign the+ -- same tag to resources from different services to indicate that the+ -- resources are related. For example, you can assign the same tag to an+ -- Amazon DynamoDB table resource that you assign to an Lambda function.+ -- For more information about using tags, see the+ -- <https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf Tagging best practices>+ -- whitepaper.+ --+ -- Each Amazon Web Services tag has two parts.+ --+ -- - A tag /key/ (for example, @CostCenter@, @Environment@, @Project@, or+ -- @Secret@). Tag /keys/ are case-sensitive.+ --+ -- - An optional field known as a tag /value/ (for example,+ -- @111122223333@, @Production@, or a team name). Omitting the tag+ -- /value/ is the same as using an empty string. Like tag /keys/, tag+ -- /values/ are case-sensitive.+ --+ -- Together these are known as /key/-/value/ pairs.+ --+ -- The string used for a /key/ in a tag that you use to define your+ -- resource coverage must begin with the prefix @Devops-guru-@. The tag+ -- /key/ might be @DevOps-Guru-deployment-application@ or+ -- @devops-guru-rds-application@. When you create a /key/, the case of+ -- characters in the /key/ can be whatever you choose. After you create a+ -- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+ -- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+ -- act as two different /keys/. Possible /key/\//value/ pairs in your+ -- application might be @Devops-Guru-production-application\/RDS@ or+ -- @Devops-Guru-production-application\/containers@.+ tags :: Prelude.Maybe [UpdateTagCollectionFilter]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateResourceCollectionFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cloudFormation', 'updateResourceCollectionFilter_cloudFormation' - A collection of Amazon Web Services CloudFormation stacks. You can+-- specify up to 500 Amazon Web Services CloudFormation stacks.+--+-- 'tags', 'updateResourceCollectionFilter_tags' - The updated Amazon Web Services tags used to filter the resources in the+-- resource collection.+--+-- Tags help you identify and organize your Amazon Web Services resources.+-- Many Amazon Web Services services support tagging, so you can assign the+-- same tag to resources from different services to indicate that the+-- resources are related. For example, you can assign the same tag to an+-- Amazon DynamoDB table resource that you assign to an Lambda function.+-- For more information about using tags, see the+-- <https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf Tagging best practices>+-- whitepaper.+--+-- Each Amazon Web Services tag has two parts.+--+-- - A tag /key/ (for example, @CostCenter@, @Environment@, @Project@, or+-- @Secret@). Tag /keys/ are case-sensitive.+--+-- - An optional field known as a tag /value/ (for example,+-- @111122223333@, @Production@, or a team name). Omitting the tag+-- /value/ is the same as using an empty string. Like tag /keys/, tag+-- /values/ are case-sensitive.+--+-- Together these are known as /key/-/value/ pairs.+--+-- The string used for a /key/ in a tag that you use to define your+-- resource coverage must begin with the prefix @Devops-guru-@. The tag+-- /key/ might be @DevOps-Guru-deployment-application@ or+-- @devops-guru-rds-application@. When you create a /key/, the case of+-- characters in the /key/ can be whatever you choose. After you create a+-- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+-- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+-- act as two different /keys/. Possible /key/\//value/ pairs in your+-- application might be @Devops-Guru-production-application\/RDS@ or+-- @Devops-Guru-production-application\/containers@.+newUpdateResourceCollectionFilter ::+ UpdateResourceCollectionFilter+newUpdateResourceCollectionFilter =+ UpdateResourceCollectionFilter'+ { cloudFormation =+ Prelude.Nothing,+ tags = Prelude.Nothing+ }++-- | A collection of Amazon Web Services CloudFormation stacks. You can+-- specify up to 500 Amazon Web Services CloudFormation stacks.+updateResourceCollectionFilter_cloudFormation :: Lens.Lens' UpdateResourceCollectionFilter (Prelude.Maybe UpdateCloudFormationCollectionFilter)+updateResourceCollectionFilter_cloudFormation = Lens.lens (\UpdateResourceCollectionFilter' {cloudFormation} -> cloudFormation) (\s@UpdateResourceCollectionFilter' {} a -> s {cloudFormation = a} :: UpdateResourceCollectionFilter)++-- | The updated Amazon Web Services tags used to filter the resources in the+-- resource collection.+--+-- Tags help you identify and organize your Amazon Web Services resources.+-- Many Amazon Web Services services support tagging, so you can assign the+-- same tag to resources from different services to indicate that the+-- resources are related. For example, you can assign the same tag to an+-- Amazon DynamoDB table resource that you assign to an Lambda function.+-- For more information about using tags, see the+-- <https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf Tagging best practices>+-- whitepaper.+--+-- Each Amazon Web Services tag has two parts.+--+-- - A tag /key/ (for example, @CostCenter@, @Environment@, @Project@, or+-- @Secret@). Tag /keys/ are case-sensitive.+--+-- - An optional field known as a tag /value/ (for example,+-- @111122223333@, @Production@, or a team name). Omitting the tag+-- /value/ is the same as using an empty string. Like tag /keys/, tag+-- /values/ are case-sensitive.+--+-- Together these are known as /key/-/value/ pairs.+--+-- The string used for a /key/ in a tag that you use to define your+-- resource coverage must begin with the prefix @Devops-guru-@. The tag+-- /key/ might be @DevOps-Guru-deployment-application@ or+-- @devops-guru-rds-application@. When you create a /key/, the case of+-- characters in the /key/ can be whatever you choose. After you create a+-- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+-- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+-- act as two different /keys/. Possible /key/\//value/ pairs in your+-- application might be @Devops-Guru-production-application\/RDS@ or+-- @Devops-Guru-production-application\/containers@.+updateResourceCollectionFilter_tags :: Lens.Lens' UpdateResourceCollectionFilter (Prelude.Maybe [UpdateTagCollectionFilter])+updateResourceCollectionFilter_tags = Lens.lens (\UpdateResourceCollectionFilter' {tags} -> tags) (\s@UpdateResourceCollectionFilter' {} a -> s {tags = a} :: UpdateResourceCollectionFilter) Prelude.. Lens.mapping Lens.coerced++instance+ Prelude.Hashable+ UpdateResourceCollectionFilter+ where+ hashWithSalt+ _salt+ UpdateResourceCollectionFilter' {..} =+ _salt+ `Prelude.hashWithSalt` cloudFormation+ `Prelude.hashWithSalt` tags++instance+ Prelude.NFData+ UpdateResourceCollectionFilter+ where+ rnf UpdateResourceCollectionFilter' {..} =+ Prelude.rnf cloudFormation+ `Prelude.seq` Prelude.rnf tags++instance Data.ToJSON UpdateResourceCollectionFilter where+ toJSON UpdateResourceCollectionFilter' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CloudFormation" Data..=)+ Prelude.<$> cloudFormation,+ ("Tags" Data..=) Prelude.<$> tags+ ]+ )
+ gen/Amazonka/DevOpsGuru/Types/UpdateServiceIntegrationConfig.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.DevOpsGuru.Types.UpdateServiceIntegrationConfig+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.UpdateServiceIntegrationConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types.LogsAnomalyDetectionIntegrationConfig+import Amazonka.DevOpsGuru.Types.OpsCenterIntegrationConfig+import qualified Amazonka.Prelude as Prelude++-- | Information about updating the integration status of an Amazon Web+-- Services service, such as Amazon Web Services Systems Manager, with+-- DevOps Guru.+--+-- /See:/ 'newUpdateServiceIntegrationConfig' smart constructor.+data UpdateServiceIntegrationConfig = UpdateServiceIntegrationConfig'+ { -- | Information about whether DevOps Guru is configured to perform log+ -- anomaly detection on Amazon CloudWatch log groups.+ logsAnomalyDetection :: Prelude.Maybe LogsAnomalyDetectionIntegrationConfig,+ opsCenter :: Prelude.Maybe OpsCenterIntegrationConfig+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateServiceIntegrationConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'logsAnomalyDetection', 'updateServiceIntegrationConfig_logsAnomalyDetection' - Information about whether DevOps Guru is configured to perform log+-- anomaly detection on Amazon CloudWatch log groups.+--+-- 'opsCenter', 'updateServiceIntegrationConfig_opsCenter' - Undocumented member.+newUpdateServiceIntegrationConfig ::+ UpdateServiceIntegrationConfig+newUpdateServiceIntegrationConfig =+ UpdateServiceIntegrationConfig'+ { logsAnomalyDetection =+ Prelude.Nothing,+ opsCenter = Prelude.Nothing+ }++-- | Information about whether DevOps Guru is configured to perform log+-- anomaly detection on Amazon CloudWatch log groups.+updateServiceIntegrationConfig_logsAnomalyDetection :: Lens.Lens' UpdateServiceIntegrationConfig (Prelude.Maybe LogsAnomalyDetectionIntegrationConfig)+updateServiceIntegrationConfig_logsAnomalyDetection = Lens.lens (\UpdateServiceIntegrationConfig' {logsAnomalyDetection} -> logsAnomalyDetection) (\s@UpdateServiceIntegrationConfig' {} a -> s {logsAnomalyDetection = a} :: UpdateServiceIntegrationConfig)++-- | Undocumented member.+updateServiceIntegrationConfig_opsCenter :: Lens.Lens' UpdateServiceIntegrationConfig (Prelude.Maybe OpsCenterIntegrationConfig)+updateServiceIntegrationConfig_opsCenter = Lens.lens (\UpdateServiceIntegrationConfig' {opsCenter} -> opsCenter) (\s@UpdateServiceIntegrationConfig' {} a -> s {opsCenter = a} :: UpdateServiceIntegrationConfig)++instance+ Prelude.Hashable+ UpdateServiceIntegrationConfig+ where+ hashWithSalt+ _salt+ UpdateServiceIntegrationConfig' {..} =+ _salt+ `Prelude.hashWithSalt` logsAnomalyDetection+ `Prelude.hashWithSalt` opsCenter++instance+ Prelude.NFData+ UpdateServiceIntegrationConfig+ where+ rnf UpdateServiceIntegrationConfig' {..} =+ Prelude.rnf logsAnomalyDetection+ `Prelude.seq` Prelude.rnf opsCenter++instance Data.ToJSON UpdateServiceIntegrationConfig where+ toJSON UpdateServiceIntegrationConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("LogsAnomalyDetection" Data..=)+ Prelude.<$> logsAnomalyDetection,+ ("OpsCenter" Data..=) Prelude.<$> opsCenter+ ]+ )
+ gen/Amazonka/DevOpsGuru/Types/UpdateTagCollectionFilter.hs view
@@ -0,0 +1,151 @@+{-# 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.DevOpsGuru.Types.UpdateTagCollectionFilter+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DevOpsGuru.Types.UpdateTagCollectionFilter 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 new collection of Amazon Web Services resources that are defined by an+-- Amazon Web Services tag or tag /key/\//value/ pair.+--+-- /See:/ 'newUpdateTagCollectionFilter' smart constructor.+data UpdateTagCollectionFilter = UpdateTagCollectionFilter'+ { -- | An Amazon Web Services tag /key/ that is used to identify the Amazon Web+ -- Services resources that DevOps Guru analyzes. All Amazon Web Services+ -- resources in your account and Region tagged with this /key/ make up your+ -- DevOps Guru application and analysis boundary.+ --+ -- The string used for a /key/ in a tag that you use to define your+ -- resource coverage must begin with the prefix @Devops-guru-@. The tag+ -- /key/ might be @DevOps-Guru-deployment-application@ or+ -- @devops-guru-rds-application@. When you create a /key/, the case of+ -- characters in the /key/ can be whatever you choose. After you create a+ -- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+ -- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+ -- act as two different /keys/. Possible /key/\//value/ pairs in your+ -- application might be @Devops-Guru-production-application\/RDS@ or+ -- @Devops-Guru-production-application\/containers@.+ appBoundaryKey :: Prelude.Text,+ -- | The values in an Amazon Web Services tag collection.+ --+ -- The tag\'s /value/ is an optional field used to associate a string with+ -- the tag /key/ (for example, @111122223333@, @Production@, or a team+ -- name). The /key/ and /value/ are the tag\'s /key/ pair. Omitting the tag+ -- /value/ is the same as using an empty string. Like tag /keys/, tag+ -- /values/ are case-sensitive. You can specify a maximum of 256 characters+ -- for a tag value.+ tagValues :: [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateTagCollectionFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'appBoundaryKey', 'updateTagCollectionFilter_appBoundaryKey' - An Amazon Web Services tag /key/ that is used to identify the Amazon Web+-- Services resources that DevOps Guru analyzes. All Amazon Web Services+-- resources in your account and Region tagged with this /key/ make up your+-- DevOps Guru application and analysis boundary.+--+-- The string used for a /key/ in a tag that you use to define your+-- resource coverage must begin with the prefix @Devops-guru-@. The tag+-- /key/ might be @DevOps-Guru-deployment-application@ or+-- @devops-guru-rds-application@. When you create a /key/, the case of+-- characters in the /key/ can be whatever you choose. After you create a+-- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+-- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+-- act as two different /keys/. Possible /key/\//value/ pairs in your+-- application might be @Devops-Guru-production-application\/RDS@ or+-- @Devops-Guru-production-application\/containers@.+--+-- 'tagValues', 'updateTagCollectionFilter_tagValues' - The values in an Amazon Web Services tag collection.+--+-- The tag\'s /value/ is an optional field used to associate a string with+-- the tag /key/ (for example, @111122223333@, @Production@, or a team+-- name). The /key/ and /value/ are the tag\'s /key/ pair. Omitting the tag+-- /value/ is the same as using an empty string. Like tag /keys/, tag+-- /values/ are case-sensitive. You can specify a maximum of 256 characters+-- for a tag value.+newUpdateTagCollectionFilter ::+ -- | 'appBoundaryKey'+ Prelude.Text ->+ UpdateTagCollectionFilter+newUpdateTagCollectionFilter pAppBoundaryKey_ =+ UpdateTagCollectionFilter'+ { appBoundaryKey =+ pAppBoundaryKey_,+ tagValues = Prelude.mempty+ }++-- | An Amazon Web Services tag /key/ that is used to identify the Amazon Web+-- Services resources that DevOps Guru analyzes. All Amazon Web Services+-- resources in your account and Region tagged with this /key/ make up your+-- DevOps Guru application and analysis boundary.+--+-- The string used for a /key/ in a tag that you use to define your+-- resource coverage must begin with the prefix @Devops-guru-@. The tag+-- /key/ might be @DevOps-Guru-deployment-application@ or+-- @devops-guru-rds-application@. When you create a /key/, the case of+-- characters in the /key/ can be whatever you choose. After you create a+-- /key/, it is case-sensitive. For example, DevOps Guru works with a /key/+-- named @devops-guru-rds@ and a /key/ named @DevOps-Guru-RDS@, and these+-- act as two different /keys/. Possible /key/\//value/ pairs in your+-- application might be @Devops-Guru-production-application\/RDS@ or+-- @Devops-Guru-production-application\/containers@.+updateTagCollectionFilter_appBoundaryKey :: Lens.Lens' UpdateTagCollectionFilter Prelude.Text+updateTagCollectionFilter_appBoundaryKey = Lens.lens (\UpdateTagCollectionFilter' {appBoundaryKey} -> appBoundaryKey) (\s@UpdateTagCollectionFilter' {} a -> s {appBoundaryKey = a} :: UpdateTagCollectionFilter)++-- | The values in an Amazon Web Services tag collection.+--+-- The tag\'s /value/ is an optional field used to associate a string with+-- the tag /key/ (for example, @111122223333@, @Production@, or a team+-- name). The /key/ and /value/ are the tag\'s /key/ pair. Omitting the tag+-- /value/ is the same as using an empty string. Like tag /keys/, tag+-- /values/ are case-sensitive. You can specify a maximum of 256 characters+-- for a tag value.+updateTagCollectionFilter_tagValues :: Lens.Lens' UpdateTagCollectionFilter [Prelude.Text]+updateTagCollectionFilter_tagValues = Lens.lens (\UpdateTagCollectionFilter' {tagValues} -> tagValues) (\s@UpdateTagCollectionFilter' {} a -> s {tagValues = a} :: UpdateTagCollectionFilter) Prelude.. Lens.coerced++instance Prelude.Hashable UpdateTagCollectionFilter where+ hashWithSalt _salt UpdateTagCollectionFilter' {..} =+ _salt+ `Prelude.hashWithSalt` appBoundaryKey+ `Prelude.hashWithSalt` tagValues++instance Prelude.NFData UpdateTagCollectionFilter where+ rnf UpdateTagCollectionFilter' {..} =+ Prelude.rnf appBoundaryKey+ `Prelude.seq` Prelude.rnf tagValues++instance Data.ToJSON UpdateTagCollectionFilter where+ toJSON UpdateTagCollectionFilter' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("AppBoundaryKey" Data..= appBoundaryKey),+ Prelude.Just ("TagValues" Data..= tagValues)+ ]+ )
+ gen/Amazonka/DevOpsGuru/UpdateEventSourcesConfig.hs view
@@ -0,0 +1,163 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.UpdateEventSourcesConfig+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Enables or disables integration with a service that can be integrated+-- with DevOps Guru. The one service that can be integrated with DevOps+-- Guru is Amazon CodeGuru Profiler, which can produce proactive+-- recommendations which can be stored and viewed in DevOps Guru.+module Amazonka.DevOpsGuru.UpdateEventSourcesConfig+ ( -- * Creating a Request+ UpdateEventSourcesConfig (..),+ newUpdateEventSourcesConfig,++ -- * Request Lenses+ updateEventSourcesConfig_eventSources,++ -- * Destructuring the Response+ UpdateEventSourcesConfigResponse (..),+ newUpdateEventSourcesConfigResponse,++ -- * Response Lenses+ updateEventSourcesConfigResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateEventSourcesConfig' smart constructor.+data UpdateEventSourcesConfig = UpdateEventSourcesConfig'+ { -- | Configuration information about the integration of DevOps Guru as the+ -- Consumer via EventBridge with another AWS Service.+ eventSources :: Prelude.Maybe EventSourcesConfig+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateEventSourcesConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventSources', 'updateEventSourcesConfig_eventSources' - Configuration information about the integration of DevOps Guru as the+-- Consumer via EventBridge with another AWS Service.+newUpdateEventSourcesConfig ::+ UpdateEventSourcesConfig+newUpdateEventSourcesConfig =+ UpdateEventSourcesConfig'+ { eventSources =+ Prelude.Nothing+ }++-- | Configuration information about the integration of DevOps Guru as the+-- Consumer via EventBridge with another AWS Service.+updateEventSourcesConfig_eventSources :: Lens.Lens' UpdateEventSourcesConfig (Prelude.Maybe EventSourcesConfig)+updateEventSourcesConfig_eventSources = Lens.lens (\UpdateEventSourcesConfig' {eventSources} -> eventSources) (\s@UpdateEventSourcesConfig' {} a -> s {eventSources = a} :: UpdateEventSourcesConfig)++instance Core.AWSRequest UpdateEventSourcesConfig where+ type+ AWSResponse UpdateEventSourcesConfig =+ UpdateEventSourcesConfigResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ UpdateEventSourcesConfigResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateEventSourcesConfig where+ hashWithSalt _salt UpdateEventSourcesConfig' {..} =+ _salt `Prelude.hashWithSalt` eventSources++instance Prelude.NFData UpdateEventSourcesConfig where+ rnf UpdateEventSourcesConfig' {..} =+ Prelude.rnf eventSources++instance Data.ToHeaders UpdateEventSourcesConfig where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateEventSourcesConfig where+ toJSON UpdateEventSourcesConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [("EventSources" Data..=) Prelude.<$> eventSources]+ )++instance Data.ToPath UpdateEventSourcesConfig where+ toPath = Prelude.const "/event-sources"++instance Data.ToQuery UpdateEventSourcesConfig where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateEventSourcesConfigResponse' smart constructor.+data UpdateEventSourcesConfigResponse = UpdateEventSourcesConfigResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateEventSourcesConfigResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateEventSourcesConfigResponse_httpStatus' - The response's http status code.+newUpdateEventSourcesConfigResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateEventSourcesConfigResponse+newUpdateEventSourcesConfigResponse pHttpStatus_ =+ UpdateEventSourcesConfigResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+updateEventSourcesConfigResponse_httpStatus :: Lens.Lens' UpdateEventSourcesConfigResponse Prelude.Int+updateEventSourcesConfigResponse_httpStatus = Lens.lens (\UpdateEventSourcesConfigResponse' {httpStatus} -> httpStatus) (\s@UpdateEventSourcesConfigResponse' {} a -> s {httpStatus = a} :: UpdateEventSourcesConfigResponse)++instance+ Prelude.NFData+ UpdateEventSourcesConfigResponse+ where+ rnf UpdateEventSourcesConfigResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/DevOpsGuru/UpdateResourceCollection.hs view
@@ -0,0 +1,187 @@+{-# 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.DevOpsGuru.UpdateResourceCollection+-- 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 the collection of resources that DevOps Guru analyzes. The two+-- types of Amazon Web Services resource collections supported are Amazon+-- Web Services CloudFormation stacks and Amazon Web Services resources+-- that contain the same Amazon Web Services tag. DevOps Guru can be+-- configured to analyze the Amazon Web Services resources that are defined+-- in the stacks or that are tagged using the same tag /key/. You can+-- specify up to 500 Amazon Web Services CloudFormation stacks. This method+-- also creates the IAM role required for you to use DevOps Guru.+module Amazonka.DevOpsGuru.UpdateResourceCollection+ ( -- * Creating a Request+ UpdateResourceCollection (..),+ newUpdateResourceCollection,++ -- * Request Lenses+ updateResourceCollection_action,+ updateResourceCollection_resourceCollection,++ -- * Destructuring the Response+ UpdateResourceCollectionResponse (..),+ newUpdateResourceCollectionResponse,++ -- * Response Lenses+ updateResourceCollectionResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateResourceCollection' smart constructor.+data UpdateResourceCollection = UpdateResourceCollection'+ { -- | Specifies if the resource collection in the request is added or deleted+ -- to the resource collection.+ action :: UpdateResourceCollectionAction,+ resourceCollection :: UpdateResourceCollectionFilter+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateResourceCollection' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateResourceCollection_action' - Specifies if the resource collection in the request is added or deleted+-- to the resource collection.+--+-- 'resourceCollection', 'updateResourceCollection_resourceCollection' - Undocumented member.+newUpdateResourceCollection ::+ -- | 'action'+ UpdateResourceCollectionAction ->+ -- | 'resourceCollection'+ UpdateResourceCollectionFilter ->+ UpdateResourceCollection+newUpdateResourceCollection+ pAction_+ pResourceCollection_ =+ UpdateResourceCollection'+ { action = pAction_,+ resourceCollection = pResourceCollection_+ }++-- | Specifies if the resource collection in the request is added or deleted+-- to the resource collection.+updateResourceCollection_action :: Lens.Lens' UpdateResourceCollection UpdateResourceCollectionAction+updateResourceCollection_action = Lens.lens (\UpdateResourceCollection' {action} -> action) (\s@UpdateResourceCollection' {} a -> s {action = a} :: UpdateResourceCollection)++-- | Undocumented member.+updateResourceCollection_resourceCollection :: Lens.Lens' UpdateResourceCollection UpdateResourceCollectionFilter+updateResourceCollection_resourceCollection = Lens.lens (\UpdateResourceCollection' {resourceCollection} -> resourceCollection) (\s@UpdateResourceCollection' {} a -> s {resourceCollection = a} :: UpdateResourceCollection)++instance Core.AWSRequest UpdateResourceCollection where+ type+ AWSResponse UpdateResourceCollection =+ UpdateResourceCollectionResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ UpdateResourceCollectionResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateResourceCollection where+ hashWithSalt _salt UpdateResourceCollection' {..} =+ _salt+ `Prelude.hashWithSalt` action+ `Prelude.hashWithSalt` resourceCollection++instance Prelude.NFData UpdateResourceCollection where+ rnf UpdateResourceCollection' {..} =+ Prelude.rnf action+ `Prelude.seq` Prelude.rnf resourceCollection++instance Data.ToHeaders UpdateResourceCollection where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateResourceCollection where+ toJSON UpdateResourceCollection' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("Action" Data..= action),+ Prelude.Just+ ("ResourceCollection" Data..= resourceCollection)+ ]+ )++instance Data.ToPath UpdateResourceCollection where+ toPath = Prelude.const "/resource-collections"++instance Data.ToQuery UpdateResourceCollection where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateResourceCollectionResponse' smart constructor.+data UpdateResourceCollectionResponse = UpdateResourceCollectionResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateResourceCollectionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateResourceCollectionResponse_httpStatus' - The response's http status code.+newUpdateResourceCollectionResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateResourceCollectionResponse+newUpdateResourceCollectionResponse pHttpStatus_ =+ UpdateResourceCollectionResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+updateResourceCollectionResponse_httpStatus :: Lens.Lens' UpdateResourceCollectionResponse Prelude.Int+updateResourceCollectionResponse_httpStatus = Lens.lens (\UpdateResourceCollectionResponse' {httpStatus} -> httpStatus) (\s@UpdateResourceCollectionResponse' {} a -> s {httpStatus = a} :: UpdateResourceCollectionResponse)++instance+ Prelude.NFData+ UpdateResourceCollectionResponse+ where+ rnf UpdateResourceCollectionResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/DevOpsGuru/UpdateServiceIntegration.hs view
@@ -0,0 +1,170 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.DevOpsGuru.UpdateServiceIntegration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Enables or disables integration with a service that can be integrated+-- with DevOps Guru. The one service that can be integrated with DevOps+-- Guru is Amazon Web Services Systems Manager, which can be used to create+-- an OpsItem for each generated insight.+module Amazonka.DevOpsGuru.UpdateServiceIntegration+ ( -- * Creating a Request+ UpdateServiceIntegration (..),+ newUpdateServiceIntegration,++ -- * Request Lenses+ updateServiceIntegration_serviceIntegration,++ -- * Destructuring the Response+ UpdateServiceIntegrationResponse (..),+ newUpdateServiceIntegrationResponse,++ -- * Response Lenses+ updateServiceIntegrationResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateServiceIntegration' smart constructor.+data UpdateServiceIntegration = UpdateServiceIntegration'+ { -- | An @IntegratedServiceConfig@ object used to specify the integrated+ -- service you want to update, and whether you want to update it to enabled+ -- or disabled.+ serviceIntegration :: UpdateServiceIntegrationConfig+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateServiceIntegration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'serviceIntegration', 'updateServiceIntegration_serviceIntegration' - An @IntegratedServiceConfig@ object used to specify the integrated+-- service you want to update, and whether you want to update it to enabled+-- or disabled.+newUpdateServiceIntegration ::+ -- | 'serviceIntegration'+ UpdateServiceIntegrationConfig ->+ UpdateServiceIntegration+newUpdateServiceIntegration pServiceIntegration_ =+ UpdateServiceIntegration'+ { serviceIntegration =+ pServiceIntegration_+ }++-- | An @IntegratedServiceConfig@ object used to specify the integrated+-- service you want to update, and whether you want to update it to enabled+-- or disabled.+updateServiceIntegration_serviceIntegration :: Lens.Lens' UpdateServiceIntegration UpdateServiceIntegrationConfig+updateServiceIntegration_serviceIntegration = Lens.lens (\UpdateServiceIntegration' {serviceIntegration} -> serviceIntegration) (\s@UpdateServiceIntegration' {} a -> s {serviceIntegration = a} :: UpdateServiceIntegration)++instance Core.AWSRequest UpdateServiceIntegration where+ type+ AWSResponse UpdateServiceIntegration =+ UpdateServiceIntegrationResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ UpdateServiceIntegrationResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateServiceIntegration where+ hashWithSalt _salt UpdateServiceIntegration' {..} =+ _salt `Prelude.hashWithSalt` serviceIntegration++instance Prelude.NFData UpdateServiceIntegration where+ rnf UpdateServiceIntegration' {..} =+ Prelude.rnf serviceIntegration++instance Data.ToHeaders UpdateServiceIntegration where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateServiceIntegration where+ toJSON UpdateServiceIntegration' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("ServiceIntegration" Data..= serviceIntegration)+ ]+ )++instance Data.ToPath UpdateServiceIntegration where+ toPath = Prelude.const "/service-integrations"++instance Data.ToQuery UpdateServiceIntegration where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateServiceIntegrationResponse' smart constructor.+data UpdateServiceIntegrationResponse = UpdateServiceIntegrationResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateServiceIntegrationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateServiceIntegrationResponse_httpStatus' - The response's http status code.+newUpdateServiceIntegrationResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateServiceIntegrationResponse+newUpdateServiceIntegrationResponse pHttpStatus_ =+ UpdateServiceIntegrationResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+updateServiceIntegrationResponse_httpStatus :: Lens.Lens' UpdateServiceIntegrationResponse Prelude.Int+updateServiceIntegrationResponse_httpStatus = Lens.lens (\UpdateServiceIntegrationResponse' {httpStatus} -> httpStatus) (\s@UpdateServiceIntegrationResponse' {} a -> s {httpStatus = a} :: UpdateServiceIntegrationResponse)++instance+ Prelude.NFData+ UpdateServiceIntegrationResponse+ where+ rnf UpdateServiceIntegrationResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/DevOpsGuru/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.DevOpsGuru.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.DevOpsGuru.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DevOpsGuru.Lens+import Amazonka.DevOpsGuru.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.DevOpsGuru+import Test.Amazonka.DevOpsGuru.Internal+import Test.Tasty++main :: IO ()+main =+ defaultMain $+ testGroup+ "DevOpsGuru"+ [ testGroup "tests" tests,+ testGroup "fixtures" fixtures+ ]
+ test/Test/Amazonka/DevOpsGuru.hs view
@@ -0,0 +1,20 @@+-- |+-- Module : Test.Amazonka.DevOpsGuru+-- Copyright : (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.DevOpsGuru+ ( tests,+ fixtures,+ )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/DevOpsGuru/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module : Test.Amazonka.DevOpsGuru.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.DevOpsGuru.Internal where
+ test/Test/Amazonka/Gen/DevOpsGuru.hs view
@@ -0,0 +1,658 @@+{-# 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.DevOpsGuru+-- Copyright : (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.DevOpsGuru where++import Amazonka.DevOpsGuru+import qualified Data.Proxy as Proxy+import Test.Amazonka.DevOpsGuru.Internal+import Test.Amazonka.Fixture+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"+-- [ requestAddNotificationChannel $+-- newAddNotificationChannel+--+-- , requestDeleteInsight $+-- newDeleteInsight+--+-- , requestDescribeAccountHealth $+-- newDescribeAccountHealth+--+-- , requestDescribeAccountOverview $+-- newDescribeAccountOverview+--+-- , requestDescribeAnomaly $+-- newDescribeAnomaly+--+-- , requestDescribeEventSourcesConfig $+-- newDescribeEventSourcesConfig+--+-- , requestDescribeFeedback $+-- newDescribeFeedback+--+-- , requestDescribeInsight $+-- newDescribeInsight+--+-- , requestDescribeOrganizationHealth $+-- newDescribeOrganizationHealth+--+-- , requestDescribeOrganizationOverview $+-- newDescribeOrganizationOverview+--+-- , requestDescribeOrganizationResourceCollectionHealth $+-- newDescribeOrganizationResourceCollectionHealth+--+-- , requestDescribeResourceCollectionHealth $+-- newDescribeResourceCollectionHealth+--+-- , requestDescribeServiceIntegration $+-- newDescribeServiceIntegration+--+-- , requestGetCostEstimation $+-- newGetCostEstimation+--+-- , requestGetResourceCollection $+-- newGetResourceCollection+--+-- , requestListAnomaliesForInsight $+-- newListAnomaliesForInsight+--+-- , requestListAnomalousLogGroups $+-- newListAnomalousLogGroups+--+-- , requestListEvents $+-- newListEvents+--+-- , requestListInsights $+-- newListInsights+--+-- , requestListMonitoredResources $+-- newListMonitoredResources+--+-- , requestListNotificationChannels $+-- newListNotificationChannels+--+-- , requestListOrganizationInsights $+-- newListOrganizationInsights+--+-- , requestListRecommendations $+-- newListRecommendations+--+-- , requestPutFeedback $+-- newPutFeedback+--+-- , requestRemoveNotificationChannel $+-- newRemoveNotificationChannel+--+-- , requestSearchInsights $+-- newSearchInsights+--+-- , requestSearchOrganizationInsights $+-- newSearchOrganizationInsights+--+-- , requestStartCostEstimation $+-- newStartCostEstimation+--+-- , requestUpdateEventSourcesConfig $+-- newUpdateEventSourcesConfig+--+-- , requestUpdateResourceCollection $+-- newUpdateResourceCollection+--+-- , requestUpdateServiceIntegration $+-- newUpdateServiceIntegration+--+-- ]++-- , testGroup "response"+-- [ responseAddNotificationChannel $+-- newAddNotificationChannelResponse+--+-- , responseDeleteInsight $+-- newDeleteInsightResponse+--+-- , responseDescribeAccountHealth $+-- newDescribeAccountHealthResponse+--+-- , responseDescribeAccountOverview $+-- newDescribeAccountOverviewResponse+--+-- , responseDescribeAnomaly $+-- newDescribeAnomalyResponse+--+-- , responseDescribeEventSourcesConfig $+-- newDescribeEventSourcesConfigResponse+--+-- , responseDescribeFeedback $+-- newDescribeFeedbackResponse+--+-- , responseDescribeInsight $+-- newDescribeInsightResponse+--+-- , responseDescribeOrganizationHealth $+-- newDescribeOrganizationHealthResponse+--+-- , responseDescribeOrganizationOverview $+-- newDescribeOrganizationOverviewResponse+--+-- , responseDescribeOrganizationResourceCollectionHealth $+-- newDescribeOrganizationResourceCollectionHealthResponse+--+-- , responseDescribeResourceCollectionHealth $+-- newDescribeResourceCollectionHealthResponse+--+-- , responseDescribeServiceIntegration $+-- newDescribeServiceIntegrationResponse+--+-- , responseGetCostEstimation $+-- newGetCostEstimationResponse+--+-- , responseGetResourceCollection $+-- newGetResourceCollectionResponse+--+-- , responseListAnomaliesForInsight $+-- newListAnomaliesForInsightResponse+--+-- , responseListAnomalousLogGroups $+-- newListAnomalousLogGroupsResponse+--+-- , responseListEvents $+-- newListEventsResponse+--+-- , responseListInsights $+-- newListInsightsResponse+--+-- , responseListMonitoredResources $+-- newListMonitoredResourcesResponse+--+-- , responseListNotificationChannels $+-- newListNotificationChannelsResponse+--+-- , responseListOrganizationInsights $+-- newListOrganizationInsightsResponse+--+-- , responseListRecommendations $+-- newListRecommendationsResponse+--+-- , responsePutFeedback $+-- newPutFeedbackResponse+--+-- , responseRemoveNotificationChannel $+-- newRemoveNotificationChannelResponse+--+-- , responseSearchInsights $+-- newSearchInsightsResponse+--+-- , responseSearchOrganizationInsights $+-- newSearchOrganizationInsightsResponse+--+-- , responseStartCostEstimation $+-- newStartCostEstimationResponse+--+-- , responseUpdateEventSourcesConfig $+-- newUpdateEventSourcesConfigResponse+--+-- , responseUpdateResourceCollection $+-- newUpdateResourceCollectionResponse+--+-- , responseUpdateServiceIntegration $+-- newUpdateServiceIntegrationResponse+--+-- ]+-- ]++-- Requests++requestAddNotificationChannel :: AddNotificationChannel -> TestTree+requestAddNotificationChannel =+ req+ "AddNotificationChannel"+ "fixture/AddNotificationChannel.yaml"++requestDeleteInsight :: DeleteInsight -> TestTree+requestDeleteInsight =+ req+ "DeleteInsight"+ "fixture/DeleteInsight.yaml"++requestDescribeAccountHealth :: DescribeAccountHealth -> TestTree+requestDescribeAccountHealth =+ req+ "DescribeAccountHealth"+ "fixture/DescribeAccountHealth.yaml"++requestDescribeAccountOverview :: DescribeAccountOverview -> TestTree+requestDescribeAccountOverview =+ req+ "DescribeAccountOverview"+ "fixture/DescribeAccountOverview.yaml"++requestDescribeAnomaly :: DescribeAnomaly -> TestTree+requestDescribeAnomaly =+ req+ "DescribeAnomaly"+ "fixture/DescribeAnomaly.yaml"++requestDescribeEventSourcesConfig :: DescribeEventSourcesConfig -> TestTree+requestDescribeEventSourcesConfig =+ req+ "DescribeEventSourcesConfig"+ "fixture/DescribeEventSourcesConfig.yaml"++requestDescribeFeedback :: DescribeFeedback -> TestTree+requestDescribeFeedback =+ req+ "DescribeFeedback"+ "fixture/DescribeFeedback.yaml"++requestDescribeInsight :: DescribeInsight -> TestTree+requestDescribeInsight =+ req+ "DescribeInsight"+ "fixture/DescribeInsight.yaml"++requestDescribeOrganizationHealth :: DescribeOrganizationHealth -> TestTree+requestDescribeOrganizationHealth =+ req+ "DescribeOrganizationHealth"+ "fixture/DescribeOrganizationHealth.yaml"++requestDescribeOrganizationOverview :: DescribeOrganizationOverview -> TestTree+requestDescribeOrganizationOverview =+ req+ "DescribeOrganizationOverview"+ "fixture/DescribeOrganizationOverview.yaml"++requestDescribeOrganizationResourceCollectionHealth :: DescribeOrganizationResourceCollectionHealth -> TestTree+requestDescribeOrganizationResourceCollectionHealth =+ req+ "DescribeOrganizationResourceCollectionHealth"+ "fixture/DescribeOrganizationResourceCollectionHealth.yaml"++requestDescribeResourceCollectionHealth :: DescribeResourceCollectionHealth -> TestTree+requestDescribeResourceCollectionHealth =+ req+ "DescribeResourceCollectionHealth"+ "fixture/DescribeResourceCollectionHealth.yaml"++requestDescribeServiceIntegration :: DescribeServiceIntegration -> TestTree+requestDescribeServiceIntegration =+ req+ "DescribeServiceIntegration"+ "fixture/DescribeServiceIntegration.yaml"++requestGetCostEstimation :: GetCostEstimation -> TestTree+requestGetCostEstimation =+ req+ "GetCostEstimation"+ "fixture/GetCostEstimation.yaml"++requestGetResourceCollection :: GetResourceCollection -> TestTree+requestGetResourceCollection =+ req+ "GetResourceCollection"+ "fixture/GetResourceCollection.yaml"++requestListAnomaliesForInsight :: ListAnomaliesForInsight -> TestTree+requestListAnomaliesForInsight =+ req+ "ListAnomaliesForInsight"+ "fixture/ListAnomaliesForInsight.yaml"++requestListAnomalousLogGroups :: ListAnomalousLogGroups -> TestTree+requestListAnomalousLogGroups =+ req+ "ListAnomalousLogGroups"+ "fixture/ListAnomalousLogGroups.yaml"++requestListEvents :: ListEvents -> TestTree+requestListEvents =+ req+ "ListEvents"+ "fixture/ListEvents.yaml"++requestListInsights :: ListInsights -> TestTree+requestListInsights =+ req+ "ListInsights"+ "fixture/ListInsights.yaml"++requestListMonitoredResources :: ListMonitoredResources -> TestTree+requestListMonitoredResources =+ req+ "ListMonitoredResources"+ "fixture/ListMonitoredResources.yaml"++requestListNotificationChannels :: ListNotificationChannels -> TestTree+requestListNotificationChannels =+ req+ "ListNotificationChannels"+ "fixture/ListNotificationChannels.yaml"++requestListOrganizationInsights :: ListOrganizationInsights -> TestTree+requestListOrganizationInsights =+ req+ "ListOrganizationInsights"+ "fixture/ListOrganizationInsights.yaml"++requestListRecommendations :: ListRecommendations -> TestTree+requestListRecommendations =+ req+ "ListRecommendations"+ "fixture/ListRecommendations.yaml"++requestPutFeedback :: PutFeedback -> TestTree+requestPutFeedback =+ req+ "PutFeedback"+ "fixture/PutFeedback.yaml"++requestRemoveNotificationChannel :: RemoveNotificationChannel -> TestTree+requestRemoveNotificationChannel =+ req+ "RemoveNotificationChannel"+ "fixture/RemoveNotificationChannel.yaml"++requestSearchInsights :: SearchInsights -> TestTree+requestSearchInsights =+ req+ "SearchInsights"+ "fixture/SearchInsights.yaml"++requestSearchOrganizationInsights :: SearchOrganizationInsights -> TestTree+requestSearchOrganizationInsights =+ req+ "SearchOrganizationInsights"+ "fixture/SearchOrganizationInsights.yaml"++requestStartCostEstimation :: StartCostEstimation -> TestTree+requestStartCostEstimation =+ req+ "StartCostEstimation"+ "fixture/StartCostEstimation.yaml"++requestUpdateEventSourcesConfig :: UpdateEventSourcesConfig -> TestTree+requestUpdateEventSourcesConfig =+ req+ "UpdateEventSourcesConfig"+ "fixture/UpdateEventSourcesConfig.yaml"++requestUpdateResourceCollection :: UpdateResourceCollection -> TestTree+requestUpdateResourceCollection =+ req+ "UpdateResourceCollection"+ "fixture/UpdateResourceCollection.yaml"++requestUpdateServiceIntegration :: UpdateServiceIntegration -> TestTree+requestUpdateServiceIntegration =+ req+ "UpdateServiceIntegration"+ "fixture/UpdateServiceIntegration.yaml"++-- Responses++responseAddNotificationChannel :: AddNotificationChannelResponse -> TestTree+responseAddNotificationChannel =+ res+ "AddNotificationChannelResponse"+ "fixture/AddNotificationChannelResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy AddNotificationChannel)++responseDeleteInsight :: DeleteInsightResponse -> TestTree+responseDeleteInsight =+ res+ "DeleteInsightResponse"+ "fixture/DeleteInsightResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteInsight)++responseDescribeAccountHealth :: DescribeAccountHealthResponse -> TestTree+responseDescribeAccountHealth =+ res+ "DescribeAccountHealthResponse"+ "fixture/DescribeAccountHealthResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeAccountHealth)++responseDescribeAccountOverview :: DescribeAccountOverviewResponse -> TestTree+responseDescribeAccountOverview =+ res+ "DescribeAccountOverviewResponse"+ "fixture/DescribeAccountOverviewResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeAccountOverview)++responseDescribeAnomaly :: DescribeAnomalyResponse -> TestTree+responseDescribeAnomaly =+ res+ "DescribeAnomalyResponse"+ "fixture/DescribeAnomalyResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeAnomaly)++responseDescribeEventSourcesConfig :: DescribeEventSourcesConfigResponse -> TestTree+responseDescribeEventSourcesConfig =+ res+ "DescribeEventSourcesConfigResponse"+ "fixture/DescribeEventSourcesConfigResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeEventSourcesConfig)++responseDescribeFeedback :: DescribeFeedbackResponse -> TestTree+responseDescribeFeedback =+ res+ "DescribeFeedbackResponse"+ "fixture/DescribeFeedbackResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeFeedback)++responseDescribeInsight :: DescribeInsightResponse -> TestTree+responseDescribeInsight =+ res+ "DescribeInsightResponse"+ "fixture/DescribeInsightResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeInsight)++responseDescribeOrganizationHealth :: DescribeOrganizationHealthResponse -> TestTree+responseDescribeOrganizationHealth =+ res+ "DescribeOrganizationHealthResponse"+ "fixture/DescribeOrganizationHealthResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeOrganizationHealth)++responseDescribeOrganizationOverview :: DescribeOrganizationOverviewResponse -> TestTree+responseDescribeOrganizationOverview =+ res+ "DescribeOrganizationOverviewResponse"+ "fixture/DescribeOrganizationOverviewResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeOrganizationOverview)++responseDescribeOrganizationResourceCollectionHealth :: DescribeOrganizationResourceCollectionHealthResponse -> TestTree+responseDescribeOrganizationResourceCollectionHealth =+ res+ "DescribeOrganizationResourceCollectionHealthResponse"+ "fixture/DescribeOrganizationResourceCollectionHealthResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeOrganizationResourceCollectionHealth)++responseDescribeResourceCollectionHealth :: DescribeResourceCollectionHealthResponse -> TestTree+responseDescribeResourceCollectionHealth =+ res+ "DescribeResourceCollectionHealthResponse"+ "fixture/DescribeResourceCollectionHealthResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeResourceCollectionHealth)++responseDescribeServiceIntegration :: DescribeServiceIntegrationResponse -> TestTree+responseDescribeServiceIntegration =+ res+ "DescribeServiceIntegrationResponse"+ "fixture/DescribeServiceIntegrationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeServiceIntegration)++responseGetCostEstimation :: GetCostEstimationResponse -> TestTree+responseGetCostEstimation =+ res+ "GetCostEstimationResponse"+ "fixture/GetCostEstimationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetCostEstimation)++responseGetResourceCollection :: GetResourceCollectionResponse -> TestTree+responseGetResourceCollection =+ res+ "GetResourceCollectionResponse"+ "fixture/GetResourceCollectionResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetResourceCollection)++responseListAnomaliesForInsight :: ListAnomaliesForInsightResponse -> TestTree+responseListAnomaliesForInsight =+ res+ "ListAnomaliesForInsightResponse"+ "fixture/ListAnomaliesForInsightResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListAnomaliesForInsight)++responseListAnomalousLogGroups :: ListAnomalousLogGroupsResponse -> TestTree+responseListAnomalousLogGroups =+ res+ "ListAnomalousLogGroupsResponse"+ "fixture/ListAnomalousLogGroupsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListAnomalousLogGroups)++responseListEvents :: ListEventsResponse -> TestTree+responseListEvents =+ res+ "ListEventsResponse"+ "fixture/ListEventsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListEvents)++responseListInsights :: ListInsightsResponse -> TestTree+responseListInsights =+ res+ "ListInsightsResponse"+ "fixture/ListInsightsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListInsights)++responseListMonitoredResources :: ListMonitoredResourcesResponse -> TestTree+responseListMonitoredResources =+ res+ "ListMonitoredResourcesResponse"+ "fixture/ListMonitoredResourcesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListMonitoredResources)++responseListNotificationChannels :: ListNotificationChannelsResponse -> TestTree+responseListNotificationChannels =+ res+ "ListNotificationChannelsResponse"+ "fixture/ListNotificationChannelsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListNotificationChannels)++responseListOrganizationInsights :: ListOrganizationInsightsResponse -> TestTree+responseListOrganizationInsights =+ res+ "ListOrganizationInsightsResponse"+ "fixture/ListOrganizationInsightsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListOrganizationInsights)++responseListRecommendations :: ListRecommendationsResponse -> TestTree+responseListRecommendations =+ res+ "ListRecommendationsResponse"+ "fixture/ListRecommendationsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListRecommendations)++responsePutFeedback :: PutFeedbackResponse -> TestTree+responsePutFeedback =+ res+ "PutFeedbackResponse"+ "fixture/PutFeedbackResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutFeedback)++responseRemoveNotificationChannel :: RemoveNotificationChannelResponse -> TestTree+responseRemoveNotificationChannel =+ res+ "RemoveNotificationChannelResponse"+ "fixture/RemoveNotificationChannelResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy RemoveNotificationChannel)++responseSearchInsights :: SearchInsightsResponse -> TestTree+responseSearchInsights =+ res+ "SearchInsightsResponse"+ "fixture/SearchInsightsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy SearchInsights)++responseSearchOrganizationInsights :: SearchOrganizationInsightsResponse -> TestTree+responseSearchOrganizationInsights =+ res+ "SearchOrganizationInsightsResponse"+ "fixture/SearchOrganizationInsightsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy SearchOrganizationInsights)++responseStartCostEstimation :: StartCostEstimationResponse -> TestTree+responseStartCostEstimation =+ res+ "StartCostEstimationResponse"+ "fixture/StartCostEstimationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy StartCostEstimation)++responseUpdateEventSourcesConfig :: UpdateEventSourcesConfigResponse -> TestTree+responseUpdateEventSourcesConfig =+ res+ "UpdateEventSourcesConfigResponse"+ "fixture/UpdateEventSourcesConfigResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateEventSourcesConfig)++responseUpdateResourceCollection :: UpdateResourceCollectionResponse -> TestTree+responseUpdateResourceCollection =+ res+ "UpdateResourceCollectionResponse"+ "fixture/UpdateResourceCollectionResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateResourceCollection)++responseUpdateServiceIntegration :: UpdateServiceIntegrationResponse -> TestTree+responseUpdateServiceIntegration =+ res+ "UpdateServiceIntegrationResponse"+ "fixture/UpdateServiceIntegrationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateServiceIntegration)