amazonka-codeguruprofiler (empty) → 2.0
raw patch · 109 files changed
+11255/−0 lines, 109 filesdep +amazonka-codeguruprofilerdep +amazonka-coredep +amazonka-test
Dependencies added: amazonka-codeguruprofiler, amazonka-core, amazonka-test, base, bytestring, case-insensitive, tasty, tasty-hunit, text, time, unordered-containers
Files
- LICENSE +367/−0
- README.md +44/−0
- amazonka-codeguruprofiler.cabal +134/−0
- fixture/AddNotificationChannels.yaml +10/−0
- fixture/AddNotificationChannelsResponse.proto +0/−0
- fixture/BatchGetFrameMetricData.yaml +10/−0
- fixture/BatchGetFrameMetricDataResponse.proto +0/−0
- fixture/ConfigureAgent.yaml +10/−0
- fixture/ConfigureAgentResponse.proto +0/−0
- fixture/CreateProfilingGroup.yaml +10/−0
- fixture/CreateProfilingGroupResponse.proto +0/−0
- fixture/DeleteProfilingGroup.yaml +10/−0
- fixture/DeleteProfilingGroupResponse.proto +0/−0
- fixture/DescribeProfilingGroup.yaml +10/−0
- fixture/DescribeProfilingGroupResponse.proto +0/−0
- fixture/GetFindingsReportAccountSummary.yaml +10/−0
- fixture/GetFindingsReportAccountSummaryResponse.proto +0/−0
- fixture/GetNotificationConfiguration.yaml +10/−0
- fixture/GetNotificationConfigurationResponse.proto +0/−0
- fixture/GetPolicy.yaml +10/−0
- fixture/GetPolicyResponse.proto +0/−0
- fixture/GetProfile.yaml +10/−0
- fixture/GetProfileResponse.proto +0/−0
- fixture/GetRecommendations.yaml +10/−0
- fixture/GetRecommendationsResponse.proto +0/−0
- fixture/ListFindingsReports.yaml +10/−0
- fixture/ListFindingsReportsResponse.proto +0/−0
- fixture/ListProfileTimes.yaml +10/−0
- fixture/ListProfileTimesResponse.proto +0/−0
- fixture/ListProfilingGroups.yaml +10/−0
- fixture/ListProfilingGroupsResponse.proto +0/−0
- fixture/ListTagsForResource.yaml +10/−0
- fixture/ListTagsForResourceResponse.proto +0/−0
- fixture/PostAgentProfile.yaml +10/−0
- fixture/PostAgentProfileResponse.proto +0/−0
- fixture/PutPermission.yaml +10/−0
- fixture/PutPermissionResponse.proto +0/−0
- fixture/RemoveNotificationChannel.yaml +10/−0
- fixture/RemoveNotificationChannelResponse.proto +0/−0
- fixture/RemovePermission.yaml +10/−0
- fixture/RemovePermissionResponse.proto +0/−0
- fixture/SubmitFeedback.yaml +10/−0
- fixture/SubmitFeedbackResponse.proto +0/−0
- fixture/TagResource.yaml +10/−0
- fixture/TagResourceResponse.proto +0/−0
- fixture/UntagResource.yaml +10/−0
- fixture/UntagResourceResponse.proto +0/−0
- fixture/UpdateProfilingGroup.yaml +10/−0
- fixture/UpdateProfilingGroupResponse.proto +0/−0
- gen/Amazonka/CodeGuruProfiler.hs +366/−0
- gen/Amazonka/CodeGuruProfiler/AddNotificationChannels.hs +200/−0
- gen/Amazonka/CodeGuruProfiler/BatchGetFrameMetricData.hs +452/−0
- gen/Amazonka/CodeGuruProfiler/ConfigureAgent.hs +309/−0
- gen/Amazonka/CodeGuruProfiler/CreateProfilingGroup.hs +264/−0
- gen/Amazonka/CodeGuruProfiler/DeleteProfilingGroup.hs +155/−0
- gen/Amazonka/CodeGuruProfiler/DescribeProfilingGroup.hs +182/−0
- gen/Amazonka/CodeGuruProfiler/GetFindingsReportAccountSummary.hs +301/−0
- gen/Amazonka/CodeGuruProfiler/GetNotificationConfiguration.hs +185/−0
- gen/Amazonka/CodeGuruProfiler/GetPolicy.hs +188/−0
- gen/Amazonka/CodeGuruProfiler/GetProfile.hs +332/−0
- gen/Amazonka/CodeGuruProfiler/GetRecommendations.hs +392/−0
- gen/Amazonka/CodeGuruProfiler/Lens.hs +339/−0
- gen/Amazonka/CodeGuruProfiler/ListFindingsReports.hs +332/−0
- gen/Amazonka/CodeGuruProfiler/ListProfileTimes.hs +370/−0
- gen/Amazonka/CodeGuruProfiler/ListProfilingGroups.hs +306/−0
- gen/Amazonka/CodeGuruProfiler/ListTagsForResource.hs +165/−0
- gen/Amazonka/CodeGuruProfiler/PostAgentProfile.hs +225/−0
- gen/Amazonka/CodeGuruProfiler/PutPermission.hs +279/−0
- gen/Amazonka/CodeGuruProfiler/RemoveNotificationChannel.hs +193/−0
- gen/Amazonka/CodeGuruProfiler/RemovePermission.hs +255/−0
- gen/Amazonka/CodeGuruProfiler/SubmitFeedback.hs +219/−0
- gen/Amazonka/CodeGuruProfiler/TagResource.hs +166/−0
- gen/Amazonka/CodeGuruProfiler/Types.hs +348/−0
- gen/Amazonka/CodeGuruProfiler/Types/ActionGroup.hs +66/−0
- gen/Amazonka/CodeGuruProfiler/Types/AgentConfiguration.hs +182/−0
- gen/Amazonka/CodeGuruProfiler/Types/AgentOrchestrationConfig.hs +89/−0
- gen/Amazonka/CodeGuruProfiler/Types/AgentParameterField.hs +86/−0
- gen/Amazonka/CodeGuruProfiler/Types/AggregatedProfileTime.hs +135/−0
- gen/Amazonka/CodeGuruProfiler/Types/AggregationPeriod.hs +76/−0
- gen/Amazonka/CodeGuruProfiler/Types/Anomaly.hs +116/−0
- gen/Amazonka/CodeGuruProfiler/Types/AnomalyInstance.hs +134/−0
- gen/Amazonka/CodeGuruProfiler/Types/Channel.hs +132/−0
- gen/Amazonka/CodeGuruProfiler/Types/ComputePlatform.hs +71/−0
- gen/Amazonka/CodeGuruProfiler/Types/EventPublisher.hs +66/−0
- gen/Amazonka/CodeGuruProfiler/Types/FeedbackType.hs +71/−0
- gen/Amazonka/CodeGuruProfiler/Types/FindingsReportSummary.hs +145/−0
- gen/Amazonka/CodeGuruProfiler/Types/FrameMetric.hs +127/−0
- gen/Amazonka/CodeGuruProfiler/Types/FrameMetricDatum.hs +86/−0
- gen/Amazonka/CodeGuruProfiler/Types/Match.hs +103/−0
- gen/Amazonka/CodeGuruProfiler/Types/MetadataField.hs +106/−0
- gen/Amazonka/CodeGuruProfiler/Types/Metric.hs +119/−0
- gen/Amazonka/CodeGuruProfiler/Types/MetricType.hs +66/−0
- gen/Amazonka/CodeGuruProfiler/Types/NotificationConfiguration.hs +78/−0
- gen/Amazonka/CodeGuruProfiler/Types/OrderBy.hs +68/−0
- gen/Amazonka/CodeGuruProfiler/Types/Pattern.hs +162/−0
- gen/Amazonka/CodeGuruProfiler/Types/ProfileTime.hs +73/−0
- gen/Amazonka/CodeGuruProfiler/Types/ProfilingGroupDescription.hs +205/−0
- gen/Amazonka/CodeGuruProfiler/Types/ProfilingStatus.hs +122/−0
- gen/Amazonka/CodeGuruProfiler/Types/Recommendation.hs +172/−0
- gen/Amazonka/CodeGuruProfiler/Types/TimestampStructure.hs +80/−0
- gen/Amazonka/CodeGuruProfiler/Types/UserFeedback.hs +73/−0
- gen/Amazonka/CodeGuruProfiler/UntagResource.hs +167/−0
- gen/Amazonka/CodeGuruProfiler/UpdateProfilingGroup.hs +208/−0
- gen/Amazonka/CodeGuruProfiler/Waiters.hs +24/−0
- src/.gitkeep +0/−0
- test/Main.hs +23/−0
- test/Test/Amazonka/CodeGuruProfiler.hs +20/−0
- test/Test/Amazonka/CodeGuruProfiler/Internal.hs +8/−0
- test/Test/Amazonka/Gen/CodeGuruProfiler.hs +498/−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 CodeGuru Profiler SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2019-07-18@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-codeguruprofiler)+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.CodeGuruProfiler](http://hackage.haskell.org/package/amazonka-codeguruprofiler/docs/Amazonka-CodeGuruProfiler.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-codeguruprofiler` 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-codeguruprofiler.cabal view
@@ -0,0 +1,134 @@+cabal-version: 2.2+name: amazonka-codeguruprofiler+version: 2.0+synopsis: Amazon CodeGuru Profiler SDK.+homepage: https://github.com/brendanhay/amazonka+bug-reports: https://github.com/brendanhay/amazonka/issues+license: MPL-2.0+license-file: LICENSE+author: Brendan Hay+maintainer:+ Brendan Hay <brendan.g.hay+amazonka@gmail.com>, Jack Kelly <jack@jackkelly.name>++copyright: Copyright (c) 2013-2023 Brendan Hay+category: AWS+build-type: Simple+extra-source-files:+ fixture/*.proto+ fixture/*.yaml+ README.md+ src/.gitkeep++description:+ Derived from API version @2019-07-18@ 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.CodeGuruProfiler.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.CodeGuruProfiler" 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-codeguruprofiler++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.CodeGuruProfiler+ Amazonka.CodeGuruProfiler.AddNotificationChannels+ Amazonka.CodeGuruProfiler.BatchGetFrameMetricData+ Amazonka.CodeGuruProfiler.ConfigureAgent+ Amazonka.CodeGuruProfiler.CreateProfilingGroup+ Amazonka.CodeGuruProfiler.DeleteProfilingGroup+ Amazonka.CodeGuruProfiler.DescribeProfilingGroup+ Amazonka.CodeGuruProfiler.GetFindingsReportAccountSummary+ Amazonka.CodeGuruProfiler.GetNotificationConfiguration+ Amazonka.CodeGuruProfiler.GetPolicy+ Amazonka.CodeGuruProfiler.GetProfile+ Amazonka.CodeGuruProfiler.GetRecommendations+ Amazonka.CodeGuruProfiler.Lens+ Amazonka.CodeGuruProfiler.ListFindingsReports+ Amazonka.CodeGuruProfiler.ListProfileTimes+ Amazonka.CodeGuruProfiler.ListProfilingGroups+ Amazonka.CodeGuruProfiler.ListTagsForResource+ Amazonka.CodeGuruProfiler.PostAgentProfile+ Amazonka.CodeGuruProfiler.PutPermission+ Amazonka.CodeGuruProfiler.RemoveNotificationChannel+ Amazonka.CodeGuruProfiler.RemovePermission+ Amazonka.CodeGuruProfiler.SubmitFeedback+ Amazonka.CodeGuruProfiler.TagResource+ Amazonka.CodeGuruProfiler.Types+ Amazonka.CodeGuruProfiler.Types.ActionGroup+ Amazonka.CodeGuruProfiler.Types.AgentConfiguration+ Amazonka.CodeGuruProfiler.Types.AgentOrchestrationConfig+ Amazonka.CodeGuruProfiler.Types.AgentParameterField+ Amazonka.CodeGuruProfiler.Types.AggregatedProfileTime+ Amazonka.CodeGuruProfiler.Types.AggregationPeriod+ Amazonka.CodeGuruProfiler.Types.Anomaly+ Amazonka.CodeGuruProfiler.Types.AnomalyInstance+ Amazonka.CodeGuruProfiler.Types.Channel+ Amazonka.CodeGuruProfiler.Types.ComputePlatform+ Amazonka.CodeGuruProfiler.Types.EventPublisher+ Amazonka.CodeGuruProfiler.Types.FeedbackType+ Amazonka.CodeGuruProfiler.Types.FindingsReportSummary+ Amazonka.CodeGuruProfiler.Types.FrameMetric+ Amazonka.CodeGuruProfiler.Types.FrameMetricDatum+ Amazonka.CodeGuruProfiler.Types.Match+ Amazonka.CodeGuruProfiler.Types.MetadataField+ Amazonka.CodeGuruProfiler.Types.Metric+ Amazonka.CodeGuruProfiler.Types.MetricType+ Amazonka.CodeGuruProfiler.Types.NotificationConfiguration+ Amazonka.CodeGuruProfiler.Types.OrderBy+ Amazonka.CodeGuruProfiler.Types.Pattern+ Amazonka.CodeGuruProfiler.Types.ProfileTime+ Amazonka.CodeGuruProfiler.Types.ProfilingGroupDescription+ Amazonka.CodeGuruProfiler.Types.ProfilingStatus+ Amazonka.CodeGuruProfiler.Types.Recommendation+ Amazonka.CodeGuruProfiler.Types.TimestampStructure+ Amazonka.CodeGuruProfiler.Types.UserFeedback+ Amazonka.CodeGuruProfiler.UntagResource+ Amazonka.CodeGuruProfiler.UpdateProfilingGroup+ Amazonka.CodeGuruProfiler.Waiters++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , base >=4.12 && <5++test-suite amazonka-codeguruprofiler-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.CodeGuruProfiler+ Test.Amazonka.CodeGuruProfiler.Internal+ Test.Amazonka.Gen.CodeGuruProfiler++ build-depends:+ , amazonka-codeguruprofiler+ , amazonka-core >=2.0 && <2.1+ , amazonka-test >=2.0 && <2.1+ , base+ , bytestring+ , case-insensitive+ , tasty+ , tasty-hunit+ , text+ , time+ , unordered-containers
+ fixture/AddNotificationChannels.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-profiler/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: codeguru-profiler.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/AddNotificationChannelsResponse.proto view
+ fixture/BatchGetFrameMetricData.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-profiler/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: codeguru-profiler.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/BatchGetFrameMetricDataResponse.proto view
+ fixture/ConfigureAgent.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-profiler/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: codeguru-profiler.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/ConfigureAgentResponse.proto view
+ fixture/CreateProfilingGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-profiler/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: codeguru-profiler.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/CreateProfilingGroupResponse.proto view
+ fixture/DeleteProfilingGroup.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-profiler/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: codeguru-profiler.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/DeleteProfilingGroupResponse.proto view
+ fixture/DescribeProfilingGroup.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-profiler/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: codeguru-profiler.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/DescribeProfilingGroupResponse.proto view
+ fixture/GetFindingsReportAccountSummary.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-profiler/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: codeguru-profiler.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/GetFindingsReportAccountSummaryResponse.proto view
+ fixture/GetNotificationConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-profiler/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: codeguru-profiler.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/GetNotificationConfigurationResponse.proto view
+ fixture/GetPolicy.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-profiler/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: codeguru-profiler.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/GetPolicyResponse.proto view
+ fixture/GetProfile.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-profiler/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: codeguru-profiler.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/GetProfileResponse.proto view
+ fixture/GetRecommendations.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-profiler/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: codeguru-profiler.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/GetRecommendationsResponse.proto view
+ fixture/ListFindingsReports.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-profiler/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: codeguru-profiler.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/ListFindingsReportsResponse.proto view
+ fixture/ListProfileTimes.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-profiler/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: codeguru-profiler.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/ListProfileTimesResponse.proto view
+ fixture/ListProfilingGroups.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-profiler/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: codeguru-profiler.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/ListProfilingGroupsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-profiler/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: codeguru-profiler.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/ListTagsForResourceResponse.proto view
+ fixture/PostAgentProfile.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-profiler/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: codeguru-profiler.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/PostAgentProfileResponse.proto view
+ fixture/PutPermission.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-profiler/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: codeguru-profiler.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/PutPermissionResponse.proto view
+ fixture/RemoveNotificationChannel.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-profiler/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: codeguru-profiler.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/RemovePermission.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-profiler/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: codeguru-profiler.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/RemovePermissionResponse.proto view
+ fixture/SubmitFeedback.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-profiler/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: codeguru-profiler.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/SubmitFeedbackResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-profiler/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: codeguru-profiler.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/TagResourceResponse.proto view
+ fixture/UntagResource.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-profiler/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: codeguru-profiler.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/UntagResourceResponse.proto view
+ fixture/UpdateProfilingGroup.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-profiler/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: codeguru-profiler.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/UpdateProfilingGroupResponse.proto view
+ gen/Amazonka/CodeGuruProfiler.hs view
@@ -0,0 +1,366 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Amazonka.CodeGuruProfiler+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Derived from API version @2019-07-18@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- This section provides documentation for the Amazon CodeGuru Profiler API+-- operations.+--+-- Amazon CodeGuru Profiler collects runtime performance data from your+-- live applications, and provides recommendations that can help you+-- fine-tune your application performance. Using machine learning+-- algorithms, CodeGuru Profiler can help you find your most expensive+-- lines of code and suggest ways you can improve efficiency and remove CPU+-- bottlenecks.+--+-- Amazon CodeGuru Profiler provides different visualizations of profiling+-- data to help you identify what code is running on the CPU, see how much+-- time is consumed, and suggest ways to reduce CPU utilization.+--+-- Amazon CodeGuru Profiler currently supports applications written in all+-- Java virtual machine (JVM) languages and Python. While CodeGuru Profiler+-- supports both visualizations and recommendations for applications+-- written in Java, it can also generate visualizations and a subset of+-- recommendations for applications written in other JVM languages and+-- Python.+--+-- For more information, see+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-ug/what-is-codeguru-profiler.html What is Amazon CodeGuru Profiler>+-- in the /Amazon CodeGuru Profiler User Guide/.+module Amazonka.CodeGuruProfiler+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ -- $errors++ -- ** ConflictException+ _ConflictException,++ -- ** InternalServerException+ _InternalServerException,++ -- ** ResourceNotFoundException+ _ResourceNotFoundException,++ -- ** ServiceQuotaExceededException+ _ServiceQuotaExceededException,++ -- ** ThrottlingException+ _ThrottlingException,++ -- ** ValidationException+ _ValidationException,++ -- * Waiters+ -- $waiters++ -- * Operations+ -- $operations++ -- ** AddNotificationChannels+ AddNotificationChannels (AddNotificationChannels'),+ newAddNotificationChannels,+ AddNotificationChannelsResponse (AddNotificationChannelsResponse'),+ newAddNotificationChannelsResponse,++ -- ** BatchGetFrameMetricData+ BatchGetFrameMetricData (BatchGetFrameMetricData'),+ newBatchGetFrameMetricData,+ BatchGetFrameMetricDataResponse (BatchGetFrameMetricDataResponse'),+ newBatchGetFrameMetricDataResponse,++ -- ** ConfigureAgent+ ConfigureAgent (ConfigureAgent'),+ newConfigureAgent,+ ConfigureAgentResponse (ConfigureAgentResponse'),+ newConfigureAgentResponse,++ -- ** CreateProfilingGroup+ CreateProfilingGroup (CreateProfilingGroup'),+ newCreateProfilingGroup,+ CreateProfilingGroupResponse (CreateProfilingGroupResponse'),+ newCreateProfilingGroupResponse,++ -- ** DeleteProfilingGroup+ DeleteProfilingGroup (DeleteProfilingGroup'),+ newDeleteProfilingGroup,+ DeleteProfilingGroupResponse (DeleteProfilingGroupResponse'),+ newDeleteProfilingGroupResponse,++ -- ** DescribeProfilingGroup+ DescribeProfilingGroup (DescribeProfilingGroup'),+ newDescribeProfilingGroup,+ DescribeProfilingGroupResponse (DescribeProfilingGroupResponse'),+ newDescribeProfilingGroupResponse,++ -- ** GetFindingsReportAccountSummary+ GetFindingsReportAccountSummary (GetFindingsReportAccountSummary'),+ newGetFindingsReportAccountSummary,+ GetFindingsReportAccountSummaryResponse (GetFindingsReportAccountSummaryResponse'),+ newGetFindingsReportAccountSummaryResponse,++ -- ** GetNotificationConfiguration+ GetNotificationConfiguration (GetNotificationConfiguration'),+ newGetNotificationConfiguration,+ GetNotificationConfigurationResponse (GetNotificationConfigurationResponse'),+ newGetNotificationConfigurationResponse,++ -- ** GetPolicy+ GetPolicy (GetPolicy'),+ newGetPolicy,+ GetPolicyResponse (GetPolicyResponse'),+ newGetPolicyResponse,++ -- ** GetProfile+ GetProfile (GetProfile'),+ newGetProfile,+ GetProfileResponse (GetProfileResponse'),+ newGetProfileResponse,++ -- ** GetRecommendations+ GetRecommendations (GetRecommendations'),+ newGetRecommendations,+ GetRecommendationsResponse (GetRecommendationsResponse'),+ newGetRecommendationsResponse,++ -- ** ListFindingsReports+ ListFindingsReports (ListFindingsReports'),+ newListFindingsReports,+ ListFindingsReportsResponse (ListFindingsReportsResponse'),+ newListFindingsReportsResponse,++ -- ** ListProfileTimes (Paginated)+ ListProfileTimes (ListProfileTimes'),+ newListProfileTimes,+ ListProfileTimesResponse (ListProfileTimesResponse'),+ newListProfileTimesResponse,++ -- ** ListProfilingGroups+ ListProfilingGroups (ListProfilingGroups'),+ newListProfilingGroups,+ ListProfilingGroupsResponse (ListProfilingGroupsResponse'),+ newListProfilingGroupsResponse,++ -- ** ListTagsForResource+ ListTagsForResource (ListTagsForResource'),+ newListTagsForResource,+ ListTagsForResourceResponse (ListTagsForResourceResponse'),+ newListTagsForResourceResponse,++ -- ** PostAgentProfile+ PostAgentProfile (PostAgentProfile'),+ newPostAgentProfile,+ PostAgentProfileResponse (PostAgentProfileResponse'),+ newPostAgentProfileResponse,++ -- ** PutPermission+ PutPermission (PutPermission'),+ newPutPermission,+ PutPermissionResponse (PutPermissionResponse'),+ newPutPermissionResponse,++ -- ** RemoveNotificationChannel+ RemoveNotificationChannel (RemoveNotificationChannel'),+ newRemoveNotificationChannel,+ RemoveNotificationChannelResponse (RemoveNotificationChannelResponse'),+ newRemoveNotificationChannelResponse,++ -- ** RemovePermission+ RemovePermission (RemovePermission'),+ newRemovePermission,+ RemovePermissionResponse (RemovePermissionResponse'),+ newRemovePermissionResponse,++ -- ** SubmitFeedback+ SubmitFeedback (SubmitFeedback'),+ newSubmitFeedback,+ SubmitFeedbackResponse (SubmitFeedbackResponse'),+ newSubmitFeedbackResponse,++ -- ** TagResource+ TagResource (TagResource'),+ newTagResource,+ TagResourceResponse (TagResourceResponse'),+ newTagResourceResponse,++ -- ** UntagResource+ UntagResource (UntagResource'),+ newUntagResource,+ UntagResourceResponse (UntagResourceResponse'),+ newUntagResourceResponse,++ -- ** UpdateProfilingGroup+ UpdateProfilingGroup (UpdateProfilingGroup'),+ newUpdateProfilingGroup,+ UpdateProfilingGroupResponse (UpdateProfilingGroupResponse'),+ newUpdateProfilingGroupResponse,++ -- * Types++ -- ** ActionGroup+ ActionGroup (..),++ -- ** AgentParameterField+ AgentParameterField (..),++ -- ** AggregationPeriod+ AggregationPeriod (..),++ -- ** ComputePlatform+ ComputePlatform (..),++ -- ** EventPublisher+ EventPublisher (..),++ -- ** FeedbackType+ FeedbackType (..),++ -- ** MetadataField+ MetadataField (..),++ -- ** MetricType+ MetricType (..),++ -- ** OrderBy+ OrderBy (..),++ -- ** AgentConfiguration+ AgentConfiguration (AgentConfiguration'),+ newAgentConfiguration,++ -- ** AgentOrchestrationConfig+ AgentOrchestrationConfig (AgentOrchestrationConfig'),+ newAgentOrchestrationConfig,++ -- ** AggregatedProfileTime+ AggregatedProfileTime (AggregatedProfileTime'),+ newAggregatedProfileTime,++ -- ** Anomaly+ Anomaly (Anomaly'),+ newAnomaly,++ -- ** AnomalyInstance+ AnomalyInstance (AnomalyInstance'),+ newAnomalyInstance,++ -- ** Channel+ Channel (Channel'),+ newChannel,++ -- ** FindingsReportSummary+ FindingsReportSummary (FindingsReportSummary'),+ newFindingsReportSummary,++ -- ** FrameMetric+ FrameMetric (FrameMetric'),+ newFrameMetric,++ -- ** FrameMetricDatum+ FrameMetricDatum (FrameMetricDatum'),+ newFrameMetricDatum,++ -- ** Match+ Match (Match'),+ newMatch,++ -- ** Metric+ Metric (Metric'),+ newMetric,++ -- ** NotificationConfiguration+ NotificationConfiguration (NotificationConfiguration'),+ newNotificationConfiguration,++ -- ** Pattern+ Pattern (Pattern'),+ newPattern,++ -- ** ProfileTime+ ProfileTime (ProfileTime'),+ newProfileTime,++ -- ** ProfilingGroupDescription+ ProfilingGroupDescription (ProfilingGroupDescription'),+ newProfilingGroupDescription,++ -- ** ProfilingStatus+ ProfilingStatus (ProfilingStatus'),+ newProfilingStatus,++ -- ** Recommendation+ Recommendation (Recommendation'),+ newRecommendation,++ -- ** TimestampStructure+ TimestampStructure (TimestampStructure'),+ newTimestampStructure,++ -- ** UserFeedback+ UserFeedback (UserFeedback'),+ newUserFeedback,+ )+where++import Amazonka.CodeGuruProfiler.AddNotificationChannels+import Amazonka.CodeGuruProfiler.BatchGetFrameMetricData+import Amazonka.CodeGuruProfiler.ConfigureAgent+import Amazonka.CodeGuruProfiler.CreateProfilingGroup+import Amazonka.CodeGuruProfiler.DeleteProfilingGroup+import Amazonka.CodeGuruProfiler.DescribeProfilingGroup+import Amazonka.CodeGuruProfiler.GetFindingsReportAccountSummary+import Amazonka.CodeGuruProfiler.GetNotificationConfiguration+import Amazonka.CodeGuruProfiler.GetPolicy+import Amazonka.CodeGuruProfiler.GetProfile+import Amazonka.CodeGuruProfiler.GetRecommendations+import Amazonka.CodeGuruProfiler.Lens+import Amazonka.CodeGuruProfiler.ListFindingsReports+import Amazonka.CodeGuruProfiler.ListProfileTimes+import Amazonka.CodeGuruProfiler.ListProfilingGroups+import Amazonka.CodeGuruProfiler.ListTagsForResource+import Amazonka.CodeGuruProfiler.PostAgentProfile+import Amazonka.CodeGuruProfiler.PutPermission+import Amazonka.CodeGuruProfiler.RemoveNotificationChannel+import Amazonka.CodeGuruProfiler.RemovePermission+import Amazonka.CodeGuruProfiler.SubmitFeedback+import Amazonka.CodeGuruProfiler.TagResource+import Amazonka.CodeGuruProfiler.Types+import Amazonka.CodeGuruProfiler.UntagResource+import Amazonka.CodeGuruProfiler.UpdateProfilingGroup+import Amazonka.CodeGuruProfiler.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 'CodeGuruProfiler'.++-- $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/CodeGuruProfiler/AddNotificationChannels.hs view
@@ -0,0 +1,200 @@+{-# 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.CodeGuruProfiler.AddNotificationChannels+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Add up to 2 anomaly notifications channels for a profiling group.+module Amazonka.CodeGuruProfiler.AddNotificationChannels+ ( -- * Creating a Request+ AddNotificationChannels (..),+ newAddNotificationChannels,++ -- * Request Lenses+ addNotificationChannels_channels,+ addNotificationChannels_profilingGroupName,++ -- * Destructuring the Response+ AddNotificationChannelsResponse (..),+ newAddNotificationChannelsResponse,++ -- * Response Lenses+ addNotificationChannelsResponse_notificationConfiguration,+ addNotificationChannelsResponse_httpStatus,+ )+where++import Amazonka.CodeGuruProfiler.Types+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The structure representing the AddNotificationChannelsRequest.+--+-- /See:/ 'newAddNotificationChannels' smart constructor.+data AddNotificationChannels = AddNotificationChannels'+ { -- | One or 2 channels to report to when anomalies are detected.+ channels :: Prelude.NonEmpty Channel,+ -- | The name of the profiling group that we are setting up notifications+ -- for.+ profilingGroupName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddNotificationChannels' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'addNotificationChannels_channels' - One or 2 channels to report to when anomalies are detected.+--+-- 'profilingGroupName', 'addNotificationChannels_profilingGroupName' - The name of the profiling group that we are setting up notifications+-- for.+newAddNotificationChannels ::+ -- | 'channels'+ Prelude.NonEmpty Channel ->+ -- | 'profilingGroupName'+ Prelude.Text ->+ AddNotificationChannels+newAddNotificationChannels+ pChannels_+ pProfilingGroupName_ =+ AddNotificationChannels'+ { channels =+ Lens.coerced Lens.# pChannels_,+ profilingGroupName = pProfilingGroupName_+ }++-- | One or 2 channels to report to when anomalies are detected.+addNotificationChannels_channels :: Lens.Lens' AddNotificationChannels (Prelude.NonEmpty Channel)+addNotificationChannels_channels = Lens.lens (\AddNotificationChannels' {channels} -> channels) (\s@AddNotificationChannels' {} a -> s {channels = a} :: AddNotificationChannels) Prelude.. Lens.coerced++-- | The name of the profiling group that we are setting up notifications+-- for.+addNotificationChannels_profilingGroupName :: Lens.Lens' AddNotificationChannels Prelude.Text+addNotificationChannels_profilingGroupName = Lens.lens (\AddNotificationChannels' {profilingGroupName} -> profilingGroupName) (\s@AddNotificationChannels' {} a -> s {profilingGroupName = a} :: AddNotificationChannels)++instance Core.AWSRequest AddNotificationChannels where+ type+ AWSResponse AddNotificationChannels =+ AddNotificationChannelsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ AddNotificationChannelsResponse'+ Prelude.<$> (x Data..?> "notificationConfiguration")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable AddNotificationChannels where+ hashWithSalt _salt AddNotificationChannels' {..} =+ _salt+ `Prelude.hashWithSalt` channels+ `Prelude.hashWithSalt` profilingGroupName++instance Prelude.NFData AddNotificationChannels where+ rnf AddNotificationChannels' {..} =+ Prelude.rnf channels+ `Prelude.seq` Prelude.rnf profilingGroupName++instance Data.ToHeaders AddNotificationChannels where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON AddNotificationChannels where+ toJSON AddNotificationChannels' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("channels" Data..= channels)]+ )++instance Data.ToPath AddNotificationChannels where+ toPath AddNotificationChannels' {..} =+ Prelude.mconcat+ [ "/profilingGroups/",+ Data.toBS profilingGroupName,+ "/notificationConfiguration"+ ]++instance Data.ToQuery AddNotificationChannels where+ toQuery = Prelude.const Prelude.mempty++-- | The structure representing the AddNotificationChannelsResponse.+--+-- /See:/ 'newAddNotificationChannelsResponse' smart constructor.+data AddNotificationChannelsResponse = AddNotificationChannelsResponse'+ { -- | The new notification configuration for this profiling group.+ notificationConfiguration :: Prelude.Maybe NotificationConfiguration,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddNotificationChannelsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'notificationConfiguration', 'addNotificationChannelsResponse_notificationConfiguration' - The new notification configuration for this profiling group.+--+-- 'httpStatus', 'addNotificationChannelsResponse_httpStatus' - The response's http status code.+newAddNotificationChannelsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ AddNotificationChannelsResponse+newAddNotificationChannelsResponse pHttpStatus_ =+ AddNotificationChannelsResponse'+ { notificationConfiguration =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The new notification configuration for this profiling group.+addNotificationChannelsResponse_notificationConfiguration :: Lens.Lens' AddNotificationChannelsResponse (Prelude.Maybe NotificationConfiguration)+addNotificationChannelsResponse_notificationConfiguration = Lens.lens (\AddNotificationChannelsResponse' {notificationConfiguration} -> notificationConfiguration) (\s@AddNotificationChannelsResponse' {} a -> s {notificationConfiguration = a} :: AddNotificationChannelsResponse)++-- | The response's http status code.+addNotificationChannelsResponse_httpStatus :: Lens.Lens' AddNotificationChannelsResponse Prelude.Int+addNotificationChannelsResponse_httpStatus = Lens.lens (\AddNotificationChannelsResponse' {httpStatus} -> httpStatus) (\s@AddNotificationChannelsResponse' {} a -> s {httpStatus = a} :: AddNotificationChannelsResponse)++instance+ Prelude.NFData+ AddNotificationChannelsResponse+ where+ rnf AddNotificationChannelsResponse' {..} =+ Prelude.rnf notificationConfiguration+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CodeGuruProfiler/BatchGetFrameMetricData.hs view
@@ -0,0 +1,452 @@+{-# 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.CodeGuruProfiler.BatchGetFrameMetricData+-- 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 time series of values for a requested list of frame metrics+-- from a time period.+module Amazonka.CodeGuruProfiler.BatchGetFrameMetricData+ ( -- * Creating a Request+ BatchGetFrameMetricData (..),+ newBatchGetFrameMetricData,++ -- * Request Lenses+ batchGetFrameMetricData_endTime,+ batchGetFrameMetricData_frameMetrics,+ batchGetFrameMetricData_period,+ batchGetFrameMetricData_startTime,+ batchGetFrameMetricData_targetResolution,+ batchGetFrameMetricData_profilingGroupName,++ -- * Destructuring the Response+ BatchGetFrameMetricDataResponse (..),+ newBatchGetFrameMetricDataResponse,++ -- * Response Lenses+ batchGetFrameMetricDataResponse_httpStatus,+ batchGetFrameMetricDataResponse_endTime,+ batchGetFrameMetricDataResponse_endTimes,+ batchGetFrameMetricDataResponse_frameMetricData,+ batchGetFrameMetricDataResponse_resolution,+ batchGetFrameMetricDataResponse_startTime,+ batchGetFrameMetricDataResponse_unprocessedEndTimes,+ )+where++import Amazonka.CodeGuruProfiler.Types+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The structure representing the BatchGetFrameMetricDataRequest.+--+-- /See:/ 'newBatchGetFrameMetricData' smart constructor.+data BatchGetFrameMetricData = BatchGetFrameMetricData'+ { -- | The end time of the time period for the returned time series values.+ -- This is specified using the ISO 8601 format. For example,+ -- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+ -- 1:15:02 PM UTC.+ endTime :: Prelude.Maybe Data.ISO8601,+ -- | The details of the metrics that are used to request a time series of+ -- values. The metric includes the name of the frame, the aggregation type+ -- to calculate the metric value for the frame, and the thread states to+ -- use to get the count for the metric value of the frame.+ frameMetrics :: Prelude.Maybe [FrameMetric],+ -- | The duration of the frame metrics used to return the time series values.+ -- Specify using the ISO 8601 format. The maximum period duration is one+ -- day (@PT24H@ or @P1D@).+ period :: Prelude.Maybe Prelude.Text,+ -- | The start time of the time period for the frame metrics used to return+ -- the time series values. This is specified using the ISO 8601 format. For+ -- example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1,+ -- 2020 1:15:02 PM UTC.+ startTime :: Prelude.Maybe Data.ISO8601,+ -- | The requested resolution of time steps for the returned time series of+ -- values. If the requested target resolution is not available due to data+ -- not being retained we provide a best effort result by falling back to+ -- the most granular available resolution after the target resolution.+ -- There are 3 valid values.+ --+ -- - @P1D@ — 1 day+ --+ -- - @PT1H@ — 1 hour+ --+ -- - @PT5M@ — 5 minutes+ targetResolution :: Prelude.Maybe AggregationPeriod,+ -- | The name of the profiling group associated with the the frame metrics+ -- used to return the time series values.+ profilingGroupName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchGetFrameMetricData' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'batchGetFrameMetricData_endTime' - The end time of the time period for the returned time series values.+-- This is specified using the ISO 8601 format. For example,+-- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+-- 1:15:02 PM UTC.+--+-- 'frameMetrics', 'batchGetFrameMetricData_frameMetrics' - The details of the metrics that are used to request a time series of+-- values. The metric includes the name of the frame, the aggregation type+-- to calculate the metric value for the frame, and the thread states to+-- use to get the count for the metric value of the frame.+--+-- 'period', 'batchGetFrameMetricData_period' - The duration of the frame metrics used to return the time series values.+-- Specify using the ISO 8601 format. The maximum period duration is one+-- day (@PT24H@ or @P1D@).+--+-- 'startTime', 'batchGetFrameMetricData_startTime' - The start time of the time period for the frame metrics used to return+-- the time series values. This is specified using the ISO 8601 format. For+-- example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1,+-- 2020 1:15:02 PM UTC.+--+-- 'targetResolution', 'batchGetFrameMetricData_targetResolution' - The requested resolution of time steps for the returned time series of+-- values. If the requested target resolution is not available due to data+-- not being retained we provide a best effort result by falling back to+-- the most granular available resolution after the target resolution.+-- There are 3 valid values.+--+-- - @P1D@ — 1 day+--+-- - @PT1H@ — 1 hour+--+-- - @PT5M@ — 5 minutes+--+-- 'profilingGroupName', 'batchGetFrameMetricData_profilingGroupName' - The name of the profiling group associated with the the frame metrics+-- used to return the time series values.+newBatchGetFrameMetricData ::+ -- | 'profilingGroupName'+ Prelude.Text ->+ BatchGetFrameMetricData+newBatchGetFrameMetricData pProfilingGroupName_ =+ BatchGetFrameMetricData'+ { endTime = Prelude.Nothing,+ frameMetrics = Prelude.Nothing,+ period = Prelude.Nothing,+ startTime = Prelude.Nothing,+ targetResolution = Prelude.Nothing,+ profilingGroupName = pProfilingGroupName_+ }++-- | The end time of the time period for the returned time series values.+-- This is specified using the ISO 8601 format. For example,+-- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+-- 1:15:02 PM UTC.+batchGetFrameMetricData_endTime :: Lens.Lens' BatchGetFrameMetricData (Prelude.Maybe Prelude.UTCTime)+batchGetFrameMetricData_endTime = Lens.lens (\BatchGetFrameMetricData' {endTime} -> endTime) (\s@BatchGetFrameMetricData' {} a -> s {endTime = a} :: BatchGetFrameMetricData) Prelude.. Lens.mapping Data._Time++-- | The details of the metrics that are used to request a time series of+-- values. The metric includes the name of the frame, the aggregation type+-- to calculate the metric value for the frame, and the thread states to+-- use to get the count for the metric value of the frame.+batchGetFrameMetricData_frameMetrics :: Lens.Lens' BatchGetFrameMetricData (Prelude.Maybe [FrameMetric])+batchGetFrameMetricData_frameMetrics = Lens.lens (\BatchGetFrameMetricData' {frameMetrics} -> frameMetrics) (\s@BatchGetFrameMetricData' {} a -> s {frameMetrics = a} :: BatchGetFrameMetricData) Prelude.. Lens.mapping Lens.coerced++-- | The duration of the frame metrics used to return the time series values.+-- Specify using the ISO 8601 format. The maximum period duration is one+-- day (@PT24H@ or @P1D@).+batchGetFrameMetricData_period :: Lens.Lens' BatchGetFrameMetricData (Prelude.Maybe Prelude.Text)+batchGetFrameMetricData_period = Lens.lens (\BatchGetFrameMetricData' {period} -> period) (\s@BatchGetFrameMetricData' {} a -> s {period = a} :: BatchGetFrameMetricData)++-- | The start time of the time period for the frame metrics used to return+-- the time series values. This is specified using the ISO 8601 format. For+-- example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1,+-- 2020 1:15:02 PM UTC.+batchGetFrameMetricData_startTime :: Lens.Lens' BatchGetFrameMetricData (Prelude.Maybe Prelude.UTCTime)+batchGetFrameMetricData_startTime = Lens.lens (\BatchGetFrameMetricData' {startTime} -> startTime) (\s@BatchGetFrameMetricData' {} a -> s {startTime = a} :: BatchGetFrameMetricData) Prelude.. Lens.mapping Data._Time++-- | The requested resolution of time steps for the returned time series of+-- values. If the requested target resolution is not available due to data+-- not being retained we provide a best effort result by falling back to+-- the most granular available resolution after the target resolution.+-- There are 3 valid values.+--+-- - @P1D@ — 1 day+--+-- - @PT1H@ — 1 hour+--+-- - @PT5M@ — 5 minutes+batchGetFrameMetricData_targetResolution :: Lens.Lens' BatchGetFrameMetricData (Prelude.Maybe AggregationPeriod)+batchGetFrameMetricData_targetResolution = Lens.lens (\BatchGetFrameMetricData' {targetResolution} -> targetResolution) (\s@BatchGetFrameMetricData' {} a -> s {targetResolution = a} :: BatchGetFrameMetricData)++-- | The name of the profiling group associated with the the frame metrics+-- used to return the time series values.+batchGetFrameMetricData_profilingGroupName :: Lens.Lens' BatchGetFrameMetricData Prelude.Text+batchGetFrameMetricData_profilingGroupName = Lens.lens (\BatchGetFrameMetricData' {profilingGroupName} -> profilingGroupName) (\s@BatchGetFrameMetricData' {} a -> s {profilingGroupName = a} :: BatchGetFrameMetricData)++instance Core.AWSRequest BatchGetFrameMetricData where+ type+ AWSResponse BatchGetFrameMetricData =+ BatchGetFrameMetricDataResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ BatchGetFrameMetricDataResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "endTime")+ Prelude.<*> (x Data..?> "endTimes" Core..!@ Prelude.mempty)+ Prelude.<*> ( x+ Data..?> "frameMetricData"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..:> "resolution")+ Prelude.<*> (x Data..:> "startTime")+ Prelude.<*> ( x+ Data..?> "unprocessedEndTimes"+ Core..!@ Prelude.mempty+ )+ )++instance Prelude.Hashable BatchGetFrameMetricData where+ hashWithSalt _salt BatchGetFrameMetricData' {..} =+ _salt+ `Prelude.hashWithSalt` endTime+ `Prelude.hashWithSalt` frameMetrics+ `Prelude.hashWithSalt` period+ `Prelude.hashWithSalt` startTime+ `Prelude.hashWithSalt` targetResolution+ `Prelude.hashWithSalt` profilingGroupName++instance Prelude.NFData BatchGetFrameMetricData where+ rnf BatchGetFrameMetricData' {..} =+ Prelude.rnf endTime+ `Prelude.seq` Prelude.rnf frameMetrics+ `Prelude.seq` Prelude.rnf period+ `Prelude.seq` Prelude.rnf startTime+ `Prelude.seq` Prelude.rnf targetResolution+ `Prelude.seq` Prelude.rnf profilingGroupName++instance Data.ToHeaders BatchGetFrameMetricData where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON BatchGetFrameMetricData where+ toJSON BatchGetFrameMetricData' {..} =+ Data.object+ ( Prelude.catMaybes+ [("frameMetrics" Data..=) Prelude.<$> frameMetrics]+ )++instance Data.ToPath BatchGetFrameMetricData where+ toPath BatchGetFrameMetricData' {..} =+ Prelude.mconcat+ [ "/profilingGroups/",+ Data.toBS profilingGroupName,+ "/frames/-/metrics"+ ]++instance Data.ToQuery BatchGetFrameMetricData where+ toQuery BatchGetFrameMetricData' {..} =+ Prelude.mconcat+ [ "endTime" Data.=: endTime,+ "period" Data.=: period,+ "startTime" Data.=: startTime,+ "targetResolution" Data.=: targetResolution+ ]++-- | The structure representing the BatchGetFrameMetricDataResponse.+--+-- /See:/ 'newBatchGetFrameMetricDataResponse' smart constructor.+data BatchGetFrameMetricDataResponse = BatchGetFrameMetricDataResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The end time of the time period for the returned time series values.+ -- This is specified using the ISO 8601 format. For example,+ -- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+ -- 1:15:02 PM UTC.+ endTime :: Data.ISO8601,+ -- | List of instances, or time steps, in the time series. For example, if+ -- the @period@ is one day (@PT24H)@), and the @resolution@ is five minutes+ -- (@PT5M@), then there are 288 @endTimes@ in the list that are each five+ -- minutes appart.+ endTimes :: [TimestampStructure],+ -- | Details of the metrics to request a time series of values. The metric+ -- includes the name of the frame, the aggregation type to calculate the+ -- metric value for the frame, and the thread states to use to get the+ -- count for the metric value of the frame.+ frameMetricData :: [FrameMetricDatum],+ -- | Resolution or granularity of the profile data used to generate the time+ -- series. This is the value used to jump through time steps in a time+ -- series. There are 3 valid values.+ --+ -- - @P1D@ — 1 day+ --+ -- - @PT1H@ — 1 hour+ --+ -- - @PT5M@ — 5 minutes+ resolution :: AggregationPeriod,+ -- | The start time of the time period for the returned time series values.+ -- This is specified using the ISO 8601 format. For example,+ -- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+ -- 1:15:02 PM UTC.+ startTime :: Data.ISO8601,+ -- | List of instances which remained unprocessed. This will create a missing+ -- time step in the list of end times.+ unprocessedEndTimes :: Prelude.HashMap Prelude.Text [TimestampStructure]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchGetFrameMetricDataResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'batchGetFrameMetricDataResponse_httpStatus' - The response's http status code.+--+-- 'endTime', 'batchGetFrameMetricDataResponse_endTime' - The end time of the time period for the returned time series values.+-- This is specified using the ISO 8601 format. For example,+-- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+-- 1:15:02 PM UTC.+--+-- 'endTimes', 'batchGetFrameMetricDataResponse_endTimes' - List of instances, or time steps, in the time series. For example, if+-- the @period@ is one day (@PT24H)@), and the @resolution@ is five minutes+-- (@PT5M@), then there are 288 @endTimes@ in the list that are each five+-- minutes appart.+--+-- 'frameMetricData', 'batchGetFrameMetricDataResponse_frameMetricData' - Details of the metrics to request a time series of values. The metric+-- includes the name of the frame, the aggregation type to calculate the+-- metric value for the frame, and the thread states to use to get the+-- count for the metric value of the frame.+--+-- 'resolution', 'batchGetFrameMetricDataResponse_resolution' - Resolution or granularity of the profile data used to generate the time+-- series. This is the value used to jump through time steps in a time+-- series. There are 3 valid values.+--+-- - @P1D@ — 1 day+--+-- - @PT1H@ — 1 hour+--+-- - @PT5M@ — 5 minutes+--+-- 'startTime', 'batchGetFrameMetricDataResponse_startTime' - The start time of the time period for the returned time series values.+-- This is specified using the ISO 8601 format. For example,+-- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+-- 1:15:02 PM UTC.+--+-- 'unprocessedEndTimes', 'batchGetFrameMetricDataResponse_unprocessedEndTimes' - List of instances which remained unprocessed. This will create a missing+-- time step in the list of end times.+newBatchGetFrameMetricDataResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'endTime'+ Prelude.UTCTime ->+ -- | 'resolution'+ AggregationPeriod ->+ -- | 'startTime'+ Prelude.UTCTime ->+ BatchGetFrameMetricDataResponse+newBatchGetFrameMetricDataResponse+ pHttpStatus_+ pEndTime_+ pResolution_+ pStartTime_ =+ BatchGetFrameMetricDataResponse'+ { httpStatus =+ pHttpStatus_,+ endTime = Data._Time Lens.# pEndTime_,+ endTimes = Prelude.mempty,+ frameMetricData = Prelude.mempty,+ resolution = pResolution_,+ startTime = Data._Time Lens.# pStartTime_,+ unprocessedEndTimes = Prelude.mempty+ }++-- | The response's http status code.+batchGetFrameMetricDataResponse_httpStatus :: Lens.Lens' BatchGetFrameMetricDataResponse Prelude.Int+batchGetFrameMetricDataResponse_httpStatus = Lens.lens (\BatchGetFrameMetricDataResponse' {httpStatus} -> httpStatus) (\s@BatchGetFrameMetricDataResponse' {} a -> s {httpStatus = a} :: BatchGetFrameMetricDataResponse)++-- | The end time of the time period for the returned time series values.+-- This is specified using the ISO 8601 format. For example,+-- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+-- 1:15:02 PM UTC.+batchGetFrameMetricDataResponse_endTime :: Lens.Lens' BatchGetFrameMetricDataResponse Prelude.UTCTime+batchGetFrameMetricDataResponse_endTime = Lens.lens (\BatchGetFrameMetricDataResponse' {endTime} -> endTime) (\s@BatchGetFrameMetricDataResponse' {} a -> s {endTime = a} :: BatchGetFrameMetricDataResponse) Prelude.. Data._Time++-- | List of instances, or time steps, in the time series. For example, if+-- the @period@ is one day (@PT24H)@), and the @resolution@ is five minutes+-- (@PT5M@), then there are 288 @endTimes@ in the list that are each five+-- minutes appart.+batchGetFrameMetricDataResponse_endTimes :: Lens.Lens' BatchGetFrameMetricDataResponse [TimestampStructure]+batchGetFrameMetricDataResponse_endTimes = Lens.lens (\BatchGetFrameMetricDataResponse' {endTimes} -> endTimes) (\s@BatchGetFrameMetricDataResponse' {} a -> s {endTimes = a} :: BatchGetFrameMetricDataResponse) Prelude.. Lens.coerced++-- | Details of the metrics to request a time series of values. The metric+-- includes the name of the frame, the aggregation type to calculate the+-- metric value for the frame, and the thread states to use to get the+-- count for the metric value of the frame.+batchGetFrameMetricDataResponse_frameMetricData :: Lens.Lens' BatchGetFrameMetricDataResponse [FrameMetricDatum]+batchGetFrameMetricDataResponse_frameMetricData = Lens.lens (\BatchGetFrameMetricDataResponse' {frameMetricData} -> frameMetricData) (\s@BatchGetFrameMetricDataResponse' {} a -> s {frameMetricData = a} :: BatchGetFrameMetricDataResponse) Prelude.. Lens.coerced++-- | Resolution or granularity of the profile data used to generate the time+-- series. This is the value used to jump through time steps in a time+-- series. There are 3 valid values.+--+-- - @P1D@ — 1 day+--+-- - @PT1H@ — 1 hour+--+-- - @PT5M@ — 5 minutes+batchGetFrameMetricDataResponse_resolution :: Lens.Lens' BatchGetFrameMetricDataResponse AggregationPeriod+batchGetFrameMetricDataResponse_resolution = Lens.lens (\BatchGetFrameMetricDataResponse' {resolution} -> resolution) (\s@BatchGetFrameMetricDataResponse' {} a -> s {resolution = a} :: BatchGetFrameMetricDataResponse)++-- | The start time of the time period for the returned time series values.+-- This is specified using the ISO 8601 format. For example,+-- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+-- 1:15:02 PM UTC.+batchGetFrameMetricDataResponse_startTime :: Lens.Lens' BatchGetFrameMetricDataResponse Prelude.UTCTime+batchGetFrameMetricDataResponse_startTime = Lens.lens (\BatchGetFrameMetricDataResponse' {startTime} -> startTime) (\s@BatchGetFrameMetricDataResponse' {} a -> s {startTime = a} :: BatchGetFrameMetricDataResponse) Prelude.. Data._Time++-- | List of instances which remained unprocessed. This will create a missing+-- time step in the list of end times.+batchGetFrameMetricDataResponse_unprocessedEndTimes :: Lens.Lens' BatchGetFrameMetricDataResponse (Prelude.HashMap Prelude.Text [TimestampStructure])+batchGetFrameMetricDataResponse_unprocessedEndTimes = Lens.lens (\BatchGetFrameMetricDataResponse' {unprocessedEndTimes} -> unprocessedEndTimes) (\s@BatchGetFrameMetricDataResponse' {} a -> s {unprocessedEndTimes = a} :: BatchGetFrameMetricDataResponse) Prelude.. Lens.coerced++instance+ Prelude.NFData+ BatchGetFrameMetricDataResponse+ where+ rnf BatchGetFrameMetricDataResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf endTime+ `Prelude.seq` Prelude.rnf endTimes+ `Prelude.seq` Prelude.rnf frameMetricData+ `Prelude.seq` Prelude.rnf resolution+ `Prelude.seq` Prelude.rnf startTime+ `Prelude.seq` Prelude.rnf unprocessedEndTimes
+ gen/Amazonka/CodeGuruProfiler/ConfigureAgent.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.CodeGuruProfiler.ConfigureAgent+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Used by profiler agents to report their current state and to receive+-- remote configuration updates. For example, @ConfigureAgent@ can be used+-- to tell an agent whether to profile or not and for how long to return+-- profiling data.+module Amazonka.CodeGuruProfiler.ConfigureAgent+ ( -- * Creating a Request+ ConfigureAgent (..),+ newConfigureAgent,++ -- * Request Lenses+ configureAgent_fleetInstanceId,+ configureAgent_metadata,+ configureAgent_profilingGroupName,++ -- * Destructuring the Response+ ConfigureAgentResponse (..),+ newConfigureAgentResponse,++ -- * Response Lenses+ configureAgentResponse_httpStatus,+ configureAgentResponse_configuration,+ )+where++import Amazonka.CodeGuruProfiler.Types+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The structure representing the configureAgentRequest.+--+-- /See:/ 'newConfigureAgent' smart constructor.+data ConfigureAgent = ConfigureAgent'+ { -- | A universally unique identifier (UUID) for a profiling instance. For+ -- example, if the profiling instance is an Amazon EC2 instance, it is the+ -- instance ID. If it is an AWS Fargate container, it is the container\'s+ -- task ID.+ fleetInstanceId :: Prelude.Maybe Prelude.Text,+ -- | Metadata captured about the compute platform the agent is running on. It+ -- includes information about sampling and reporting. The valid fields are:+ --+ -- - @COMPUTE_PLATFORM@ - The compute platform on which the agent is+ -- running+ --+ -- - @AGENT_ID@ - The ID for an agent instance.+ --+ -- - @AWS_REQUEST_ID@ - The AWS request ID of a Lambda invocation.+ --+ -- - @EXECUTION_ENVIRONMENT@ - The execution environment a Lambda+ -- function is running on.+ --+ -- - @LAMBDA_FUNCTION_ARN@ - The Amazon Resource Name (ARN) that is used+ -- to invoke a Lambda function.+ --+ -- - @LAMBDA_MEMORY_LIMIT_IN_MB@ - The memory allocated to a Lambda+ -- function.+ --+ -- - @LAMBDA_REMAINING_TIME_IN_MILLISECONDS@ - The time in milliseconds+ -- before execution of a Lambda function times out.+ --+ -- - @LAMBDA_TIME_GAP_BETWEEN_INVOKES_IN_MILLISECONDS@ - The time in+ -- milliseconds between two invocations of a Lambda function.+ --+ -- - @LAMBDA_PREVIOUS_EXECUTION_TIME_IN_MILLISECONDS@ - The time in+ -- milliseconds for the previous Lambda invocation.+ metadata :: Prelude.Maybe (Prelude.HashMap MetadataField Prelude.Text),+ -- | The name of the profiling group for which the configured agent is+ -- collecting profiling data.+ profilingGroupName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConfigureAgent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fleetInstanceId', 'configureAgent_fleetInstanceId' - A universally unique identifier (UUID) for a profiling instance. For+-- example, if the profiling instance is an Amazon EC2 instance, it is the+-- instance ID. If it is an AWS Fargate container, it is the container\'s+-- task ID.+--+-- 'metadata', 'configureAgent_metadata' - Metadata captured about the compute platform the agent is running on. It+-- includes information about sampling and reporting. The valid fields are:+--+-- - @COMPUTE_PLATFORM@ - The compute platform on which the agent is+-- running+--+-- - @AGENT_ID@ - The ID for an agent instance.+--+-- - @AWS_REQUEST_ID@ - The AWS request ID of a Lambda invocation.+--+-- - @EXECUTION_ENVIRONMENT@ - The execution environment a Lambda+-- function is running on.+--+-- - @LAMBDA_FUNCTION_ARN@ - The Amazon Resource Name (ARN) that is used+-- to invoke a Lambda function.+--+-- - @LAMBDA_MEMORY_LIMIT_IN_MB@ - The memory allocated to a Lambda+-- function.+--+-- - @LAMBDA_REMAINING_TIME_IN_MILLISECONDS@ - The time in milliseconds+-- before execution of a Lambda function times out.+--+-- - @LAMBDA_TIME_GAP_BETWEEN_INVOKES_IN_MILLISECONDS@ - The time in+-- milliseconds between two invocations of a Lambda function.+--+-- - @LAMBDA_PREVIOUS_EXECUTION_TIME_IN_MILLISECONDS@ - The time in+-- milliseconds for the previous Lambda invocation.+--+-- 'profilingGroupName', 'configureAgent_profilingGroupName' - The name of the profiling group for which the configured agent is+-- collecting profiling data.+newConfigureAgent ::+ -- | 'profilingGroupName'+ Prelude.Text ->+ ConfigureAgent+newConfigureAgent pProfilingGroupName_ =+ ConfigureAgent'+ { fleetInstanceId = Prelude.Nothing,+ metadata = Prelude.Nothing,+ profilingGroupName = pProfilingGroupName_+ }++-- | A universally unique identifier (UUID) for a profiling instance. For+-- example, if the profiling instance is an Amazon EC2 instance, it is the+-- instance ID. If it is an AWS Fargate container, it is the container\'s+-- task ID.+configureAgent_fleetInstanceId :: Lens.Lens' ConfigureAgent (Prelude.Maybe Prelude.Text)+configureAgent_fleetInstanceId = Lens.lens (\ConfigureAgent' {fleetInstanceId} -> fleetInstanceId) (\s@ConfigureAgent' {} a -> s {fleetInstanceId = a} :: ConfigureAgent)++-- | Metadata captured about the compute platform the agent is running on. It+-- includes information about sampling and reporting. The valid fields are:+--+-- - @COMPUTE_PLATFORM@ - The compute platform on which the agent is+-- running+--+-- - @AGENT_ID@ - The ID for an agent instance.+--+-- - @AWS_REQUEST_ID@ - The AWS request ID of a Lambda invocation.+--+-- - @EXECUTION_ENVIRONMENT@ - The execution environment a Lambda+-- function is running on.+--+-- - @LAMBDA_FUNCTION_ARN@ - The Amazon Resource Name (ARN) that is used+-- to invoke a Lambda function.+--+-- - @LAMBDA_MEMORY_LIMIT_IN_MB@ - The memory allocated to a Lambda+-- function.+--+-- - @LAMBDA_REMAINING_TIME_IN_MILLISECONDS@ - The time in milliseconds+-- before execution of a Lambda function times out.+--+-- - @LAMBDA_TIME_GAP_BETWEEN_INVOKES_IN_MILLISECONDS@ - The time in+-- milliseconds between two invocations of a Lambda function.+--+-- - @LAMBDA_PREVIOUS_EXECUTION_TIME_IN_MILLISECONDS@ - The time in+-- milliseconds for the previous Lambda invocation.+configureAgent_metadata :: Lens.Lens' ConfigureAgent (Prelude.Maybe (Prelude.HashMap MetadataField Prelude.Text))+configureAgent_metadata = Lens.lens (\ConfigureAgent' {metadata} -> metadata) (\s@ConfigureAgent' {} a -> s {metadata = a} :: ConfigureAgent) Prelude.. Lens.mapping Lens.coerced++-- | The name of the profiling group for which the configured agent is+-- collecting profiling data.+configureAgent_profilingGroupName :: Lens.Lens' ConfigureAgent Prelude.Text+configureAgent_profilingGroupName = Lens.lens (\ConfigureAgent' {profilingGroupName} -> profilingGroupName) (\s@ConfigureAgent' {} a -> s {profilingGroupName = a} :: ConfigureAgent)++instance Core.AWSRequest ConfigureAgent where+ type+ AWSResponse ConfigureAgent =+ ConfigureAgentResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ConfigureAgentResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable ConfigureAgent where+ hashWithSalt _salt ConfigureAgent' {..} =+ _salt+ `Prelude.hashWithSalt` fleetInstanceId+ `Prelude.hashWithSalt` metadata+ `Prelude.hashWithSalt` profilingGroupName++instance Prelude.NFData ConfigureAgent where+ rnf ConfigureAgent' {..} =+ Prelude.rnf fleetInstanceId+ `Prelude.seq` Prelude.rnf metadata+ `Prelude.seq` Prelude.rnf profilingGroupName++instance Data.ToHeaders ConfigureAgent where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ConfigureAgent where+ toJSON ConfigureAgent' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("fleetInstanceId" Data..=)+ Prelude.<$> fleetInstanceId,+ ("metadata" Data..=) Prelude.<$> metadata+ ]+ )++instance Data.ToPath ConfigureAgent where+ toPath ConfigureAgent' {..} =+ Prelude.mconcat+ [ "/profilingGroups/",+ Data.toBS profilingGroupName,+ "/configureAgent"+ ]++instance Data.ToQuery ConfigureAgent where+ toQuery = Prelude.const Prelude.mempty++-- | The structure representing the configureAgentResponse.+--+-- /See:/ 'newConfigureAgentResponse' smart constructor.+data ConfigureAgentResponse = ConfigureAgentResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | An+ -- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AgentConfiguration.html AgentConfiguration>+ -- object that specifies if an agent profiles or not and for how long to+ -- return profiling data.+ configuration :: AgentConfiguration+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConfigureAgentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'configureAgentResponse_httpStatus' - The response's http status code.+--+-- 'configuration', 'configureAgentResponse_configuration' - An+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AgentConfiguration.html AgentConfiguration>+-- object that specifies if an agent profiles or not and for how long to+-- return profiling data.+newConfigureAgentResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'configuration'+ AgentConfiguration ->+ ConfigureAgentResponse+newConfigureAgentResponse+ pHttpStatus_+ pConfiguration_ =+ ConfigureAgentResponse'+ { httpStatus = pHttpStatus_,+ configuration = pConfiguration_+ }++-- | The response's http status code.+configureAgentResponse_httpStatus :: Lens.Lens' ConfigureAgentResponse Prelude.Int+configureAgentResponse_httpStatus = Lens.lens (\ConfigureAgentResponse' {httpStatus} -> httpStatus) (\s@ConfigureAgentResponse' {} a -> s {httpStatus = a} :: ConfigureAgentResponse)++-- | An+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AgentConfiguration.html AgentConfiguration>+-- object that specifies if an agent profiles or not and for how long to+-- return profiling data.+configureAgentResponse_configuration :: Lens.Lens' ConfigureAgentResponse AgentConfiguration+configureAgentResponse_configuration = Lens.lens (\ConfigureAgentResponse' {configuration} -> configuration) (\s@ConfigureAgentResponse' {} a -> s {configuration = a} :: ConfigureAgentResponse)++instance Prelude.NFData ConfigureAgentResponse where+ rnf ConfigureAgentResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf configuration
+ gen/Amazonka/CodeGuruProfiler/CreateProfilingGroup.hs view
@@ -0,0 +1,264 @@+{-# 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.CodeGuruProfiler.CreateProfilingGroup+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a profiling group.+module Amazonka.CodeGuruProfiler.CreateProfilingGroup+ ( -- * Creating a Request+ CreateProfilingGroup (..),+ newCreateProfilingGroup,++ -- * Request Lenses+ createProfilingGroup_agentOrchestrationConfig,+ createProfilingGroup_computePlatform,+ createProfilingGroup_tags,+ createProfilingGroup_clientToken,+ createProfilingGroup_profilingGroupName,++ -- * Destructuring the Response+ CreateProfilingGroupResponse (..),+ newCreateProfilingGroupResponse,++ -- * Response Lenses+ createProfilingGroupResponse_httpStatus,+ createProfilingGroupResponse_profilingGroup,+ )+where++import Amazonka.CodeGuruProfiler.Types+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The structure representing the createProfiliingGroupRequest.+--+-- /See:/ 'newCreateProfilingGroup' smart constructor.+data CreateProfilingGroup = CreateProfilingGroup'+ { -- | Specifies whether profiling is enabled or disabled for the created+ -- profiling group.+ agentOrchestrationConfig :: Prelude.Maybe AgentOrchestrationConfig,+ -- | The compute platform of the profiling group. Use @AWSLambda@ if your+ -- application runs on AWS Lambda. Use @Default@ if your application runs+ -- on a compute platform that is not AWS Lambda, such an Amazon EC2+ -- instance, an on-premises server, or a different platform. If not+ -- specified, @Default@ is used.+ computePlatform :: Prelude.Maybe ComputePlatform,+ -- | A list of tags to add to the created profiling group.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | Amazon CodeGuru Profiler uses this universally unique identifier (UUID)+ -- to prevent the accidental creation of duplicate profiling groups if+ -- there are failures and retries.+ clientToken :: Prelude.Text,+ -- | The name of the profiling group to create.+ profilingGroupName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateProfilingGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'agentOrchestrationConfig', 'createProfilingGroup_agentOrchestrationConfig' - Specifies whether profiling is enabled or disabled for the created+-- profiling group.+--+-- 'computePlatform', 'createProfilingGroup_computePlatform' - The compute platform of the profiling group. Use @AWSLambda@ if your+-- application runs on AWS Lambda. Use @Default@ if your application runs+-- on a compute platform that is not AWS Lambda, such an Amazon EC2+-- instance, an on-premises server, or a different platform. If not+-- specified, @Default@ is used.+--+-- 'tags', 'createProfilingGroup_tags' - A list of tags to add to the created profiling group.+--+-- 'clientToken', 'createProfilingGroup_clientToken' - Amazon CodeGuru Profiler uses this universally unique identifier (UUID)+-- to prevent the accidental creation of duplicate profiling groups if+-- there are failures and retries.+--+-- 'profilingGroupName', 'createProfilingGroup_profilingGroupName' - The name of the profiling group to create.+newCreateProfilingGroup ::+ -- | 'clientToken'+ Prelude.Text ->+ -- | 'profilingGroupName'+ Prelude.Text ->+ CreateProfilingGroup+newCreateProfilingGroup+ pClientToken_+ pProfilingGroupName_ =+ CreateProfilingGroup'+ { agentOrchestrationConfig =+ Prelude.Nothing,+ computePlatform = Prelude.Nothing,+ tags = Prelude.Nothing,+ clientToken = pClientToken_,+ profilingGroupName = pProfilingGroupName_+ }++-- | Specifies whether profiling is enabled or disabled for the created+-- profiling group.+createProfilingGroup_agentOrchestrationConfig :: Lens.Lens' CreateProfilingGroup (Prelude.Maybe AgentOrchestrationConfig)+createProfilingGroup_agentOrchestrationConfig = Lens.lens (\CreateProfilingGroup' {agentOrchestrationConfig} -> agentOrchestrationConfig) (\s@CreateProfilingGroup' {} a -> s {agentOrchestrationConfig = a} :: CreateProfilingGroup)++-- | The compute platform of the profiling group. Use @AWSLambda@ if your+-- application runs on AWS Lambda. Use @Default@ if your application runs+-- on a compute platform that is not AWS Lambda, such an Amazon EC2+-- instance, an on-premises server, or a different platform. If not+-- specified, @Default@ is used.+createProfilingGroup_computePlatform :: Lens.Lens' CreateProfilingGroup (Prelude.Maybe ComputePlatform)+createProfilingGroup_computePlatform = Lens.lens (\CreateProfilingGroup' {computePlatform} -> computePlatform) (\s@CreateProfilingGroup' {} a -> s {computePlatform = a} :: CreateProfilingGroup)++-- | A list of tags to add to the created profiling group.+createProfilingGroup_tags :: Lens.Lens' CreateProfilingGroup (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createProfilingGroup_tags = Lens.lens (\CreateProfilingGroup' {tags} -> tags) (\s@CreateProfilingGroup' {} a -> s {tags = a} :: CreateProfilingGroup) Prelude.. Lens.mapping Lens.coerced++-- | Amazon CodeGuru Profiler uses this universally unique identifier (UUID)+-- to prevent the accidental creation of duplicate profiling groups if+-- there are failures and retries.+createProfilingGroup_clientToken :: Lens.Lens' CreateProfilingGroup Prelude.Text+createProfilingGroup_clientToken = Lens.lens (\CreateProfilingGroup' {clientToken} -> clientToken) (\s@CreateProfilingGroup' {} a -> s {clientToken = a} :: CreateProfilingGroup)++-- | The name of the profiling group to create.+createProfilingGroup_profilingGroupName :: Lens.Lens' CreateProfilingGroup Prelude.Text+createProfilingGroup_profilingGroupName = Lens.lens (\CreateProfilingGroup' {profilingGroupName} -> profilingGroupName) (\s@CreateProfilingGroup' {} a -> s {profilingGroupName = a} :: CreateProfilingGroup)++instance Core.AWSRequest CreateProfilingGroup where+ type+ AWSResponse CreateProfilingGroup =+ CreateProfilingGroupResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateProfilingGroupResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable CreateProfilingGroup where+ hashWithSalt _salt CreateProfilingGroup' {..} =+ _salt+ `Prelude.hashWithSalt` agentOrchestrationConfig+ `Prelude.hashWithSalt` computePlatform+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` clientToken+ `Prelude.hashWithSalt` profilingGroupName++instance Prelude.NFData CreateProfilingGroup where+ rnf CreateProfilingGroup' {..} =+ Prelude.rnf agentOrchestrationConfig+ `Prelude.seq` Prelude.rnf computePlatform+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf profilingGroupName++instance Data.ToHeaders CreateProfilingGroup where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateProfilingGroup where+ toJSON CreateProfilingGroup' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("agentOrchestrationConfig" Data..=)+ Prelude.<$> agentOrchestrationConfig,+ ("computePlatform" Data..=)+ Prelude.<$> computePlatform,+ ("tags" Data..=) Prelude.<$> tags,+ Prelude.Just+ ("profilingGroupName" Data..= profilingGroupName)+ ]+ )++instance Data.ToPath CreateProfilingGroup where+ toPath = Prelude.const "/profilingGroups"++instance Data.ToQuery CreateProfilingGroup where+ toQuery CreateProfilingGroup' {..} =+ Prelude.mconcat ["clientToken" Data.=: clientToken]++-- | The structure representing the createProfilingGroupResponse.+--+-- /See:/ 'newCreateProfilingGroupResponse' smart constructor.+data CreateProfilingGroupResponse = CreateProfilingGroupResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The returned+ -- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html ProfilingGroupDescription>+ -- object that contains information about the created profiling group.+ profilingGroup :: ProfilingGroupDescription+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateProfilingGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createProfilingGroupResponse_httpStatus' - The response's http status code.+--+-- 'profilingGroup', 'createProfilingGroupResponse_profilingGroup' - The returned+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html ProfilingGroupDescription>+-- object that contains information about the created profiling group.+newCreateProfilingGroupResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'profilingGroup'+ ProfilingGroupDescription ->+ CreateProfilingGroupResponse+newCreateProfilingGroupResponse+ pHttpStatus_+ pProfilingGroup_ =+ CreateProfilingGroupResponse'+ { httpStatus =+ pHttpStatus_,+ profilingGroup = pProfilingGroup_+ }++-- | The response's http status code.+createProfilingGroupResponse_httpStatus :: Lens.Lens' CreateProfilingGroupResponse Prelude.Int+createProfilingGroupResponse_httpStatus = Lens.lens (\CreateProfilingGroupResponse' {httpStatus} -> httpStatus) (\s@CreateProfilingGroupResponse' {} a -> s {httpStatus = a} :: CreateProfilingGroupResponse)++-- | The returned+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html ProfilingGroupDescription>+-- object that contains information about the created profiling group.+createProfilingGroupResponse_profilingGroup :: Lens.Lens' CreateProfilingGroupResponse ProfilingGroupDescription+createProfilingGroupResponse_profilingGroup = Lens.lens (\CreateProfilingGroupResponse' {profilingGroup} -> profilingGroup) (\s@CreateProfilingGroupResponse' {} a -> s {profilingGroup = a} :: CreateProfilingGroupResponse)++instance Prelude.NFData CreateProfilingGroupResponse where+ rnf CreateProfilingGroupResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf profilingGroup
+ gen/Amazonka/CodeGuruProfiler/DeleteProfilingGroup.hs view
@@ -0,0 +1,155 @@+{-# 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.CodeGuruProfiler.DeleteProfilingGroup+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a profiling group.+module Amazonka.CodeGuruProfiler.DeleteProfilingGroup+ ( -- * Creating a Request+ DeleteProfilingGroup (..),+ newDeleteProfilingGroup,++ -- * Request Lenses+ deleteProfilingGroup_profilingGroupName,++ -- * Destructuring the Response+ DeleteProfilingGroupResponse (..),+ newDeleteProfilingGroupResponse,++ -- * Response Lenses+ deleteProfilingGroupResponse_httpStatus,+ )+where++import Amazonka.CodeGuruProfiler.Types+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The structure representing the deleteProfilingGroupRequest.+--+-- /See:/ 'newDeleteProfilingGroup' smart constructor.+data DeleteProfilingGroup = DeleteProfilingGroup'+ { -- | The name of the profiling group to delete.+ profilingGroupName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteProfilingGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'profilingGroupName', 'deleteProfilingGroup_profilingGroupName' - The name of the profiling group to delete.+newDeleteProfilingGroup ::+ -- | 'profilingGroupName'+ Prelude.Text ->+ DeleteProfilingGroup+newDeleteProfilingGroup pProfilingGroupName_ =+ DeleteProfilingGroup'+ { profilingGroupName =+ pProfilingGroupName_+ }++-- | The name of the profiling group to delete.+deleteProfilingGroup_profilingGroupName :: Lens.Lens' DeleteProfilingGroup Prelude.Text+deleteProfilingGroup_profilingGroupName = Lens.lens (\DeleteProfilingGroup' {profilingGroupName} -> profilingGroupName) (\s@DeleteProfilingGroup' {} a -> s {profilingGroupName = a} :: DeleteProfilingGroup)++instance Core.AWSRequest DeleteProfilingGroup where+ type+ AWSResponse DeleteProfilingGroup =+ DeleteProfilingGroupResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ DeleteProfilingGroupResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteProfilingGroup where+ hashWithSalt _salt DeleteProfilingGroup' {..} =+ _salt `Prelude.hashWithSalt` profilingGroupName++instance Prelude.NFData DeleteProfilingGroup where+ rnf DeleteProfilingGroup' {..} =+ Prelude.rnf profilingGroupName++instance Data.ToHeaders DeleteProfilingGroup where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteProfilingGroup where+ toPath DeleteProfilingGroup' {..} =+ Prelude.mconcat+ ["/profilingGroups/", Data.toBS profilingGroupName]++instance Data.ToQuery DeleteProfilingGroup where+ toQuery = Prelude.const Prelude.mempty++-- | The structure representing the deleteProfilingGroupResponse.+--+-- /See:/ 'newDeleteProfilingGroupResponse' smart constructor.+data DeleteProfilingGroupResponse = DeleteProfilingGroupResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteProfilingGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteProfilingGroupResponse_httpStatus' - The response's http status code.+newDeleteProfilingGroupResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteProfilingGroupResponse+newDeleteProfilingGroupResponse pHttpStatus_ =+ DeleteProfilingGroupResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+deleteProfilingGroupResponse_httpStatus :: Lens.Lens' DeleteProfilingGroupResponse Prelude.Int+deleteProfilingGroupResponse_httpStatus = Lens.lens (\DeleteProfilingGroupResponse' {httpStatus} -> httpStatus) (\s@DeleteProfilingGroupResponse' {} a -> s {httpStatus = a} :: DeleteProfilingGroupResponse)++instance Prelude.NFData DeleteProfilingGroupResponse where+ rnf DeleteProfilingGroupResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/CodeGuruProfiler/DescribeProfilingGroup.hs view
@@ -0,0 +1,182 @@+{-# 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.CodeGuruProfiler.DescribeProfilingGroup+-- 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+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html ProfilingGroupDescription>+-- object that contains information about the requested profiling group.+module Amazonka.CodeGuruProfiler.DescribeProfilingGroup+ ( -- * Creating a Request+ DescribeProfilingGroup (..),+ newDescribeProfilingGroup,++ -- * Request Lenses+ describeProfilingGroup_profilingGroupName,++ -- * Destructuring the Response+ DescribeProfilingGroupResponse (..),+ newDescribeProfilingGroupResponse,++ -- * Response Lenses+ describeProfilingGroupResponse_httpStatus,+ describeProfilingGroupResponse_profilingGroup,+ )+where++import Amazonka.CodeGuruProfiler.Types+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The structure representing the describeProfilingGroupRequest.+--+-- /See:/ 'newDescribeProfilingGroup' smart constructor.+data DescribeProfilingGroup = DescribeProfilingGroup'+ { -- | The name of the profiling group to get information about.+ profilingGroupName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeProfilingGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'profilingGroupName', 'describeProfilingGroup_profilingGroupName' - The name of the profiling group to get information about.+newDescribeProfilingGroup ::+ -- | 'profilingGroupName'+ Prelude.Text ->+ DescribeProfilingGroup+newDescribeProfilingGroup pProfilingGroupName_ =+ DescribeProfilingGroup'+ { profilingGroupName =+ pProfilingGroupName_+ }++-- | The name of the profiling group to get information about.+describeProfilingGroup_profilingGroupName :: Lens.Lens' DescribeProfilingGroup Prelude.Text+describeProfilingGroup_profilingGroupName = Lens.lens (\DescribeProfilingGroup' {profilingGroupName} -> profilingGroupName) (\s@DescribeProfilingGroup' {} a -> s {profilingGroupName = a} :: DescribeProfilingGroup)++instance Core.AWSRequest DescribeProfilingGroup where+ type+ AWSResponse DescribeProfilingGroup =+ DescribeProfilingGroupResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeProfilingGroupResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable DescribeProfilingGroup where+ hashWithSalt _salt DescribeProfilingGroup' {..} =+ _salt `Prelude.hashWithSalt` profilingGroupName++instance Prelude.NFData DescribeProfilingGroup where+ rnf DescribeProfilingGroup' {..} =+ Prelude.rnf profilingGroupName++instance Data.ToHeaders DescribeProfilingGroup where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DescribeProfilingGroup where+ toPath DescribeProfilingGroup' {..} =+ Prelude.mconcat+ ["/profilingGroups/", Data.toBS profilingGroupName]++instance Data.ToQuery DescribeProfilingGroup where+ toQuery = Prelude.const Prelude.mempty++-- | The structure representing the describeProfilingGroupResponse.+--+-- /See:/ 'newDescribeProfilingGroupResponse' smart constructor.+data DescribeProfilingGroupResponse = DescribeProfilingGroupResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The returned+ -- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html ProfilingGroupDescription>+ -- object that contains information about the requested profiling group.+ profilingGroup :: ProfilingGroupDescription+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeProfilingGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeProfilingGroupResponse_httpStatus' - The response's http status code.+--+-- 'profilingGroup', 'describeProfilingGroupResponse_profilingGroup' - The returned+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html ProfilingGroupDescription>+-- object that contains information about the requested profiling group.+newDescribeProfilingGroupResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'profilingGroup'+ ProfilingGroupDescription ->+ DescribeProfilingGroupResponse+newDescribeProfilingGroupResponse+ pHttpStatus_+ pProfilingGroup_ =+ DescribeProfilingGroupResponse'+ { httpStatus =+ pHttpStatus_,+ profilingGroup = pProfilingGroup_+ }++-- | The response's http status code.+describeProfilingGroupResponse_httpStatus :: Lens.Lens' DescribeProfilingGroupResponse Prelude.Int+describeProfilingGroupResponse_httpStatus = Lens.lens (\DescribeProfilingGroupResponse' {httpStatus} -> httpStatus) (\s@DescribeProfilingGroupResponse' {} a -> s {httpStatus = a} :: DescribeProfilingGroupResponse)++-- | The returned+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html ProfilingGroupDescription>+-- object that contains information about the requested profiling group.+describeProfilingGroupResponse_profilingGroup :: Lens.Lens' DescribeProfilingGroupResponse ProfilingGroupDescription+describeProfilingGroupResponse_profilingGroup = Lens.lens (\DescribeProfilingGroupResponse' {profilingGroup} -> profilingGroup) (\s@DescribeProfilingGroupResponse' {} a -> s {profilingGroup = a} :: DescribeProfilingGroupResponse)++instance+ Prelude.NFData+ DescribeProfilingGroupResponse+ where+ rnf DescribeProfilingGroupResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf profilingGroup
+ gen/Amazonka/CodeGuruProfiler/GetFindingsReportAccountSummary.hs view
@@ -0,0 +1,301 @@+{-# 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.CodeGuruProfiler.GetFindingsReportAccountSummary+-- 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+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_FindingsReportSummary.html FindingsReportSummary>+-- objects that contain analysis results for all profiling groups in your+-- AWS account.+module Amazonka.CodeGuruProfiler.GetFindingsReportAccountSummary+ ( -- * Creating a Request+ GetFindingsReportAccountSummary (..),+ newGetFindingsReportAccountSummary,++ -- * Request Lenses+ getFindingsReportAccountSummary_dailyReportsOnly,+ getFindingsReportAccountSummary_maxResults,+ getFindingsReportAccountSummary_nextToken,++ -- * Destructuring the Response+ GetFindingsReportAccountSummaryResponse (..),+ newGetFindingsReportAccountSummaryResponse,++ -- * Response Lenses+ getFindingsReportAccountSummaryResponse_nextToken,+ getFindingsReportAccountSummaryResponse_httpStatus,+ getFindingsReportAccountSummaryResponse_reportSummaries,+ )+where++import Amazonka.CodeGuruProfiler.Types+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The structure representing the GetFindingsReportAccountSummaryRequest.+--+-- /See:/ 'newGetFindingsReportAccountSummary' smart constructor.+data GetFindingsReportAccountSummary = GetFindingsReportAccountSummary'+ { -- | A @Boolean@ value indicating whether to only return reports from daily+ -- profiles. If set to @True@, only analysis data from daily profiles is+ -- returned. If set to @False@, analysis data is returned from smaller time+ -- windows (for example, one hour).+ dailyReportsOnly :: Prelude.Maybe Prelude.Bool,+ -- | The maximum number of results returned by+ -- @ GetFindingsReportAccountSummary@ in paginated output. When this+ -- parameter is used, @GetFindingsReportAccountSummary@ only returns+ -- @maxResults@ results in a single page along with a @nextToken@ response+ -- element. The remaining results of the initial request can be seen by+ -- sending another @GetFindingsReportAccountSummary@ request with the+ -- returned @nextToken@ value.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The @nextToken@ value returned from a previous paginated+ -- @GetFindingsReportAccountSummary@ request where @maxResults@ was used+ -- and the results exceeded the value of that parameter. Pagination+ -- continues from the end of the previous results that returned the+ -- @nextToken@ value.+ --+ -- This token should be treated as an opaque identifier that is only used+ -- to retrieve the next items in a list and not for other programmatic+ -- purposes.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetFindingsReportAccountSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dailyReportsOnly', 'getFindingsReportAccountSummary_dailyReportsOnly' - A @Boolean@ value indicating whether to only return reports from daily+-- profiles. If set to @True@, only analysis data from daily profiles is+-- returned. If set to @False@, analysis data is returned from smaller time+-- windows (for example, one hour).+--+-- 'maxResults', 'getFindingsReportAccountSummary_maxResults' - The maximum number of results returned by+-- @ GetFindingsReportAccountSummary@ in paginated output. When this+-- parameter is used, @GetFindingsReportAccountSummary@ only returns+-- @maxResults@ results in a single page along with a @nextToken@ response+-- element. The remaining results of the initial request can be seen by+-- sending another @GetFindingsReportAccountSummary@ request with the+-- returned @nextToken@ value.+--+-- 'nextToken', 'getFindingsReportAccountSummary_nextToken' - The @nextToken@ value returned from a previous paginated+-- @GetFindingsReportAccountSummary@ request where @maxResults@ was used+-- and the results exceeded the value of that parameter. Pagination+-- continues from the end of the previous results that returned the+-- @nextToken@ value.+--+-- This token should be treated as an opaque identifier that is only used+-- to retrieve the next items in a list and not for other programmatic+-- purposes.+newGetFindingsReportAccountSummary ::+ GetFindingsReportAccountSummary+newGetFindingsReportAccountSummary =+ GetFindingsReportAccountSummary'+ { dailyReportsOnly =+ Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing+ }++-- | A @Boolean@ value indicating whether to only return reports from daily+-- profiles. If set to @True@, only analysis data from daily profiles is+-- returned. If set to @False@, analysis data is returned from smaller time+-- windows (for example, one hour).+getFindingsReportAccountSummary_dailyReportsOnly :: Lens.Lens' GetFindingsReportAccountSummary (Prelude.Maybe Prelude.Bool)+getFindingsReportAccountSummary_dailyReportsOnly = Lens.lens (\GetFindingsReportAccountSummary' {dailyReportsOnly} -> dailyReportsOnly) (\s@GetFindingsReportAccountSummary' {} a -> s {dailyReportsOnly = a} :: GetFindingsReportAccountSummary)++-- | The maximum number of results returned by+-- @ GetFindingsReportAccountSummary@ in paginated output. When this+-- parameter is used, @GetFindingsReportAccountSummary@ only returns+-- @maxResults@ results in a single page along with a @nextToken@ response+-- element. The remaining results of the initial request can be seen by+-- sending another @GetFindingsReportAccountSummary@ request with the+-- returned @nextToken@ value.+getFindingsReportAccountSummary_maxResults :: Lens.Lens' GetFindingsReportAccountSummary (Prelude.Maybe Prelude.Natural)+getFindingsReportAccountSummary_maxResults = Lens.lens (\GetFindingsReportAccountSummary' {maxResults} -> maxResults) (\s@GetFindingsReportAccountSummary' {} a -> s {maxResults = a} :: GetFindingsReportAccountSummary)++-- | The @nextToken@ value returned from a previous paginated+-- @GetFindingsReportAccountSummary@ request where @maxResults@ was used+-- and the results exceeded the value of that parameter. Pagination+-- continues from the end of the previous results that returned the+-- @nextToken@ value.+--+-- This token should be treated as an opaque identifier that is only used+-- to retrieve the next items in a list and not for other programmatic+-- purposes.+getFindingsReportAccountSummary_nextToken :: Lens.Lens' GetFindingsReportAccountSummary (Prelude.Maybe Prelude.Text)+getFindingsReportAccountSummary_nextToken = Lens.lens (\GetFindingsReportAccountSummary' {nextToken} -> nextToken) (\s@GetFindingsReportAccountSummary' {} a -> s {nextToken = a} :: GetFindingsReportAccountSummary)++instance+ Core.AWSRequest+ GetFindingsReportAccountSummary+ where+ type+ AWSResponse GetFindingsReportAccountSummary =+ GetFindingsReportAccountSummaryResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetFindingsReportAccountSummaryResponse'+ Prelude.<$> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> ( x+ Data..?> "reportSummaries"+ Core..!@ Prelude.mempty+ )+ )++instance+ Prelude.Hashable+ GetFindingsReportAccountSummary+ where+ hashWithSalt+ _salt+ GetFindingsReportAccountSummary' {..} =+ _salt+ `Prelude.hashWithSalt` dailyReportsOnly+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken++instance+ Prelude.NFData+ GetFindingsReportAccountSummary+ where+ rnf GetFindingsReportAccountSummary' {..} =+ Prelude.rnf dailyReportsOnly+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken++instance+ Data.ToHeaders+ GetFindingsReportAccountSummary+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetFindingsReportAccountSummary where+ toPath = Prelude.const "/internal/findingsReports"++instance Data.ToQuery GetFindingsReportAccountSummary where+ toQuery GetFindingsReportAccountSummary' {..} =+ Prelude.mconcat+ [ "dailyReportsOnly" Data.=: dailyReportsOnly,+ "maxResults" Data.=: maxResults,+ "nextToken" Data.=: nextToken+ ]++-- | The structure representing the GetFindingsReportAccountSummaryResponse.+--+-- /See:/ 'newGetFindingsReportAccountSummaryResponse' smart constructor.+data GetFindingsReportAccountSummaryResponse = GetFindingsReportAccountSummaryResponse'+ { -- | The @nextToken@ value to include in a future+ -- @GetFindingsReportAccountSummary@ request. When the results of a+ -- @GetFindingsReportAccountSummary@ request exceed @maxResults@, this+ -- value can be used to retrieve the next page of results. This value is+ -- @null@ when there are no more results to return.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The return list of+ -- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_FindingsReportSummary.html FindingsReportSummary>+ -- objects taht contain summaries of analysis results for all profiling+ -- groups in your AWS account.+ reportSummaries :: [FindingsReportSummary]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetFindingsReportAccountSummaryResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getFindingsReportAccountSummaryResponse_nextToken' - The @nextToken@ value to include in a future+-- @GetFindingsReportAccountSummary@ request. When the results of a+-- @GetFindingsReportAccountSummary@ request exceed @maxResults@, this+-- value can be used to retrieve the next page of results. This value is+-- @null@ when there are no more results to return.+--+-- 'httpStatus', 'getFindingsReportAccountSummaryResponse_httpStatus' - The response's http status code.+--+-- 'reportSummaries', 'getFindingsReportAccountSummaryResponse_reportSummaries' - The return list of+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_FindingsReportSummary.html FindingsReportSummary>+-- objects taht contain summaries of analysis results for all profiling+-- groups in your AWS account.+newGetFindingsReportAccountSummaryResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetFindingsReportAccountSummaryResponse+newGetFindingsReportAccountSummaryResponse+ pHttpStatus_ =+ GetFindingsReportAccountSummaryResponse'+ { nextToken =+ Prelude.Nothing,+ httpStatus = pHttpStatus_,+ reportSummaries = Prelude.mempty+ }++-- | The @nextToken@ value to include in a future+-- @GetFindingsReportAccountSummary@ request. When the results of a+-- @GetFindingsReportAccountSummary@ request exceed @maxResults@, this+-- value can be used to retrieve the next page of results. This value is+-- @null@ when there are no more results to return.+getFindingsReportAccountSummaryResponse_nextToken :: Lens.Lens' GetFindingsReportAccountSummaryResponse (Prelude.Maybe Prelude.Text)+getFindingsReportAccountSummaryResponse_nextToken = Lens.lens (\GetFindingsReportAccountSummaryResponse' {nextToken} -> nextToken) (\s@GetFindingsReportAccountSummaryResponse' {} a -> s {nextToken = a} :: GetFindingsReportAccountSummaryResponse)++-- | The response's http status code.+getFindingsReportAccountSummaryResponse_httpStatus :: Lens.Lens' GetFindingsReportAccountSummaryResponse Prelude.Int+getFindingsReportAccountSummaryResponse_httpStatus = Lens.lens (\GetFindingsReportAccountSummaryResponse' {httpStatus} -> httpStatus) (\s@GetFindingsReportAccountSummaryResponse' {} a -> s {httpStatus = a} :: GetFindingsReportAccountSummaryResponse)++-- | The return list of+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_FindingsReportSummary.html FindingsReportSummary>+-- objects taht contain summaries of analysis results for all profiling+-- groups in your AWS account.+getFindingsReportAccountSummaryResponse_reportSummaries :: Lens.Lens' GetFindingsReportAccountSummaryResponse [FindingsReportSummary]+getFindingsReportAccountSummaryResponse_reportSummaries = Lens.lens (\GetFindingsReportAccountSummaryResponse' {reportSummaries} -> reportSummaries) (\s@GetFindingsReportAccountSummaryResponse' {} a -> s {reportSummaries = a} :: GetFindingsReportAccountSummaryResponse) Prelude.. Lens.coerced++instance+ Prelude.NFData+ GetFindingsReportAccountSummaryResponse+ where+ rnf GetFindingsReportAccountSummaryResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf reportSummaries
+ gen/Amazonka/CodeGuruProfiler/GetNotificationConfiguration.hs view
@@ -0,0 +1,185 @@+{-# 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.CodeGuruProfiler.GetNotificationConfiguration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Get the current configuration for anomaly notifications for a profiling+-- group.+module Amazonka.CodeGuruProfiler.GetNotificationConfiguration+ ( -- * Creating a Request+ GetNotificationConfiguration (..),+ newGetNotificationConfiguration,++ -- * Request Lenses+ getNotificationConfiguration_profilingGroupName,++ -- * Destructuring the Response+ GetNotificationConfigurationResponse (..),+ newGetNotificationConfigurationResponse,++ -- * Response Lenses+ getNotificationConfigurationResponse_httpStatus,+ getNotificationConfigurationResponse_notificationConfiguration,+ )+where++import Amazonka.CodeGuruProfiler.Types+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The structure representing the GetNotificationConfigurationRequest.+--+-- /See:/ 'newGetNotificationConfiguration' smart constructor.+data GetNotificationConfiguration = GetNotificationConfiguration'+ { -- | The name of the profiling group we want to get the notification+ -- configuration for.+ profilingGroupName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetNotificationConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'profilingGroupName', 'getNotificationConfiguration_profilingGroupName' - The name of the profiling group we want to get the notification+-- configuration for.+newGetNotificationConfiguration ::+ -- | 'profilingGroupName'+ Prelude.Text ->+ GetNotificationConfiguration+newGetNotificationConfiguration pProfilingGroupName_ =+ GetNotificationConfiguration'+ { profilingGroupName =+ pProfilingGroupName_+ }++-- | The name of the profiling group we want to get the notification+-- configuration for.+getNotificationConfiguration_profilingGroupName :: Lens.Lens' GetNotificationConfiguration Prelude.Text+getNotificationConfiguration_profilingGroupName = Lens.lens (\GetNotificationConfiguration' {profilingGroupName} -> profilingGroupName) (\s@GetNotificationConfiguration' {} a -> s {profilingGroupName = a} :: GetNotificationConfiguration)++instance Core.AWSRequest GetNotificationConfiguration where+ type+ AWSResponse GetNotificationConfiguration =+ GetNotificationConfigurationResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetNotificationConfigurationResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "notificationConfiguration")+ )++instance+ Prelude.Hashable+ GetNotificationConfiguration+ where+ hashWithSalt _salt GetNotificationConfiguration' {..} =+ _salt `Prelude.hashWithSalt` profilingGroupName++instance Prelude.NFData GetNotificationConfiguration where+ rnf GetNotificationConfiguration' {..} =+ Prelude.rnf profilingGroupName++instance Data.ToHeaders GetNotificationConfiguration where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetNotificationConfiguration where+ toPath GetNotificationConfiguration' {..} =+ Prelude.mconcat+ [ "/profilingGroups/",+ Data.toBS profilingGroupName,+ "/notificationConfiguration"+ ]++instance Data.ToQuery GetNotificationConfiguration where+ toQuery = Prelude.const Prelude.mempty++-- | The structure representing the GetNotificationConfigurationResponse.+--+-- /See:/ 'newGetNotificationConfigurationResponse' smart constructor.+data GetNotificationConfigurationResponse = GetNotificationConfigurationResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The current notification configuration for this profiling group.+ notificationConfiguration :: NotificationConfiguration+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetNotificationConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getNotificationConfigurationResponse_httpStatus' - The response's http status code.+--+-- 'notificationConfiguration', 'getNotificationConfigurationResponse_notificationConfiguration' - The current notification configuration for this profiling group.+newGetNotificationConfigurationResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'notificationConfiguration'+ NotificationConfiguration ->+ GetNotificationConfigurationResponse+newGetNotificationConfigurationResponse+ pHttpStatus_+ pNotificationConfiguration_ =+ GetNotificationConfigurationResponse'+ { httpStatus =+ pHttpStatus_,+ notificationConfiguration =+ pNotificationConfiguration_+ }++-- | The response's http status code.+getNotificationConfigurationResponse_httpStatus :: Lens.Lens' GetNotificationConfigurationResponse Prelude.Int+getNotificationConfigurationResponse_httpStatus = Lens.lens (\GetNotificationConfigurationResponse' {httpStatus} -> httpStatus) (\s@GetNotificationConfigurationResponse' {} a -> s {httpStatus = a} :: GetNotificationConfigurationResponse)++-- | The current notification configuration for this profiling group.+getNotificationConfigurationResponse_notificationConfiguration :: Lens.Lens' GetNotificationConfigurationResponse NotificationConfiguration+getNotificationConfigurationResponse_notificationConfiguration = Lens.lens (\GetNotificationConfigurationResponse' {notificationConfiguration} -> notificationConfiguration) (\s@GetNotificationConfigurationResponse' {} a -> s {notificationConfiguration = a} :: GetNotificationConfigurationResponse)++instance+ Prelude.NFData+ GetNotificationConfigurationResponse+ where+ rnf GetNotificationConfigurationResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf notificationConfiguration
+ gen/Amazonka/CodeGuruProfiler/GetPolicy.hs view
@@ -0,0 +1,188 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CodeGuruProfiler.GetPolicy+-- 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 JSON-formatted resource-based policy on a profiling group.+module Amazonka.CodeGuruProfiler.GetPolicy+ ( -- * Creating a Request+ GetPolicy (..),+ newGetPolicy,++ -- * Request Lenses+ getPolicy_profilingGroupName,++ -- * Destructuring the Response+ GetPolicyResponse (..),+ newGetPolicyResponse,++ -- * Response Lenses+ getPolicyResponse_httpStatus,+ getPolicyResponse_policy,+ getPolicyResponse_revisionId,+ )+where++import Amazonka.CodeGuruProfiler.Types+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The structure representing the @getPolicyRequest@.+--+-- /See:/ 'newGetPolicy' smart constructor.+data GetPolicy = GetPolicy'+ { -- | The name of the profiling group.+ profilingGroupName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetPolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'profilingGroupName', 'getPolicy_profilingGroupName' - The name of the profiling group.+newGetPolicy ::+ -- | 'profilingGroupName'+ Prelude.Text ->+ GetPolicy+newGetPolicy pProfilingGroupName_ =+ GetPolicy'+ { profilingGroupName =+ pProfilingGroupName_+ }++-- | The name of the profiling group.+getPolicy_profilingGroupName :: Lens.Lens' GetPolicy Prelude.Text+getPolicy_profilingGroupName = Lens.lens (\GetPolicy' {profilingGroupName} -> profilingGroupName) (\s@GetPolicy' {} a -> s {profilingGroupName = a} :: GetPolicy)++instance Core.AWSRequest GetPolicy where+ type AWSResponse GetPolicy = GetPolicyResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetPolicyResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "policy")+ Prelude.<*> (x Data..:> "revisionId")+ )++instance Prelude.Hashable GetPolicy where+ hashWithSalt _salt GetPolicy' {..} =+ _salt `Prelude.hashWithSalt` profilingGroupName++instance Prelude.NFData GetPolicy where+ rnf GetPolicy' {..} = Prelude.rnf profilingGroupName++instance Data.ToHeaders GetPolicy where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetPolicy where+ toPath GetPolicy' {..} =+ Prelude.mconcat+ [ "/profilingGroups/",+ Data.toBS profilingGroupName,+ "/policy"+ ]++instance Data.ToQuery GetPolicy where+ toQuery = Prelude.const Prelude.mempty++-- | The structure representing the @getPolicyResponse@.+--+-- /See:/ 'newGetPolicyResponse' smart constructor.+data GetPolicyResponse = GetPolicyResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The JSON-formatted resource-based policy attached to the+ -- @ProfilingGroup@.+ policy :: Prelude.Text,+ -- | A unique identifier for the current revision of the returned policy.+ revisionId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetPolicyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getPolicyResponse_httpStatus' - The response's http status code.+--+-- 'policy', 'getPolicyResponse_policy' - The JSON-formatted resource-based policy attached to the+-- @ProfilingGroup@.+--+-- 'revisionId', 'getPolicyResponse_revisionId' - A unique identifier for the current revision of the returned policy.+newGetPolicyResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'policy'+ Prelude.Text ->+ -- | 'revisionId'+ Prelude.Text ->+ GetPolicyResponse+newGetPolicyResponse+ pHttpStatus_+ pPolicy_+ pRevisionId_ =+ GetPolicyResponse'+ { httpStatus = pHttpStatus_,+ policy = pPolicy_,+ revisionId = pRevisionId_+ }++-- | The response's http status code.+getPolicyResponse_httpStatus :: Lens.Lens' GetPolicyResponse Prelude.Int+getPolicyResponse_httpStatus = Lens.lens (\GetPolicyResponse' {httpStatus} -> httpStatus) (\s@GetPolicyResponse' {} a -> s {httpStatus = a} :: GetPolicyResponse)++-- | The JSON-formatted resource-based policy attached to the+-- @ProfilingGroup@.+getPolicyResponse_policy :: Lens.Lens' GetPolicyResponse Prelude.Text+getPolicyResponse_policy = Lens.lens (\GetPolicyResponse' {policy} -> policy) (\s@GetPolicyResponse' {} a -> s {policy = a} :: GetPolicyResponse)++-- | A unique identifier for the current revision of the returned policy.+getPolicyResponse_revisionId :: Lens.Lens' GetPolicyResponse Prelude.Text+getPolicyResponse_revisionId = Lens.lens (\GetPolicyResponse' {revisionId} -> revisionId) (\s@GetPolicyResponse' {} a -> s {revisionId = a} :: GetPolicyResponse)++instance Prelude.NFData GetPolicyResponse where+ rnf GetPolicyResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf policy+ `Prelude.seq` Prelude.rnf revisionId
+ gen/Amazonka/CodeGuruProfiler/GetProfile.hs view
@@ -0,0 +1,332 @@+{-# 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.CodeGuruProfiler.GetProfile+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the aggregated profile of a profiling group for a specified time+-- range. Amazon CodeGuru Profiler collects posted agent profiles for a+-- profiling group into aggregated profiles.+--+-- > <note> <p> Because aggregated profiles expire over time <code>GetProfile</code> is not idempotent. </p> </note> <p> Specify the time range for the requested aggregated profile using 1 or 2 of the following parameters: <code>startTime</code>, <code>endTime</code>, <code>period</code>. The maximum time range allowed is 7 days. If you specify all 3 parameters, an exception is thrown. If you specify only <code>period</code>, the latest aggregated profile is returned. </p> <p> Aggregated profiles are available with aggregation periods of 5 minutes, 1 hour, and 1 day, aligned to UTC. The aggregation period of an aggregated profile determines how long it is retained. For more information, see <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AggregatedProfileTime.html"> <code>AggregatedProfileTime</code> </a>. The aggregated profile's aggregation period determines how long it is retained by CodeGuru Profiler. </p> <ul> <li> <p> If the aggregation period is 5 minutes, the aggregated profile is retained for 15 days. </p> </li> <li> <p> If the aggregation period is 1 hour, the aggregated profile is retained for 60 days. </p> </li> <li> <p> If the aggregation period is 1 day, the aggregated profile is retained for 3 years. </p> </li> </ul> <p>There are two use cases for calling <code>GetProfile</code>.</p> <ol> <li> <p> If you want to return an aggregated profile that already exists, use <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ListProfileTimes.html"> <code>ListProfileTimes</code> </a> to view the time ranges of existing aggregated profiles. Use them in a <code>GetProfile</code> request to return a specific, existing aggregated profile. </p> </li> <li> <p> If you want to return an aggregated profile for a time range that doesn't align with an existing aggregated profile, then CodeGuru Profiler makes a best effort to combine existing aggregated profiles from the requested time range and return them as one aggregated profile. </p> <p> If aggregated profiles do not exist for the full time range requested, then aggregated profiles for a smaller time range are returned. For example, if the requested time range is from 00:00 to 00:20, and the existing aggregated profiles are from 00:15 and 00:25, then the aggregated profiles from 00:15 to 00:20 are returned. </p> </li> </ol>+module Amazonka.CodeGuruProfiler.GetProfile+ ( -- * Creating a Request+ GetProfile (..),+ newGetProfile,++ -- * Request Lenses+ getProfile_accept,+ getProfile_endTime,+ getProfile_maxDepth,+ getProfile_period,+ getProfile_startTime,+ getProfile_profilingGroupName,++ -- * Destructuring the Response+ GetProfileResponse (..),+ newGetProfileResponse,++ -- * Response Lenses+ getProfileResponse_contentEncoding,+ getProfileResponse_httpStatus,+ getProfileResponse_contentType,+ getProfileResponse_profile,+ )+where++import Amazonka.CodeGuruProfiler.Types+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The structure representing the getProfileRequest.+--+-- /See:/ 'newGetProfile' smart constructor.+data GetProfile = GetProfile'+ { -- | The format of the returned profiling data. The format maps to the+ -- @Accept@ and @Content-Type@ headers of the HTTP request. You can specify+ -- one of the following: or the default .+ --+ -- > <ul> <li> <p> <code>application/json</code> — standard JSON format </p> </li> <li> <p> <code>application/x-amzn-ion</code> — the Amazon Ion data format. For more information, see <a href="http://amzn.github.io/ion-docs/">Amazon Ion</a>. </p> </li> </ul>+ accept :: Prelude.Maybe Prelude.Text,+ -- | The end time of the requested profile. Specify using the ISO 8601+ -- format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond+ -- past June 1, 2020 1:15:02 PM UTC.+ --+ -- If you specify @endTime@, then you must also specify @period@ or+ -- @startTime@, but not both.+ endTime :: Prelude.Maybe Data.ISO8601,+ -- | The maximum depth of the stacks in the code that is represented in the+ -- aggregated profile. For example, if CodeGuru Profiler finds a method+ -- @A@, which calls method @B@, which calls method @C@, which calls method+ -- @D@, then the depth is 4. If the @maxDepth@ is set to 2, then the+ -- aggregated profile contains representations of methods @A@ and @B@.+ maxDepth :: Prelude.Maybe Prelude.Natural,+ -- | Used with @startTime@ or @endTime@ to specify the time range for the+ -- returned aggregated profile. Specify using the ISO 8601 format. For+ -- example, @P1DT1H1M1S@.+ --+ -- > <p> To get the latest aggregated profile, specify only <code>period</code>. </p>+ period :: Prelude.Maybe Prelude.Text,+ -- | The start time of the profile to get. Specify using the ISO 8601 format.+ -- For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June+ -- 1, 2020 1:15:02 PM UTC.+ --+ -- > <p> If you specify <code>startTime</code>, then you must also specify <code>period</code> or <code>endTime</code>, but not both. </p>+ startTime :: Prelude.Maybe Data.ISO8601,+ -- | The name of the profiling group to get.+ profilingGroupName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetProfile' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accept', 'getProfile_accept' - The format of the returned profiling data. The format maps to the+-- @Accept@ and @Content-Type@ headers of the HTTP request. You can specify+-- one of the following: or the default .+--+-- > <ul> <li> <p> <code>application/json</code> — standard JSON format </p> </li> <li> <p> <code>application/x-amzn-ion</code> — the Amazon Ion data format. For more information, see <a href="http://amzn.github.io/ion-docs/">Amazon Ion</a>. </p> </li> </ul>+--+-- 'endTime', 'getProfile_endTime' - The end time of the requested profile. Specify using the ISO 8601+-- format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond+-- past June 1, 2020 1:15:02 PM UTC.+--+-- If you specify @endTime@, then you must also specify @period@ or+-- @startTime@, but not both.+--+-- 'maxDepth', 'getProfile_maxDepth' - The maximum depth of the stacks in the code that is represented in the+-- aggregated profile. For example, if CodeGuru Profiler finds a method+-- @A@, which calls method @B@, which calls method @C@, which calls method+-- @D@, then the depth is 4. If the @maxDepth@ is set to 2, then the+-- aggregated profile contains representations of methods @A@ and @B@.+--+-- 'period', 'getProfile_period' - Used with @startTime@ or @endTime@ to specify the time range for the+-- returned aggregated profile. Specify using the ISO 8601 format. For+-- example, @P1DT1H1M1S@.+--+-- > <p> To get the latest aggregated profile, specify only <code>period</code>. </p>+--+-- 'startTime', 'getProfile_startTime' - The start time of the profile to get. Specify using the ISO 8601 format.+-- For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June+-- 1, 2020 1:15:02 PM UTC.+--+-- > <p> If you specify <code>startTime</code>, then you must also specify <code>period</code> or <code>endTime</code>, but not both. </p>+--+-- 'profilingGroupName', 'getProfile_profilingGroupName' - The name of the profiling group to get.+newGetProfile ::+ -- | 'profilingGroupName'+ Prelude.Text ->+ GetProfile+newGetProfile pProfilingGroupName_ =+ GetProfile'+ { accept = Prelude.Nothing,+ endTime = Prelude.Nothing,+ maxDepth = Prelude.Nothing,+ period = Prelude.Nothing,+ startTime = Prelude.Nothing,+ profilingGroupName = pProfilingGroupName_+ }++-- | The format of the returned profiling data. The format maps to the+-- @Accept@ and @Content-Type@ headers of the HTTP request. You can specify+-- one of the following: or the default .+--+-- > <ul> <li> <p> <code>application/json</code> — standard JSON format </p> </li> <li> <p> <code>application/x-amzn-ion</code> — the Amazon Ion data format. For more information, see <a href="http://amzn.github.io/ion-docs/">Amazon Ion</a>. </p> </li> </ul>+getProfile_accept :: Lens.Lens' GetProfile (Prelude.Maybe Prelude.Text)+getProfile_accept = Lens.lens (\GetProfile' {accept} -> accept) (\s@GetProfile' {} a -> s {accept = a} :: GetProfile)++-- | The end time of the requested profile. Specify using the ISO 8601+-- format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond+-- past June 1, 2020 1:15:02 PM UTC.+--+-- If you specify @endTime@, then you must also specify @period@ or+-- @startTime@, but not both.+getProfile_endTime :: Lens.Lens' GetProfile (Prelude.Maybe Prelude.UTCTime)+getProfile_endTime = Lens.lens (\GetProfile' {endTime} -> endTime) (\s@GetProfile' {} a -> s {endTime = a} :: GetProfile) Prelude.. Lens.mapping Data._Time++-- | The maximum depth of the stacks in the code that is represented in the+-- aggregated profile. For example, if CodeGuru Profiler finds a method+-- @A@, which calls method @B@, which calls method @C@, which calls method+-- @D@, then the depth is 4. If the @maxDepth@ is set to 2, then the+-- aggregated profile contains representations of methods @A@ and @B@.+getProfile_maxDepth :: Lens.Lens' GetProfile (Prelude.Maybe Prelude.Natural)+getProfile_maxDepth = Lens.lens (\GetProfile' {maxDepth} -> maxDepth) (\s@GetProfile' {} a -> s {maxDepth = a} :: GetProfile)++-- | Used with @startTime@ or @endTime@ to specify the time range for the+-- returned aggregated profile. Specify using the ISO 8601 format. For+-- example, @P1DT1H1M1S@.+--+-- > <p> To get the latest aggregated profile, specify only <code>period</code>. </p>+getProfile_period :: Lens.Lens' GetProfile (Prelude.Maybe Prelude.Text)+getProfile_period = Lens.lens (\GetProfile' {period} -> period) (\s@GetProfile' {} a -> s {period = a} :: GetProfile)++-- | The start time of the profile to get. Specify using the ISO 8601 format.+-- For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June+-- 1, 2020 1:15:02 PM UTC.+--+-- > <p> If you specify <code>startTime</code>, then you must also specify <code>period</code> or <code>endTime</code>, but not both. </p>+getProfile_startTime :: Lens.Lens' GetProfile (Prelude.Maybe Prelude.UTCTime)+getProfile_startTime = Lens.lens (\GetProfile' {startTime} -> startTime) (\s@GetProfile' {} a -> s {startTime = a} :: GetProfile) Prelude.. Lens.mapping Data._Time++-- | The name of the profiling group to get.+getProfile_profilingGroupName :: Lens.Lens' GetProfile Prelude.Text+getProfile_profilingGroupName = Lens.lens (\GetProfile' {profilingGroupName} -> profilingGroupName) (\s@GetProfile' {} a -> s {profilingGroupName = a} :: GetProfile)++instance Core.AWSRequest GetProfile where+ type AWSResponse GetProfile = GetProfileResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveBytes+ ( \s h x ->+ GetProfileResponse'+ Prelude.<$> (h Data..#? "Content-Encoding")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (h Data..# "Content-Type")+ Prelude.<*> (Prelude.pure x)+ )++instance Prelude.Hashable GetProfile where+ hashWithSalt _salt GetProfile' {..} =+ _salt+ `Prelude.hashWithSalt` accept+ `Prelude.hashWithSalt` endTime+ `Prelude.hashWithSalt` maxDepth+ `Prelude.hashWithSalt` period+ `Prelude.hashWithSalt` startTime+ `Prelude.hashWithSalt` profilingGroupName++instance Prelude.NFData GetProfile where+ rnf GetProfile' {..} =+ Prelude.rnf accept+ `Prelude.seq` Prelude.rnf endTime+ `Prelude.seq` Prelude.rnf maxDepth+ `Prelude.seq` Prelude.rnf period+ `Prelude.seq` Prelude.rnf startTime+ `Prelude.seq` Prelude.rnf profilingGroupName++instance Data.ToHeaders GetProfile where+ toHeaders GetProfile' {..} =+ Prelude.mconcat+ [ "Accept" Data.=# accept,+ "Content-Type"+ Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+ ]++instance Data.ToPath GetProfile where+ toPath GetProfile' {..} =+ Prelude.mconcat+ [ "/profilingGroups/",+ Data.toBS profilingGroupName,+ "/profile"+ ]++instance Data.ToQuery GetProfile where+ toQuery GetProfile' {..} =+ Prelude.mconcat+ [ "endTime" Data.=: endTime,+ "maxDepth" Data.=: maxDepth,+ "period" Data.=: period,+ "startTime" Data.=: startTime+ ]++-- | The structure representing the getProfileResponse.+--+-- /See:/ 'newGetProfileResponse' smart constructor.+data GetProfileResponse = GetProfileResponse'+ { -- | The content encoding of the profile.+ contentEncoding :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The content type of the profile in the payload. It is either+ -- @application\/json@ or the default @application\/x-amzn-ion@.+ contentType :: Prelude.Text,+ -- | Information about the profile.+ profile :: Prelude.ByteString+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetProfileResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contentEncoding', 'getProfileResponse_contentEncoding' - The content encoding of the profile.+--+-- 'httpStatus', 'getProfileResponse_httpStatus' - The response's http status code.+--+-- 'contentType', 'getProfileResponse_contentType' - The content type of the profile in the payload. It is either+-- @application\/json@ or the default @application\/x-amzn-ion@.+--+-- 'profile', 'getProfileResponse_profile' - Information about the profile.+newGetProfileResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'contentType'+ Prelude.Text ->+ -- | 'profile'+ Prelude.ByteString ->+ GetProfileResponse+newGetProfileResponse+ pHttpStatus_+ pContentType_+ pProfile_ =+ GetProfileResponse'+ { contentEncoding =+ Prelude.Nothing,+ httpStatus = pHttpStatus_,+ contentType = pContentType_,+ profile = pProfile_+ }++-- | The content encoding of the profile.+getProfileResponse_contentEncoding :: Lens.Lens' GetProfileResponse (Prelude.Maybe Prelude.Text)+getProfileResponse_contentEncoding = Lens.lens (\GetProfileResponse' {contentEncoding} -> contentEncoding) (\s@GetProfileResponse' {} a -> s {contentEncoding = a} :: GetProfileResponse)++-- | The response's http status code.+getProfileResponse_httpStatus :: Lens.Lens' GetProfileResponse Prelude.Int+getProfileResponse_httpStatus = Lens.lens (\GetProfileResponse' {httpStatus} -> httpStatus) (\s@GetProfileResponse' {} a -> s {httpStatus = a} :: GetProfileResponse)++-- | The content type of the profile in the payload. It is either+-- @application\/json@ or the default @application\/x-amzn-ion@.+getProfileResponse_contentType :: Lens.Lens' GetProfileResponse Prelude.Text+getProfileResponse_contentType = Lens.lens (\GetProfileResponse' {contentType} -> contentType) (\s@GetProfileResponse' {} a -> s {contentType = a} :: GetProfileResponse)++-- | Information about the profile.+getProfileResponse_profile :: Lens.Lens' GetProfileResponse Prelude.ByteString+getProfileResponse_profile = Lens.lens (\GetProfileResponse' {profile} -> profile) (\s@GetProfileResponse' {} a -> s {profile = a} :: GetProfileResponse)++instance Prelude.NFData GetProfileResponse where+ rnf GetProfileResponse' {..} =+ Prelude.rnf contentEncoding+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf contentType+ `Prelude.seq` Prelude.rnf profile
+ gen/Amazonka/CodeGuruProfiler/GetRecommendations.hs view
@@ -0,0 +1,392 @@+{-# 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.CodeGuruProfiler.GetRecommendations+-- 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+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_Recommendation.html Recommendation>+-- objects that contain recommendations for a profiling group for a given+-- time period. A list of+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_Anomaly.html Anomaly>+-- objects that contains details about anomalies detected in the profiling+-- group for the same time period is also returned.+module Amazonka.CodeGuruProfiler.GetRecommendations+ ( -- * Creating a Request+ GetRecommendations (..),+ newGetRecommendations,++ -- * Request Lenses+ getRecommendations_locale,+ getRecommendations_endTime,+ getRecommendations_profilingGroupName,+ getRecommendations_startTime,++ -- * Destructuring the Response+ GetRecommendationsResponse (..),+ newGetRecommendationsResponse,++ -- * Response Lenses+ getRecommendationsResponse_httpStatus,+ getRecommendationsResponse_anomalies,+ getRecommendationsResponse_profileEndTime,+ getRecommendationsResponse_profileStartTime,+ getRecommendationsResponse_profilingGroupName,+ getRecommendationsResponse_recommendations,+ )+where++import Amazonka.CodeGuruProfiler.Types+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The structure representing the GetRecommendationsRequest.+--+-- /See:/ 'newGetRecommendations' smart constructor.+data GetRecommendations = GetRecommendations'+ { -- | The language used to provide analysis. Specify using a string that is+ -- one of the following @BCP 47@ language codes.+ --+ -- - @de-DE@ - German, Germany+ --+ -- - @en-GB@ - English, United Kingdom+ --+ -- - @en-US@ - English, United States+ --+ -- - @es-ES@ - Spanish, Spain+ --+ -- - @fr-FR@ - French, France+ --+ -- - @it-IT@ - Italian, Italy+ --+ -- - @ja-JP@ - Japanese, Japan+ --+ -- - @ko-KR@ - Korean, Republic of Korea+ --+ -- - @pt-BR@ - Portugese, Brazil+ --+ -- - @zh-CN@ - Chinese, China+ --+ -- - @zh-TW@ - Chinese, Taiwan+ locale :: Prelude.Maybe Prelude.Text,+ -- | The start time of the profile to get analysis data about. You must+ -- specify @startTime@ and @endTime@. This is specified using the ISO 8601+ -- format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond+ -- past June 1, 2020 1:15:02 PM UTC.+ endTime :: Data.ISO8601,+ -- | The name of the profiling group to get analysis data about.+ profilingGroupName :: Prelude.Text,+ -- | The end time of the profile to get analysis data about. You must specify+ -- @startTime@ and @endTime@. This is specified using the ISO 8601 format.+ -- For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June+ -- 1, 2020 1:15:02 PM UTC.+ startTime :: Data.ISO8601+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetRecommendations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'locale', 'getRecommendations_locale' - The language used to provide analysis. Specify using a string that is+-- one of the following @BCP 47@ language codes.+--+-- - @de-DE@ - German, Germany+--+-- - @en-GB@ - English, United Kingdom+--+-- - @en-US@ - English, United States+--+-- - @es-ES@ - Spanish, Spain+--+-- - @fr-FR@ - French, France+--+-- - @it-IT@ - Italian, Italy+--+-- - @ja-JP@ - Japanese, Japan+--+-- - @ko-KR@ - Korean, Republic of Korea+--+-- - @pt-BR@ - Portugese, Brazil+--+-- - @zh-CN@ - Chinese, China+--+-- - @zh-TW@ - Chinese, Taiwan+--+-- 'endTime', 'getRecommendations_endTime' - The start time of the profile to get analysis data about. You must+-- specify @startTime@ and @endTime@. This is specified using the ISO 8601+-- format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond+-- past June 1, 2020 1:15:02 PM UTC.+--+-- 'profilingGroupName', 'getRecommendations_profilingGroupName' - The name of the profiling group to get analysis data about.+--+-- 'startTime', 'getRecommendations_startTime' - The end time of the profile to get analysis data about. You must specify+-- @startTime@ and @endTime@. This is specified using the ISO 8601 format.+-- For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June+-- 1, 2020 1:15:02 PM UTC.+newGetRecommendations ::+ -- | 'endTime'+ Prelude.UTCTime ->+ -- | 'profilingGroupName'+ Prelude.Text ->+ -- | 'startTime'+ Prelude.UTCTime ->+ GetRecommendations+newGetRecommendations+ pEndTime_+ pProfilingGroupName_+ pStartTime_ =+ GetRecommendations'+ { locale = Prelude.Nothing,+ endTime = Data._Time Lens.# pEndTime_,+ profilingGroupName = pProfilingGroupName_,+ startTime = Data._Time Lens.# pStartTime_+ }++-- | The language used to provide analysis. Specify using a string that is+-- one of the following @BCP 47@ language codes.+--+-- - @de-DE@ - German, Germany+--+-- - @en-GB@ - English, United Kingdom+--+-- - @en-US@ - English, United States+--+-- - @es-ES@ - Spanish, Spain+--+-- - @fr-FR@ - French, France+--+-- - @it-IT@ - Italian, Italy+--+-- - @ja-JP@ - Japanese, Japan+--+-- - @ko-KR@ - Korean, Republic of Korea+--+-- - @pt-BR@ - Portugese, Brazil+--+-- - @zh-CN@ - Chinese, China+--+-- - @zh-TW@ - Chinese, Taiwan+getRecommendations_locale :: Lens.Lens' GetRecommendations (Prelude.Maybe Prelude.Text)+getRecommendations_locale = Lens.lens (\GetRecommendations' {locale} -> locale) (\s@GetRecommendations' {} a -> s {locale = a} :: GetRecommendations)++-- | The start time of the profile to get analysis data about. You must+-- specify @startTime@ and @endTime@. This is specified using the ISO 8601+-- format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond+-- past June 1, 2020 1:15:02 PM UTC.+getRecommendations_endTime :: Lens.Lens' GetRecommendations Prelude.UTCTime+getRecommendations_endTime = Lens.lens (\GetRecommendations' {endTime} -> endTime) (\s@GetRecommendations' {} a -> s {endTime = a} :: GetRecommendations) Prelude.. Data._Time++-- | The name of the profiling group to get analysis data about.+getRecommendations_profilingGroupName :: Lens.Lens' GetRecommendations Prelude.Text+getRecommendations_profilingGroupName = Lens.lens (\GetRecommendations' {profilingGroupName} -> profilingGroupName) (\s@GetRecommendations' {} a -> s {profilingGroupName = a} :: GetRecommendations)++-- | The end time of the profile to get analysis data about. You must specify+-- @startTime@ and @endTime@. This is specified using the ISO 8601 format.+-- For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June+-- 1, 2020 1:15:02 PM UTC.+getRecommendations_startTime :: Lens.Lens' GetRecommendations Prelude.UTCTime+getRecommendations_startTime = Lens.lens (\GetRecommendations' {startTime} -> startTime) (\s@GetRecommendations' {} a -> s {startTime = a} :: GetRecommendations) Prelude.. Data._Time++instance Core.AWSRequest GetRecommendations where+ type+ AWSResponse GetRecommendations =+ GetRecommendationsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetRecommendationsResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..?> "anomalies" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..:> "profileEndTime")+ Prelude.<*> (x Data..:> "profileStartTime")+ Prelude.<*> (x Data..:> "profilingGroupName")+ Prelude.<*> ( x+ Data..?> "recommendations"+ Core..!@ Prelude.mempty+ )+ )++instance Prelude.Hashable GetRecommendations where+ hashWithSalt _salt GetRecommendations' {..} =+ _salt+ `Prelude.hashWithSalt` locale+ `Prelude.hashWithSalt` endTime+ `Prelude.hashWithSalt` profilingGroupName+ `Prelude.hashWithSalt` startTime++instance Prelude.NFData GetRecommendations where+ rnf GetRecommendations' {..} =+ Prelude.rnf locale+ `Prelude.seq` Prelude.rnf endTime+ `Prelude.seq` Prelude.rnf profilingGroupName+ `Prelude.seq` Prelude.rnf startTime++instance Data.ToHeaders GetRecommendations where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetRecommendations where+ toPath GetRecommendations' {..} =+ Prelude.mconcat+ [ "/internal/profilingGroups/",+ Data.toBS profilingGroupName,+ "/recommendations"+ ]++instance Data.ToQuery GetRecommendations where+ toQuery GetRecommendations' {..} =+ Prelude.mconcat+ [ "locale" Data.=: locale,+ "endTime" Data.=: endTime,+ "startTime" Data.=: startTime+ ]++-- | The structure representing the GetRecommendationsResponse.+--+-- /See:/ 'newGetRecommendationsResponse' smart constructor.+data GetRecommendationsResponse = GetRecommendationsResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The list of anomalies that the analysis has found for this profile.+ anomalies :: [Anomaly],+ -- | The end time of the profile the analysis data is about. This is+ -- specified using the ISO 8601 format. For example,+ -- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+ -- 1:15:02 PM UTC.+ profileEndTime :: Data.ISO8601,+ -- | The start time of the profile the analysis data is about. This is+ -- specified using the ISO 8601 format. For example,+ -- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+ -- 1:15:02 PM UTC.+ profileStartTime :: Data.ISO8601,+ -- | The name of the profiling group the analysis data is about.+ profilingGroupName :: Prelude.Text,+ -- | The list of recommendations that the analysis found for this profile.+ recommendations :: [Recommendation]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetRecommendationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getRecommendationsResponse_httpStatus' - The response's http status code.+--+-- 'anomalies', 'getRecommendationsResponse_anomalies' - The list of anomalies that the analysis has found for this profile.+--+-- 'profileEndTime', 'getRecommendationsResponse_profileEndTime' - The end time of the profile the analysis data is about. This is+-- specified using the ISO 8601 format. For example,+-- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+-- 1:15:02 PM UTC.+--+-- 'profileStartTime', 'getRecommendationsResponse_profileStartTime' - The start time of the profile the analysis data is about. This is+-- specified using the ISO 8601 format. For example,+-- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+-- 1:15:02 PM UTC.+--+-- 'profilingGroupName', 'getRecommendationsResponse_profilingGroupName' - The name of the profiling group the analysis data is about.+--+-- 'recommendations', 'getRecommendationsResponse_recommendations' - The list of recommendations that the analysis found for this profile.+newGetRecommendationsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'profileEndTime'+ Prelude.UTCTime ->+ -- | 'profileStartTime'+ Prelude.UTCTime ->+ -- | 'profilingGroupName'+ Prelude.Text ->+ GetRecommendationsResponse+newGetRecommendationsResponse+ pHttpStatus_+ pProfileEndTime_+ pProfileStartTime_+ pProfilingGroupName_ =+ GetRecommendationsResponse'+ { httpStatus =+ pHttpStatus_,+ anomalies = Prelude.mempty,+ profileEndTime =+ Data._Time Lens.# pProfileEndTime_,+ profileStartTime =+ Data._Time Lens.# pProfileStartTime_,+ profilingGroupName = pProfilingGroupName_,+ recommendations = Prelude.mempty+ }++-- | The response's http status code.+getRecommendationsResponse_httpStatus :: Lens.Lens' GetRecommendationsResponse Prelude.Int+getRecommendationsResponse_httpStatus = Lens.lens (\GetRecommendationsResponse' {httpStatus} -> httpStatus) (\s@GetRecommendationsResponse' {} a -> s {httpStatus = a} :: GetRecommendationsResponse)++-- | The list of anomalies that the analysis has found for this profile.+getRecommendationsResponse_anomalies :: Lens.Lens' GetRecommendationsResponse [Anomaly]+getRecommendationsResponse_anomalies = Lens.lens (\GetRecommendationsResponse' {anomalies} -> anomalies) (\s@GetRecommendationsResponse' {} a -> s {anomalies = a} :: GetRecommendationsResponse) Prelude.. Lens.coerced++-- | The end time of the profile the analysis data is about. This is+-- specified using the ISO 8601 format. For example,+-- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+-- 1:15:02 PM UTC.+getRecommendationsResponse_profileEndTime :: Lens.Lens' GetRecommendationsResponse Prelude.UTCTime+getRecommendationsResponse_profileEndTime = Lens.lens (\GetRecommendationsResponse' {profileEndTime} -> profileEndTime) (\s@GetRecommendationsResponse' {} a -> s {profileEndTime = a} :: GetRecommendationsResponse) Prelude.. Data._Time++-- | The start time of the profile the analysis data is about. This is+-- specified using the ISO 8601 format. For example,+-- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+-- 1:15:02 PM UTC.+getRecommendationsResponse_profileStartTime :: Lens.Lens' GetRecommendationsResponse Prelude.UTCTime+getRecommendationsResponse_profileStartTime = Lens.lens (\GetRecommendationsResponse' {profileStartTime} -> profileStartTime) (\s@GetRecommendationsResponse' {} a -> s {profileStartTime = a} :: GetRecommendationsResponse) Prelude.. Data._Time++-- | The name of the profiling group the analysis data is about.+getRecommendationsResponse_profilingGroupName :: Lens.Lens' GetRecommendationsResponse Prelude.Text+getRecommendationsResponse_profilingGroupName = Lens.lens (\GetRecommendationsResponse' {profilingGroupName} -> profilingGroupName) (\s@GetRecommendationsResponse' {} a -> s {profilingGroupName = a} :: GetRecommendationsResponse)++-- | The list of recommendations that the analysis found for this profile.+getRecommendationsResponse_recommendations :: Lens.Lens' GetRecommendationsResponse [Recommendation]+getRecommendationsResponse_recommendations = Lens.lens (\GetRecommendationsResponse' {recommendations} -> recommendations) (\s@GetRecommendationsResponse' {} a -> s {recommendations = a} :: GetRecommendationsResponse) Prelude.. Lens.coerced++instance Prelude.NFData GetRecommendationsResponse where+ rnf GetRecommendationsResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf anomalies+ `Prelude.seq` Prelude.rnf profileEndTime+ `Prelude.seq` Prelude.rnf profileStartTime+ `Prelude.seq` Prelude.rnf profilingGroupName+ `Prelude.seq` Prelude.rnf recommendations
+ gen/Amazonka/CodeGuruProfiler/Lens.hs view
@@ -0,0 +1,339 @@+{-# 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.CodeGuruProfiler.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.CodeGuruProfiler.Lens+ ( -- * Operations++ -- ** AddNotificationChannels+ addNotificationChannels_channels,+ addNotificationChannels_profilingGroupName,+ addNotificationChannelsResponse_notificationConfiguration,+ addNotificationChannelsResponse_httpStatus,++ -- ** BatchGetFrameMetricData+ batchGetFrameMetricData_endTime,+ batchGetFrameMetricData_frameMetrics,+ batchGetFrameMetricData_period,+ batchGetFrameMetricData_startTime,+ batchGetFrameMetricData_targetResolution,+ batchGetFrameMetricData_profilingGroupName,+ batchGetFrameMetricDataResponse_httpStatus,+ batchGetFrameMetricDataResponse_endTime,+ batchGetFrameMetricDataResponse_endTimes,+ batchGetFrameMetricDataResponse_frameMetricData,+ batchGetFrameMetricDataResponse_resolution,+ batchGetFrameMetricDataResponse_startTime,+ batchGetFrameMetricDataResponse_unprocessedEndTimes,++ -- ** ConfigureAgent+ configureAgent_fleetInstanceId,+ configureAgent_metadata,+ configureAgent_profilingGroupName,+ configureAgentResponse_httpStatus,+ configureAgentResponse_configuration,++ -- ** CreateProfilingGroup+ createProfilingGroup_agentOrchestrationConfig,+ createProfilingGroup_computePlatform,+ createProfilingGroup_tags,+ createProfilingGroup_clientToken,+ createProfilingGroup_profilingGroupName,+ createProfilingGroupResponse_httpStatus,+ createProfilingGroupResponse_profilingGroup,++ -- ** DeleteProfilingGroup+ deleteProfilingGroup_profilingGroupName,+ deleteProfilingGroupResponse_httpStatus,++ -- ** DescribeProfilingGroup+ describeProfilingGroup_profilingGroupName,+ describeProfilingGroupResponse_httpStatus,+ describeProfilingGroupResponse_profilingGroup,++ -- ** GetFindingsReportAccountSummary+ getFindingsReportAccountSummary_dailyReportsOnly,+ getFindingsReportAccountSummary_maxResults,+ getFindingsReportAccountSummary_nextToken,+ getFindingsReportAccountSummaryResponse_nextToken,+ getFindingsReportAccountSummaryResponse_httpStatus,+ getFindingsReportAccountSummaryResponse_reportSummaries,++ -- ** GetNotificationConfiguration+ getNotificationConfiguration_profilingGroupName,+ getNotificationConfigurationResponse_httpStatus,+ getNotificationConfigurationResponse_notificationConfiguration,++ -- ** GetPolicy+ getPolicy_profilingGroupName,+ getPolicyResponse_httpStatus,+ getPolicyResponse_policy,+ getPolicyResponse_revisionId,++ -- ** GetProfile+ getProfile_accept,+ getProfile_endTime,+ getProfile_maxDepth,+ getProfile_period,+ getProfile_startTime,+ getProfile_profilingGroupName,+ getProfileResponse_contentEncoding,+ getProfileResponse_httpStatus,+ getProfileResponse_contentType,+ getProfileResponse_profile,++ -- ** GetRecommendations+ getRecommendations_locale,+ getRecommendations_endTime,+ getRecommendations_profilingGroupName,+ getRecommendations_startTime,+ getRecommendationsResponse_httpStatus,+ getRecommendationsResponse_anomalies,+ getRecommendationsResponse_profileEndTime,+ getRecommendationsResponse_profileStartTime,+ getRecommendationsResponse_profilingGroupName,+ getRecommendationsResponse_recommendations,++ -- ** ListFindingsReports+ listFindingsReports_dailyReportsOnly,+ listFindingsReports_maxResults,+ listFindingsReports_nextToken,+ listFindingsReports_endTime,+ listFindingsReports_profilingGroupName,+ listFindingsReports_startTime,+ listFindingsReportsResponse_nextToken,+ listFindingsReportsResponse_httpStatus,+ listFindingsReportsResponse_findingsReportSummaries,++ -- ** ListProfileTimes+ listProfileTimes_maxResults,+ listProfileTimes_nextToken,+ listProfileTimes_orderBy,+ listProfileTimes_endTime,+ listProfileTimes_period,+ listProfileTimes_profilingGroupName,+ listProfileTimes_startTime,+ listProfileTimesResponse_nextToken,+ listProfileTimesResponse_httpStatus,+ listProfileTimesResponse_profileTimes,++ -- ** ListProfilingGroups+ listProfilingGroups_includeDescription,+ listProfilingGroups_maxResults,+ listProfilingGroups_nextToken,+ listProfilingGroupsResponse_nextToken,+ listProfilingGroupsResponse_profilingGroups,+ listProfilingGroupsResponse_httpStatus,+ listProfilingGroupsResponse_profilingGroupNames,++ -- ** ListTagsForResource+ listTagsForResource_resourceArn,+ listTagsForResourceResponse_tags,+ listTagsForResourceResponse_httpStatus,++ -- ** PostAgentProfile+ postAgentProfile_profileToken,+ postAgentProfile_agentProfile,+ postAgentProfile_contentType,+ postAgentProfile_profilingGroupName,+ postAgentProfileResponse_httpStatus,++ -- ** PutPermission+ putPermission_revisionId,+ putPermission_actionGroup,+ putPermission_principals,+ putPermission_profilingGroupName,+ putPermissionResponse_httpStatus,+ putPermissionResponse_policy,+ putPermissionResponse_revisionId,++ -- ** RemoveNotificationChannel+ removeNotificationChannel_channelId,+ removeNotificationChannel_profilingGroupName,+ removeNotificationChannelResponse_notificationConfiguration,+ removeNotificationChannelResponse_httpStatus,++ -- ** RemovePermission+ removePermission_actionGroup,+ removePermission_profilingGroupName,+ removePermission_revisionId,+ removePermissionResponse_httpStatus,+ removePermissionResponse_policy,+ removePermissionResponse_revisionId,++ -- ** SubmitFeedback+ submitFeedback_comment,+ submitFeedback_anomalyInstanceId,+ submitFeedback_profilingGroupName,+ submitFeedback_type,+ submitFeedbackResponse_httpStatus,++ -- ** TagResource+ tagResource_resourceArn,+ tagResource_tags,+ tagResourceResponse_httpStatus,++ -- ** UntagResource+ untagResource_resourceArn,+ untagResource_tagKeys,+ untagResourceResponse_httpStatus,++ -- ** UpdateProfilingGroup+ updateProfilingGroup_agentOrchestrationConfig,+ updateProfilingGroup_profilingGroupName,+ updateProfilingGroupResponse_httpStatus,+ updateProfilingGroupResponse_profilingGroup,++ -- * Types++ -- ** AgentConfiguration+ agentConfiguration_agentParameters,+ agentConfiguration_periodInSeconds,+ agentConfiguration_shouldProfile,++ -- ** AgentOrchestrationConfig+ agentOrchestrationConfig_profilingEnabled,++ -- ** AggregatedProfileTime+ aggregatedProfileTime_period,+ aggregatedProfileTime_start,++ -- ** Anomaly+ anomaly_instances,+ anomaly_metric,+ anomaly_reason,++ -- ** AnomalyInstance+ anomalyInstance_endTime,+ anomalyInstance_userFeedback,+ anomalyInstance_id,+ anomalyInstance_startTime,++ -- ** Channel+ channel_id,+ channel_eventPublishers,+ channel_uri,++ -- ** FindingsReportSummary+ findingsReportSummary_id,+ findingsReportSummary_profileEndTime,+ findingsReportSummary_profileStartTime,+ findingsReportSummary_profilingGroupName,+ findingsReportSummary_totalNumberOfFindings,++ -- ** FrameMetric+ frameMetric_frameName,+ frameMetric_threadStates,+ frameMetric_type,++ -- ** FrameMetricDatum+ frameMetricDatum_frameMetric,+ frameMetricDatum_values,++ -- ** Match+ match_frameAddress,+ match_targetFramesIndex,+ match_thresholdBreachValue,++ -- ** Metric+ metric_frameName,+ metric_threadStates,+ metric_type,++ -- ** NotificationConfiguration+ notificationConfiguration_channels,++ -- ** Pattern+ pattern_countersToAggregate,+ pattern_description,+ pattern_id,+ pattern_name,+ pattern_resolutionSteps,+ pattern_targetFrames,+ pattern_thresholdPercent,++ -- ** ProfileTime+ profileTime_start,++ -- ** ProfilingGroupDescription+ profilingGroupDescription_agentOrchestrationConfig,+ profilingGroupDescription_arn,+ profilingGroupDescription_computePlatform,+ profilingGroupDescription_createdAt,+ profilingGroupDescription_name,+ profilingGroupDescription_profilingStatus,+ profilingGroupDescription_tags,+ profilingGroupDescription_updatedAt,++ -- ** ProfilingStatus+ profilingStatus_latestAgentOrchestratedAt,+ profilingStatus_latestAgentProfileReportedAt,+ profilingStatus_latestAggregatedProfile,++ -- ** Recommendation+ recommendation_allMatchesCount,+ recommendation_allMatchesSum,+ recommendation_endTime,+ recommendation_pattern,+ recommendation_startTime,+ recommendation_topMatches,++ -- ** TimestampStructure+ timestampStructure_value,++ -- ** UserFeedback+ userFeedback_type,+ )+where++import Amazonka.CodeGuruProfiler.AddNotificationChannels+import Amazonka.CodeGuruProfiler.BatchGetFrameMetricData+import Amazonka.CodeGuruProfiler.ConfigureAgent+import Amazonka.CodeGuruProfiler.CreateProfilingGroup+import Amazonka.CodeGuruProfiler.DeleteProfilingGroup+import Amazonka.CodeGuruProfiler.DescribeProfilingGroup+import Amazonka.CodeGuruProfiler.GetFindingsReportAccountSummary+import Amazonka.CodeGuruProfiler.GetNotificationConfiguration+import Amazonka.CodeGuruProfiler.GetPolicy+import Amazonka.CodeGuruProfiler.GetProfile+import Amazonka.CodeGuruProfiler.GetRecommendations+import Amazonka.CodeGuruProfiler.ListFindingsReports+import Amazonka.CodeGuruProfiler.ListProfileTimes+import Amazonka.CodeGuruProfiler.ListProfilingGroups+import Amazonka.CodeGuruProfiler.ListTagsForResource+import Amazonka.CodeGuruProfiler.PostAgentProfile+import Amazonka.CodeGuruProfiler.PutPermission+import Amazonka.CodeGuruProfiler.RemoveNotificationChannel+import Amazonka.CodeGuruProfiler.RemovePermission+import Amazonka.CodeGuruProfiler.SubmitFeedback+import Amazonka.CodeGuruProfiler.TagResource+import Amazonka.CodeGuruProfiler.Types.AgentConfiguration+import Amazonka.CodeGuruProfiler.Types.AgentOrchestrationConfig+import Amazonka.CodeGuruProfiler.Types.AggregatedProfileTime+import Amazonka.CodeGuruProfiler.Types.Anomaly+import Amazonka.CodeGuruProfiler.Types.AnomalyInstance+import Amazonka.CodeGuruProfiler.Types.Channel+import Amazonka.CodeGuruProfiler.Types.FindingsReportSummary+import Amazonka.CodeGuruProfiler.Types.FrameMetric+import Amazonka.CodeGuruProfiler.Types.FrameMetricDatum+import Amazonka.CodeGuruProfiler.Types.Match+import Amazonka.CodeGuruProfiler.Types.Metric+import Amazonka.CodeGuruProfiler.Types.NotificationConfiguration+import Amazonka.CodeGuruProfiler.Types.Pattern+import Amazonka.CodeGuruProfiler.Types.ProfileTime+import Amazonka.CodeGuruProfiler.Types.ProfilingGroupDescription+import Amazonka.CodeGuruProfiler.Types.ProfilingStatus+import Amazonka.CodeGuruProfiler.Types.Recommendation+import Amazonka.CodeGuruProfiler.Types.TimestampStructure+import Amazonka.CodeGuruProfiler.Types.UserFeedback+import Amazonka.CodeGuruProfiler.UntagResource+import Amazonka.CodeGuruProfiler.UpdateProfilingGroup
+ gen/Amazonka/CodeGuruProfiler/ListFindingsReports.hs view
@@ -0,0 +1,332 @@+{-# 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.CodeGuruProfiler.ListFindingsReports+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- List the available reports for a given profiling group and time range.+module Amazonka.CodeGuruProfiler.ListFindingsReports+ ( -- * Creating a Request+ ListFindingsReports (..),+ newListFindingsReports,++ -- * Request Lenses+ listFindingsReports_dailyReportsOnly,+ listFindingsReports_maxResults,+ listFindingsReports_nextToken,+ listFindingsReports_endTime,+ listFindingsReports_profilingGroupName,+ listFindingsReports_startTime,++ -- * Destructuring the Response+ ListFindingsReportsResponse (..),+ newListFindingsReportsResponse,++ -- * Response Lenses+ listFindingsReportsResponse_nextToken,+ listFindingsReportsResponse_httpStatus,+ listFindingsReportsResponse_findingsReportSummaries,+ )+where++import Amazonka.CodeGuruProfiler.Types+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The structure representing the ListFindingsReportsRequest.+--+-- /See:/ 'newListFindingsReports' smart constructor.+data ListFindingsReports = ListFindingsReports'+ { -- | A @Boolean@ value indicating whether to only return reports from daily+ -- profiles. If set to @True@, only analysis data from daily profiles is+ -- returned. If set to @False@, analysis data is returned from smaller time+ -- windows (for example, one hour).+ dailyReportsOnly :: Prelude.Maybe Prelude.Bool,+ -- | The maximum number of report results returned by @ListFindingsReports@+ -- in paginated output. When this parameter is used, @ListFindingsReports@+ -- only returns @maxResults@ results in a single page along with a+ -- @nextToken@ response element. The remaining results of the initial+ -- request can be seen by sending another @ListFindingsReports@ request+ -- with the returned @nextToken@ value.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The @nextToken@ value returned from a previous paginated+ -- @ListFindingsReportsRequest@ request where @maxResults@ was used and the+ -- results exceeded the value of that parameter. Pagination continues from+ -- the end of the previous results that returned the @nextToken@ value.+ --+ -- This token should be treated as an opaque identifier that is only used+ -- to retrieve the next items in a list and not for other programmatic+ -- purposes.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The end time of the profile to get analysis data about. You must specify+ -- @startTime@ and @endTime@. This is specified using the ISO 8601 format.+ -- For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June+ -- 1, 2020 1:15:02 PM UTC.+ endTime :: Data.ISO8601,+ -- | The name of the profiling group from which to search for analysis data.+ profilingGroupName :: Prelude.Text,+ -- | The start time of the profile to get analysis data about. You must+ -- specify @startTime@ and @endTime@. This is specified using the ISO 8601+ -- format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond+ -- past June 1, 2020 1:15:02 PM UTC.+ startTime :: Data.ISO8601+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListFindingsReports' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dailyReportsOnly', 'listFindingsReports_dailyReportsOnly' - A @Boolean@ value indicating whether to only return reports from daily+-- profiles. If set to @True@, only analysis data from daily profiles is+-- returned. If set to @False@, analysis data is returned from smaller time+-- windows (for example, one hour).+--+-- 'maxResults', 'listFindingsReports_maxResults' - The maximum number of report results returned by @ListFindingsReports@+-- in paginated output. When this parameter is used, @ListFindingsReports@+-- only returns @maxResults@ results in a single page along with a+-- @nextToken@ response element. The remaining results of the initial+-- request can be seen by sending another @ListFindingsReports@ request+-- with the returned @nextToken@ value.+--+-- 'nextToken', 'listFindingsReports_nextToken' - The @nextToken@ value returned from a previous paginated+-- @ListFindingsReportsRequest@ request where @maxResults@ was used and the+-- results exceeded the value of that parameter. Pagination continues from+-- the end of the previous results that returned the @nextToken@ value.+--+-- This token should be treated as an opaque identifier that is only used+-- to retrieve the next items in a list and not for other programmatic+-- purposes.+--+-- 'endTime', 'listFindingsReports_endTime' - The end time of the profile to get analysis data about. You must specify+-- @startTime@ and @endTime@. This is specified using the ISO 8601 format.+-- For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June+-- 1, 2020 1:15:02 PM UTC.+--+-- 'profilingGroupName', 'listFindingsReports_profilingGroupName' - The name of the profiling group from which to search for analysis data.+--+-- 'startTime', 'listFindingsReports_startTime' - The start time of the profile to get analysis data about. You must+-- specify @startTime@ and @endTime@. This is specified using the ISO 8601+-- format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond+-- past June 1, 2020 1:15:02 PM UTC.+newListFindingsReports ::+ -- | 'endTime'+ Prelude.UTCTime ->+ -- | 'profilingGroupName'+ Prelude.Text ->+ -- | 'startTime'+ Prelude.UTCTime ->+ ListFindingsReports+newListFindingsReports+ pEndTime_+ pProfilingGroupName_+ pStartTime_ =+ ListFindingsReports'+ { dailyReportsOnly =+ Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ endTime = Data._Time Lens.# pEndTime_,+ profilingGroupName = pProfilingGroupName_,+ startTime = Data._Time Lens.# pStartTime_+ }++-- | A @Boolean@ value indicating whether to only return reports from daily+-- profiles. If set to @True@, only analysis data from daily profiles is+-- returned. If set to @False@, analysis data is returned from smaller time+-- windows (for example, one hour).+listFindingsReports_dailyReportsOnly :: Lens.Lens' ListFindingsReports (Prelude.Maybe Prelude.Bool)+listFindingsReports_dailyReportsOnly = Lens.lens (\ListFindingsReports' {dailyReportsOnly} -> dailyReportsOnly) (\s@ListFindingsReports' {} a -> s {dailyReportsOnly = a} :: ListFindingsReports)++-- | The maximum number of report results returned by @ListFindingsReports@+-- in paginated output. When this parameter is used, @ListFindingsReports@+-- only returns @maxResults@ results in a single page along with a+-- @nextToken@ response element. The remaining results of the initial+-- request can be seen by sending another @ListFindingsReports@ request+-- with the returned @nextToken@ value.+listFindingsReports_maxResults :: Lens.Lens' ListFindingsReports (Prelude.Maybe Prelude.Natural)+listFindingsReports_maxResults = Lens.lens (\ListFindingsReports' {maxResults} -> maxResults) (\s@ListFindingsReports' {} a -> s {maxResults = a} :: ListFindingsReports)++-- | The @nextToken@ value returned from a previous paginated+-- @ListFindingsReportsRequest@ request where @maxResults@ was used and the+-- results exceeded the value of that parameter. Pagination continues from+-- the end of the previous results that returned the @nextToken@ value.+--+-- This token should be treated as an opaque identifier that is only used+-- to retrieve the next items in a list and not for other programmatic+-- purposes.+listFindingsReports_nextToken :: Lens.Lens' ListFindingsReports (Prelude.Maybe Prelude.Text)+listFindingsReports_nextToken = Lens.lens (\ListFindingsReports' {nextToken} -> nextToken) (\s@ListFindingsReports' {} a -> s {nextToken = a} :: ListFindingsReports)++-- | The end time of the profile to get analysis data about. You must specify+-- @startTime@ and @endTime@. This is specified using the ISO 8601 format.+-- For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June+-- 1, 2020 1:15:02 PM UTC.+listFindingsReports_endTime :: Lens.Lens' ListFindingsReports Prelude.UTCTime+listFindingsReports_endTime = Lens.lens (\ListFindingsReports' {endTime} -> endTime) (\s@ListFindingsReports' {} a -> s {endTime = a} :: ListFindingsReports) Prelude.. Data._Time++-- | The name of the profiling group from which to search for analysis data.+listFindingsReports_profilingGroupName :: Lens.Lens' ListFindingsReports Prelude.Text+listFindingsReports_profilingGroupName = Lens.lens (\ListFindingsReports' {profilingGroupName} -> profilingGroupName) (\s@ListFindingsReports' {} a -> s {profilingGroupName = a} :: ListFindingsReports)++-- | The start time of the profile to get analysis data about. You must+-- specify @startTime@ and @endTime@. This is specified using the ISO 8601+-- format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond+-- past June 1, 2020 1:15:02 PM UTC.+listFindingsReports_startTime :: Lens.Lens' ListFindingsReports Prelude.UTCTime+listFindingsReports_startTime = Lens.lens (\ListFindingsReports' {startTime} -> startTime) (\s@ListFindingsReports' {} a -> s {startTime = a} :: ListFindingsReports) Prelude.. Data._Time++instance Core.AWSRequest ListFindingsReports where+ type+ AWSResponse ListFindingsReports =+ ListFindingsReportsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListFindingsReportsResponse'+ Prelude.<$> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> ( x+ Data..?> "findingsReportSummaries"+ Core..!@ Prelude.mempty+ )+ )++instance Prelude.Hashable ListFindingsReports where+ hashWithSalt _salt ListFindingsReports' {..} =+ _salt+ `Prelude.hashWithSalt` dailyReportsOnly+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` endTime+ `Prelude.hashWithSalt` profilingGroupName+ `Prelude.hashWithSalt` startTime++instance Prelude.NFData ListFindingsReports where+ rnf ListFindingsReports' {..} =+ Prelude.rnf dailyReportsOnly+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf endTime+ `Prelude.seq` Prelude.rnf profilingGroupName+ `Prelude.seq` Prelude.rnf startTime++instance Data.ToHeaders ListFindingsReports where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListFindingsReports where+ toPath ListFindingsReports' {..} =+ Prelude.mconcat+ [ "/internal/profilingGroups/",+ Data.toBS profilingGroupName,+ "/findingsReports"+ ]++instance Data.ToQuery ListFindingsReports where+ toQuery ListFindingsReports' {..} =+ Prelude.mconcat+ [ "dailyReportsOnly" Data.=: dailyReportsOnly,+ "maxResults" Data.=: maxResults,+ "nextToken" Data.=: nextToken,+ "endTime" Data.=: endTime,+ "startTime" Data.=: startTime+ ]++-- | The structure representing the ListFindingsReportsResponse.+--+-- /See:/ 'newListFindingsReportsResponse' smart constructor.+data ListFindingsReportsResponse = ListFindingsReportsResponse'+ { -- | The @nextToken@ value to include in a future @ListFindingsReports@+ -- request. When the results of a @ListFindingsReports@ request exceed+ -- @maxResults@, this value can be used to retrieve the next page of+ -- results. This value is @null@ when there are no more results to return.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The list of analysis results summaries.+ findingsReportSummaries :: [FindingsReportSummary]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListFindingsReportsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listFindingsReportsResponse_nextToken' - The @nextToken@ value to include in a future @ListFindingsReports@+-- request. When the results of a @ListFindingsReports@ request exceed+-- @maxResults@, this value can be used to retrieve the next page of+-- results. This value is @null@ when there are no more results to return.+--+-- 'httpStatus', 'listFindingsReportsResponse_httpStatus' - The response's http status code.+--+-- 'findingsReportSummaries', 'listFindingsReportsResponse_findingsReportSummaries' - The list of analysis results summaries.+newListFindingsReportsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListFindingsReportsResponse+newListFindingsReportsResponse pHttpStatus_ =+ ListFindingsReportsResponse'+ { nextToken =+ Prelude.Nothing,+ httpStatus = pHttpStatus_,+ findingsReportSummaries = Prelude.mempty+ }++-- | The @nextToken@ value to include in a future @ListFindingsReports@+-- request. When the results of a @ListFindingsReports@ request exceed+-- @maxResults@, this value can be used to retrieve the next page of+-- results. This value is @null@ when there are no more results to return.+listFindingsReportsResponse_nextToken :: Lens.Lens' ListFindingsReportsResponse (Prelude.Maybe Prelude.Text)+listFindingsReportsResponse_nextToken = Lens.lens (\ListFindingsReportsResponse' {nextToken} -> nextToken) (\s@ListFindingsReportsResponse' {} a -> s {nextToken = a} :: ListFindingsReportsResponse)++-- | The response's http status code.+listFindingsReportsResponse_httpStatus :: Lens.Lens' ListFindingsReportsResponse Prelude.Int+listFindingsReportsResponse_httpStatus = Lens.lens (\ListFindingsReportsResponse' {httpStatus} -> httpStatus) (\s@ListFindingsReportsResponse' {} a -> s {httpStatus = a} :: ListFindingsReportsResponse)++-- | The list of analysis results summaries.+listFindingsReportsResponse_findingsReportSummaries :: Lens.Lens' ListFindingsReportsResponse [FindingsReportSummary]+listFindingsReportsResponse_findingsReportSummaries = Lens.lens (\ListFindingsReportsResponse' {findingsReportSummaries} -> findingsReportSummaries) (\s@ListFindingsReportsResponse' {} a -> s {findingsReportSummaries = a} :: ListFindingsReportsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListFindingsReportsResponse where+ rnf ListFindingsReportsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf findingsReportSummaries
+ gen/Amazonka/CodeGuruProfiler/ListProfileTimes.hs view
@@ -0,0 +1,370 @@+{-# 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.CodeGuruProfiler.ListProfileTimes+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the start times of the available aggregated profiles of a+-- profiling group for an aggregation period within the specified time+-- range.+--+-- This operation returns paginated results.+module Amazonka.CodeGuruProfiler.ListProfileTimes+ ( -- * Creating a Request+ ListProfileTimes (..),+ newListProfileTimes,++ -- * Request Lenses+ listProfileTimes_maxResults,+ listProfileTimes_nextToken,+ listProfileTimes_orderBy,+ listProfileTimes_endTime,+ listProfileTimes_period,+ listProfileTimes_profilingGroupName,+ listProfileTimes_startTime,++ -- * Destructuring the Response+ ListProfileTimesResponse (..),+ newListProfileTimesResponse,++ -- * Response Lenses+ listProfileTimesResponse_nextToken,+ listProfileTimesResponse_httpStatus,+ listProfileTimesResponse_profileTimes,+ )+where++import Amazonka.CodeGuruProfiler.Types+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The structure representing the listProfileTimesRequest.+--+-- /See:/ 'newListProfileTimes' smart constructor.+data ListProfileTimes = ListProfileTimes'+ { -- | The maximum number of profile time results returned by+ -- @ListProfileTimes@ in paginated output. When this parameter is used,+ -- @ListProfileTimes@ only returns @maxResults@ results in a single page+ -- with a @nextToken@ response element. The remaining results of the+ -- initial request can be seen by sending another @ListProfileTimes@+ -- request with the returned @nextToken@ value.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The @nextToken@ value returned from a previous paginated+ -- @ListProfileTimes@ request where @maxResults@ was used and the results+ -- exceeded the value of that parameter. Pagination continues from the end+ -- of the previous results that returned the @nextToken@ value.+ --+ -- This token should be treated as an opaque identifier that is only used+ -- to retrieve the next items in a list and not for other programmatic+ -- purposes.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The order (ascending or descending by start time of the profile) to use+ -- when listing profiles. Defaults to @TIMESTAMP_DESCENDING@.+ orderBy :: Prelude.Maybe OrderBy,+ -- | The end time of the time range from which to list the profiles.+ endTime :: Data.ISO8601,+ -- | The aggregation period. This specifies the period during which an+ -- aggregation profile collects posted agent profiles for a profiling+ -- group. There are 3 valid values.+ --+ -- - @P1D@ — 1 day+ --+ -- - @PT1H@ — 1 hour+ --+ -- - @PT5M@ — 5 minutes+ period :: AggregationPeriod,+ -- | The name of the profiling group.+ profilingGroupName :: Prelude.Text,+ -- | The start time of the time range from which to list the profiles.+ startTime :: Data.ISO8601+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListProfileTimes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listProfileTimes_maxResults' - The maximum number of profile time results returned by+-- @ListProfileTimes@ in paginated output. When this parameter is used,+-- @ListProfileTimes@ only returns @maxResults@ results in a single page+-- with a @nextToken@ response element. The remaining results of the+-- initial request can be seen by sending another @ListProfileTimes@+-- request with the returned @nextToken@ value.+--+-- 'nextToken', 'listProfileTimes_nextToken' - The @nextToken@ value returned from a previous paginated+-- @ListProfileTimes@ request where @maxResults@ was used and the results+-- exceeded the value of that parameter. Pagination continues from the end+-- of the previous results that returned the @nextToken@ value.+--+-- This token should be treated as an opaque identifier that is only used+-- to retrieve the next items in a list and not for other programmatic+-- purposes.+--+-- 'orderBy', 'listProfileTimes_orderBy' - The order (ascending or descending by start time of the profile) to use+-- when listing profiles. Defaults to @TIMESTAMP_DESCENDING@.+--+-- 'endTime', 'listProfileTimes_endTime' - The end time of the time range from which to list the profiles.+--+-- 'period', 'listProfileTimes_period' - The aggregation period. This specifies the period during which an+-- aggregation profile collects posted agent profiles for a profiling+-- group. There are 3 valid values.+--+-- - @P1D@ — 1 day+--+-- - @PT1H@ — 1 hour+--+-- - @PT5M@ — 5 minutes+--+-- 'profilingGroupName', 'listProfileTimes_profilingGroupName' - The name of the profiling group.+--+-- 'startTime', 'listProfileTimes_startTime' - The start time of the time range from which to list the profiles.+newListProfileTimes ::+ -- | 'endTime'+ Prelude.UTCTime ->+ -- | 'period'+ AggregationPeriod ->+ -- | 'profilingGroupName'+ Prelude.Text ->+ -- | 'startTime'+ Prelude.UTCTime ->+ ListProfileTimes+newListProfileTimes+ pEndTime_+ pPeriod_+ pProfilingGroupName_+ pStartTime_ =+ ListProfileTimes'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ orderBy = Prelude.Nothing,+ endTime = Data._Time Lens.# pEndTime_,+ period = pPeriod_,+ profilingGroupName = pProfilingGroupName_,+ startTime = Data._Time Lens.# pStartTime_+ }++-- | The maximum number of profile time results returned by+-- @ListProfileTimes@ in paginated output. When this parameter is used,+-- @ListProfileTimes@ only returns @maxResults@ results in a single page+-- with a @nextToken@ response element. The remaining results of the+-- initial request can be seen by sending another @ListProfileTimes@+-- request with the returned @nextToken@ value.+listProfileTimes_maxResults :: Lens.Lens' ListProfileTimes (Prelude.Maybe Prelude.Natural)+listProfileTimes_maxResults = Lens.lens (\ListProfileTimes' {maxResults} -> maxResults) (\s@ListProfileTimes' {} a -> s {maxResults = a} :: ListProfileTimes)++-- | The @nextToken@ value returned from a previous paginated+-- @ListProfileTimes@ request where @maxResults@ was used and the results+-- exceeded the value of that parameter. Pagination continues from the end+-- of the previous results that returned the @nextToken@ value.+--+-- This token should be treated as an opaque identifier that is only used+-- to retrieve the next items in a list and not for other programmatic+-- purposes.+listProfileTimes_nextToken :: Lens.Lens' ListProfileTimes (Prelude.Maybe Prelude.Text)+listProfileTimes_nextToken = Lens.lens (\ListProfileTimes' {nextToken} -> nextToken) (\s@ListProfileTimes' {} a -> s {nextToken = a} :: ListProfileTimes)++-- | The order (ascending or descending by start time of the profile) to use+-- when listing profiles. Defaults to @TIMESTAMP_DESCENDING@.+listProfileTimes_orderBy :: Lens.Lens' ListProfileTimes (Prelude.Maybe OrderBy)+listProfileTimes_orderBy = Lens.lens (\ListProfileTimes' {orderBy} -> orderBy) (\s@ListProfileTimes' {} a -> s {orderBy = a} :: ListProfileTimes)++-- | The end time of the time range from which to list the profiles.+listProfileTimes_endTime :: Lens.Lens' ListProfileTimes Prelude.UTCTime+listProfileTimes_endTime = Lens.lens (\ListProfileTimes' {endTime} -> endTime) (\s@ListProfileTimes' {} a -> s {endTime = a} :: ListProfileTimes) Prelude.. Data._Time++-- | The aggregation period. This specifies the period during which an+-- aggregation profile collects posted agent profiles for a profiling+-- group. There are 3 valid values.+--+-- - @P1D@ — 1 day+--+-- - @PT1H@ — 1 hour+--+-- - @PT5M@ — 5 minutes+listProfileTimes_period :: Lens.Lens' ListProfileTimes AggregationPeriod+listProfileTimes_period = Lens.lens (\ListProfileTimes' {period} -> period) (\s@ListProfileTimes' {} a -> s {period = a} :: ListProfileTimes)++-- | The name of the profiling group.+listProfileTimes_profilingGroupName :: Lens.Lens' ListProfileTimes Prelude.Text+listProfileTimes_profilingGroupName = Lens.lens (\ListProfileTimes' {profilingGroupName} -> profilingGroupName) (\s@ListProfileTimes' {} a -> s {profilingGroupName = a} :: ListProfileTimes)++-- | The start time of the time range from which to list the profiles.+listProfileTimes_startTime :: Lens.Lens' ListProfileTimes Prelude.UTCTime+listProfileTimes_startTime = Lens.lens (\ListProfileTimes' {startTime} -> startTime) (\s@ListProfileTimes' {} a -> s {startTime = a} :: ListProfileTimes) Prelude.. Data._Time++instance Core.AWSPager ListProfileTimes where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listProfileTimesResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ (rs Lens.^. listProfileTimesResponse_profileTimes) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listProfileTimes_nextToken+ Lens..~ rs+ Lens.^? listProfileTimesResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListProfileTimes where+ type+ AWSResponse ListProfileTimes =+ ListProfileTimesResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListProfileTimesResponse'+ Prelude.<$> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..?> "profileTimes" Core..!@ Prelude.mempty)+ )++instance Prelude.Hashable ListProfileTimes where+ hashWithSalt _salt ListProfileTimes' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` orderBy+ `Prelude.hashWithSalt` endTime+ `Prelude.hashWithSalt` period+ `Prelude.hashWithSalt` profilingGroupName+ `Prelude.hashWithSalt` startTime++instance Prelude.NFData ListProfileTimes where+ rnf ListProfileTimes' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf orderBy+ `Prelude.seq` Prelude.rnf endTime+ `Prelude.seq` Prelude.rnf period+ `Prelude.seq` Prelude.rnf profilingGroupName+ `Prelude.seq` Prelude.rnf startTime++instance Data.ToHeaders ListProfileTimes where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListProfileTimes where+ toPath ListProfileTimes' {..} =+ Prelude.mconcat+ [ "/profilingGroups/",+ Data.toBS profilingGroupName,+ "/profileTimes"+ ]++instance Data.ToQuery ListProfileTimes where+ toQuery ListProfileTimes' {..} =+ Prelude.mconcat+ [ "maxResults" Data.=: maxResults,+ "nextToken" Data.=: nextToken,+ "orderBy" Data.=: orderBy,+ "endTime" Data.=: endTime,+ "period" Data.=: period,+ "startTime" Data.=: startTime+ ]++-- | The structure representing the listProfileTimesResponse.+--+-- /See:/ 'newListProfileTimesResponse' smart constructor.+data ListProfileTimesResponse = ListProfileTimesResponse'+ { -- | The @nextToken@ value to include in a future @ListProfileTimes@ request.+ -- When the results of a @ListProfileTimes@ request exceed @maxResults@,+ -- this value can be used to retrieve the next page of results. This value+ -- is @null@ when there are no more results to return.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The list of start times of the available profiles for the aggregation+ -- period in the specified time range.+ profileTimes :: [ProfileTime]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListProfileTimesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listProfileTimesResponse_nextToken' - The @nextToken@ value to include in a future @ListProfileTimes@ request.+-- When the results of a @ListProfileTimes@ request exceed @maxResults@,+-- this value can be used to retrieve the next page of results. This value+-- is @null@ when there are no more results to return.+--+-- 'httpStatus', 'listProfileTimesResponse_httpStatus' - The response's http status code.+--+-- 'profileTimes', 'listProfileTimesResponse_profileTimes' - The list of start times of the available profiles for the aggregation+-- period in the specified time range.+newListProfileTimesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListProfileTimesResponse+newListProfileTimesResponse pHttpStatus_ =+ ListProfileTimesResponse'+ { nextToken =+ Prelude.Nothing,+ httpStatus = pHttpStatus_,+ profileTimes = Prelude.mempty+ }++-- | The @nextToken@ value to include in a future @ListProfileTimes@ request.+-- When the results of a @ListProfileTimes@ request exceed @maxResults@,+-- this value can be used to retrieve the next page of results. This value+-- is @null@ when there are no more results to return.+listProfileTimesResponse_nextToken :: Lens.Lens' ListProfileTimesResponse (Prelude.Maybe Prelude.Text)+listProfileTimesResponse_nextToken = Lens.lens (\ListProfileTimesResponse' {nextToken} -> nextToken) (\s@ListProfileTimesResponse' {} a -> s {nextToken = a} :: ListProfileTimesResponse)++-- | The response's http status code.+listProfileTimesResponse_httpStatus :: Lens.Lens' ListProfileTimesResponse Prelude.Int+listProfileTimesResponse_httpStatus = Lens.lens (\ListProfileTimesResponse' {httpStatus} -> httpStatus) (\s@ListProfileTimesResponse' {} a -> s {httpStatus = a} :: ListProfileTimesResponse)++-- | The list of start times of the available profiles for the aggregation+-- period in the specified time range.+listProfileTimesResponse_profileTimes :: Lens.Lens' ListProfileTimesResponse [ProfileTime]+listProfileTimesResponse_profileTimes = Lens.lens (\ListProfileTimesResponse' {profileTimes} -> profileTimes) (\s@ListProfileTimesResponse' {} a -> s {profileTimes = a} :: ListProfileTimesResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListProfileTimesResponse where+ rnf ListProfileTimesResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf profileTimes
+ gen/Amazonka/CodeGuruProfiler/ListProfilingGroups.hs view
@@ -0,0 +1,306 @@+{-# 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.CodeGuruProfiler.ListProfilingGroups+-- 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 profiling groups. The profiling groups are returned as+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html ProfilingGroupDescription>+-- objects.+module Amazonka.CodeGuruProfiler.ListProfilingGroups+ ( -- * Creating a Request+ ListProfilingGroups (..),+ newListProfilingGroups,++ -- * Request Lenses+ listProfilingGroups_includeDescription,+ listProfilingGroups_maxResults,+ listProfilingGroups_nextToken,++ -- * Destructuring the Response+ ListProfilingGroupsResponse (..),+ newListProfilingGroupsResponse,++ -- * Response Lenses+ listProfilingGroupsResponse_nextToken,+ listProfilingGroupsResponse_profilingGroups,+ listProfilingGroupsResponse_httpStatus,+ listProfilingGroupsResponse_profilingGroupNames,+ )+where++import Amazonka.CodeGuruProfiler.Types+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The structure representing the listProfilingGroupsRequest.+--+-- /See:/ 'newListProfilingGroups' smart constructor.+data ListProfilingGroups = ListProfilingGroups'+ { -- | A @Boolean@ value indicating whether to include a description. If+ -- @true@, then a list of+ -- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html ProfilingGroupDescription>+ -- objects that contain detailed information about profiling groups is+ -- returned. If @false@, then a list of profiling group names is returned.+ includeDescription :: Prelude.Maybe Prelude.Bool,+ -- | The maximum number of profiling groups results returned by+ -- @ListProfilingGroups@ in paginated output. When this parameter is used,+ -- @ListProfilingGroups@ only returns @maxResults@ results in a single page+ -- along with a @nextToken@ response element. The remaining results of the+ -- initial request can be seen by sending another @ListProfilingGroups@+ -- request with the returned @nextToken@ value.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The @nextToken@ value returned from a previous paginated+ -- @ListProfilingGroups@ request where @maxResults@ was used and the+ -- results exceeded the value of that parameter. Pagination continues from+ -- the end of the previous results that returned the @nextToken@ value.+ --+ -- This token should be treated as an opaque identifier that is only used+ -- to retrieve the next items in a list and not for other programmatic+ -- purposes.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListProfilingGroups' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'includeDescription', 'listProfilingGroups_includeDescription' - A @Boolean@ value indicating whether to include a description. If+-- @true@, then a list of+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html ProfilingGroupDescription>+-- objects that contain detailed information about profiling groups is+-- returned. If @false@, then a list of profiling group names is returned.+--+-- 'maxResults', 'listProfilingGroups_maxResults' - The maximum number of profiling groups results returned by+-- @ListProfilingGroups@ in paginated output. When this parameter is used,+-- @ListProfilingGroups@ only returns @maxResults@ results in a single page+-- along with a @nextToken@ response element. The remaining results of the+-- initial request can be seen by sending another @ListProfilingGroups@+-- request with the returned @nextToken@ value.+--+-- 'nextToken', 'listProfilingGroups_nextToken' - The @nextToken@ value returned from a previous paginated+-- @ListProfilingGroups@ request where @maxResults@ was used and the+-- results exceeded the value of that parameter. Pagination continues from+-- the end of the previous results that returned the @nextToken@ value.+--+-- This token should be treated as an opaque identifier that is only used+-- to retrieve the next items in a list and not for other programmatic+-- purposes.+newListProfilingGroups ::+ ListProfilingGroups+newListProfilingGroups =+ ListProfilingGroups'+ { includeDescription =+ Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing+ }++-- | A @Boolean@ value indicating whether to include a description. If+-- @true@, then a list of+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html ProfilingGroupDescription>+-- objects that contain detailed information about profiling groups is+-- returned. If @false@, then a list of profiling group names is returned.+listProfilingGroups_includeDescription :: Lens.Lens' ListProfilingGroups (Prelude.Maybe Prelude.Bool)+listProfilingGroups_includeDescription = Lens.lens (\ListProfilingGroups' {includeDescription} -> includeDescription) (\s@ListProfilingGroups' {} a -> s {includeDescription = a} :: ListProfilingGroups)++-- | The maximum number of profiling groups results returned by+-- @ListProfilingGroups@ in paginated output. When this parameter is used,+-- @ListProfilingGroups@ only returns @maxResults@ results in a single page+-- along with a @nextToken@ response element. The remaining results of the+-- initial request can be seen by sending another @ListProfilingGroups@+-- request with the returned @nextToken@ value.+listProfilingGroups_maxResults :: Lens.Lens' ListProfilingGroups (Prelude.Maybe Prelude.Natural)+listProfilingGroups_maxResults = Lens.lens (\ListProfilingGroups' {maxResults} -> maxResults) (\s@ListProfilingGroups' {} a -> s {maxResults = a} :: ListProfilingGroups)++-- | The @nextToken@ value returned from a previous paginated+-- @ListProfilingGroups@ request where @maxResults@ was used and the+-- results exceeded the value of that parameter. Pagination continues from+-- the end of the previous results that returned the @nextToken@ value.+--+-- This token should be treated as an opaque identifier that is only used+-- to retrieve the next items in a list and not for other programmatic+-- purposes.+listProfilingGroups_nextToken :: Lens.Lens' ListProfilingGroups (Prelude.Maybe Prelude.Text)+listProfilingGroups_nextToken = Lens.lens (\ListProfilingGroups' {nextToken} -> nextToken) (\s@ListProfilingGroups' {} a -> s {nextToken = a} :: ListProfilingGroups)++instance Core.AWSRequest ListProfilingGroups where+ type+ AWSResponse ListProfilingGroups =+ ListProfilingGroupsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListProfilingGroupsResponse'+ Prelude.<$> (x Data..?> "nextToken")+ Prelude.<*> ( x+ Data..?> "profilingGroups"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> ( x+ Data..?> "profilingGroupNames"+ Core..!@ Prelude.mempty+ )+ )++instance Prelude.Hashable ListProfilingGroups where+ hashWithSalt _salt ListProfilingGroups' {..} =+ _salt+ `Prelude.hashWithSalt` includeDescription+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListProfilingGroups where+ rnf ListProfilingGroups' {..} =+ Prelude.rnf includeDescription+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListProfilingGroups where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListProfilingGroups where+ toPath = Prelude.const "/profilingGroups"++instance Data.ToQuery ListProfilingGroups where+ toQuery ListProfilingGroups' {..} =+ Prelude.mconcat+ [ "includeDescription" Data.=: includeDescription,+ "maxResults" Data.=: maxResults,+ "nextToken" Data.=: nextToken+ ]++-- | The structure representing the listProfilingGroupsResponse.+--+-- /See:/ 'newListProfilingGroupsResponse' smart constructor.+data ListProfilingGroupsResponse = ListProfilingGroupsResponse'+ { -- | The @nextToken@ value to include in a future @ListProfilingGroups@+ -- request. When the results of a @ListProfilingGroups@ request exceed+ -- @maxResults@, this value can be used to retrieve the next page of+ -- results. This value is @null@ when there are no more results to return.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A returned list+ -- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html ProfilingGroupDescription>+ -- objects. A list of+ -- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html ProfilingGroupDescription>+ -- objects is returned only if @includeDescription@ is @true@, otherwise a+ -- list of profiling group names is returned.+ profilingGroups :: Prelude.Maybe [ProfilingGroupDescription],+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | A returned list of profiling group names. A list of the names is+ -- returned only if @includeDescription@ is @false@, otherwise a list of+ -- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html ProfilingGroupDescription>+ -- objects is returned.+ profilingGroupNames :: [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListProfilingGroupsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listProfilingGroupsResponse_nextToken' - The @nextToken@ value to include in a future @ListProfilingGroups@+-- request. When the results of a @ListProfilingGroups@ request exceed+-- @maxResults@, this value can be used to retrieve the next page of+-- results. This value is @null@ when there are no more results to return.+--+-- 'profilingGroups', 'listProfilingGroupsResponse_profilingGroups' - A returned list+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html ProfilingGroupDescription>+-- objects. A list of+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html ProfilingGroupDescription>+-- objects is returned only if @includeDescription@ is @true@, otherwise a+-- list of profiling group names is returned.+--+-- 'httpStatus', 'listProfilingGroupsResponse_httpStatus' - The response's http status code.+--+-- 'profilingGroupNames', 'listProfilingGroupsResponse_profilingGroupNames' - A returned list of profiling group names. A list of the names is+-- returned only if @includeDescription@ is @false@, otherwise a list of+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html ProfilingGroupDescription>+-- objects is returned.+newListProfilingGroupsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListProfilingGroupsResponse+newListProfilingGroupsResponse pHttpStatus_ =+ ListProfilingGroupsResponse'+ { nextToken =+ Prelude.Nothing,+ profilingGroups = Prelude.Nothing,+ httpStatus = pHttpStatus_,+ profilingGroupNames = Prelude.mempty+ }++-- | The @nextToken@ value to include in a future @ListProfilingGroups@+-- request. When the results of a @ListProfilingGroups@ request exceed+-- @maxResults@, this value can be used to retrieve the next page of+-- results. This value is @null@ when there are no more results to return.+listProfilingGroupsResponse_nextToken :: Lens.Lens' ListProfilingGroupsResponse (Prelude.Maybe Prelude.Text)+listProfilingGroupsResponse_nextToken = Lens.lens (\ListProfilingGroupsResponse' {nextToken} -> nextToken) (\s@ListProfilingGroupsResponse' {} a -> s {nextToken = a} :: ListProfilingGroupsResponse)++-- | A returned list+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html ProfilingGroupDescription>+-- objects. A list of+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html ProfilingGroupDescription>+-- objects is returned only if @includeDescription@ is @true@, otherwise a+-- list of profiling group names is returned.+listProfilingGroupsResponse_profilingGroups :: Lens.Lens' ListProfilingGroupsResponse (Prelude.Maybe [ProfilingGroupDescription])+listProfilingGroupsResponse_profilingGroups = Lens.lens (\ListProfilingGroupsResponse' {profilingGroups} -> profilingGroups) (\s@ListProfilingGroupsResponse' {} a -> s {profilingGroups = a} :: ListProfilingGroupsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listProfilingGroupsResponse_httpStatus :: Lens.Lens' ListProfilingGroupsResponse Prelude.Int+listProfilingGroupsResponse_httpStatus = Lens.lens (\ListProfilingGroupsResponse' {httpStatus} -> httpStatus) (\s@ListProfilingGroupsResponse' {} a -> s {httpStatus = a} :: ListProfilingGroupsResponse)++-- | A returned list of profiling group names. A list of the names is+-- returned only if @includeDescription@ is @false@, otherwise a list of+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html ProfilingGroupDescription>+-- objects is returned.+listProfilingGroupsResponse_profilingGroupNames :: Lens.Lens' ListProfilingGroupsResponse [Prelude.Text]+listProfilingGroupsResponse_profilingGroupNames = Lens.lens (\ListProfilingGroupsResponse' {profilingGroupNames} -> profilingGroupNames) (\s@ListProfilingGroupsResponse' {} a -> s {profilingGroupNames = a} :: ListProfilingGroupsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListProfilingGroupsResponse where+ rnf ListProfilingGroupsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf profilingGroups+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf profilingGroupNames
+ gen/Amazonka/CodeGuruProfiler/ListTagsForResource.hs view
@@ -0,0 +1,165 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CodeGuruProfiler.ListTagsForResource+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of the tags that are assigned to a specified resource.+module Amazonka.CodeGuruProfiler.ListTagsForResource+ ( -- * Creating a Request+ ListTagsForResource (..),+ newListTagsForResource,++ -- * Request Lenses+ listTagsForResource_resourceArn,++ -- * Destructuring the Response+ ListTagsForResourceResponse (..),+ newListTagsForResourceResponse,++ -- * Response Lenses+ listTagsForResourceResponse_tags,+ listTagsForResourceResponse_httpStatus,+ )+where++import Amazonka.CodeGuruProfiler.Types+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+ { -- | The Amazon Resource Name (ARN) of the resource that contains the tags to+ -- return.+ resourceArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'listTagsForResource_resourceArn' - The Amazon Resource Name (ARN) of the resource that contains the tags to+-- return.+newListTagsForResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ ListTagsForResource+newListTagsForResource pResourceArn_ =+ ListTagsForResource' {resourceArn = pResourceArn_}++-- | The Amazon Resource Name (ARN) of the resource that contains the tags to+-- return.+listTagsForResource_resourceArn :: Lens.Lens' ListTagsForResource Prelude.Text+listTagsForResource_resourceArn = Lens.lens (\ListTagsForResource' {resourceArn} -> resourceArn) (\s@ListTagsForResource' {} a -> s {resourceArn = a} :: ListTagsForResource)++instance Core.AWSRequest ListTagsForResource where+ type+ AWSResponse ListTagsForResource =+ ListTagsForResourceResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListTagsForResourceResponse'+ Prelude.<$> (x Data..?> "tags" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListTagsForResource where+ hashWithSalt _salt ListTagsForResource' {..} =+ _salt `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData ListTagsForResource where+ rnf ListTagsForResource' {..} =+ Prelude.rnf resourceArn++instance Data.ToHeaders ListTagsForResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListTagsForResource where+ toPath ListTagsForResource' {..} =+ Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery ListTagsForResource where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+ { -- | The list of tags assigned to the specified resource. This is the list of+ -- tags returned in the response.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'listTagsForResourceResponse_tags' - The list of tags assigned to the specified resource. This is the list of+-- tags returned in the response.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+ ListTagsForResourceResponse'+ { tags =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of tags assigned to the specified resource. This is the list of+-- tags returned in the response.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)++instance Prelude.NFData ListTagsForResourceResponse where+ rnf ListTagsForResourceResponse' {..} =+ Prelude.rnf tags+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CodeGuruProfiler/PostAgentProfile.hs view
@@ -0,0 +1,225 @@+{-# 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.CodeGuruProfiler.PostAgentProfile+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Submits profiling data to an aggregated profile of a profiling group. To+-- get an aggregated profile that is created with this profiling data, use+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_GetProfile.html GetProfile>+-- .+module Amazonka.CodeGuruProfiler.PostAgentProfile+ ( -- * Creating a Request+ PostAgentProfile (..),+ newPostAgentProfile,++ -- * Request Lenses+ postAgentProfile_profileToken,+ postAgentProfile_agentProfile,+ postAgentProfile_contentType,+ postAgentProfile_profilingGroupName,++ -- * Destructuring the Response+ PostAgentProfileResponse (..),+ newPostAgentProfileResponse,++ -- * Response Lenses+ postAgentProfileResponse_httpStatus,+ )+where++import Amazonka.CodeGuruProfiler.Types+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The structure representing the postAgentProfileRequest.+--+-- /See:/ 'newPostAgentProfile' smart constructor.+data PostAgentProfile = PostAgentProfile'+ { -- | Amazon CodeGuru Profiler uses this universally unique identifier (UUID)+ -- to prevent the accidental submission of duplicate profiling data if+ -- there are failures and retries.+ profileToken :: Prelude.Maybe Prelude.Text,+ -- | The submitted profiling data.+ agentProfile :: Prelude.ByteString,+ -- | The format of the submitted profiling data. The format maps to the+ -- @Accept@ and @Content-Type@ headers of the HTTP request. You can specify+ -- one of the following: or the default .+ --+ -- > <ul> <li> <p> <code>application/json</code> — standard JSON format </p> </li> <li> <p> <code>application/x-amzn-ion</code> — the Amazon Ion data format. For more information, see <a href="http://amzn.github.io/ion-docs/">Amazon Ion</a>. </p> </li> </ul>+ contentType :: Prelude.Text,+ -- | The name of the profiling group with the aggregated profile that+ -- receives the submitted profiling data.+ profilingGroupName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PostAgentProfile' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'profileToken', 'postAgentProfile_profileToken' - Amazon CodeGuru Profiler uses this universally unique identifier (UUID)+-- to prevent the accidental submission of duplicate profiling data if+-- there are failures and retries.+--+-- 'agentProfile', 'postAgentProfile_agentProfile' - The submitted profiling data.+--+-- 'contentType', 'postAgentProfile_contentType' - The format of the submitted profiling data. The format maps to the+-- @Accept@ and @Content-Type@ headers of the HTTP request. You can specify+-- one of the following: or the default .+--+-- > <ul> <li> <p> <code>application/json</code> — standard JSON format </p> </li> <li> <p> <code>application/x-amzn-ion</code> — the Amazon Ion data format. For more information, see <a href="http://amzn.github.io/ion-docs/">Amazon Ion</a>. </p> </li> </ul>+--+-- 'profilingGroupName', 'postAgentProfile_profilingGroupName' - The name of the profiling group with the aggregated profile that+-- receives the submitted profiling data.+newPostAgentProfile ::+ -- | 'agentProfile'+ Prelude.ByteString ->+ -- | 'contentType'+ Prelude.Text ->+ -- | 'profilingGroupName'+ Prelude.Text ->+ PostAgentProfile+newPostAgentProfile+ pAgentProfile_+ pContentType_+ pProfilingGroupName_ =+ PostAgentProfile'+ { profileToken = Prelude.Nothing,+ agentProfile = pAgentProfile_,+ contentType = pContentType_,+ profilingGroupName = pProfilingGroupName_+ }++-- | Amazon CodeGuru Profiler uses this universally unique identifier (UUID)+-- to prevent the accidental submission of duplicate profiling data if+-- there are failures and retries.+postAgentProfile_profileToken :: Lens.Lens' PostAgentProfile (Prelude.Maybe Prelude.Text)+postAgentProfile_profileToken = Lens.lens (\PostAgentProfile' {profileToken} -> profileToken) (\s@PostAgentProfile' {} a -> s {profileToken = a} :: PostAgentProfile)++-- | The submitted profiling data.+postAgentProfile_agentProfile :: Lens.Lens' PostAgentProfile Prelude.ByteString+postAgentProfile_agentProfile = Lens.lens (\PostAgentProfile' {agentProfile} -> agentProfile) (\s@PostAgentProfile' {} a -> s {agentProfile = a} :: PostAgentProfile)++-- | The format of the submitted profiling data. The format maps to the+-- @Accept@ and @Content-Type@ headers of the HTTP request. You can specify+-- one of the following: or the default .+--+-- > <ul> <li> <p> <code>application/json</code> — standard JSON format </p> </li> <li> <p> <code>application/x-amzn-ion</code> — the Amazon Ion data format. For more information, see <a href="http://amzn.github.io/ion-docs/">Amazon Ion</a>. </p> </li> </ul>+postAgentProfile_contentType :: Lens.Lens' PostAgentProfile Prelude.Text+postAgentProfile_contentType = Lens.lens (\PostAgentProfile' {contentType} -> contentType) (\s@PostAgentProfile' {} a -> s {contentType = a} :: PostAgentProfile)++-- | The name of the profiling group with the aggregated profile that+-- receives the submitted profiling data.+postAgentProfile_profilingGroupName :: Lens.Lens' PostAgentProfile Prelude.Text+postAgentProfile_profilingGroupName = Lens.lens (\PostAgentProfile' {profilingGroupName} -> profilingGroupName) (\s@PostAgentProfile' {} a -> s {profilingGroupName = a} :: PostAgentProfile)++instance Core.AWSRequest PostAgentProfile where+ type+ AWSResponse PostAgentProfile =+ PostAgentProfileResponse+ request overrides =+ Request.postBody (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ PostAgentProfileResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable PostAgentProfile where+ hashWithSalt _salt PostAgentProfile' {..} =+ _salt+ `Prelude.hashWithSalt` profileToken+ `Prelude.hashWithSalt` agentProfile+ `Prelude.hashWithSalt` contentType+ `Prelude.hashWithSalt` profilingGroupName++instance Prelude.NFData PostAgentProfile where+ rnf PostAgentProfile' {..} =+ Prelude.rnf profileToken+ `Prelude.seq` Prelude.rnf agentProfile+ `Prelude.seq` Prelude.rnf contentType+ `Prelude.seq` Prelude.rnf profilingGroupName++instance Data.ToBody PostAgentProfile where+ toBody PostAgentProfile' {..} =+ Data.toBody agentProfile++instance Data.ToHeaders PostAgentProfile where+ toHeaders PostAgentProfile' {..} =+ Prelude.mconcat+ ["Content-Type" Data.=# contentType]++instance Data.ToPath PostAgentProfile where+ toPath PostAgentProfile' {..} =+ Prelude.mconcat+ [ "/profilingGroups/",+ Data.toBS profilingGroupName,+ "/agentProfile"+ ]++instance Data.ToQuery PostAgentProfile where+ toQuery PostAgentProfile' {..} =+ Prelude.mconcat+ ["profileToken" Data.=: profileToken]++-- | The structure representing the postAgentProfileResponse.+--+-- /See:/ 'newPostAgentProfileResponse' smart constructor.+data PostAgentProfileResponse = PostAgentProfileResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PostAgentProfileResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'postAgentProfileResponse_httpStatus' - The response's http status code.+newPostAgentProfileResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PostAgentProfileResponse+newPostAgentProfileResponse pHttpStatus_ =+ PostAgentProfileResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+postAgentProfileResponse_httpStatus :: Lens.Lens' PostAgentProfileResponse Prelude.Int+postAgentProfileResponse_httpStatus = Lens.lens (\PostAgentProfileResponse' {httpStatus} -> httpStatus) (\s@PostAgentProfileResponse' {} a -> s {httpStatus = a} :: PostAgentProfileResponse)++instance Prelude.NFData PostAgentProfileResponse where+ rnf PostAgentProfileResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/CodeGuruProfiler/PutPermission.hs view
@@ -0,0 +1,279 @@+{-# 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.CodeGuruProfiler.PutPermission+-- 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 permissions to a profiling group\'s resource-based policy that are+-- provided using an action group. If a profiling group doesn\'t have a+-- resource-based policy, one is created for it using the permissions in+-- the action group and the roles and users in the @principals@ parameter.+--+-- > <p> The one supported action group that can be added is <code>agentPermission</code> which grants <code>ConfigureAgent</code> and <code>PostAgent</code> permissions. For more information, see <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-ug/resource-based-policies.html">Resource-based policies in CodeGuru Profiler</a> in the <i>Amazon CodeGuru Profiler User Guide</i>, <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html"> <code>ConfigureAgent</code> </a>, and <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_PostAgentProfile.html"> <code>PostAgentProfile</code> </a>. </p> <p> The first time you call <code>PutPermission</code> on a profiling group, do not specify a <code>revisionId</code> because it doesn't have a resource-based policy. Subsequent calls must provide a <code>revisionId</code> to specify which revision of the resource-based policy to add the permissions to. </p> <p> The response contains the profiling group's JSON-formatted resource policy. </p>+module Amazonka.CodeGuruProfiler.PutPermission+ ( -- * Creating a Request+ PutPermission (..),+ newPutPermission,++ -- * Request Lenses+ putPermission_revisionId,+ putPermission_actionGroup,+ putPermission_principals,+ putPermission_profilingGroupName,++ -- * Destructuring the Response+ PutPermissionResponse (..),+ newPutPermissionResponse,++ -- * Response Lenses+ putPermissionResponse_httpStatus,+ putPermissionResponse_policy,+ putPermissionResponse_revisionId,+ )+where++import Amazonka.CodeGuruProfiler.Types+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The structure representing the @putPermissionRequest@.+--+-- /See:/ 'newPutPermission' smart constructor.+data PutPermission = PutPermission'+ { -- | A universally unique identifier (UUID) for the revision of the policy+ -- you are adding to the profiling group. Do not specify this when you add+ -- permissions to a profiling group for the first time. If a policy already+ -- exists on the profiling group, you must specify the @revisionId@.+ revisionId :: Prelude.Maybe Prelude.Text,+ -- | Specifies an action group that contains permissions to add to a+ -- profiling group resource. One action group is supported,+ -- @agentPermissions@, which grants permission to perform actions required+ -- by the profiling agent, @ConfigureAgent@ and @PostAgentProfile@+ -- permissions.+ actionGroup :: ActionGroup,+ -- | A list ARNs for the roles and users you want to grant access to the+ -- profiling group. Wildcards are not are supported in the ARNs.+ principals :: Prelude.NonEmpty Prelude.Text,+ -- | The name of the profiling group to grant access to.+ profilingGroupName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutPermission' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'revisionId', 'putPermission_revisionId' - A universally unique identifier (UUID) for the revision of the policy+-- you are adding to the profiling group. Do not specify this when you add+-- permissions to a profiling group for the first time. If a policy already+-- exists on the profiling group, you must specify the @revisionId@.+--+-- 'actionGroup', 'putPermission_actionGroup' - Specifies an action group that contains permissions to add to a+-- profiling group resource. One action group is supported,+-- @agentPermissions@, which grants permission to perform actions required+-- by the profiling agent, @ConfigureAgent@ and @PostAgentProfile@+-- permissions.+--+-- 'principals', 'putPermission_principals' - A list ARNs for the roles and users you want to grant access to the+-- profiling group. Wildcards are not are supported in the ARNs.+--+-- 'profilingGroupName', 'putPermission_profilingGroupName' - The name of the profiling group to grant access to.+newPutPermission ::+ -- | 'actionGroup'+ ActionGroup ->+ -- | 'principals'+ Prelude.NonEmpty Prelude.Text ->+ -- | 'profilingGroupName'+ Prelude.Text ->+ PutPermission+newPutPermission+ pActionGroup_+ pPrincipals_+ pProfilingGroupName_ =+ PutPermission'+ { revisionId = Prelude.Nothing,+ actionGroup = pActionGroup_,+ principals = Lens.coerced Lens.# pPrincipals_,+ profilingGroupName = pProfilingGroupName_+ }++-- | A universally unique identifier (UUID) for the revision of the policy+-- you are adding to the profiling group. Do not specify this when you add+-- permissions to a profiling group for the first time. If a policy already+-- exists on the profiling group, you must specify the @revisionId@.+putPermission_revisionId :: Lens.Lens' PutPermission (Prelude.Maybe Prelude.Text)+putPermission_revisionId = Lens.lens (\PutPermission' {revisionId} -> revisionId) (\s@PutPermission' {} a -> s {revisionId = a} :: PutPermission)++-- | Specifies an action group that contains permissions to add to a+-- profiling group resource. One action group is supported,+-- @agentPermissions@, which grants permission to perform actions required+-- by the profiling agent, @ConfigureAgent@ and @PostAgentProfile@+-- permissions.+putPermission_actionGroup :: Lens.Lens' PutPermission ActionGroup+putPermission_actionGroup = Lens.lens (\PutPermission' {actionGroup} -> actionGroup) (\s@PutPermission' {} a -> s {actionGroup = a} :: PutPermission)++-- | A list ARNs for the roles and users you want to grant access to the+-- profiling group. Wildcards are not are supported in the ARNs.+putPermission_principals :: Lens.Lens' PutPermission (Prelude.NonEmpty Prelude.Text)+putPermission_principals = Lens.lens (\PutPermission' {principals} -> principals) (\s@PutPermission' {} a -> s {principals = a} :: PutPermission) Prelude.. Lens.coerced++-- | The name of the profiling group to grant access to.+putPermission_profilingGroupName :: Lens.Lens' PutPermission Prelude.Text+putPermission_profilingGroupName = Lens.lens (\PutPermission' {profilingGroupName} -> profilingGroupName) (\s@PutPermission' {} a -> s {profilingGroupName = a} :: PutPermission)++instance Core.AWSRequest PutPermission where+ type+ AWSResponse PutPermission =+ PutPermissionResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ PutPermissionResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "policy")+ Prelude.<*> (x Data..:> "revisionId")+ )++instance Prelude.Hashable PutPermission where+ hashWithSalt _salt PutPermission' {..} =+ _salt+ `Prelude.hashWithSalt` revisionId+ `Prelude.hashWithSalt` actionGroup+ `Prelude.hashWithSalt` principals+ `Prelude.hashWithSalt` profilingGroupName++instance Prelude.NFData PutPermission where+ rnf PutPermission' {..} =+ Prelude.rnf revisionId+ `Prelude.seq` Prelude.rnf actionGroup+ `Prelude.seq` Prelude.rnf principals+ `Prelude.seq` Prelude.rnf profilingGroupName++instance Data.ToHeaders PutPermission where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON PutPermission where+ toJSON PutPermission' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("revisionId" Data..=) Prelude.<$> revisionId,+ Prelude.Just ("principals" Data..= principals)+ ]+ )++instance Data.ToPath PutPermission where+ toPath PutPermission' {..} =+ Prelude.mconcat+ [ "/profilingGroups/",+ Data.toBS profilingGroupName,+ "/policy/",+ Data.toBS actionGroup+ ]++instance Data.ToQuery PutPermission where+ toQuery = Prelude.const Prelude.mempty++-- | The structure representing the @putPermissionResponse@.+--+-- /See:/ 'newPutPermissionResponse' smart constructor.+data PutPermissionResponse = PutPermissionResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The JSON-formatted resource-based policy on the profiling group that+ -- includes the added permissions.+ policy :: Prelude.Text,+ -- | A universally unique identifier (UUID) for the revision of the+ -- resource-based policy that includes the added permissions. The+ -- JSON-formatted policy is in the @policy@ element of the response.+ revisionId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutPermissionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putPermissionResponse_httpStatus' - The response's http status code.+--+-- 'policy', 'putPermissionResponse_policy' - The JSON-formatted resource-based policy on the profiling group that+-- includes the added permissions.+--+-- 'revisionId', 'putPermissionResponse_revisionId' - A universally unique identifier (UUID) for the revision of the+-- resource-based policy that includes the added permissions. The+-- JSON-formatted policy is in the @policy@ element of the response.+newPutPermissionResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'policy'+ Prelude.Text ->+ -- | 'revisionId'+ Prelude.Text ->+ PutPermissionResponse+newPutPermissionResponse+ pHttpStatus_+ pPolicy_+ pRevisionId_ =+ PutPermissionResponse'+ { httpStatus = pHttpStatus_,+ policy = pPolicy_,+ revisionId = pRevisionId_+ }++-- | The response's http status code.+putPermissionResponse_httpStatus :: Lens.Lens' PutPermissionResponse Prelude.Int+putPermissionResponse_httpStatus = Lens.lens (\PutPermissionResponse' {httpStatus} -> httpStatus) (\s@PutPermissionResponse' {} a -> s {httpStatus = a} :: PutPermissionResponse)++-- | The JSON-formatted resource-based policy on the profiling group that+-- includes the added permissions.+putPermissionResponse_policy :: Lens.Lens' PutPermissionResponse Prelude.Text+putPermissionResponse_policy = Lens.lens (\PutPermissionResponse' {policy} -> policy) (\s@PutPermissionResponse' {} a -> s {policy = a} :: PutPermissionResponse)++-- | A universally unique identifier (UUID) for the revision of the+-- resource-based policy that includes the added permissions. The+-- JSON-formatted policy is in the @policy@ element of the response.+putPermissionResponse_revisionId :: Lens.Lens' PutPermissionResponse Prelude.Text+putPermissionResponse_revisionId = Lens.lens (\PutPermissionResponse' {revisionId} -> revisionId) (\s@PutPermissionResponse' {} a -> s {revisionId = a} :: PutPermissionResponse)++instance Prelude.NFData PutPermissionResponse where+ rnf PutPermissionResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf policy+ `Prelude.seq` Prelude.rnf revisionId
+ gen/Amazonka/CodeGuruProfiler/RemoveNotificationChannel.hs view
@@ -0,0 +1,193 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CodeGuruProfiler.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)+--+-- Remove one anomaly notifications channel for a profiling group.+module Amazonka.CodeGuruProfiler.RemoveNotificationChannel+ ( -- * Creating a Request+ RemoveNotificationChannel (..),+ newRemoveNotificationChannel,++ -- * Request Lenses+ removeNotificationChannel_channelId,+ removeNotificationChannel_profilingGroupName,++ -- * Destructuring the Response+ RemoveNotificationChannelResponse (..),+ newRemoveNotificationChannelResponse,++ -- * Response Lenses+ removeNotificationChannelResponse_notificationConfiguration,+ removeNotificationChannelResponse_httpStatus,+ )+where++import Amazonka.CodeGuruProfiler.Types+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The structure representing the RemoveNotificationChannelRequest.+--+-- /See:/ 'newRemoveNotificationChannel' smart constructor.+data RemoveNotificationChannel = RemoveNotificationChannel'+ { -- | The id of the channel that we want to stop receiving notifications.+ channelId :: Prelude.Text,+ -- | The name of the profiling group we want to change notification+ -- configuration for.+ profilingGroupName :: 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:+--+-- 'channelId', 'removeNotificationChannel_channelId' - The id of the channel that we want to stop receiving notifications.+--+-- 'profilingGroupName', 'removeNotificationChannel_profilingGroupName' - The name of the profiling group we want to change notification+-- configuration for.+newRemoveNotificationChannel ::+ -- | 'channelId'+ Prelude.Text ->+ -- | 'profilingGroupName'+ Prelude.Text ->+ RemoveNotificationChannel+newRemoveNotificationChannel+ pChannelId_+ pProfilingGroupName_ =+ RemoveNotificationChannel'+ { channelId = pChannelId_,+ profilingGroupName = pProfilingGroupName_+ }++-- | The id of the channel that we want to stop receiving notifications.+removeNotificationChannel_channelId :: Lens.Lens' RemoveNotificationChannel Prelude.Text+removeNotificationChannel_channelId = Lens.lens (\RemoveNotificationChannel' {channelId} -> channelId) (\s@RemoveNotificationChannel' {} a -> s {channelId = a} :: RemoveNotificationChannel)++-- | The name of the profiling group we want to change notification+-- configuration for.+removeNotificationChannel_profilingGroupName :: Lens.Lens' RemoveNotificationChannel Prelude.Text+removeNotificationChannel_profilingGroupName = Lens.lens (\RemoveNotificationChannel' {profilingGroupName} -> profilingGroupName) (\s@RemoveNotificationChannel' {} a -> s {profilingGroupName = a} :: RemoveNotificationChannel)++instance Core.AWSRequest RemoveNotificationChannel where+ type+ AWSResponse RemoveNotificationChannel =+ RemoveNotificationChannelResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ RemoveNotificationChannelResponse'+ Prelude.<$> (x Data..?> "notificationConfiguration")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable RemoveNotificationChannel where+ hashWithSalt _salt RemoveNotificationChannel' {..} =+ _salt+ `Prelude.hashWithSalt` channelId+ `Prelude.hashWithSalt` profilingGroupName++instance Prelude.NFData RemoveNotificationChannel where+ rnf RemoveNotificationChannel' {..} =+ Prelude.rnf channelId+ `Prelude.seq` Prelude.rnf profilingGroupName++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+ [ "/profilingGroups/",+ Data.toBS profilingGroupName,+ "/notificationConfiguration/",+ Data.toBS channelId+ ]++instance Data.ToQuery RemoveNotificationChannel where+ toQuery = Prelude.const Prelude.mempty++-- | The structure representing the RemoveNotificationChannelResponse.+--+-- /See:/ 'newRemoveNotificationChannelResponse' smart constructor.+data RemoveNotificationChannelResponse = RemoveNotificationChannelResponse'+ { -- | The new notification configuration for this profiling group.+ notificationConfiguration :: Prelude.Maybe NotificationConfiguration,+ -- | 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:+--+-- 'notificationConfiguration', 'removeNotificationChannelResponse_notificationConfiguration' - The new notification configuration for this profiling group.+--+-- 'httpStatus', 'removeNotificationChannelResponse_httpStatus' - The response's http status code.+newRemoveNotificationChannelResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ RemoveNotificationChannelResponse+newRemoveNotificationChannelResponse pHttpStatus_ =+ RemoveNotificationChannelResponse'+ { notificationConfiguration =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The new notification configuration for this profiling group.+removeNotificationChannelResponse_notificationConfiguration :: Lens.Lens' RemoveNotificationChannelResponse (Prelude.Maybe NotificationConfiguration)+removeNotificationChannelResponse_notificationConfiguration = Lens.lens (\RemoveNotificationChannelResponse' {notificationConfiguration} -> notificationConfiguration) (\s@RemoveNotificationChannelResponse' {} a -> s {notificationConfiguration = a} :: RemoveNotificationChannelResponse)++-- | 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 notificationConfiguration+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CodeGuruProfiler/RemovePermission.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.CodeGuruProfiler.RemovePermission+-- 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 permissions from a profiling group\'s resource-based policy that+-- are provided using an action group. The one supported action group that+-- can be removed is @agentPermission@ which grants @ConfigureAgent@ and+-- @PostAgent@ permissions. For more information, see+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-ug/resource-based-policies.html Resource-based policies in CodeGuru Profiler>+-- in the /Amazon CodeGuru Profiler User Guide/,+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html ConfigureAgent>+-- , and+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_PostAgentProfile.html PostAgentProfile>+-- .+module Amazonka.CodeGuruProfiler.RemovePermission+ ( -- * Creating a Request+ RemovePermission (..),+ newRemovePermission,++ -- * Request Lenses+ removePermission_actionGroup,+ removePermission_profilingGroupName,+ removePermission_revisionId,++ -- * Destructuring the Response+ RemovePermissionResponse (..),+ newRemovePermissionResponse,++ -- * Response Lenses+ removePermissionResponse_httpStatus,+ removePermissionResponse_policy,+ removePermissionResponse_revisionId,+ )+where++import Amazonka.CodeGuruProfiler.Types+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | > The structure representing the <code>removePermissionRequest</code>.</p>+--+-- /See:/ 'newRemovePermission' smart constructor.+data RemovePermission = RemovePermission'+ { -- | Specifies an action group that contains the permissions to remove from a+ -- profiling group\'s resource-based policy. One action group is supported,+ -- @agentPermissions@, which grants @ConfigureAgent@ and @PostAgentProfile@+ -- permissions.+ actionGroup :: ActionGroup,+ -- | The name of the profiling group.+ profilingGroupName :: Prelude.Text,+ -- | A universally unique identifier (UUID) for the revision of the+ -- resource-based policy from which you want to remove permissions.+ revisionId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemovePermission' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'actionGroup', 'removePermission_actionGroup' - Specifies an action group that contains the permissions to remove from a+-- profiling group\'s resource-based policy. One action group is supported,+-- @agentPermissions@, which grants @ConfigureAgent@ and @PostAgentProfile@+-- permissions.+--+-- 'profilingGroupName', 'removePermission_profilingGroupName' - The name of the profiling group.+--+-- 'revisionId', 'removePermission_revisionId' - A universally unique identifier (UUID) for the revision of the+-- resource-based policy from which you want to remove permissions.+newRemovePermission ::+ -- | 'actionGroup'+ ActionGroup ->+ -- | 'profilingGroupName'+ Prelude.Text ->+ -- | 'revisionId'+ Prelude.Text ->+ RemovePermission+newRemovePermission+ pActionGroup_+ pProfilingGroupName_+ pRevisionId_ =+ RemovePermission'+ { actionGroup = pActionGroup_,+ profilingGroupName = pProfilingGroupName_,+ revisionId = pRevisionId_+ }++-- | Specifies an action group that contains the permissions to remove from a+-- profiling group\'s resource-based policy. One action group is supported,+-- @agentPermissions@, which grants @ConfigureAgent@ and @PostAgentProfile@+-- permissions.+removePermission_actionGroup :: Lens.Lens' RemovePermission ActionGroup+removePermission_actionGroup = Lens.lens (\RemovePermission' {actionGroup} -> actionGroup) (\s@RemovePermission' {} a -> s {actionGroup = a} :: RemovePermission)++-- | The name of the profiling group.+removePermission_profilingGroupName :: Lens.Lens' RemovePermission Prelude.Text+removePermission_profilingGroupName = Lens.lens (\RemovePermission' {profilingGroupName} -> profilingGroupName) (\s@RemovePermission' {} a -> s {profilingGroupName = a} :: RemovePermission)++-- | A universally unique identifier (UUID) for the revision of the+-- resource-based policy from which you want to remove permissions.+removePermission_revisionId :: Lens.Lens' RemovePermission Prelude.Text+removePermission_revisionId = Lens.lens (\RemovePermission' {revisionId} -> revisionId) (\s@RemovePermission' {} a -> s {revisionId = a} :: RemovePermission)++instance Core.AWSRequest RemovePermission where+ type+ AWSResponse RemovePermission =+ RemovePermissionResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ RemovePermissionResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "policy")+ Prelude.<*> (x Data..:> "revisionId")+ )++instance Prelude.Hashable RemovePermission where+ hashWithSalt _salt RemovePermission' {..} =+ _salt+ `Prelude.hashWithSalt` actionGroup+ `Prelude.hashWithSalt` profilingGroupName+ `Prelude.hashWithSalt` revisionId++instance Prelude.NFData RemovePermission where+ rnf RemovePermission' {..} =+ Prelude.rnf actionGroup+ `Prelude.seq` Prelude.rnf profilingGroupName+ `Prelude.seq` Prelude.rnf revisionId++instance Data.ToHeaders RemovePermission where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath RemovePermission where+ toPath RemovePermission' {..} =+ Prelude.mconcat+ [ "/profilingGroups/",+ Data.toBS profilingGroupName,+ "/policy/",+ Data.toBS actionGroup+ ]++instance Data.ToQuery RemovePermission where+ toQuery RemovePermission' {..} =+ Prelude.mconcat ["revisionId" Data.=: revisionId]++-- | The structure representing the @removePermissionResponse@.+--+-- /See:/ 'newRemovePermissionResponse' smart constructor.+data RemovePermissionResponse = RemovePermissionResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The JSON-formatted resource-based policy on the profiling group after+ -- the specified permissions were removed.+ policy :: Prelude.Text,+ -- | A universally unique identifier (UUID) for the revision of the+ -- resource-based policy after the specified permissions were removed. The+ -- updated JSON-formatted policy is in the @policy@ element of the+ -- response.+ revisionId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemovePermissionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'removePermissionResponse_httpStatus' - The response's http status code.+--+-- 'policy', 'removePermissionResponse_policy' - The JSON-formatted resource-based policy on the profiling group after+-- the specified permissions were removed.+--+-- 'revisionId', 'removePermissionResponse_revisionId' - A universally unique identifier (UUID) for the revision of the+-- resource-based policy after the specified permissions were removed. The+-- updated JSON-formatted policy is in the @policy@ element of the+-- response.+newRemovePermissionResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'policy'+ Prelude.Text ->+ -- | 'revisionId'+ Prelude.Text ->+ RemovePermissionResponse+newRemovePermissionResponse+ pHttpStatus_+ pPolicy_+ pRevisionId_ =+ RemovePermissionResponse'+ { httpStatus =+ pHttpStatus_,+ policy = pPolicy_,+ revisionId = pRevisionId_+ }++-- | The response's http status code.+removePermissionResponse_httpStatus :: Lens.Lens' RemovePermissionResponse Prelude.Int+removePermissionResponse_httpStatus = Lens.lens (\RemovePermissionResponse' {httpStatus} -> httpStatus) (\s@RemovePermissionResponse' {} a -> s {httpStatus = a} :: RemovePermissionResponse)++-- | The JSON-formatted resource-based policy on the profiling group after+-- the specified permissions were removed.+removePermissionResponse_policy :: Lens.Lens' RemovePermissionResponse Prelude.Text+removePermissionResponse_policy = Lens.lens (\RemovePermissionResponse' {policy} -> policy) (\s@RemovePermissionResponse' {} a -> s {policy = a} :: RemovePermissionResponse)++-- | A universally unique identifier (UUID) for the revision of the+-- resource-based policy after the specified permissions were removed. The+-- updated JSON-formatted policy is in the @policy@ element of the+-- response.+removePermissionResponse_revisionId :: Lens.Lens' RemovePermissionResponse Prelude.Text+removePermissionResponse_revisionId = Lens.lens (\RemovePermissionResponse' {revisionId} -> revisionId) (\s@RemovePermissionResponse' {} a -> s {revisionId = a} :: RemovePermissionResponse)++instance Prelude.NFData RemovePermissionResponse where+ rnf RemovePermissionResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf policy+ `Prelude.seq` Prelude.rnf revisionId
+ gen/Amazonka/CodeGuruProfiler/SubmitFeedback.hs view
@@ -0,0 +1,219 @@+{-# 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.CodeGuruProfiler.SubmitFeedback+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Sends feedback to CodeGuru Profiler about whether the anomaly detected+-- by the analysis is useful or not.+module Amazonka.CodeGuruProfiler.SubmitFeedback+ ( -- * Creating a Request+ SubmitFeedback (..),+ newSubmitFeedback,++ -- * Request Lenses+ submitFeedback_comment,+ submitFeedback_anomalyInstanceId,+ submitFeedback_profilingGroupName,+ submitFeedback_type,++ -- * Destructuring the Response+ SubmitFeedbackResponse (..),+ newSubmitFeedbackResponse,++ -- * Response Lenses+ submitFeedbackResponse_httpStatus,+ )+where++import Amazonka.CodeGuruProfiler.Types+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The structure representing the SubmitFeedbackRequest.+--+-- /See:/ 'newSubmitFeedback' smart constructor.+data SubmitFeedback = SubmitFeedback'+ { -- | Optional feedback about this anomaly.+ comment :: Prelude.Maybe Prelude.Text,+ -- | The universally unique identifier (UUID) of the+ -- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AnomalyInstance.html AnomalyInstance>+ -- object that is included in the analysis data.+ anomalyInstanceId :: Prelude.Text,+ -- | The name of the profiling group that is associated with the analysis+ -- data.+ profilingGroupName :: Prelude.Text,+ -- | The feedback tpye. Thee are two valid values, @Positive@ and @Negative@.+ type' :: FeedbackType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SubmitFeedback' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'comment', 'submitFeedback_comment' - Optional feedback about this anomaly.+--+-- 'anomalyInstanceId', 'submitFeedback_anomalyInstanceId' - The universally unique identifier (UUID) of the+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AnomalyInstance.html AnomalyInstance>+-- object that is included in the analysis data.+--+-- 'profilingGroupName', 'submitFeedback_profilingGroupName' - The name of the profiling group that is associated with the analysis+-- data.+--+-- 'type'', 'submitFeedback_type' - The feedback tpye. Thee are two valid values, @Positive@ and @Negative@.+newSubmitFeedback ::+ -- | 'anomalyInstanceId'+ Prelude.Text ->+ -- | 'profilingGroupName'+ Prelude.Text ->+ -- | 'type''+ FeedbackType ->+ SubmitFeedback+newSubmitFeedback+ pAnomalyInstanceId_+ pProfilingGroupName_+ pType_ =+ SubmitFeedback'+ { comment = Prelude.Nothing,+ anomalyInstanceId = pAnomalyInstanceId_,+ profilingGroupName = pProfilingGroupName_,+ type' = pType_+ }++-- | Optional feedback about this anomaly.+submitFeedback_comment :: Lens.Lens' SubmitFeedback (Prelude.Maybe Prelude.Text)+submitFeedback_comment = Lens.lens (\SubmitFeedback' {comment} -> comment) (\s@SubmitFeedback' {} a -> s {comment = a} :: SubmitFeedback)++-- | The universally unique identifier (UUID) of the+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AnomalyInstance.html AnomalyInstance>+-- object that is included in the analysis data.+submitFeedback_anomalyInstanceId :: Lens.Lens' SubmitFeedback Prelude.Text+submitFeedback_anomalyInstanceId = Lens.lens (\SubmitFeedback' {anomalyInstanceId} -> anomalyInstanceId) (\s@SubmitFeedback' {} a -> s {anomalyInstanceId = a} :: SubmitFeedback)++-- | The name of the profiling group that is associated with the analysis+-- data.+submitFeedback_profilingGroupName :: Lens.Lens' SubmitFeedback Prelude.Text+submitFeedback_profilingGroupName = Lens.lens (\SubmitFeedback' {profilingGroupName} -> profilingGroupName) (\s@SubmitFeedback' {} a -> s {profilingGroupName = a} :: SubmitFeedback)++-- | The feedback tpye. Thee are two valid values, @Positive@ and @Negative@.+submitFeedback_type :: Lens.Lens' SubmitFeedback FeedbackType+submitFeedback_type = Lens.lens (\SubmitFeedback' {type'} -> type') (\s@SubmitFeedback' {} a -> s {type' = a} :: SubmitFeedback)++instance Core.AWSRequest SubmitFeedback where+ type+ AWSResponse SubmitFeedback =+ SubmitFeedbackResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ SubmitFeedbackResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable SubmitFeedback where+ hashWithSalt _salt SubmitFeedback' {..} =+ _salt+ `Prelude.hashWithSalt` comment+ `Prelude.hashWithSalt` anomalyInstanceId+ `Prelude.hashWithSalt` profilingGroupName+ `Prelude.hashWithSalt` type'++instance Prelude.NFData SubmitFeedback where+ rnf SubmitFeedback' {..} =+ Prelude.rnf comment+ `Prelude.seq` Prelude.rnf anomalyInstanceId+ `Prelude.seq` Prelude.rnf profilingGroupName+ `Prelude.seq` Prelude.rnf type'++instance Data.ToHeaders SubmitFeedback where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON SubmitFeedback where+ toJSON SubmitFeedback' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("comment" Data..=) Prelude.<$> comment,+ Prelude.Just ("type" Data..= type')+ ]+ )++instance Data.ToPath SubmitFeedback where+ toPath SubmitFeedback' {..} =+ Prelude.mconcat+ [ "/internal/profilingGroups/",+ Data.toBS profilingGroupName,+ "/anomalies/",+ Data.toBS anomalyInstanceId,+ "/feedback"+ ]++instance Data.ToQuery SubmitFeedback where+ toQuery = Prelude.const Prelude.mempty++-- | The structure representing the SubmitFeedbackResponse.+--+-- /See:/ 'newSubmitFeedbackResponse' smart constructor.+data SubmitFeedbackResponse = SubmitFeedbackResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SubmitFeedbackResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'submitFeedbackResponse_httpStatus' - The response's http status code.+newSubmitFeedbackResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ SubmitFeedbackResponse+newSubmitFeedbackResponse pHttpStatus_ =+ SubmitFeedbackResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+submitFeedbackResponse_httpStatus :: Lens.Lens' SubmitFeedbackResponse Prelude.Int+submitFeedbackResponse_httpStatus = Lens.lens (\SubmitFeedbackResponse' {httpStatus} -> httpStatus) (\s@SubmitFeedbackResponse' {} a -> s {httpStatus = a} :: SubmitFeedbackResponse)++instance Prelude.NFData SubmitFeedbackResponse where+ rnf SubmitFeedbackResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/CodeGuruProfiler/TagResource.hs view
@@ -0,0 +1,166 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CodeGuruProfiler.TagResource+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Use to assign one or more tags to a resource.+module Amazonka.CodeGuruProfiler.TagResource+ ( -- * Creating a Request+ TagResource (..),+ newTagResource,++ -- * Request Lenses+ tagResource_resourceArn,+ tagResource_tags,++ -- * Destructuring the Response+ TagResourceResponse (..),+ newTagResourceResponse,++ -- * Response Lenses+ tagResourceResponse_httpStatus,+ )+where++import Amazonka.CodeGuruProfiler.Types+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+ { -- | The Amazon Resource Name (ARN) of the resource that the tags are added+ -- to.+ resourceArn :: Prelude.Text,+ -- | The list of tags that are added to the specified resource.+ tags :: Prelude.HashMap Prelude.Text Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'tagResource_resourceArn' - The Amazon Resource Name (ARN) of the resource that the tags are added+-- to.+--+-- 'tags', 'tagResource_tags' - The list of tags that are added to the specified resource.+newTagResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ TagResource+newTagResource pResourceArn_ =+ TagResource'+ { resourceArn = pResourceArn_,+ tags = Prelude.mempty+ }++-- | The Amazon Resource Name (ARN) of the resource that the tags are added+-- to.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | The list of tags that are added to the specified resource.+tagResource_tags :: Lens.Lens' TagResource (Prelude.HashMap Prelude.Text Prelude.Text)+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.coerced++instance Core.AWSRequest TagResource where+ type AWSResponse TagResource = TagResourceResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ TagResourceResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable TagResource where+ hashWithSalt _salt TagResource' {..} =+ _salt+ `Prelude.hashWithSalt` resourceArn+ `Prelude.hashWithSalt` tags++instance Prelude.NFData TagResource where+ rnf TagResource' {..} =+ Prelude.rnf resourceArn+ `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders TagResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON TagResource where+ toJSON TagResource' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("tags" Data..= tags)]+ )++instance Data.ToPath TagResource where+ toPath TagResource' {..} =+ Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery TagResource where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newTagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'tagResourceResponse_httpStatus' - The response's http status code.+newTagResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ TagResourceResponse+newTagResourceResponse pHttpStatus_ =+ TagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+tagResourceResponse_httpStatus :: Lens.Lens' TagResourceResponse Prelude.Int+tagResourceResponse_httpStatus = Lens.lens (\TagResourceResponse' {httpStatus} -> httpStatus) (\s@TagResourceResponse' {} a -> s {httpStatus = a} :: TagResourceResponse)++instance Prelude.NFData TagResourceResponse where+ rnf TagResourceResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/CodeGuruProfiler/Types.hs view
@@ -0,0 +1,348 @@+{-# 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.CodeGuruProfiler.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.CodeGuruProfiler.Types+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ _ConflictException,+ _InternalServerException,+ _ResourceNotFoundException,+ _ServiceQuotaExceededException,+ _ThrottlingException,+ _ValidationException,++ -- * ActionGroup+ ActionGroup (..),++ -- * AgentParameterField+ AgentParameterField (..),++ -- * AggregationPeriod+ AggregationPeriod (..),++ -- * ComputePlatform+ ComputePlatform (..),++ -- * EventPublisher+ EventPublisher (..),++ -- * FeedbackType+ FeedbackType (..),++ -- * MetadataField+ MetadataField (..),++ -- * MetricType+ MetricType (..),++ -- * OrderBy+ OrderBy (..),++ -- * AgentConfiguration+ AgentConfiguration (..),+ newAgentConfiguration,+ agentConfiguration_agentParameters,+ agentConfiguration_periodInSeconds,+ agentConfiguration_shouldProfile,++ -- * AgentOrchestrationConfig+ AgentOrchestrationConfig (..),+ newAgentOrchestrationConfig,+ agentOrchestrationConfig_profilingEnabled,++ -- * AggregatedProfileTime+ AggregatedProfileTime (..),+ newAggregatedProfileTime,+ aggregatedProfileTime_period,+ aggregatedProfileTime_start,++ -- * Anomaly+ Anomaly (..),+ newAnomaly,+ anomaly_instances,+ anomaly_metric,+ anomaly_reason,++ -- * AnomalyInstance+ AnomalyInstance (..),+ newAnomalyInstance,+ anomalyInstance_endTime,+ anomalyInstance_userFeedback,+ anomalyInstance_id,+ anomalyInstance_startTime,++ -- * Channel+ Channel (..),+ newChannel,+ channel_id,+ channel_eventPublishers,+ channel_uri,++ -- * FindingsReportSummary+ FindingsReportSummary (..),+ newFindingsReportSummary,+ findingsReportSummary_id,+ findingsReportSummary_profileEndTime,+ findingsReportSummary_profileStartTime,+ findingsReportSummary_profilingGroupName,+ findingsReportSummary_totalNumberOfFindings,++ -- * FrameMetric+ FrameMetric (..),+ newFrameMetric,+ frameMetric_frameName,+ frameMetric_threadStates,+ frameMetric_type,++ -- * FrameMetricDatum+ FrameMetricDatum (..),+ newFrameMetricDatum,+ frameMetricDatum_frameMetric,+ frameMetricDatum_values,++ -- * Match+ Match (..),+ newMatch,+ match_frameAddress,+ match_targetFramesIndex,+ match_thresholdBreachValue,++ -- * Metric+ Metric (..),+ newMetric,+ metric_frameName,+ metric_threadStates,+ metric_type,++ -- * NotificationConfiguration+ NotificationConfiguration (..),+ newNotificationConfiguration,+ notificationConfiguration_channels,++ -- * Pattern+ Pattern (..),+ newPattern,+ pattern_countersToAggregate,+ pattern_description,+ pattern_id,+ pattern_name,+ pattern_resolutionSteps,+ pattern_targetFrames,+ pattern_thresholdPercent,++ -- * ProfileTime+ ProfileTime (..),+ newProfileTime,+ profileTime_start,++ -- * ProfilingGroupDescription+ ProfilingGroupDescription (..),+ newProfilingGroupDescription,+ profilingGroupDescription_agentOrchestrationConfig,+ profilingGroupDescription_arn,+ profilingGroupDescription_computePlatform,+ profilingGroupDescription_createdAt,+ profilingGroupDescription_name,+ profilingGroupDescription_profilingStatus,+ profilingGroupDescription_tags,+ profilingGroupDescription_updatedAt,++ -- * ProfilingStatus+ ProfilingStatus (..),+ newProfilingStatus,+ profilingStatus_latestAgentOrchestratedAt,+ profilingStatus_latestAgentProfileReportedAt,+ profilingStatus_latestAggregatedProfile,++ -- * Recommendation+ Recommendation (..),+ newRecommendation,+ recommendation_allMatchesCount,+ recommendation_allMatchesSum,+ recommendation_endTime,+ recommendation_pattern,+ recommendation_startTime,+ recommendation_topMatches,++ -- * TimestampStructure+ TimestampStructure (..),+ newTimestampStructure,+ timestampStructure_value,++ -- * UserFeedback+ UserFeedback (..),+ newUserFeedback,+ userFeedback_type,+ )+where++import Amazonka.CodeGuruProfiler.Types.ActionGroup+import Amazonka.CodeGuruProfiler.Types.AgentConfiguration+import Amazonka.CodeGuruProfiler.Types.AgentOrchestrationConfig+import Amazonka.CodeGuruProfiler.Types.AgentParameterField+import Amazonka.CodeGuruProfiler.Types.AggregatedProfileTime+import Amazonka.CodeGuruProfiler.Types.AggregationPeriod+import Amazonka.CodeGuruProfiler.Types.Anomaly+import Amazonka.CodeGuruProfiler.Types.AnomalyInstance+import Amazonka.CodeGuruProfiler.Types.Channel+import Amazonka.CodeGuruProfiler.Types.ComputePlatform+import Amazonka.CodeGuruProfiler.Types.EventPublisher+import Amazonka.CodeGuruProfiler.Types.FeedbackType+import Amazonka.CodeGuruProfiler.Types.FindingsReportSummary+import Amazonka.CodeGuruProfiler.Types.FrameMetric+import Amazonka.CodeGuruProfiler.Types.FrameMetricDatum+import Amazonka.CodeGuruProfiler.Types.Match+import Amazonka.CodeGuruProfiler.Types.MetadataField+import Amazonka.CodeGuruProfiler.Types.Metric+import Amazonka.CodeGuruProfiler.Types.MetricType+import Amazonka.CodeGuruProfiler.Types.NotificationConfiguration+import Amazonka.CodeGuruProfiler.Types.OrderBy+import Amazonka.CodeGuruProfiler.Types.Pattern+import Amazonka.CodeGuruProfiler.Types.ProfileTime+import Amazonka.CodeGuruProfiler.Types.ProfilingGroupDescription+import Amazonka.CodeGuruProfiler.Types.ProfilingStatus+import Amazonka.CodeGuruProfiler.Types.Recommendation+import Amazonka.CodeGuruProfiler.Types.TimestampStructure+import Amazonka.CodeGuruProfiler.Types.UserFeedback+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2019-07-18@ of the Amazon CodeGuru Profiler SDK configuration.+defaultService :: Core.Service+defaultService =+ Core.Service+ { Core.abbrev = "CodeGuruProfiler",+ Core.signer = Sign.v4,+ Core.endpointPrefix = "codeguru-profiler",+ Core.signingName = "codeguru-profiler",+ Core.version = "2019-07-18",+ Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+ Core.endpoint = Core.defaultEndpoint defaultService,+ Core.timeout = Prelude.Just 70,+ Core.check = Core.statusSuccess,+ Core.error = Core.parseJSONError "CodeGuruProfiler",+ 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++-- | The requested operation would cause a conflict with the current state of+-- a service resource associated with the request. Resolve the conflict+-- before retrying this request.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+ Core._MatchServiceError+ defaultService+ "ConflictException"+ Prelude.. Core.hasStatus 409++-- | The server encountered an internal error and is unable to complete the+-- request.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+ Core._MatchServiceError+ defaultService+ "InternalServerException"+ Prelude.. Core.hasStatus 500++-- | The resource specified in the request does not exist.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+ Core._MatchServiceError+ defaultService+ "ResourceNotFoundException"+ Prelude.. Core.hasStatus 404++-- | You have exceeded your service quota. To perform the requested action,+-- remove some of the relevant resources, or use+-- <https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html Service Quotas>+-- to request a service quota increase.+_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceQuotaExceededException =+ Core._MatchServiceError+ defaultService+ "ServiceQuotaExceededException"+ Prelude.. Core.hasStatus 402++-- | The request was denied due to request throttling.+_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottlingException =+ Core._MatchServiceError+ defaultService+ "ThrottlingException"+ Prelude.. Core.hasStatus 429++-- | The parameter is not valid.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+ Core._MatchServiceError+ defaultService+ "ValidationException"+ Prelude.. Core.hasStatus 400
+ gen/Amazonka/CodeGuruProfiler/Types/ActionGroup.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CodeGuruProfiler.Types.ActionGroup+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruProfiler.Types.ActionGroup+ ( ActionGroup+ ( ..,+ ActionGroup_AgentPermissions+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ActionGroup = ActionGroup'+ { fromActionGroup ::+ 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 ActionGroup_AgentPermissions :: ActionGroup+pattern ActionGroup_AgentPermissions = ActionGroup' "agentPermissions"++{-# COMPLETE+ ActionGroup_AgentPermissions,+ ActionGroup'+ #-}
+ gen/Amazonka/CodeGuruProfiler/Types/AgentConfiguration.hs view
@@ -0,0 +1,182 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CodeGuruProfiler.Types.AgentConfiguration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruProfiler.Types.AgentConfiguration where++import Amazonka.CodeGuruProfiler.Types.AgentParameterField+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 response of+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html ConfigureAgent>+-- that specifies if an agent profiles or not and for how long to return+-- profiling data.+--+-- /See:/ 'newAgentConfiguration' smart constructor.+data AgentConfiguration = AgentConfiguration'+ { -- | Parameters used by the profiler. The valid parameters are:+ --+ -- - @MaxStackDepth@ - The maximum depth of the stacks in the code that+ -- is represented in the profile. For example, if CodeGuru Profiler+ -- finds a method @A@, which calls method @B@, which calls method @C@,+ -- which calls method @D@, then the depth is 4. If the @maxDepth@ is+ -- set to 2, then the profiler evaluates @A@ and @B@.+ --+ -- - @MemoryUsageLimitPercent@ - The percentage of memory that is used by+ -- the profiler.+ --+ -- - @MinimumTimeForReportingInMilliseconds@ - The minimum time in+ -- milliseconds between sending reports.+ --+ -- - @ReportingIntervalInMilliseconds@ - The reporting interval in+ -- milliseconds used to report profiles.+ --+ -- - @SamplingIntervalInMilliseconds@ - The sampling interval in+ -- milliseconds that is used to profile samples.+ agentParameters :: Prelude.Maybe (Prelude.HashMap AgentParameterField Prelude.Text),+ -- | How long a profiling agent should send profiling data using+ -- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html ConfigureAgent>+ -- . For example, if this is set to 300, the profiling agent calls+ -- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html ConfigureAgent>+ -- every 5 minutes to submit the profiled data collected during that+ -- period.+ periodInSeconds :: Prelude.Int,+ -- | A @Boolean@ that specifies whether the profiling agent collects+ -- profiling data or not. Set to @true@ to enable profiling.+ shouldProfile :: Prelude.Bool+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AgentConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'agentParameters', 'agentConfiguration_agentParameters' - Parameters used by the profiler. The valid parameters are:+--+-- - @MaxStackDepth@ - The maximum depth of the stacks in the code that+-- is represented in the profile. For example, if CodeGuru Profiler+-- finds a method @A@, which calls method @B@, which calls method @C@,+-- which calls method @D@, then the depth is 4. If the @maxDepth@ is+-- set to 2, then the profiler evaluates @A@ and @B@.+--+-- - @MemoryUsageLimitPercent@ - The percentage of memory that is used by+-- the profiler.+--+-- - @MinimumTimeForReportingInMilliseconds@ - The minimum time in+-- milliseconds between sending reports.+--+-- - @ReportingIntervalInMilliseconds@ - The reporting interval in+-- milliseconds used to report profiles.+--+-- - @SamplingIntervalInMilliseconds@ - The sampling interval in+-- milliseconds that is used to profile samples.+--+-- 'periodInSeconds', 'agentConfiguration_periodInSeconds' - How long a profiling agent should send profiling data using+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html ConfigureAgent>+-- . For example, if this is set to 300, the profiling agent calls+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html ConfigureAgent>+-- every 5 minutes to submit the profiled data collected during that+-- period.+--+-- 'shouldProfile', 'agentConfiguration_shouldProfile' - A @Boolean@ that specifies whether the profiling agent collects+-- profiling data or not. Set to @true@ to enable profiling.+newAgentConfiguration ::+ -- | 'periodInSeconds'+ Prelude.Int ->+ -- | 'shouldProfile'+ Prelude.Bool ->+ AgentConfiguration+newAgentConfiguration+ pPeriodInSeconds_+ pShouldProfile_ =+ AgentConfiguration'+ { agentParameters =+ Prelude.Nothing,+ periodInSeconds = pPeriodInSeconds_,+ shouldProfile = pShouldProfile_+ }++-- | Parameters used by the profiler. The valid parameters are:+--+-- - @MaxStackDepth@ - The maximum depth of the stacks in the code that+-- is represented in the profile. For example, if CodeGuru Profiler+-- finds a method @A@, which calls method @B@, which calls method @C@,+-- which calls method @D@, then the depth is 4. If the @maxDepth@ is+-- set to 2, then the profiler evaluates @A@ and @B@.+--+-- - @MemoryUsageLimitPercent@ - The percentage of memory that is used by+-- the profiler.+--+-- - @MinimumTimeForReportingInMilliseconds@ - The minimum time in+-- milliseconds between sending reports.+--+-- - @ReportingIntervalInMilliseconds@ - The reporting interval in+-- milliseconds used to report profiles.+--+-- - @SamplingIntervalInMilliseconds@ - The sampling interval in+-- milliseconds that is used to profile samples.+agentConfiguration_agentParameters :: Lens.Lens' AgentConfiguration (Prelude.Maybe (Prelude.HashMap AgentParameterField Prelude.Text))+agentConfiguration_agentParameters = Lens.lens (\AgentConfiguration' {agentParameters} -> agentParameters) (\s@AgentConfiguration' {} a -> s {agentParameters = a} :: AgentConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | How long a profiling agent should send profiling data using+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html ConfigureAgent>+-- . For example, if this is set to 300, the profiling agent calls+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html ConfigureAgent>+-- every 5 minutes to submit the profiled data collected during that+-- period.+agentConfiguration_periodInSeconds :: Lens.Lens' AgentConfiguration Prelude.Int+agentConfiguration_periodInSeconds = Lens.lens (\AgentConfiguration' {periodInSeconds} -> periodInSeconds) (\s@AgentConfiguration' {} a -> s {periodInSeconds = a} :: AgentConfiguration)++-- | A @Boolean@ that specifies whether the profiling agent collects+-- profiling data or not. Set to @true@ to enable profiling.+agentConfiguration_shouldProfile :: Lens.Lens' AgentConfiguration Prelude.Bool+agentConfiguration_shouldProfile = Lens.lens (\AgentConfiguration' {shouldProfile} -> shouldProfile) (\s@AgentConfiguration' {} a -> s {shouldProfile = a} :: AgentConfiguration)++instance Data.FromJSON AgentConfiguration where+ parseJSON =+ Data.withObject+ "AgentConfiguration"+ ( \x ->+ AgentConfiguration'+ Prelude.<$> ( x+ Data..:? "agentParameters"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..: "periodInSeconds")+ Prelude.<*> (x Data..: "shouldProfile")+ )++instance Prelude.Hashable AgentConfiguration where+ hashWithSalt _salt AgentConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` agentParameters+ `Prelude.hashWithSalt` periodInSeconds+ `Prelude.hashWithSalt` shouldProfile++instance Prelude.NFData AgentConfiguration where+ rnf AgentConfiguration' {..} =+ Prelude.rnf agentParameters+ `Prelude.seq` Prelude.rnf periodInSeconds+ `Prelude.seq` Prelude.rnf shouldProfile
+ gen/Amazonka/CodeGuruProfiler/Types/AgentOrchestrationConfig.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.CodeGuruProfiler.Types.AgentOrchestrationConfig+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruProfiler.Types.AgentOrchestrationConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Specifies whether profiling is enabled or disabled for a profiling+-- group. It is used by+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html ConfigureAgent>+-- to enable or disable profiling for a profiling group.+--+-- /See:/ 'newAgentOrchestrationConfig' smart constructor.+data AgentOrchestrationConfig = AgentOrchestrationConfig'+ { -- | A @Boolean@ that specifies whether the profiling agent collects+ -- profiling data or not. Set to @true@ to enable profiling.+ profilingEnabled :: Prelude.Bool+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AgentOrchestrationConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'profilingEnabled', 'agentOrchestrationConfig_profilingEnabled' - A @Boolean@ that specifies whether the profiling agent collects+-- profiling data or not. Set to @true@ to enable profiling.+newAgentOrchestrationConfig ::+ -- | 'profilingEnabled'+ Prelude.Bool ->+ AgentOrchestrationConfig+newAgentOrchestrationConfig pProfilingEnabled_ =+ AgentOrchestrationConfig'+ { profilingEnabled =+ pProfilingEnabled_+ }++-- | A @Boolean@ that specifies whether the profiling agent collects+-- profiling data or not. Set to @true@ to enable profiling.+agentOrchestrationConfig_profilingEnabled :: Lens.Lens' AgentOrchestrationConfig Prelude.Bool+agentOrchestrationConfig_profilingEnabled = Lens.lens (\AgentOrchestrationConfig' {profilingEnabled} -> profilingEnabled) (\s@AgentOrchestrationConfig' {} a -> s {profilingEnabled = a} :: AgentOrchestrationConfig)++instance Data.FromJSON AgentOrchestrationConfig where+ parseJSON =+ Data.withObject+ "AgentOrchestrationConfig"+ ( \x ->+ AgentOrchestrationConfig'+ Prelude.<$> (x Data..: "profilingEnabled")+ )++instance Prelude.Hashable AgentOrchestrationConfig where+ hashWithSalt _salt AgentOrchestrationConfig' {..} =+ _salt `Prelude.hashWithSalt` profilingEnabled++instance Prelude.NFData AgentOrchestrationConfig where+ rnf AgentOrchestrationConfig' {..} =+ Prelude.rnf profilingEnabled++instance Data.ToJSON AgentOrchestrationConfig where+ toJSON AgentOrchestrationConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("profilingEnabled" Data..= profilingEnabled)+ ]+ )
+ gen/Amazonka/CodeGuruProfiler/Types/AgentParameterField.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.CodeGuruProfiler.Types.AgentParameterField+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruProfiler.Types.AgentParameterField+ ( AgentParameterField+ ( ..,+ AgentParameterField_MaxStackDepth,+ AgentParameterField_MemoryUsageLimitPercent,+ AgentParameterField_MinimumTimeForReportingInMilliseconds,+ AgentParameterField_ReportingIntervalInMilliseconds,+ AgentParameterField_SamplingIntervalInMilliseconds+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AgentParameterField = AgentParameterField'+ { fromAgentParameterField ::+ 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 AgentParameterField_MaxStackDepth :: AgentParameterField+pattern AgentParameterField_MaxStackDepth = AgentParameterField' "MaxStackDepth"++pattern AgentParameterField_MemoryUsageLimitPercent :: AgentParameterField+pattern AgentParameterField_MemoryUsageLimitPercent = AgentParameterField' "MemoryUsageLimitPercent"++pattern AgentParameterField_MinimumTimeForReportingInMilliseconds :: AgentParameterField+pattern AgentParameterField_MinimumTimeForReportingInMilliseconds = AgentParameterField' "MinimumTimeForReportingInMilliseconds"++pattern AgentParameterField_ReportingIntervalInMilliseconds :: AgentParameterField+pattern AgentParameterField_ReportingIntervalInMilliseconds = AgentParameterField' "ReportingIntervalInMilliseconds"++pattern AgentParameterField_SamplingIntervalInMilliseconds :: AgentParameterField+pattern AgentParameterField_SamplingIntervalInMilliseconds = AgentParameterField' "SamplingIntervalInMilliseconds"++{-# COMPLETE+ AgentParameterField_MaxStackDepth,+ AgentParameterField_MemoryUsageLimitPercent,+ AgentParameterField_MinimumTimeForReportingInMilliseconds,+ AgentParameterField_ReportingIntervalInMilliseconds,+ AgentParameterField_SamplingIntervalInMilliseconds,+ AgentParameterField'+ #-}
+ gen/Amazonka/CodeGuruProfiler/Types/AggregatedProfileTime.hs view
@@ -0,0 +1,135 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CodeGuruProfiler.Types.AggregatedProfileTime+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruProfiler.Types.AggregatedProfileTime where++import Amazonka.CodeGuruProfiler.Types.AggregationPeriod+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Specifies the aggregation period and aggregation start time for an+-- aggregated profile. An aggregated profile is used to collect posted+-- agent profiles during an aggregation period. There are three possible+-- aggregation periods (1 day, 1 hour, or 5 minutes).+--+-- /See:/ 'newAggregatedProfileTime' smart constructor.+data AggregatedProfileTime = AggregatedProfileTime'+ { -- | The aggregation period. This indicates the period during which an+ -- aggregation profile collects posted agent profiles for a profiling+ -- group. Use one of three valid durations that are specified using the ISO+ -- 8601 format.+ --+ -- - @P1D@ — 1 day+ --+ -- - @PT1H@ — 1 hour+ --+ -- - @PT5M@ — 5 minutes+ period :: Prelude.Maybe AggregationPeriod,+ -- | The time that aggregation of posted agent profiles for a profiling group+ -- starts. The aggregation profile contains profiles posted by the agent+ -- starting at this time for an aggregation period specified by the+ -- @period@ property of the @AggregatedProfileTime@ object.+ --+ -- Specify @start@ using the ISO 8601 format. For example,+ -- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+ -- 1:15:02 PM UTC.+ start :: Prelude.Maybe Data.ISO8601+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AggregatedProfileTime' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'period', 'aggregatedProfileTime_period' - The aggregation period. This indicates the period during which an+-- aggregation profile collects posted agent profiles for a profiling+-- group. Use one of three valid durations that are specified using the ISO+-- 8601 format.+--+-- - @P1D@ — 1 day+--+-- - @PT1H@ — 1 hour+--+-- - @PT5M@ — 5 minutes+--+-- 'start', 'aggregatedProfileTime_start' - The time that aggregation of posted agent profiles for a profiling group+-- starts. The aggregation profile contains profiles posted by the agent+-- starting at this time for an aggregation period specified by the+-- @period@ property of the @AggregatedProfileTime@ object.+--+-- Specify @start@ using the ISO 8601 format. For example,+-- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+-- 1:15:02 PM UTC.+newAggregatedProfileTime ::+ AggregatedProfileTime+newAggregatedProfileTime =+ AggregatedProfileTime'+ { period = Prelude.Nothing,+ start = Prelude.Nothing+ }++-- | The aggregation period. This indicates the period during which an+-- aggregation profile collects posted agent profiles for a profiling+-- group. Use one of three valid durations that are specified using the ISO+-- 8601 format.+--+-- - @P1D@ — 1 day+--+-- - @PT1H@ — 1 hour+--+-- - @PT5M@ — 5 minutes+aggregatedProfileTime_period :: Lens.Lens' AggregatedProfileTime (Prelude.Maybe AggregationPeriod)+aggregatedProfileTime_period = Lens.lens (\AggregatedProfileTime' {period} -> period) (\s@AggregatedProfileTime' {} a -> s {period = a} :: AggregatedProfileTime)++-- | The time that aggregation of posted agent profiles for a profiling group+-- starts. The aggregation profile contains profiles posted by the agent+-- starting at this time for an aggregation period specified by the+-- @period@ property of the @AggregatedProfileTime@ object.+--+-- Specify @start@ using the ISO 8601 format. For example,+-- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+-- 1:15:02 PM UTC.+aggregatedProfileTime_start :: Lens.Lens' AggregatedProfileTime (Prelude.Maybe Prelude.UTCTime)+aggregatedProfileTime_start = Lens.lens (\AggregatedProfileTime' {start} -> start) (\s@AggregatedProfileTime' {} a -> s {start = a} :: AggregatedProfileTime) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON AggregatedProfileTime where+ parseJSON =+ Data.withObject+ "AggregatedProfileTime"+ ( \x ->+ AggregatedProfileTime'+ Prelude.<$> (x Data..:? "period")+ Prelude.<*> (x Data..:? "start")+ )++instance Prelude.Hashable AggregatedProfileTime where+ hashWithSalt _salt AggregatedProfileTime' {..} =+ _salt+ `Prelude.hashWithSalt` period+ `Prelude.hashWithSalt` start++instance Prelude.NFData AggregatedProfileTime where+ rnf AggregatedProfileTime' {..} =+ Prelude.rnf period `Prelude.seq` Prelude.rnf start
+ gen/Amazonka/CodeGuruProfiler/Types/AggregationPeriod.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.CodeGuruProfiler.Types.AggregationPeriod+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruProfiler.Types.AggregationPeriod+ ( AggregationPeriod+ ( ..,+ AggregationPeriod_P1D,+ AggregationPeriod_PT1H,+ AggregationPeriod_PT5M+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AggregationPeriod = AggregationPeriod'+ { fromAggregationPeriod ::+ 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 AggregationPeriod_P1D :: AggregationPeriod+pattern AggregationPeriod_P1D = AggregationPeriod' "P1D"++pattern AggregationPeriod_PT1H :: AggregationPeriod+pattern AggregationPeriod_PT1H = AggregationPeriod' "PT1H"++pattern AggregationPeriod_PT5M :: AggregationPeriod+pattern AggregationPeriod_PT5M = AggregationPeriod' "PT5M"++{-# COMPLETE+ AggregationPeriod_P1D,+ AggregationPeriod_PT1H,+ AggregationPeriod_PT5M,+ AggregationPeriod'+ #-}
+ gen/Amazonka/CodeGuruProfiler/Types/Anomaly.hs view
@@ -0,0 +1,116 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CodeGuruProfiler.Types.Anomaly+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruProfiler.Types.Anomaly where++import Amazonka.CodeGuruProfiler.Types.AnomalyInstance+import Amazonka.CodeGuruProfiler.Types.Metric+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Details about an anomaly in a specific metric of application profile.+-- The anomaly is detected using analysis of the metric data over a period+-- of time.+--+-- /See:/ 'newAnomaly' smart constructor.+data Anomaly = Anomaly'+ { -- | A list of the instances of the detected anomalies during the requested+ -- period.+ instances :: [AnomalyInstance],+ -- | Details about the metric that the analysis used when it detected the+ -- anomaly. The metric includes the name of the frame that was analyzed+ -- with the type and thread states used to derive the metric value for that+ -- frame.+ metric :: Metric,+ -- | The reason for which metric was flagged as anomalous.+ reason :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Anomaly' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'instances', 'anomaly_instances' - A list of the instances of the detected anomalies during the requested+-- period.+--+-- 'metric', 'anomaly_metric' - Details about the metric that the analysis used when it detected the+-- anomaly. The metric includes the name of the frame that was analyzed+-- with the type and thread states used to derive the metric value for that+-- frame.+--+-- 'reason', 'anomaly_reason' - The reason for which metric was flagged as anomalous.+newAnomaly ::+ -- | 'metric'+ Metric ->+ -- | 'reason'+ Prelude.Text ->+ Anomaly+newAnomaly pMetric_ pReason_ =+ Anomaly'+ { instances = Prelude.mempty,+ metric = pMetric_,+ reason = pReason_+ }++-- | A list of the instances of the detected anomalies during the requested+-- period.+anomaly_instances :: Lens.Lens' Anomaly [AnomalyInstance]+anomaly_instances = Lens.lens (\Anomaly' {instances} -> instances) (\s@Anomaly' {} a -> s {instances = a} :: Anomaly) Prelude.. Lens.coerced++-- | Details about the metric that the analysis used when it detected the+-- anomaly. The metric includes the name of the frame that was analyzed+-- with the type and thread states used to derive the metric value for that+-- frame.+anomaly_metric :: Lens.Lens' Anomaly Metric+anomaly_metric = Lens.lens (\Anomaly' {metric} -> metric) (\s@Anomaly' {} a -> s {metric = a} :: Anomaly)++-- | The reason for which metric was flagged as anomalous.+anomaly_reason :: Lens.Lens' Anomaly Prelude.Text+anomaly_reason = Lens.lens (\Anomaly' {reason} -> reason) (\s@Anomaly' {} a -> s {reason = a} :: Anomaly)++instance Data.FromJSON Anomaly where+ parseJSON =+ Data.withObject+ "Anomaly"+ ( \x ->+ Anomaly'+ Prelude.<$> (x Data..:? "instances" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..: "metric")+ Prelude.<*> (x Data..: "reason")+ )++instance Prelude.Hashable Anomaly where+ hashWithSalt _salt Anomaly' {..} =+ _salt+ `Prelude.hashWithSalt` instances+ `Prelude.hashWithSalt` metric+ `Prelude.hashWithSalt` reason++instance Prelude.NFData Anomaly where+ rnf Anomaly' {..} =+ Prelude.rnf instances+ `Prelude.seq` Prelude.rnf metric+ `Prelude.seq` Prelude.rnf reason
+ gen/Amazonka/CodeGuruProfiler/Types/AnomalyInstance.hs view
@@ -0,0 +1,134 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CodeGuruProfiler.Types.AnomalyInstance+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruProfiler.Types.AnomalyInstance where++import Amazonka.CodeGuruProfiler.Types.UserFeedback+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 specific duration in which the metric is flagged as anomalous.+--+-- /See:/ 'newAnomalyInstance' smart constructor.+data AnomalyInstance = AnomalyInstance'+ { -- | The end time of the period during which the metric is flagged as+ -- anomalous. This is specified using the ISO 8601 format. For example,+ -- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+ -- 1:15:02 PM UTC.+ endTime :: Prelude.Maybe Data.ISO8601,+ -- | Feedback type on a specific instance of anomaly submitted by the user.+ userFeedback :: Prelude.Maybe UserFeedback,+ -- | The universally unique identifier (UUID) of an instance of an anomaly in+ -- a metric.+ id :: Prelude.Text,+ -- | The start time of the period during which the metric is flagged as+ -- anomalous. This is specified using the ISO 8601 format. For example,+ -- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+ -- 1:15:02 PM UTC.+ startTime :: Data.ISO8601+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnomalyInstance' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'anomalyInstance_endTime' - The end time of the period during which the metric is flagged as+-- anomalous. This is specified using the ISO 8601 format. For example,+-- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+-- 1:15:02 PM UTC.+--+-- 'userFeedback', 'anomalyInstance_userFeedback' - Feedback type on a specific instance of anomaly submitted by the user.+--+-- 'id', 'anomalyInstance_id' - The universally unique identifier (UUID) of an instance of an anomaly in+-- a metric.+--+-- 'startTime', 'anomalyInstance_startTime' - The start time of the period during which the metric is flagged as+-- anomalous. This is specified using the ISO 8601 format. For example,+-- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+-- 1:15:02 PM UTC.+newAnomalyInstance ::+ -- | 'id'+ Prelude.Text ->+ -- | 'startTime'+ Prelude.UTCTime ->+ AnomalyInstance+newAnomalyInstance pId_ pStartTime_ =+ AnomalyInstance'+ { endTime = Prelude.Nothing,+ userFeedback = Prelude.Nothing,+ id = pId_,+ startTime = Data._Time Lens.# pStartTime_+ }++-- | The end time of the period during which the metric is flagged as+-- anomalous. This is specified using the ISO 8601 format. For example,+-- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+-- 1:15:02 PM UTC.+anomalyInstance_endTime :: Lens.Lens' AnomalyInstance (Prelude.Maybe Prelude.UTCTime)+anomalyInstance_endTime = Lens.lens (\AnomalyInstance' {endTime} -> endTime) (\s@AnomalyInstance' {} a -> s {endTime = a} :: AnomalyInstance) Prelude.. Lens.mapping Data._Time++-- | Feedback type on a specific instance of anomaly submitted by the user.+anomalyInstance_userFeedback :: Lens.Lens' AnomalyInstance (Prelude.Maybe UserFeedback)+anomalyInstance_userFeedback = Lens.lens (\AnomalyInstance' {userFeedback} -> userFeedback) (\s@AnomalyInstance' {} a -> s {userFeedback = a} :: AnomalyInstance)++-- | The universally unique identifier (UUID) of an instance of an anomaly in+-- a metric.+anomalyInstance_id :: Lens.Lens' AnomalyInstance Prelude.Text+anomalyInstance_id = Lens.lens (\AnomalyInstance' {id} -> id) (\s@AnomalyInstance' {} a -> s {id = a} :: AnomalyInstance)++-- | The start time of the period during which the metric is flagged as+-- anomalous. This is specified using the ISO 8601 format. For example,+-- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+-- 1:15:02 PM UTC.+anomalyInstance_startTime :: Lens.Lens' AnomalyInstance Prelude.UTCTime+anomalyInstance_startTime = Lens.lens (\AnomalyInstance' {startTime} -> startTime) (\s@AnomalyInstance' {} a -> s {startTime = a} :: AnomalyInstance) Prelude.. Data._Time++instance Data.FromJSON AnomalyInstance where+ parseJSON =+ Data.withObject+ "AnomalyInstance"+ ( \x ->+ AnomalyInstance'+ Prelude.<$> (x Data..:? "endTime")+ Prelude.<*> (x Data..:? "userFeedback")+ Prelude.<*> (x Data..: "id")+ Prelude.<*> (x Data..: "startTime")+ )++instance Prelude.Hashable AnomalyInstance where+ hashWithSalt _salt AnomalyInstance' {..} =+ _salt+ `Prelude.hashWithSalt` endTime+ `Prelude.hashWithSalt` userFeedback+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` startTime++instance Prelude.NFData AnomalyInstance where+ rnf AnomalyInstance' {..} =+ Prelude.rnf endTime+ `Prelude.seq` Prelude.rnf userFeedback+ `Prelude.seq` Prelude.rnf id+ `Prelude.seq` Prelude.rnf startTime
+ gen/Amazonka/CodeGuruProfiler/Types/Channel.hs view
@@ -0,0 +1,132 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CodeGuruProfiler.Types.Channel+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruProfiler.Types.Channel where++import Amazonka.CodeGuruProfiler.Types.EventPublisher+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++-- | Notification medium for users to get alerted for events that occur in+-- application profile. We support SNS topic as a notification channel.+--+-- /See:/ 'newChannel' smart constructor.+data Channel = Channel'+ { -- | Unique identifier for each @Channel@ in the notification configuration+ -- of a Profiling Group. A random UUID for channelId is used when adding a+ -- channel to the notification configuration if not specified in the+ -- request.+ id :: Prelude.Maybe Prelude.Text,+ -- | List of publishers for different type of events that may be detected in+ -- an application from the profile. Anomaly detection is the only event+ -- publisher in Profiler.+ eventPublishers :: Prelude.NonEmpty EventPublisher,+ -- | Unique arn of the resource to be used for notifications. We support a+ -- valid SNS topic arn as a channel uri.+ uri :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Channel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'channel_id' - Unique identifier for each @Channel@ in the notification configuration+-- of a Profiling Group. A random UUID for channelId is used when adding a+-- channel to the notification configuration if not specified in the+-- request.+--+-- 'eventPublishers', 'channel_eventPublishers' - List of publishers for different type of events that may be detected in+-- an application from the profile. Anomaly detection is the only event+-- publisher in Profiler.+--+-- 'uri', 'channel_uri' - Unique arn of the resource to be used for notifications. We support a+-- valid SNS topic arn as a channel uri.+newChannel ::+ -- | 'eventPublishers'+ Prelude.NonEmpty EventPublisher ->+ -- | 'uri'+ Prelude.Text ->+ Channel+newChannel pEventPublishers_ pUri_ =+ Channel'+ { id = Prelude.Nothing,+ eventPublishers =+ Lens.coerced Lens.# pEventPublishers_,+ uri = pUri_+ }++-- | Unique identifier for each @Channel@ in the notification configuration+-- of a Profiling Group. A random UUID for channelId is used when adding a+-- channel to the notification configuration if not specified in the+-- request.+channel_id :: Lens.Lens' Channel (Prelude.Maybe Prelude.Text)+channel_id = Lens.lens (\Channel' {id} -> id) (\s@Channel' {} a -> s {id = a} :: Channel)++-- | List of publishers for different type of events that may be detected in+-- an application from the profile. Anomaly detection is the only event+-- publisher in Profiler.+channel_eventPublishers :: Lens.Lens' Channel (Prelude.NonEmpty EventPublisher)+channel_eventPublishers = Lens.lens (\Channel' {eventPublishers} -> eventPublishers) (\s@Channel' {} a -> s {eventPublishers = a} :: Channel) Prelude.. Lens.coerced++-- | Unique arn of the resource to be used for notifications. We support a+-- valid SNS topic arn as a channel uri.+channel_uri :: Lens.Lens' Channel Prelude.Text+channel_uri = Lens.lens (\Channel' {uri} -> uri) (\s@Channel' {} a -> s {uri = a} :: Channel)++instance Data.FromJSON Channel where+ parseJSON =+ Data.withObject+ "Channel"+ ( \x ->+ Channel'+ Prelude.<$> (x Data..:? "id")+ Prelude.<*> (x Data..: "eventPublishers")+ Prelude.<*> (x Data..: "uri")+ )++instance Prelude.Hashable Channel where+ hashWithSalt _salt Channel' {..} =+ _salt+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` eventPublishers+ `Prelude.hashWithSalt` uri++instance Prelude.NFData Channel where+ rnf Channel' {..} =+ Prelude.rnf id+ `Prelude.seq` Prelude.rnf eventPublishers+ `Prelude.seq` Prelude.rnf uri++instance Data.ToJSON Channel where+ toJSON Channel' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("id" Data..=) Prelude.<$> id,+ Prelude.Just+ ("eventPublishers" Data..= eventPublishers),+ Prelude.Just ("uri" Data..= uri)+ ]+ )
+ gen/Amazonka/CodeGuruProfiler/Types/ComputePlatform.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.CodeGuruProfiler.Types.ComputePlatform+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruProfiler.Types.ComputePlatform+ ( ComputePlatform+ ( ..,+ ComputePlatform_AWSLambda,+ ComputePlatform_Default+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ComputePlatform = ComputePlatform'+ { fromComputePlatform ::+ 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 ComputePlatform_AWSLambda :: ComputePlatform+pattern ComputePlatform_AWSLambda = ComputePlatform' "AWSLambda"++pattern ComputePlatform_Default :: ComputePlatform+pattern ComputePlatform_Default = ComputePlatform' "Default"++{-# COMPLETE+ ComputePlatform_AWSLambda,+ ComputePlatform_Default,+ ComputePlatform'+ #-}
+ gen/Amazonka/CodeGuruProfiler/Types/EventPublisher.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CodeGuruProfiler.Types.EventPublisher+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruProfiler.Types.EventPublisher+ ( EventPublisher+ ( ..,+ EventPublisher_AnomalyDetection+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EventPublisher = EventPublisher'+ { fromEventPublisher ::+ 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 EventPublisher_AnomalyDetection :: EventPublisher+pattern EventPublisher_AnomalyDetection = EventPublisher' "AnomalyDetection"++{-# COMPLETE+ EventPublisher_AnomalyDetection,+ EventPublisher'+ #-}
+ gen/Amazonka/CodeGuruProfiler/Types/FeedbackType.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.CodeGuruProfiler.Types.FeedbackType+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruProfiler.Types.FeedbackType+ ( FeedbackType+ ( ..,+ FeedbackType_Negative,+ FeedbackType_Positive+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype FeedbackType = FeedbackType'+ { fromFeedbackType ::+ 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 FeedbackType_Negative :: FeedbackType+pattern FeedbackType_Negative = FeedbackType' "Negative"++pattern FeedbackType_Positive :: FeedbackType+pattern FeedbackType_Positive = FeedbackType' "Positive"++{-# COMPLETE+ FeedbackType_Negative,+ FeedbackType_Positive,+ FeedbackType'+ #-}
+ gen/Amazonka/CodeGuruProfiler/Types/FindingsReportSummary.hs view
@@ -0,0 +1,145 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CodeGuruProfiler.Types.FindingsReportSummary+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruProfiler.Types.FindingsReportSummary 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 potential recommendations that might be created from+-- the analysis of profiling data.+--+-- /See:/ 'newFindingsReportSummary' smart constructor.+data FindingsReportSummary = FindingsReportSummary'+ { -- | The universally unique identifier (UUID) of the recommendation report.+ id :: Prelude.Maybe Prelude.Text,+ -- | The end time of the period during which the metric is flagged as+ -- anomalous. This is specified using the ISO 8601 format. For example,+ -- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+ -- 1:15:02 PM UTC.+ profileEndTime :: Prelude.Maybe Data.ISO8601,+ -- | The start time of the profile the analysis data is about. This is+ -- specified using the ISO 8601 format. For example,+ -- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+ -- 1:15:02 PM UTC.+ profileStartTime :: Prelude.Maybe Data.ISO8601,+ -- | The name of the profiling group that is associated with the analysis+ -- data.+ profilingGroupName :: Prelude.Maybe Prelude.Text,+ -- | The total number of different recommendations that were found by the+ -- analysis.+ totalNumberOfFindings :: Prelude.Maybe Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FindingsReportSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'findingsReportSummary_id' - The universally unique identifier (UUID) of the recommendation report.+--+-- 'profileEndTime', 'findingsReportSummary_profileEndTime' - The end time of the period during which the metric is flagged as+-- anomalous. This is specified using the ISO 8601 format. For example,+-- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+-- 1:15:02 PM UTC.+--+-- 'profileStartTime', 'findingsReportSummary_profileStartTime' - The start time of the profile the analysis data is about. This is+-- specified using the ISO 8601 format. For example,+-- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+-- 1:15:02 PM UTC.+--+-- 'profilingGroupName', 'findingsReportSummary_profilingGroupName' - The name of the profiling group that is associated with the analysis+-- data.+--+-- 'totalNumberOfFindings', 'findingsReportSummary_totalNumberOfFindings' - The total number of different recommendations that were found by the+-- analysis.+newFindingsReportSummary ::+ FindingsReportSummary+newFindingsReportSummary =+ FindingsReportSummary'+ { id = Prelude.Nothing,+ profileEndTime = Prelude.Nothing,+ profileStartTime = Prelude.Nothing,+ profilingGroupName = Prelude.Nothing,+ totalNumberOfFindings = Prelude.Nothing+ }++-- | The universally unique identifier (UUID) of the recommendation report.+findingsReportSummary_id :: Lens.Lens' FindingsReportSummary (Prelude.Maybe Prelude.Text)+findingsReportSummary_id = Lens.lens (\FindingsReportSummary' {id} -> id) (\s@FindingsReportSummary' {} a -> s {id = a} :: FindingsReportSummary)++-- | The end time of the period during which the metric is flagged as+-- anomalous. This is specified using the ISO 8601 format. For example,+-- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+-- 1:15:02 PM UTC.+findingsReportSummary_profileEndTime :: Lens.Lens' FindingsReportSummary (Prelude.Maybe Prelude.UTCTime)+findingsReportSummary_profileEndTime = Lens.lens (\FindingsReportSummary' {profileEndTime} -> profileEndTime) (\s@FindingsReportSummary' {} a -> s {profileEndTime = a} :: FindingsReportSummary) Prelude.. Lens.mapping Data._Time++-- | The start time of the profile the analysis data is about. This is+-- specified using the ISO 8601 format. For example,+-- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+-- 1:15:02 PM UTC.+findingsReportSummary_profileStartTime :: Lens.Lens' FindingsReportSummary (Prelude.Maybe Prelude.UTCTime)+findingsReportSummary_profileStartTime = Lens.lens (\FindingsReportSummary' {profileStartTime} -> profileStartTime) (\s@FindingsReportSummary' {} a -> s {profileStartTime = a} :: FindingsReportSummary) Prelude.. Lens.mapping Data._Time++-- | The name of the profiling group that is associated with the analysis+-- data.+findingsReportSummary_profilingGroupName :: Lens.Lens' FindingsReportSummary (Prelude.Maybe Prelude.Text)+findingsReportSummary_profilingGroupName = Lens.lens (\FindingsReportSummary' {profilingGroupName} -> profilingGroupName) (\s@FindingsReportSummary' {} a -> s {profilingGroupName = a} :: FindingsReportSummary)++-- | The total number of different recommendations that were found by the+-- analysis.+findingsReportSummary_totalNumberOfFindings :: Lens.Lens' FindingsReportSummary (Prelude.Maybe Prelude.Int)+findingsReportSummary_totalNumberOfFindings = Lens.lens (\FindingsReportSummary' {totalNumberOfFindings} -> totalNumberOfFindings) (\s@FindingsReportSummary' {} a -> s {totalNumberOfFindings = a} :: FindingsReportSummary)++instance Data.FromJSON FindingsReportSummary where+ parseJSON =+ Data.withObject+ "FindingsReportSummary"+ ( \x ->+ FindingsReportSummary'+ Prelude.<$> (x Data..:? "id")+ Prelude.<*> (x Data..:? "profileEndTime")+ Prelude.<*> (x Data..:? "profileStartTime")+ Prelude.<*> (x Data..:? "profilingGroupName")+ Prelude.<*> (x Data..:? "totalNumberOfFindings")+ )++instance Prelude.Hashable FindingsReportSummary where+ hashWithSalt _salt FindingsReportSummary' {..} =+ _salt+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` profileEndTime+ `Prelude.hashWithSalt` profileStartTime+ `Prelude.hashWithSalt` profilingGroupName+ `Prelude.hashWithSalt` totalNumberOfFindings++instance Prelude.NFData FindingsReportSummary where+ rnf FindingsReportSummary' {..} =+ Prelude.rnf id+ `Prelude.seq` Prelude.rnf profileEndTime+ `Prelude.seq` Prelude.rnf profileStartTime+ `Prelude.seq` Prelude.rnf profilingGroupName+ `Prelude.seq` Prelude.rnf totalNumberOfFindings
+ gen/Amazonka/CodeGuruProfiler/Types/FrameMetric.hs view
@@ -0,0 +1,127 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CodeGuruProfiler.Types.FrameMetric+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruProfiler.Types.FrameMetric where++import Amazonka.CodeGuruProfiler.Types.MetricType+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 frame name, metric type, and thread states. These are used to derive+-- the value of the metric for the frame.+--+-- /See:/ 'newFrameMetric' smart constructor.+data FrameMetric = FrameMetric'+ { -- | Name of the method common across the multiple occurrences of a frame in+ -- an application profile.+ frameName :: Prelude.Text,+ -- | List of application runtime thread states used to get the counts for a+ -- frame a derive a metric value.+ threadStates :: [Prelude.Text],+ -- | A type of aggregation that specifies how a metric for a frame is+ -- analyzed. The supported value @AggregatedRelativeTotalTime@ is an+ -- aggregation of the metric value for one frame that is calculated across+ -- the occurrences of all frames in a profile.+ type' :: MetricType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FrameMetric' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'frameName', 'frameMetric_frameName' - Name of the method common across the multiple occurrences of a frame in+-- an application profile.+--+-- 'threadStates', 'frameMetric_threadStates' - List of application runtime thread states used to get the counts for a+-- frame a derive a metric value.+--+-- 'type'', 'frameMetric_type' - A type of aggregation that specifies how a metric for a frame is+-- analyzed. The supported value @AggregatedRelativeTotalTime@ is an+-- aggregation of the metric value for one frame that is calculated across+-- the occurrences of all frames in a profile.+newFrameMetric ::+ -- | 'frameName'+ Prelude.Text ->+ -- | 'type''+ MetricType ->+ FrameMetric+newFrameMetric pFrameName_ pType_ =+ FrameMetric'+ { frameName = pFrameName_,+ threadStates = Prelude.mempty,+ type' = pType_+ }++-- | Name of the method common across the multiple occurrences of a frame in+-- an application profile.+frameMetric_frameName :: Lens.Lens' FrameMetric Prelude.Text+frameMetric_frameName = Lens.lens (\FrameMetric' {frameName} -> frameName) (\s@FrameMetric' {} a -> s {frameName = a} :: FrameMetric)++-- | List of application runtime thread states used to get the counts for a+-- frame a derive a metric value.+frameMetric_threadStates :: Lens.Lens' FrameMetric [Prelude.Text]+frameMetric_threadStates = Lens.lens (\FrameMetric' {threadStates} -> threadStates) (\s@FrameMetric' {} a -> s {threadStates = a} :: FrameMetric) Prelude.. Lens.coerced++-- | A type of aggregation that specifies how a metric for a frame is+-- analyzed. The supported value @AggregatedRelativeTotalTime@ is an+-- aggregation of the metric value for one frame that is calculated across+-- the occurrences of all frames in a profile.+frameMetric_type :: Lens.Lens' FrameMetric MetricType+frameMetric_type = Lens.lens (\FrameMetric' {type'} -> type') (\s@FrameMetric' {} a -> s {type' = a} :: FrameMetric)++instance Data.FromJSON FrameMetric where+ parseJSON =+ Data.withObject+ "FrameMetric"+ ( \x ->+ FrameMetric'+ Prelude.<$> (x Data..: "frameName")+ Prelude.<*> (x Data..:? "threadStates" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..: "type")+ )++instance Prelude.Hashable FrameMetric where+ hashWithSalt _salt FrameMetric' {..} =+ _salt+ `Prelude.hashWithSalt` frameName+ `Prelude.hashWithSalt` threadStates+ `Prelude.hashWithSalt` type'++instance Prelude.NFData FrameMetric where+ rnf FrameMetric' {..} =+ Prelude.rnf frameName+ `Prelude.seq` Prelude.rnf threadStates+ `Prelude.seq` Prelude.rnf type'++instance Data.ToJSON FrameMetric where+ toJSON FrameMetric' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("frameName" Data..= frameName),+ Prelude.Just ("threadStates" Data..= threadStates),+ Prelude.Just ("type" Data..= type')+ ]+ )
+ gen/Amazonka/CodeGuruProfiler/Types/FrameMetricDatum.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.CodeGuruProfiler.Types.FrameMetricDatum+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruProfiler.Types.FrameMetricDatum where++import Amazonka.CodeGuruProfiler.Types.FrameMetric+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 frame metric and its values.+--+-- /See:/ 'newFrameMetricDatum' smart constructor.+data FrameMetricDatum = FrameMetricDatum'+ { frameMetric :: FrameMetric,+ -- | A list of values that are associated with a frame metric.+ values :: [Prelude.Double]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FrameMetricDatum' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'frameMetric', 'frameMetricDatum_frameMetric' - Undocumented member.+--+-- 'values', 'frameMetricDatum_values' - A list of values that are associated with a frame metric.+newFrameMetricDatum ::+ -- | 'frameMetric'+ FrameMetric ->+ FrameMetricDatum+newFrameMetricDatum pFrameMetric_ =+ FrameMetricDatum'+ { frameMetric = pFrameMetric_,+ values = Prelude.mempty+ }++-- | Undocumented member.+frameMetricDatum_frameMetric :: Lens.Lens' FrameMetricDatum FrameMetric+frameMetricDatum_frameMetric = Lens.lens (\FrameMetricDatum' {frameMetric} -> frameMetric) (\s@FrameMetricDatum' {} a -> s {frameMetric = a} :: FrameMetricDatum)++-- | A list of values that are associated with a frame metric.+frameMetricDatum_values :: Lens.Lens' FrameMetricDatum [Prelude.Double]+frameMetricDatum_values = Lens.lens (\FrameMetricDatum' {values} -> values) (\s@FrameMetricDatum' {} a -> s {values = a} :: FrameMetricDatum) Prelude.. Lens.coerced++instance Data.FromJSON FrameMetricDatum where+ parseJSON =+ Data.withObject+ "FrameMetricDatum"+ ( \x ->+ FrameMetricDatum'+ Prelude.<$> (x Data..: "frameMetric")+ Prelude.<*> (x Data..:? "values" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable FrameMetricDatum where+ hashWithSalt _salt FrameMetricDatum' {..} =+ _salt+ `Prelude.hashWithSalt` frameMetric+ `Prelude.hashWithSalt` values++instance Prelude.NFData FrameMetricDatum where+ rnf FrameMetricDatum' {..} =+ Prelude.rnf frameMetric+ `Prelude.seq` Prelude.rnf values
+ gen/Amazonka/CodeGuruProfiler/Types/Match.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.CodeGuruProfiler.Types.Match+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruProfiler.Types.Match 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 part of a profile that contains a recommendation found during+-- analysis.+--+-- /See:/ 'newMatch' smart constructor.+data Match = Match'+ { -- | The location in the profiling graph that contains a recommendation found+ -- during analysis.+ frameAddress :: Prelude.Maybe Prelude.Text,+ -- | The target frame that triggered a match.+ targetFramesIndex :: Prelude.Maybe Prelude.Int,+ -- | The value in the profile data that exceeded the recommendation+ -- threshold.+ thresholdBreachValue :: Prelude.Maybe Prelude.Double+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Match' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'frameAddress', 'match_frameAddress' - The location in the profiling graph that contains a recommendation found+-- during analysis.+--+-- 'targetFramesIndex', 'match_targetFramesIndex' - The target frame that triggered a match.+--+-- 'thresholdBreachValue', 'match_thresholdBreachValue' - The value in the profile data that exceeded the recommendation+-- threshold.+newMatch ::+ Match+newMatch =+ Match'+ { frameAddress = Prelude.Nothing,+ targetFramesIndex = Prelude.Nothing,+ thresholdBreachValue = Prelude.Nothing+ }++-- | The location in the profiling graph that contains a recommendation found+-- during analysis.+match_frameAddress :: Lens.Lens' Match (Prelude.Maybe Prelude.Text)+match_frameAddress = Lens.lens (\Match' {frameAddress} -> frameAddress) (\s@Match' {} a -> s {frameAddress = a} :: Match)++-- | The target frame that triggered a match.+match_targetFramesIndex :: Lens.Lens' Match (Prelude.Maybe Prelude.Int)+match_targetFramesIndex = Lens.lens (\Match' {targetFramesIndex} -> targetFramesIndex) (\s@Match' {} a -> s {targetFramesIndex = a} :: Match)++-- | The value in the profile data that exceeded the recommendation+-- threshold.+match_thresholdBreachValue :: Lens.Lens' Match (Prelude.Maybe Prelude.Double)+match_thresholdBreachValue = Lens.lens (\Match' {thresholdBreachValue} -> thresholdBreachValue) (\s@Match' {} a -> s {thresholdBreachValue = a} :: Match)++instance Data.FromJSON Match where+ parseJSON =+ Data.withObject+ "Match"+ ( \x ->+ Match'+ Prelude.<$> (x Data..:? "frameAddress")+ Prelude.<*> (x Data..:? "targetFramesIndex")+ Prelude.<*> (x Data..:? "thresholdBreachValue")+ )++instance Prelude.Hashable Match where+ hashWithSalt _salt Match' {..} =+ _salt+ `Prelude.hashWithSalt` frameAddress+ `Prelude.hashWithSalt` targetFramesIndex+ `Prelude.hashWithSalt` thresholdBreachValue++instance Prelude.NFData Match where+ rnf Match' {..} =+ Prelude.rnf frameAddress+ `Prelude.seq` Prelude.rnf targetFramesIndex+ `Prelude.seq` Prelude.rnf thresholdBreachValue
+ gen/Amazonka/CodeGuruProfiler/Types/MetadataField.hs view
@@ -0,0 +1,106 @@+{-# 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.CodeGuruProfiler.Types.MetadataField+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruProfiler.Types.MetadataField+ ( MetadataField+ ( ..,+ MetadataField_AgentId,+ MetadataField_AwsRequestId,+ MetadataField_ComputePlatform,+ MetadataField_ExecutionEnvironment,+ MetadataField_LambdaFunctionArn,+ MetadataField_LambdaMemoryLimitInMB,+ MetadataField_LambdaPreviousExecutionTimeInMilliseconds,+ MetadataField_LambdaRemainingTimeInMilliseconds,+ MetadataField_LambdaTimeGapBetweenInvokesInMilliseconds+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype MetadataField = MetadataField'+ { fromMetadataField ::+ 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 MetadataField_AgentId :: MetadataField+pattern MetadataField_AgentId = MetadataField' "AgentId"++pattern MetadataField_AwsRequestId :: MetadataField+pattern MetadataField_AwsRequestId = MetadataField' "AwsRequestId"++pattern MetadataField_ComputePlatform :: MetadataField+pattern MetadataField_ComputePlatform = MetadataField' "ComputePlatform"++pattern MetadataField_ExecutionEnvironment :: MetadataField+pattern MetadataField_ExecutionEnvironment = MetadataField' "ExecutionEnvironment"++pattern MetadataField_LambdaFunctionArn :: MetadataField+pattern MetadataField_LambdaFunctionArn = MetadataField' "LambdaFunctionArn"++pattern MetadataField_LambdaMemoryLimitInMB :: MetadataField+pattern MetadataField_LambdaMemoryLimitInMB = MetadataField' "LambdaMemoryLimitInMB"++pattern MetadataField_LambdaPreviousExecutionTimeInMilliseconds :: MetadataField+pattern MetadataField_LambdaPreviousExecutionTimeInMilliseconds = MetadataField' "LambdaPreviousExecutionTimeInMilliseconds"++pattern MetadataField_LambdaRemainingTimeInMilliseconds :: MetadataField+pattern MetadataField_LambdaRemainingTimeInMilliseconds = MetadataField' "LambdaRemainingTimeInMilliseconds"++pattern MetadataField_LambdaTimeGapBetweenInvokesInMilliseconds :: MetadataField+pattern MetadataField_LambdaTimeGapBetweenInvokesInMilliseconds = MetadataField' "LambdaTimeGapBetweenInvokesInMilliseconds"++{-# COMPLETE+ MetadataField_AgentId,+ MetadataField_AwsRequestId,+ MetadataField_ComputePlatform,+ MetadataField_ExecutionEnvironment,+ MetadataField_LambdaFunctionArn,+ MetadataField_LambdaMemoryLimitInMB,+ MetadataField_LambdaPreviousExecutionTimeInMilliseconds,+ MetadataField_LambdaRemainingTimeInMilliseconds,+ MetadataField_LambdaTimeGapBetweenInvokesInMilliseconds,+ MetadataField'+ #-}
+ gen/Amazonka/CodeGuruProfiler/Types/Metric.hs view
@@ -0,0 +1,119 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CodeGuruProfiler.Types.Metric+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruProfiler.Types.Metric where++import Amazonka.CodeGuruProfiler.Types.MetricType+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Details about the metric that the analysis used when it detected the+-- anomaly. The metric what is analyzed to create recommendations. It+-- includes the name of the frame that was analyzed and the type and thread+-- states used to derive the metric value for that frame.+--+-- /See:/ 'newMetric' smart constructor.+data Metric = Metric'+ { -- | The name of the method that appears as a frame in any stack in a+ -- profile.+ frameName :: Prelude.Text,+ -- | The list of application runtime thread states that is used to calculate+ -- the metric value for the frame.+ threadStates :: [Prelude.Text],+ -- | A type that specifies how a metric for a frame is analyzed. The+ -- supported value @AggregatedRelativeTotalTime@ is an aggregation of the+ -- metric value for one frame that is calculated across the occurences of+ -- all frames in a profile.+ type' :: MetricType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Metric' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'frameName', 'metric_frameName' - The name of the method that appears as a frame in any stack in a+-- profile.+--+-- 'threadStates', 'metric_threadStates' - The list of application runtime thread states that is used to calculate+-- the metric value for the frame.+--+-- 'type'', 'metric_type' - A type that specifies how a metric for a frame is analyzed. The+-- supported value @AggregatedRelativeTotalTime@ is an aggregation of the+-- metric value for one frame that is calculated across the occurences of+-- all frames in a profile.+newMetric ::+ -- | 'frameName'+ Prelude.Text ->+ -- | 'type''+ MetricType ->+ Metric+newMetric pFrameName_ pType_ =+ Metric'+ { frameName = pFrameName_,+ threadStates = Prelude.mempty,+ type' = pType_+ }++-- | The name of the method that appears as a frame in any stack in a+-- profile.+metric_frameName :: Lens.Lens' Metric Prelude.Text+metric_frameName = Lens.lens (\Metric' {frameName} -> frameName) (\s@Metric' {} a -> s {frameName = a} :: Metric)++-- | The list of application runtime thread states that is used to calculate+-- the metric value for the frame.+metric_threadStates :: Lens.Lens' Metric [Prelude.Text]+metric_threadStates = Lens.lens (\Metric' {threadStates} -> threadStates) (\s@Metric' {} a -> s {threadStates = a} :: Metric) Prelude.. Lens.coerced++-- | A type that specifies how a metric for a frame is analyzed. The+-- supported value @AggregatedRelativeTotalTime@ is an aggregation of the+-- metric value for one frame that is calculated across the occurences of+-- all frames in a profile.+metric_type :: Lens.Lens' Metric MetricType+metric_type = Lens.lens (\Metric' {type'} -> type') (\s@Metric' {} a -> s {type' = a} :: Metric)++instance Data.FromJSON Metric where+ parseJSON =+ Data.withObject+ "Metric"+ ( \x ->+ Metric'+ Prelude.<$> (x Data..: "frameName")+ Prelude.<*> (x Data..:? "threadStates" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..: "type")+ )++instance Prelude.Hashable Metric where+ hashWithSalt _salt Metric' {..} =+ _salt+ `Prelude.hashWithSalt` frameName+ `Prelude.hashWithSalt` threadStates+ `Prelude.hashWithSalt` type'++instance Prelude.NFData Metric where+ rnf Metric' {..} =+ Prelude.rnf frameName+ `Prelude.seq` Prelude.rnf threadStates+ `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/CodeGuruProfiler/Types/MetricType.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CodeGuruProfiler.Types.MetricType+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruProfiler.Types.MetricType+ ( MetricType+ ( ..,+ MetricType_AggregatedRelativeTotalTime+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype MetricType = MetricType'+ { fromMetricType ::+ 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 MetricType_AggregatedRelativeTotalTime :: MetricType+pattern MetricType_AggregatedRelativeTotalTime = MetricType' "AggregatedRelativeTotalTime"++{-# COMPLETE+ MetricType_AggregatedRelativeTotalTime,+ MetricType'+ #-}
+ gen/Amazonka/CodeGuruProfiler/Types/NotificationConfiguration.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.CodeGuruProfiler.Types.NotificationConfiguration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruProfiler.Types.NotificationConfiguration where++import Amazonka.CodeGuruProfiler.Types.Channel+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 configuration for notifications stored for each profiling group.+-- This includes up to to two channels and a list of event publishers+-- associated with each channel.+--+-- /See:/ 'newNotificationConfiguration' smart constructor.+data NotificationConfiguration = NotificationConfiguration'+ { -- | List of up to two channels to be used for sending notifications for+ -- events detected from the application profile.+ channels :: Prelude.Maybe (Prelude.NonEmpty Channel)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NotificationConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'notificationConfiguration_channels' - List of up to two channels to be used for sending notifications for+-- events detected from the application profile.+newNotificationConfiguration ::+ NotificationConfiguration+newNotificationConfiguration =+ NotificationConfiguration'+ { channels =+ Prelude.Nothing+ }++-- | List of up to two channels to be used for sending notifications for+-- events detected from the application profile.+notificationConfiguration_channels :: Lens.Lens' NotificationConfiguration (Prelude.Maybe (Prelude.NonEmpty Channel))+notificationConfiguration_channels = Lens.lens (\NotificationConfiguration' {channels} -> channels) (\s@NotificationConfiguration' {} a -> s {channels = a} :: NotificationConfiguration) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON NotificationConfiguration where+ parseJSON =+ Data.withObject+ "NotificationConfiguration"+ ( \x ->+ NotificationConfiguration'+ Prelude.<$> (x Data..:? "channels")+ )++instance Prelude.Hashable NotificationConfiguration where+ hashWithSalt _salt NotificationConfiguration' {..} =+ _salt `Prelude.hashWithSalt` channels++instance Prelude.NFData NotificationConfiguration where+ rnf NotificationConfiguration' {..} =+ Prelude.rnf channels
+ gen/Amazonka/CodeGuruProfiler/Types/OrderBy.hs view
@@ -0,0 +1,68 @@+{-# 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.CodeGuruProfiler.Types.OrderBy+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruProfiler.Types.OrderBy+ ( OrderBy+ ( ..,+ OrderBy_TimestampAscending,+ OrderBy_TimestampDescending+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype OrderBy = OrderBy' {fromOrderBy :: 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 OrderBy_TimestampAscending :: OrderBy+pattern OrderBy_TimestampAscending = OrderBy' "TimestampAscending"++pattern OrderBy_TimestampDescending :: OrderBy+pattern OrderBy_TimestampDescending = OrderBy' "TimestampDescending"++{-# COMPLETE+ OrderBy_TimestampAscending,+ OrderBy_TimestampDescending,+ OrderBy'+ #-}
+ gen/Amazonka/CodeGuruProfiler/Types/Pattern.hs view
@@ -0,0 +1,162 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CodeGuruProfiler.Types.Pattern+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruProfiler.Types.Pattern 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 set of rules used to make a recommendation during an analysis.+--+-- /See:/ 'newPattern' smart constructor.+data Pattern = Pattern'+ { -- | A list of the different counters used to determine if there is a match.+ countersToAggregate :: Prelude.Maybe [Prelude.Text],+ -- | The description of the recommendation. This explains a potential+ -- inefficiency in a profiled application.+ description :: Prelude.Maybe Prelude.Text,+ -- | The universally unique identifier (UUID) of this pattern.+ id :: Prelude.Maybe Prelude.Text,+ -- | The name for this pattern.+ name :: Prelude.Maybe Prelude.Text,+ -- | A string that contains the steps recommended to address the potential+ -- inefficiency.+ resolutionSteps :: Prelude.Maybe Prelude.Text,+ -- | A list of frame names that were searched during the analysis that+ -- generated a recommendation.+ targetFrames :: Prelude.Maybe [[Prelude.Text]],+ -- | The percentage of time an application spends in one method that triggers+ -- a recommendation. The percentage of time is the same as the percentage+ -- of the total gathered sample counts during analysis.+ thresholdPercent :: Prelude.Maybe Prelude.Double+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Pattern' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'countersToAggregate', 'pattern_countersToAggregate' - A list of the different counters used to determine if there is a match.+--+-- 'description', 'pattern_description' - The description of the recommendation. This explains a potential+-- inefficiency in a profiled application.+--+-- 'id', 'pattern_id' - The universally unique identifier (UUID) of this pattern.+--+-- 'name', 'pattern_name' - The name for this pattern.+--+-- 'resolutionSteps', 'pattern_resolutionSteps' - A string that contains the steps recommended to address the potential+-- inefficiency.+--+-- 'targetFrames', 'pattern_targetFrames' - A list of frame names that were searched during the analysis that+-- generated a recommendation.+--+-- 'thresholdPercent', 'pattern_thresholdPercent' - The percentage of time an application spends in one method that triggers+-- a recommendation. The percentage of time is the same as the percentage+-- of the total gathered sample counts during analysis.+newPattern ::+ Pattern+newPattern =+ Pattern'+ { countersToAggregate = Prelude.Nothing,+ description = Prelude.Nothing,+ id = Prelude.Nothing,+ name = Prelude.Nothing,+ resolutionSteps = Prelude.Nothing,+ targetFrames = Prelude.Nothing,+ thresholdPercent = Prelude.Nothing+ }++-- | A list of the different counters used to determine if there is a match.+pattern_countersToAggregate :: Lens.Lens' Pattern (Prelude.Maybe [Prelude.Text])+pattern_countersToAggregate = Lens.lens (\Pattern' {countersToAggregate} -> countersToAggregate) (\s@Pattern' {} a -> s {countersToAggregate = a} :: Pattern) Prelude.. Lens.mapping Lens.coerced++-- | The description of the recommendation. This explains a potential+-- inefficiency in a profiled application.+pattern_description :: Lens.Lens' Pattern (Prelude.Maybe Prelude.Text)+pattern_description = Lens.lens (\Pattern' {description} -> description) (\s@Pattern' {} a -> s {description = a} :: Pattern)++-- | The universally unique identifier (UUID) of this pattern.+pattern_id :: Lens.Lens' Pattern (Prelude.Maybe Prelude.Text)+pattern_id = Lens.lens (\Pattern' {id} -> id) (\s@Pattern' {} a -> s {id = a} :: Pattern)++-- | The name for this pattern.+pattern_name :: Lens.Lens' Pattern (Prelude.Maybe Prelude.Text)+pattern_name = Lens.lens (\Pattern' {name} -> name) (\s@Pattern' {} a -> s {name = a} :: Pattern)++-- | A string that contains the steps recommended to address the potential+-- inefficiency.+pattern_resolutionSteps :: Lens.Lens' Pattern (Prelude.Maybe Prelude.Text)+pattern_resolutionSteps = Lens.lens (\Pattern' {resolutionSteps} -> resolutionSteps) (\s@Pattern' {} a -> s {resolutionSteps = a} :: Pattern)++-- | A list of frame names that were searched during the analysis that+-- generated a recommendation.+pattern_targetFrames :: Lens.Lens' Pattern (Prelude.Maybe [[Prelude.Text]])+pattern_targetFrames = Lens.lens (\Pattern' {targetFrames} -> targetFrames) (\s@Pattern' {} a -> s {targetFrames = a} :: Pattern) Prelude.. Lens.mapping Lens.coerced++-- | The percentage of time an application spends in one method that triggers+-- a recommendation. The percentage of time is the same as the percentage+-- of the total gathered sample counts during analysis.+pattern_thresholdPercent :: Lens.Lens' Pattern (Prelude.Maybe Prelude.Double)+pattern_thresholdPercent = Lens.lens (\Pattern' {thresholdPercent} -> thresholdPercent) (\s@Pattern' {} a -> s {thresholdPercent = a} :: Pattern)++instance Data.FromJSON Pattern where+ parseJSON =+ Data.withObject+ "Pattern"+ ( \x ->+ Pattern'+ Prelude.<$> ( x+ Data..:? "countersToAggregate"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "description")+ Prelude.<*> (x Data..:? "id")+ Prelude.<*> (x Data..:? "name")+ Prelude.<*> (x Data..:? "resolutionSteps")+ Prelude.<*> (x Data..:? "targetFrames" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "thresholdPercent")+ )++instance Prelude.Hashable Pattern where+ hashWithSalt _salt Pattern' {..} =+ _salt+ `Prelude.hashWithSalt` countersToAggregate+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` resolutionSteps+ `Prelude.hashWithSalt` targetFrames+ `Prelude.hashWithSalt` thresholdPercent++instance Prelude.NFData Pattern where+ rnf Pattern' {..} =+ Prelude.rnf countersToAggregate+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf id+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf resolutionSteps+ `Prelude.seq` Prelude.rnf targetFrames+ `Prelude.seq` Prelude.rnf thresholdPercent
+ gen/Amazonka/CodeGuruProfiler/Types/ProfileTime.hs view
@@ -0,0 +1,73 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CodeGuruProfiler.Types.ProfileTime+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruProfiler.Types.ProfileTime 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 start time of a profile.+--+-- /See:/ 'newProfileTime' smart constructor.+data ProfileTime = ProfileTime'+ { -- | The start time of a profile. It is specified using the ISO 8601 format.+ -- For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June+ -- 1, 2020 1:15:02 PM UTC.+ start :: Prelude.Maybe Data.ISO8601+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ProfileTime' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'start', 'profileTime_start' - The start time of a profile. It is specified using the ISO 8601 format.+-- For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June+-- 1, 2020 1:15:02 PM UTC.+newProfileTime ::+ ProfileTime+newProfileTime =+ ProfileTime' {start = Prelude.Nothing}++-- | The start time of a profile. It is specified using the ISO 8601 format.+-- For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June+-- 1, 2020 1:15:02 PM UTC.+profileTime_start :: Lens.Lens' ProfileTime (Prelude.Maybe Prelude.UTCTime)+profileTime_start = Lens.lens (\ProfileTime' {start} -> start) (\s@ProfileTime' {} a -> s {start = a} :: ProfileTime) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON ProfileTime where+ parseJSON =+ Data.withObject+ "ProfileTime"+ ( \x ->+ ProfileTime' Prelude.<$> (x Data..:? "start")+ )++instance Prelude.Hashable ProfileTime where+ hashWithSalt _salt ProfileTime' {..} =+ _salt `Prelude.hashWithSalt` start++instance Prelude.NFData ProfileTime where+ rnf ProfileTime' {..} = Prelude.rnf start
+ gen/Amazonka/CodeGuruProfiler/Types/ProfilingGroupDescription.hs view
@@ -0,0 +1,205 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CodeGuruProfiler.Types.ProfilingGroupDescription+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruProfiler.Types.ProfilingGroupDescription where++import Amazonka.CodeGuruProfiler.Types.AgentOrchestrationConfig+import Amazonka.CodeGuruProfiler.Types.ComputePlatform+import Amazonka.CodeGuruProfiler.Types.ProfilingStatus+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Contains information about a profiling group.+--+-- /See:/ 'newProfilingGroupDescription' smart constructor.+data ProfilingGroupDescription = ProfilingGroupDescription'+ { -- | An+ -- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AgentOrchestrationConfig.html AgentOrchestrationConfig>+ -- object that indicates if the profiling group is enabled for profiled or+ -- not.+ agentOrchestrationConfig :: Prelude.Maybe AgentOrchestrationConfig,+ -- | The Amazon Resource Name (ARN) identifying the profiling group resource.+ arn :: Prelude.Maybe Prelude.Text,+ -- | The compute platform of the profiling group. If it is set to+ -- @AWSLambda@, then the profiled application runs on AWS Lambda. If it is+ -- set to @Default@, then the profiled application runs on a compute+ -- platform that is not AWS Lambda, such an Amazon EC2 instance, an+ -- on-premises server, or a different platform. The default is @Default@.+ computePlatform :: Prelude.Maybe ComputePlatform,+ -- | The time when the profiling group was created. Specify using the ISO+ -- 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1+ -- millisecond past June 1, 2020 1:15:02 PM UTC.+ createdAt :: Prelude.Maybe Data.ISO8601,+ -- | The name of the profiling group.+ name :: Prelude.Maybe Prelude.Text,+ -- | A+ -- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingStatus.html ProfilingStatus>+ -- object that includes information about the last time a profile agent+ -- pinged back, the last time a profile was received, and the aggregation+ -- period and start time for the most recent aggregated profile.+ profilingStatus :: Prelude.Maybe ProfilingStatus,+ -- | A list of the tags that belong to this profiling group.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The date and time when the profiling group was last updated. Specify+ -- using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z+ -- represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.+ updatedAt :: Prelude.Maybe Data.ISO8601+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ProfilingGroupDescription' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'agentOrchestrationConfig', 'profilingGroupDescription_agentOrchestrationConfig' - An+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AgentOrchestrationConfig.html AgentOrchestrationConfig>+-- object that indicates if the profiling group is enabled for profiled or+-- not.+--+-- 'arn', 'profilingGroupDescription_arn' - The Amazon Resource Name (ARN) identifying the profiling group resource.+--+-- 'computePlatform', 'profilingGroupDescription_computePlatform' - The compute platform of the profiling group. If it is set to+-- @AWSLambda@, then the profiled application runs on AWS Lambda. If it is+-- set to @Default@, then the profiled application runs on a compute+-- platform that is not AWS Lambda, such an Amazon EC2 instance, an+-- on-premises server, or a different platform. The default is @Default@.+--+-- 'createdAt', 'profilingGroupDescription_createdAt' - The time when the profiling group was created. Specify using the ISO+-- 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1+-- millisecond past June 1, 2020 1:15:02 PM UTC.+--+-- 'name', 'profilingGroupDescription_name' - The name of the profiling group.+--+-- 'profilingStatus', 'profilingGroupDescription_profilingStatus' - A+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingStatus.html ProfilingStatus>+-- object that includes information about the last time a profile agent+-- pinged back, the last time a profile was received, and the aggregation+-- period and start time for the most recent aggregated profile.+--+-- 'tags', 'profilingGroupDescription_tags' - A list of the tags that belong to this profiling group.+--+-- 'updatedAt', 'profilingGroupDescription_updatedAt' - The date and time when the profiling group was last updated. Specify+-- using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z+-- represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.+newProfilingGroupDescription ::+ ProfilingGroupDescription+newProfilingGroupDescription =+ ProfilingGroupDescription'+ { agentOrchestrationConfig =+ Prelude.Nothing,+ arn = Prelude.Nothing,+ computePlatform = Prelude.Nothing,+ createdAt = Prelude.Nothing,+ name = Prelude.Nothing,+ profilingStatus = Prelude.Nothing,+ tags = Prelude.Nothing,+ updatedAt = Prelude.Nothing+ }++-- | An+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AgentOrchestrationConfig.html AgentOrchestrationConfig>+-- object that indicates if the profiling group is enabled for profiled or+-- not.+profilingGroupDescription_agentOrchestrationConfig :: Lens.Lens' ProfilingGroupDescription (Prelude.Maybe AgentOrchestrationConfig)+profilingGroupDescription_agentOrchestrationConfig = Lens.lens (\ProfilingGroupDescription' {agentOrchestrationConfig} -> agentOrchestrationConfig) (\s@ProfilingGroupDescription' {} a -> s {agentOrchestrationConfig = a} :: ProfilingGroupDescription)++-- | The Amazon Resource Name (ARN) identifying the profiling group resource.+profilingGroupDescription_arn :: Lens.Lens' ProfilingGroupDescription (Prelude.Maybe Prelude.Text)+profilingGroupDescription_arn = Lens.lens (\ProfilingGroupDescription' {arn} -> arn) (\s@ProfilingGroupDescription' {} a -> s {arn = a} :: ProfilingGroupDescription)++-- | The compute platform of the profiling group. If it is set to+-- @AWSLambda@, then the profiled application runs on AWS Lambda. If it is+-- set to @Default@, then the profiled application runs on a compute+-- platform that is not AWS Lambda, such an Amazon EC2 instance, an+-- on-premises server, or a different platform. The default is @Default@.+profilingGroupDescription_computePlatform :: Lens.Lens' ProfilingGroupDescription (Prelude.Maybe ComputePlatform)+profilingGroupDescription_computePlatform = Lens.lens (\ProfilingGroupDescription' {computePlatform} -> computePlatform) (\s@ProfilingGroupDescription' {} a -> s {computePlatform = a} :: ProfilingGroupDescription)++-- | The time when the profiling group was created. Specify using the ISO+-- 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1+-- millisecond past June 1, 2020 1:15:02 PM UTC.+profilingGroupDescription_createdAt :: Lens.Lens' ProfilingGroupDescription (Prelude.Maybe Prelude.UTCTime)+profilingGroupDescription_createdAt = Lens.lens (\ProfilingGroupDescription' {createdAt} -> createdAt) (\s@ProfilingGroupDescription' {} a -> s {createdAt = a} :: ProfilingGroupDescription) Prelude.. Lens.mapping Data._Time++-- | The name of the profiling group.+profilingGroupDescription_name :: Lens.Lens' ProfilingGroupDescription (Prelude.Maybe Prelude.Text)+profilingGroupDescription_name = Lens.lens (\ProfilingGroupDescription' {name} -> name) (\s@ProfilingGroupDescription' {} a -> s {name = a} :: ProfilingGroupDescription)++-- | A+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingStatus.html ProfilingStatus>+-- object that includes information about the last time a profile agent+-- pinged back, the last time a profile was received, and the aggregation+-- period and start time for the most recent aggregated profile.+profilingGroupDescription_profilingStatus :: Lens.Lens' ProfilingGroupDescription (Prelude.Maybe ProfilingStatus)+profilingGroupDescription_profilingStatus = Lens.lens (\ProfilingGroupDescription' {profilingStatus} -> profilingStatus) (\s@ProfilingGroupDescription' {} a -> s {profilingStatus = a} :: ProfilingGroupDescription)++-- | A list of the tags that belong to this profiling group.+profilingGroupDescription_tags :: Lens.Lens' ProfilingGroupDescription (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+profilingGroupDescription_tags = Lens.lens (\ProfilingGroupDescription' {tags} -> tags) (\s@ProfilingGroupDescription' {} a -> s {tags = a} :: ProfilingGroupDescription) Prelude.. Lens.mapping Lens.coerced++-- | The date and time when the profiling group was last updated. Specify+-- using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z+-- represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.+profilingGroupDescription_updatedAt :: Lens.Lens' ProfilingGroupDescription (Prelude.Maybe Prelude.UTCTime)+profilingGroupDescription_updatedAt = Lens.lens (\ProfilingGroupDescription' {updatedAt} -> updatedAt) (\s@ProfilingGroupDescription' {} a -> s {updatedAt = a} :: ProfilingGroupDescription) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON ProfilingGroupDescription where+ parseJSON =+ Data.withObject+ "ProfilingGroupDescription"+ ( \x ->+ ProfilingGroupDescription'+ Prelude.<$> (x Data..:? "agentOrchestrationConfig")+ Prelude.<*> (x Data..:? "arn")+ Prelude.<*> (x Data..:? "computePlatform")+ Prelude.<*> (x Data..:? "createdAt")+ Prelude.<*> (x Data..:? "name")+ Prelude.<*> (x Data..:? "profilingStatus")+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "updatedAt")+ )++instance Prelude.Hashable ProfilingGroupDescription where+ hashWithSalt _salt ProfilingGroupDescription' {..} =+ _salt+ `Prelude.hashWithSalt` agentOrchestrationConfig+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` computePlatform+ `Prelude.hashWithSalt` createdAt+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` profilingStatus+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` updatedAt++instance Prelude.NFData ProfilingGroupDescription where+ rnf ProfilingGroupDescription' {..} =+ Prelude.rnf agentOrchestrationConfig+ `Prelude.seq` Prelude.rnf arn+ `Prelude.seq` Prelude.rnf computePlatform+ `Prelude.seq` Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf profilingStatus+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf updatedAt
+ gen/Amazonka/CodeGuruProfiler/Types/ProfilingStatus.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CodeGuruProfiler.Types.ProfilingStatus+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruProfiler.Types.ProfilingStatus where++import Amazonka.CodeGuruProfiler.Types.AggregatedProfileTime+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++-- | Profiling status includes information about the last time a profile+-- agent pinged back, the last time a profile was received, and the+-- aggregation period and start time for the most recent aggregated+-- profile.+--+-- /See:/ 'newProfilingStatus' smart constructor.+data ProfilingStatus = ProfilingStatus'+ { -- | The date and time when the profiling agent most recently pinged back.+ -- Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z+ -- represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.+ latestAgentOrchestratedAt :: Prelude.Maybe Data.ISO8601,+ -- | The date and time when the most recent profile was received. Specify+ -- using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z+ -- represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.+ latestAgentProfileReportedAt :: Prelude.Maybe Data.ISO8601,+ -- | An+ -- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AggregatedProfileTime.html AggregatedProfileTime>+ -- object that contains the aggregation period and start time for an+ -- aggregated profile.+ latestAggregatedProfile :: Prelude.Maybe AggregatedProfileTime+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ProfilingStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'latestAgentOrchestratedAt', 'profilingStatus_latestAgentOrchestratedAt' - The date and time when the profiling agent most recently pinged back.+-- Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z+-- represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.+--+-- 'latestAgentProfileReportedAt', 'profilingStatus_latestAgentProfileReportedAt' - The date and time when the most recent profile was received. Specify+-- using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z+-- represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.+--+-- 'latestAggregatedProfile', 'profilingStatus_latestAggregatedProfile' - An+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AggregatedProfileTime.html AggregatedProfileTime>+-- object that contains the aggregation period and start time for an+-- aggregated profile.+newProfilingStatus ::+ ProfilingStatus+newProfilingStatus =+ ProfilingStatus'+ { latestAgentOrchestratedAt =+ Prelude.Nothing,+ latestAgentProfileReportedAt = Prelude.Nothing,+ latestAggregatedProfile = Prelude.Nothing+ }++-- | The date and time when the profiling agent most recently pinged back.+-- Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z+-- represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.+profilingStatus_latestAgentOrchestratedAt :: Lens.Lens' ProfilingStatus (Prelude.Maybe Prelude.UTCTime)+profilingStatus_latestAgentOrchestratedAt = Lens.lens (\ProfilingStatus' {latestAgentOrchestratedAt} -> latestAgentOrchestratedAt) (\s@ProfilingStatus' {} a -> s {latestAgentOrchestratedAt = a} :: ProfilingStatus) Prelude.. Lens.mapping Data._Time++-- | The date and time when the most recent profile was received. Specify+-- using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z+-- represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.+profilingStatus_latestAgentProfileReportedAt :: Lens.Lens' ProfilingStatus (Prelude.Maybe Prelude.UTCTime)+profilingStatus_latestAgentProfileReportedAt = Lens.lens (\ProfilingStatus' {latestAgentProfileReportedAt} -> latestAgentProfileReportedAt) (\s@ProfilingStatus' {} a -> s {latestAgentProfileReportedAt = a} :: ProfilingStatus) Prelude.. Lens.mapping Data._Time++-- | An+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AggregatedProfileTime.html AggregatedProfileTime>+-- object that contains the aggregation period and start time for an+-- aggregated profile.+profilingStatus_latestAggregatedProfile :: Lens.Lens' ProfilingStatus (Prelude.Maybe AggregatedProfileTime)+profilingStatus_latestAggregatedProfile = Lens.lens (\ProfilingStatus' {latestAggregatedProfile} -> latestAggregatedProfile) (\s@ProfilingStatus' {} a -> s {latestAggregatedProfile = a} :: ProfilingStatus)++instance Data.FromJSON ProfilingStatus where+ parseJSON =+ Data.withObject+ "ProfilingStatus"+ ( \x ->+ ProfilingStatus'+ Prelude.<$> (x Data..:? "latestAgentOrchestratedAt")+ Prelude.<*> (x Data..:? "latestAgentProfileReportedAt")+ Prelude.<*> (x Data..:? "latestAggregatedProfile")+ )++instance Prelude.Hashable ProfilingStatus where+ hashWithSalt _salt ProfilingStatus' {..} =+ _salt+ `Prelude.hashWithSalt` latestAgentOrchestratedAt+ `Prelude.hashWithSalt` latestAgentProfileReportedAt+ `Prelude.hashWithSalt` latestAggregatedProfile++instance Prelude.NFData ProfilingStatus where+ rnf ProfilingStatus' {..} =+ Prelude.rnf latestAgentOrchestratedAt+ `Prelude.seq` Prelude.rnf latestAgentProfileReportedAt+ `Prelude.seq` Prelude.rnf latestAggregatedProfile
+ gen/Amazonka/CodeGuruProfiler/Types/Recommendation.hs view
@@ -0,0 +1,172 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CodeGuruProfiler.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.CodeGuruProfiler.Types.Recommendation where++import Amazonka.CodeGuruProfiler.Types.Match+import Amazonka.CodeGuruProfiler.Types.Pattern+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 potential improvement that was found from analyzing the profiling+-- data.+--+-- /See:/ 'newRecommendation' smart constructor.+data Recommendation = Recommendation'+ { -- | How many different places in the profile graph triggered a match.+ allMatchesCount :: Prelude.Int,+ -- | How much of the total sample count is potentially affected.+ allMatchesSum :: Prelude.Double,+ -- | End time of the profile that was used by this analysis. This is+ -- specified using the ISO 8601 format. For example,+ -- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+ -- 1:15:02 PM UTC.+ endTime :: Data.ISO8601,+ -- | The pattern that analysis recognized in the profile to make this+ -- recommendation.+ pattern' :: Pattern,+ -- | The start time of the profile that was used by this analysis. This is+ -- specified using the ISO 8601 format. For example,+ -- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+ -- 1:15:02 PM UTC.+ startTime :: Data.ISO8601,+ -- | List of the matches with most impact.+ topMatches :: [Match]+ }+ 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:+--+-- 'allMatchesCount', 'recommendation_allMatchesCount' - How many different places in the profile graph triggered a match.+--+-- 'allMatchesSum', 'recommendation_allMatchesSum' - How much of the total sample count is potentially affected.+--+-- 'endTime', 'recommendation_endTime' - End time of the profile that was used by this analysis. This is+-- specified using the ISO 8601 format. For example,+-- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+-- 1:15:02 PM UTC.+--+-- 'pattern'', 'recommendation_pattern' - The pattern that analysis recognized in the profile to make this+-- recommendation.+--+-- 'startTime', 'recommendation_startTime' - The start time of the profile that was used by this analysis. This is+-- specified using the ISO 8601 format. For example,+-- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+-- 1:15:02 PM UTC.+--+-- 'topMatches', 'recommendation_topMatches' - List of the matches with most impact.+newRecommendation ::+ -- | 'allMatchesCount'+ Prelude.Int ->+ -- | 'allMatchesSum'+ Prelude.Double ->+ -- | 'endTime'+ Prelude.UTCTime ->+ -- | 'pattern''+ Pattern ->+ -- | 'startTime'+ Prelude.UTCTime ->+ Recommendation+newRecommendation+ pAllMatchesCount_+ pAllMatchesSum_+ pEndTime_+ pPattern_+ pStartTime_ =+ Recommendation'+ { allMatchesCount =+ pAllMatchesCount_,+ allMatchesSum = pAllMatchesSum_,+ endTime = Data._Time Lens.# pEndTime_,+ pattern' = pPattern_,+ startTime = Data._Time Lens.# pStartTime_,+ topMatches = Prelude.mempty+ }++-- | How many different places in the profile graph triggered a match.+recommendation_allMatchesCount :: Lens.Lens' Recommendation Prelude.Int+recommendation_allMatchesCount = Lens.lens (\Recommendation' {allMatchesCount} -> allMatchesCount) (\s@Recommendation' {} a -> s {allMatchesCount = a} :: Recommendation)++-- | How much of the total sample count is potentially affected.+recommendation_allMatchesSum :: Lens.Lens' Recommendation Prelude.Double+recommendation_allMatchesSum = Lens.lens (\Recommendation' {allMatchesSum} -> allMatchesSum) (\s@Recommendation' {} a -> s {allMatchesSum = a} :: Recommendation)++-- | End time of the profile that was used by this analysis. This is+-- specified using the ISO 8601 format. For example,+-- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+-- 1:15:02 PM UTC.+recommendation_endTime :: Lens.Lens' Recommendation Prelude.UTCTime+recommendation_endTime = Lens.lens (\Recommendation' {endTime} -> endTime) (\s@Recommendation' {} a -> s {endTime = a} :: Recommendation) Prelude.. Data._Time++-- | The pattern that analysis recognized in the profile to make this+-- recommendation.+recommendation_pattern :: Lens.Lens' Recommendation Pattern+recommendation_pattern = Lens.lens (\Recommendation' {pattern'} -> pattern') (\s@Recommendation' {} a -> s {pattern' = a} :: Recommendation)++-- | The start time of the profile that was used by this analysis. This is+-- specified using the ISO 8601 format. For example,+-- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+-- 1:15:02 PM UTC.+recommendation_startTime :: Lens.Lens' Recommendation Prelude.UTCTime+recommendation_startTime = Lens.lens (\Recommendation' {startTime} -> startTime) (\s@Recommendation' {} a -> s {startTime = a} :: Recommendation) Prelude.. Data._Time++-- | List of the matches with most impact.+recommendation_topMatches :: Lens.Lens' Recommendation [Match]+recommendation_topMatches = Lens.lens (\Recommendation' {topMatches} -> topMatches) (\s@Recommendation' {} a -> s {topMatches = a} :: Recommendation) Prelude.. Lens.coerced++instance Data.FromJSON Recommendation where+ parseJSON =+ Data.withObject+ "Recommendation"+ ( \x ->+ Recommendation'+ Prelude.<$> (x Data..: "allMatchesCount")+ Prelude.<*> (x Data..: "allMatchesSum")+ Prelude.<*> (x Data..: "endTime")+ Prelude.<*> (x Data..: "pattern")+ Prelude.<*> (x Data..: "startTime")+ Prelude.<*> (x Data..:? "topMatches" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable Recommendation where+ hashWithSalt _salt Recommendation' {..} =+ _salt+ `Prelude.hashWithSalt` allMatchesCount+ `Prelude.hashWithSalt` allMatchesSum+ `Prelude.hashWithSalt` endTime+ `Prelude.hashWithSalt` pattern'+ `Prelude.hashWithSalt` startTime+ `Prelude.hashWithSalt` topMatches++instance Prelude.NFData Recommendation where+ rnf Recommendation' {..} =+ Prelude.rnf allMatchesCount+ `Prelude.seq` Prelude.rnf allMatchesSum+ `Prelude.seq` Prelude.rnf endTime+ `Prelude.seq` Prelude.rnf pattern'+ `Prelude.seq` Prelude.rnf startTime+ `Prelude.seq` Prelude.rnf topMatches
+ gen/Amazonka/CodeGuruProfiler/Types/TimestampStructure.hs view
@@ -0,0 +1,80 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CodeGuruProfiler.Types.TimestampStructure+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruProfiler.Types.TimestampStructure 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 data type that contains a @Timestamp@ object. This is specified using+-- the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1+-- millisecond past June 1, 2020 1:15:02 PM UTC.+--+-- /See:/ 'newTimestampStructure' smart constructor.+data TimestampStructure = TimestampStructure'+ { -- | A @Timestamp@. This is specified using the ISO 8601 format. For example,+ -- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+ -- 1:15:02 PM UTC.+ value :: Data.ISO8601+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TimestampStructure' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'timestampStructure_value' - A @Timestamp@. This is specified using the ISO 8601 format. For example,+-- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+-- 1:15:02 PM UTC.+newTimestampStructure ::+ -- | 'value'+ Prelude.UTCTime ->+ TimestampStructure+newTimestampStructure pValue_ =+ TimestampStructure'+ { value =+ Data._Time Lens.# pValue_+ }++-- | A @Timestamp@. This is specified using the ISO 8601 format. For example,+-- 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020+-- 1:15:02 PM UTC.+timestampStructure_value :: Lens.Lens' TimestampStructure Prelude.UTCTime+timestampStructure_value = Lens.lens (\TimestampStructure' {value} -> value) (\s@TimestampStructure' {} a -> s {value = a} :: TimestampStructure) Prelude.. Data._Time++instance Data.FromJSON TimestampStructure where+ parseJSON =+ Data.withObject+ "TimestampStructure"+ ( \x ->+ TimestampStructure' Prelude.<$> (x Data..: "value")+ )++instance Prelude.Hashable TimestampStructure where+ hashWithSalt _salt TimestampStructure' {..} =+ _salt `Prelude.hashWithSalt` value++instance Prelude.NFData TimestampStructure where+ rnf TimestampStructure' {..} = Prelude.rnf value
+ gen/Amazonka/CodeGuruProfiler/Types/UserFeedback.hs view
@@ -0,0 +1,73 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CodeGuruProfiler.Types.UserFeedback+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruProfiler.Types.UserFeedback where++import Amazonka.CodeGuruProfiler.Types.FeedbackType+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Feedback that can be submitted for each instance of an anomaly by the+-- user. Feedback is be used for improvements in generating recommendations+-- for the application.+--+-- /See:/ 'newUserFeedback' smart constructor.+data UserFeedback = UserFeedback'+ { -- | Optional @Positive@ or @Negative@ feedback submitted by the user about+ -- whether the recommendation is useful or not.+ type' :: FeedbackType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UserFeedback' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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'', 'userFeedback_type' - Optional @Positive@ or @Negative@ feedback submitted by the user about+-- whether the recommendation is useful or not.+newUserFeedback ::+ -- | 'type''+ FeedbackType ->+ UserFeedback+newUserFeedback pType_ =+ UserFeedback' {type' = pType_}++-- | Optional @Positive@ or @Negative@ feedback submitted by the user about+-- whether the recommendation is useful or not.+userFeedback_type :: Lens.Lens' UserFeedback FeedbackType+userFeedback_type = Lens.lens (\UserFeedback' {type'} -> type') (\s@UserFeedback' {} a -> s {type' = a} :: UserFeedback)++instance Data.FromJSON UserFeedback where+ parseJSON =+ Data.withObject+ "UserFeedback"+ (\x -> UserFeedback' Prelude.<$> (x Data..: "type"))++instance Prelude.Hashable UserFeedback where+ hashWithSalt _salt UserFeedback' {..} =+ _salt `Prelude.hashWithSalt` type'++instance Prelude.NFData UserFeedback where+ rnf UserFeedback' {..} = Prelude.rnf type'
+ gen/Amazonka/CodeGuruProfiler/UntagResource.hs view
@@ -0,0 +1,167 @@+{-# 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.CodeGuruProfiler.UntagResource+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Use to remove one or more tags from a resource.+module Amazonka.CodeGuruProfiler.UntagResource+ ( -- * Creating a Request+ UntagResource (..),+ newUntagResource,++ -- * Request Lenses+ untagResource_resourceArn,+ untagResource_tagKeys,++ -- * Destructuring the Response+ UntagResourceResponse (..),+ newUntagResourceResponse,++ -- * Response Lenses+ untagResourceResponse_httpStatus,+ )+where++import Amazonka.CodeGuruProfiler.Types+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+ { -- | The Amazon Resource Name (ARN) of the resource that contains the tags to+ -- remove.+ resourceArn :: Prelude.Text,+ -- | A list of tag keys. Existing tags of resources with keys in this list+ -- are removed from the specified resource.+ tagKeys :: [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'untagResource_resourceArn' - The Amazon Resource Name (ARN) of the resource that contains the tags to+-- remove.+--+-- 'tagKeys', 'untagResource_tagKeys' - A list of tag keys. Existing tags of resources with keys in this list+-- are removed from the specified resource.+newUntagResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ UntagResource+newUntagResource pResourceArn_ =+ UntagResource'+ { resourceArn = pResourceArn_,+ tagKeys = Prelude.mempty+ }++-- | The Amazon Resource Name (ARN) of the resource that contains the tags to+-- remove.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | A list of tag keys. Existing tags of resources with keys in this list+-- are removed from the specified resource.+untagResource_tagKeys :: Lens.Lens' UntagResource [Prelude.Text]+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++instance Core.AWSRequest UntagResource where+ type+ AWSResponse UntagResource =+ UntagResourceResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ UntagResourceResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UntagResource where+ hashWithSalt _salt UntagResource' {..} =+ _salt+ `Prelude.hashWithSalt` resourceArn+ `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+ rnf UntagResource' {..} =+ Prelude.rnf resourceArn+ `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath UntagResource where+ toPath UntagResource' {..} =+ Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery UntagResource where+ toQuery UntagResource' {..} =+ Prelude.mconcat+ ["tagKeys" Data.=: Data.toQueryList "member" tagKeys]++-- | /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'untagResourceResponse_httpStatus' - The response's http status code.+newUntagResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UntagResourceResponse+newUntagResourceResponse pHttpStatus_ =+ UntagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+untagResourceResponse_httpStatus :: Lens.Lens' UntagResourceResponse Prelude.Int+untagResourceResponse_httpStatus = Lens.lens (\UntagResourceResponse' {httpStatus} -> httpStatus) (\s@UntagResourceResponse' {} a -> s {httpStatus = a} :: UntagResourceResponse)++instance Prelude.NFData UntagResourceResponse where+ rnf UntagResourceResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/CodeGuruProfiler/UpdateProfilingGroup.hs view
@@ -0,0 +1,208 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CodeGuruProfiler.UpdateProfilingGroup+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a profiling group.+module Amazonka.CodeGuruProfiler.UpdateProfilingGroup+ ( -- * Creating a Request+ UpdateProfilingGroup (..),+ newUpdateProfilingGroup,++ -- * Request Lenses+ updateProfilingGroup_agentOrchestrationConfig,+ updateProfilingGroup_profilingGroupName,++ -- * Destructuring the Response+ UpdateProfilingGroupResponse (..),+ newUpdateProfilingGroupResponse,++ -- * Response Lenses+ updateProfilingGroupResponse_httpStatus,+ updateProfilingGroupResponse_profilingGroup,+ )+where++import Amazonka.CodeGuruProfiler.Types+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The structure representing the updateProfilingGroupRequest.+--+-- /See:/ 'newUpdateProfilingGroup' smart constructor.+data UpdateProfilingGroup = UpdateProfilingGroup'+ { -- | Specifies whether profiling is enabled or disabled for a profiling+ -- group.+ agentOrchestrationConfig :: AgentOrchestrationConfig,+ -- | The name of the profiling group to update.+ profilingGroupName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateProfilingGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'agentOrchestrationConfig', 'updateProfilingGroup_agentOrchestrationConfig' - Specifies whether profiling is enabled or disabled for a profiling+-- group.+--+-- 'profilingGroupName', 'updateProfilingGroup_profilingGroupName' - The name of the profiling group to update.+newUpdateProfilingGroup ::+ -- | 'agentOrchestrationConfig'+ AgentOrchestrationConfig ->+ -- | 'profilingGroupName'+ Prelude.Text ->+ UpdateProfilingGroup+newUpdateProfilingGroup+ pAgentOrchestrationConfig_+ pProfilingGroupName_ =+ UpdateProfilingGroup'+ { agentOrchestrationConfig =+ pAgentOrchestrationConfig_,+ profilingGroupName = pProfilingGroupName_+ }++-- | Specifies whether profiling is enabled or disabled for a profiling+-- group.+updateProfilingGroup_agentOrchestrationConfig :: Lens.Lens' UpdateProfilingGroup AgentOrchestrationConfig+updateProfilingGroup_agentOrchestrationConfig = Lens.lens (\UpdateProfilingGroup' {agentOrchestrationConfig} -> agentOrchestrationConfig) (\s@UpdateProfilingGroup' {} a -> s {agentOrchestrationConfig = a} :: UpdateProfilingGroup)++-- | The name of the profiling group to update.+updateProfilingGroup_profilingGroupName :: Lens.Lens' UpdateProfilingGroup Prelude.Text+updateProfilingGroup_profilingGroupName = Lens.lens (\UpdateProfilingGroup' {profilingGroupName} -> profilingGroupName) (\s@UpdateProfilingGroup' {} a -> s {profilingGroupName = a} :: UpdateProfilingGroup)++instance Core.AWSRequest UpdateProfilingGroup where+ type+ AWSResponse UpdateProfilingGroup =+ UpdateProfilingGroupResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateProfilingGroupResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable UpdateProfilingGroup where+ hashWithSalt _salt UpdateProfilingGroup' {..} =+ _salt+ `Prelude.hashWithSalt` agentOrchestrationConfig+ `Prelude.hashWithSalt` profilingGroupName++instance Prelude.NFData UpdateProfilingGroup where+ rnf UpdateProfilingGroup' {..} =+ Prelude.rnf agentOrchestrationConfig+ `Prelude.seq` Prelude.rnf profilingGroupName++instance Data.ToHeaders UpdateProfilingGroup where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateProfilingGroup where+ toJSON UpdateProfilingGroup' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ( "agentOrchestrationConfig"+ Data..= agentOrchestrationConfig+ )+ ]+ )++instance Data.ToPath UpdateProfilingGroup where+ toPath UpdateProfilingGroup' {..} =+ Prelude.mconcat+ ["/profilingGroups/", Data.toBS profilingGroupName]++instance Data.ToQuery UpdateProfilingGroup where+ toQuery = Prelude.const Prelude.mempty++-- | The structure representing the updateProfilingGroupResponse.+--+-- /See:/ 'newUpdateProfilingGroupResponse' smart constructor.+data UpdateProfilingGroupResponse = UpdateProfilingGroupResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | A+ -- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html ProfilingGroupDescription>+ -- that contains information about the returned updated profiling group.+ profilingGroup :: ProfilingGroupDescription+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateProfilingGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateProfilingGroupResponse_httpStatus' - The response's http status code.+--+-- 'profilingGroup', 'updateProfilingGroupResponse_profilingGroup' - A+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html ProfilingGroupDescription>+-- that contains information about the returned updated profiling group.+newUpdateProfilingGroupResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'profilingGroup'+ ProfilingGroupDescription ->+ UpdateProfilingGroupResponse+newUpdateProfilingGroupResponse+ pHttpStatus_+ pProfilingGroup_ =+ UpdateProfilingGroupResponse'+ { httpStatus =+ pHttpStatus_,+ profilingGroup = pProfilingGroup_+ }++-- | The response's http status code.+updateProfilingGroupResponse_httpStatus :: Lens.Lens' UpdateProfilingGroupResponse Prelude.Int+updateProfilingGroupResponse_httpStatus = Lens.lens (\UpdateProfilingGroupResponse' {httpStatus} -> httpStatus) (\s@UpdateProfilingGroupResponse' {} a -> s {httpStatus = a} :: UpdateProfilingGroupResponse)++-- | A+-- <https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html ProfilingGroupDescription>+-- that contains information about the returned updated profiling group.+updateProfilingGroupResponse_profilingGroup :: Lens.Lens' UpdateProfilingGroupResponse ProfilingGroupDescription+updateProfilingGroupResponse_profilingGroup = Lens.lens (\UpdateProfilingGroupResponse' {profilingGroup} -> profilingGroup) (\s@UpdateProfilingGroupResponse' {} a -> s {profilingGroup = a} :: UpdateProfilingGroupResponse)++instance Prelude.NFData UpdateProfilingGroupResponse where+ rnf UpdateProfilingGroupResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf profilingGroup
+ gen/Amazonka/CodeGuruProfiler/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.CodeGuruProfiler.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.CodeGuruProfiler.Waiters where++import Amazonka.CodeGuruProfiler.Lens+import Amazonka.CodeGuruProfiler.Types+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
+ 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.CodeGuruProfiler+import Test.Amazonka.CodeGuruProfiler.Internal+import Test.Tasty++main :: IO ()+main =+ defaultMain $+ testGroup+ "CodeGuruProfiler"+ [ testGroup "tests" tests,+ testGroup "fixtures" fixtures+ ]
+ test/Test/Amazonka/CodeGuruProfiler.hs view
@@ -0,0 +1,20 @@+-- |+-- Module : Test.Amazonka.CodeGuruProfiler+-- Copyright : (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.CodeGuruProfiler+ ( tests,+ fixtures,+ )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/CodeGuruProfiler/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module : Test.Amazonka.CodeGuruProfiler.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.CodeGuruProfiler.Internal where
+ test/Test/Amazonka/Gen/CodeGuruProfiler.hs view
@@ -0,0 +1,498 @@+{-# 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.CodeGuruProfiler+-- Copyright : (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.CodeGuruProfiler where++import Amazonka.CodeGuruProfiler+import qualified Data.Proxy as Proxy+import Test.Amazonka.CodeGuruProfiler.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"+-- [ requestAddNotificationChannels $+-- newAddNotificationChannels+--+-- , requestBatchGetFrameMetricData $+-- newBatchGetFrameMetricData+--+-- , requestConfigureAgent $+-- newConfigureAgent+--+-- , requestCreateProfilingGroup $+-- newCreateProfilingGroup+--+-- , requestDeleteProfilingGroup $+-- newDeleteProfilingGroup+--+-- , requestDescribeProfilingGroup $+-- newDescribeProfilingGroup+--+-- , requestGetFindingsReportAccountSummary $+-- newGetFindingsReportAccountSummary+--+-- , requestGetNotificationConfiguration $+-- newGetNotificationConfiguration+--+-- , requestGetPolicy $+-- newGetPolicy+--+-- , requestGetProfile $+-- newGetProfile+--+-- , requestGetRecommendations $+-- newGetRecommendations+--+-- , requestListFindingsReports $+-- newListFindingsReports+--+-- , requestListProfileTimes $+-- newListProfileTimes+--+-- , requestListProfilingGroups $+-- newListProfilingGroups+--+-- , requestListTagsForResource $+-- newListTagsForResource+--+-- , requestPostAgentProfile $+-- newPostAgentProfile+--+-- , requestPutPermission $+-- newPutPermission+--+-- , requestRemoveNotificationChannel $+-- newRemoveNotificationChannel+--+-- , requestRemovePermission $+-- newRemovePermission+--+-- , requestSubmitFeedback $+-- newSubmitFeedback+--+-- , requestTagResource $+-- newTagResource+--+-- , requestUntagResource $+-- newUntagResource+--+-- , requestUpdateProfilingGroup $+-- newUpdateProfilingGroup+--+-- ]++-- , testGroup "response"+-- [ responseAddNotificationChannels $+-- newAddNotificationChannelsResponse+--+-- , responseBatchGetFrameMetricData $+-- newBatchGetFrameMetricDataResponse+--+-- , responseConfigureAgent $+-- newConfigureAgentResponse+--+-- , responseCreateProfilingGroup $+-- newCreateProfilingGroupResponse+--+-- , responseDeleteProfilingGroup $+-- newDeleteProfilingGroupResponse+--+-- , responseDescribeProfilingGroup $+-- newDescribeProfilingGroupResponse+--+-- , responseGetFindingsReportAccountSummary $+-- newGetFindingsReportAccountSummaryResponse+--+-- , responseGetNotificationConfiguration $+-- newGetNotificationConfigurationResponse+--+-- , responseGetPolicy $+-- newGetPolicyResponse+--+-- , responseGetProfile $+-- newGetProfileResponse+--+-- , responseGetRecommendations $+-- newGetRecommendationsResponse+--+-- , responseListFindingsReports $+-- newListFindingsReportsResponse+--+-- , responseListProfileTimes $+-- newListProfileTimesResponse+--+-- , responseListProfilingGroups $+-- newListProfilingGroupsResponse+--+-- , responseListTagsForResource $+-- newListTagsForResourceResponse+--+-- , responsePostAgentProfile $+-- newPostAgentProfileResponse+--+-- , responsePutPermission $+-- newPutPermissionResponse+--+-- , responseRemoveNotificationChannel $+-- newRemoveNotificationChannelResponse+--+-- , responseRemovePermission $+-- newRemovePermissionResponse+--+-- , responseSubmitFeedback $+-- newSubmitFeedbackResponse+--+-- , responseTagResource $+-- newTagResourceResponse+--+-- , responseUntagResource $+-- newUntagResourceResponse+--+-- , responseUpdateProfilingGroup $+-- newUpdateProfilingGroupResponse+--+-- ]+-- ]++-- Requests++requestAddNotificationChannels :: AddNotificationChannels -> TestTree+requestAddNotificationChannels =+ req+ "AddNotificationChannels"+ "fixture/AddNotificationChannels.yaml"++requestBatchGetFrameMetricData :: BatchGetFrameMetricData -> TestTree+requestBatchGetFrameMetricData =+ req+ "BatchGetFrameMetricData"+ "fixture/BatchGetFrameMetricData.yaml"++requestConfigureAgent :: ConfigureAgent -> TestTree+requestConfigureAgent =+ req+ "ConfigureAgent"+ "fixture/ConfigureAgent.yaml"++requestCreateProfilingGroup :: CreateProfilingGroup -> TestTree+requestCreateProfilingGroup =+ req+ "CreateProfilingGroup"+ "fixture/CreateProfilingGroup.yaml"++requestDeleteProfilingGroup :: DeleteProfilingGroup -> TestTree+requestDeleteProfilingGroup =+ req+ "DeleteProfilingGroup"+ "fixture/DeleteProfilingGroup.yaml"++requestDescribeProfilingGroup :: DescribeProfilingGroup -> TestTree+requestDescribeProfilingGroup =+ req+ "DescribeProfilingGroup"+ "fixture/DescribeProfilingGroup.yaml"++requestGetFindingsReportAccountSummary :: GetFindingsReportAccountSummary -> TestTree+requestGetFindingsReportAccountSummary =+ req+ "GetFindingsReportAccountSummary"+ "fixture/GetFindingsReportAccountSummary.yaml"++requestGetNotificationConfiguration :: GetNotificationConfiguration -> TestTree+requestGetNotificationConfiguration =+ req+ "GetNotificationConfiguration"+ "fixture/GetNotificationConfiguration.yaml"++requestGetPolicy :: GetPolicy -> TestTree+requestGetPolicy =+ req+ "GetPolicy"+ "fixture/GetPolicy.yaml"++requestGetProfile :: GetProfile -> TestTree+requestGetProfile =+ req+ "GetProfile"+ "fixture/GetProfile.yaml"++requestGetRecommendations :: GetRecommendations -> TestTree+requestGetRecommendations =+ req+ "GetRecommendations"+ "fixture/GetRecommendations.yaml"++requestListFindingsReports :: ListFindingsReports -> TestTree+requestListFindingsReports =+ req+ "ListFindingsReports"+ "fixture/ListFindingsReports.yaml"++requestListProfileTimes :: ListProfileTimes -> TestTree+requestListProfileTimes =+ req+ "ListProfileTimes"+ "fixture/ListProfileTimes.yaml"++requestListProfilingGroups :: ListProfilingGroups -> TestTree+requestListProfilingGroups =+ req+ "ListProfilingGroups"+ "fixture/ListProfilingGroups.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+ req+ "ListTagsForResource"+ "fixture/ListTagsForResource.yaml"++requestPostAgentProfile :: PostAgentProfile -> TestTree+requestPostAgentProfile =+ req+ "PostAgentProfile"+ "fixture/PostAgentProfile.yaml"++requestPutPermission :: PutPermission -> TestTree+requestPutPermission =+ req+ "PutPermission"+ "fixture/PutPermission.yaml"++requestRemoveNotificationChannel :: RemoveNotificationChannel -> TestTree+requestRemoveNotificationChannel =+ req+ "RemoveNotificationChannel"+ "fixture/RemoveNotificationChannel.yaml"++requestRemovePermission :: RemovePermission -> TestTree+requestRemovePermission =+ req+ "RemovePermission"+ "fixture/RemovePermission.yaml"++requestSubmitFeedback :: SubmitFeedback -> TestTree+requestSubmitFeedback =+ req+ "SubmitFeedback"+ "fixture/SubmitFeedback.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+ req+ "TagResource"+ "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+ req+ "UntagResource"+ "fixture/UntagResource.yaml"++requestUpdateProfilingGroup :: UpdateProfilingGroup -> TestTree+requestUpdateProfilingGroup =+ req+ "UpdateProfilingGroup"+ "fixture/UpdateProfilingGroup.yaml"++-- Responses++responseAddNotificationChannels :: AddNotificationChannelsResponse -> TestTree+responseAddNotificationChannels =+ res+ "AddNotificationChannelsResponse"+ "fixture/AddNotificationChannelsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy AddNotificationChannels)++responseBatchGetFrameMetricData :: BatchGetFrameMetricDataResponse -> TestTree+responseBatchGetFrameMetricData =+ res+ "BatchGetFrameMetricDataResponse"+ "fixture/BatchGetFrameMetricDataResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy BatchGetFrameMetricData)++responseConfigureAgent :: ConfigureAgentResponse -> TestTree+responseConfigureAgent =+ res+ "ConfigureAgentResponse"+ "fixture/ConfigureAgentResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ConfigureAgent)++responseCreateProfilingGroup :: CreateProfilingGroupResponse -> TestTree+responseCreateProfilingGroup =+ res+ "CreateProfilingGroupResponse"+ "fixture/CreateProfilingGroupResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateProfilingGroup)++responseDeleteProfilingGroup :: DeleteProfilingGroupResponse -> TestTree+responseDeleteProfilingGroup =+ res+ "DeleteProfilingGroupResponse"+ "fixture/DeleteProfilingGroupResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteProfilingGroup)++responseDescribeProfilingGroup :: DescribeProfilingGroupResponse -> TestTree+responseDescribeProfilingGroup =+ res+ "DescribeProfilingGroupResponse"+ "fixture/DescribeProfilingGroupResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeProfilingGroup)++responseGetFindingsReportAccountSummary :: GetFindingsReportAccountSummaryResponse -> TestTree+responseGetFindingsReportAccountSummary =+ res+ "GetFindingsReportAccountSummaryResponse"+ "fixture/GetFindingsReportAccountSummaryResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetFindingsReportAccountSummary)++responseGetNotificationConfiguration :: GetNotificationConfigurationResponse -> TestTree+responseGetNotificationConfiguration =+ res+ "GetNotificationConfigurationResponse"+ "fixture/GetNotificationConfigurationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetNotificationConfiguration)++responseGetPolicy :: GetPolicyResponse -> TestTree+responseGetPolicy =+ res+ "GetPolicyResponse"+ "fixture/GetPolicyResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetPolicy)++responseGetProfile :: GetProfileResponse -> TestTree+responseGetProfile =+ res+ "GetProfileResponse"+ "fixture/GetProfileResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetProfile)++responseGetRecommendations :: GetRecommendationsResponse -> TestTree+responseGetRecommendations =+ res+ "GetRecommendationsResponse"+ "fixture/GetRecommendationsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetRecommendations)++responseListFindingsReports :: ListFindingsReportsResponse -> TestTree+responseListFindingsReports =+ res+ "ListFindingsReportsResponse"+ "fixture/ListFindingsReportsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListFindingsReports)++responseListProfileTimes :: ListProfileTimesResponse -> TestTree+responseListProfileTimes =+ res+ "ListProfileTimesResponse"+ "fixture/ListProfileTimesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListProfileTimes)++responseListProfilingGroups :: ListProfilingGroupsResponse -> TestTree+responseListProfilingGroups =+ res+ "ListProfilingGroupsResponse"+ "fixture/ListProfilingGroupsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListProfilingGroups)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+ res+ "ListTagsForResourceResponse"+ "fixture/ListTagsForResourceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responsePostAgentProfile :: PostAgentProfileResponse -> TestTree+responsePostAgentProfile =+ res+ "PostAgentProfileResponse"+ "fixture/PostAgentProfileResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PostAgentProfile)++responsePutPermission :: PutPermissionResponse -> TestTree+responsePutPermission =+ res+ "PutPermissionResponse"+ "fixture/PutPermissionResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutPermission)++responseRemoveNotificationChannel :: RemoveNotificationChannelResponse -> TestTree+responseRemoveNotificationChannel =+ res+ "RemoveNotificationChannelResponse"+ "fixture/RemoveNotificationChannelResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy RemoveNotificationChannel)++responseRemovePermission :: RemovePermissionResponse -> TestTree+responseRemovePermission =+ res+ "RemovePermissionResponse"+ "fixture/RemovePermissionResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy RemovePermission)++responseSubmitFeedback :: SubmitFeedbackResponse -> TestTree+responseSubmitFeedback =+ res+ "SubmitFeedbackResponse"+ "fixture/SubmitFeedbackResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy SubmitFeedback)++responseTagResource :: TagResourceResponse -> TestTree+responseTagResource =+ res+ "TagResourceResponse"+ "fixture/TagResourceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy TagResource)++responseUntagResource :: UntagResourceResponse -> TestTree+responseUntagResource =+ res+ "UntagResourceResponse"+ "fixture/UntagResourceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UntagResource)++responseUpdateProfilingGroup :: UpdateProfilingGroupResponse -> TestTree+responseUpdateProfilingGroup =+ res+ "UpdateProfilingGroupResponse"+ "fixture/UpdateProfilingGroupResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateProfilingGroup)