packages feed

amazonka-databrew (empty) → 2.0

raw patch · 209 files changed

+22950/−0 lines, 209 filesdep +amazonka-coredep +amazonka-databrewdep +amazonka-test

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

Files

+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+    means each individual or legal entity that creates, contributes to+    the creation of, or owns Covered Software.++1.2. "Contributor Version"+    means the combination of the Contributions of others (if any) used+    by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+    means Covered Software of a particular Contributor.++1.4. "Covered Software"+    means Source Code Form to which the initial Contributor has attached+    the notice in Exhibit A, the Executable Form of such Source Code+    Form, and Modifications of such Source Code Form, in each case+    including portions thereof.++1.5. "Incompatible With Secondary Licenses"+    means++    (a) that the initial Contributor has attached the notice described+        in Exhibit B to the Covered Software; or++    (b) that the Covered Software was made available under the terms of+        version 1.1 or earlier of the License, but not also under the+        terms of a Secondary License.++1.6. "Executable Form"+    means any form of the work other than Source Code Form.++1.7. "Larger Work"+    means a work that combines Covered Software with other material, in+    a separate file or files, that is not Covered Software.++1.8. "License"+    means this document.++1.9. "Licensable"+    means having the right to grant, to the maximum extent possible,+    whether at the time of the initial grant or subsequently, any and+    all of the rights conveyed by this License.++1.10. "Modifications"+    means any of the following:++    (a) any file in Source Code Form that results from an addition to,+        deletion from, or modification of the contents of Covered+        Software; or++    (b) any new file in Source Code Form that contains any Covered+        Software.++1.11. "Patent Claims" of a Contributor+    means any patent claim(s), including without limitation, method,+    process, and apparatus claims, in any patent Licensable by such+    Contributor that would be infringed, but for the grant of the+    License, by the making, using, selling, offering for sale, having+    made, import, or transfer of either its Contributions or its+    Contributor Version.++1.12. "Secondary License"+    means either the GNU General Public License, Version 2.0, the GNU+    Lesser General Public License, Version 2.1, the GNU Affero General+    Public License, Version 3.0, or any later versions of those+    licenses.++1.13. "Source Code Form"+    means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+    means an individual or a legal entity exercising rights under this+    License. For legal entities, "You" includes any entity that+    controls, is controlled by, or is under common control with You. For+    purposes of this definition, "control" means (a) the power, direct+    or indirect, to cause the direction or management of such entity,+    whether by contract or otherwise, or (b) ownership of more than+    fifty percent (50%) of the outstanding shares or beneficial+    ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+    Licensable by such Contributor to use, reproduce, make available,+    modify, display, perform, distribute, and otherwise exploit its+    Contributions, either on an unmodified basis, with Modifications, or+    as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+    for sale, have made, import, and otherwise transfer either its+    Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+    or++(b) for infringements caused by: (i) Your and any other third party's+    modifications of Covered Software, or (ii) the combination of its+    Contributions with other software (except as part of its Contributor+    Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+    its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+    Form, as described in Section 3.1, and You must inform recipients of+    the Executable Form how they can obtain a copy of such Source Code+    Form by reasonable means in a timely manner, at a charge no more+    than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+    License, or sublicense it under different terms, provided that the+    license for the Executable Form does not attempt to limit or alter+    the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+*                                                                      *+*  6. Disclaimer of Warranty                                           *+*  -------------------------                                           *+*                                                                      *+*  Covered Software is provided under this License on an "as is"       *+*  basis, without warranty of any kind, either expressed, implied, or  *+*  statutory, including, without limitation, warranties that the       *+*  Covered Software is free of defects, merchantable, fit for a        *+*  particular purpose or non-infringing. The entire risk as to the     *+*  quality and performance of the Covered Software is with You.        *+*  Should any Covered Software prove defective in any respect, You     *+*  (not any Contributor) assume the cost of any necessary servicing,   *+*  repair, or correction. This disclaimer of warranty constitutes an   *+*  essential part of this License. No use of any Covered Software is   *+*  authorized under this License except under this disclaimer.         *+*                                                                      *+************************************************************************++************************************************************************+*                                                                      *+*  7. Limitation of Liability                                          *+*  --------------------------                                          *+*                                                                      *+*  Under no circumstances and under no legal theory, whether tort      *+*  (including negligence), contract, or otherwise, shall any           *+*  Contributor, or anyone who distributes Covered Software as          *+*  permitted above, be liable to You for any direct, indirect,         *+*  special, incidental, or consequential damages of any character      *+*  including, without limitation, damages for lost profits, loss of    *+*  goodwill, work stoppage, computer failure or malfunction, or any    *+*  and all other commercial damages or losses, even if such party      *+*  shall have been informed of the possibility of such damages. This   *+*  limitation of liability shall not apply to liability for death or   *+*  personal injury resulting from such party's negligence to the       *+*  extent applicable law prohibits such limitation. Some               *+*  jurisdictions do not allow the exclusion or limitation of           *+*  incidental or consequential damages, so this exclusion and          *+*  limitation may not apply to You.                                    *+*                                                                      *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++  This Source Code Form is subject to the terms of the Mozilla Public+  License, v. 2.0. If a copy of the MPL was not distributed with this+  file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,44 @@+# Amazon Glue DataBrew SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2017-07-25@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-databrew)+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.DataBrew](http://hackage.haskell.org/package/amazonka-databrew/docs/Amazonka-DataBrew.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-databrew` 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-databrew.cabal view
@@ -0,0 +1,192 @@+cabal-version:      2.2+name:               amazonka-databrew+version:            2.0+synopsis:           Amazon Glue DataBrew SDK.+homepage:           https://github.com/brendanhay/amazonka+bug-reports:        https://github.com/brendanhay/amazonka/issues+license:            MPL-2.0+license-file:       LICENSE+author:             Brendan Hay+maintainer:+  Brendan Hay <brendan.g.hay+amazonka@gmail.com>, Jack Kelly <jack@jackkelly.name>++copyright:          Copyright (c) 2013-2023 Brendan Hay+category:           AWS+build-type:         Simple+extra-source-files:+  fixture/*.proto+  fixture/*.yaml+  README.md+  src/.gitkeep++description:+  Derived from API version @2017-07-25@ of the AWS service descriptions, licensed under Apache 2.0.+  .+  The types from this library are intended to be used with <http://hackage.haskell.org/package/amazonka amazonka>,+  which provides mechanisms for specifying AuthN/AuthZ information, sending requests, and receiving responses.+  .+  It is recommended to use generic lenses or optics from packages such as <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify optional fields and deconstruct responses.+  .+  Generated lenses can be found in "Amazonka.DataBrew.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.DataBrew" 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-databrew++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.DataBrew+    Amazonka.DataBrew.BatchDeleteRecipeVersion+    Amazonka.DataBrew.CreateDataset+    Amazonka.DataBrew.CreateProfileJob+    Amazonka.DataBrew.CreateProject+    Amazonka.DataBrew.CreateRecipe+    Amazonka.DataBrew.CreateRecipeJob+    Amazonka.DataBrew.CreateRuleset+    Amazonka.DataBrew.CreateSchedule+    Amazonka.DataBrew.DeleteDataset+    Amazonka.DataBrew.DeleteJob+    Amazonka.DataBrew.DeleteProject+    Amazonka.DataBrew.DeleteRecipeVersion+    Amazonka.DataBrew.DeleteRuleset+    Amazonka.DataBrew.DeleteSchedule+    Amazonka.DataBrew.DescribeDataset+    Amazonka.DataBrew.DescribeJob+    Amazonka.DataBrew.DescribeJobRun+    Amazonka.DataBrew.DescribeProject+    Amazonka.DataBrew.DescribeRecipe+    Amazonka.DataBrew.DescribeRuleset+    Amazonka.DataBrew.DescribeSchedule+    Amazonka.DataBrew.Lens+    Amazonka.DataBrew.ListDatasets+    Amazonka.DataBrew.ListJobRuns+    Amazonka.DataBrew.ListJobs+    Amazonka.DataBrew.ListProjects+    Amazonka.DataBrew.ListRecipes+    Amazonka.DataBrew.ListRecipeVersions+    Amazonka.DataBrew.ListRulesets+    Amazonka.DataBrew.ListSchedules+    Amazonka.DataBrew.ListTagsForResource+    Amazonka.DataBrew.PublishRecipe+    Amazonka.DataBrew.SendProjectSessionAction+    Amazonka.DataBrew.StartJobRun+    Amazonka.DataBrew.StartProjectSession+    Amazonka.DataBrew.StopJobRun+    Amazonka.DataBrew.TagResource+    Amazonka.DataBrew.Types+    Amazonka.DataBrew.Types.AllowedStatistics+    Amazonka.DataBrew.Types.AnalyticsMode+    Amazonka.DataBrew.Types.ColumnSelector+    Amazonka.DataBrew.Types.ColumnStatisticsConfiguration+    Amazonka.DataBrew.Types.CompressionFormat+    Amazonka.DataBrew.Types.ConditionExpression+    Amazonka.DataBrew.Types.CsvOptions+    Amazonka.DataBrew.Types.CsvOutputOptions+    Amazonka.DataBrew.Types.DatabaseInputDefinition+    Amazonka.DataBrew.Types.DatabaseOutput+    Amazonka.DataBrew.Types.DatabaseOutputMode+    Amazonka.DataBrew.Types.DatabaseTableOutputOptions+    Amazonka.DataBrew.Types.DataCatalogInputDefinition+    Amazonka.DataBrew.Types.DataCatalogOutput+    Amazonka.DataBrew.Types.Dataset+    Amazonka.DataBrew.Types.DatasetParameter+    Amazonka.DataBrew.Types.DatetimeOptions+    Amazonka.DataBrew.Types.EncryptionMode+    Amazonka.DataBrew.Types.EntityDetectorConfiguration+    Amazonka.DataBrew.Types.ExcelOptions+    Amazonka.DataBrew.Types.FilesLimit+    Amazonka.DataBrew.Types.FilterExpression+    Amazonka.DataBrew.Types.FormatOptions+    Amazonka.DataBrew.Types.Input+    Amazonka.DataBrew.Types.InputFormat+    Amazonka.DataBrew.Types.Job+    Amazonka.DataBrew.Types.JobRun+    Amazonka.DataBrew.Types.JobRunState+    Amazonka.DataBrew.Types.JobSample+    Amazonka.DataBrew.Types.JobType+    Amazonka.DataBrew.Types.JsonOptions+    Amazonka.DataBrew.Types.LogSubscription+    Amazonka.DataBrew.Types.Metadata+    Amazonka.DataBrew.Types.Order+    Amazonka.DataBrew.Types.OrderedBy+    Amazonka.DataBrew.Types.Output+    Amazonka.DataBrew.Types.OutputFormat+    Amazonka.DataBrew.Types.OutputFormatOptions+    Amazonka.DataBrew.Types.ParameterType+    Amazonka.DataBrew.Types.PathOptions+    Amazonka.DataBrew.Types.ProfileConfiguration+    Amazonka.DataBrew.Types.Project+    Amazonka.DataBrew.Types.Recipe+    Amazonka.DataBrew.Types.RecipeAction+    Amazonka.DataBrew.Types.RecipeReference+    Amazonka.DataBrew.Types.RecipeStep+    Amazonka.DataBrew.Types.RecipeVersionErrorDetail+    Amazonka.DataBrew.Types.Rule+    Amazonka.DataBrew.Types.RulesetItem+    Amazonka.DataBrew.Types.S3Location+    Amazonka.DataBrew.Types.S3TableOutputOptions+    Amazonka.DataBrew.Types.Sample+    Amazonka.DataBrew.Types.SampleMode+    Amazonka.DataBrew.Types.SampleType+    Amazonka.DataBrew.Types.Schedule+    Amazonka.DataBrew.Types.SessionStatus+    Amazonka.DataBrew.Types.Source+    Amazonka.DataBrew.Types.StatisticOverride+    Amazonka.DataBrew.Types.StatisticsConfiguration+    Amazonka.DataBrew.Types.Threshold+    Amazonka.DataBrew.Types.ThresholdType+    Amazonka.DataBrew.Types.ThresholdUnit+    Amazonka.DataBrew.Types.ValidationConfiguration+    Amazonka.DataBrew.Types.ValidationMode+    Amazonka.DataBrew.Types.ViewFrame+    Amazonka.DataBrew.UntagResource+    Amazonka.DataBrew.UpdateDataset+    Amazonka.DataBrew.UpdateProfileJob+    Amazonka.DataBrew.UpdateProject+    Amazonka.DataBrew.UpdateRecipe+    Amazonka.DataBrew.UpdateRecipeJob+    Amazonka.DataBrew.UpdateRuleset+    Amazonka.DataBrew.UpdateSchedule+    Amazonka.DataBrew.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-databrew-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.DataBrew+    Test.Amazonka.DataBrew.Internal+    Test.Amazonka.Gen.DataBrew++  build-depends:+    , amazonka-core         >=2.0 && <2.1+    , amazonka-databrew+    , amazonka-test         >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/BatchDeleteRecipeVersion.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/BatchDeleteRecipeVersionResponse.proto view
+ fixture/CreateDataset.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/CreateDatasetResponse.proto view
+ fixture/CreateProfileJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/CreateProfileJobResponse.proto view
+ fixture/CreateProject.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/CreateProjectResponse.proto view
+ fixture/CreateRecipe.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/CreateRecipeJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/CreateRecipeJobResponse.proto view
+ fixture/CreateRecipeResponse.proto view
+ fixture/CreateRuleset.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/CreateRulesetResponse.proto view
+ fixture/CreateSchedule.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/CreateScheduleResponse.proto view
+ fixture/DeleteDataset.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/DeleteDatasetResponse.proto view
+ fixture/DeleteJob.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/DeleteJobResponse.proto view
+ fixture/DeleteProject.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/DeleteProjectResponse.proto view
+ fixture/DeleteRecipeVersion.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/DeleteRecipeVersionResponse.proto view
+ fixture/DeleteRuleset.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/DeleteRulesetResponse.proto view
+ fixture/DeleteSchedule.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/DeleteScheduleResponse.proto view
+ fixture/DescribeDataset.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/DescribeDatasetResponse.proto view
+ fixture/DescribeJob.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/DescribeJobResponse.proto view
+ fixture/DescribeJobRun.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/DescribeJobRunResponse.proto view
+ fixture/DescribeProject.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/DescribeProjectResponse.proto view
+ fixture/DescribeRecipe.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/DescribeRecipeResponse.proto view
+ fixture/DescribeRuleset.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/DescribeRulesetResponse.proto view
+ fixture/DescribeSchedule.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/DescribeScheduleResponse.proto view
+ fixture/ListDatasets.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/ListDatasetsResponse.proto view
+ fixture/ListJobRuns.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/ListJobRunsResponse.proto view
+ fixture/ListJobs.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/ListJobsResponse.proto view
+ fixture/ListProjects.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/ListProjectsResponse.proto view
+ fixture/ListRecipeVersions.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/ListRecipeVersionsResponse.proto view
+ fixture/ListRecipes.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/ListRecipesResponse.proto view
+ fixture/ListRulesets.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/ListRulesetsResponse.proto view
+ fixture/ListSchedules.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/ListSchedulesResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/PublishRecipe.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/PublishRecipeResponse.proto view
+ fixture/SendProjectSessionAction.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/SendProjectSessionActionResponse.proto view
+ fixture/StartJobRun.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/StartJobRunResponse.proto view
+ fixture/StartProjectSession.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/StartProjectSessionResponse.proto view
+ fixture/StopJobRun.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/StopJobRunResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/UpdateDataset.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/UpdateDatasetResponse.proto view
+ fixture/UpdateProfileJob.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/UpdateProfileJobResponse.proto view
+ fixture/UpdateProject.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/UpdateProjectResponse.proto view
+ fixture/UpdateRecipe.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/UpdateRecipeJob.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/UpdateRecipeJobResponse.proto view
+ fixture/UpdateRecipeResponse.proto view
+ fixture/UpdateRuleset.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/UpdateRulesetResponse.proto view
+ fixture/UpdateSchedule.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/databrew/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  databrew.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/UpdateScheduleResponse.proto view
+ gen/Amazonka/DataBrew.hs view
@@ -0,0 +1,632 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.DataBrew+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Derived from API version @2017-07-25@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Glue DataBrew is a visual, cloud-scale data-preparation service.+-- DataBrew simplifies data preparation tasks, targeting data issues that+-- are hard to spot and time-consuming to fix. DataBrew empowers users of+-- all technical levels to visualize the data and perform one-click data+-- transformations, with no coding required.+module Amazonka.DataBrew+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** AccessDeniedException+    _AccessDeniedException,++    -- ** ConflictException+    _ConflictException,++    -- ** InternalServerException+    _InternalServerException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ServiceQuotaExceededException+    _ServiceQuotaExceededException,++    -- ** ValidationException+    _ValidationException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** BatchDeleteRecipeVersion+    BatchDeleteRecipeVersion (BatchDeleteRecipeVersion'),+    newBatchDeleteRecipeVersion,+    BatchDeleteRecipeVersionResponse (BatchDeleteRecipeVersionResponse'),+    newBatchDeleteRecipeVersionResponse,++    -- ** CreateDataset+    CreateDataset (CreateDataset'),+    newCreateDataset,+    CreateDatasetResponse (CreateDatasetResponse'),+    newCreateDatasetResponse,++    -- ** CreateProfileJob+    CreateProfileJob (CreateProfileJob'),+    newCreateProfileJob,+    CreateProfileJobResponse (CreateProfileJobResponse'),+    newCreateProfileJobResponse,++    -- ** CreateProject+    CreateProject (CreateProject'),+    newCreateProject,+    CreateProjectResponse (CreateProjectResponse'),+    newCreateProjectResponse,++    -- ** CreateRecipe+    CreateRecipe (CreateRecipe'),+    newCreateRecipe,+    CreateRecipeResponse (CreateRecipeResponse'),+    newCreateRecipeResponse,++    -- ** CreateRecipeJob+    CreateRecipeJob (CreateRecipeJob'),+    newCreateRecipeJob,+    CreateRecipeJobResponse (CreateRecipeJobResponse'),+    newCreateRecipeJobResponse,++    -- ** CreateRuleset+    CreateRuleset (CreateRuleset'),+    newCreateRuleset,+    CreateRulesetResponse (CreateRulesetResponse'),+    newCreateRulesetResponse,++    -- ** CreateSchedule+    CreateSchedule (CreateSchedule'),+    newCreateSchedule,+    CreateScheduleResponse (CreateScheduleResponse'),+    newCreateScheduleResponse,++    -- ** DeleteDataset+    DeleteDataset (DeleteDataset'),+    newDeleteDataset,+    DeleteDatasetResponse (DeleteDatasetResponse'),+    newDeleteDatasetResponse,++    -- ** DeleteJob+    DeleteJob (DeleteJob'),+    newDeleteJob,+    DeleteJobResponse (DeleteJobResponse'),+    newDeleteJobResponse,++    -- ** DeleteProject+    DeleteProject (DeleteProject'),+    newDeleteProject,+    DeleteProjectResponse (DeleteProjectResponse'),+    newDeleteProjectResponse,++    -- ** DeleteRecipeVersion+    DeleteRecipeVersion (DeleteRecipeVersion'),+    newDeleteRecipeVersion,+    DeleteRecipeVersionResponse (DeleteRecipeVersionResponse'),+    newDeleteRecipeVersionResponse,++    -- ** DeleteRuleset+    DeleteRuleset (DeleteRuleset'),+    newDeleteRuleset,+    DeleteRulesetResponse (DeleteRulesetResponse'),+    newDeleteRulesetResponse,++    -- ** DeleteSchedule+    DeleteSchedule (DeleteSchedule'),+    newDeleteSchedule,+    DeleteScheduleResponse (DeleteScheduleResponse'),+    newDeleteScheduleResponse,++    -- ** DescribeDataset+    DescribeDataset (DescribeDataset'),+    newDescribeDataset,+    DescribeDatasetResponse (DescribeDatasetResponse'),+    newDescribeDatasetResponse,++    -- ** DescribeJob+    DescribeJob (DescribeJob'),+    newDescribeJob,+    DescribeJobResponse (DescribeJobResponse'),+    newDescribeJobResponse,++    -- ** DescribeJobRun+    DescribeJobRun (DescribeJobRun'),+    newDescribeJobRun,+    DescribeJobRunResponse (DescribeJobRunResponse'),+    newDescribeJobRunResponse,++    -- ** DescribeProject+    DescribeProject (DescribeProject'),+    newDescribeProject,+    DescribeProjectResponse (DescribeProjectResponse'),+    newDescribeProjectResponse,++    -- ** DescribeRecipe+    DescribeRecipe (DescribeRecipe'),+    newDescribeRecipe,+    DescribeRecipeResponse (DescribeRecipeResponse'),+    newDescribeRecipeResponse,++    -- ** DescribeRuleset+    DescribeRuleset (DescribeRuleset'),+    newDescribeRuleset,+    DescribeRulesetResponse (DescribeRulesetResponse'),+    newDescribeRulesetResponse,++    -- ** DescribeSchedule+    DescribeSchedule (DescribeSchedule'),+    newDescribeSchedule,+    DescribeScheduleResponse (DescribeScheduleResponse'),+    newDescribeScheduleResponse,++    -- ** ListDatasets (Paginated)+    ListDatasets (ListDatasets'),+    newListDatasets,+    ListDatasetsResponse (ListDatasetsResponse'),+    newListDatasetsResponse,++    -- ** ListJobRuns (Paginated)+    ListJobRuns (ListJobRuns'),+    newListJobRuns,+    ListJobRunsResponse (ListJobRunsResponse'),+    newListJobRunsResponse,++    -- ** ListJobs (Paginated)+    ListJobs (ListJobs'),+    newListJobs,+    ListJobsResponse (ListJobsResponse'),+    newListJobsResponse,++    -- ** ListProjects (Paginated)+    ListProjects (ListProjects'),+    newListProjects,+    ListProjectsResponse (ListProjectsResponse'),+    newListProjectsResponse,++    -- ** ListRecipeVersions (Paginated)+    ListRecipeVersions (ListRecipeVersions'),+    newListRecipeVersions,+    ListRecipeVersionsResponse (ListRecipeVersionsResponse'),+    newListRecipeVersionsResponse,++    -- ** ListRecipes (Paginated)+    ListRecipes (ListRecipes'),+    newListRecipes,+    ListRecipesResponse (ListRecipesResponse'),+    newListRecipesResponse,++    -- ** ListRulesets (Paginated)+    ListRulesets (ListRulesets'),+    newListRulesets,+    ListRulesetsResponse (ListRulesetsResponse'),+    newListRulesetsResponse,++    -- ** ListSchedules (Paginated)+    ListSchedules (ListSchedules'),+    newListSchedules,+    ListSchedulesResponse (ListSchedulesResponse'),+    newListSchedulesResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** PublishRecipe+    PublishRecipe (PublishRecipe'),+    newPublishRecipe,+    PublishRecipeResponse (PublishRecipeResponse'),+    newPublishRecipeResponse,++    -- ** SendProjectSessionAction+    SendProjectSessionAction (SendProjectSessionAction'),+    newSendProjectSessionAction,+    SendProjectSessionActionResponse (SendProjectSessionActionResponse'),+    newSendProjectSessionActionResponse,++    -- ** StartJobRun+    StartJobRun (StartJobRun'),+    newStartJobRun,+    StartJobRunResponse (StartJobRunResponse'),+    newStartJobRunResponse,++    -- ** StartProjectSession+    StartProjectSession (StartProjectSession'),+    newStartProjectSession,+    StartProjectSessionResponse (StartProjectSessionResponse'),+    newStartProjectSessionResponse,++    -- ** StopJobRun+    StopJobRun (StopJobRun'),+    newStopJobRun,+    StopJobRunResponse (StopJobRunResponse'),+    newStopJobRunResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateDataset+    UpdateDataset (UpdateDataset'),+    newUpdateDataset,+    UpdateDatasetResponse (UpdateDatasetResponse'),+    newUpdateDatasetResponse,++    -- ** UpdateProfileJob+    UpdateProfileJob (UpdateProfileJob'),+    newUpdateProfileJob,+    UpdateProfileJobResponse (UpdateProfileJobResponse'),+    newUpdateProfileJobResponse,++    -- ** UpdateProject+    UpdateProject (UpdateProject'),+    newUpdateProject,+    UpdateProjectResponse (UpdateProjectResponse'),+    newUpdateProjectResponse,++    -- ** UpdateRecipe+    UpdateRecipe (UpdateRecipe'),+    newUpdateRecipe,+    UpdateRecipeResponse (UpdateRecipeResponse'),+    newUpdateRecipeResponse,++    -- ** UpdateRecipeJob+    UpdateRecipeJob (UpdateRecipeJob'),+    newUpdateRecipeJob,+    UpdateRecipeJobResponse (UpdateRecipeJobResponse'),+    newUpdateRecipeJobResponse,++    -- ** UpdateRuleset+    UpdateRuleset (UpdateRuleset'),+    newUpdateRuleset,+    UpdateRulesetResponse (UpdateRulesetResponse'),+    newUpdateRulesetResponse,++    -- ** UpdateSchedule+    UpdateSchedule (UpdateSchedule'),+    newUpdateSchedule,+    UpdateScheduleResponse (UpdateScheduleResponse'),+    newUpdateScheduleResponse,++    -- * Types++    -- ** AnalyticsMode+    AnalyticsMode (..),++    -- ** CompressionFormat+    CompressionFormat (..),++    -- ** DatabaseOutputMode+    DatabaseOutputMode (..),++    -- ** EncryptionMode+    EncryptionMode (..),++    -- ** InputFormat+    InputFormat (..),++    -- ** JobRunState+    JobRunState (..),++    -- ** JobType+    JobType (..),++    -- ** LogSubscription+    LogSubscription (..),++    -- ** Order+    Order (..),++    -- ** OrderedBy+    OrderedBy (..),++    -- ** OutputFormat+    OutputFormat (..),++    -- ** ParameterType+    ParameterType (..),++    -- ** SampleMode+    SampleMode (..),++    -- ** SampleType+    SampleType (..),++    -- ** SessionStatus+    SessionStatus (..),++    -- ** Source+    Source (..),++    -- ** ThresholdType+    ThresholdType (..),++    -- ** ThresholdUnit+    ThresholdUnit (..),++    -- ** ValidationMode+    ValidationMode (..),++    -- ** AllowedStatistics+    AllowedStatistics (AllowedStatistics'),+    newAllowedStatistics,++    -- ** ColumnSelector+    ColumnSelector (ColumnSelector'),+    newColumnSelector,++    -- ** ColumnStatisticsConfiguration+    ColumnStatisticsConfiguration (ColumnStatisticsConfiguration'),+    newColumnStatisticsConfiguration,++    -- ** ConditionExpression+    ConditionExpression (ConditionExpression'),+    newConditionExpression,++    -- ** CsvOptions+    CsvOptions (CsvOptions'),+    newCsvOptions,++    -- ** CsvOutputOptions+    CsvOutputOptions (CsvOutputOptions'),+    newCsvOutputOptions,++    -- ** DataCatalogInputDefinition+    DataCatalogInputDefinition (DataCatalogInputDefinition'),+    newDataCatalogInputDefinition,++    -- ** DataCatalogOutput+    DataCatalogOutput (DataCatalogOutput'),+    newDataCatalogOutput,++    -- ** DatabaseInputDefinition+    DatabaseInputDefinition (DatabaseInputDefinition'),+    newDatabaseInputDefinition,++    -- ** DatabaseOutput+    DatabaseOutput (DatabaseOutput'),+    newDatabaseOutput,++    -- ** DatabaseTableOutputOptions+    DatabaseTableOutputOptions (DatabaseTableOutputOptions'),+    newDatabaseTableOutputOptions,++    -- ** Dataset+    Dataset (Dataset'),+    newDataset,++    -- ** DatasetParameter+    DatasetParameter (DatasetParameter'),+    newDatasetParameter,++    -- ** DatetimeOptions+    DatetimeOptions (DatetimeOptions'),+    newDatetimeOptions,++    -- ** EntityDetectorConfiguration+    EntityDetectorConfiguration (EntityDetectorConfiguration'),+    newEntityDetectorConfiguration,++    -- ** ExcelOptions+    ExcelOptions (ExcelOptions'),+    newExcelOptions,++    -- ** FilesLimit+    FilesLimit (FilesLimit'),+    newFilesLimit,++    -- ** FilterExpression+    FilterExpression (FilterExpression'),+    newFilterExpression,++    -- ** FormatOptions+    FormatOptions (FormatOptions'),+    newFormatOptions,++    -- ** Input+    Input (Input'),+    newInput,++    -- ** Job+    Job (Job'),+    newJob,++    -- ** JobRun+    JobRun (JobRun'),+    newJobRun,++    -- ** JobSample+    JobSample (JobSample'),+    newJobSample,++    -- ** JsonOptions+    JsonOptions (JsonOptions'),+    newJsonOptions,++    -- ** Metadata+    Metadata (Metadata'),+    newMetadata,++    -- ** Output+    Output (Output'),+    newOutput,++    -- ** OutputFormatOptions+    OutputFormatOptions (OutputFormatOptions'),+    newOutputFormatOptions,++    -- ** PathOptions+    PathOptions (PathOptions'),+    newPathOptions,++    -- ** ProfileConfiguration+    ProfileConfiguration (ProfileConfiguration'),+    newProfileConfiguration,++    -- ** Project+    Project (Project'),+    newProject,++    -- ** Recipe+    Recipe (Recipe'),+    newRecipe,++    -- ** RecipeAction+    RecipeAction (RecipeAction'),+    newRecipeAction,++    -- ** RecipeReference+    RecipeReference (RecipeReference'),+    newRecipeReference,++    -- ** RecipeStep+    RecipeStep (RecipeStep'),+    newRecipeStep,++    -- ** RecipeVersionErrorDetail+    RecipeVersionErrorDetail (RecipeVersionErrorDetail'),+    newRecipeVersionErrorDetail,++    -- ** Rule+    Rule (Rule'),+    newRule,++    -- ** RulesetItem+    RulesetItem (RulesetItem'),+    newRulesetItem,++    -- ** S3Location+    S3Location (S3Location'),+    newS3Location,++    -- ** S3TableOutputOptions+    S3TableOutputOptions (S3TableOutputOptions'),+    newS3TableOutputOptions,++    -- ** Sample+    Sample (Sample'),+    newSample,++    -- ** Schedule+    Schedule (Schedule'),+    newSchedule,++    -- ** StatisticOverride+    StatisticOverride (StatisticOverride'),+    newStatisticOverride,++    -- ** StatisticsConfiguration+    StatisticsConfiguration (StatisticsConfiguration'),+    newStatisticsConfiguration,++    -- ** Threshold+    Threshold (Threshold'),+    newThreshold,++    -- ** ValidationConfiguration+    ValidationConfiguration (ValidationConfiguration'),+    newValidationConfiguration,++    -- ** ViewFrame+    ViewFrame (ViewFrame'),+    newViewFrame,+  )+where++import Amazonka.DataBrew.BatchDeleteRecipeVersion+import Amazonka.DataBrew.CreateDataset+import Amazonka.DataBrew.CreateProfileJob+import Amazonka.DataBrew.CreateProject+import Amazonka.DataBrew.CreateRecipe+import Amazonka.DataBrew.CreateRecipeJob+import Amazonka.DataBrew.CreateRuleset+import Amazonka.DataBrew.CreateSchedule+import Amazonka.DataBrew.DeleteDataset+import Amazonka.DataBrew.DeleteJob+import Amazonka.DataBrew.DeleteProject+import Amazonka.DataBrew.DeleteRecipeVersion+import Amazonka.DataBrew.DeleteRuleset+import Amazonka.DataBrew.DeleteSchedule+import Amazonka.DataBrew.DescribeDataset+import Amazonka.DataBrew.DescribeJob+import Amazonka.DataBrew.DescribeJobRun+import Amazonka.DataBrew.DescribeProject+import Amazonka.DataBrew.DescribeRecipe+import Amazonka.DataBrew.DescribeRuleset+import Amazonka.DataBrew.DescribeSchedule+import Amazonka.DataBrew.Lens+import Amazonka.DataBrew.ListDatasets+import Amazonka.DataBrew.ListJobRuns+import Amazonka.DataBrew.ListJobs+import Amazonka.DataBrew.ListProjects+import Amazonka.DataBrew.ListRecipeVersions+import Amazonka.DataBrew.ListRecipes+import Amazonka.DataBrew.ListRulesets+import Amazonka.DataBrew.ListSchedules+import Amazonka.DataBrew.ListTagsForResource+import Amazonka.DataBrew.PublishRecipe+import Amazonka.DataBrew.SendProjectSessionAction+import Amazonka.DataBrew.StartJobRun+import Amazonka.DataBrew.StartProjectSession+import Amazonka.DataBrew.StopJobRun+import Amazonka.DataBrew.TagResource+import Amazonka.DataBrew.Types+import Amazonka.DataBrew.UntagResource+import Amazonka.DataBrew.UpdateDataset+import Amazonka.DataBrew.UpdateProfileJob+import Amazonka.DataBrew.UpdateProject+import Amazonka.DataBrew.UpdateRecipe+import Amazonka.DataBrew.UpdateRecipeJob+import Amazonka.DataBrew.UpdateRuleset+import Amazonka.DataBrew.UpdateSchedule+import Amazonka.DataBrew.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 'DataBrew'.++-- $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/DataBrew/BatchDeleteRecipeVersion.hs view
@@ -0,0 +1,245 @@+{-# 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.DataBrew.BatchDeleteRecipeVersion+-- 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 one or more versions of a recipe at a time.+--+-- The entire request will be rejected if:+--+-- -   The recipe does not exist.+--+-- -   There is an invalid version identifier in the list of versions.+--+-- -   The version list is empty.+--+-- -   The version list size exceeds 50.+--+-- -   The version list contains duplicate entries.+--+-- The request will complete successfully, but with partial failures, if:+--+-- -   A version does not exist.+--+-- -   A version is being used by a job.+--+-- -   You specify @LATEST_WORKING@, but it\'s being used by a project.+--+-- -   The version fails to be deleted.+--+-- The @LATEST_WORKING@ version will only be deleted if the recipe has no+-- other versions. If you try to delete @LATEST_WORKING@ while other+-- versions exist (or if they can\'t be deleted), then @LATEST_WORKING@+-- will be listed as partial failure in the response.+module Amazonka.DataBrew.BatchDeleteRecipeVersion+  ( -- * Creating a Request+    BatchDeleteRecipeVersion (..),+    newBatchDeleteRecipeVersion,++    -- * Request Lenses+    batchDeleteRecipeVersion_name,+    batchDeleteRecipeVersion_recipeVersions,++    -- * Destructuring the Response+    BatchDeleteRecipeVersionResponse (..),+    newBatchDeleteRecipeVersionResponse,++    -- * Response Lenses+    batchDeleteRecipeVersionResponse_errors,+    batchDeleteRecipeVersionResponse_httpStatus,+    batchDeleteRecipeVersionResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBatchDeleteRecipeVersion' smart constructor.+data BatchDeleteRecipeVersion = BatchDeleteRecipeVersion'+  { -- | The name of the recipe whose versions are to be deleted.+    name :: Prelude.Text,+    -- | An array of version identifiers, for the recipe versions to be deleted.+    -- You can specify numeric versions (@X.Y@) or @LATEST_WORKING@.+    -- @LATEST_PUBLISHED@ is not supported.+    recipeVersions :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchDeleteRecipeVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'batchDeleteRecipeVersion_name' - The name of the recipe whose versions are to be deleted.+--+-- 'recipeVersions', 'batchDeleteRecipeVersion_recipeVersions' - An array of version identifiers, for the recipe versions to be deleted.+-- You can specify numeric versions (@X.Y@) or @LATEST_WORKING@.+-- @LATEST_PUBLISHED@ is not supported.+newBatchDeleteRecipeVersion ::+  -- | 'name'+  Prelude.Text ->+  -- | 'recipeVersions'+  Prelude.NonEmpty Prelude.Text ->+  BatchDeleteRecipeVersion+newBatchDeleteRecipeVersion pName_ pRecipeVersions_ =+  BatchDeleteRecipeVersion'+    { name = pName_,+      recipeVersions =+        Lens.coerced Lens.# pRecipeVersions_+    }++-- | The name of the recipe whose versions are to be deleted.+batchDeleteRecipeVersion_name :: Lens.Lens' BatchDeleteRecipeVersion Prelude.Text+batchDeleteRecipeVersion_name = Lens.lens (\BatchDeleteRecipeVersion' {name} -> name) (\s@BatchDeleteRecipeVersion' {} a -> s {name = a} :: BatchDeleteRecipeVersion)++-- | An array of version identifiers, for the recipe versions to be deleted.+-- You can specify numeric versions (@X.Y@) or @LATEST_WORKING@.+-- @LATEST_PUBLISHED@ is not supported.+batchDeleteRecipeVersion_recipeVersions :: Lens.Lens' BatchDeleteRecipeVersion (Prelude.NonEmpty Prelude.Text)+batchDeleteRecipeVersion_recipeVersions = Lens.lens (\BatchDeleteRecipeVersion' {recipeVersions} -> recipeVersions) (\s@BatchDeleteRecipeVersion' {} a -> s {recipeVersions = a} :: BatchDeleteRecipeVersion) Prelude.. Lens.coerced++instance Core.AWSRequest BatchDeleteRecipeVersion where+  type+    AWSResponse BatchDeleteRecipeVersion =+      BatchDeleteRecipeVersionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          BatchDeleteRecipeVersionResponse'+            Prelude.<$> (x Data..?> "Errors" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable BatchDeleteRecipeVersion where+  hashWithSalt _salt BatchDeleteRecipeVersion' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` recipeVersions++instance Prelude.NFData BatchDeleteRecipeVersion where+  rnf BatchDeleteRecipeVersion' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf recipeVersions++instance Data.ToHeaders BatchDeleteRecipeVersion where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON BatchDeleteRecipeVersion where+  toJSON BatchDeleteRecipeVersion' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("RecipeVersions" Data..= recipeVersions)+          ]+      )++instance Data.ToPath BatchDeleteRecipeVersion where+  toPath BatchDeleteRecipeVersion' {..} =+    Prelude.mconcat+      [ "/recipes/",+        Data.toBS name,+        "/batchDeleteRecipeVersion"+      ]++instance Data.ToQuery BatchDeleteRecipeVersion where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchDeleteRecipeVersionResponse' smart constructor.+data BatchDeleteRecipeVersionResponse = BatchDeleteRecipeVersionResponse'+  { -- | Errors, if any, that occurred while attempting to delete the recipe+    -- versions.+    errors :: Prelude.Maybe [RecipeVersionErrorDetail],+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the recipe that was modified.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchDeleteRecipeVersionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'errors', 'batchDeleteRecipeVersionResponse_errors' - Errors, if any, that occurred while attempting to delete the recipe+-- versions.+--+-- 'httpStatus', 'batchDeleteRecipeVersionResponse_httpStatus' - The response's http status code.+--+-- 'name', 'batchDeleteRecipeVersionResponse_name' - The name of the recipe that was modified.+newBatchDeleteRecipeVersionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  BatchDeleteRecipeVersionResponse+newBatchDeleteRecipeVersionResponse+  pHttpStatus_+  pName_ =+    BatchDeleteRecipeVersionResponse'+      { errors =+          Prelude.Nothing,+        httpStatus = pHttpStatus_,+        name = pName_+      }++-- | Errors, if any, that occurred while attempting to delete the recipe+-- versions.+batchDeleteRecipeVersionResponse_errors :: Lens.Lens' BatchDeleteRecipeVersionResponse (Prelude.Maybe [RecipeVersionErrorDetail])+batchDeleteRecipeVersionResponse_errors = Lens.lens (\BatchDeleteRecipeVersionResponse' {errors} -> errors) (\s@BatchDeleteRecipeVersionResponse' {} a -> s {errors = a} :: BatchDeleteRecipeVersionResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchDeleteRecipeVersionResponse_httpStatus :: Lens.Lens' BatchDeleteRecipeVersionResponse Prelude.Int+batchDeleteRecipeVersionResponse_httpStatus = Lens.lens (\BatchDeleteRecipeVersionResponse' {httpStatus} -> httpStatus) (\s@BatchDeleteRecipeVersionResponse' {} a -> s {httpStatus = a} :: BatchDeleteRecipeVersionResponse)++-- | The name of the recipe that was modified.+batchDeleteRecipeVersionResponse_name :: Lens.Lens' BatchDeleteRecipeVersionResponse Prelude.Text+batchDeleteRecipeVersionResponse_name = Lens.lens (\BatchDeleteRecipeVersionResponse' {name} -> name) (\s@BatchDeleteRecipeVersionResponse' {} a -> s {name = a} :: BatchDeleteRecipeVersionResponse)++instance+  Prelude.NFData+    BatchDeleteRecipeVersionResponse+  where+  rnf BatchDeleteRecipeVersionResponse' {..} =+    Prelude.rnf errors+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/CreateDataset.hs view
@@ -0,0 +1,244 @@+{-# 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.DataBrew.CreateDataset+-- 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 new DataBrew dataset.+module Amazonka.DataBrew.CreateDataset+  ( -- * Creating a Request+    CreateDataset (..),+    newCreateDataset,++    -- * Request Lenses+    createDataset_format,+    createDataset_formatOptions,+    createDataset_pathOptions,+    createDataset_tags,+    createDataset_name,+    createDataset_input,++    -- * Destructuring the Response+    CreateDatasetResponse (..),+    newCreateDatasetResponse,++    -- * Response Lenses+    createDatasetResponse_httpStatus,+    createDatasetResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateDataset' smart constructor.+data CreateDataset = CreateDataset'+  { -- | The file format of a dataset that is created from an Amazon S3 file or+    -- folder.+    format :: Prelude.Maybe InputFormat,+    formatOptions :: Prelude.Maybe FormatOptions,+    -- | A set of options that defines how DataBrew interprets an Amazon S3 path+    -- of the dataset.+    pathOptions :: Prelude.Maybe PathOptions,+    -- | Metadata tags to apply to this dataset.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name of the dataset to be created. Valid characters are alphanumeric+    -- (A-Z, a-z, 0-9), hyphen (-), period (.), and space.+    name :: Prelude.Text,+    input :: Input+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDataset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'format', 'createDataset_format' - The file format of a dataset that is created from an Amazon S3 file or+-- folder.+--+-- 'formatOptions', 'createDataset_formatOptions' - Undocumented member.+--+-- 'pathOptions', 'createDataset_pathOptions' - A set of options that defines how DataBrew interprets an Amazon S3 path+-- of the dataset.+--+-- 'tags', 'createDataset_tags' - Metadata tags to apply to this dataset.+--+-- 'name', 'createDataset_name' - The name of the dataset to be created. Valid characters are alphanumeric+-- (A-Z, a-z, 0-9), hyphen (-), period (.), and space.+--+-- 'input', 'createDataset_input' - Undocumented member.+newCreateDataset ::+  -- | 'name'+  Prelude.Text ->+  -- | 'input'+  Input ->+  CreateDataset+newCreateDataset pName_ pInput_ =+  CreateDataset'+    { format = Prelude.Nothing,+      formatOptions = Prelude.Nothing,+      pathOptions = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_,+      input = pInput_+    }++-- | The file format of a dataset that is created from an Amazon S3 file or+-- folder.+createDataset_format :: Lens.Lens' CreateDataset (Prelude.Maybe InputFormat)+createDataset_format = Lens.lens (\CreateDataset' {format} -> format) (\s@CreateDataset' {} a -> s {format = a} :: CreateDataset)++-- | Undocumented member.+createDataset_formatOptions :: Lens.Lens' CreateDataset (Prelude.Maybe FormatOptions)+createDataset_formatOptions = Lens.lens (\CreateDataset' {formatOptions} -> formatOptions) (\s@CreateDataset' {} a -> s {formatOptions = a} :: CreateDataset)++-- | A set of options that defines how DataBrew interprets an Amazon S3 path+-- of the dataset.+createDataset_pathOptions :: Lens.Lens' CreateDataset (Prelude.Maybe PathOptions)+createDataset_pathOptions = Lens.lens (\CreateDataset' {pathOptions} -> pathOptions) (\s@CreateDataset' {} a -> s {pathOptions = a} :: CreateDataset)++-- | Metadata tags to apply to this dataset.+createDataset_tags :: Lens.Lens' CreateDataset (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createDataset_tags = Lens.lens (\CreateDataset' {tags} -> tags) (\s@CreateDataset' {} a -> s {tags = a} :: CreateDataset) Prelude.. Lens.mapping Lens.coerced++-- | The name of the dataset to be created. Valid characters are alphanumeric+-- (A-Z, a-z, 0-9), hyphen (-), period (.), and space.+createDataset_name :: Lens.Lens' CreateDataset Prelude.Text+createDataset_name = Lens.lens (\CreateDataset' {name} -> name) (\s@CreateDataset' {} a -> s {name = a} :: CreateDataset)++-- | Undocumented member.+createDataset_input :: Lens.Lens' CreateDataset Input+createDataset_input = Lens.lens (\CreateDataset' {input} -> input) (\s@CreateDataset' {} a -> s {input = a} :: CreateDataset)++instance Core.AWSRequest CreateDataset where+  type+    AWSResponse CreateDataset =+      CreateDatasetResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateDatasetResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable CreateDataset where+  hashWithSalt _salt CreateDataset' {..} =+    _salt+      `Prelude.hashWithSalt` format+      `Prelude.hashWithSalt` formatOptions+      `Prelude.hashWithSalt` pathOptions+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` input++instance Prelude.NFData CreateDataset where+  rnf CreateDataset' {..} =+    Prelude.rnf format+      `Prelude.seq` Prelude.rnf formatOptions+      `Prelude.seq` Prelude.rnf pathOptions+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf input++instance Data.ToHeaders CreateDataset where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateDataset where+  toJSON CreateDataset' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Format" Data..=) Prelude.<$> format,+            ("FormatOptions" Data..=) Prelude.<$> formatOptions,+            ("PathOptions" Data..=) Prelude.<$> pathOptions,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("Name" Data..= name),+            Prelude.Just ("Input" Data..= input)+          ]+      )++instance Data.ToPath CreateDataset where+  toPath = Prelude.const "/datasets"++instance Data.ToQuery CreateDataset where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateDatasetResponse' smart constructor.+data CreateDatasetResponse = CreateDatasetResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the dataset that you created.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDatasetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createDatasetResponse_httpStatus' - The response's http status code.+--+-- 'name', 'createDatasetResponse_name' - The name of the dataset that you created.+newCreateDatasetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  CreateDatasetResponse+newCreateDatasetResponse pHttpStatus_ pName_ =+  CreateDatasetResponse'+    { httpStatus = pHttpStatus_,+      name = pName_+    }++-- | The response's http status code.+createDatasetResponse_httpStatus :: Lens.Lens' CreateDatasetResponse Prelude.Int+createDatasetResponse_httpStatus = Lens.lens (\CreateDatasetResponse' {httpStatus} -> httpStatus) (\s@CreateDatasetResponse' {} a -> s {httpStatus = a} :: CreateDatasetResponse)++-- | The name of the dataset that you created.+createDatasetResponse_name :: Lens.Lens' CreateDatasetResponse Prelude.Text+createDatasetResponse_name = Lens.lens (\CreateDatasetResponse' {name} -> name) (\s@CreateDatasetResponse' {} a -> s {name = a} :: CreateDatasetResponse)++instance Prelude.NFData CreateDatasetResponse where+  rnf CreateDatasetResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/CreateProfileJob.hs view
@@ -0,0 +1,402 @@+{-# 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.DataBrew.CreateProfileJob+-- 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 new job to analyze a dataset and create its data profile.+module Amazonka.DataBrew.CreateProfileJob+  ( -- * Creating a Request+    CreateProfileJob (..),+    newCreateProfileJob,++    -- * Request Lenses+    createProfileJob_configuration,+    createProfileJob_encryptionKeyArn,+    createProfileJob_encryptionMode,+    createProfileJob_jobSample,+    createProfileJob_logSubscription,+    createProfileJob_maxCapacity,+    createProfileJob_maxRetries,+    createProfileJob_tags,+    createProfileJob_timeout,+    createProfileJob_validationConfigurations,+    createProfileJob_datasetName,+    createProfileJob_name,+    createProfileJob_outputLocation,+    createProfileJob_roleArn,++    -- * Destructuring the Response+    CreateProfileJobResponse (..),+    newCreateProfileJobResponse,++    -- * Response Lenses+    createProfileJobResponse_httpStatus,+    createProfileJobResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateProfileJob' smart constructor.+data CreateProfileJob = CreateProfileJob'+  { -- | Configuration for profile jobs. Used to select columns, do evaluations,+    -- and override default parameters of evaluations. When configuration is+    -- null, the profile job will run with default settings.+    configuration :: Prelude.Maybe ProfileConfiguration,+    -- | The Amazon Resource Name (ARN) of an encryption key that is used to+    -- protect the job.+    encryptionKeyArn :: Prelude.Maybe Prelude.Text,+    -- | The encryption mode for the job, which can be one of the following:+    --+    -- -   @SSE-KMS@ - @SSE-KMS@ - Server-side encryption with KMS-managed+    --     keys.+    --+    -- -   @SSE-S3@ - Server-side encryption with keys managed by Amazon S3.+    encryptionMode :: Prelude.Maybe EncryptionMode,+    -- | Sample configuration for profile jobs only. Determines the number of+    -- rows on which the profile job will be executed. If a JobSample value is+    -- not provided, the default value will be used. The default value is+    -- CUSTOM_ROWS for the mode parameter and 20000 for the size parameter.+    jobSample :: Prelude.Maybe JobSample,+    -- | Enables or disables Amazon CloudWatch logging for the job. If logging is+    -- enabled, CloudWatch writes one log stream for each job run.+    logSubscription :: Prelude.Maybe LogSubscription,+    -- | The maximum number of nodes that DataBrew can use when the job processes+    -- data.+    maxCapacity :: Prelude.Maybe Prelude.Int,+    -- | The maximum number of times to retry the job after a job run fails.+    maxRetries :: Prelude.Maybe Prelude.Natural,+    -- | Metadata tags to apply to this job.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The job\'s timeout in minutes. A job that attempts to run longer than+    -- this timeout period ends with a status of @TIMEOUT@.+    timeout :: Prelude.Maybe Prelude.Natural,+    -- | List of validation configurations that are applied to the profile job.+    validationConfigurations :: Prelude.Maybe (Prelude.NonEmpty ValidationConfiguration),+    -- | The name of the dataset that this job is to act upon.+    datasetName :: Prelude.Text,+    -- | The name of the job to be created. Valid characters are alphanumeric+    -- (A-Z, a-z, 0-9), hyphen (-), period (.), and space.+    name :: Prelude.Text,+    outputLocation :: S3Location,+    -- | The Amazon Resource Name (ARN) of the Identity and Access Management+    -- (IAM) role to be assumed when DataBrew runs the job.+    roleArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateProfileJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configuration', 'createProfileJob_configuration' - Configuration for profile jobs. Used to select columns, do evaluations,+-- and override default parameters of evaluations. When configuration is+-- null, the profile job will run with default settings.+--+-- 'encryptionKeyArn', 'createProfileJob_encryptionKeyArn' - The Amazon Resource Name (ARN) of an encryption key that is used to+-- protect the job.+--+-- 'encryptionMode', 'createProfileJob_encryptionMode' - The encryption mode for the job, which can be one of the following:+--+-- -   @SSE-KMS@ - @SSE-KMS@ - Server-side encryption with KMS-managed+--     keys.+--+-- -   @SSE-S3@ - Server-side encryption with keys managed by Amazon S3.+--+-- 'jobSample', 'createProfileJob_jobSample' - Sample configuration for profile jobs only. Determines the number of+-- rows on which the profile job will be executed. If a JobSample value is+-- not provided, the default value will be used. The default value is+-- CUSTOM_ROWS for the mode parameter and 20000 for the size parameter.+--+-- 'logSubscription', 'createProfileJob_logSubscription' - Enables or disables Amazon CloudWatch logging for the job. If logging is+-- enabled, CloudWatch writes one log stream for each job run.+--+-- 'maxCapacity', 'createProfileJob_maxCapacity' - The maximum number of nodes that DataBrew can use when the job processes+-- data.+--+-- 'maxRetries', 'createProfileJob_maxRetries' - The maximum number of times to retry the job after a job run fails.+--+-- 'tags', 'createProfileJob_tags' - Metadata tags to apply to this job.+--+-- 'timeout', 'createProfileJob_timeout' - The job\'s timeout in minutes. A job that attempts to run longer than+-- this timeout period ends with a status of @TIMEOUT@.+--+-- 'validationConfigurations', 'createProfileJob_validationConfigurations' - List of validation configurations that are applied to the profile job.+--+-- 'datasetName', 'createProfileJob_datasetName' - The name of the dataset that this job is to act upon.+--+-- 'name', 'createProfileJob_name' - The name of the job to be created. Valid characters are alphanumeric+-- (A-Z, a-z, 0-9), hyphen (-), period (.), and space.+--+-- 'outputLocation', 'createProfileJob_outputLocation' - Undocumented member.+--+-- 'roleArn', 'createProfileJob_roleArn' - The Amazon Resource Name (ARN) of the Identity and Access Management+-- (IAM) role to be assumed when DataBrew runs the job.+newCreateProfileJob ::+  -- | 'datasetName'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  -- | 'outputLocation'+  S3Location ->+  -- | 'roleArn'+  Prelude.Text ->+  CreateProfileJob+newCreateProfileJob+  pDatasetName_+  pName_+  pOutputLocation_+  pRoleArn_ =+    CreateProfileJob'+      { configuration = Prelude.Nothing,+        encryptionKeyArn = Prelude.Nothing,+        encryptionMode = Prelude.Nothing,+        jobSample = Prelude.Nothing,+        logSubscription = Prelude.Nothing,+        maxCapacity = Prelude.Nothing,+        maxRetries = Prelude.Nothing,+        tags = Prelude.Nothing,+        timeout = Prelude.Nothing,+        validationConfigurations = Prelude.Nothing,+        datasetName = pDatasetName_,+        name = pName_,+        outputLocation = pOutputLocation_,+        roleArn = pRoleArn_+      }++-- | Configuration for profile jobs. Used to select columns, do evaluations,+-- and override default parameters of evaluations. When configuration is+-- null, the profile job will run with default settings.+createProfileJob_configuration :: Lens.Lens' CreateProfileJob (Prelude.Maybe ProfileConfiguration)+createProfileJob_configuration = Lens.lens (\CreateProfileJob' {configuration} -> configuration) (\s@CreateProfileJob' {} a -> s {configuration = a} :: CreateProfileJob)++-- | The Amazon Resource Name (ARN) of an encryption key that is used to+-- protect the job.+createProfileJob_encryptionKeyArn :: Lens.Lens' CreateProfileJob (Prelude.Maybe Prelude.Text)+createProfileJob_encryptionKeyArn = Lens.lens (\CreateProfileJob' {encryptionKeyArn} -> encryptionKeyArn) (\s@CreateProfileJob' {} a -> s {encryptionKeyArn = a} :: CreateProfileJob)++-- | The encryption mode for the job, which can be one of the following:+--+-- -   @SSE-KMS@ - @SSE-KMS@ - Server-side encryption with KMS-managed+--     keys.+--+-- -   @SSE-S3@ - Server-side encryption with keys managed by Amazon S3.+createProfileJob_encryptionMode :: Lens.Lens' CreateProfileJob (Prelude.Maybe EncryptionMode)+createProfileJob_encryptionMode = Lens.lens (\CreateProfileJob' {encryptionMode} -> encryptionMode) (\s@CreateProfileJob' {} a -> s {encryptionMode = a} :: CreateProfileJob)++-- | Sample configuration for profile jobs only. Determines the number of+-- rows on which the profile job will be executed. If a JobSample value is+-- not provided, the default value will be used. The default value is+-- CUSTOM_ROWS for the mode parameter and 20000 for the size parameter.+createProfileJob_jobSample :: Lens.Lens' CreateProfileJob (Prelude.Maybe JobSample)+createProfileJob_jobSample = Lens.lens (\CreateProfileJob' {jobSample} -> jobSample) (\s@CreateProfileJob' {} a -> s {jobSample = a} :: CreateProfileJob)++-- | Enables or disables Amazon CloudWatch logging for the job. If logging is+-- enabled, CloudWatch writes one log stream for each job run.+createProfileJob_logSubscription :: Lens.Lens' CreateProfileJob (Prelude.Maybe LogSubscription)+createProfileJob_logSubscription = Lens.lens (\CreateProfileJob' {logSubscription} -> logSubscription) (\s@CreateProfileJob' {} a -> s {logSubscription = a} :: CreateProfileJob)++-- | The maximum number of nodes that DataBrew can use when the job processes+-- data.+createProfileJob_maxCapacity :: Lens.Lens' CreateProfileJob (Prelude.Maybe Prelude.Int)+createProfileJob_maxCapacity = Lens.lens (\CreateProfileJob' {maxCapacity} -> maxCapacity) (\s@CreateProfileJob' {} a -> s {maxCapacity = a} :: CreateProfileJob)++-- | The maximum number of times to retry the job after a job run fails.+createProfileJob_maxRetries :: Lens.Lens' CreateProfileJob (Prelude.Maybe Prelude.Natural)+createProfileJob_maxRetries = Lens.lens (\CreateProfileJob' {maxRetries} -> maxRetries) (\s@CreateProfileJob' {} a -> s {maxRetries = a} :: CreateProfileJob)++-- | Metadata tags to apply to this job.+createProfileJob_tags :: Lens.Lens' CreateProfileJob (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createProfileJob_tags = Lens.lens (\CreateProfileJob' {tags} -> tags) (\s@CreateProfileJob' {} a -> s {tags = a} :: CreateProfileJob) Prelude.. Lens.mapping Lens.coerced++-- | The job\'s timeout in minutes. A job that attempts to run longer than+-- this timeout period ends with a status of @TIMEOUT@.+createProfileJob_timeout :: Lens.Lens' CreateProfileJob (Prelude.Maybe Prelude.Natural)+createProfileJob_timeout = Lens.lens (\CreateProfileJob' {timeout} -> timeout) (\s@CreateProfileJob' {} a -> s {timeout = a} :: CreateProfileJob)++-- | List of validation configurations that are applied to the profile job.+createProfileJob_validationConfigurations :: Lens.Lens' CreateProfileJob (Prelude.Maybe (Prelude.NonEmpty ValidationConfiguration))+createProfileJob_validationConfigurations = Lens.lens (\CreateProfileJob' {validationConfigurations} -> validationConfigurations) (\s@CreateProfileJob' {} a -> s {validationConfigurations = a} :: CreateProfileJob) Prelude.. Lens.mapping Lens.coerced++-- | The name of the dataset that this job is to act upon.+createProfileJob_datasetName :: Lens.Lens' CreateProfileJob Prelude.Text+createProfileJob_datasetName = Lens.lens (\CreateProfileJob' {datasetName} -> datasetName) (\s@CreateProfileJob' {} a -> s {datasetName = a} :: CreateProfileJob)++-- | The name of the job to be created. Valid characters are alphanumeric+-- (A-Z, a-z, 0-9), hyphen (-), period (.), and space.+createProfileJob_name :: Lens.Lens' CreateProfileJob Prelude.Text+createProfileJob_name = Lens.lens (\CreateProfileJob' {name} -> name) (\s@CreateProfileJob' {} a -> s {name = a} :: CreateProfileJob)++-- | Undocumented member.+createProfileJob_outputLocation :: Lens.Lens' CreateProfileJob S3Location+createProfileJob_outputLocation = Lens.lens (\CreateProfileJob' {outputLocation} -> outputLocation) (\s@CreateProfileJob' {} a -> s {outputLocation = a} :: CreateProfileJob)++-- | The Amazon Resource Name (ARN) of the Identity and Access Management+-- (IAM) role to be assumed when DataBrew runs the job.+createProfileJob_roleArn :: Lens.Lens' CreateProfileJob Prelude.Text+createProfileJob_roleArn = Lens.lens (\CreateProfileJob' {roleArn} -> roleArn) (\s@CreateProfileJob' {} a -> s {roleArn = a} :: CreateProfileJob)++instance Core.AWSRequest CreateProfileJob where+  type+    AWSResponse CreateProfileJob =+      CreateProfileJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateProfileJobResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable CreateProfileJob where+  hashWithSalt _salt CreateProfileJob' {..} =+    _salt+      `Prelude.hashWithSalt` configuration+      `Prelude.hashWithSalt` encryptionKeyArn+      `Prelude.hashWithSalt` encryptionMode+      `Prelude.hashWithSalt` jobSample+      `Prelude.hashWithSalt` logSubscription+      `Prelude.hashWithSalt` maxCapacity+      `Prelude.hashWithSalt` maxRetries+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` timeout+      `Prelude.hashWithSalt` validationConfigurations+      `Prelude.hashWithSalt` datasetName+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` outputLocation+      `Prelude.hashWithSalt` roleArn++instance Prelude.NFData CreateProfileJob where+  rnf CreateProfileJob' {..} =+    Prelude.rnf configuration+      `Prelude.seq` Prelude.rnf encryptionKeyArn+      `Prelude.seq` Prelude.rnf encryptionMode+      `Prelude.seq` Prelude.rnf jobSample+      `Prelude.seq` Prelude.rnf logSubscription+      `Prelude.seq` Prelude.rnf maxCapacity+      `Prelude.seq` Prelude.rnf maxRetries+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf timeout+      `Prelude.seq` Prelude.rnf validationConfigurations+      `Prelude.seq` Prelude.rnf datasetName+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf outputLocation+      `Prelude.seq` Prelude.rnf roleArn++instance Data.ToHeaders CreateProfileJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateProfileJob where+  toJSON CreateProfileJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Configuration" Data..=) Prelude.<$> configuration,+            ("EncryptionKeyArn" Data..=)+              Prelude.<$> encryptionKeyArn,+            ("EncryptionMode" Data..=)+              Prelude.<$> encryptionMode,+            ("JobSample" Data..=) Prelude.<$> jobSample,+            ("LogSubscription" Data..=)+              Prelude.<$> logSubscription,+            ("MaxCapacity" Data..=) Prelude.<$> maxCapacity,+            ("MaxRetries" Data..=) Prelude.<$> maxRetries,+            ("Tags" Data..=) Prelude.<$> tags,+            ("Timeout" Data..=) Prelude.<$> timeout,+            ("ValidationConfigurations" Data..=)+              Prelude.<$> validationConfigurations,+            Prelude.Just ("DatasetName" Data..= datasetName),+            Prelude.Just ("Name" Data..= name),+            Prelude.Just+              ("OutputLocation" Data..= outputLocation),+            Prelude.Just ("RoleArn" Data..= roleArn)+          ]+      )++instance Data.ToPath CreateProfileJob where+  toPath = Prelude.const "/profileJobs"++instance Data.ToQuery CreateProfileJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateProfileJobResponse' smart constructor.+data CreateProfileJobResponse = CreateProfileJobResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the job that was created.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateProfileJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createProfileJobResponse_httpStatus' - The response's http status code.+--+-- 'name', 'createProfileJobResponse_name' - The name of the job that was created.+newCreateProfileJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  CreateProfileJobResponse+newCreateProfileJobResponse pHttpStatus_ pName_ =+  CreateProfileJobResponse'+    { httpStatus =+        pHttpStatus_,+      name = pName_+    }++-- | The response's http status code.+createProfileJobResponse_httpStatus :: Lens.Lens' CreateProfileJobResponse Prelude.Int+createProfileJobResponse_httpStatus = Lens.lens (\CreateProfileJobResponse' {httpStatus} -> httpStatus) (\s@CreateProfileJobResponse' {} a -> s {httpStatus = a} :: CreateProfileJobResponse)++-- | The name of the job that was created.+createProfileJobResponse_name :: Lens.Lens' CreateProfileJobResponse Prelude.Text+createProfileJobResponse_name = Lens.lens (\CreateProfileJobResponse' {name} -> name) (\s@CreateProfileJobResponse' {} a -> s {name = a} :: CreateProfileJobResponse)++instance Prelude.NFData CreateProfileJobResponse where+  rnf CreateProfileJobResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/CreateProject.hs view
@@ -0,0 +1,250 @@+{-# 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.DataBrew.CreateProject+-- 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 new DataBrew project.+module Amazonka.DataBrew.CreateProject+  ( -- * Creating a Request+    CreateProject (..),+    newCreateProject,++    -- * Request Lenses+    createProject_sample,+    createProject_tags,+    createProject_datasetName,+    createProject_name,+    createProject_recipeName,+    createProject_roleArn,++    -- * Destructuring the Response+    CreateProjectResponse (..),+    newCreateProjectResponse,++    -- * Response Lenses+    createProjectResponse_httpStatus,+    createProjectResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateProject' smart constructor.+data CreateProject = CreateProject'+  { sample :: Prelude.Maybe Sample,+    -- | Metadata tags to apply to this project.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name of an existing dataset to associate this project with.+    datasetName :: Prelude.Text,+    -- | A unique name for the new project. Valid characters are alphanumeric+    -- (A-Z, a-z, 0-9), hyphen (-), period (.), and space.+    name :: Prelude.Text,+    -- | The name of an existing recipe to associate with the project.+    recipeName :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the Identity and Access Management+    -- (IAM) role to be assumed for this request.+    roleArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateProject' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sample', 'createProject_sample' - Undocumented member.+--+-- 'tags', 'createProject_tags' - Metadata tags to apply to this project.+--+-- 'datasetName', 'createProject_datasetName' - The name of an existing dataset to associate this project with.+--+-- 'name', 'createProject_name' - A unique name for the new project. Valid characters are alphanumeric+-- (A-Z, a-z, 0-9), hyphen (-), period (.), and space.+--+-- 'recipeName', 'createProject_recipeName' - The name of an existing recipe to associate with the project.+--+-- 'roleArn', 'createProject_roleArn' - The Amazon Resource Name (ARN) of the Identity and Access Management+-- (IAM) role to be assumed for this request.+newCreateProject ::+  -- | 'datasetName'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  -- | 'recipeName'+  Prelude.Text ->+  -- | 'roleArn'+  Prelude.Text ->+  CreateProject+newCreateProject+  pDatasetName_+  pName_+  pRecipeName_+  pRoleArn_ =+    CreateProject'+      { sample = Prelude.Nothing,+        tags = Prelude.Nothing,+        datasetName = pDatasetName_,+        name = pName_,+        recipeName = pRecipeName_,+        roleArn = pRoleArn_+      }++-- | Undocumented member.+createProject_sample :: Lens.Lens' CreateProject (Prelude.Maybe Sample)+createProject_sample = Lens.lens (\CreateProject' {sample} -> sample) (\s@CreateProject' {} a -> s {sample = a} :: CreateProject)++-- | Metadata tags to apply to this project.+createProject_tags :: Lens.Lens' CreateProject (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createProject_tags = Lens.lens (\CreateProject' {tags} -> tags) (\s@CreateProject' {} a -> s {tags = a} :: CreateProject) Prelude.. Lens.mapping Lens.coerced++-- | The name of an existing dataset to associate this project with.+createProject_datasetName :: Lens.Lens' CreateProject Prelude.Text+createProject_datasetName = Lens.lens (\CreateProject' {datasetName} -> datasetName) (\s@CreateProject' {} a -> s {datasetName = a} :: CreateProject)++-- | A unique name for the new project. Valid characters are alphanumeric+-- (A-Z, a-z, 0-9), hyphen (-), period (.), and space.+createProject_name :: Lens.Lens' CreateProject Prelude.Text+createProject_name = Lens.lens (\CreateProject' {name} -> name) (\s@CreateProject' {} a -> s {name = a} :: CreateProject)++-- | The name of an existing recipe to associate with the project.+createProject_recipeName :: Lens.Lens' CreateProject Prelude.Text+createProject_recipeName = Lens.lens (\CreateProject' {recipeName} -> recipeName) (\s@CreateProject' {} a -> s {recipeName = a} :: CreateProject)++-- | The Amazon Resource Name (ARN) of the Identity and Access Management+-- (IAM) role to be assumed for this request.+createProject_roleArn :: Lens.Lens' CreateProject Prelude.Text+createProject_roleArn = Lens.lens (\CreateProject' {roleArn} -> roleArn) (\s@CreateProject' {} a -> s {roleArn = a} :: CreateProject)++instance Core.AWSRequest CreateProject where+  type+    AWSResponse CreateProject =+      CreateProjectResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateProjectResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable CreateProject where+  hashWithSalt _salt CreateProject' {..} =+    _salt+      `Prelude.hashWithSalt` sample+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` datasetName+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` recipeName+      `Prelude.hashWithSalt` roleArn++instance Prelude.NFData CreateProject where+  rnf CreateProject' {..} =+    Prelude.rnf sample+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf datasetName+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf recipeName+      `Prelude.seq` Prelude.rnf roleArn++instance Data.ToHeaders CreateProject where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateProject where+  toJSON CreateProject' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Sample" Data..=) Prelude.<$> sample,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("DatasetName" Data..= datasetName),+            Prelude.Just ("Name" Data..= name),+            Prelude.Just ("RecipeName" Data..= recipeName),+            Prelude.Just ("RoleArn" Data..= roleArn)+          ]+      )++instance Data.ToPath CreateProject where+  toPath = Prelude.const "/projects"++instance Data.ToQuery CreateProject where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateProjectResponse' smart constructor.+data CreateProjectResponse = CreateProjectResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the project that you created.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateProjectResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createProjectResponse_httpStatus' - The response's http status code.+--+-- 'name', 'createProjectResponse_name' - The name of the project that you created.+newCreateProjectResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  CreateProjectResponse+newCreateProjectResponse pHttpStatus_ pName_ =+  CreateProjectResponse'+    { httpStatus = pHttpStatus_,+      name = pName_+    }++-- | The response's http status code.+createProjectResponse_httpStatus :: Lens.Lens' CreateProjectResponse Prelude.Int+createProjectResponse_httpStatus = Lens.lens (\CreateProjectResponse' {httpStatus} -> httpStatus) (\s@CreateProjectResponse' {} a -> s {httpStatus = a} :: CreateProjectResponse)++-- | The name of the project that you created.+createProjectResponse_name :: Lens.Lens' CreateProjectResponse Prelude.Text+createProjectResponse_name = Lens.lens (\CreateProjectResponse' {name} -> name) (\s@CreateProjectResponse' {} a -> s {name = a} :: CreateProjectResponse)++instance Prelude.NFData CreateProjectResponse where+  rnf CreateProjectResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/CreateRecipe.hs view
@@ -0,0 +1,216 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.CreateRecipe+-- 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 new DataBrew recipe.+module Amazonka.DataBrew.CreateRecipe+  ( -- * Creating a Request+    CreateRecipe (..),+    newCreateRecipe,++    -- * Request Lenses+    createRecipe_description,+    createRecipe_tags,+    createRecipe_name,+    createRecipe_steps,++    -- * Destructuring the Response+    CreateRecipeResponse (..),+    newCreateRecipeResponse,++    -- * Response Lenses+    createRecipeResponse_httpStatus,+    createRecipeResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateRecipe' smart constructor.+data CreateRecipe = CreateRecipe'+  { -- | A description for the recipe.+    description :: Prelude.Maybe Prelude.Text,+    -- | Metadata tags to apply to this recipe.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | A unique name for the recipe. Valid characters are alphanumeric (A-Z,+    -- a-z, 0-9), hyphen (-), period (.), and space.+    name :: Prelude.Text,+    -- | An array containing the steps to be performed by the recipe. Each recipe+    -- step consists of one recipe action and (optionally) an array of+    -- condition expressions.+    steps :: [RecipeStep]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateRecipe' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'createRecipe_description' - A description for the recipe.+--+-- 'tags', 'createRecipe_tags' - Metadata tags to apply to this recipe.+--+-- 'name', 'createRecipe_name' - A unique name for the recipe. Valid characters are alphanumeric (A-Z,+-- a-z, 0-9), hyphen (-), period (.), and space.+--+-- 'steps', 'createRecipe_steps' - An array containing the steps to be performed by the recipe. Each recipe+-- step consists of one recipe action and (optionally) an array of+-- condition expressions.+newCreateRecipe ::+  -- | 'name'+  Prelude.Text ->+  CreateRecipe+newCreateRecipe pName_ =+  CreateRecipe'+    { description = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_,+      steps = Prelude.mempty+    }++-- | A description for the recipe.+createRecipe_description :: Lens.Lens' CreateRecipe (Prelude.Maybe Prelude.Text)+createRecipe_description = Lens.lens (\CreateRecipe' {description} -> description) (\s@CreateRecipe' {} a -> s {description = a} :: CreateRecipe)++-- | Metadata tags to apply to this recipe.+createRecipe_tags :: Lens.Lens' CreateRecipe (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createRecipe_tags = Lens.lens (\CreateRecipe' {tags} -> tags) (\s@CreateRecipe' {} a -> s {tags = a} :: CreateRecipe) Prelude.. Lens.mapping Lens.coerced++-- | A unique name for the recipe. Valid characters are alphanumeric (A-Z,+-- a-z, 0-9), hyphen (-), period (.), and space.+createRecipe_name :: Lens.Lens' CreateRecipe Prelude.Text+createRecipe_name = Lens.lens (\CreateRecipe' {name} -> name) (\s@CreateRecipe' {} a -> s {name = a} :: CreateRecipe)++-- | An array containing the steps to be performed by the recipe. Each recipe+-- step consists of one recipe action and (optionally) an array of+-- condition expressions.+createRecipe_steps :: Lens.Lens' CreateRecipe [RecipeStep]+createRecipe_steps = Lens.lens (\CreateRecipe' {steps} -> steps) (\s@CreateRecipe' {} a -> s {steps = a} :: CreateRecipe) Prelude.. Lens.coerced++instance Core.AWSRequest CreateRecipe where+  type AWSResponse CreateRecipe = CreateRecipeResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateRecipeResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable CreateRecipe where+  hashWithSalt _salt CreateRecipe' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` steps++instance Prelude.NFData CreateRecipe where+  rnf CreateRecipe' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf steps++instance Data.ToHeaders CreateRecipe where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateRecipe where+  toJSON CreateRecipe' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("Name" Data..= name),+            Prelude.Just ("Steps" Data..= steps)+          ]+      )++instance Data.ToPath CreateRecipe where+  toPath = Prelude.const "/recipes"++instance Data.ToQuery CreateRecipe where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateRecipeResponse' smart constructor.+data CreateRecipeResponse = CreateRecipeResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the recipe that you created.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateRecipeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createRecipeResponse_httpStatus' - The response's http status code.+--+-- 'name', 'createRecipeResponse_name' - The name of the recipe that you created.+newCreateRecipeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  CreateRecipeResponse+newCreateRecipeResponse pHttpStatus_ pName_ =+  CreateRecipeResponse'+    { httpStatus = pHttpStatus_,+      name = pName_+    }++-- | The response's http status code.+createRecipeResponse_httpStatus :: Lens.Lens' CreateRecipeResponse Prelude.Int+createRecipeResponse_httpStatus = Lens.lens (\CreateRecipeResponse' {httpStatus} -> httpStatus) (\s@CreateRecipeResponse' {} a -> s {httpStatus = a} :: CreateRecipeResponse)++-- | The name of the recipe that you created.+createRecipeResponse_name :: Lens.Lens' CreateRecipeResponse Prelude.Text+createRecipeResponse_name = Lens.lens (\CreateRecipeResponse' {name} -> name) (\s@CreateRecipeResponse' {} a -> s {name = a} :: CreateRecipeResponse)++instance Prelude.NFData CreateRecipeResponse where+  rnf CreateRecipeResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/CreateRecipeJob.hs view
@@ -0,0 +1,400 @@+{-# 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.DataBrew.CreateRecipeJob+-- 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 new job to transform input data, using steps defined in an+-- existing Glue DataBrew recipe+module Amazonka.DataBrew.CreateRecipeJob+  ( -- * Creating a Request+    CreateRecipeJob (..),+    newCreateRecipeJob,++    -- * Request Lenses+    createRecipeJob_dataCatalogOutputs,+    createRecipeJob_databaseOutputs,+    createRecipeJob_datasetName,+    createRecipeJob_encryptionKeyArn,+    createRecipeJob_encryptionMode,+    createRecipeJob_logSubscription,+    createRecipeJob_maxCapacity,+    createRecipeJob_maxRetries,+    createRecipeJob_outputs,+    createRecipeJob_projectName,+    createRecipeJob_recipeReference,+    createRecipeJob_tags,+    createRecipeJob_timeout,+    createRecipeJob_name,+    createRecipeJob_roleArn,++    -- * Destructuring the Response+    CreateRecipeJobResponse (..),+    newCreateRecipeJobResponse,++    -- * Response Lenses+    createRecipeJobResponse_httpStatus,+    createRecipeJobResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateRecipeJob' smart constructor.+data CreateRecipeJob = CreateRecipeJob'+  { -- | One or more artifacts that represent the Glue Data Catalog output from+    -- running the job.+    dataCatalogOutputs :: Prelude.Maybe (Prelude.NonEmpty DataCatalogOutput),+    -- | Represents a list of JDBC database output objects which defines the+    -- output destination for a DataBrew recipe job to write to.+    databaseOutputs :: Prelude.Maybe (Prelude.NonEmpty DatabaseOutput),+    -- | The name of the dataset that this job processes.+    datasetName :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of an encryption key that is used to+    -- protect the job.+    encryptionKeyArn :: Prelude.Maybe Prelude.Text,+    -- | The encryption mode for the job, which can be one of the following:+    --+    -- -   @SSE-KMS@ - Server-side encryption with keys managed by KMS.+    --+    -- -   @SSE-S3@ - Server-side encryption with keys managed by Amazon S3.+    encryptionMode :: Prelude.Maybe EncryptionMode,+    -- | Enables or disables Amazon CloudWatch logging for the job. If logging is+    -- enabled, CloudWatch writes one log stream for each job run.+    logSubscription :: Prelude.Maybe LogSubscription,+    -- | The maximum number of nodes that DataBrew can consume when the job+    -- processes data.+    maxCapacity :: Prelude.Maybe Prelude.Int,+    -- | The maximum number of times to retry the job after a job run fails.+    maxRetries :: Prelude.Maybe Prelude.Natural,+    -- | One or more artifacts that represent the output from running the job.+    outputs :: Prelude.Maybe (Prelude.NonEmpty Output),+    -- | Either the name of an existing project, or a combination of a recipe and+    -- a dataset to associate with the recipe.+    projectName :: Prelude.Maybe Prelude.Text,+    recipeReference :: Prelude.Maybe RecipeReference,+    -- | Metadata tags to apply to this job.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The job\'s timeout in minutes. A job that attempts to run longer than+    -- this timeout period ends with a status of @TIMEOUT@.+    timeout :: Prelude.Maybe Prelude.Natural,+    -- | A unique name for the job. Valid characters are alphanumeric (A-Z, a-z,+    -- 0-9), hyphen (-), period (.), and space.+    name :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the Identity and Access Management+    -- (IAM) role to be assumed when DataBrew runs the job.+    roleArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateRecipeJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataCatalogOutputs', 'createRecipeJob_dataCatalogOutputs' - One or more artifacts that represent the Glue Data Catalog output from+-- running the job.+--+-- 'databaseOutputs', 'createRecipeJob_databaseOutputs' - Represents a list of JDBC database output objects which defines the+-- output destination for a DataBrew recipe job to write to.+--+-- 'datasetName', 'createRecipeJob_datasetName' - The name of the dataset that this job processes.+--+-- 'encryptionKeyArn', 'createRecipeJob_encryptionKeyArn' - The Amazon Resource Name (ARN) of an encryption key that is used to+-- protect the job.+--+-- 'encryptionMode', 'createRecipeJob_encryptionMode' - The encryption mode for the job, which can be one of the following:+--+-- -   @SSE-KMS@ - Server-side encryption with keys managed by KMS.+--+-- -   @SSE-S3@ - Server-side encryption with keys managed by Amazon S3.+--+-- 'logSubscription', 'createRecipeJob_logSubscription' - Enables or disables Amazon CloudWatch logging for the job. If logging is+-- enabled, CloudWatch writes one log stream for each job run.+--+-- 'maxCapacity', 'createRecipeJob_maxCapacity' - The maximum number of nodes that DataBrew can consume when the job+-- processes data.+--+-- 'maxRetries', 'createRecipeJob_maxRetries' - The maximum number of times to retry the job after a job run fails.+--+-- 'outputs', 'createRecipeJob_outputs' - One or more artifacts that represent the output from running the job.+--+-- 'projectName', 'createRecipeJob_projectName' - Either the name of an existing project, or a combination of a recipe and+-- a dataset to associate with the recipe.+--+-- 'recipeReference', 'createRecipeJob_recipeReference' - Undocumented member.+--+-- 'tags', 'createRecipeJob_tags' - Metadata tags to apply to this job.+--+-- 'timeout', 'createRecipeJob_timeout' - The job\'s timeout in minutes. A job that attempts to run longer than+-- this timeout period ends with a status of @TIMEOUT@.+--+-- 'name', 'createRecipeJob_name' - A unique name for the job. Valid characters are alphanumeric (A-Z, a-z,+-- 0-9), hyphen (-), period (.), and space.+--+-- 'roleArn', 'createRecipeJob_roleArn' - The Amazon Resource Name (ARN) of the Identity and Access Management+-- (IAM) role to be assumed when DataBrew runs the job.+newCreateRecipeJob ::+  -- | 'name'+  Prelude.Text ->+  -- | 'roleArn'+  Prelude.Text ->+  CreateRecipeJob+newCreateRecipeJob pName_ pRoleArn_ =+  CreateRecipeJob'+    { dataCatalogOutputs =+        Prelude.Nothing,+      databaseOutputs = Prelude.Nothing,+      datasetName = Prelude.Nothing,+      encryptionKeyArn = Prelude.Nothing,+      encryptionMode = Prelude.Nothing,+      logSubscription = Prelude.Nothing,+      maxCapacity = Prelude.Nothing,+      maxRetries = Prelude.Nothing,+      outputs = Prelude.Nothing,+      projectName = Prelude.Nothing,+      recipeReference = Prelude.Nothing,+      tags = Prelude.Nothing,+      timeout = Prelude.Nothing,+      name = pName_,+      roleArn = pRoleArn_+    }++-- | One or more artifacts that represent the Glue Data Catalog output from+-- running the job.+createRecipeJob_dataCatalogOutputs :: Lens.Lens' CreateRecipeJob (Prelude.Maybe (Prelude.NonEmpty DataCatalogOutput))+createRecipeJob_dataCatalogOutputs = Lens.lens (\CreateRecipeJob' {dataCatalogOutputs} -> dataCatalogOutputs) (\s@CreateRecipeJob' {} a -> s {dataCatalogOutputs = a} :: CreateRecipeJob) Prelude.. Lens.mapping Lens.coerced++-- | Represents a list of JDBC database output objects which defines the+-- output destination for a DataBrew recipe job to write to.+createRecipeJob_databaseOutputs :: Lens.Lens' CreateRecipeJob (Prelude.Maybe (Prelude.NonEmpty DatabaseOutput))+createRecipeJob_databaseOutputs = Lens.lens (\CreateRecipeJob' {databaseOutputs} -> databaseOutputs) (\s@CreateRecipeJob' {} a -> s {databaseOutputs = a} :: CreateRecipeJob) Prelude.. Lens.mapping Lens.coerced++-- | The name of the dataset that this job processes.+createRecipeJob_datasetName :: Lens.Lens' CreateRecipeJob (Prelude.Maybe Prelude.Text)+createRecipeJob_datasetName = Lens.lens (\CreateRecipeJob' {datasetName} -> datasetName) (\s@CreateRecipeJob' {} a -> s {datasetName = a} :: CreateRecipeJob)++-- | The Amazon Resource Name (ARN) of an encryption key that is used to+-- protect the job.+createRecipeJob_encryptionKeyArn :: Lens.Lens' CreateRecipeJob (Prelude.Maybe Prelude.Text)+createRecipeJob_encryptionKeyArn = Lens.lens (\CreateRecipeJob' {encryptionKeyArn} -> encryptionKeyArn) (\s@CreateRecipeJob' {} a -> s {encryptionKeyArn = a} :: CreateRecipeJob)++-- | The encryption mode for the job, which can be one of the following:+--+-- -   @SSE-KMS@ - Server-side encryption with keys managed by KMS.+--+-- -   @SSE-S3@ - Server-side encryption with keys managed by Amazon S3.+createRecipeJob_encryptionMode :: Lens.Lens' CreateRecipeJob (Prelude.Maybe EncryptionMode)+createRecipeJob_encryptionMode = Lens.lens (\CreateRecipeJob' {encryptionMode} -> encryptionMode) (\s@CreateRecipeJob' {} a -> s {encryptionMode = a} :: CreateRecipeJob)++-- | Enables or disables Amazon CloudWatch logging for the job. If logging is+-- enabled, CloudWatch writes one log stream for each job run.+createRecipeJob_logSubscription :: Lens.Lens' CreateRecipeJob (Prelude.Maybe LogSubscription)+createRecipeJob_logSubscription = Lens.lens (\CreateRecipeJob' {logSubscription} -> logSubscription) (\s@CreateRecipeJob' {} a -> s {logSubscription = a} :: CreateRecipeJob)++-- | The maximum number of nodes that DataBrew can consume when the job+-- processes data.+createRecipeJob_maxCapacity :: Lens.Lens' CreateRecipeJob (Prelude.Maybe Prelude.Int)+createRecipeJob_maxCapacity = Lens.lens (\CreateRecipeJob' {maxCapacity} -> maxCapacity) (\s@CreateRecipeJob' {} a -> s {maxCapacity = a} :: CreateRecipeJob)++-- | The maximum number of times to retry the job after a job run fails.+createRecipeJob_maxRetries :: Lens.Lens' CreateRecipeJob (Prelude.Maybe Prelude.Natural)+createRecipeJob_maxRetries = Lens.lens (\CreateRecipeJob' {maxRetries} -> maxRetries) (\s@CreateRecipeJob' {} a -> s {maxRetries = a} :: CreateRecipeJob)++-- | One or more artifacts that represent the output from running the job.+createRecipeJob_outputs :: Lens.Lens' CreateRecipeJob (Prelude.Maybe (Prelude.NonEmpty Output))+createRecipeJob_outputs = Lens.lens (\CreateRecipeJob' {outputs} -> outputs) (\s@CreateRecipeJob' {} a -> s {outputs = a} :: CreateRecipeJob) Prelude.. Lens.mapping Lens.coerced++-- | Either the name of an existing project, or a combination of a recipe and+-- a dataset to associate with the recipe.+createRecipeJob_projectName :: Lens.Lens' CreateRecipeJob (Prelude.Maybe Prelude.Text)+createRecipeJob_projectName = Lens.lens (\CreateRecipeJob' {projectName} -> projectName) (\s@CreateRecipeJob' {} a -> s {projectName = a} :: CreateRecipeJob)++-- | Undocumented member.+createRecipeJob_recipeReference :: Lens.Lens' CreateRecipeJob (Prelude.Maybe RecipeReference)+createRecipeJob_recipeReference = Lens.lens (\CreateRecipeJob' {recipeReference} -> recipeReference) (\s@CreateRecipeJob' {} a -> s {recipeReference = a} :: CreateRecipeJob)++-- | Metadata tags to apply to this job.+createRecipeJob_tags :: Lens.Lens' CreateRecipeJob (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createRecipeJob_tags = Lens.lens (\CreateRecipeJob' {tags} -> tags) (\s@CreateRecipeJob' {} a -> s {tags = a} :: CreateRecipeJob) Prelude.. Lens.mapping Lens.coerced++-- | The job\'s timeout in minutes. A job that attempts to run longer than+-- this timeout period ends with a status of @TIMEOUT@.+createRecipeJob_timeout :: Lens.Lens' CreateRecipeJob (Prelude.Maybe Prelude.Natural)+createRecipeJob_timeout = Lens.lens (\CreateRecipeJob' {timeout} -> timeout) (\s@CreateRecipeJob' {} a -> s {timeout = a} :: CreateRecipeJob)++-- | A unique name for the job. Valid characters are alphanumeric (A-Z, a-z,+-- 0-9), hyphen (-), period (.), and space.+createRecipeJob_name :: Lens.Lens' CreateRecipeJob Prelude.Text+createRecipeJob_name = Lens.lens (\CreateRecipeJob' {name} -> name) (\s@CreateRecipeJob' {} a -> s {name = a} :: CreateRecipeJob)++-- | The Amazon Resource Name (ARN) of the Identity and Access Management+-- (IAM) role to be assumed when DataBrew runs the job.+createRecipeJob_roleArn :: Lens.Lens' CreateRecipeJob Prelude.Text+createRecipeJob_roleArn = Lens.lens (\CreateRecipeJob' {roleArn} -> roleArn) (\s@CreateRecipeJob' {} a -> s {roleArn = a} :: CreateRecipeJob)++instance Core.AWSRequest CreateRecipeJob where+  type+    AWSResponse CreateRecipeJob =+      CreateRecipeJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateRecipeJobResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable CreateRecipeJob where+  hashWithSalt _salt CreateRecipeJob' {..} =+    _salt+      `Prelude.hashWithSalt` dataCatalogOutputs+      `Prelude.hashWithSalt` databaseOutputs+      `Prelude.hashWithSalt` datasetName+      `Prelude.hashWithSalt` encryptionKeyArn+      `Prelude.hashWithSalt` encryptionMode+      `Prelude.hashWithSalt` logSubscription+      `Prelude.hashWithSalt` maxCapacity+      `Prelude.hashWithSalt` maxRetries+      `Prelude.hashWithSalt` outputs+      `Prelude.hashWithSalt` projectName+      `Prelude.hashWithSalt` recipeReference+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` timeout+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` roleArn++instance Prelude.NFData CreateRecipeJob where+  rnf CreateRecipeJob' {..} =+    Prelude.rnf dataCatalogOutputs+      `Prelude.seq` Prelude.rnf databaseOutputs+      `Prelude.seq` Prelude.rnf datasetName+      `Prelude.seq` Prelude.rnf encryptionKeyArn+      `Prelude.seq` Prelude.rnf encryptionMode+      `Prelude.seq` Prelude.rnf logSubscription+      `Prelude.seq` Prelude.rnf maxCapacity+      `Prelude.seq` Prelude.rnf maxRetries+      `Prelude.seq` Prelude.rnf outputs+      `Prelude.seq` Prelude.rnf projectName+      `Prelude.seq` Prelude.rnf recipeReference+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf timeout+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf roleArn++instance Data.ToHeaders CreateRecipeJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateRecipeJob where+  toJSON CreateRecipeJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DataCatalogOutputs" Data..=)+              Prelude.<$> dataCatalogOutputs,+            ("DatabaseOutputs" Data..=)+              Prelude.<$> databaseOutputs,+            ("DatasetName" Data..=) Prelude.<$> datasetName,+            ("EncryptionKeyArn" Data..=)+              Prelude.<$> encryptionKeyArn,+            ("EncryptionMode" Data..=)+              Prelude.<$> encryptionMode,+            ("LogSubscription" Data..=)+              Prelude.<$> logSubscription,+            ("MaxCapacity" Data..=) Prelude.<$> maxCapacity,+            ("MaxRetries" Data..=) Prelude.<$> maxRetries,+            ("Outputs" Data..=) Prelude.<$> outputs,+            ("ProjectName" Data..=) Prelude.<$> projectName,+            ("RecipeReference" Data..=)+              Prelude.<$> recipeReference,+            ("Tags" Data..=) Prelude.<$> tags,+            ("Timeout" Data..=) Prelude.<$> timeout,+            Prelude.Just ("Name" Data..= name),+            Prelude.Just ("RoleArn" Data..= roleArn)+          ]+      )++instance Data.ToPath CreateRecipeJob where+  toPath = Prelude.const "/recipeJobs"++instance Data.ToQuery CreateRecipeJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateRecipeJobResponse' smart constructor.+data CreateRecipeJobResponse = CreateRecipeJobResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the job that you created.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateRecipeJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createRecipeJobResponse_httpStatus' - The response's http status code.+--+-- 'name', 'createRecipeJobResponse_name' - The name of the job that you created.+newCreateRecipeJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  CreateRecipeJobResponse+newCreateRecipeJobResponse pHttpStatus_ pName_ =+  CreateRecipeJobResponse'+    { httpStatus = pHttpStatus_,+      name = pName_+    }++-- | The response's http status code.+createRecipeJobResponse_httpStatus :: Lens.Lens' CreateRecipeJobResponse Prelude.Int+createRecipeJobResponse_httpStatus = Lens.lens (\CreateRecipeJobResponse' {httpStatus} -> httpStatus) (\s@CreateRecipeJobResponse' {} a -> s {httpStatus = a} :: CreateRecipeJobResponse)++-- | The name of the job that you created.+createRecipeJobResponse_name :: Lens.Lens' CreateRecipeJobResponse Prelude.Text+createRecipeJobResponse_name = Lens.lens (\CreateRecipeJobResponse' {name} -> name) (\s@CreateRecipeJobResponse' {} a -> s {name = a} :: CreateRecipeJobResponse)++instance Prelude.NFData CreateRecipeJobResponse where+  rnf CreateRecipeJobResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/CreateRuleset.hs view
@@ -0,0 +1,236 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.CreateRuleset+-- 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 new ruleset that can be used in a profile job to validate the+-- data quality of a dataset.+module Amazonka.DataBrew.CreateRuleset+  ( -- * Creating a Request+    CreateRuleset (..),+    newCreateRuleset,++    -- * Request Lenses+    createRuleset_description,+    createRuleset_tags,+    createRuleset_name,+    createRuleset_targetArn,+    createRuleset_rules,++    -- * Destructuring the Response+    CreateRulesetResponse (..),+    newCreateRulesetResponse,++    -- * Response Lenses+    createRulesetResponse_httpStatus,+    createRulesetResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateRuleset' smart constructor.+data CreateRuleset = CreateRuleset'+  { -- | The description of the ruleset.+    description :: Prelude.Maybe Prelude.Text,+    -- | Metadata tags to apply to the ruleset.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name of the ruleset to be created. Valid characters are alphanumeric+    -- (A-Z, a-z, 0-9), hyphen (-), period (.), and space.+    name :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of a resource (dataset) that the ruleset+    -- is associated with.+    targetArn :: Prelude.Text,+    -- | A list of rules that are defined with the ruleset. A rule includes one+    -- or more checks to be validated on a DataBrew dataset.+    rules :: Prelude.NonEmpty Rule+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateRuleset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'createRuleset_description' - The description of the ruleset.+--+-- 'tags', 'createRuleset_tags' - Metadata tags to apply to the ruleset.+--+-- 'name', 'createRuleset_name' - The name of the ruleset to be created. Valid characters are alphanumeric+-- (A-Z, a-z, 0-9), hyphen (-), period (.), and space.+--+-- 'targetArn', 'createRuleset_targetArn' - The Amazon Resource Name (ARN) of a resource (dataset) that the ruleset+-- is associated with.+--+-- 'rules', 'createRuleset_rules' - A list of rules that are defined with the ruleset. A rule includes one+-- or more checks to be validated on a DataBrew dataset.+newCreateRuleset ::+  -- | 'name'+  Prelude.Text ->+  -- | 'targetArn'+  Prelude.Text ->+  -- | 'rules'+  Prelude.NonEmpty Rule ->+  CreateRuleset+newCreateRuleset pName_ pTargetArn_ pRules_ =+  CreateRuleset'+    { description = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_,+      targetArn = pTargetArn_,+      rules = Lens.coerced Lens.# pRules_+    }++-- | The description of the ruleset.+createRuleset_description :: Lens.Lens' CreateRuleset (Prelude.Maybe Prelude.Text)+createRuleset_description = Lens.lens (\CreateRuleset' {description} -> description) (\s@CreateRuleset' {} a -> s {description = a} :: CreateRuleset)++-- | Metadata tags to apply to the ruleset.+createRuleset_tags :: Lens.Lens' CreateRuleset (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createRuleset_tags = Lens.lens (\CreateRuleset' {tags} -> tags) (\s@CreateRuleset' {} a -> s {tags = a} :: CreateRuleset) Prelude.. Lens.mapping Lens.coerced++-- | The name of the ruleset to be created. Valid characters are alphanumeric+-- (A-Z, a-z, 0-9), hyphen (-), period (.), and space.+createRuleset_name :: Lens.Lens' CreateRuleset Prelude.Text+createRuleset_name = Lens.lens (\CreateRuleset' {name} -> name) (\s@CreateRuleset' {} a -> s {name = a} :: CreateRuleset)++-- | The Amazon Resource Name (ARN) of a resource (dataset) that the ruleset+-- is associated with.+createRuleset_targetArn :: Lens.Lens' CreateRuleset Prelude.Text+createRuleset_targetArn = Lens.lens (\CreateRuleset' {targetArn} -> targetArn) (\s@CreateRuleset' {} a -> s {targetArn = a} :: CreateRuleset)++-- | A list of rules that are defined with the ruleset. A rule includes one+-- or more checks to be validated on a DataBrew dataset.+createRuleset_rules :: Lens.Lens' CreateRuleset (Prelude.NonEmpty Rule)+createRuleset_rules = Lens.lens (\CreateRuleset' {rules} -> rules) (\s@CreateRuleset' {} a -> s {rules = a} :: CreateRuleset) Prelude.. Lens.coerced++instance Core.AWSRequest CreateRuleset where+  type+    AWSResponse CreateRuleset =+      CreateRulesetResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateRulesetResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable CreateRuleset where+  hashWithSalt _salt CreateRuleset' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` targetArn+      `Prelude.hashWithSalt` rules++instance Prelude.NFData CreateRuleset where+  rnf CreateRuleset' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf targetArn+      `Prelude.seq` Prelude.rnf rules++instance Data.ToHeaders CreateRuleset where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateRuleset where+  toJSON CreateRuleset' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("Name" Data..= name),+            Prelude.Just ("TargetArn" Data..= targetArn),+            Prelude.Just ("Rules" Data..= rules)+          ]+      )++instance Data.ToPath CreateRuleset where+  toPath = Prelude.const "/rulesets"++instance Data.ToQuery CreateRuleset where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateRulesetResponse' smart constructor.+data CreateRulesetResponse = CreateRulesetResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The unique name of the created ruleset.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateRulesetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createRulesetResponse_httpStatus' - The response's http status code.+--+-- 'name', 'createRulesetResponse_name' - The unique name of the created ruleset.+newCreateRulesetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  CreateRulesetResponse+newCreateRulesetResponse pHttpStatus_ pName_ =+  CreateRulesetResponse'+    { httpStatus = pHttpStatus_,+      name = pName_+    }++-- | The response's http status code.+createRulesetResponse_httpStatus :: Lens.Lens' CreateRulesetResponse Prelude.Int+createRulesetResponse_httpStatus = Lens.lens (\CreateRulesetResponse' {httpStatus} -> httpStatus) (\s@CreateRulesetResponse' {} a -> s {httpStatus = a} :: CreateRulesetResponse)++-- | The unique name of the created ruleset.+createRulesetResponse_name :: Lens.Lens' CreateRulesetResponse Prelude.Text+createRulesetResponse_name = Lens.lens (\CreateRulesetResponse' {name} -> name) (\s@CreateRulesetResponse' {} a -> s {name = a} :: CreateRulesetResponse)++instance Prelude.NFData CreateRulesetResponse where+  rnf CreateRulesetResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/CreateSchedule.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.DataBrew.CreateSchedule+-- 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 new schedule for one or more DataBrew jobs. Jobs can be run at+-- a specific date and time, or at regular intervals.+module Amazonka.DataBrew.CreateSchedule+  ( -- * Creating a Request+    CreateSchedule (..),+    newCreateSchedule,++    -- * Request Lenses+    createSchedule_jobNames,+    createSchedule_tags,+    createSchedule_cronExpression,+    createSchedule_name,++    -- * Destructuring the Response+    CreateScheduleResponse (..),+    newCreateScheduleResponse,++    -- * Response Lenses+    createScheduleResponse_httpStatus,+    createScheduleResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateSchedule' smart constructor.+data CreateSchedule = CreateSchedule'+  { -- | The name or names of one or more jobs to be run.+    jobNames :: Prelude.Maybe [Prelude.Text],+    -- | Metadata tags to apply to this schedule.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The date or dates and time or times when the jobs are to be run. For+    -- more information, see+    -- <https://docs.aws.amazon.com/databrew/latest/dg/jobs.cron.html Cron expressions>+    -- in the /Glue DataBrew Developer Guide/.+    cronExpression :: Prelude.Text,+    -- | A unique name for the schedule. Valid characters are alphanumeric (A-Z,+    -- a-z, 0-9), hyphen (-), period (.), and space.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSchedule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jobNames', 'createSchedule_jobNames' - The name or names of one or more jobs to be run.+--+-- 'tags', 'createSchedule_tags' - Metadata tags to apply to this schedule.+--+-- 'cronExpression', 'createSchedule_cronExpression' - The date or dates and time or times when the jobs are to be run. For+-- more information, see+-- <https://docs.aws.amazon.com/databrew/latest/dg/jobs.cron.html Cron expressions>+-- in the /Glue DataBrew Developer Guide/.+--+-- 'name', 'createSchedule_name' - A unique name for the schedule. Valid characters are alphanumeric (A-Z,+-- a-z, 0-9), hyphen (-), period (.), and space.+newCreateSchedule ::+  -- | 'cronExpression'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  CreateSchedule+newCreateSchedule pCronExpression_ pName_ =+  CreateSchedule'+    { jobNames = Prelude.Nothing,+      tags = Prelude.Nothing,+      cronExpression = pCronExpression_,+      name = pName_+    }++-- | The name or names of one or more jobs to be run.+createSchedule_jobNames :: Lens.Lens' CreateSchedule (Prelude.Maybe [Prelude.Text])+createSchedule_jobNames = Lens.lens (\CreateSchedule' {jobNames} -> jobNames) (\s@CreateSchedule' {} a -> s {jobNames = a} :: CreateSchedule) Prelude.. Lens.mapping Lens.coerced++-- | Metadata tags to apply to this schedule.+createSchedule_tags :: Lens.Lens' CreateSchedule (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createSchedule_tags = Lens.lens (\CreateSchedule' {tags} -> tags) (\s@CreateSchedule' {} a -> s {tags = a} :: CreateSchedule) Prelude.. Lens.mapping Lens.coerced++-- | The date or dates and time or times when the jobs are to be run. For+-- more information, see+-- <https://docs.aws.amazon.com/databrew/latest/dg/jobs.cron.html Cron expressions>+-- in the /Glue DataBrew Developer Guide/.+createSchedule_cronExpression :: Lens.Lens' CreateSchedule Prelude.Text+createSchedule_cronExpression = Lens.lens (\CreateSchedule' {cronExpression} -> cronExpression) (\s@CreateSchedule' {} a -> s {cronExpression = a} :: CreateSchedule)++-- | A unique name for the schedule. Valid characters are alphanumeric (A-Z,+-- a-z, 0-9), hyphen (-), period (.), and space.+createSchedule_name :: Lens.Lens' CreateSchedule Prelude.Text+createSchedule_name = Lens.lens (\CreateSchedule' {name} -> name) (\s@CreateSchedule' {} a -> s {name = a} :: CreateSchedule)++instance Core.AWSRequest CreateSchedule where+  type+    AWSResponse CreateSchedule =+      CreateScheduleResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateScheduleResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable CreateSchedule where+  hashWithSalt _salt CreateSchedule' {..} =+    _salt+      `Prelude.hashWithSalt` jobNames+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` cronExpression+      `Prelude.hashWithSalt` name++instance Prelude.NFData CreateSchedule where+  rnf CreateSchedule' {..} =+    Prelude.rnf jobNames+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf cronExpression+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders CreateSchedule where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateSchedule where+  toJSON CreateSchedule' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("JobNames" Data..=) Prelude.<$> jobNames,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ("CronExpression" Data..= cronExpression),+            Prelude.Just ("Name" Data..= name)+          ]+      )++instance Data.ToPath CreateSchedule where+  toPath = Prelude.const "/schedules"++instance Data.ToQuery CreateSchedule where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateScheduleResponse' smart constructor.+data CreateScheduleResponse = CreateScheduleResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the schedule that was created.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateScheduleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createScheduleResponse_httpStatus' - The response's http status code.+--+-- 'name', 'createScheduleResponse_name' - The name of the schedule that was created.+newCreateScheduleResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  CreateScheduleResponse+newCreateScheduleResponse pHttpStatus_ pName_ =+  CreateScheduleResponse'+    { httpStatus = pHttpStatus_,+      name = pName_+    }++-- | The response's http status code.+createScheduleResponse_httpStatus :: Lens.Lens' CreateScheduleResponse Prelude.Int+createScheduleResponse_httpStatus = Lens.lens (\CreateScheduleResponse' {httpStatus} -> httpStatus) (\s@CreateScheduleResponse' {} a -> s {httpStatus = a} :: CreateScheduleResponse)++-- | The name of the schedule that was created.+createScheduleResponse_name :: Lens.Lens' CreateScheduleResponse Prelude.Text+createScheduleResponse_name = Lens.lens (\CreateScheduleResponse' {name} -> name) (\s@CreateScheduleResponse' {} a -> s {name = a} :: CreateScheduleResponse)++instance Prelude.NFData CreateScheduleResponse where+  rnf CreateScheduleResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/DeleteDataset.hs view
@@ -0,0 +1,159 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.DeleteDataset+-- 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 dataset from DataBrew.+module Amazonka.DataBrew.DeleteDataset+  ( -- * Creating a Request+    DeleteDataset (..),+    newDeleteDataset,++    -- * Request Lenses+    deleteDataset_name,++    -- * Destructuring the Response+    DeleteDatasetResponse (..),+    newDeleteDatasetResponse,++    -- * Response Lenses+    deleteDatasetResponse_httpStatus,+    deleteDatasetResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteDataset' smart constructor.+data DeleteDataset = DeleteDataset'+  { -- | The name of the dataset to be deleted.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDataset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'deleteDataset_name' - The name of the dataset to be deleted.+newDeleteDataset ::+  -- | 'name'+  Prelude.Text ->+  DeleteDataset+newDeleteDataset pName_ =+  DeleteDataset' {name = pName_}++-- | The name of the dataset to be deleted.+deleteDataset_name :: Lens.Lens' DeleteDataset Prelude.Text+deleteDataset_name = Lens.lens (\DeleteDataset' {name} -> name) (\s@DeleteDataset' {} a -> s {name = a} :: DeleteDataset)++instance Core.AWSRequest DeleteDataset where+  type+    AWSResponse DeleteDataset =+      DeleteDatasetResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteDatasetResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable DeleteDataset where+  hashWithSalt _salt DeleteDataset' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData DeleteDataset where+  rnf DeleteDataset' {..} = Prelude.rnf name++instance Data.ToHeaders DeleteDataset where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteDataset where+  toPath DeleteDataset' {..} =+    Prelude.mconcat ["/datasets/", Data.toBS name]++instance Data.ToQuery DeleteDataset where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteDatasetResponse' smart constructor.+data DeleteDatasetResponse = DeleteDatasetResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the dataset that you deleted.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDatasetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteDatasetResponse_httpStatus' - The response's http status code.+--+-- 'name', 'deleteDatasetResponse_name' - The name of the dataset that you deleted.+newDeleteDatasetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  DeleteDatasetResponse+newDeleteDatasetResponse pHttpStatus_ pName_ =+  DeleteDatasetResponse'+    { httpStatus = pHttpStatus_,+      name = pName_+    }++-- | The response's http status code.+deleteDatasetResponse_httpStatus :: Lens.Lens' DeleteDatasetResponse Prelude.Int+deleteDatasetResponse_httpStatus = Lens.lens (\DeleteDatasetResponse' {httpStatus} -> httpStatus) (\s@DeleteDatasetResponse' {} a -> s {httpStatus = a} :: DeleteDatasetResponse)++-- | The name of the dataset that you deleted.+deleteDatasetResponse_name :: Lens.Lens' DeleteDatasetResponse Prelude.Text+deleteDatasetResponse_name = Lens.lens (\DeleteDatasetResponse' {name} -> name) (\s@DeleteDatasetResponse' {} a -> s {name = a} :: DeleteDatasetResponse)++instance Prelude.NFData DeleteDatasetResponse where+  rnf DeleteDatasetResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/DeleteJob.hs view
@@ -0,0 +1,156 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.DeleteJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified DataBrew job.+module Amazonka.DataBrew.DeleteJob+  ( -- * Creating a Request+    DeleteJob (..),+    newDeleteJob,++    -- * Request Lenses+    deleteJob_name,++    -- * Destructuring the Response+    DeleteJobResponse (..),+    newDeleteJobResponse,++    -- * Response Lenses+    deleteJobResponse_httpStatus,+    deleteJobResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteJob' smart constructor.+data DeleteJob = DeleteJob'+  { -- | The name of the job to be deleted.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'deleteJob_name' - The name of the job to be deleted.+newDeleteJob ::+  -- | 'name'+  Prelude.Text ->+  DeleteJob+newDeleteJob pName_ = DeleteJob' {name = pName_}++-- | The name of the job to be deleted.+deleteJob_name :: Lens.Lens' DeleteJob Prelude.Text+deleteJob_name = Lens.lens (\DeleteJob' {name} -> name) (\s@DeleteJob' {} a -> s {name = a} :: DeleteJob)++instance Core.AWSRequest DeleteJob where+  type AWSResponse DeleteJob = DeleteJobResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteJobResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable DeleteJob where+  hashWithSalt _salt DeleteJob' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData DeleteJob where+  rnf DeleteJob' {..} = Prelude.rnf name++instance Data.ToHeaders DeleteJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteJob where+  toPath DeleteJob' {..} =+    Prelude.mconcat ["/jobs/", Data.toBS name]++instance Data.ToQuery DeleteJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteJobResponse' smart constructor.+data DeleteJobResponse = DeleteJobResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the job that you deleted.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteJobResponse_httpStatus' - The response's http status code.+--+-- 'name', 'deleteJobResponse_name' - The name of the job that you deleted.+newDeleteJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  DeleteJobResponse+newDeleteJobResponse pHttpStatus_ pName_ =+  DeleteJobResponse'+    { httpStatus = pHttpStatus_,+      name = pName_+    }++-- | The response's http status code.+deleteJobResponse_httpStatus :: Lens.Lens' DeleteJobResponse Prelude.Int+deleteJobResponse_httpStatus = Lens.lens (\DeleteJobResponse' {httpStatus} -> httpStatus) (\s@DeleteJobResponse' {} a -> s {httpStatus = a} :: DeleteJobResponse)++-- | The name of the job that you deleted.+deleteJobResponse_name :: Lens.Lens' DeleteJobResponse Prelude.Text+deleteJobResponse_name = Lens.lens (\DeleteJobResponse' {name} -> name) (\s@DeleteJobResponse' {} a -> s {name = a} :: DeleteJobResponse)++instance Prelude.NFData DeleteJobResponse where+  rnf DeleteJobResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/DeleteProject.hs view
@@ -0,0 +1,159 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.DeleteProject+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an existing DataBrew project.+module Amazonka.DataBrew.DeleteProject+  ( -- * Creating a Request+    DeleteProject (..),+    newDeleteProject,++    -- * Request Lenses+    deleteProject_name,++    -- * Destructuring the Response+    DeleteProjectResponse (..),+    newDeleteProjectResponse,++    -- * Response Lenses+    deleteProjectResponse_httpStatus,+    deleteProjectResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteProject' smart constructor.+data DeleteProject = DeleteProject'+  { -- | The name of the project to be deleted.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteProject' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'deleteProject_name' - The name of the project to be deleted.+newDeleteProject ::+  -- | 'name'+  Prelude.Text ->+  DeleteProject+newDeleteProject pName_ =+  DeleteProject' {name = pName_}++-- | The name of the project to be deleted.+deleteProject_name :: Lens.Lens' DeleteProject Prelude.Text+deleteProject_name = Lens.lens (\DeleteProject' {name} -> name) (\s@DeleteProject' {} a -> s {name = a} :: DeleteProject)++instance Core.AWSRequest DeleteProject where+  type+    AWSResponse DeleteProject =+      DeleteProjectResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteProjectResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable DeleteProject where+  hashWithSalt _salt DeleteProject' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData DeleteProject where+  rnf DeleteProject' {..} = Prelude.rnf name++instance Data.ToHeaders DeleteProject where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteProject where+  toPath DeleteProject' {..} =+    Prelude.mconcat ["/projects/", Data.toBS name]++instance Data.ToQuery DeleteProject where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteProjectResponse' smart constructor.+data DeleteProjectResponse = DeleteProjectResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the project that you deleted.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteProjectResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteProjectResponse_httpStatus' - The response's http status code.+--+-- 'name', 'deleteProjectResponse_name' - The name of the project that you deleted.+newDeleteProjectResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  DeleteProjectResponse+newDeleteProjectResponse pHttpStatus_ pName_ =+  DeleteProjectResponse'+    { httpStatus = pHttpStatus_,+      name = pName_+    }++-- | The response's http status code.+deleteProjectResponse_httpStatus :: Lens.Lens' DeleteProjectResponse Prelude.Int+deleteProjectResponse_httpStatus = Lens.lens (\DeleteProjectResponse' {httpStatus} -> httpStatus) (\s@DeleteProjectResponse' {} a -> s {httpStatus = a} :: DeleteProjectResponse)++-- | The name of the project that you deleted.+deleteProjectResponse_name :: Lens.Lens' DeleteProjectResponse Prelude.Text+deleteProjectResponse_name = Lens.lens (\DeleteProjectResponse' {name} -> name) (\s@DeleteProjectResponse' {} a -> s {name = a} :: DeleteProjectResponse)++instance Prelude.NFData DeleteProjectResponse where+  rnf DeleteProjectResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/DeleteRecipeVersion.hs view
@@ -0,0 +1,206 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.DeleteRecipeVersion+-- 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 single version of a DataBrew recipe.+module Amazonka.DataBrew.DeleteRecipeVersion+  ( -- * Creating a Request+    DeleteRecipeVersion (..),+    newDeleteRecipeVersion,++    -- * Request Lenses+    deleteRecipeVersion_name,+    deleteRecipeVersion_recipeVersion,++    -- * Destructuring the Response+    DeleteRecipeVersionResponse (..),+    newDeleteRecipeVersionResponse,++    -- * Response Lenses+    deleteRecipeVersionResponse_httpStatus,+    deleteRecipeVersionResponse_name,+    deleteRecipeVersionResponse_recipeVersion,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteRecipeVersion' smart constructor.+data DeleteRecipeVersion = DeleteRecipeVersion'+  { -- | The name of the recipe.+    name :: Prelude.Text,+    -- | The version of the recipe to be deleted. You can specify a numeric+    -- versions (@X.Y@) or @LATEST_WORKING@. @LATEST_PUBLISHED@ is not+    -- supported.+    recipeVersion :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRecipeVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'deleteRecipeVersion_name' - The name of the recipe.+--+-- 'recipeVersion', 'deleteRecipeVersion_recipeVersion' - The version of the recipe to be deleted. You can specify a numeric+-- versions (@X.Y@) or @LATEST_WORKING@. @LATEST_PUBLISHED@ is not+-- supported.+newDeleteRecipeVersion ::+  -- | 'name'+  Prelude.Text ->+  -- | 'recipeVersion'+  Prelude.Text ->+  DeleteRecipeVersion+newDeleteRecipeVersion pName_ pRecipeVersion_ =+  DeleteRecipeVersion'+    { name = pName_,+      recipeVersion = pRecipeVersion_+    }++-- | The name of the recipe.+deleteRecipeVersion_name :: Lens.Lens' DeleteRecipeVersion Prelude.Text+deleteRecipeVersion_name = Lens.lens (\DeleteRecipeVersion' {name} -> name) (\s@DeleteRecipeVersion' {} a -> s {name = a} :: DeleteRecipeVersion)++-- | The version of the recipe to be deleted. You can specify a numeric+-- versions (@X.Y@) or @LATEST_WORKING@. @LATEST_PUBLISHED@ is not+-- supported.+deleteRecipeVersion_recipeVersion :: Lens.Lens' DeleteRecipeVersion Prelude.Text+deleteRecipeVersion_recipeVersion = Lens.lens (\DeleteRecipeVersion' {recipeVersion} -> recipeVersion) (\s@DeleteRecipeVersion' {} a -> s {recipeVersion = a} :: DeleteRecipeVersion)++instance Core.AWSRequest DeleteRecipeVersion where+  type+    AWSResponse DeleteRecipeVersion =+      DeleteRecipeVersionResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteRecipeVersionResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+            Prelude.<*> (x Data..:> "RecipeVersion")+      )++instance Prelude.Hashable DeleteRecipeVersion where+  hashWithSalt _salt DeleteRecipeVersion' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` recipeVersion++instance Prelude.NFData DeleteRecipeVersion where+  rnf DeleteRecipeVersion' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf recipeVersion++instance Data.ToHeaders DeleteRecipeVersion where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteRecipeVersion where+  toPath DeleteRecipeVersion' {..} =+    Prelude.mconcat+      [ "/recipes/",+        Data.toBS name,+        "/recipeVersion/",+        Data.toBS recipeVersion+      ]++instance Data.ToQuery DeleteRecipeVersion where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteRecipeVersionResponse' smart constructor.+data DeleteRecipeVersionResponse = DeleteRecipeVersionResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the recipe that was deleted.+    name :: Prelude.Text,+    -- | The version of the recipe that was deleted.+    recipeVersion :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRecipeVersionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteRecipeVersionResponse_httpStatus' - The response's http status code.+--+-- 'name', 'deleteRecipeVersionResponse_name' - The name of the recipe that was deleted.+--+-- 'recipeVersion', 'deleteRecipeVersionResponse_recipeVersion' - The version of the recipe that was deleted.+newDeleteRecipeVersionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  -- | 'recipeVersion'+  Prelude.Text ->+  DeleteRecipeVersionResponse+newDeleteRecipeVersionResponse+  pHttpStatus_+  pName_+  pRecipeVersion_ =+    DeleteRecipeVersionResponse'+      { httpStatus =+          pHttpStatus_,+        name = pName_,+        recipeVersion = pRecipeVersion_+      }++-- | The response's http status code.+deleteRecipeVersionResponse_httpStatus :: Lens.Lens' DeleteRecipeVersionResponse Prelude.Int+deleteRecipeVersionResponse_httpStatus = Lens.lens (\DeleteRecipeVersionResponse' {httpStatus} -> httpStatus) (\s@DeleteRecipeVersionResponse' {} a -> s {httpStatus = a} :: DeleteRecipeVersionResponse)++-- | The name of the recipe that was deleted.+deleteRecipeVersionResponse_name :: Lens.Lens' DeleteRecipeVersionResponse Prelude.Text+deleteRecipeVersionResponse_name = Lens.lens (\DeleteRecipeVersionResponse' {name} -> name) (\s@DeleteRecipeVersionResponse' {} a -> s {name = a} :: DeleteRecipeVersionResponse)++-- | The version of the recipe that was deleted.+deleteRecipeVersionResponse_recipeVersion :: Lens.Lens' DeleteRecipeVersionResponse Prelude.Text+deleteRecipeVersionResponse_recipeVersion = Lens.lens (\DeleteRecipeVersionResponse' {recipeVersion} -> recipeVersion) (\s@DeleteRecipeVersionResponse' {} a -> s {recipeVersion = a} :: DeleteRecipeVersionResponse)++instance Prelude.NFData DeleteRecipeVersionResponse where+  rnf DeleteRecipeVersionResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf recipeVersion
+ gen/Amazonka/DataBrew/DeleteRuleset.hs view
@@ -0,0 +1,159 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.DeleteRuleset+-- 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 ruleset.+module Amazonka.DataBrew.DeleteRuleset+  ( -- * Creating a Request+    DeleteRuleset (..),+    newDeleteRuleset,++    -- * Request Lenses+    deleteRuleset_name,++    -- * Destructuring the Response+    DeleteRulesetResponse (..),+    newDeleteRulesetResponse,++    -- * Response Lenses+    deleteRulesetResponse_httpStatus,+    deleteRulesetResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteRuleset' smart constructor.+data DeleteRuleset = DeleteRuleset'+  { -- | The name of the ruleset to be deleted.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRuleset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'deleteRuleset_name' - The name of the ruleset to be deleted.+newDeleteRuleset ::+  -- | 'name'+  Prelude.Text ->+  DeleteRuleset+newDeleteRuleset pName_ =+  DeleteRuleset' {name = pName_}++-- | The name of the ruleset to be deleted.+deleteRuleset_name :: Lens.Lens' DeleteRuleset Prelude.Text+deleteRuleset_name = Lens.lens (\DeleteRuleset' {name} -> name) (\s@DeleteRuleset' {} a -> s {name = a} :: DeleteRuleset)++instance Core.AWSRequest DeleteRuleset where+  type+    AWSResponse DeleteRuleset =+      DeleteRulesetResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteRulesetResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable DeleteRuleset where+  hashWithSalt _salt DeleteRuleset' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData DeleteRuleset where+  rnf DeleteRuleset' {..} = Prelude.rnf name++instance Data.ToHeaders DeleteRuleset where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteRuleset where+  toPath DeleteRuleset' {..} =+    Prelude.mconcat ["/rulesets/", Data.toBS name]++instance Data.ToQuery DeleteRuleset where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteRulesetResponse' smart constructor.+data DeleteRulesetResponse = DeleteRulesetResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the deleted ruleset.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRulesetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteRulesetResponse_httpStatus' - The response's http status code.+--+-- 'name', 'deleteRulesetResponse_name' - The name of the deleted ruleset.+newDeleteRulesetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  DeleteRulesetResponse+newDeleteRulesetResponse pHttpStatus_ pName_ =+  DeleteRulesetResponse'+    { httpStatus = pHttpStatus_,+      name = pName_+    }++-- | The response's http status code.+deleteRulesetResponse_httpStatus :: Lens.Lens' DeleteRulesetResponse Prelude.Int+deleteRulesetResponse_httpStatus = Lens.lens (\DeleteRulesetResponse' {httpStatus} -> httpStatus) (\s@DeleteRulesetResponse' {} a -> s {httpStatus = a} :: DeleteRulesetResponse)++-- | The name of the deleted ruleset.+deleteRulesetResponse_name :: Lens.Lens' DeleteRulesetResponse Prelude.Text+deleteRulesetResponse_name = Lens.lens (\DeleteRulesetResponse' {name} -> name) (\s@DeleteRulesetResponse' {} a -> s {name = a} :: DeleteRulesetResponse)++instance Prelude.NFData DeleteRulesetResponse where+  rnf DeleteRulesetResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/DeleteSchedule.hs view
@@ -0,0 +1,159 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.DeleteSchedule+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified DataBrew schedule.+module Amazonka.DataBrew.DeleteSchedule+  ( -- * Creating a Request+    DeleteSchedule (..),+    newDeleteSchedule,++    -- * Request Lenses+    deleteSchedule_name,++    -- * Destructuring the Response+    DeleteScheduleResponse (..),+    newDeleteScheduleResponse,++    -- * Response Lenses+    deleteScheduleResponse_httpStatus,+    deleteScheduleResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteSchedule' smart constructor.+data DeleteSchedule = DeleteSchedule'+  { -- | The name of the schedule to be deleted.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSchedule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'deleteSchedule_name' - The name of the schedule to be deleted.+newDeleteSchedule ::+  -- | 'name'+  Prelude.Text ->+  DeleteSchedule+newDeleteSchedule pName_ =+  DeleteSchedule' {name = pName_}++-- | The name of the schedule to be deleted.+deleteSchedule_name :: Lens.Lens' DeleteSchedule Prelude.Text+deleteSchedule_name = Lens.lens (\DeleteSchedule' {name} -> name) (\s@DeleteSchedule' {} a -> s {name = a} :: DeleteSchedule)++instance Core.AWSRequest DeleteSchedule where+  type+    AWSResponse DeleteSchedule =+      DeleteScheduleResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteScheduleResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable DeleteSchedule where+  hashWithSalt _salt DeleteSchedule' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData DeleteSchedule where+  rnf DeleteSchedule' {..} = Prelude.rnf name++instance Data.ToHeaders DeleteSchedule where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteSchedule where+  toPath DeleteSchedule' {..} =+    Prelude.mconcat ["/schedules/", Data.toBS name]++instance Data.ToQuery DeleteSchedule where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteScheduleResponse' smart constructor.+data DeleteScheduleResponse = DeleteScheduleResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the schedule that was deleted.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteScheduleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteScheduleResponse_httpStatus' - The response's http status code.+--+-- 'name', 'deleteScheduleResponse_name' - The name of the schedule that was deleted.+newDeleteScheduleResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  DeleteScheduleResponse+newDeleteScheduleResponse pHttpStatus_ pName_ =+  DeleteScheduleResponse'+    { httpStatus = pHttpStatus_,+      name = pName_+    }++-- | The response's http status code.+deleteScheduleResponse_httpStatus :: Lens.Lens' DeleteScheduleResponse Prelude.Int+deleteScheduleResponse_httpStatus = Lens.lens (\DeleteScheduleResponse' {httpStatus} -> httpStatus) (\s@DeleteScheduleResponse' {} a -> s {httpStatus = a} :: DeleteScheduleResponse)++-- | The name of the schedule that was deleted.+deleteScheduleResponse_name :: Lens.Lens' DeleteScheduleResponse Prelude.Text+deleteScheduleResponse_name = Lens.lens (\DeleteScheduleResponse' {name} -> name) (\s@DeleteScheduleResponse' {} a -> s {name = a} :: DeleteScheduleResponse)++instance Prelude.NFData DeleteScheduleResponse where+  rnf DeleteScheduleResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/DescribeDataset.hs view
@@ -0,0 +1,304 @@+{-# 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.DataBrew.DescribeDataset+-- 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 definition of a specific DataBrew dataset.+module Amazonka.DataBrew.DescribeDataset+  ( -- * Creating a Request+    DescribeDataset (..),+    newDescribeDataset,++    -- * Request Lenses+    describeDataset_name,++    -- * Destructuring the Response+    DescribeDatasetResponse (..),+    newDescribeDatasetResponse,++    -- * Response Lenses+    describeDatasetResponse_createDate,+    describeDatasetResponse_createdBy,+    describeDatasetResponse_format,+    describeDatasetResponse_formatOptions,+    describeDatasetResponse_lastModifiedBy,+    describeDatasetResponse_lastModifiedDate,+    describeDatasetResponse_pathOptions,+    describeDatasetResponse_resourceArn,+    describeDatasetResponse_source,+    describeDatasetResponse_tags,+    describeDatasetResponse_httpStatus,+    describeDatasetResponse_name,+    describeDatasetResponse_input,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeDataset' smart constructor.+data DescribeDataset = DescribeDataset'+  { -- | The name of the dataset to be described.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDataset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'describeDataset_name' - The name of the dataset to be described.+newDescribeDataset ::+  -- | 'name'+  Prelude.Text ->+  DescribeDataset+newDescribeDataset pName_ =+  DescribeDataset' {name = pName_}++-- | The name of the dataset to be described.+describeDataset_name :: Lens.Lens' DescribeDataset Prelude.Text+describeDataset_name = Lens.lens (\DescribeDataset' {name} -> name) (\s@DescribeDataset' {} a -> s {name = a} :: DescribeDataset)++instance Core.AWSRequest DescribeDataset where+  type+    AWSResponse DescribeDataset =+      DescribeDatasetResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeDatasetResponse'+            Prelude.<$> (x Data..?> "CreateDate")+            Prelude.<*> (x Data..?> "CreatedBy")+            Prelude.<*> (x Data..?> "Format")+            Prelude.<*> (x Data..?> "FormatOptions")+            Prelude.<*> (x Data..?> "LastModifiedBy")+            Prelude.<*> (x Data..?> "LastModifiedDate")+            Prelude.<*> (x Data..?> "PathOptions")+            Prelude.<*> (x Data..?> "ResourceArn")+            Prelude.<*> (x Data..?> "Source")+            Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+            Prelude.<*> (x Data..:> "Input")+      )++instance Prelude.Hashable DescribeDataset where+  hashWithSalt _salt DescribeDataset' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData DescribeDataset where+  rnf DescribeDataset' {..} = Prelude.rnf name++instance Data.ToHeaders DescribeDataset where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeDataset where+  toPath DescribeDataset' {..} =+    Prelude.mconcat ["/datasets/", Data.toBS name]++instance Data.ToQuery DescribeDataset where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeDatasetResponse' smart constructor.+data DescribeDatasetResponse = DescribeDatasetResponse'+  { -- | The date and time that the dataset was created.+    createDate :: Prelude.Maybe Data.POSIX,+    -- | The identifier (user name) of the user who created the dataset.+    createdBy :: Prelude.Maybe Prelude.Text,+    -- | The file format of a dataset that is created from an Amazon S3 file or+    -- folder.+    format :: Prelude.Maybe InputFormat,+    formatOptions :: Prelude.Maybe FormatOptions,+    -- | The identifier (user name) of the user who last modified the dataset.+    lastModifiedBy :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the dataset was last modified.+    lastModifiedDate :: Prelude.Maybe Data.POSIX,+    -- | A set of options that defines how DataBrew interprets an Amazon S3 path+    -- of the dataset.+    pathOptions :: Prelude.Maybe PathOptions,+    -- | The Amazon Resource Name (ARN) of the dataset.+    resourceArn :: Prelude.Maybe Prelude.Text,+    -- | The location of the data for this dataset, Amazon S3 or the Glue Data+    -- Catalog.+    source :: Prelude.Maybe Source,+    -- | Metadata tags associated with this dataset.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the dataset.+    name :: Prelude.Text,+    input :: Input+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDatasetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createDate', 'describeDatasetResponse_createDate' - The date and time that the dataset was created.+--+-- 'createdBy', 'describeDatasetResponse_createdBy' - The identifier (user name) of the user who created the dataset.+--+-- 'format', 'describeDatasetResponse_format' - The file format of a dataset that is created from an Amazon S3 file or+-- folder.+--+-- 'formatOptions', 'describeDatasetResponse_formatOptions' - Undocumented member.+--+-- 'lastModifiedBy', 'describeDatasetResponse_lastModifiedBy' - The identifier (user name) of the user who last modified the dataset.+--+-- 'lastModifiedDate', 'describeDatasetResponse_lastModifiedDate' - The date and time that the dataset was last modified.+--+-- 'pathOptions', 'describeDatasetResponse_pathOptions' - A set of options that defines how DataBrew interprets an Amazon S3 path+-- of the dataset.+--+-- 'resourceArn', 'describeDatasetResponse_resourceArn' - The Amazon Resource Name (ARN) of the dataset.+--+-- 'source', 'describeDatasetResponse_source' - The location of the data for this dataset, Amazon S3 or the Glue Data+-- Catalog.+--+-- 'tags', 'describeDatasetResponse_tags' - Metadata tags associated with this dataset.+--+-- 'httpStatus', 'describeDatasetResponse_httpStatus' - The response's http status code.+--+-- 'name', 'describeDatasetResponse_name' - The name of the dataset.+--+-- 'input', 'describeDatasetResponse_input' - Undocumented member.+newDescribeDatasetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  -- | 'input'+  Input ->+  DescribeDatasetResponse+newDescribeDatasetResponse+  pHttpStatus_+  pName_+  pInput_ =+    DescribeDatasetResponse'+      { createDate =+          Prelude.Nothing,+        createdBy = Prelude.Nothing,+        format = Prelude.Nothing,+        formatOptions = Prelude.Nothing,+        lastModifiedBy = Prelude.Nothing,+        lastModifiedDate = Prelude.Nothing,+        pathOptions = Prelude.Nothing,+        resourceArn = Prelude.Nothing,+        source = Prelude.Nothing,+        tags = Prelude.Nothing,+        httpStatus = pHttpStatus_,+        name = pName_,+        input = pInput_+      }++-- | The date and time that the dataset was created.+describeDatasetResponse_createDate :: Lens.Lens' DescribeDatasetResponse (Prelude.Maybe Prelude.UTCTime)+describeDatasetResponse_createDate = Lens.lens (\DescribeDatasetResponse' {createDate} -> createDate) (\s@DescribeDatasetResponse' {} a -> s {createDate = a} :: DescribeDatasetResponse) Prelude.. Lens.mapping Data._Time++-- | The identifier (user name) of the user who created the dataset.+describeDatasetResponse_createdBy :: Lens.Lens' DescribeDatasetResponse (Prelude.Maybe Prelude.Text)+describeDatasetResponse_createdBy = Lens.lens (\DescribeDatasetResponse' {createdBy} -> createdBy) (\s@DescribeDatasetResponse' {} a -> s {createdBy = a} :: DescribeDatasetResponse)++-- | The file format of a dataset that is created from an Amazon S3 file or+-- folder.+describeDatasetResponse_format :: Lens.Lens' DescribeDatasetResponse (Prelude.Maybe InputFormat)+describeDatasetResponse_format = Lens.lens (\DescribeDatasetResponse' {format} -> format) (\s@DescribeDatasetResponse' {} a -> s {format = a} :: DescribeDatasetResponse)++-- | Undocumented member.+describeDatasetResponse_formatOptions :: Lens.Lens' DescribeDatasetResponse (Prelude.Maybe FormatOptions)+describeDatasetResponse_formatOptions = Lens.lens (\DescribeDatasetResponse' {formatOptions} -> formatOptions) (\s@DescribeDatasetResponse' {} a -> s {formatOptions = a} :: DescribeDatasetResponse)++-- | The identifier (user name) of the user who last modified the dataset.+describeDatasetResponse_lastModifiedBy :: Lens.Lens' DescribeDatasetResponse (Prelude.Maybe Prelude.Text)+describeDatasetResponse_lastModifiedBy = Lens.lens (\DescribeDatasetResponse' {lastModifiedBy} -> lastModifiedBy) (\s@DescribeDatasetResponse' {} a -> s {lastModifiedBy = a} :: DescribeDatasetResponse)++-- | The date and time that the dataset was last modified.+describeDatasetResponse_lastModifiedDate :: Lens.Lens' DescribeDatasetResponse (Prelude.Maybe Prelude.UTCTime)+describeDatasetResponse_lastModifiedDate = Lens.lens (\DescribeDatasetResponse' {lastModifiedDate} -> lastModifiedDate) (\s@DescribeDatasetResponse' {} a -> s {lastModifiedDate = a} :: DescribeDatasetResponse) Prelude.. Lens.mapping Data._Time++-- | A set of options that defines how DataBrew interprets an Amazon S3 path+-- of the dataset.+describeDatasetResponse_pathOptions :: Lens.Lens' DescribeDatasetResponse (Prelude.Maybe PathOptions)+describeDatasetResponse_pathOptions = Lens.lens (\DescribeDatasetResponse' {pathOptions} -> pathOptions) (\s@DescribeDatasetResponse' {} a -> s {pathOptions = a} :: DescribeDatasetResponse)++-- | The Amazon Resource Name (ARN) of the dataset.+describeDatasetResponse_resourceArn :: Lens.Lens' DescribeDatasetResponse (Prelude.Maybe Prelude.Text)+describeDatasetResponse_resourceArn = Lens.lens (\DescribeDatasetResponse' {resourceArn} -> resourceArn) (\s@DescribeDatasetResponse' {} a -> s {resourceArn = a} :: DescribeDatasetResponse)++-- | The location of the data for this dataset, Amazon S3 or the Glue Data+-- Catalog.+describeDatasetResponse_source :: Lens.Lens' DescribeDatasetResponse (Prelude.Maybe Source)+describeDatasetResponse_source = Lens.lens (\DescribeDatasetResponse' {source} -> source) (\s@DescribeDatasetResponse' {} a -> s {source = a} :: DescribeDatasetResponse)++-- | Metadata tags associated with this dataset.+describeDatasetResponse_tags :: Lens.Lens' DescribeDatasetResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+describeDatasetResponse_tags = Lens.lens (\DescribeDatasetResponse' {tags} -> tags) (\s@DescribeDatasetResponse' {} a -> s {tags = a} :: DescribeDatasetResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeDatasetResponse_httpStatus :: Lens.Lens' DescribeDatasetResponse Prelude.Int+describeDatasetResponse_httpStatus = Lens.lens (\DescribeDatasetResponse' {httpStatus} -> httpStatus) (\s@DescribeDatasetResponse' {} a -> s {httpStatus = a} :: DescribeDatasetResponse)++-- | The name of the dataset.+describeDatasetResponse_name :: Lens.Lens' DescribeDatasetResponse Prelude.Text+describeDatasetResponse_name = Lens.lens (\DescribeDatasetResponse' {name} -> name) (\s@DescribeDatasetResponse' {} a -> s {name = a} :: DescribeDatasetResponse)++-- | Undocumented member.+describeDatasetResponse_input :: Lens.Lens' DescribeDatasetResponse Input+describeDatasetResponse_input = Lens.lens (\DescribeDatasetResponse' {input} -> input) (\s@DescribeDatasetResponse' {} a -> s {input = a} :: DescribeDatasetResponse)++instance Prelude.NFData DescribeDatasetResponse where+  rnf DescribeDatasetResponse' {..} =+    Prelude.rnf createDate+      `Prelude.seq` Prelude.rnf createdBy+      `Prelude.seq` Prelude.rnf format+      `Prelude.seq` Prelude.rnf formatOptions+      `Prelude.seq` Prelude.rnf lastModifiedBy+      `Prelude.seq` Prelude.rnf lastModifiedDate+      `Prelude.seq` Prelude.rnf pathOptions+      `Prelude.seq` Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf source+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf input
+ gen/Amazonka/DataBrew/DescribeJob.hs view
@@ -0,0 +1,489 @@+{-# 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.DataBrew.DescribeJob+-- 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 definition of a specific DataBrew job.+module Amazonka.DataBrew.DescribeJob+  ( -- * Creating a Request+    DescribeJob (..),+    newDescribeJob,++    -- * Request Lenses+    describeJob_name,++    -- * Destructuring the Response+    DescribeJobResponse (..),+    newDescribeJobResponse,++    -- * Response Lenses+    describeJobResponse_createDate,+    describeJobResponse_createdBy,+    describeJobResponse_dataCatalogOutputs,+    describeJobResponse_databaseOutputs,+    describeJobResponse_datasetName,+    describeJobResponse_encryptionKeyArn,+    describeJobResponse_encryptionMode,+    describeJobResponse_jobSample,+    describeJobResponse_lastModifiedBy,+    describeJobResponse_lastModifiedDate,+    describeJobResponse_logSubscription,+    describeJobResponse_maxCapacity,+    describeJobResponse_maxRetries,+    describeJobResponse_outputs,+    describeJobResponse_profileConfiguration,+    describeJobResponse_projectName,+    describeJobResponse_recipeReference,+    describeJobResponse_resourceArn,+    describeJobResponse_roleArn,+    describeJobResponse_tags,+    describeJobResponse_timeout,+    describeJobResponse_type,+    describeJobResponse_validationConfigurations,+    describeJobResponse_httpStatus,+    describeJobResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeJob' smart constructor.+data DescribeJob = DescribeJob'+  { -- | The name of the job to be described.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'describeJob_name' - The name of the job to be described.+newDescribeJob ::+  -- | 'name'+  Prelude.Text ->+  DescribeJob+newDescribeJob pName_ = DescribeJob' {name = pName_}++-- | The name of the job to be described.+describeJob_name :: Lens.Lens' DescribeJob Prelude.Text+describeJob_name = Lens.lens (\DescribeJob' {name} -> name) (\s@DescribeJob' {} a -> s {name = a} :: DescribeJob)++instance Core.AWSRequest DescribeJob where+  type AWSResponse DescribeJob = DescribeJobResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeJobResponse'+            Prelude.<$> (x Data..?> "CreateDate")+            Prelude.<*> (x Data..?> "CreatedBy")+            Prelude.<*> (x Data..?> "DataCatalogOutputs")+            Prelude.<*> (x Data..?> "DatabaseOutputs")+            Prelude.<*> (x Data..?> "DatasetName")+            Prelude.<*> (x Data..?> "EncryptionKeyArn")+            Prelude.<*> (x Data..?> "EncryptionMode")+            Prelude.<*> (x Data..?> "JobSample")+            Prelude.<*> (x Data..?> "LastModifiedBy")+            Prelude.<*> (x Data..?> "LastModifiedDate")+            Prelude.<*> (x Data..?> "LogSubscription")+            Prelude.<*> (x Data..?> "MaxCapacity")+            Prelude.<*> (x Data..?> "MaxRetries")+            Prelude.<*> (x Data..?> "Outputs")+            Prelude.<*> (x Data..?> "ProfileConfiguration")+            Prelude.<*> (x Data..?> "ProjectName")+            Prelude.<*> (x Data..?> "RecipeReference")+            Prelude.<*> (x Data..?> "ResourceArn")+            Prelude.<*> (x Data..?> "RoleArn")+            Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "Timeout")+            Prelude.<*> (x Data..?> "Type")+            Prelude.<*> (x Data..?> "ValidationConfigurations")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable DescribeJob where+  hashWithSalt _salt DescribeJob' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData DescribeJob where+  rnf DescribeJob' {..} = Prelude.rnf name++instance Data.ToHeaders DescribeJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeJob where+  toPath DescribeJob' {..} =+    Prelude.mconcat ["/jobs/", Data.toBS name]++instance Data.ToQuery DescribeJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeJobResponse' smart constructor.+data DescribeJobResponse = DescribeJobResponse'+  { -- | The date and time that the job was created.+    createDate :: Prelude.Maybe Data.POSIX,+    -- | The identifier (user name) of the user associated with the creation of+    -- the job.+    createdBy :: Prelude.Maybe Prelude.Text,+    -- | One or more artifacts that represent the Glue Data Catalog output from+    -- running the job.+    dataCatalogOutputs :: Prelude.Maybe (Prelude.NonEmpty DataCatalogOutput),+    -- | Represents a list of JDBC database output objects which defines the+    -- output destination for a DataBrew recipe job to write into.+    databaseOutputs :: Prelude.Maybe (Prelude.NonEmpty DatabaseOutput),+    -- | The dataset that the job acts upon.+    datasetName :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of an encryption key that is used to+    -- protect the job.+    encryptionKeyArn :: Prelude.Maybe Prelude.Text,+    -- | The encryption mode for the job, which can be one of the following:+    --+    -- -   @SSE-KMS@ - Server-side encryption with keys managed by KMS.+    --+    -- -   @SSE-S3@ - Server-side encryption with keys managed by Amazon S3.+    encryptionMode :: Prelude.Maybe EncryptionMode,+    -- | Sample configuration for profile jobs only. Determines the number of+    -- rows on which the profile job will be executed.+    jobSample :: Prelude.Maybe JobSample,+    -- | The identifier (user name) of the user who last modified the job.+    lastModifiedBy :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the job was last modified.+    lastModifiedDate :: Prelude.Maybe Data.POSIX,+    -- | Indicates whether Amazon CloudWatch logging is enabled for this job.+    logSubscription :: Prelude.Maybe LogSubscription,+    -- | The maximum number of compute nodes that DataBrew can consume when the+    -- job processes data.+    maxCapacity :: Prelude.Maybe Prelude.Int,+    -- | The maximum number of times to retry the job after a job run fails.+    maxRetries :: Prelude.Maybe Prelude.Natural,+    -- | One or more artifacts that represent the output from running the job.+    outputs :: Prelude.Maybe (Prelude.NonEmpty Output),+    -- | Configuration for profile jobs. Used to select columns, do evaluations,+    -- and override default parameters of evaluations. When configuration is+    -- null, the profile job will run with default settings.+    profileConfiguration :: Prelude.Maybe ProfileConfiguration,+    -- | The DataBrew project associated with this job.+    projectName :: Prelude.Maybe Prelude.Text,+    recipeReference :: Prelude.Maybe RecipeReference,+    -- | The Amazon Resource Name (ARN) of the job.+    resourceArn :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the Identity and Access Management (IAM) role to be assumed+    -- when DataBrew runs the job.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | Metadata tags associated with this job.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The job\'s timeout in minutes. A job that attempts to run longer than+    -- this timeout period ends with a status of @TIMEOUT@.+    timeout :: Prelude.Maybe Prelude.Natural,+    -- | The job type, which must be one of the following:+    --+    -- -   @PROFILE@ - The job analyzes the dataset to determine its size, data+    --     types, data distribution, and more.+    --+    -- -   @RECIPE@ - The job applies one or more transformations to a dataset.+    type' :: Prelude.Maybe JobType,+    -- | List of validation configurations that are applied to the profile job.+    validationConfigurations :: Prelude.Maybe (Prelude.NonEmpty ValidationConfiguration),+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the job.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createDate', 'describeJobResponse_createDate' - The date and time that the job was created.+--+-- 'createdBy', 'describeJobResponse_createdBy' - The identifier (user name) of the user associated with the creation of+-- the job.+--+-- 'dataCatalogOutputs', 'describeJobResponse_dataCatalogOutputs' - One or more artifacts that represent the Glue Data Catalog output from+-- running the job.+--+-- 'databaseOutputs', 'describeJobResponse_databaseOutputs' - Represents a list of JDBC database output objects which defines the+-- output destination for a DataBrew recipe job to write into.+--+-- 'datasetName', 'describeJobResponse_datasetName' - The dataset that the job acts upon.+--+-- 'encryptionKeyArn', 'describeJobResponse_encryptionKeyArn' - The Amazon Resource Name (ARN) of an encryption key that is used to+-- protect the job.+--+-- 'encryptionMode', 'describeJobResponse_encryptionMode' - The encryption mode for the job, which can be one of the following:+--+-- -   @SSE-KMS@ - Server-side encryption with keys managed by KMS.+--+-- -   @SSE-S3@ - Server-side encryption with keys managed by Amazon S3.+--+-- 'jobSample', 'describeJobResponse_jobSample' - Sample configuration for profile jobs only. Determines the number of+-- rows on which the profile job will be executed.+--+-- 'lastModifiedBy', 'describeJobResponse_lastModifiedBy' - The identifier (user name) of the user who last modified the job.+--+-- 'lastModifiedDate', 'describeJobResponse_lastModifiedDate' - The date and time that the job was last modified.+--+-- 'logSubscription', 'describeJobResponse_logSubscription' - Indicates whether Amazon CloudWatch logging is enabled for this job.+--+-- 'maxCapacity', 'describeJobResponse_maxCapacity' - The maximum number of compute nodes that DataBrew can consume when the+-- job processes data.+--+-- 'maxRetries', 'describeJobResponse_maxRetries' - The maximum number of times to retry the job after a job run fails.+--+-- 'outputs', 'describeJobResponse_outputs' - One or more artifacts that represent the output from running the job.+--+-- 'profileConfiguration', 'describeJobResponse_profileConfiguration' - Configuration for profile jobs. Used to select columns, do evaluations,+-- and override default parameters of evaluations. When configuration is+-- null, the profile job will run with default settings.+--+-- 'projectName', 'describeJobResponse_projectName' - The DataBrew project associated with this job.+--+-- 'recipeReference', 'describeJobResponse_recipeReference' - Undocumented member.+--+-- 'resourceArn', 'describeJobResponse_resourceArn' - The Amazon Resource Name (ARN) of the job.+--+-- 'roleArn', 'describeJobResponse_roleArn' - The ARN of the Identity and Access Management (IAM) role to be assumed+-- when DataBrew runs the job.+--+-- 'tags', 'describeJobResponse_tags' - Metadata tags associated with this job.+--+-- 'timeout', 'describeJobResponse_timeout' - The job\'s timeout in minutes. A job that attempts to run longer than+-- this timeout period ends with a status of @TIMEOUT@.+--+-- 'type'', 'describeJobResponse_type' - The job type, which must be one of the following:+--+-- -   @PROFILE@ - The job analyzes the dataset to determine its size, data+--     types, data distribution, and more.+--+-- -   @RECIPE@ - The job applies one or more transformations to a dataset.+--+-- 'validationConfigurations', 'describeJobResponse_validationConfigurations' - List of validation configurations that are applied to the profile job.+--+-- 'httpStatus', 'describeJobResponse_httpStatus' - The response's http status code.+--+-- 'name', 'describeJobResponse_name' - The name of the job.+newDescribeJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  DescribeJobResponse+newDescribeJobResponse pHttpStatus_ pName_ =+  DescribeJobResponse'+    { createDate = Prelude.Nothing,+      createdBy = Prelude.Nothing,+      dataCatalogOutputs = Prelude.Nothing,+      databaseOutputs = Prelude.Nothing,+      datasetName = Prelude.Nothing,+      encryptionKeyArn = Prelude.Nothing,+      encryptionMode = Prelude.Nothing,+      jobSample = Prelude.Nothing,+      lastModifiedBy = Prelude.Nothing,+      lastModifiedDate = Prelude.Nothing,+      logSubscription = Prelude.Nothing,+      maxCapacity = Prelude.Nothing,+      maxRetries = Prelude.Nothing,+      outputs = Prelude.Nothing,+      profileConfiguration = Prelude.Nothing,+      projectName = Prelude.Nothing,+      recipeReference = Prelude.Nothing,+      resourceArn = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      tags = Prelude.Nothing,+      timeout = Prelude.Nothing,+      type' = Prelude.Nothing,+      validationConfigurations = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      name = pName_+    }++-- | The date and time that the job was created.+describeJobResponse_createDate :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.UTCTime)+describeJobResponse_createDate = Lens.lens (\DescribeJobResponse' {createDate} -> createDate) (\s@DescribeJobResponse' {} a -> s {createDate = a} :: DescribeJobResponse) Prelude.. Lens.mapping Data._Time++-- | The identifier (user name) of the user associated with the creation of+-- the job.+describeJobResponse_createdBy :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.Text)+describeJobResponse_createdBy = Lens.lens (\DescribeJobResponse' {createdBy} -> createdBy) (\s@DescribeJobResponse' {} a -> s {createdBy = a} :: DescribeJobResponse)++-- | One or more artifacts that represent the Glue Data Catalog output from+-- running the job.+describeJobResponse_dataCatalogOutputs :: Lens.Lens' DescribeJobResponse (Prelude.Maybe (Prelude.NonEmpty DataCatalogOutput))+describeJobResponse_dataCatalogOutputs = Lens.lens (\DescribeJobResponse' {dataCatalogOutputs} -> dataCatalogOutputs) (\s@DescribeJobResponse' {} a -> s {dataCatalogOutputs = a} :: DescribeJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | Represents a list of JDBC database output objects which defines the+-- output destination for a DataBrew recipe job to write into.+describeJobResponse_databaseOutputs :: Lens.Lens' DescribeJobResponse (Prelude.Maybe (Prelude.NonEmpty DatabaseOutput))+describeJobResponse_databaseOutputs = Lens.lens (\DescribeJobResponse' {databaseOutputs} -> databaseOutputs) (\s@DescribeJobResponse' {} a -> s {databaseOutputs = a} :: DescribeJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | The dataset that the job acts upon.+describeJobResponse_datasetName :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.Text)+describeJobResponse_datasetName = Lens.lens (\DescribeJobResponse' {datasetName} -> datasetName) (\s@DescribeJobResponse' {} a -> s {datasetName = a} :: DescribeJobResponse)++-- | The Amazon Resource Name (ARN) of an encryption key that is used to+-- protect the job.+describeJobResponse_encryptionKeyArn :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.Text)+describeJobResponse_encryptionKeyArn = Lens.lens (\DescribeJobResponse' {encryptionKeyArn} -> encryptionKeyArn) (\s@DescribeJobResponse' {} a -> s {encryptionKeyArn = a} :: DescribeJobResponse)++-- | The encryption mode for the job, which can be one of the following:+--+-- -   @SSE-KMS@ - Server-side encryption with keys managed by KMS.+--+-- -   @SSE-S3@ - Server-side encryption with keys managed by Amazon S3.+describeJobResponse_encryptionMode :: Lens.Lens' DescribeJobResponse (Prelude.Maybe EncryptionMode)+describeJobResponse_encryptionMode = Lens.lens (\DescribeJobResponse' {encryptionMode} -> encryptionMode) (\s@DescribeJobResponse' {} a -> s {encryptionMode = a} :: DescribeJobResponse)++-- | Sample configuration for profile jobs only. Determines the number of+-- rows on which the profile job will be executed.+describeJobResponse_jobSample :: Lens.Lens' DescribeJobResponse (Prelude.Maybe JobSample)+describeJobResponse_jobSample = Lens.lens (\DescribeJobResponse' {jobSample} -> jobSample) (\s@DescribeJobResponse' {} a -> s {jobSample = a} :: DescribeJobResponse)++-- | The identifier (user name) of the user who last modified the job.+describeJobResponse_lastModifiedBy :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.Text)+describeJobResponse_lastModifiedBy = Lens.lens (\DescribeJobResponse' {lastModifiedBy} -> lastModifiedBy) (\s@DescribeJobResponse' {} a -> s {lastModifiedBy = a} :: DescribeJobResponse)++-- | The date and time that the job was last modified.+describeJobResponse_lastModifiedDate :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.UTCTime)+describeJobResponse_lastModifiedDate = Lens.lens (\DescribeJobResponse' {lastModifiedDate} -> lastModifiedDate) (\s@DescribeJobResponse' {} a -> s {lastModifiedDate = a} :: DescribeJobResponse) Prelude.. Lens.mapping Data._Time++-- | Indicates whether Amazon CloudWatch logging is enabled for this job.+describeJobResponse_logSubscription :: Lens.Lens' DescribeJobResponse (Prelude.Maybe LogSubscription)+describeJobResponse_logSubscription = Lens.lens (\DescribeJobResponse' {logSubscription} -> logSubscription) (\s@DescribeJobResponse' {} a -> s {logSubscription = a} :: DescribeJobResponse)++-- | The maximum number of compute nodes that DataBrew can consume when the+-- job processes data.+describeJobResponse_maxCapacity :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.Int)+describeJobResponse_maxCapacity = Lens.lens (\DescribeJobResponse' {maxCapacity} -> maxCapacity) (\s@DescribeJobResponse' {} a -> s {maxCapacity = a} :: DescribeJobResponse)++-- | The maximum number of times to retry the job after a job run fails.+describeJobResponse_maxRetries :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.Natural)+describeJobResponse_maxRetries = Lens.lens (\DescribeJobResponse' {maxRetries} -> maxRetries) (\s@DescribeJobResponse' {} a -> s {maxRetries = a} :: DescribeJobResponse)++-- | One or more artifacts that represent the output from running the job.+describeJobResponse_outputs :: Lens.Lens' DescribeJobResponse (Prelude.Maybe (Prelude.NonEmpty Output))+describeJobResponse_outputs = Lens.lens (\DescribeJobResponse' {outputs} -> outputs) (\s@DescribeJobResponse' {} a -> s {outputs = a} :: DescribeJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | Configuration for profile jobs. Used to select columns, do evaluations,+-- and override default parameters of evaluations. When configuration is+-- null, the profile job will run with default settings.+describeJobResponse_profileConfiguration :: Lens.Lens' DescribeJobResponse (Prelude.Maybe ProfileConfiguration)+describeJobResponse_profileConfiguration = Lens.lens (\DescribeJobResponse' {profileConfiguration} -> profileConfiguration) (\s@DescribeJobResponse' {} a -> s {profileConfiguration = a} :: DescribeJobResponse)++-- | The DataBrew project associated with this job.+describeJobResponse_projectName :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.Text)+describeJobResponse_projectName = Lens.lens (\DescribeJobResponse' {projectName} -> projectName) (\s@DescribeJobResponse' {} a -> s {projectName = a} :: DescribeJobResponse)++-- | Undocumented member.+describeJobResponse_recipeReference :: Lens.Lens' DescribeJobResponse (Prelude.Maybe RecipeReference)+describeJobResponse_recipeReference = Lens.lens (\DescribeJobResponse' {recipeReference} -> recipeReference) (\s@DescribeJobResponse' {} a -> s {recipeReference = a} :: DescribeJobResponse)++-- | The Amazon Resource Name (ARN) of the job.+describeJobResponse_resourceArn :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.Text)+describeJobResponse_resourceArn = Lens.lens (\DescribeJobResponse' {resourceArn} -> resourceArn) (\s@DescribeJobResponse' {} a -> s {resourceArn = a} :: DescribeJobResponse)++-- | The ARN of the Identity and Access Management (IAM) role to be assumed+-- when DataBrew runs the job.+describeJobResponse_roleArn :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.Text)+describeJobResponse_roleArn = Lens.lens (\DescribeJobResponse' {roleArn} -> roleArn) (\s@DescribeJobResponse' {} a -> s {roleArn = a} :: DescribeJobResponse)++-- | Metadata tags associated with this job.+describeJobResponse_tags :: Lens.Lens' DescribeJobResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+describeJobResponse_tags = Lens.lens (\DescribeJobResponse' {tags} -> tags) (\s@DescribeJobResponse' {} a -> s {tags = a} :: DescribeJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | The job\'s timeout in minutes. A job that attempts to run longer than+-- this timeout period ends with a status of @TIMEOUT@.+describeJobResponse_timeout :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.Natural)+describeJobResponse_timeout = Lens.lens (\DescribeJobResponse' {timeout} -> timeout) (\s@DescribeJobResponse' {} a -> s {timeout = a} :: DescribeJobResponse)++-- | The job type, which must be one of the following:+--+-- -   @PROFILE@ - The job analyzes the dataset to determine its size, data+--     types, data distribution, and more.+--+-- -   @RECIPE@ - The job applies one or more transformations to a dataset.+describeJobResponse_type :: Lens.Lens' DescribeJobResponse (Prelude.Maybe JobType)+describeJobResponse_type = Lens.lens (\DescribeJobResponse' {type'} -> type') (\s@DescribeJobResponse' {} a -> s {type' = a} :: DescribeJobResponse)++-- | List of validation configurations that are applied to the profile job.+describeJobResponse_validationConfigurations :: Lens.Lens' DescribeJobResponse (Prelude.Maybe (Prelude.NonEmpty ValidationConfiguration))+describeJobResponse_validationConfigurations = Lens.lens (\DescribeJobResponse' {validationConfigurations} -> validationConfigurations) (\s@DescribeJobResponse' {} a -> s {validationConfigurations = a} :: DescribeJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeJobResponse_httpStatus :: Lens.Lens' DescribeJobResponse Prelude.Int+describeJobResponse_httpStatus = Lens.lens (\DescribeJobResponse' {httpStatus} -> httpStatus) (\s@DescribeJobResponse' {} a -> s {httpStatus = a} :: DescribeJobResponse)++-- | The name of the job.+describeJobResponse_name :: Lens.Lens' DescribeJobResponse Prelude.Text+describeJobResponse_name = Lens.lens (\DescribeJobResponse' {name} -> name) (\s@DescribeJobResponse' {} a -> s {name = a} :: DescribeJobResponse)++instance Prelude.NFData DescribeJobResponse where+  rnf DescribeJobResponse' {..} =+    Prelude.rnf createDate+      `Prelude.seq` Prelude.rnf createdBy+      `Prelude.seq` Prelude.rnf dataCatalogOutputs+      `Prelude.seq` Prelude.rnf databaseOutputs+      `Prelude.seq` Prelude.rnf datasetName+      `Prelude.seq` Prelude.rnf encryptionKeyArn+      `Prelude.seq` Prelude.rnf encryptionMode+      `Prelude.seq` Prelude.rnf jobSample+      `Prelude.seq` Prelude.rnf lastModifiedBy+      `Prelude.seq` Prelude.rnf lastModifiedDate+      `Prelude.seq` Prelude.rnf logSubscription+      `Prelude.seq` Prelude.rnf maxCapacity+      `Prelude.seq` Prelude.rnf maxRetries+      `Prelude.seq` Prelude.rnf outputs+      `Prelude.seq` Prelude.rnf profileConfiguration+      `Prelude.seq` Prelude.rnf projectName+      `Prelude.seq` Prelude.rnf recipeReference+      `Prelude.seq` Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf timeout+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf+        validationConfigurations+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/DescribeJobRun.hs view
@@ -0,0 +1,424 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.DescribeJobRun+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Represents one run of a DataBrew job.+module Amazonka.DataBrew.DescribeJobRun+  ( -- * Creating a Request+    DescribeJobRun (..),+    newDescribeJobRun,++    -- * Request Lenses+    describeJobRun_name,+    describeJobRun_runId,++    -- * Destructuring the Response+    DescribeJobRunResponse (..),+    newDescribeJobRunResponse,++    -- * Response Lenses+    describeJobRunResponse_attempt,+    describeJobRunResponse_completedOn,+    describeJobRunResponse_dataCatalogOutputs,+    describeJobRunResponse_databaseOutputs,+    describeJobRunResponse_datasetName,+    describeJobRunResponse_errorMessage,+    describeJobRunResponse_executionTime,+    describeJobRunResponse_jobSample,+    describeJobRunResponse_logGroupName,+    describeJobRunResponse_logSubscription,+    describeJobRunResponse_outputs,+    describeJobRunResponse_profileConfiguration,+    describeJobRunResponse_recipeReference,+    describeJobRunResponse_runId,+    describeJobRunResponse_startedBy,+    describeJobRunResponse_startedOn,+    describeJobRunResponse_state,+    describeJobRunResponse_validationConfigurations,+    describeJobRunResponse_httpStatus,+    describeJobRunResponse_jobName,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeJobRun' smart constructor.+data DescribeJobRun = DescribeJobRun'+  { -- | The name of the job being processed during this run.+    name :: Prelude.Text,+    -- | The unique identifier of the job run.+    runId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeJobRun' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'describeJobRun_name' - The name of the job being processed during this run.+--+-- 'runId', 'describeJobRun_runId' - The unique identifier of the job run.+newDescribeJobRun ::+  -- | 'name'+  Prelude.Text ->+  -- | 'runId'+  Prelude.Text ->+  DescribeJobRun+newDescribeJobRun pName_ pRunId_ =+  DescribeJobRun' {name = pName_, runId = pRunId_}++-- | The name of the job being processed during this run.+describeJobRun_name :: Lens.Lens' DescribeJobRun Prelude.Text+describeJobRun_name = Lens.lens (\DescribeJobRun' {name} -> name) (\s@DescribeJobRun' {} a -> s {name = a} :: DescribeJobRun)++-- | The unique identifier of the job run.+describeJobRun_runId :: Lens.Lens' DescribeJobRun Prelude.Text+describeJobRun_runId = Lens.lens (\DescribeJobRun' {runId} -> runId) (\s@DescribeJobRun' {} a -> s {runId = a} :: DescribeJobRun)++instance Core.AWSRequest DescribeJobRun where+  type+    AWSResponse DescribeJobRun =+      DescribeJobRunResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeJobRunResponse'+            Prelude.<$> (x Data..?> "Attempt")+            Prelude.<*> (x Data..?> "CompletedOn")+            Prelude.<*> (x Data..?> "DataCatalogOutputs")+            Prelude.<*> (x Data..?> "DatabaseOutputs")+            Prelude.<*> (x Data..?> "DatasetName")+            Prelude.<*> (x Data..?> "ErrorMessage")+            Prelude.<*> (x Data..?> "ExecutionTime")+            Prelude.<*> (x Data..?> "JobSample")+            Prelude.<*> (x Data..?> "LogGroupName")+            Prelude.<*> (x Data..?> "LogSubscription")+            Prelude.<*> (x Data..?> "Outputs")+            Prelude.<*> (x Data..?> "ProfileConfiguration")+            Prelude.<*> (x Data..?> "RecipeReference")+            Prelude.<*> (x Data..?> "RunId")+            Prelude.<*> (x Data..?> "StartedBy")+            Prelude.<*> (x Data..?> "StartedOn")+            Prelude.<*> (x Data..?> "State")+            Prelude.<*> (x Data..?> "ValidationConfigurations")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "JobName")+      )++instance Prelude.Hashable DescribeJobRun where+  hashWithSalt _salt DescribeJobRun' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` runId++instance Prelude.NFData DescribeJobRun where+  rnf DescribeJobRun' {..} =+    Prelude.rnf name `Prelude.seq` Prelude.rnf runId++instance Data.ToHeaders DescribeJobRun where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeJobRun where+  toPath DescribeJobRun' {..} =+    Prelude.mconcat+      [ "/jobs/",+        Data.toBS name,+        "/jobRun/",+        Data.toBS runId+      ]++instance Data.ToQuery DescribeJobRun where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeJobRunResponse' smart constructor.+data DescribeJobRunResponse = DescribeJobRunResponse'+  { -- | The number of times that DataBrew has attempted to run the job.+    attempt :: Prelude.Maybe Prelude.Int,+    -- | The date and time when the job completed processing.+    completedOn :: Prelude.Maybe Data.POSIX,+    -- | One or more artifacts that represent the Glue Data Catalog output from+    -- running the job.+    dataCatalogOutputs :: Prelude.Maybe (Prelude.NonEmpty DataCatalogOutput),+    -- | Represents a list of JDBC database output objects which defines the+    -- output destination for a DataBrew recipe job to write into.+    databaseOutputs :: Prelude.Maybe (Prelude.NonEmpty DatabaseOutput),+    -- | The name of the dataset for the job to process.+    datasetName :: Prelude.Maybe Prelude.Text,+    -- | A message indicating an error (if any) that was encountered when the job+    -- ran.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | The amount of time, in seconds, during which the job run consumed+    -- resources.+    executionTime :: Prelude.Maybe Prelude.Int,+    -- | Sample configuration for profile jobs only. Determines the number of+    -- rows on which the profile job will be executed. If a JobSample value is+    -- not provided, the default value will be used. The default value is+    -- CUSTOM_ROWS for the mode parameter and 20000 for the size parameter.+    jobSample :: Prelude.Maybe JobSample,+    -- | The name of an Amazon CloudWatch log group, where the job writes+    -- diagnostic messages when it runs.+    logGroupName :: Prelude.Maybe Prelude.Text,+    -- | The current status of Amazon CloudWatch logging for the job run.+    logSubscription :: Prelude.Maybe LogSubscription,+    -- | One or more output artifacts from a job run.+    outputs :: Prelude.Maybe (Prelude.NonEmpty Output),+    -- | Configuration for profile jobs. Used to select columns, do evaluations,+    -- and override default parameters of evaluations. When configuration is+    -- null, the profile job will run with default settings.+    profileConfiguration :: Prelude.Maybe ProfileConfiguration,+    recipeReference :: Prelude.Maybe RecipeReference,+    -- | The unique identifier of the job run.+    runId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the user who started the job run.+    startedBy :: Prelude.Maybe Prelude.Text,+    -- | The date and time when the job run began.+    startedOn :: Prelude.Maybe Data.POSIX,+    -- | The current state of the job run entity itself.+    state :: Prelude.Maybe JobRunState,+    -- | List of validation configurations that are applied to the profile job.+    validationConfigurations :: Prelude.Maybe (Prelude.NonEmpty ValidationConfiguration),+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the job being processed during this run.+    jobName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeJobRunResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attempt', 'describeJobRunResponse_attempt' - The number of times that DataBrew has attempted to run the job.+--+-- 'completedOn', 'describeJobRunResponse_completedOn' - The date and time when the job completed processing.+--+-- 'dataCatalogOutputs', 'describeJobRunResponse_dataCatalogOutputs' - One or more artifacts that represent the Glue Data Catalog output from+-- running the job.+--+-- 'databaseOutputs', 'describeJobRunResponse_databaseOutputs' - Represents a list of JDBC database output objects which defines the+-- output destination for a DataBrew recipe job to write into.+--+-- 'datasetName', 'describeJobRunResponse_datasetName' - The name of the dataset for the job to process.+--+-- 'errorMessage', 'describeJobRunResponse_errorMessage' - A message indicating an error (if any) that was encountered when the job+-- ran.+--+-- 'executionTime', 'describeJobRunResponse_executionTime' - The amount of time, in seconds, during which the job run consumed+-- resources.+--+-- 'jobSample', 'describeJobRunResponse_jobSample' - Sample configuration for profile jobs only. Determines the number of+-- rows on which the profile job will be executed. If a JobSample value is+-- not provided, the default value will be used. The default value is+-- CUSTOM_ROWS for the mode parameter and 20000 for the size parameter.+--+-- 'logGroupName', 'describeJobRunResponse_logGroupName' - The name of an Amazon CloudWatch log group, where the job writes+-- diagnostic messages when it runs.+--+-- 'logSubscription', 'describeJobRunResponse_logSubscription' - The current status of Amazon CloudWatch logging for the job run.+--+-- 'outputs', 'describeJobRunResponse_outputs' - One or more output artifacts from a job run.+--+-- 'profileConfiguration', 'describeJobRunResponse_profileConfiguration' - Configuration for profile jobs. Used to select columns, do evaluations,+-- and override default parameters of evaluations. When configuration is+-- null, the profile job will run with default settings.+--+-- 'recipeReference', 'describeJobRunResponse_recipeReference' - Undocumented member.+--+-- 'runId', 'describeJobRunResponse_runId' - The unique identifier of the job run.+--+-- 'startedBy', 'describeJobRunResponse_startedBy' - The Amazon Resource Name (ARN) of the user who started the job run.+--+-- 'startedOn', 'describeJobRunResponse_startedOn' - The date and time when the job run began.+--+-- 'state', 'describeJobRunResponse_state' - The current state of the job run entity itself.+--+-- 'validationConfigurations', 'describeJobRunResponse_validationConfigurations' - List of validation configurations that are applied to the profile job.+--+-- 'httpStatus', 'describeJobRunResponse_httpStatus' - The response's http status code.+--+-- 'jobName', 'describeJobRunResponse_jobName' - The name of the job being processed during this run.+newDescribeJobRunResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'jobName'+  Prelude.Text ->+  DescribeJobRunResponse+newDescribeJobRunResponse pHttpStatus_ pJobName_ =+  DescribeJobRunResponse'+    { attempt = Prelude.Nothing,+      completedOn = Prelude.Nothing,+      dataCatalogOutputs = Prelude.Nothing,+      databaseOutputs = Prelude.Nothing,+      datasetName = Prelude.Nothing,+      errorMessage = Prelude.Nothing,+      executionTime = Prelude.Nothing,+      jobSample = Prelude.Nothing,+      logGroupName = Prelude.Nothing,+      logSubscription = Prelude.Nothing,+      outputs = Prelude.Nothing,+      profileConfiguration = Prelude.Nothing,+      recipeReference = Prelude.Nothing,+      runId = Prelude.Nothing,+      startedBy = Prelude.Nothing,+      startedOn = Prelude.Nothing,+      state = Prelude.Nothing,+      validationConfigurations = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      jobName = pJobName_+    }++-- | The number of times that DataBrew has attempted to run the job.+describeJobRunResponse_attempt :: Lens.Lens' DescribeJobRunResponse (Prelude.Maybe Prelude.Int)+describeJobRunResponse_attempt = Lens.lens (\DescribeJobRunResponse' {attempt} -> attempt) (\s@DescribeJobRunResponse' {} a -> s {attempt = a} :: DescribeJobRunResponse)++-- | The date and time when the job completed processing.+describeJobRunResponse_completedOn :: Lens.Lens' DescribeJobRunResponse (Prelude.Maybe Prelude.UTCTime)+describeJobRunResponse_completedOn = Lens.lens (\DescribeJobRunResponse' {completedOn} -> completedOn) (\s@DescribeJobRunResponse' {} a -> s {completedOn = a} :: DescribeJobRunResponse) Prelude.. Lens.mapping Data._Time++-- | One or more artifacts that represent the Glue Data Catalog output from+-- running the job.+describeJobRunResponse_dataCatalogOutputs :: Lens.Lens' DescribeJobRunResponse (Prelude.Maybe (Prelude.NonEmpty DataCatalogOutput))+describeJobRunResponse_dataCatalogOutputs = Lens.lens (\DescribeJobRunResponse' {dataCatalogOutputs} -> dataCatalogOutputs) (\s@DescribeJobRunResponse' {} a -> s {dataCatalogOutputs = a} :: DescribeJobRunResponse) Prelude.. Lens.mapping Lens.coerced++-- | Represents a list of JDBC database output objects which defines the+-- output destination for a DataBrew recipe job to write into.+describeJobRunResponse_databaseOutputs :: Lens.Lens' DescribeJobRunResponse (Prelude.Maybe (Prelude.NonEmpty DatabaseOutput))+describeJobRunResponse_databaseOutputs = Lens.lens (\DescribeJobRunResponse' {databaseOutputs} -> databaseOutputs) (\s@DescribeJobRunResponse' {} a -> s {databaseOutputs = a} :: DescribeJobRunResponse) Prelude.. Lens.mapping Lens.coerced++-- | The name of the dataset for the job to process.+describeJobRunResponse_datasetName :: Lens.Lens' DescribeJobRunResponse (Prelude.Maybe Prelude.Text)+describeJobRunResponse_datasetName = Lens.lens (\DescribeJobRunResponse' {datasetName} -> datasetName) (\s@DescribeJobRunResponse' {} a -> s {datasetName = a} :: DescribeJobRunResponse)++-- | A message indicating an error (if any) that was encountered when the job+-- ran.+describeJobRunResponse_errorMessage :: Lens.Lens' DescribeJobRunResponse (Prelude.Maybe Prelude.Text)+describeJobRunResponse_errorMessage = Lens.lens (\DescribeJobRunResponse' {errorMessage} -> errorMessage) (\s@DescribeJobRunResponse' {} a -> s {errorMessage = a} :: DescribeJobRunResponse)++-- | The amount of time, in seconds, during which the job run consumed+-- resources.+describeJobRunResponse_executionTime :: Lens.Lens' DescribeJobRunResponse (Prelude.Maybe Prelude.Int)+describeJobRunResponse_executionTime = Lens.lens (\DescribeJobRunResponse' {executionTime} -> executionTime) (\s@DescribeJobRunResponse' {} a -> s {executionTime = a} :: DescribeJobRunResponse)++-- | Sample configuration for profile jobs only. Determines the number of+-- rows on which the profile job will be executed. If a JobSample value is+-- not provided, the default value will be used. The default value is+-- CUSTOM_ROWS for the mode parameter and 20000 for the size parameter.+describeJobRunResponse_jobSample :: Lens.Lens' DescribeJobRunResponse (Prelude.Maybe JobSample)+describeJobRunResponse_jobSample = Lens.lens (\DescribeJobRunResponse' {jobSample} -> jobSample) (\s@DescribeJobRunResponse' {} a -> s {jobSample = a} :: DescribeJobRunResponse)++-- | The name of an Amazon CloudWatch log group, where the job writes+-- diagnostic messages when it runs.+describeJobRunResponse_logGroupName :: Lens.Lens' DescribeJobRunResponse (Prelude.Maybe Prelude.Text)+describeJobRunResponse_logGroupName = Lens.lens (\DescribeJobRunResponse' {logGroupName} -> logGroupName) (\s@DescribeJobRunResponse' {} a -> s {logGroupName = a} :: DescribeJobRunResponse)++-- | The current status of Amazon CloudWatch logging for the job run.+describeJobRunResponse_logSubscription :: Lens.Lens' DescribeJobRunResponse (Prelude.Maybe LogSubscription)+describeJobRunResponse_logSubscription = Lens.lens (\DescribeJobRunResponse' {logSubscription} -> logSubscription) (\s@DescribeJobRunResponse' {} a -> s {logSubscription = a} :: DescribeJobRunResponse)++-- | One or more output artifacts from a job run.+describeJobRunResponse_outputs :: Lens.Lens' DescribeJobRunResponse (Prelude.Maybe (Prelude.NonEmpty Output))+describeJobRunResponse_outputs = Lens.lens (\DescribeJobRunResponse' {outputs} -> outputs) (\s@DescribeJobRunResponse' {} a -> s {outputs = a} :: DescribeJobRunResponse) Prelude.. Lens.mapping Lens.coerced++-- | Configuration for profile jobs. Used to select columns, do evaluations,+-- and override default parameters of evaluations. When configuration is+-- null, the profile job will run with default settings.+describeJobRunResponse_profileConfiguration :: Lens.Lens' DescribeJobRunResponse (Prelude.Maybe ProfileConfiguration)+describeJobRunResponse_profileConfiguration = Lens.lens (\DescribeJobRunResponse' {profileConfiguration} -> profileConfiguration) (\s@DescribeJobRunResponse' {} a -> s {profileConfiguration = a} :: DescribeJobRunResponse)++-- | Undocumented member.+describeJobRunResponse_recipeReference :: Lens.Lens' DescribeJobRunResponse (Prelude.Maybe RecipeReference)+describeJobRunResponse_recipeReference = Lens.lens (\DescribeJobRunResponse' {recipeReference} -> recipeReference) (\s@DescribeJobRunResponse' {} a -> s {recipeReference = a} :: DescribeJobRunResponse)++-- | The unique identifier of the job run.+describeJobRunResponse_runId :: Lens.Lens' DescribeJobRunResponse (Prelude.Maybe Prelude.Text)+describeJobRunResponse_runId = Lens.lens (\DescribeJobRunResponse' {runId} -> runId) (\s@DescribeJobRunResponse' {} a -> s {runId = a} :: DescribeJobRunResponse)++-- | The Amazon Resource Name (ARN) of the user who started the job run.+describeJobRunResponse_startedBy :: Lens.Lens' DescribeJobRunResponse (Prelude.Maybe Prelude.Text)+describeJobRunResponse_startedBy = Lens.lens (\DescribeJobRunResponse' {startedBy} -> startedBy) (\s@DescribeJobRunResponse' {} a -> s {startedBy = a} :: DescribeJobRunResponse)++-- | The date and time when the job run began.+describeJobRunResponse_startedOn :: Lens.Lens' DescribeJobRunResponse (Prelude.Maybe Prelude.UTCTime)+describeJobRunResponse_startedOn = Lens.lens (\DescribeJobRunResponse' {startedOn} -> startedOn) (\s@DescribeJobRunResponse' {} a -> s {startedOn = a} :: DescribeJobRunResponse) Prelude.. Lens.mapping Data._Time++-- | The current state of the job run entity itself.+describeJobRunResponse_state :: Lens.Lens' DescribeJobRunResponse (Prelude.Maybe JobRunState)+describeJobRunResponse_state = Lens.lens (\DescribeJobRunResponse' {state} -> state) (\s@DescribeJobRunResponse' {} a -> s {state = a} :: DescribeJobRunResponse)++-- | List of validation configurations that are applied to the profile job.+describeJobRunResponse_validationConfigurations :: Lens.Lens' DescribeJobRunResponse (Prelude.Maybe (Prelude.NonEmpty ValidationConfiguration))+describeJobRunResponse_validationConfigurations = Lens.lens (\DescribeJobRunResponse' {validationConfigurations} -> validationConfigurations) (\s@DescribeJobRunResponse' {} a -> s {validationConfigurations = a} :: DescribeJobRunResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeJobRunResponse_httpStatus :: Lens.Lens' DescribeJobRunResponse Prelude.Int+describeJobRunResponse_httpStatus = Lens.lens (\DescribeJobRunResponse' {httpStatus} -> httpStatus) (\s@DescribeJobRunResponse' {} a -> s {httpStatus = a} :: DescribeJobRunResponse)++-- | The name of the job being processed during this run.+describeJobRunResponse_jobName :: Lens.Lens' DescribeJobRunResponse Prelude.Text+describeJobRunResponse_jobName = Lens.lens (\DescribeJobRunResponse' {jobName} -> jobName) (\s@DescribeJobRunResponse' {} a -> s {jobName = a} :: DescribeJobRunResponse)++instance Prelude.NFData DescribeJobRunResponse where+  rnf DescribeJobRunResponse' {..} =+    Prelude.rnf attempt+      `Prelude.seq` Prelude.rnf completedOn+      `Prelude.seq` Prelude.rnf dataCatalogOutputs+      `Prelude.seq` Prelude.rnf databaseOutputs+      `Prelude.seq` Prelude.rnf datasetName+      `Prelude.seq` Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf executionTime+      `Prelude.seq` Prelude.rnf jobSample+      `Prelude.seq` Prelude.rnf logGroupName+      `Prelude.seq` Prelude.rnf logSubscription+      `Prelude.seq` Prelude.rnf outputs+      `Prelude.seq` Prelude.rnf profileConfiguration+      `Prelude.seq` Prelude.rnf recipeReference+      `Prelude.seq` Prelude.rnf runId+      `Prelude.seq` Prelude.rnf startedBy+      `Prelude.seq` Prelude.rnf startedOn+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf+        validationConfigurations+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf jobName
+ gen/Amazonka/DataBrew/DescribeProject.hs view
@@ -0,0 +1,336 @@+{-# 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.DataBrew.DescribeProject+-- 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 definition of a specific DataBrew project.+module Amazonka.DataBrew.DescribeProject+  ( -- * Creating a Request+    DescribeProject (..),+    newDescribeProject,++    -- * Request Lenses+    describeProject_name,++    -- * Destructuring the Response+    DescribeProjectResponse (..),+    newDescribeProjectResponse,++    -- * Response Lenses+    describeProjectResponse_createDate,+    describeProjectResponse_createdBy,+    describeProjectResponse_datasetName,+    describeProjectResponse_lastModifiedBy,+    describeProjectResponse_lastModifiedDate,+    describeProjectResponse_openDate,+    describeProjectResponse_openedBy,+    describeProjectResponse_recipeName,+    describeProjectResponse_resourceArn,+    describeProjectResponse_roleArn,+    describeProjectResponse_sample,+    describeProjectResponse_sessionStatus,+    describeProjectResponse_tags,+    describeProjectResponse_httpStatus,+    describeProjectResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeProject' smart constructor.+data DescribeProject = DescribeProject'+  { -- | The name of the project to be described.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeProject' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'describeProject_name' - The name of the project to be described.+newDescribeProject ::+  -- | 'name'+  Prelude.Text ->+  DescribeProject+newDescribeProject pName_ =+  DescribeProject' {name = pName_}++-- | The name of the project to be described.+describeProject_name :: Lens.Lens' DescribeProject Prelude.Text+describeProject_name = Lens.lens (\DescribeProject' {name} -> name) (\s@DescribeProject' {} a -> s {name = a} :: DescribeProject)++instance Core.AWSRequest DescribeProject where+  type+    AWSResponse DescribeProject =+      DescribeProjectResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeProjectResponse'+            Prelude.<$> (x Data..?> "CreateDate")+            Prelude.<*> (x Data..?> "CreatedBy")+            Prelude.<*> (x Data..?> "DatasetName")+            Prelude.<*> (x Data..?> "LastModifiedBy")+            Prelude.<*> (x Data..?> "LastModifiedDate")+            Prelude.<*> (x Data..?> "OpenDate")+            Prelude.<*> (x Data..?> "OpenedBy")+            Prelude.<*> (x Data..?> "RecipeName")+            Prelude.<*> (x Data..?> "ResourceArn")+            Prelude.<*> (x Data..?> "RoleArn")+            Prelude.<*> (x Data..?> "Sample")+            Prelude.<*> (x Data..?> "SessionStatus")+            Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable DescribeProject where+  hashWithSalt _salt DescribeProject' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData DescribeProject where+  rnf DescribeProject' {..} = Prelude.rnf name++instance Data.ToHeaders DescribeProject where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeProject where+  toPath DescribeProject' {..} =+    Prelude.mconcat ["/projects/", Data.toBS name]++instance Data.ToQuery DescribeProject where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeProjectResponse' smart constructor.+data DescribeProjectResponse = DescribeProjectResponse'+  { -- | The date and time that the project was created.+    createDate :: Prelude.Maybe Data.POSIX,+    -- | The identifier (user name) of the user who created the project.+    createdBy :: Prelude.Maybe Prelude.Text,+    -- | The dataset associated with the project.+    datasetName :: Prelude.Maybe Prelude.Text,+    -- | The identifier (user name) of the user who last modified the project.+    lastModifiedBy :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the project was last modified.+    lastModifiedDate :: Prelude.Maybe Data.POSIX,+    -- | The date and time when the project was opened.+    openDate :: Prelude.Maybe Data.POSIX,+    -- | The identifier (user name) of the user that opened the project for use.+    openedBy :: Prelude.Maybe Prelude.Text,+    -- | The recipe associated with this job.+    recipeName :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the project.+    resourceArn :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the Identity and Access Management (IAM) role to be assumed+    -- when DataBrew runs the job.+    roleArn :: Prelude.Maybe Prelude.Text,+    sample :: Prelude.Maybe Sample,+    -- | Describes the current state of the session:+    --+    -- -   @PROVISIONING@ - allocating resources for the session.+    --+    -- -   @INITIALIZING@ - getting the session ready for first use.+    --+    -- -   @ASSIGNED@ - the session is ready for use.+    sessionStatus :: Prelude.Maybe SessionStatus,+    -- | Metadata tags associated with this project.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the project.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeProjectResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createDate', 'describeProjectResponse_createDate' - The date and time that the project was created.+--+-- 'createdBy', 'describeProjectResponse_createdBy' - The identifier (user name) of the user who created the project.+--+-- 'datasetName', 'describeProjectResponse_datasetName' - The dataset associated with the project.+--+-- 'lastModifiedBy', 'describeProjectResponse_lastModifiedBy' - The identifier (user name) of the user who last modified the project.+--+-- 'lastModifiedDate', 'describeProjectResponse_lastModifiedDate' - The date and time that the project was last modified.+--+-- 'openDate', 'describeProjectResponse_openDate' - The date and time when the project was opened.+--+-- 'openedBy', 'describeProjectResponse_openedBy' - The identifier (user name) of the user that opened the project for use.+--+-- 'recipeName', 'describeProjectResponse_recipeName' - The recipe associated with this job.+--+-- 'resourceArn', 'describeProjectResponse_resourceArn' - The Amazon Resource Name (ARN) of the project.+--+-- 'roleArn', 'describeProjectResponse_roleArn' - The ARN of the Identity and Access Management (IAM) role to be assumed+-- when DataBrew runs the job.+--+-- 'sample', 'describeProjectResponse_sample' - Undocumented member.+--+-- 'sessionStatus', 'describeProjectResponse_sessionStatus' - Describes the current state of the session:+--+-- -   @PROVISIONING@ - allocating resources for the session.+--+-- -   @INITIALIZING@ - getting the session ready for first use.+--+-- -   @ASSIGNED@ - the session is ready for use.+--+-- 'tags', 'describeProjectResponse_tags' - Metadata tags associated with this project.+--+-- 'httpStatus', 'describeProjectResponse_httpStatus' - The response's http status code.+--+-- 'name', 'describeProjectResponse_name' - The name of the project.+newDescribeProjectResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  DescribeProjectResponse+newDescribeProjectResponse pHttpStatus_ pName_ =+  DescribeProjectResponse'+    { createDate =+        Prelude.Nothing,+      createdBy = Prelude.Nothing,+      datasetName = Prelude.Nothing,+      lastModifiedBy = Prelude.Nothing,+      lastModifiedDate = Prelude.Nothing,+      openDate = Prelude.Nothing,+      openedBy = Prelude.Nothing,+      recipeName = Prelude.Nothing,+      resourceArn = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      sample = Prelude.Nothing,+      sessionStatus = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      name = pName_+    }++-- | The date and time that the project was created.+describeProjectResponse_createDate :: Lens.Lens' DescribeProjectResponse (Prelude.Maybe Prelude.UTCTime)+describeProjectResponse_createDate = Lens.lens (\DescribeProjectResponse' {createDate} -> createDate) (\s@DescribeProjectResponse' {} a -> s {createDate = a} :: DescribeProjectResponse) Prelude.. Lens.mapping Data._Time++-- | The identifier (user name) of the user who created the project.+describeProjectResponse_createdBy :: Lens.Lens' DescribeProjectResponse (Prelude.Maybe Prelude.Text)+describeProjectResponse_createdBy = Lens.lens (\DescribeProjectResponse' {createdBy} -> createdBy) (\s@DescribeProjectResponse' {} a -> s {createdBy = a} :: DescribeProjectResponse)++-- | The dataset associated with the project.+describeProjectResponse_datasetName :: Lens.Lens' DescribeProjectResponse (Prelude.Maybe Prelude.Text)+describeProjectResponse_datasetName = Lens.lens (\DescribeProjectResponse' {datasetName} -> datasetName) (\s@DescribeProjectResponse' {} a -> s {datasetName = a} :: DescribeProjectResponse)++-- | The identifier (user name) of the user who last modified the project.+describeProjectResponse_lastModifiedBy :: Lens.Lens' DescribeProjectResponse (Prelude.Maybe Prelude.Text)+describeProjectResponse_lastModifiedBy = Lens.lens (\DescribeProjectResponse' {lastModifiedBy} -> lastModifiedBy) (\s@DescribeProjectResponse' {} a -> s {lastModifiedBy = a} :: DescribeProjectResponse)++-- | The date and time that the project was last modified.+describeProjectResponse_lastModifiedDate :: Lens.Lens' DescribeProjectResponse (Prelude.Maybe Prelude.UTCTime)+describeProjectResponse_lastModifiedDate = Lens.lens (\DescribeProjectResponse' {lastModifiedDate} -> lastModifiedDate) (\s@DescribeProjectResponse' {} a -> s {lastModifiedDate = a} :: DescribeProjectResponse) Prelude.. Lens.mapping Data._Time++-- | The date and time when the project was opened.+describeProjectResponse_openDate :: Lens.Lens' DescribeProjectResponse (Prelude.Maybe Prelude.UTCTime)+describeProjectResponse_openDate = Lens.lens (\DescribeProjectResponse' {openDate} -> openDate) (\s@DescribeProjectResponse' {} a -> s {openDate = a} :: DescribeProjectResponse) Prelude.. Lens.mapping Data._Time++-- | The identifier (user name) of the user that opened the project for use.+describeProjectResponse_openedBy :: Lens.Lens' DescribeProjectResponse (Prelude.Maybe Prelude.Text)+describeProjectResponse_openedBy = Lens.lens (\DescribeProjectResponse' {openedBy} -> openedBy) (\s@DescribeProjectResponse' {} a -> s {openedBy = a} :: DescribeProjectResponse)++-- | The recipe associated with this job.+describeProjectResponse_recipeName :: Lens.Lens' DescribeProjectResponse (Prelude.Maybe Prelude.Text)+describeProjectResponse_recipeName = Lens.lens (\DescribeProjectResponse' {recipeName} -> recipeName) (\s@DescribeProjectResponse' {} a -> s {recipeName = a} :: DescribeProjectResponse)++-- | The Amazon Resource Name (ARN) of the project.+describeProjectResponse_resourceArn :: Lens.Lens' DescribeProjectResponse (Prelude.Maybe Prelude.Text)+describeProjectResponse_resourceArn = Lens.lens (\DescribeProjectResponse' {resourceArn} -> resourceArn) (\s@DescribeProjectResponse' {} a -> s {resourceArn = a} :: DescribeProjectResponse)++-- | The ARN of the Identity and Access Management (IAM) role to be assumed+-- when DataBrew runs the job.+describeProjectResponse_roleArn :: Lens.Lens' DescribeProjectResponse (Prelude.Maybe Prelude.Text)+describeProjectResponse_roleArn = Lens.lens (\DescribeProjectResponse' {roleArn} -> roleArn) (\s@DescribeProjectResponse' {} a -> s {roleArn = a} :: DescribeProjectResponse)++-- | Undocumented member.+describeProjectResponse_sample :: Lens.Lens' DescribeProjectResponse (Prelude.Maybe Sample)+describeProjectResponse_sample = Lens.lens (\DescribeProjectResponse' {sample} -> sample) (\s@DescribeProjectResponse' {} a -> s {sample = a} :: DescribeProjectResponse)++-- | Describes the current state of the session:+--+-- -   @PROVISIONING@ - allocating resources for the session.+--+-- -   @INITIALIZING@ - getting the session ready for first use.+--+-- -   @ASSIGNED@ - the session is ready for use.+describeProjectResponse_sessionStatus :: Lens.Lens' DescribeProjectResponse (Prelude.Maybe SessionStatus)+describeProjectResponse_sessionStatus = Lens.lens (\DescribeProjectResponse' {sessionStatus} -> sessionStatus) (\s@DescribeProjectResponse' {} a -> s {sessionStatus = a} :: DescribeProjectResponse)++-- | Metadata tags associated with this project.+describeProjectResponse_tags :: Lens.Lens' DescribeProjectResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+describeProjectResponse_tags = Lens.lens (\DescribeProjectResponse' {tags} -> tags) (\s@DescribeProjectResponse' {} a -> s {tags = a} :: DescribeProjectResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeProjectResponse_httpStatus :: Lens.Lens' DescribeProjectResponse Prelude.Int+describeProjectResponse_httpStatus = Lens.lens (\DescribeProjectResponse' {httpStatus} -> httpStatus) (\s@DescribeProjectResponse' {} a -> s {httpStatus = a} :: DescribeProjectResponse)++-- | The name of the project.+describeProjectResponse_name :: Lens.Lens' DescribeProjectResponse Prelude.Text+describeProjectResponse_name = Lens.lens (\DescribeProjectResponse' {name} -> name) (\s@DescribeProjectResponse' {} a -> s {name = a} :: DescribeProjectResponse)++instance Prelude.NFData DescribeProjectResponse where+  rnf DescribeProjectResponse' {..} =+    Prelude.rnf createDate+      `Prelude.seq` Prelude.rnf createdBy+      `Prelude.seq` Prelude.rnf datasetName+      `Prelude.seq` Prelude.rnf lastModifiedBy+      `Prelude.seq` Prelude.rnf lastModifiedDate+      `Prelude.seq` Prelude.rnf openDate+      `Prelude.seq` Prelude.rnf openedBy+      `Prelude.seq` Prelude.rnf recipeName+      `Prelude.seq` Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf sample+      `Prelude.seq` Prelude.rnf sessionStatus+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/DescribeRecipe.hs view
@@ -0,0 +1,329 @@+{-# 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.DataBrew.DescribeRecipe+-- 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 definition of a specific DataBrew recipe corresponding to a+-- particular version.+module Amazonka.DataBrew.DescribeRecipe+  ( -- * Creating a Request+    DescribeRecipe (..),+    newDescribeRecipe,++    -- * Request Lenses+    describeRecipe_recipeVersion,+    describeRecipe_name,++    -- * Destructuring the Response+    DescribeRecipeResponse (..),+    newDescribeRecipeResponse,++    -- * Response Lenses+    describeRecipeResponse_createDate,+    describeRecipeResponse_createdBy,+    describeRecipeResponse_description,+    describeRecipeResponse_lastModifiedBy,+    describeRecipeResponse_lastModifiedDate,+    describeRecipeResponse_projectName,+    describeRecipeResponse_publishedBy,+    describeRecipeResponse_publishedDate,+    describeRecipeResponse_recipeVersion,+    describeRecipeResponse_resourceArn,+    describeRecipeResponse_steps,+    describeRecipeResponse_tags,+    describeRecipeResponse_httpStatus,+    describeRecipeResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeRecipe' smart constructor.+data DescribeRecipe = DescribeRecipe'+  { -- | The recipe version identifier. If this parameter isn\'t specified, then+    -- the latest published version is returned.+    recipeVersion :: Prelude.Maybe Prelude.Text,+    -- | The name of the recipe to be described.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeRecipe' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'recipeVersion', 'describeRecipe_recipeVersion' - The recipe version identifier. If this parameter isn\'t specified, then+-- the latest published version is returned.+--+-- 'name', 'describeRecipe_name' - The name of the recipe to be described.+newDescribeRecipe ::+  -- | 'name'+  Prelude.Text ->+  DescribeRecipe+newDescribeRecipe pName_ =+  DescribeRecipe'+    { recipeVersion = Prelude.Nothing,+      name = pName_+    }++-- | The recipe version identifier. If this parameter isn\'t specified, then+-- the latest published version is returned.+describeRecipe_recipeVersion :: Lens.Lens' DescribeRecipe (Prelude.Maybe Prelude.Text)+describeRecipe_recipeVersion = Lens.lens (\DescribeRecipe' {recipeVersion} -> recipeVersion) (\s@DescribeRecipe' {} a -> s {recipeVersion = a} :: DescribeRecipe)++-- | The name of the recipe to be described.+describeRecipe_name :: Lens.Lens' DescribeRecipe Prelude.Text+describeRecipe_name = Lens.lens (\DescribeRecipe' {name} -> name) (\s@DescribeRecipe' {} a -> s {name = a} :: DescribeRecipe)++instance Core.AWSRequest DescribeRecipe where+  type+    AWSResponse DescribeRecipe =+      DescribeRecipeResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeRecipeResponse'+            Prelude.<$> (x Data..?> "CreateDate")+            Prelude.<*> (x Data..?> "CreatedBy")+            Prelude.<*> (x Data..?> "Description")+            Prelude.<*> (x Data..?> "LastModifiedBy")+            Prelude.<*> (x Data..?> "LastModifiedDate")+            Prelude.<*> (x Data..?> "ProjectName")+            Prelude.<*> (x Data..?> "PublishedBy")+            Prelude.<*> (x Data..?> "PublishedDate")+            Prelude.<*> (x Data..?> "RecipeVersion")+            Prelude.<*> (x Data..?> "ResourceArn")+            Prelude.<*> (x Data..?> "Steps" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable DescribeRecipe where+  hashWithSalt _salt DescribeRecipe' {..} =+    _salt+      `Prelude.hashWithSalt` recipeVersion+      `Prelude.hashWithSalt` name++instance Prelude.NFData DescribeRecipe where+  rnf DescribeRecipe' {..} =+    Prelude.rnf recipeVersion+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders DescribeRecipe where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeRecipe where+  toPath DescribeRecipe' {..} =+    Prelude.mconcat ["/recipes/", Data.toBS name]++instance Data.ToQuery DescribeRecipe where+  toQuery DescribeRecipe' {..} =+    Prelude.mconcat+      ["recipeVersion" Data.=: recipeVersion]++-- | /See:/ 'newDescribeRecipeResponse' smart constructor.+data DescribeRecipeResponse = DescribeRecipeResponse'+  { -- | The date and time that the recipe was created.+    createDate :: Prelude.Maybe Data.POSIX,+    -- | The identifier (user name) of the user who created the recipe.+    createdBy :: Prelude.Maybe Prelude.Text,+    -- | The description of the recipe.+    description :: Prelude.Maybe Prelude.Text,+    -- | The identifier (user name) of the user who last modified the recipe.+    lastModifiedBy :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the recipe was last modified.+    lastModifiedDate :: Prelude.Maybe Data.POSIX,+    -- | The name of the project associated with this recipe.+    projectName :: Prelude.Maybe Prelude.Text,+    -- | The identifier (user name) of the user who last published the recipe.+    publishedBy :: Prelude.Maybe Prelude.Text,+    -- | The date and time when the recipe was last published.+    publishedDate :: Prelude.Maybe Data.POSIX,+    -- | The recipe version identifier.+    recipeVersion :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the recipe.+    resourceArn :: Prelude.Maybe Prelude.Text,+    -- | One or more steps to be performed by the recipe. Each step consists of+    -- an action, and the conditions under which the action should succeed.+    steps :: Prelude.Maybe [RecipeStep],+    -- | Metadata tags associated with this project.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the recipe.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeRecipeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createDate', 'describeRecipeResponse_createDate' - The date and time that the recipe was created.+--+-- 'createdBy', 'describeRecipeResponse_createdBy' - The identifier (user name) of the user who created the recipe.+--+-- 'description', 'describeRecipeResponse_description' - The description of the recipe.+--+-- 'lastModifiedBy', 'describeRecipeResponse_lastModifiedBy' - The identifier (user name) of the user who last modified the recipe.+--+-- 'lastModifiedDate', 'describeRecipeResponse_lastModifiedDate' - The date and time that the recipe was last modified.+--+-- 'projectName', 'describeRecipeResponse_projectName' - The name of the project associated with this recipe.+--+-- 'publishedBy', 'describeRecipeResponse_publishedBy' - The identifier (user name) of the user who last published the recipe.+--+-- 'publishedDate', 'describeRecipeResponse_publishedDate' - The date and time when the recipe was last published.+--+-- 'recipeVersion', 'describeRecipeResponse_recipeVersion' - The recipe version identifier.+--+-- 'resourceArn', 'describeRecipeResponse_resourceArn' - The ARN of the recipe.+--+-- 'steps', 'describeRecipeResponse_steps' - One or more steps to be performed by the recipe. Each step consists of+-- an action, and the conditions under which the action should succeed.+--+-- 'tags', 'describeRecipeResponse_tags' - Metadata tags associated with this project.+--+-- 'httpStatus', 'describeRecipeResponse_httpStatus' - The response's http status code.+--+-- 'name', 'describeRecipeResponse_name' - The name of the recipe.+newDescribeRecipeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  DescribeRecipeResponse+newDescribeRecipeResponse pHttpStatus_ pName_ =+  DescribeRecipeResponse'+    { createDate =+        Prelude.Nothing,+      createdBy = Prelude.Nothing,+      description = Prelude.Nothing,+      lastModifiedBy = Prelude.Nothing,+      lastModifiedDate = Prelude.Nothing,+      projectName = Prelude.Nothing,+      publishedBy = Prelude.Nothing,+      publishedDate = Prelude.Nothing,+      recipeVersion = Prelude.Nothing,+      resourceArn = Prelude.Nothing,+      steps = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      name = pName_+    }++-- | The date and time that the recipe was created.+describeRecipeResponse_createDate :: Lens.Lens' DescribeRecipeResponse (Prelude.Maybe Prelude.UTCTime)+describeRecipeResponse_createDate = Lens.lens (\DescribeRecipeResponse' {createDate} -> createDate) (\s@DescribeRecipeResponse' {} a -> s {createDate = a} :: DescribeRecipeResponse) Prelude.. Lens.mapping Data._Time++-- | The identifier (user name) of the user who created the recipe.+describeRecipeResponse_createdBy :: Lens.Lens' DescribeRecipeResponse (Prelude.Maybe Prelude.Text)+describeRecipeResponse_createdBy = Lens.lens (\DescribeRecipeResponse' {createdBy} -> createdBy) (\s@DescribeRecipeResponse' {} a -> s {createdBy = a} :: DescribeRecipeResponse)++-- | The description of the recipe.+describeRecipeResponse_description :: Lens.Lens' DescribeRecipeResponse (Prelude.Maybe Prelude.Text)+describeRecipeResponse_description = Lens.lens (\DescribeRecipeResponse' {description} -> description) (\s@DescribeRecipeResponse' {} a -> s {description = a} :: DescribeRecipeResponse)++-- | The identifier (user name) of the user who last modified the recipe.+describeRecipeResponse_lastModifiedBy :: Lens.Lens' DescribeRecipeResponse (Prelude.Maybe Prelude.Text)+describeRecipeResponse_lastModifiedBy = Lens.lens (\DescribeRecipeResponse' {lastModifiedBy} -> lastModifiedBy) (\s@DescribeRecipeResponse' {} a -> s {lastModifiedBy = a} :: DescribeRecipeResponse)++-- | The date and time that the recipe was last modified.+describeRecipeResponse_lastModifiedDate :: Lens.Lens' DescribeRecipeResponse (Prelude.Maybe Prelude.UTCTime)+describeRecipeResponse_lastModifiedDate = Lens.lens (\DescribeRecipeResponse' {lastModifiedDate} -> lastModifiedDate) (\s@DescribeRecipeResponse' {} a -> s {lastModifiedDate = a} :: DescribeRecipeResponse) Prelude.. Lens.mapping Data._Time++-- | The name of the project associated with this recipe.+describeRecipeResponse_projectName :: Lens.Lens' DescribeRecipeResponse (Prelude.Maybe Prelude.Text)+describeRecipeResponse_projectName = Lens.lens (\DescribeRecipeResponse' {projectName} -> projectName) (\s@DescribeRecipeResponse' {} a -> s {projectName = a} :: DescribeRecipeResponse)++-- | The identifier (user name) of the user who last published the recipe.+describeRecipeResponse_publishedBy :: Lens.Lens' DescribeRecipeResponse (Prelude.Maybe Prelude.Text)+describeRecipeResponse_publishedBy = Lens.lens (\DescribeRecipeResponse' {publishedBy} -> publishedBy) (\s@DescribeRecipeResponse' {} a -> s {publishedBy = a} :: DescribeRecipeResponse)++-- | The date and time when the recipe was last published.+describeRecipeResponse_publishedDate :: Lens.Lens' DescribeRecipeResponse (Prelude.Maybe Prelude.UTCTime)+describeRecipeResponse_publishedDate = Lens.lens (\DescribeRecipeResponse' {publishedDate} -> publishedDate) (\s@DescribeRecipeResponse' {} a -> s {publishedDate = a} :: DescribeRecipeResponse) Prelude.. Lens.mapping Data._Time++-- | The recipe version identifier.+describeRecipeResponse_recipeVersion :: Lens.Lens' DescribeRecipeResponse (Prelude.Maybe Prelude.Text)+describeRecipeResponse_recipeVersion = Lens.lens (\DescribeRecipeResponse' {recipeVersion} -> recipeVersion) (\s@DescribeRecipeResponse' {} a -> s {recipeVersion = a} :: DescribeRecipeResponse)++-- | The ARN of the recipe.+describeRecipeResponse_resourceArn :: Lens.Lens' DescribeRecipeResponse (Prelude.Maybe Prelude.Text)+describeRecipeResponse_resourceArn = Lens.lens (\DescribeRecipeResponse' {resourceArn} -> resourceArn) (\s@DescribeRecipeResponse' {} a -> s {resourceArn = a} :: DescribeRecipeResponse)++-- | One or more steps to be performed by the recipe. Each step consists of+-- an action, and the conditions under which the action should succeed.+describeRecipeResponse_steps :: Lens.Lens' DescribeRecipeResponse (Prelude.Maybe [RecipeStep])+describeRecipeResponse_steps = Lens.lens (\DescribeRecipeResponse' {steps} -> steps) (\s@DescribeRecipeResponse' {} a -> s {steps = a} :: DescribeRecipeResponse) Prelude.. Lens.mapping Lens.coerced++-- | Metadata tags associated with this project.+describeRecipeResponse_tags :: Lens.Lens' DescribeRecipeResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+describeRecipeResponse_tags = Lens.lens (\DescribeRecipeResponse' {tags} -> tags) (\s@DescribeRecipeResponse' {} a -> s {tags = a} :: DescribeRecipeResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeRecipeResponse_httpStatus :: Lens.Lens' DescribeRecipeResponse Prelude.Int+describeRecipeResponse_httpStatus = Lens.lens (\DescribeRecipeResponse' {httpStatus} -> httpStatus) (\s@DescribeRecipeResponse' {} a -> s {httpStatus = a} :: DescribeRecipeResponse)++-- | The name of the recipe.+describeRecipeResponse_name :: Lens.Lens' DescribeRecipeResponse Prelude.Text+describeRecipeResponse_name = Lens.lens (\DescribeRecipeResponse' {name} -> name) (\s@DescribeRecipeResponse' {} a -> s {name = a} :: DescribeRecipeResponse)++instance Prelude.NFData DescribeRecipeResponse where+  rnf DescribeRecipeResponse' {..} =+    Prelude.rnf createDate+      `Prelude.seq` Prelude.rnf createdBy+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastModifiedBy+      `Prelude.seq` Prelude.rnf lastModifiedDate+      `Prelude.seq` Prelude.rnf projectName+      `Prelude.seq` Prelude.rnf publishedBy+      `Prelude.seq` Prelude.rnf publishedDate+      `Prelude.seq` Prelude.rnf recipeVersion+      `Prelude.seq` Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf steps+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/DescribeRuleset.hs view
@@ -0,0 +1,277 @@+{-# 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.DataBrew.DescribeRuleset+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves detailed information about the ruleset.+module Amazonka.DataBrew.DescribeRuleset+  ( -- * Creating a Request+    DescribeRuleset (..),+    newDescribeRuleset,++    -- * Request Lenses+    describeRuleset_name,++    -- * Destructuring the Response+    DescribeRulesetResponse (..),+    newDescribeRulesetResponse,++    -- * Response Lenses+    describeRulesetResponse_createDate,+    describeRulesetResponse_createdBy,+    describeRulesetResponse_description,+    describeRulesetResponse_lastModifiedBy,+    describeRulesetResponse_lastModifiedDate,+    describeRulesetResponse_resourceArn,+    describeRulesetResponse_rules,+    describeRulesetResponse_tags,+    describeRulesetResponse_targetArn,+    describeRulesetResponse_httpStatus,+    describeRulesetResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeRuleset' smart constructor.+data DescribeRuleset = DescribeRuleset'+  { -- | The name of the ruleset to be described.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeRuleset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'describeRuleset_name' - The name of the ruleset to be described.+newDescribeRuleset ::+  -- | 'name'+  Prelude.Text ->+  DescribeRuleset+newDescribeRuleset pName_ =+  DescribeRuleset' {name = pName_}++-- | The name of the ruleset to be described.+describeRuleset_name :: Lens.Lens' DescribeRuleset Prelude.Text+describeRuleset_name = Lens.lens (\DescribeRuleset' {name} -> name) (\s@DescribeRuleset' {} a -> s {name = a} :: DescribeRuleset)++instance Core.AWSRequest DescribeRuleset where+  type+    AWSResponse DescribeRuleset =+      DescribeRulesetResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeRulesetResponse'+            Prelude.<$> (x Data..?> "CreateDate")+            Prelude.<*> (x Data..?> "CreatedBy")+            Prelude.<*> (x Data..?> "Description")+            Prelude.<*> (x Data..?> "LastModifiedBy")+            Prelude.<*> (x Data..?> "LastModifiedDate")+            Prelude.<*> (x Data..?> "ResourceArn")+            Prelude.<*> (x Data..?> "Rules")+            Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "TargetArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable DescribeRuleset where+  hashWithSalt _salt DescribeRuleset' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData DescribeRuleset where+  rnf DescribeRuleset' {..} = Prelude.rnf name++instance Data.ToHeaders DescribeRuleset where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeRuleset where+  toPath DescribeRuleset' {..} =+    Prelude.mconcat ["/rulesets/", Data.toBS name]++instance Data.ToQuery DescribeRuleset where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeRulesetResponse' smart constructor.+data DescribeRulesetResponse = DescribeRulesetResponse'+  { -- | The date and time that the ruleset was created.+    createDate :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the user who created the ruleset.+    createdBy :: Prelude.Maybe Prelude.Text,+    -- | The description of the ruleset.+    description :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the user who last modified the+    -- ruleset.+    lastModifiedBy :: Prelude.Maybe Prelude.Text,+    -- | The modification date and time of the ruleset.+    lastModifiedDate :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) for the ruleset.+    resourceArn :: Prelude.Maybe Prelude.Text,+    -- | A list of rules that are defined with the ruleset. A rule includes one+    -- or more checks to be validated on a DataBrew dataset.+    rules :: Prelude.Maybe (Prelude.NonEmpty Rule),+    -- | Metadata tags that have been applied to the ruleset.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The Amazon Resource Name (ARN) of a resource (dataset) that the ruleset+    -- is associated with.+    targetArn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the ruleset.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeRulesetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createDate', 'describeRulesetResponse_createDate' - The date and time that the ruleset was created.+--+-- 'createdBy', 'describeRulesetResponse_createdBy' - The Amazon Resource Name (ARN) of the user who created the ruleset.+--+-- 'description', 'describeRulesetResponse_description' - The description of the ruleset.+--+-- 'lastModifiedBy', 'describeRulesetResponse_lastModifiedBy' - The Amazon Resource Name (ARN) of the user who last modified the+-- ruleset.+--+-- 'lastModifiedDate', 'describeRulesetResponse_lastModifiedDate' - The modification date and time of the ruleset.+--+-- 'resourceArn', 'describeRulesetResponse_resourceArn' - The Amazon Resource Name (ARN) for the ruleset.+--+-- 'rules', 'describeRulesetResponse_rules' - A list of rules that are defined with the ruleset. A rule includes one+-- or more checks to be validated on a DataBrew dataset.+--+-- 'tags', 'describeRulesetResponse_tags' - Metadata tags that have been applied to the ruleset.+--+-- 'targetArn', 'describeRulesetResponse_targetArn' - The Amazon Resource Name (ARN) of a resource (dataset) that the ruleset+-- is associated with.+--+-- 'httpStatus', 'describeRulesetResponse_httpStatus' - The response's http status code.+--+-- 'name', 'describeRulesetResponse_name' - The name of the ruleset.+newDescribeRulesetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  DescribeRulesetResponse+newDescribeRulesetResponse pHttpStatus_ pName_ =+  DescribeRulesetResponse'+    { createDate =+        Prelude.Nothing,+      createdBy = Prelude.Nothing,+      description = Prelude.Nothing,+      lastModifiedBy = Prelude.Nothing,+      lastModifiedDate = Prelude.Nothing,+      resourceArn = Prelude.Nothing,+      rules = Prelude.Nothing,+      tags = Prelude.Nothing,+      targetArn = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      name = pName_+    }++-- | The date and time that the ruleset was created.+describeRulesetResponse_createDate :: Lens.Lens' DescribeRulesetResponse (Prelude.Maybe Prelude.UTCTime)+describeRulesetResponse_createDate = Lens.lens (\DescribeRulesetResponse' {createDate} -> createDate) (\s@DescribeRulesetResponse' {} a -> s {createDate = a} :: DescribeRulesetResponse) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the user who created the ruleset.+describeRulesetResponse_createdBy :: Lens.Lens' DescribeRulesetResponse (Prelude.Maybe Prelude.Text)+describeRulesetResponse_createdBy = Lens.lens (\DescribeRulesetResponse' {createdBy} -> createdBy) (\s@DescribeRulesetResponse' {} a -> s {createdBy = a} :: DescribeRulesetResponse)++-- | The description of the ruleset.+describeRulesetResponse_description :: Lens.Lens' DescribeRulesetResponse (Prelude.Maybe Prelude.Text)+describeRulesetResponse_description = Lens.lens (\DescribeRulesetResponse' {description} -> description) (\s@DescribeRulesetResponse' {} a -> s {description = a} :: DescribeRulesetResponse)++-- | The Amazon Resource Name (ARN) of the user who last modified the+-- ruleset.+describeRulesetResponse_lastModifiedBy :: Lens.Lens' DescribeRulesetResponse (Prelude.Maybe Prelude.Text)+describeRulesetResponse_lastModifiedBy = Lens.lens (\DescribeRulesetResponse' {lastModifiedBy} -> lastModifiedBy) (\s@DescribeRulesetResponse' {} a -> s {lastModifiedBy = a} :: DescribeRulesetResponse)++-- | The modification date and time of the ruleset.+describeRulesetResponse_lastModifiedDate :: Lens.Lens' DescribeRulesetResponse (Prelude.Maybe Prelude.UTCTime)+describeRulesetResponse_lastModifiedDate = Lens.lens (\DescribeRulesetResponse' {lastModifiedDate} -> lastModifiedDate) (\s@DescribeRulesetResponse' {} a -> s {lastModifiedDate = a} :: DescribeRulesetResponse) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) for the ruleset.+describeRulesetResponse_resourceArn :: Lens.Lens' DescribeRulesetResponse (Prelude.Maybe Prelude.Text)+describeRulesetResponse_resourceArn = Lens.lens (\DescribeRulesetResponse' {resourceArn} -> resourceArn) (\s@DescribeRulesetResponse' {} a -> s {resourceArn = a} :: DescribeRulesetResponse)++-- | A list of rules that are defined with the ruleset. A rule includes one+-- or more checks to be validated on a DataBrew dataset.+describeRulesetResponse_rules :: Lens.Lens' DescribeRulesetResponse (Prelude.Maybe (Prelude.NonEmpty Rule))+describeRulesetResponse_rules = Lens.lens (\DescribeRulesetResponse' {rules} -> rules) (\s@DescribeRulesetResponse' {} a -> s {rules = a} :: DescribeRulesetResponse) Prelude.. Lens.mapping Lens.coerced++-- | Metadata tags that have been applied to the ruleset.+describeRulesetResponse_tags :: Lens.Lens' DescribeRulesetResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+describeRulesetResponse_tags = Lens.lens (\DescribeRulesetResponse' {tags} -> tags) (\s@DescribeRulesetResponse' {} a -> s {tags = a} :: DescribeRulesetResponse) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of a resource (dataset) that the ruleset+-- is associated with.+describeRulesetResponse_targetArn :: Lens.Lens' DescribeRulesetResponse (Prelude.Maybe Prelude.Text)+describeRulesetResponse_targetArn = Lens.lens (\DescribeRulesetResponse' {targetArn} -> targetArn) (\s@DescribeRulesetResponse' {} a -> s {targetArn = a} :: DescribeRulesetResponse)++-- | The response's http status code.+describeRulesetResponse_httpStatus :: Lens.Lens' DescribeRulesetResponse Prelude.Int+describeRulesetResponse_httpStatus = Lens.lens (\DescribeRulesetResponse' {httpStatus} -> httpStatus) (\s@DescribeRulesetResponse' {} a -> s {httpStatus = a} :: DescribeRulesetResponse)++-- | The name of the ruleset.+describeRulesetResponse_name :: Lens.Lens' DescribeRulesetResponse Prelude.Text+describeRulesetResponse_name = Lens.lens (\DescribeRulesetResponse' {name} -> name) (\s@DescribeRulesetResponse' {} a -> s {name = a} :: DescribeRulesetResponse)++instance Prelude.NFData DescribeRulesetResponse where+  rnf DescribeRulesetResponse' {..} =+    Prelude.rnf createDate+      `Prelude.seq` Prelude.rnf createdBy+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastModifiedBy+      `Prelude.seq` Prelude.rnf lastModifiedDate+      `Prelude.seq` Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf rules+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf targetArn+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/DescribeSchedule.hs view
@@ -0,0 +1,265 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.DescribeSchedule+-- 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 definition of a specific DataBrew schedule.+module Amazonka.DataBrew.DescribeSchedule+  ( -- * Creating a Request+    DescribeSchedule (..),+    newDescribeSchedule,++    -- * Request Lenses+    describeSchedule_name,++    -- * Destructuring the Response+    DescribeScheduleResponse (..),+    newDescribeScheduleResponse,++    -- * Response Lenses+    describeScheduleResponse_createDate,+    describeScheduleResponse_createdBy,+    describeScheduleResponse_cronExpression,+    describeScheduleResponse_jobNames,+    describeScheduleResponse_lastModifiedBy,+    describeScheduleResponse_lastModifiedDate,+    describeScheduleResponse_resourceArn,+    describeScheduleResponse_tags,+    describeScheduleResponse_httpStatus,+    describeScheduleResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeSchedule' smart constructor.+data DescribeSchedule = DescribeSchedule'+  { -- | The name of the schedule to be described.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSchedule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'describeSchedule_name' - The name of the schedule to be described.+newDescribeSchedule ::+  -- | 'name'+  Prelude.Text ->+  DescribeSchedule+newDescribeSchedule pName_ =+  DescribeSchedule' {name = pName_}++-- | The name of the schedule to be described.+describeSchedule_name :: Lens.Lens' DescribeSchedule Prelude.Text+describeSchedule_name = Lens.lens (\DescribeSchedule' {name} -> name) (\s@DescribeSchedule' {} a -> s {name = a} :: DescribeSchedule)++instance Core.AWSRequest DescribeSchedule where+  type+    AWSResponse DescribeSchedule =+      DescribeScheduleResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeScheduleResponse'+            Prelude.<$> (x Data..?> "CreateDate")+            Prelude.<*> (x Data..?> "CreatedBy")+            Prelude.<*> (x Data..?> "CronExpression")+            Prelude.<*> (x Data..?> "JobNames" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "LastModifiedBy")+            Prelude.<*> (x Data..?> "LastModifiedDate")+            Prelude.<*> (x Data..?> "ResourceArn")+            Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable DescribeSchedule where+  hashWithSalt _salt DescribeSchedule' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData DescribeSchedule where+  rnf DescribeSchedule' {..} = Prelude.rnf name++instance Data.ToHeaders DescribeSchedule where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeSchedule where+  toPath DescribeSchedule' {..} =+    Prelude.mconcat ["/schedules/", Data.toBS name]++instance Data.ToQuery DescribeSchedule where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeScheduleResponse' smart constructor.+data DescribeScheduleResponse = DescribeScheduleResponse'+  { -- | The date and time that the schedule was created.+    createDate :: Prelude.Maybe Data.POSIX,+    -- | The identifier (user name) of the user who created the schedule.+    createdBy :: Prelude.Maybe Prelude.Text,+    -- | The date or dates and time or times when the jobs are to be run for the+    -- schedule. For more information, see+    -- <https://docs.aws.amazon.com/databrew/latest/dg/jobs.cron.html Cron expressions>+    -- in the /Glue DataBrew Developer Guide/.+    cronExpression :: Prelude.Maybe Prelude.Text,+    -- | The name or names of one or more jobs to be run by using the schedule.+    jobNames :: Prelude.Maybe [Prelude.Text],+    -- | The identifier (user name) of the user who last modified the schedule.+    lastModifiedBy :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the schedule was last modified.+    lastModifiedDate :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the schedule.+    resourceArn :: Prelude.Maybe Prelude.Text,+    -- | Metadata tags associated with this schedule.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the schedule.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeScheduleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createDate', 'describeScheduleResponse_createDate' - The date and time that the schedule was created.+--+-- 'createdBy', 'describeScheduleResponse_createdBy' - The identifier (user name) of the user who created the schedule.+--+-- 'cronExpression', 'describeScheduleResponse_cronExpression' - The date or dates and time or times when the jobs are to be run for the+-- schedule. For more information, see+-- <https://docs.aws.amazon.com/databrew/latest/dg/jobs.cron.html Cron expressions>+-- in the /Glue DataBrew Developer Guide/.+--+-- 'jobNames', 'describeScheduleResponse_jobNames' - The name or names of one or more jobs to be run by using the schedule.+--+-- 'lastModifiedBy', 'describeScheduleResponse_lastModifiedBy' - The identifier (user name) of the user who last modified the schedule.+--+-- 'lastModifiedDate', 'describeScheduleResponse_lastModifiedDate' - The date and time that the schedule was last modified.+--+-- 'resourceArn', 'describeScheduleResponse_resourceArn' - The Amazon Resource Name (ARN) of the schedule.+--+-- 'tags', 'describeScheduleResponse_tags' - Metadata tags associated with this schedule.+--+-- 'httpStatus', 'describeScheduleResponse_httpStatus' - The response's http status code.+--+-- 'name', 'describeScheduleResponse_name' - The name of the schedule.+newDescribeScheduleResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  DescribeScheduleResponse+newDescribeScheduleResponse pHttpStatus_ pName_ =+  DescribeScheduleResponse'+    { createDate =+        Prelude.Nothing,+      createdBy = Prelude.Nothing,+      cronExpression = Prelude.Nothing,+      jobNames = Prelude.Nothing,+      lastModifiedBy = Prelude.Nothing,+      lastModifiedDate = Prelude.Nothing,+      resourceArn = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      name = pName_+    }++-- | The date and time that the schedule was created.+describeScheduleResponse_createDate :: Lens.Lens' DescribeScheduleResponse (Prelude.Maybe Prelude.UTCTime)+describeScheduleResponse_createDate = Lens.lens (\DescribeScheduleResponse' {createDate} -> createDate) (\s@DescribeScheduleResponse' {} a -> s {createDate = a} :: DescribeScheduleResponse) Prelude.. Lens.mapping Data._Time++-- | The identifier (user name) of the user who created the schedule.+describeScheduleResponse_createdBy :: Lens.Lens' DescribeScheduleResponse (Prelude.Maybe Prelude.Text)+describeScheduleResponse_createdBy = Lens.lens (\DescribeScheduleResponse' {createdBy} -> createdBy) (\s@DescribeScheduleResponse' {} a -> s {createdBy = a} :: DescribeScheduleResponse)++-- | The date or dates and time or times when the jobs are to be run for the+-- schedule. For more information, see+-- <https://docs.aws.amazon.com/databrew/latest/dg/jobs.cron.html Cron expressions>+-- in the /Glue DataBrew Developer Guide/.+describeScheduleResponse_cronExpression :: Lens.Lens' DescribeScheduleResponse (Prelude.Maybe Prelude.Text)+describeScheduleResponse_cronExpression = Lens.lens (\DescribeScheduleResponse' {cronExpression} -> cronExpression) (\s@DescribeScheduleResponse' {} a -> s {cronExpression = a} :: DescribeScheduleResponse)++-- | The name or names of one or more jobs to be run by using the schedule.+describeScheduleResponse_jobNames :: Lens.Lens' DescribeScheduleResponse (Prelude.Maybe [Prelude.Text])+describeScheduleResponse_jobNames = Lens.lens (\DescribeScheduleResponse' {jobNames} -> jobNames) (\s@DescribeScheduleResponse' {} a -> s {jobNames = a} :: DescribeScheduleResponse) Prelude.. Lens.mapping Lens.coerced++-- | The identifier (user name) of the user who last modified the schedule.+describeScheduleResponse_lastModifiedBy :: Lens.Lens' DescribeScheduleResponse (Prelude.Maybe Prelude.Text)+describeScheduleResponse_lastModifiedBy = Lens.lens (\DescribeScheduleResponse' {lastModifiedBy} -> lastModifiedBy) (\s@DescribeScheduleResponse' {} a -> s {lastModifiedBy = a} :: DescribeScheduleResponse)++-- | The date and time that the schedule was last modified.+describeScheduleResponse_lastModifiedDate :: Lens.Lens' DescribeScheduleResponse (Prelude.Maybe Prelude.UTCTime)+describeScheduleResponse_lastModifiedDate = Lens.lens (\DescribeScheduleResponse' {lastModifiedDate} -> lastModifiedDate) (\s@DescribeScheduleResponse' {} a -> s {lastModifiedDate = a} :: DescribeScheduleResponse) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the schedule.+describeScheduleResponse_resourceArn :: Lens.Lens' DescribeScheduleResponse (Prelude.Maybe Prelude.Text)+describeScheduleResponse_resourceArn = Lens.lens (\DescribeScheduleResponse' {resourceArn} -> resourceArn) (\s@DescribeScheduleResponse' {} a -> s {resourceArn = a} :: DescribeScheduleResponse)++-- | Metadata tags associated with this schedule.+describeScheduleResponse_tags :: Lens.Lens' DescribeScheduleResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+describeScheduleResponse_tags = Lens.lens (\DescribeScheduleResponse' {tags} -> tags) (\s@DescribeScheduleResponse' {} a -> s {tags = a} :: DescribeScheduleResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeScheduleResponse_httpStatus :: Lens.Lens' DescribeScheduleResponse Prelude.Int+describeScheduleResponse_httpStatus = Lens.lens (\DescribeScheduleResponse' {httpStatus} -> httpStatus) (\s@DescribeScheduleResponse' {} a -> s {httpStatus = a} :: DescribeScheduleResponse)++-- | The name of the schedule.+describeScheduleResponse_name :: Lens.Lens' DescribeScheduleResponse Prelude.Text+describeScheduleResponse_name = Lens.lens (\DescribeScheduleResponse' {name} -> name) (\s@DescribeScheduleResponse' {} a -> s {name = a} :: DescribeScheduleResponse)++instance Prelude.NFData DescribeScheduleResponse where+  rnf DescribeScheduleResponse' {..} =+    Prelude.rnf createDate+      `Prelude.seq` Prelude.rnf createdBy+      `Prelude.seq` Prelude.rnf cronExpression+      `Prelude.seq` Prelude.rnf jobNames+      `Prelude.seq` Prelude.rnf lastModifiedBy+      `Prelude.seq` Prelude.rnf lastModifiedDate+      `Prelude.seq` Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/Lens.hs view
@@ -0,0 +1,850 @@+{-# 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.DataBrew.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.DataBrew.Lens+  ( -- * Operations++    -- ** BatchDeleteRecipeVersion+    batchDeleteRecipeVersion_name,+    batchDeleteRecipeVersion_recipeVersions,+    batchDeleteRecipeVersionResponse_errors,+    batchDeleteRecipeVersionResponse_httpStatus,+    batchDeleteRecipeVersionResponse_name,++    -- ** CreateDataset+    createDataset_format,+    createDataset_formatOptions,+    createDataset_pathOptions,+    createDataset_tags,+    createDataset_name,+    createDataset_input,+    createDatasetResponse_httpStatus,+    createDatasetResponse_name,++    -- ** CreateProfileJob+    createProfileJob_configuration,+    createProfileJob_encryptionKeyArn,+    createProfileJob_encryptionMode,+    createProfileJob_jobSample,+    createProfileJob_logSubscription,+    createProfileJob_maxCapacity,+    createProfileJob_maxRetries,+    createProfileJob_tags,+    createProfileJob_timeout,+    createProfileJob_validationConfigurations,+    createProfileJob_datasetName,+    createProfileJob_name,+    createProfileJob_outputLocation,+    createProfileJob_roleArn,+    createProfileJobResponse_httpStatus,+    createProfileJobResponse_name,++    -- ** CreateProject+    createProject_sample,+    createProject_tags,+    createProject_datasetName,+    createProject_name,+    createProject_recipeName,+    createProject_roleArn,+    createProjectResponse_httpStatus,+    createProjectResponse_name,++    -- ** CreateRecipe+    createRecipe_description,+    createRecipe_tags,+    createRecipe_name,+    createRecipe_steps,+    createRecipeResponse_httpStatus,+    createRecipeResponse_name,++    -- ** CreateRecipeJob+    createRecipeJob_dataCatalogOutputs,+    createRecipeJob_databaseOutputs,+    createRecipeJob_datasetName,+    createRecipeJob_encryptionKeyArn,+    createRecipeJob_encryptionMode,+    createRecipeJob_logSubscription,+    createRecipeJob_maxCapacity,+    createRecipeJob_maxRetries,+    createRecipeJob_outputs,+    createRecipeJob_projectName,+    createRecipeJob_recipeReference,+    createRecipeJob_tags,+    createRecipeJob_timeout,+    createRecipeJob_name,+    createRecipeJob_roleArn,+    createRecipeJobResponse_httpStatus,+    createRecipeJobResponse_name,++    -- ** CreateRuleset+    createRuleset_description,+    createRuleset_tags,+    createRuleset_name,+    createRuleset_targetArn,+    createRuleset_rules,+    createRulesetResponse_httpStatus,+    createRulesetResponse_name,++    -- ** CreateSchedule+    createSchedule_jobNames,+    createSchedule_tags,+    createSchedule_cronExpression,+    createSchedule_name,+    createScheduleResponse_httpStatus,+    createScheduleResponse_name,++    -- ** DeleteDataset+    deleteDataset_name,+    deleteDatasetResponse_httpStatus,+    deleteDatasetResponse_name,++    -- ** DeleteJob+    deleteJob_name,+    deleteJobResponse_httpStatus,+    deleteJobResponse_name,++    -- ** DeleteProject+    deleteProject_name,+    deleteProjectResponse_httpStatus,+    deleteProjectResponse_name,++    -- ** DeleteRecipeVersion+    deleteRecipeVersion_name,+    deleteRecipeVersion_recipeVersion,+    deleteRecipeVersionResponse_httpStatus,+    deleteRecipeVersionResponse_name,+    deleteRecipeVersionResponse_recipeVersion,++    -- ** DeleteRuleset+    deleteRuleset_name,+    deleteRulesetResponse_httpStatus,+    deleteRulesetResponse_name,++    -- ** DeleteSchedule+    deleteSchedule_name,+    deleteScheduleResponse_httpStatus,+    deleteScheduleResponse_name,++    -- ** DescribeDataset+    describeDataset_name,+    describeDatasetResponse_createDate,+    describeDatasetResponse_createdBy,+    describeDatasetResponse_format,+    describeDatasetResponse_formatOptions,+    describeDatasetResponse_lastModifiedBy,+    describeDatasetResponse_lastModifiedDate,+    describeDatasetResponse_pathOptions,+    describeDatasetResponse_resourceArn,+    describeDatasetResponse_source,+    describeDatasetResponse_tags,+    describeDatasetResponse_httpStatus,+    describeDatasetResponse_name,+    describeDatasetResponse_input,++    -- ** DescribeJob+    describeJob_name,+    describeJobResponse_createDate,+    describeJobResponse_createdBy,+    describeJobResponse_dataCatalogOutputs,+    describeJobResponse_databaseOutputs,+    describeJobResponse_datasetName,+    describeJobResponse_encryptionKeyArn,+    describeJobResponse_encryptionMode,+    describeJobResponse_jobSample,+    describeJobResponse_lastModifiedBy,+    describeJobResponse_lastModifiedDate,+    describeJobResponse_logSubscription,+    describeJobResponse_maxCapacity,+    describeJobResponse_maxRetries,+    describeJobResponse_outputs,+    describeJobResponse_profileConfiguration,+    describeJobResponse_projectName,+    describeJobResponse_recipeReference,+    describeJobResponse_resourceArn,+    describeJobResponse_roleArn,+    describeJobResponse_tags,+    describeJobResponse_timeout,+    describeJobResponse_type,+    describeJobResponse_validationConfigurations,+    describeJobResponse_httpStatus,+    describeJobResponse_name,++    -- ** DescribeJobRun+    describeJobRun_name,+    describeJobRun_runId,+    describeJobRunResponse_attempt,+    describeJobRunResponse_completedOn,+    describeJobRunResponse_dataCatalogOutputs,+    describeJobRunResponse_databaseOutputs,+    describeJobRunResponse_datasetName,+    describeJobRunResponse_errorMessage,+    describeJobRunResponse_executionTime,+    describeJobRunResponse_jobSample,+    describeJobRunResponse_logGroupName,+    describeJobRunResponse_logSubscription,+    describeJobRunResponse_outputs,+    describeJobRunResponse_profileConfiguration,+    describeJobRunResponse_recipeReference,+    describeJobRunResponse_runId,+    describeJobRunResponse_startedBy,+    describeJobRunResponse_startedOn,+    describeJobRunResponse_state,+    describeJobRunResponse_validationConfigurations,+    describeJobRunResponse_httpStatus,+    describeJobRunResponse_jobName,++    -- ** DescribeProject+    describeProject_name,+    describeProjectResponse_createDate,+    describeProjectResponse_createdBy,+    describeProjectResponse_datasetName,+    describeProjectResponse_lastModifiedBy,+    describeProjectResponse_lastModifiedDate,+    describeProjectResponse_openDate,+    describeProjectResponse_openedBy,+    describeProjectResponse_recipeName,+    describeProjectResponse_resourceArn,+    describeProjectResponse_roleArn,+    describeProjectResponse_sample,+    describeProjectResponse_sessionStatus,+    describeProjectResponse_tags,+    describeProjectResponse_httpStatus,+    describeProjectResponse_name,++    -- ** DescribeRecipe+    describeRecipe_recipeVersion,+    describeRecipe_name,+    describeRecipeResponse_createDate,+    describeRecipeResponse_createdBy,+    describeRecipeResponse_description,+    describeRecipeResponse_lastModifiedBy,+    describeRecipeResponse_lastModifiedDate,+    describeRecipeResponse_projectName,+    describeRecipeResponse_publishedBy,+    describeRecipeResponse_publishedDate,+    describeRecipeResponse_recipeVersion,+    describeRecipeResponse_resourceArn,+    describeRecipeResponse_steps,+    describeRecipeResponse_tags,+    describeRecipeResponse_httpStatus,+    describeRecipeResponse_name,++    -- ** DescribeRuleset+    describeRuleset_name,+    describeRulesetResponse_createDate,+    describeRulesetResponse_createdBy,+    describeRulesetResponse_description,+    describeRulesetResponse_lastModifiedBy,+    describeRulesetResponse_lastModifiedDate,+    describeRulesetResponse_resourceArn,+    describeRulesetResponse_rules,+    describeRulesetResponse_tags,+    describeRulesetResponse_targetArn,+    describeRulesetResponse_httpStatus,+    describeRulesetResponse_name,++    -- ** DescribeSchedule+    describeSchedule_name,+    describeScheduleResponse_createDate,+    describeScheduleResponse_createdBy,+    describeScheduleResponse_cronExpression,+    describeScheduleResponse_jobNames,+    describeScheduleResponse_lastModifiedBy,+    describeScheduleResponse_lastModifiedDate,+    describeScheduleResponse_resourceArn,+    describeScheduleResponse_tags,+    describeScheduleResponse_httpStatus,+    describeScheduleResponse_name,++    -- ** ListDatasets+    listDatasets_maxResults,+    listDatasets_nextToken,+    listDatasetsResponse_nextToken,+    listDatasetsResponse_httpStatus,+    listDatasetsResponse_datasets,++    -- ** ListJobRuns+    listJobRuns_maxResults,+    listJobRuns_nextToken,+    listJobRuns_name,+    listJobRunsResponse_nextToken,+    listJobRunsResponse_httpStatus,+    listJobRunsResponse_jobRuns,++    -- ** ListJobs+    listJobs_datasetName,+    listJobs_maxResults,+    listJobs_nextToken,+    listJobs_projectName,+    listJobsResponse_nextToken,+    listJobsResponse_httpStatus,+    listJobsResponse_jobs,++    -- ** ListProjects+    listProjects_maxResults,+    listProjects_nextToken,+    listProjectsResponse_nextToken,+    listProjectsResponse_httpStatus,+    listProjectsResponse_projects,++    -- ** ListRecipeVersions+    listRecipeVersions_maxResults,+    listRecipeVersions_nextToken,+    listRecipeVersions_name,+    listRecipeVersionsResponse_nextToken,+    listRecipeVersionsResponse_httpStatus,+    listRecipeVersionsResponse_recipes,++    -- ** ListRecipes+    listRecipes_maxResults,+    listRecipes_nextToken,+    listRecipes_recipeVersion,+    listRecipesResponse_nextToken,+    listRecipesResponse_httpStatus,+    listRecipesResponse_recipes,++    -- ** ListRulesets+    listRulesets_maxResults,+    listRulesets_nextToken,+    listRulesets_targetArn,+    listRulesetsResponse_nextToken,+    listRulesetsResponse_httpStatus,+    listRulesetsResponse_rulesets,++    -- ** ListSchedules+    listSchedules_jobName,+    listSchedules_maxResults,+    listSchedules_nextToken,+    listSchedulesResponse_nextToken,+    listSchedulesResponse_httpStatus,+    listSchedulesResponse_schedules,++    -- ** ListTagsForResource+    listTagsForResource_resourceArn,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** PublishRecipe+    publishRecipe_description,+    publishRecipe_name,+    publishRecipeResponse_httpStatus,+    publishRecipeResponse_name,++    -- ** SendProjectSessionAction+    sendProjectSessionAction_clientSessionId,+    sendProjectSessionAction_preview,+    sendProjectSessionAction_recipeStep,+    sendProjectSessionAction_stepIndex,+    sendProjectSessionAction_viewFrame,+    sendProjectSessionAction_name,+    sendProjectSessionActionResponse_actionId,+    sendProjectSessionActionResponse_result,+    sendProjectSessionActionResponse_httpStatus,+    sendProjectSessionActionResponse_name,++    -- ** StartJobRun+    startJobRun_name,+    startJobRunResponse_httpStatus,+    startJobRunResponse_runId,++    -- ** StartProjectSession+    startProjectSession_assumeControl,+    startProjectSession_name,+    startProjectSessionResponse_clientSessionId,+    startProjectSessionResponse_httpStatus,+    startProjectSessionResponse_name,++    -- ** StopJobRun+    stopJobRun_name,+    stopJobRun_runId,+    stopJobRunResponse_httpStatus,+    stopJobRunResponse_runId,++    -- ** TagResource+    tagResource_resourceArn,+    tagResource_tags,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceArn,+    untagResource_tagKeys,+    untagResourceResponse_httpStatus,++    -- ** UpdateDataset+    updateDataset_format,+    updateDataset_formatOptions,+    updateDataset_pathOptions,+    updateDataset_name,+    updateDataset_input,+    updateDatasetResponse_httpStatus,+    updateDatasetResponse_name,++    -- ** UpdateProfileJob+    updateProfileJob_configuration,+    updateProfileJob_encryptionKeyArn,+    updateProfileJob_encryptionMode,+    updateProfileJob_jobSample,+    updateProfileJob_logSubscription,+    updateProfileJob_maxCapacity,+    updateProfileJob_maxRetries,+    updateProfileJob_timeout,+    updateProfileJob_validationConfigurations,+    updateProfileJob_name,+    updateProfileJob_outputLocation,+    updateProfileJob_roleArn,+    updateProfileJobResponse_httpStatus,+    updateProfileJobResponse_name,++    -- ** UpdateProject+    updateProject_sample,+    updateProject_roleArn,+    updateProject_name,+    updateProjectResponse_lastModifiedDate,+    updateProjectResponse_httpStatus,+    updateProjectResponse_name,++    -- ** UpdateRecipe+    updateRecipe_description,+    updateRecipe_steps,+    updateRecipe_name,+    updateRecipeResponse_httpStatus,+    updateRecipeResponse_name,++    -- ** UpdateRecipeJob+    updateRecipeJob_dataCatalogOutputs,+    updateRecipeJob_databaseOutputs,+    updateRecipeJob_encryptionKeyArn,+    updateRecipeJob_encryptionMode,+    updateRecipeJob_logSubscription,+    updateRecipeJob_maxCapacity,+    updateRecipeJob_maxRetries,+    updateRecipeJob_outputs,+    updateRecipeJob_timeout,+    updateRecipeJob_name,+    updateRecipeJob_roleArn,+    updateRecipeJobResponse_httpStatus,+    updateRecipeJobResponse_name,++    -- ** UpdateRuleset+    updateRuleset_description,+    updateRuleset_name,+    updateRuleset_rules,+    updateRulesetResponse_httpStatus,+    updateRulesetResponse_name,++    -- ** UpdateSchedule+    updateSchedule_jobNames,+    updateSchedule_cronExpression,+    updateSchedule_name,+    updateScheduleResponse_httpStatus,+    updateScheduleResponse_name,++    -- * Types++    -- ** AllowedStatistics+    allowedStatistics_statistics,++    -- ** ColumnSelector+    columnSelector_name,+    columnSelector_regex,++    -- ** ColumnStatisticsConfiguration+    columnStatisticsConfiguration_selectors,+    columnStatisticsConfiguration_statistics,++    -- ** ConditionExpression+    conditionExpression_value,+    conditionExpression_condition,+    conditionExpression_targetColumn,++    -- ** CsvOptions+    csvOptions_delimiter,+    csvOptions_headerRow,++    -- ** CsvOutputOptions+    csvOutputOptions_delimiter,++    -- ** DataCatalogInputDefinition+    dataCatalogInputDefinition_catalogId,+    dataCatalogInputDefinition_tempDirectory,+    dataCatalogInputDefinition_databaseName,+    dataCatalogInputDefinition_tableName,++    -- ** DataCatalogOutput+    dataCatalogOutput_catalogId,+    dataCatalogOutput_databaseOptions,+    dataCatalogOutput_overwrite,+    dataCatalogOutput_s3Options,+    dataCatalogOutput_databaseName,+    dataCatalogOutput_tableName,++    -- ** DatabaseInputDefinition+    databaseInputDefinition_databaseTableName,+    databaseInputDefinition_queryString,+    databaseInputDefinition_tempDirectory,+    databaseInputDefinition_glueConnectionName,++    -- ** DatabaseOutput+    databaseOutput_databaseOutputMode,+    databaseOutput_glueConnectionName,+    databaseOutput_databaseOptions,++    -- ** DatabaseTableOutputOptions+    databaseTableOutputOptions_tempDirectory,+    databaseTableOutputOptions_tableName,++    -- ** Dataset+    dataset_accountId,+    dataset_createDate,+    dataset_createdBy,+    dataset_format,+    dataset_formatOptions,+    dataset_lastModifiedBy,+    dataset_lastModifiedDate,+    dataset_pathOptions,+    dataset_resourceArn,+    dataset_source,+    dataset_tags,+    dataset_name,+    dataset_input,++    -- ** DatasetParameter+    datasetParameter_createColumn,+    datasetParameter_datetimeOptions,+    datasetParameter_filter,+    datasetParameter_name,+    datasetParameter_type,++    -- ** DatetimeOptions+    datetimeOptions_localeCode,+    datetimeOptions_timezoneOffset,+    datetimeOptions_format,++    -- ** EntityDetectorConfiguration+    entityDetectorConfiguration_allowedStatistics,+    entityDetectorConfiguration_entityTypes,++    -- ** ExcelOptions+    excelOptions_headerRow,+    excelOptions_sheetIndexes,+    excelOptions_sheetNames,++    -- ** FilesLimit+    filesLimit_order,+    filesLimit_orderedBy,+    filesLimit_maxFiles,++    -- ** FilterExpression+    filterExpression_expression,+    filterExpression_valuesMap,++    -- ** FormatOptions+    formatOptions_csv,+    formatOptions_excel,+    formatOptions_json,++    -- ** Input+    input_dataCatalogInputDefinition,+    input_databaseInputDefinition,+    input_metadata,+    input_s3InputDefinition,++    -- ** Job+    job_accountId,+    job_createDate,+    job_createdBy,+    job_dataCatalogOutputs,+    job_databaseOutputs,+    job_datasetName,+    job_encryptionKeyArn,+    job_encryptionMode,+    job_jobSample,+    job_lastModifiedBy,+    job_lastModifiedDate,+    job_logSubscription,+    job_maxCapacity,+    job_maxRetries,+    job_outputs,+    job_projectName,+    job_recipeReference,+    job_resourceArn,+    job_roleArn,+    job_tags,+    job_timeout,+    job_type,+    job_validationConfigurations,+    job_name,++    -- ** JobRun+    jobRun_attempt,+    jobRun_completedOn,+    jobRun_dataCatalogOutputs,+    jobRun_databaseOutputs,+    jobRun_datasetName,+    jobRun_errorMessage,+    jobRun_executionTime,+    jobRun_jobName,+    jobRun_jobSample,+    jobRun_logGroupName,+    jobRun_logSubscription,+    jobRun_outputs,+    jobRun_recipeReference,+    jobRun_runId,+    jobRun_startedBy,+    jobRun_startedOn,+    jobRun_state,+    jobRun_validationConfigurations,++    -- ** JobSample+    jobSample_mode,+    jobSample_size,++    -- ** JsonOptions+    jsonOptions_multiLine,++    -- ** Metadata+    metadata_sourceArn,++    -- ** Output+    output_compressionFormat,+    output_format,+    output_formatOptions,+    output_maxOutputFiles,+    output_overwrite,+    output_partitionColumns,+    output_location,++    -- ** OutputFormatOptions+    outputFormatOptions_csv,++    -- ** PathOptions+    pathOptions_filesLimit,+    pathOptions_lastModifiedDateCondition,+    pathOptions_parameters,++    -- ** ProfileConfiguration+    profileConfiguration_columnStatisticsConfigurations,+    profileConfiguration_datasetStatisticsConfiguration,+    profileConfiguration_entityDetectorConfiguration,+    profileConfiguration_profileColumns,++    -- ** Project+    project_accountId,+    project_createDate,+    project_createdBy,+    project_datasetName,+    project_lastModifiedBy,+    project_lastModifiedDate,+    project_openDate,+    project_openedBy,+    project_resourceArn,+    project_roleArn,+    project_sample,+    project_tags,+    project_name,+    project_recipeName,++    -- ** Recipe+    recipe_createDate,+    recipe_createdBy,+    recipe_description,+    recipe_lastModifiedBy,+    recipe_lastModifiedDate,+    recipe_projectName,+    recipe_publishedBy,+    recipe_publishedDate,+    recipe_recipeVersion,+    recipe_resourceArn,+    recipe_steps,+    recipe_tags,+    recipe_name,++    -- ** RecipeAction+    recipeAction_parameters,+    recipeAction_operation,++    -- ** RecipeReference+    recipeReference_recipeVersion,+    recipeReference_name,++    -- ** RecipeStep+    recipeStep_conditionExpressions,+    recipeStep_action,++    -- ** RecipeVersionErrorDetail+    recipeVersionErrorDetail_errorCode,+    recipeVersionErrorDetail_errorMessage,+    recipeVersionErrorDetail_recipeVersion,++    -- ** Rule+    rule_columnSelectors,+    rule_disabled,+    rule_substitutionMap,+    rule_threshold,+    rule_name,+    rule_checkExpression,++    -- ** RulesetItem+    rulesetItem_accountId,+    rulesetItem_createDate,+    rulesetItem_createdBy,+    rulesetItem_description,+    rulesetItem_lastModifiedBy,+    rulesetItem_lastModifiedDate,+    rulesetItem_resourceArn,+    rulesetItem_ruleCount,+    rulesetItem_tags,+    rulesetItem_name,+    rulesetItem_targetArn,++    -- ** S3Location+    s3Location_bucketOwner,+    s3Location_key,+    s3Location_bucket,++    -- ** S3TableOutputOptions+    s3TableOutputOptions_location,++    -- ** Sample+    sample_size,+    sample_type,++    -- ** Schedule+    schedule_accountId,+    schedule_createDate,+    schedule_createdBy,+    schedule_cronExpression,+    schedule_jobNames,+    schedule_lastModifiedBy,+    schedule_lastModifiedDate,+    schedule_resourceArn,+    schedule_tags,+    schedule_name,++    -- ** StatisticOverride+    statisticOverride_statistic,+    statisticOverride_parameters,++    -- ** StatisticsConfiguration+    statisticsConfiguration_includedStatistics,+    statisticsConfiguration_overrides,++    -- ** Threshold+    threshold_type,+    threshold_unit,+    threshold_value,++    -- ** ValidationConfiguration+    validationConfiguration_validationMode,+    validationConfiguration_rulesetArn,++    -- ** ViewFrame+    viewFrame_analytics,+    viewFrame_columnRange,+    viewFrame_hiddenColumns,+    viewFrame_rowRange,+    viewFrame_startRowIndex,+    viewFrame_startColumnIndex,+  )+where++import Amazonka.DataBrew.BatchDeleteRecipeVersion+import Amazonka.DataBrew.CreateDataset+import Amazonka.DataBrew.CreateProfileJob+import Amazonka.DataBrew.CreateProject+import Amazonka.DataBrew.CreateRecipe+import Amazonka.DataBrew.CreateRecipeJob+import Amazonka.DataBrew.CreateRuleset+import Amazonka.DataBrew.CreateSchedule+import Amazonka.DataBrew.DeleteDataset+import Amazonka.DataBrew.DeleteJob+import Amazonka.DataBrew.DeleteProject+import Amazonka.DataBrew.DeleteRecipeVersion+import Amazonka.DataBrew.DeleteRuleset+import Amazonka.DataBrew.DeleteSchedule+import Amazonka.DataBrew.DescribeDataset+import Amazonka.DataBrew.DescribeJob+import Amazonka.DataBrew.DescribeJobRun+import Amazonka.DataBrew.DescribeProject+import Amazonka.DataBrew.DescribeRecipe+import Amazonka.DataBrew.DescribeRuleset+import Amazonka.DataBrew.DescribeSchedule+import Amazonka.DataBrew.ListDatasets+import Amazonka.DataBrew.ListJobRuns+import Amazonka.DataBrew.ListJobs+import Amazonka.DataBrew.ListProjects+import Amazonka.DataBrew.ListRecipeVersions+import Amazonka.DataBrew.ListRecipes+import Amazonka.DataBrew.ListRulesets+import Amazonka.DataBrew.ListSchedules+import Amazonka.DataBrew.ListTagsForResource+import Amazonka.DataBrew.PublishRecipe+import Amazonka.DataBrew.SendProjectSessionAction+import Amazonka.DataBrew.StartJobRun+import Amazonka.DataBrew.StartProjectSession+import Amazonka.DataBrew.StopJobRun+import Amazonka.DataBrew.TagResource+import Amazonka.DataBrew.Types.AllowedStatistics+import Amazonka.DataBrew.Types.ColumnSelector+import Amazonka.DataBrew.Types.ColumnStatisticsConfiguration+import Amazonka.DataBrew.Types.ConditionExpression+import Amazonka.DataBrew.Types.CsvOptions+import Amazonka.DataBrew.Types.CsvOutputOptions+import Amazonka.DataBrew.Types.DataCatalogInputDefinition+import Amazonka.DataBrew.Types.DataCatalogOutput+import Amazonka.DataBrew.Types.DatabaseInputDefinition+import Amazonka.DataBrew.Types.DatabaseOutput+import Amazonka.DataBrew.Types.DatabaseTableOutputOptions+import Amazonka.DataBrew.Types.Dataset+import Amazonka.DataBrew.Types.DatasetParameter+import Amazonka.DataBrew.Types.DatetimeOptions+import Amazonka.DataBrew.Types.EntityDetectorConfiguration+import Amazonka.DataBrew.Types.ExcelOptions+import Amazonka.DataBrew.Types.FilesLimit+import Amazonka.DataBrew.Types.FilterExpression+import Amazonka.DataBrew.Types.FormatOptions+import Amazonka.DataBrew.Types.Input+import Amazonka.DataBrew.Types.Job+import Amazonka.DataBrew.Types.JobRun+import Amazonka.DataBrew.Types.JobSample+import Amazonka.DataBrew.Types.JsonOptions+import Amazonka.DataBrew.Types.Metadata+import Amazonka.DataBrew.Types.Output+import Amazonka.DataBrew.Types.OutputFormatOptions+import Amazonka.DataBrew.Types.PathOptions+import Amazonka.DataBrew.Types.ProfileConfiguration+import Amazonka.DataBrew.Types.Project+import Amazonka.DataBrew.Types.Recipe+import Amazonka.DataBrew.Types.RecipeAction+import Amazonka.DataBrew.Types.RecipeReference+import Amazonka.DataBrew.Types.RecipeStep+import Amazonka.DataBrew.Types.RecipeVersionErrorDetail+import Amazonka.DataBrew.Types.Rule+import Amazonka.DataBrew.Types.RulesetItem+import Amazonka.DataBrew.Types.S3Location+import Amazonka.DataBrew.Types.S3TableOutputOptions+import Amazonka.DataBrew.Types.Sample+import Amazonka.DataBrew.Types.Schedule+import Amazonka.DataBrew.Types.StatisticOverride+import Amazonka.DataBrew.Types.StatisticsConfiguration+import Amazonka.DataBrew.Types.Threshold+import Amazonka.DataBrew.Types.ValidationConfiguration+import Amazonka.DataBrew.Types.ViewFrame+import Amazonka.DataBrew.UntagResource+import Amazonka.DataBrew.UpdateDataset+import Amazonka.DataBrew.UpdateProfileJob+import Amazonka.DataBrew.UpdateProject+import Amazonka.DataBrew.UpdateRecipe+import Amazonka.DataBrew.UpdateRecipeJob+import Amazonka.DataBrew.UpdateRuleset+import Amazonka.DataBrew.UpdateSchedule
+ gen/Amazonka/DataBrew/ListDatasets.hs view
@@ -0,0 +1,211 @@+{-# 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.DataBrew.ListDatasets+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all of the DataBrew datasets.+--+-- This operation returns paginated results.+module Amazonka.DataBrew.ListDatasets+  ( -- * Creating a Request+    ListDatasets (..),+    newListDatasets,++    -- * Request Lenses+    listDatasets_maxResults,+    listDatasets_nextToken,++    -- * Destructuring the Response+    ListDatasetsResponse (..),+    newListDatasetsResponse,++    -- * Response Lenses+    listDatasetsResponse_nextToken,+    listDatasetsResponse_httpStatus,+    listDatasetsResponse_datasets,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListDatasets' smart constructor.+data ListDatasets = ListDatasets'+  { -- | The maximum number of results to return in this request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token returned by a previous call to retrieve the next set of+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDatasets' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listDatasets_maxResults' - The maximum number of results to return in this request.+--+-- 'nextToken', 'listDatasets_nextToken' - The token returned by a previous call to retrieve the next set of+-- results.+newListDatasets ::+  ListDatasets+newListDatasets =+  ListDatasets'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of results to return in this request.+listDatasets_maxResults :: Lens.Lens' ListDatasets (Prelude.Maybe Prelude.Natural)+listDatasets_maxResults = Lens.lens (\ListDatasets' {maxResults} -> maxResults) (\s@ListDatasets' {} a -> s {maxResults = a} :: ListDatasets)++-- | The token returned by a previous call to retrieve the next set of+-- results.+listDatasets_nextToken :: Lens.Lens' ListDatasets (Prelude.Maybe Prelude.Text)+listDatasets_nextToken = Lens.lens (\ListDatasets' {nextToken} -> nextToken) (\s@ListDatasets' {} a -> s {nextToken = a} :: ListDatasets)++instance Core.AWSPager ListDatasets where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listDatasetsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        (rs Lens.^. listDatasetsResponse_datasets) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listDatasets_nextToken+          Lens..~ rs+          Lens.^? listDatasetsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListDatasets where+  type AWSResponse ListDatasets = ListDatasetsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListDatasetsResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "Datasets" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable ListDatasets where+  hashWithSalt _salt ListDatasets' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListDatasets where+  rnf ListDatasets' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListDatasets where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListDatasets where+  toPath = Prelude.const "/datasets"++instance Data.ToQuery ListDatasets where+  toQuery ListDatasets' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListDatasetsResponse' smart constructor.+data ListDatasetsResponse = ListDatasetsResponse'+  { -- | A token that you can use in a subsequent call to retrieve the next set+    -- of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | A list of datasets that are defined.+    datasets :: [Dataset]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDatasetsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listDatasetsResponse_nextToken' - A token that you can use in a subsequent call to retrieve the next set+-- of results.+--+-- 'httpStatus', 'listDatasetsResponse_httpStatus' - The response's http status code.+--+-- 'datasets', 'listDatasetsResponse_datasets' - A list of datasets that are defined.+newListDatasetsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListDatasetsResponse+newListDatasetsResponse pHttpStatus_ =+  ListDatasetsResponse'+    { nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      datasets = Prelude.mempty+    }++-- | A token that you can use in a subsequent call to retrieve the next set+-- of results.+listDatasetsResponse_nextToken :: Lens.Lens' ListDatasetsResponse (Prelude.Maybe Prelude.Text)+listDatasetsResponse_nextToken = Lens.lens (\ListDatasetsResponse' {nextToken} -> nextToken) (\s@ListDatasetsResponse' {} a -> s {nextToken = a} :: ListDatasetsResponse)++-- | The response's http status code.+listDatasetsResponse_httpStatus :: Lens.Lens' ListDatasetsResponse Prelude.Int+listDatasetsResponse_httpStatus = Lens.lens (\ListDatasetsResponse' {httpStatus} -> httpStatus) (\s@ListDatasetsResponse' {} a -> s {httpStatus = a} :: ListDatasetsResponse)++-- | A list of datasets that are defined.+listDatasetsResponse_datasets :: Lens.Lens' ListDatasetsResponse [Dataset]+listDatasetsResponse_datasets = Lens.lens (\ListDatasetsResponse' {datasets} -> datasets) (\s@ListDatasetsResponse' {} a -> s {datasets = a} :: ListDatasetsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListDatasetsResponse where+  rnf ListDatasetsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf datasets
+ gen/Amazonka/DataBrew/ListJobRuns.hs view
@@ -0,0 +1,226 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.ListJobRuns+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all of the previous runs of a particular DataBrew job.+--+-- This operation returns paginated results.+module Amazonka.DataBrew.ListJobRuns+  ( -- * Creating a Request+    ListJobRuns (..),+    newListJobRuns,++    -- * Request Lenses+    listJobRuns_maxResults,+    listJobRuns_nextToken,+    listJobRuns_name,++    -- * Destructuring the Response+    ListJobRunsResponse (..),+    newListJobRunsResponse,++    -- * Response Lenses+    listJobRunsResponse_nextToken,+    listJobRunsResponse_httpStatus,+    listJobRunsResponse_jobRuns,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListJobRuns' smart constructor.+data ListJobRuns = ListJobRuns'+  { -- | The maximum number of results to return in this request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token returned by a previous call to retrieve the next set of+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the job.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListJobRuns' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listJobRuns_maxResults' - The maximum number of results to return in this request.+--+-- 'nextToken', 'listJobRuns_nextToken' - The token returned by a previous call to retrieve the next set of+-- results.+--+-- 'name', 'listJobRuns_name' - The name of the job.+newListJobRuns ::+  -- | 'name'+  Prelude.Text ->+  ListJobRuns+newListJobRuns pName_ =+  ListJobRuns'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      name = pName_+    }++-- | The maximum number of results to return in this request.+listJobRuns_maxResults :: Lens.Lens' ListJobRuns (Prelude.Maybe Prelude.Natural)+listJobRuns_maxResults = Lens.lens (\ListJobRuns' {maxResults} -> maxResults) (\s@ListJobRuns' {} a -> s {maxResults = a} :: ListJobRuns)++-- | The token returned by a previous call to retrieve the next set of+-- results.+listJobRuns_nextToken :: Lens.Lens' ListJobRuns (Prelude.Maybe Prelude.Text)+listJobRuns_nextToken = Lens.lens (\ListJobRuns' {nextToken} -> nextToken) (\s@ListJobRuns' {} a -> s {nextToken = a} :: ListJobRuns)++-- | The name of the job.+listJobRuns_name :: Lens.Lens' ListJobRuns Prelude.Text+listJobRuns_name = Lens.lens (\ListJobRuns' {name} -> name) (\s@ListJobRuns' {} a -> s {name = a} :: ListJobRuns)++instance Core.AWSPager ListJobRuns where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listJobRunsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop (rs Lens.^. listJobRunsResponse_jobRuns) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listJobRuns_nextToken+          Lens..~ rs+          Lens.^? listJobRunsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListJobRuns where+  type AWSResponse ListJobRuns = ListJobRunsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListJobRunsResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "JobRuns" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable ListJobRuns where+  hashWithSalt _salt ListJobRuns' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` name++instance Prelude.NFData ListJobRuns where+  rnf ListJobRuns' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders ListJobRuns where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListJobRuns where+  toPath ListJobRuns' {..} =+    Prelude.mconcat+      ["/jobs/", Data.toBS name, "/jobRuns"]++instance Data.ToQuery ListJobRuns where+  toQuery ListJobRuns' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListJobRunsResponse' smart constructor.+data ListJobRunsResponse = ListJobRunsResponse'+  { -- | A token that you can use in a subsequent call to retrieve the next set+    -- of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | A list of job runs that have occurred for the specified job.+    jobRuns :: [JobRun]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListJobRunsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listJobRunsResponse_nextToken' - A token that you can use in a subsequent call to retrieve the next set+-- of results.+--+-- 'httpStatus', 'listJobRunsResponse_httpStatus' - The response's http status code.+--+-- 'jobRuns', 'listJobRunsResponse_jobRuns' - A list of job runs that have occurred for the specified job.+newListJobRunsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListJobRunsResponse+newListJobRunsResponse pHttpStatus_ =+  ListJobRunsResponse'+    { nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      jobRuns = Prelude.mempty+    }++-- | A token that you can use in a subsequent call to retrieve the next set+-- of results.+listJobRunsResponse_nextToken :: Lens.Lens' ListJobRunsResponse (Prelude.Maybe Prelude.Text)+listJobRunsResponse_nextToken = Lens.lens (\ListJobRunsResponse' {nextToken} -> nextToken) (\s@ListJobRunsResponse' {} a -> s {nextToken = a} :: ListJobRunsResponse)++-- | The response's http status code.+listJobRunsResponse_httpStatus :: Lens.Lens' ListJobRunsResponse Prelude.Int+listJobRunsResponse_httpStatus = Lens.lens (\ListJobRunsResponse' {httpStatus} -> httpStatus) (\s@ListJobRunsResponse' {} a -> s {httpStatus = a} :: ListJobRunsResponse)++-- | A list of job runs that have occurred for the specified job.+listJobRunsResponse_jobRuns :: Lens.Lens' ListJobRunsResponse [JobRun]+listJobRunsResponse_jobRuns = Lens.lens (\ListJobRunsResponse' {jobRuns} -> jobRuns) (\s@ListJobRunsResponse' {} a -> s {jobRuns = a} :: ListJobRunsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListJobRunsResponse where+  rnf ListJobRunsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf jobRuns
+ gen/Amazonka/DataBrew/ListJobs.hs view
@@ -0,0 +1,248 @@+{-# 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.DataBrew.ListJobs+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all of the DataBrew jobs that are defined.+--+-- This operation returns paginated results.+module Amazonka.DataBrew.ListJobs+  ( -- * Creating a Request+    ListJobs (..),+    newListJobs,++    -- * Request Lenses+    listJobs_datasetName,+    listJobs_maxResults,+    listJobs_nextToken,+    listJobs_projectName,++    -- * Destructuring the Response+    ListJobsResponse (..),+    newListJobsResponse,++    -- * Response Lenses+    listJobsResponse_nextToken,+    listJobsResponse_httpStatus,+    listJobsResponse_jobs,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListJobs' smart constructor.+data ListJobs = ListJobs'+  { -- | The name of a dataset. Using this parameter indicates to return only+    -- those jobs that act on the specified dataset.+    datasetName :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of results to return in this request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A token generated by DataBrew that specifies where to continue+    -- pagination if a previous request was truncated. To get the next set of+    -- pages, pass in the NextToken value from the response object of the+    -- previous page call.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The name of a project. Using this parameter indicates to return only+    -- those jobs that are associated with the specified project.+    projectName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListJobs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetName', 'listJobs_datasetName' - The name of a dataset. Using this parameter indicates to return only+-- those jobs that act on the specified dataset.+--+-- 'maxResults', 'listJobs_maxResults' - The maximum number of results to return in this request.+--+-- 'nextToken', 'listJobs_nextToken' - A token generated by DataBrew that specifies where to continue+-- pagination if a previous request was truncated. To get the next set of+-- pages, pass in the NextToken value from the response object of the+-- previous page call.+--+-- 'projectName', 'listJobs_projectName' - The name of a project. Using this parameter indicates to return only+-- those jobs that are associated with the specified project.+newListJobs ::+  ListJobs+newListJobs =+  ListJobs'+    { datasetName = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      projectName = Prelude.Nothing+    }++-- | The name of a dataset. Using this parameter indicates to return only+-- those jobs that act on the specified dataset.+listJobs_datasetName :: Lens.Lens' ListJobs (Prelude.Maybe Prelude.Text)+listJobs_datasetName = Lens.lens (\ListJobs' {datasetName} -> datasetName) (\s@ListJobs' {} a -> s {datasetName = a} :: ListJobs)++-- | The maximum number of results to return in this request.+listJobs_maxResults :: Lens.Lens' ListJobs (Prelude.Maybe Prelude.Natural)+listJobs_maxResults = Lens.lens (\ListJobs' {maxResults} -> maxResults) (\s@ListJobs' {} a -> s {maxResults = a} :: ListJobs)++-- | A token generated by DataBrew that specifies where to continue+-- pagination if a previous request was truncated. To get the next set of+-- pages, pass in the NextToken value from the response object of the+-- previous page call.+listJobs_nextToken :: Lens.Lens' ListJobs (Prelude.Maybe Prelude.Text)+listJobs_nextToken = Lens.lens (\ListJobs' {nextToken} -> nextToken) (\s@ListJobs' {} a -> s {nextToken = a} :: ListJobs)++-- | The name of a project. Using this parameter indicates to return only+-- those jobs that are associated with the specified project.+listJobs_projectName :: Lens.Lens' ListJobs (Prelude.Maybe Prelude.Text)+listJobs_projectName = Lens.lens (\ListJobs' {projectName} -> projectName) (\s@ListJobs' {} a -> s {projectName = a} :: ListJobs)++instance Core.AWSPager ListJobs where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listJobsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop (rs Lens.^. listJobsResponse_jobs) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listJobs_nextToken+          Lens..~ rs+          Lens.^? listJobsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListJobs where+  type AWSResponse ListJobs = ListJobsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListJobsResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "Jobs" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable ListJobs where+  hashWithSalt _salt ListJobs' {..} =+    _salt+      `Prelude.hashWithSalt` datasetName+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` projectName++instance Prelude.NFData ListJobs where+  rnf ListJobs' {..} =+    Prelude.rnf datasetName+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf projectName++instance Data.ToHeaders ListJobs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListJobs where+  toPath = Prelude.const "/jobs"++instance Data.ToQuery ListJobs where+  toQuery ListJobs' {..} =+    Prelude.mconcat+      [ "datasetName" Data.=: datasetName,+        "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken,+        "projectName" Data.=: projectName+      ]++-- | /See:/ 'newListJobsResponse' smart constructor.+data ListJobsResponse = ListJobsResponse'+  { -- | A token that you can use in a subsequent call to retrieve the next set+    -- of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | A list of jobs that are defined.+    jobs :: [Job]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListJobsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listJobsResponse_nextToken' - A token that you can use in a subsequent call to retrieve the next set+-- of results.+--+-- 'httpStatus', 'listJobsResponse_httpStatus' - The response's http status code.+--+-- 'jobs', 'listJobsResponse_jobs' - A list of jobs that are defined.+newListJobsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListJobsResponse+newListJobsResponse pHttpStatus_ =+  ListJobsResponse'+    { nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      jobs = Prelude.mempty+    }++-- | A token that you can use in a subsequent call to retrieve the next set+-- of results.+listJobsResponse_nextToken :: Lens.Lens' ListJobsResponse (Prelude.Maybe Prelude.Text)+listJobsResponse_nextToken = Lens.lens (\ListJobsResponse' {nextToken} -> nextToken) (\s@ListJobsResponse' {} a -> s {nextToken = a} :: ListJobsResponse)++-- | The response's http status code.+listJobsResponse_httpStatus :: Lens.Lens' ListJobsResponse Prelude.Int+listJobsResponse_httpStatus = Lens.lens (\ListJobsResponse' {httpStatus} -> httpStatus) (\s@ListJobsResponse' {} a -> s {httpStatus = a} :: ListJobsResponse)++-- | A list of jobs that are defined.+listJobsResponse_jobs :: Lens.Lens' ListJobsResponse [Job]+listJobsResponse_jobs = Lens.lens (\ListJobsResponse' {jobs} -> jobs) (\s@ListJobsResponse' {} a -> s {jobs = a} :: ListJobsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListJobsResponse where+  rnf ListJobsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf jobs
+ gen/Amazonka/DataBrew/ListProjects.hs view
@@ -0,0 +1,211 @@+{-# 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.DataBrew.ListProjects+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all of the DataBrew projects that are defined.+--+-- This operation returns paginated results.+module Amazonka.DataBrew.ListProjects+  ( -- * Creating a Request+    ListProjects (..),+    newListProjects,++    -- * Request Lenses+    listProjects_maxResults,+    listProjects_nextToken,++    -- * Destructuring the Response+    ListProjectsResponse (..),+    newListProjectsResponse,++    -- * Response Lenses+    listProjectsResponse_nextToken,+    listProjectsResponse_httpStatus,+    listProjectsResponse_projects,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListProjects' smart constructor.+data ListProjects = ListProjects'+  { -- | The maximum number of results to return in this request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token returned by a previous call to retrieve the next set of+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListProjects' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listProjects_maxResults' - The maximum number of results to return in this request.+--+-- 'nextToken', 'listProjects_nextToken' - The token returned by a previous call to retrieve the next set of+-- results.+newListProjects ::+  ListProjects+newListProjects =+  ListProjects'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of results to return in this request.+listProjects_maxResults :: Lens.Lens' ListProjects (Prelude.Maybe Prelude.Natural)+listProjects_maxResults = Lens.lens (\ListProjects' {maxResults} -> maxResults) (\s@ListProjects' {} a -> s {maxResults = a} :: ListProjects)++-- | The token returned by a previous call to retrieve the next set of+-- results.+listProjects_nextToken :: Lens.Lens' ListProjects (Prelude.Maybe Prelude.Text)+listProjects_nextToken = Lens.lens (\ListProjects' {nextToken} -> nextToken) (\s@ListProjects' {} a -> s {nextToken = a} :: ListProjects)++instance Core.AWSPager ListProjects where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listProjectsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        (rs Lens.^. listProjectsResponse_projects) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listProjects_nextToken+          Lens..~ rs+          Lens.^? listProjectsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListProjects where+  type AWSResponse ListProjects = ListProjectsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListProjectsResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "Projects" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable ListProjects where+  hashWithSalt _salt ListProjects' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListProjects where+  rnf ListProjects' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListProjects where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListProjects where+  toPath = Prelude.const "/projects"++instance Data.ToQuery ListProjects where+  toQuery ListProjects' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListProjectsResponse' smart constructor.+data ListProjectsResponse = ListProjectsResponse'+  { -- | A token that you can use in a subsequent call to retrieve the next set+    -- of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | A list of projects that are defined .+    projects :: [Project]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListProjectsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listProjectsResponse_nextToken' - A token that you can use in a subsequent call to retrieve the next set+-- of results.+--+-- 'httpStatus', 'listProjectsResponse_httpStatus' - The response's http status code.+--+-- 'projects', 'listProjectsResponse_projects' - A list of projects that are defined .+newListProjectsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListProjectsResponse+newListProjectsResponse pHttpStatus_ =+  ListProjectsResponse'+    { nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      projects = Prelude.mempty+    }++-- | A token that you can use in a subsequent call to retrieve the next set+-- of results.+listProjectsResponse_nextToken :: Lens.Lens' ListProjectsResponse (Prelude.Maybe Prelude.Text)+listProjectsResponse_nextToken = Lens.lens (\ListProjectsResponse' {nextToken} -> nextToken) (\s@ListProjectsResponse' {} a -> s {nextToken = a} :: ListProjectsResponse)++-- | The response's http status code.+listProjectsResponse_httpStatus :: Lens.Lens' ListProjectsResponse Prelude.Int+listProjectsResponse_httpStatus = Lens.lens (\ListProjectsResponse' {httpStatus} -> httpStatus) (\s@ListProjectsResponse' {} a -> s {httpStatus = a} :: ListProjectsResponse)++-- | A list of projects that are defined .+listProjectsResponse_projects :: Lens.Lens' ListProjectsResponse [Project]+listProjectsResponse_projects = Lens.lens (\ListProjectsResponse' {projects} -> projects) (\s@ListProjectsResponse' {} a -> s {projects = a} :: ListProjectsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListProjectsResponse where+  rnf ListProjectsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf projects
+ gen/Amazonka/DataBrew/ListRecipeVersions.hs view
@@ -0,0 +1,230 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.ListRecipeVersions+-- 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 versions of a particular DataBrew recipe, except for+-- @LATEST_WORKING@.+--+-- This operation returns paginated results.+module Amazonka.DataBrew.ListRecipeVersions+  ( -- * Creating a Request+    ListRecipeVersions (..),+    newListRecipeVersions,++    -- * Request Lenses+    listRecipeVersions_maxResults,+    listRecipeVersions_nextToken,+    listRecipeVersions_name,++    -- * Destructuring the Response+    ListRecipeVersionsResponse (..),+    newListRecipeVersionsResponse,++    -- * Response Lenses+    listRecipeVersionsResponse_nextToken,+    listRecipeVersionsResponse_httpStatus,+    listRecipeVersionsResponse_recipes,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListRecipeVersions' smart constructor.+data ListRecipeVersions = ListRecipeVersions'+  { -- | The maximum number of results to return in this request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token returned by a previous call to retrieve the next set of+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the recipe for which to return version information.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRecipeVersions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listRecipeVersions_maxResults' - The maximum number of results to return in this request.+--+-- 'nextToken', 'listRecipeVersions_nextToken' - The token returned by a previous call to retrieve the next set of+-- results.+--+-- 'name', 'listRecipeVersions_name' - The name of the recipe for which to return version information.+newListRecipeVersions ::+  -- | 'name'+  Prelude.Text ->+  ListRecipeVersions+newListRecipeVersions pName_ =+  ListRecipeVersions'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      name = pName_+    }++-- | The maximum number of results to return in this request.+listRecipeVersions_maxResults :: Lens.Lens' ListRecipeVersions (Prelude.Maybe Prelude.Natural)+listRecipeVersions_maxResults = Lens.lens (\ListRecipeVersions' {maxResults} -> maxResults) (\s@ListRecipeVersions' {} a -> s {maxResults = a} :: ListRecipeVersions)++-- | The token returned by a previous call to retrieve the next set of+-- results.+listRecipeVersions_nextToken :: Lens.Lens' ListRecipeVersions (Prelude.Maybe Prelude.Text)+listRecipeVersions_nextToken = Lens.lens (\ListRecipeVersions' {nextToken} -> nextToken) (\s@ListRecipeVersions' {} a -> s {nextToken = a} :: ListRecipeVersions)++-- | The name of the recipe for which to return version information.+listRecipeVersions_name :: Lens.Lens' ListRecipeVersions Prelude.Text+listRecipeVersions_name = Lens.lens (\ListRecipeVersions' {name} -> name) (\s@ListRecipeVersions' {} a -> s {name = a} :: ListRecipeVersions)++instance Core.AWSPager ListRecipeVersions where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listRecipeVersionsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        (rs Lens.^. listRecipeVersionsResponse_recipes) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listRecipeVersions_nextToken+          Lens..~ rs+          Lens.^? listRecipeVersionsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListRecipeVersions where+  type+    AWSResponse ListRecipeVersions =+      ListRecipeVersionsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListRecipeVersionsResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "Recipes" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable ListRecipeVersions where+  hashWithSalt _salt ListRecipeVersions' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` name++instance Prelude.NFData ListRecipeVersions where+  rnf ListRecipeVersions' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders ListRecipeVersions where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListRecipeVersions where+  toPath = Prelude.const "/recipeVersions"++instance Data.ToQuery ListRecipeVersions where+  toQuery ListRecipeVersions' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken,+        "name" Data.=: name+      ]++-- | /See:/ 'newListRecipeVersionsResponse' smart constructor.+data ListRecipeVersionsResponse = ListRecipeVersionsResponse'+  { -- | A token that you can use in a subsequent call to retrieve the next set+    -- of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | A list of versions for the specified recipe.+    recipes :: [Recipe]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRecipeVersionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listRecipeVersionsResponse_nextToken' - A token that you can use in a subsequent call to retrieve the next set+-- of results.+--+-- 'httpStatus', 'listRecipeVersionsResponse_httpStatus' - The response's http status code.+--+-- 'recipes', 'listRecipeVersionsResponse_recipes' - A list of versions for the specified recipe.+newListRecipeVersionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListRecipeVersionsResponse+newListRecipeVersionsResponse pHttpStatus_ =+  ListRecipeVersionsResponse'+    { nextToken =+        Prelude.Nothing,+      httpStatus = pHttpStatus_,+      recipes = Prelude.mempty+    }++-- | A token that you can use in a subsequent call to retrieve the next set+-- of results.+listRecipeVersionsResponse_nextToken :: Lens.Lens' ListRecipeVersionsResponse (Prelude.Maybe Prelude.Text)+listRecipeVersionsResponse_nextToken = Lens.lens (\ListRecipeVersionsResponse' {nextToken} -> nextToken) (\s@ListRecipeVersionsResponse' {} a -> s {nextToken = a} :: ListRecipeVersionsResponse)++-- | The response's http status code.+listRecipeVersionsResponse_httpStatus :: Lens.Lens' ListRecipeVersionsResponse Prelude.Int+listRecipeVersionsResponse_httpStatus = Lens.lens (\ListRecipeVersionsResponse' {httpStatus} -> httpStatus) (\s@ListRecipeVersionsResponse' {} a -> s {httpStatus = a} :: ListRecipeVersionsResponse)++-- | A list of versions for the specified recipe.+listRecipeVersionsResponse_recipes :: Lens.Lens' ListRecipeVersionsResponse [Recipe]+listRecipeVersionsResponse_recipes = Lens.lens (\ListRecipeVersionsResponse' {recipes} -> recipes) (\s@ListRecipeVersionsResponse' {} a -> s {recipes = a} :: ListRecipeVersionsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListRecipeVersionsResponse where+  rnf ListRecipeVersionsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf recipes
+ gen/Amazonka/DataBrew/ListRecipes.hs view
@@ -0,0 +1,235 @@+{-# 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.DataBrew.ListRecipes+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all of the DataBrew recipes that are defined.+--+-- This operation returns paginated results.+module Amazonka.DataBrew.ListRecipes+  ( -- * Creating a Request+    ListRecipes (..),+    newListRecipes,++    -- * Request Lenses+    listRecipes_maxResults,+    listRecipes_nextToken,+    listRecipes_recipeVersion,++    -- * Destructuring the Response+    ListRecipesResponse (..),+    newListRecipesResponse,++    -- * Response Lenses+    listRecipesResponse_nextToken,+    listRecipesResponse_httpStatus,+    listRecipesResponse_recipes,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListRecipes' smart constructor.+data ListRecipes = ListRecipes'+  { -- | The maximum number of results to return in this request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token returned by a previous call to retrieve the next set of+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Return only those recipes with a version identifier of @LATEST_WORKING@+    -- or @LATEST_PUBLISHED@. If @RecipeVersion@ is omitted, @ListRecipes@+    -- returns all of the @LATEST_PUBLISHED@ recipe versions.+    --+    -- Valid values: @LATEST_WORKING@ | @LATEST_PUBLISHED@+    recipeVersion :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRecipes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listRecipes_maxResults' - The maximum number of results to return in this request.+--+-- 'nextToken', 'listRecipes_nextToken' - The token returned by a previous call to retrieve the next set of+-- results.+--+-- 'recipeVersion', 'listRecipes_recipeVersion' - Return only those recipes with a version identifier of @LATEST_WORKING@+-- or @LATEST_PUBLISHED@. If @RecipeVersion@ is omitted, @ListRecipes@+-- returns all of the @LATEST_PUBLISHED@ recipe versions.+--+-- Valid values: @LATEST_WORKING@ | @LATEST_PUBLISHED@+newListRecipes ::+  ListRecipes+newListRecipes =+  ListRecipes'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      recipeVersion = Prelude.Nothing+    }++-- | The maximum number of results to return in this request.+listRecipes_maxResults :: Lens.Lens' ListRecipes (Prelude.Maybe Prelude.Natural)+listRecipes_maxResults = Lens.lens (\ListRecipes' {maxResults} -> maxResults) (\s@ListRecipes' {} a -> s {maxResults = a} :: ListRecipes)++-- | The token returned by a previous call to retrieve the next set of+-- results.+listRecipes_nextToken :: Lens.Lens' ListRecipes (Prelude.Maybe Prelude.Text)+listRecipes_nextToken = Lens.lens (\ListRecipes' {nextToken} -> nextToken) (\s@ListRecipes' {} a -> s {nextToken = a} :: ListRecipes)++-- | Return only those recipes with a version identifier of @LATEST_WORKING@+-- or @LATEST_PUBLISHED@. If @RecipeVersion@ is omitted, @ListRecipes@+-- returns all of the @LATEST_PUBLISHED@ recipe versions.+--+-- Valid values: @LATEST_WORKING@ | @LATEST_PUBLISHED@+listRecipes_recipeVersion :: Lens.Lens' ListRecipes (Prelude.Maybe Prelude.Text)+listRecipes_recipeVersion = Lens.lens (\ListRecipes' {recipeVersion} -> recipeVersion) (\s@ListRecipes' {} a -> s {recipeVersion = a} :: ListRecipes)++instance Core.AWSPager ListRecipes where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listRecipesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop (rs Lens.^. listRecipesResponse_recipes) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listRecipes_nextToken+          Lens..~ rs+          Lens.^? listRecipesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListRecipes where+  type AWSResponse ListRecipes = ListRecipesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListRecipesResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "Recipes" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable ListRecipes where+  hashWithSalt _salt ListRecipes' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` recipeVersion++instance Prelude.NFData ListRecipes where+  rnf ListRecipes' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf recipeVersion++instance Data.ToHeaders ListRecipes where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListRecipes where+  toPath = Prelude.const "/recipes"++instance Data.ToQuery ListRecipes where+  toQuery ListRecipes' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken,+        "recipeVersion" Data.=: recipeVersion+      ]++-- | /See:/ 'newListRecipesResponse' smart constructor.+data ListRecipesResponse = ListRecipesResponse'+  { -- | A token that you can use in a subsequent call to retrieve the next set+    -- of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | A list of recipes that are defined.+    recipes :: [Recipe]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRecipesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listRecipesResponse_nextToken' - A token that you can use in a subsequent call to retrieve the next set+-- of results.+--+-- 'httpStatus', 'listRecipesResponse_httpStatus' - The response's http status code.+--+-- 'recipes', 'listRecipesResponse_recipes' - A list of recipes that are defined.+newListRecipesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListRecipesResponse+newListRecipesResponse pHttpStatus_ =+  ListRecipesResponse'+    { nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      recipes = Prelude.mempty+    }++-- | A token that you can use in a subsequent call to retrieve the next set+-- of results.+listRecipesResponse_nextToken :: Lens.Lens' ListRecipesResponse (Prelude.Maybe Prelude.Text)+listRecipesResponse_nextToken = Lens.lens (\ListRecipesResponse' {nextToken} -> nextToken) (\s@ListRecipesResponse' {} a -> s {nextToken = a} :: ListRecipesResponse)++-- | The response's http status code.+listRecipesResponse_httpStatus :: Lens.Lens' ListRecipesResponse Prelude.Int+listRecipesResponse_httpStatus = Lens.lens (\ListRecipesResponse' {httpStatus} -> httpStatus) (\s@ListRecipesResponse' {} a -> s {httpStatus = a} :: ListRecipesResponse)++-- | A list of recipes that are defined.+listRecipesResponse_recipes :: Lens.Lens' ListRecipesResponse [Recipe]+listRecipesResponse_recipes = Lens.lens (\ListRecipesResponse' {recipes} -> recipes) (\s@ListRecipesResponse' {} a -> s {recipes = a} :: ListRecipesResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListRecipesResponse where+  rnf ListRecipesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf recipes
+ gen/Amazonka/DataBrew/ListRulesets.hs view
@@ -0,0 +1,237 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.ListRulesets+-- 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 all rulesets available in the current account or rulesets+-- associated with a specific resource (dataset).+--+-- This operation returns paginated results.+module Amazonka.DataBrew.ListRulesets+  ( -- * Creating a Request+    ListRulesets (..),+    newListRulesets,++    -- * Request Lenses+    listRulesets_maxResults,+    listRulesets_nextToken,+    listRulesets_targetArn,++    -- * Destructuring the Response+    ListRulesetsResponse (..),+    newListRulesetsResponse,++    -- * Response Lenses+    listRulesetsResponse_nextToken,+    listRulesetsResponse_httpStatus,+    listRulesetsResponse_rulesets,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListRulesets' smart constructor.+data ListRulesets = ListRulesets'+  { -- | The maximum number of results to return in this request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A token generated by DataBrew that specifies where to continue+    -- pagination if a previous request was truncated. To get the next set of+    -- pages, pass in the NextToken value from the response object of the+    -- previous page call.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of a resource (dataset). Using this+    -- parameter indicates to return only those rulesets that are associated+    -- with the specified resource.+    targetArn :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRulesets' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listRulesets_maxResults' - The maximum number of results to return in this request.+--+-- 'nextToken', 'listRulesets_nextToken' - A token generated by DataBrew that specifies where to continue+-- pagination if a previous request was truncated. To get the next set of+-- pages, pass in the NextToken value from the response object of the+-- previous page call.+--+-- 'targetArn', 'listRulesets_targetArn' - The Amazon Resource Name (ARN) of a resource (dataset). Using this+-- parameter indicates to return only those rulesets that are associated+-- with the specified resource.+newListRulesets ::+  ListRulesets+newListRulesets =+  ListRulesets'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      targetArn = Prelude.Nothing+    }++-- | The maximum number of results to return in this request.+listRulesets_maxResults :: Lens.Lens' ListRulesets (Prelude.Maybe Prelude.Natural)+listRulesets_maxResults = Lens.lens (\ListRulesets' {maxResults} -> maxResults) (\s@ListRulesets' {} a -> s {maxResults = a} :: ListRulesets)++-- | A token generated by DataBrew that specifies where to continue+-- pagination if a previous request was truncated. To get the next set of+-- pages, pass in the NextToken value from the response object of the+-- previous page call.+listRulesets_nextToken :: Lens.Lens' ListRulesets (Prelude.Maybe Prelude.Text)+listRulesets_nextToken = Lens.lens (\ListRulesets' {nextToken} -> nextToken) (\s@ListRulesets' {} a -> s {nextToken = a} :: ListRulesets)++-- | The Amazon Resource Name (ARN) of a resource (dataset). Using this+-- parameter indicates to return only those rulesets that are associated+-- with the specified resource.+listRulesets_targetArn :: Lens.Lens' ListRulesets (Prelude.Maybe Prelude.Text)+listRulesets_targetArn = Lens.lens (\ListRulesets' {targetArn} -> targetArn) (\s@ListRulesets' {} a -> s {targetArn = a} :: ListRulesets)++instance Core.AWSPager ListRulesets where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listRulesetsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        (rs Lens.^. listRulesetsResponse_rulesets) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listRulesets_nextToken+          Lens..~ rs+          Lens.^? listRulesetsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListRulesets where+  type AWSResponse ListRulesets = ListRulesetsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListRulesetsResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "Rulesets" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable ListRulesets where+  hashWithSalt _salt ListRulesets' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` targetArn++instance Prelude.NFData ListRulesets where+  rnf ListRulesets' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf targetArn++instance Data.ToHeaders ListRulesets where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListRulesets where+  toPath = Prelude.const "/rulesets"++instance Data.ToQuery ListRulesets where+  toQuery ListRulesets' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken,+        "targetArn" Data.=: targetArn+      ]++-- | /See:/ 'newListRulesetsResponse' smart constructor.+data ListRulesetsResponse = ListRulesetsResponse'+  { -- | A token that you can use in a subsequent call to retrieve the next set+    -- of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | A list of RulesetItem. RulesetItem contains meta data of a ruleset.+    rulesets :: [RulesetItem]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRulesetsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listRulesetsResponse_nextToken' - A token that you can use in a subsequent call to retrieve the next set+-- of results.+--+-- 'httpStatus', 'listRulesetsResponse_httpStatus' - The response's http status code.+--+-- 'rulesets', 'listRulesetsResponse_rulesets' - A list of RulesetItem. RulesetItem contains meta data of a ruleset.+newListRulesetsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListRulesetsResponse+newListRulesetsResponse pHttpStatus_ =+  ListRulesetsResponse'+    { nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      rulesets = Prelude.mempty+    }++-- | A token that you can use in a subsequent call to retrieve the next set+-- of results.+listRulesetsResponse_nextToken :: Lens.Lens' ListRulesetsResponse (Prelude.Maybe Prelude.Text)+listRulesetsResponse_nextToken = Lens.lens (\ListRulesetsResponse' {nextToken} -> nextToken) (\s@ListRulesetsResponse' {} a -> s {nextToken = a} :: ListRulesetsResponse)++-- | The response's http status code.+listRulesetsResponse_httpStatus :: Lens.Lens' ListRulesetsResponse Prelude.Int+listRulesetsResponse_httpStatus = Lens.lens (\ListRulesetsResponse' {httpStatus} -> httpStatus) (\s@ListRulesetsResponse' {} a -> s {httpStatus = a} :: ListRulesetsResponse)++-- | A list of RulesetItem. RulesetItem contains meta data of a ruleset.+listRulesetsResponse_rulesets :: Lens.Lens' ListRulesetsResponse [RulesetItem]+listRulesetsResponse_rulesets = Lens.lens (\ListRulesetsResponse' {rulesets} -> rulesets) (\s@ListRulesetsResponse' {} a -> s {rulesets = a} :: ListRulesetsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListRulesetsResponse where+  rnf ListRulesetsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf rulesets
+ gen/Amazonka/DataBrew/ListSchedules.hs view
@@ -0,0 +1,226 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.ListSchedules+-- 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 DataBrew schedules that are defined.+--+-- This operation returns paginated results.+module Amazonka.DataBrew.ListSchedules+  ( -- * Creating a Request+    ListSchedules (..),+    newListSchedules,++    -- * Request Lenses+    listSchedules_jobName,+    listSchedules_maxResults,+    listSchedules_nextToken,++    -- * Destructuring the Response+    ListSchedulesResponse (..),+    newListSchedulesResponse,++    -- * Response Lenses+    listSchedulesResponse_nextToken,+    listSchedulesResponse_httpStatus,+    listSchedulesResponse_schedules,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListSchedules' smart constructor.+data ListSchedules = ListSchedules'+  { -- | The name of the job that these schedules apply to.+    jobName :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of results to return in this request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token returned by a previous call to retrieve the next set of+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSchedules' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jobName', 'listSchedules_jobName' - The name of the job that these schedules apply to.+--+-- 'maxResults', 'listSchedules_maxResults' - The maximum number of results to return in this request.+--+-- 'nextToken', 'listSchedules_nextToken' - The token returned by a previous call to retrieve the next set of+-- results.+newListSchedules ::+  ListSchedules+newListSchedules =+  ListSchedules'+    { jobName = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The name of the job that these schedules apply to.+listSchedules_jobName :: Lens.Lens' ListSchedules (Prelude.Maybe Prelude.Text)+listSchedules_jobName = Lens.lens (\ListSchedules' {jobName} -> jobName) (\s@ListSchedules' {} a -> s {jobName = a} :: ListSchedules)++-- | The maximum number of results to return in this request.+listSchedules_maxResults :: Lens.Lens' ListSchedules (Prelude.Maybe Prelude.Natural)+listSchedules_maxResults = Lens.lens (\ListSchedules' {maxResults} -> maxResults) (\s@ListSchedules' {} a -> s {maxResults = a} :: ListSchedules)++-- | The token returned by a previous call to retrieve the next set of+-- results.+listSchedules_nextToken :: Lens.Lens' ListSchedules (Prelude.Maybe Prelude.Text)+listSchedules_nextToken = Lens.lens (\ListSchedules' {nextToken} -> nextToken) (\s@ListSchedules' {} a -> s {nextToken = a} :: ListSchedules)++instance Core.AWSPager ListSchedules where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listSchedulesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        (rs Lens.^. listSchedulesResponse_schedules) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listSchedules_nextToken+          Lens..~ rs+          Lens.^? listSchedulesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListSchedules where+  type+    AWSResponse ListSchedules =+      ListSchedulesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListSchedulesResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "Schedules" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable ListSchedules where+  hashWithSalt _salt ListSchedules' {..} =+    _salt+      `Prelude.hashWithSalt` jobName+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListSchedules where+  rnf ListSchedules' {..} =+    Prelude.rnf jobName+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListSchedules where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListSchedules where+  toPath = Prelude.const "/schedules"++instance Data.ToQuery ListSchedules where+  toQuery ListSchedules' {..} =+    Prelude.mconcat+      [ "jobName" Data.=: jobName,+        "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListSchedulesResponse' smart constructor.+data ListSchedulesResponse = ListSchedulesResponse'+  { -- | A token that you can use in a subsequent call to retrieve the next set+    -- of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | A list of schedules that are defined.+    schedules :: [Schedule]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSchedulesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listSchedulesResponse_nextToken' - A token that you can use in a subsequent call to retrieve the next set+-- of results.+--+-- 'httpStatus', 'listSchedulesResponse_httpStatus' - The response's http status code.+--+-- 'schedules', 'listSchedulesResponse_schedules' - A list of schedules that are defined.+newListSchedulesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListSchedulesResponse+newListSchedulesResponse pHttpStatus_ =+  ListSchedulesResponse'+    { nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      schedules = Prelude.mempty+    }++-- | A token that you can use in a subsequent call to retrieve the next set+-- of results.+listSchedulesResponse_nextToken :: Lens.Lens' ListSchedulesResponse (Prelude.Maybe Prelude.Text)+listSchedulesResponse_nextToken = Lens.lens (\ListSchedulesResponse' {nextToken} -> nextToken) (\s@ListSchedulesResponse' {} a -> s {nextToken = a} :: ListSchedulesResponse)++-- | The response's http status code.+listSchedulesResponse_httpStatus :: Lens.Lens' ListSchedulesResponse Prelude.Int+listSchedulesResponse_httpStatus = Lens.lens (\ListSchedulesResponse' {httpStatus} -> httpStatus) (\s@ListSchedulesResponse' {} a -> s {httpStatus = a} :: ListSchedulesResponse)++-- | A list of schedules that are defined.+listSchedulesResponse_schedules :: Lens.Lens' ListSchedulesResponse [Schedule]+listSchedulesResponse_schedules = Lens.lens (\ListSchedulesResponse' {schedules} -> schedules) (\s@ListSchedulesResponse' {} a -> s {schedules = a} :: ListSchedulesResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListSchedulesResponse where+  rnf ListSchedulesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf schedules
+ gen/Amazonka/DataBrew/ListTagsForResource.hs view
@@ -0,0 +1,162 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.ListTagsForResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all the tags for a DataBrew resource.+module Amazonka.DataBrew.ListTagsForResource+  ( -- * Creating a Request+    ListTagsForResource (..),+    newListTagsForResource,++    -- * Request Lenses+    listTagsForResource_resourceArn,++    -- * Destructuring the Response+    ListTagsForResourceResponse (..),+    newListTagsForResourceResponse,++    -- * Response Lenses+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+  { -- | The Amazon Resource Name (ARN) string that uniquely identifies the+    -- DataBrew resource.+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'listTagsForResource_resourceArn' - The Amazon Resource Name (ARN) string that uniquely identifies the+-- DataBrew resource.+newListTagsForResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceArn_ =+  ListTagsForResource' {resourceArn = pResourceArn_}++-- | The Amazon Resource Name (ARN) string that uniquely identifies the+-- DataBrew resource.+listTagsForResource_resourceArn :: Lens.Lens' ListTagsForResource Prelude.Text+listTagsForResource_resourceArn = Lens.lens (\ListTagsForResource' {resourceArn} -> resourceArn) (\s@ListTagsForResource' {} a -> s {resourceArn = a} :: ListTagsForResource)++instance Core.AWSRequest ListTagsForResource where+  type+    AWSResponse ListTagsForResource =+      ListTagsForResourceResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListTagsForResourceResponse'+            Prelude.<$> (x Data..?> "Tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListTagsForResource where+  hashWithSalt _salt ListTagsForResource' {..} =+    _salt `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData ListTagsForResource where+  rnf ListTagsForResource' {..} =+    Prelude.rnf resourceArn++instance Data.ToHeaders ListTagsForResource where+  toHeaders =+    Prelude.const+      ( Prelude.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'+  { -- | A list of tags associated with the DataBrew resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'listTagsForResourceResponse_tags' - A list of tags associated with the DataBrew resource.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of tags associated with the DataBrew resource.+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/DataBrew/PublishRecipe.hs view
@@ -0,0 +1,186 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.PublishRecipe+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Publishes a new version of a DataBrew recipe.+module Amazonka.DataBrew.PublishRecipe+  ( -- * Creating a Request+    PublishRecipe (..),+    newPublishRecipe,++    -- * Request Lenses+    publishRecipe_description,+    publishRecipe_name,++    -- * Destructuring the Response+    PublishRecipeResponse (..),+    newPublishRecipeResponse,++    -- * Response Lenses+    publishRecipeResponse_httpStatus,+    publishRecipeResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPublishRecipe' smart constructor.+data PublishRecipe = PublishRecipe'+  { -- | A description of the recipe to be published, for this version of the+    -- recipe.+    description :: Prelude.Maybe Prelude.Text,+    -- | The name of the recipe to be published.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PublishRecipe' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'publishRecipe_description' - A description of the recipe to be published, for this version of the+-- recipe.+--+-- 'name', 'publishRecipe_name' - The name of the recipe to be published.+newPublishRecipe ::+  -- | 'name'+  Prelude.Text ->+  PublishRecipe+newPublishRecipe pName_ =+  PublishRecipe'+    { description = Prelude.Nothing,+      name = pName_+    }++-- | A description of the recipe to be published, for this version of the+-- recipe.+publishRecipe_description :: Lens.Lens' PublishRecipe (Prelude.Maybe Prelude.Text)+publishRecipe_description = Lens.lens (\PublishRecipe' {description} -> description) (\s@PublishRecipe' {} a -> s {description = a} :: PublishRecipe)++-- | The name of the recipe to be published.+publishRecipe_name :: Lens.Lens' PublishRecipe Prelude.Text+publishRecipe_name = Lens.lens (\PublishRecipe' {name} -> name) (\s@PublishRecipe' {} a -> s {name = a} :: PublishRecipe)++instance Core.AWSRequest PublishRecipe where+  type+    AWSResponse PublishRecipe =+      PublishRecipeResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          PublishRecipeResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable PublishRecipe where+  hashWithSalt _salt PublishRecipe' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` name++instance Prelude.NFData PublishRecipe where+  rnf PublishRecipe' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders PublishRecipe where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON PublishRecipe where+  toJSON PublishRecipe' {..} =+    Data.object+      ( Prelude.catMaybes+          [("Description" Data..=) Prelude.<$> description]+      )++instance Data.ToPath PublishRecipe where+  toPath PublishRecipe' {..} =+    Prelude.mconcat+      ["/recipes/", Data.toBS name, "/publishRecipe"]++instance Data.ToQuery PublishRecipe where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPublishRecipeResponse' smart constructor.+data PublishRecipeResponse = PublishRecipeResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the recipe that you published.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PublishRecipeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'publishRecipeResponse_httpStatus' - The response's http status code.+--+-- 'name', 'publishRecipeResponse_name' - The name of the recipe that you published.+newPublishRecipeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  PublishRecipeResponse+newPublishRecipeResponse pHttpStatus_ pName_ =+  PublishRecipeResponse'+    { httpStatus = pHttpStatus_,+      name = pName_+    }++-- | The response's http status code.+publishRecipeResponse_httpStatus :: Lens.Lens' PublishRecipeResponse Prelude.Int+publishRecipeResponse_httpStatus = Lens.lens (\PublishRecipeResponse' {httpStatus} -> httpStatus) (\s@PublishRecipeResponse' {} a -> s {httpStatus = a} :: PublishRecipeResponse)++-- | The name of the recipe that you published.+publishRecipeResponse_name :: Lens.Lens' PublishRecipeResponse Prelude.Text+publishRecipeResponse_name = Lens.lens (\PublishRecipeResponse' {name} -> name) (\s@PublishRecipeResponse' {} a -> s {name = a} :: PublishRecipeResponse)++instance Prelude.NFData PublishRecipeResponse where+  rnf PublishRecipeResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/SendProjectSessionAction.hs view
@@ -0,0 +1,282 @@+{-# 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.DataBrew.SendProjectSessionAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Performs a recipe step within an interactive DataBrew session that\'s+-- currently open.+module Amazonka.DataBrew.SendProjectSessionAction+  ( -- * Creating a Request+    SendProjectSessionAction (..),+    newSendProjectSessionAction,++    -- * Request Lenses+    sendProjectSessionAction_clientSessionId,+    sendProjectSessionAction_preview,+    sendProjectSessionAction_recipeStep,+    sendProjectSessionAction_stepIndex,+    sendProjectSessionAction_viewFrame,+    sendProjectSessionAction_name,++    -- * Destructuring the Response+    SendProjectSessionActionResponse (..),+    newSendProjectSessionActionResponse,++    -- * Response Lenses+    sendProjectSessionActionResponse_actionId,+    sendProjectSessionActionResponse_result,+    sendProjectSessionActionResponse_httpStatus,+    sendProjectSessionActionResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newSendProjectSessionAction' smart constructor.+data SendProjectSessionAction = SendProjectSessionAction'+  { -- | A unique identifier for an interactive session that\'s currently open+    -- and ready for work. The action will be performed on this session.+    clientSessionId :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | If true, the result of the recipe step will be returned, but not+    -- applied.+    preview :: Prelude.Maybe Prelude.Bool,+    recipeStep :: Prelude.Maybe RecipeStep,+    -- | The index from which to preview a step. This index is used to preview+    -- the result of steps that have already been applied, so that the+    -- resulting view frame is from earlier in the view frame stack.+    stepIndex :: Prelude.Maybe Prelude.Natural,+    viewFrame :: Prelude.Maybe ViewFrame,+    -- | The name of the project to apply the action to.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SendProjectSessionAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientSessionId', 'sendProjectSessionAction_clientSessionId' - A unique identifier for an interactive session that\'s currently open+-- and ready for work. The action will be performed on this session.+--+-- 'preview', 'sendProjectSessionAction_preview' - If true, the result of the recipe step will be returned, but not+-- applied.+--+-- 'recipeStep', 'sendProjectSessionAction_recipeStep' - Undocumented member.+--+-- 'stepIndex', 'sendProjectSessionAction_stepIndex' - The index from which to preview a step. This index is used to preview+-- the result of steps that have already been applied, so that the+-- resulting view frame is from earlier in the view frame stack.+--+-- 'viewFrame', 'sendProjectSessionAction_viewFrame' - Undocumented member.+--+-- 'name', 'sendProjectSessionAction_name' - The name of the project to apply the action to.+newSendProjectSessionAction ::+  -- | 'name'+  Prelude.Text ->+  SendProjectSessionAction+newSendProjectSessionAction pName_ =+  SendProjectSessionAction'+    { clientSessionId =+        Prelude.Nothing,+      preview = Prelude.Nothing,+      recipeStep = Prelude.Nothing,+      stepIndex = Prelude.Nothing,+      viewFrame = Prelude.Nothing,+      name = pName_+    }++-- | A unique identifier for an interactive session that\'s currently open+-- and ready for work. The action will be performed on this session.+sendProjectSessionAction_clientSessionId :: Lens.Lens' SendProjectSessionAction (Prelude.Maybe Prelude.Text)+sendProjectSessionAction_clientSessionId = Lens.lens (\SendProjectSessionAction' {clientSessionId} -> clientSessionId) (\s@SendProjectSessionAction' {} a -> s {clientSessionId = a} :: SendProjectSessionAction) Prelude.. Lens.mapping Data._Sensitive++-- | If true, the result of the recipe step will be returned, but not+-- applied.+sendProjectSessionAction_preview :: Lens.Lens' SendProjectSessionAction (Prelude.Maybe Prelude.Bool)+sendProjectSessionAction_preview = Lens.lens (\SendProjectSessionAction' {preview} -> preview) (\s@SendProjectSessionAction' {} a -> s {preview = a} :: SendProjectSessionAction)++-- | Undocumented member.+sendProjectSessionAction_recipeStep :: Lens.Lens' SendProjectSessionAction (Prelude.Maybe RecipeStep)+sendProjectSessionAction_recipeStep = Lens.lens (\SendProjectSessionAction' {recipeStep} -> recipeStep) (\s@SendProjectSessionAction' {} a -> s {recipeStep = a} :: SendProjectSessionAction)++-- | The index from which to preview a step. This index is used to preview+-- the result of steps that have already been applied, so that the+-- resulting view frame is from earlier in the view frame stack.+sendProjectSessionAction_stepIndex :: Lens.Lens' SendProjectSessionAction (Prelude.Maybe Prelude.Natural)+sendProjectSessionAction_stepIndex = Lens.lens (\SendProjectSessionAction' {stepIndex} -> stepIndex) (\s@SendProjectSessionAction' {} a -> s {stepIndex = a} :: SendProjectSessionAction)++-- | Undocumented member.+sendProjectSessionAction_viewFrame :: Lens.Lens' SendProjectSessionAction (Prelude.Maybe ViewFrame)+sendProjectSessionAction_viewFrame = Lens.lens (\SendProjectSessionAction' {viewFrame} -> viewFrame) (\s@SendProjectSessionAction' {} a -> s {viewFrame = a} :: SendProjectSessionAction)++-- | The name of the project to apply the action to.+sendProjectSessionAction_name :: Lens.Lens' SendProjectSessionAction Prelude.Text+sendProjectSessionAction_name = Lens.lens (\SendProjectSessionAction' {name} -> name) (\s@SendProjectSessionAction' {} a -> s {name = a} :: SendProjectSessionAction)++instance Core.AWSRequest SendProjectSessionAction where+  type+    AWSResponse SendProjectSessionAction =+      SendProjectSessionActionResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          SendProjectSessionActionResponse'+            Prelude.<$> (x Data..?> "ActionId")+            Prelude.<*> (x Data..?> "Result")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable SendProjectSessionAction where+  hashWithSalt _salt SendProjectSessionAction' {..} =+    _salt+      `Prelude.hashWithSalt` clientSessionId+      `Prelude.hashWithSalt` preview+      `Prelude.hashWithSalt` recipeStep+      `Prelude.hashWithSalt` stepIndex+      `Prelude.hashWithSalt` viewFrame+      `Prelude.hashWithSalt` name++instance Prelude.NFData SendProjectSessionAction where+  rnf SendProjectSessionAction' {..} =+    Prelude.rnf clientSessionId+      `Prelude.seq` Prelude.rnf preview+      `Prelude.seq` Prelude.rnf recipeStep+      `Prelude.seq` Prelude.rnf stepIndex+      `Prelude.seq` Prelude.rnf viewFrame+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders SendProjectSessionAction where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON SendProjectSessionAction where+  toJSON SendProjectSessionAction' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientSessionId" Data..=)+              Prelude.<$> clientSessionId,+            ("Preview" Data..=) Prelude.<$> preview,+            ("RecipeStep" Data..=) Prelude.<$> recipeStep,+            ("StepIndex" Data..=) Prelude.<$> stepIndex,+            ("ViewFrame" Data..=) Prelude.<$> viewFrame+          ]+      )++instance Data.ToPath SendProjectSessionAction where+  toPath SendProjectSessionAction' {..} =+    Prelude.mconcat+      [ "/projects/",+        Data.toBS name,+        "/sendProjectSessionAction"+      ]++instance Data.ToQuery SendProjectSessionAction where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newSendProjectSessionActionResponse' smart constructor.+data SendProjectSessionActionResponse = SendProjectSessionActionResponse'+  { -- | A unique identifier for the action that was performed.+    actionId :: Prelude.Maybe Prelude.Int,+    -- | A message indicating the result of performing the action.+    result :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the project that was affected by the action.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SendProjectSessionActionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'actionId', 'sendProjectSessionActionResponse_actionId' - A unique identifier for the action that was performed.+--+-- 'result', 'sendProjectSessionActionResponse_result' - A message indicating the result of performing the action.+--+-- 'httpStatus', 'sendProjectSessionActionResponse_httpStatus' - The response's http status code.+--+-- 'name', 'sendProjectSessionActionResponse_name' - The name of the project that was affected by the action.+newSendProjectSessionActionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  SendProjectSessionActionResponse+newSendProjectSessionActionResponse+  pHttpStatus_+  pName_ =+    SendProjectSessionActionResponse'+      { actionId =+          Prelude.Nothing,+        result = Prelude.Nothing,+        httpStatus = pHttpStatus_,+        name = pName_+      }++-- | A unique identifier for the action that was performed.+sendProjectSessionActionResponse_actionId :: Lens.Lens' SendProjectSessionActionResponse (Prelude.Maybe Prelude.Int)+sendProjectSessionActionResponse_actionId = Lens.lens (\SendProjectSessionActionResponse' {actionId} -> actionId) (\s@SendProjectSessionActionResponse' {} a -> s {actionId = a} :: SendProjectSessionActionResponse)++-- | A message indicating the result of performing the action.+sendProjectSessionActionResponse_result :: Lens.Lens' SendProjectSessionActionResponse (Prelude.Maybe Prelude.Text)+sendProjectSessionActionResponse_result = Lens.lens (\SendProjectSessionActionResponse' {result} -> result) (\s@SendProjectSessionActionResponse' {} a -> s {result = a} :: SendProjectSessionActionResponse)++-- | The response's http status code.+sendProjectSessionActionResponse_httpStatus :: Lens.Lens' SendProjectSessionActionResponse Prelude.Int+sendProjectSessionActionResponse_httpStatus = Lens.lens (\SendProjectSessionActionResponse' {httpStatus} -> httpStatus) (\s@SendProjectSessionActionResponse' {} a -> s {httpStatus = a} :: SendProjectSessionActionResponse)++-- | The name of the project that was affected by the action.+sendProjectSessionActionResponse_name :: Lens.Lens' SendProjectSessionActionResponse Prelude.Text+sendProjectSessionActionResponse_name = Lens.lens (\SendProjectSessionActionResponse' {name} -> name) (\s@SendProjectSessionActionResponse' {} a -> s {name = a} :: SendProjectSessionActionResponse)++instance+  Prelude.NFData+    SendProjectSessionActionResponse+  where+  rnf SendProjectSessionActionResponse' {..} =+    Prelude.rnf actionId+      `Prelude.seq` Prelude.rnf result+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/StartJobRun.hs view
@@ -0,0 +1,160 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.StartJobRun+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Runs a DataBrew job.+module Amazonka.DataBrew.StartJobRun+  ( -- * Creating a Request+    StartJobRun (..),+    newStartJobRun,++    -- * Request Lenses+    startJobRun_name,++    -- * Destructuring the Response+    StartJobRunResponse (..),+    newStartJobRunResponse,++    -- * Response Lenses+    startJobRunResponse_httpStatus,+    startJobRunResponse_runId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartJobRun' smart constructor.+data StartJobRun = StartJobRun'+  { -- | The name of the job to be run.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartJobRun' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'startJobRun_name' - The name of the job to be run.+newStartJobRun ::+  -- | 'name'+  Prelude.Text ->+  StartJobRun+newStartJobRun pName_ = StartJobRun' {name = pName_}++-- | The name of the job to be run.+startJobRun_name :: Lens.Lens' StartJobRun Prelude.Text+startJobRun_name = Lens.lens (\StartJobRun' {name} -> name) (\s@StartJobRun' {} a -> s {name = a} :: StartJobRun)++instance Core.AWSRequest StartJobRun where+  type AWSResponse StartJobRun = StartJobRunResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StartJobRunResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "RunId")+      )++instance Prelude.Hashable StartJobRun where+  hashWithSalt _salt StartJobRun' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData StartJobRun where+  rnf StartJobRun' {..} = Prelude.rnf name++instance Data.ToHeaders StartJobRun where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StartJobRun where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath StartJobRun where+  toPath StartJobRun' {..} =+    Prelude.mconcat+      ["/jobs/", Data.toBS name, "/startJobRun"]++instance Data.ToQuery StartJobRun where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartJobRunResponse' smart constructor.+data StartJobRunResponse = StartJobRunResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | A system-generated identifier for this particular job run.+    runId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartJobRunResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'startJobRunResponse_httpStatus' - The response's http status code.+--+-- 'runId', 'startJobRunResponse_runId' - A system-generated identifier for this particular job run.+newStartJobRunResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'runId'+  Prelude.Text ->+  StartJobRunResponse+newStartJobRunResponse pHttpStatus_ pRunId_ =+  StartJobRunResponse'+    { httpStatus = pHttpStatus_,+      runId = pRunId_+    }++-- | The response's http status code.+startJobRunResponse_httpStatus :: Lens.Lens' StartJobRunResponse Prelude.Int+startJobRunResponse_httpStatus = Lens.lens (\StartJobRunResponse' {httpStatus} -> httpStatus) (\s@StartJobRunResponse' {} a -> s {httpStatus = a} :: StartJobRunResponse)++-- | A system-generated identifier for this particular job run.+startJobRunResponse_runId :: Lens.Lens' StartJobRunResponse Prelude.Text+startJobRunResponse_runId = Lens.lens (\StartJobRunResponse' {runId} -> runId) (\s@StartJobRunResponse' {} a -> s {runId = a} :: StartJobRunResponse)++instance Prelude.NFData StartJobRunResponse where+  rnf StartJobRunResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf runId
+ gen/Amazonka/DataBrew/StartProjectSession.hs view
@@ -0,0 +1,206 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.StartProjectSession+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an interactive session, enabling you to manipulate data in a+-- DataBrew project.+module Amazonka.DataBrew.StartProjectSession+  ( -- * Creating a Request+    StartProjectSession (..),+    newStartProjectSession,++    -- * Request Lenses+    startProjectSession_assumeControl,+    startProjectSession_name,++    -- * Destructuring the Response+    StartProjectSessionResponse (..),+    newStartProjectSessionResponse,++    -- * Response Lenses+    startProjectSessionResponse_clientSessionId,+    startProjectSessionResponse_httpStatus,+    startProjectSessionResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartProjectSession' smart constructor.+data StartProjectSession = StartProjectSession'+  { -- | A value that, if true, enables you to take control of a session, even if+    -- a different client is currently accessing the project.+    assumeControl :: Prelude.Maybe Prelude.Bool,+    -- | The name of the project to act upon.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartProjectSession' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'assumeControl', 'startProjectSession_assumeControl' - A value that, if true, enables you to take control of a session, even if+-- a different client is currently accessing the project.+--+-- 'name', 'startProjectSession_name' - The name of the project to act upon.+newStartProjectSession ::+  -- | 'name'+  Prelude.Text ->+  StartProjectSession+newStartProjectSession pName_ =+  StartProjectSession'+    { assumeControl =+        Prelude.Nothing,+      name = pName_+    }++-- | A value that, if true, enables you to take control of a session, even if+-- a different client is currently accessing the project.+startProjectSession_assumeControl :: Lens.Lens' StartProjectSession (Prelude.Maybe Prelude.Bool)+startProjectSession_assumeControl = Lens.lens (\StartProjectSession' {assumeControl} -> assumeControl) (\s@StartProjectSession' {} a -> s {assumeControl = a} :: StartProjectSession)++-- | The name of the project to act upon.+startProjectSession_name :: Lens.Lens' StartProjectSession Prelude.Text+startProjectSession_name = Lens.lens (\StartProjectSession' {name} -> name) (\s@StartProjectSession' {} a -> s {name = a} :: StartProjectSession)++instance Core.AWSRequest StartProjectSession where+  type+    AWSResponse StartProjectSession =+      StartProjectSessionResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StartProjectSessionResponse'+            Prelude.<$> (x Data..?> "ClientSessionId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable StartProjectSession where+  hashWithSalt _salt StartProjectSession' {..} =+    _salt+      `Prelude.hashWithSalt` assumeControl+      `Prelude.hashWithSalt` name++instance Prelude.NFData StartProjectSession where+  rnf StartProjectSession' {..} =+    Prelude.rnf assumeControl+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders StartProjectSession where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StartProjectSession where+  toJSON StartProjectSession' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AssumeControl" Data..=)+              Prelude.<$> assumeControl+          ]+      )++instance Data.ToPath StartProjectSession where+  toPath StartProjectSession' {..} =+    Prelude.mconcat+      [ "/projects/",+        Data.toBS name,+        "/startProjectSession"+      ]++instance Data.ToQuery StartProjectSession where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartProjectSessionResponse' smart constructor.+data StartProjectSessionResponse = StartProjectSessionResponse'+  { -- | A system-generated identifier for the session.+    clientSessionId :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the project to be acted upon.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartProjectSessionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientSessionId', 'startProjectSessionResponse_clientSessionId' - A system-generated identifier for the session.+--+-- 'httpStatus', 'startProjectSessionResponse_httpStatus' - The response's http status code.+--+-- 'name', 'startProjectSessionResponse_name' - The name of the project to be acted upon.+newStartProjectSessionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  StartProjectSessionResponse+newStartProjectSessionResponse pHttpStatus_ pName_ =+  StartProjectSessionResponse'+    { clientSessionId =+        Prelude.Nothing,+      httpStatus = pHttpStatus_,+      name = pName_+    }++-- | A system-generated identifier for the session.+startProjectSessionResponse_clientSessionId :: Lens.Lens' StartProjectSessionResponse (Prelude.Maybe Prelude.Text)+startProjectSessionResponse_clientSessionId = Lens.lens (\StartProjectSessionResponse' {clientSessionId} -> clientSessionId) (\s@StartProjectSessionResponse' {} a -> s {clientSessionId = a} :: StartProjectSessionResponse) Prelude.. Lens.mapping Data._Sensitive++-- | The response's http status code.+startProjectSessionResponse_httpStatus :: Lens.Lens' StartProjectSessionResponse Prelude.Int+startProjectSessionResponse_httpStatus = Lens.lens (\StartProjectSessionResponse' {httpStatus} -> httpStatus) (\s@StartProjectSessionResponse' {} a -> s {httpStatus = a} :: StartProjectSessionResponse)++-- | The name of the project to be acted upon.+startProjectSessionResponse_name :: Lens.Lens' StartProjectSessionResponse Prelude.Text+startProjectSessionResponse_name = Lens.lens (\StartProjectSessionResponse' {name} -> name) (\s@StartProjectSessionResponse' {} a -> s {name = a} :: StartProjectSessionResponse)++instance Prelude.NFData StartProjectSessionResponse where+  rnf StartProjectSessionResponse' {..} =+    Prelude.rnf clientSessionId+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/StopJobRun.hs view
@@ -0,0 +1,180 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.StopJobRun+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Stops a particular run of a job.+module Amazonka.DataBrew.StopJobRun+  ( -- * Creating a Request+    StopJobRun (..),+    newStopJobRun,++    -- * Request Lenses+    stopJobRun_name,+    stopJobRun_runId,++    -- * Destructuring the Response+    StopJobRunResponse (..),+    newStopJobRunResponse,++    -- * Response Lenses+    stopJobRunResponse_httpStatus,+    stopJobRunResponse_runId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStopJobRun' smart constructor.+data StopJobRun = StopJobRun'+  { -- | The name of the job to be stopped.+    name :: Prelude.Text,+    -- | The ID of the job run to be stopped.+    runId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopJobRun' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'stopJobRun_name' - The name of the job to be stopped.+--+-- 'runId', 'stopJobRun_runId' - The ID of the job run to be stopped.+newStopJobRun ::+  -- | 'name'+  Prelude.Text ->+  -- | 'runId'+  Prelude.Text ->+  StopJobRun+newStopJobRun pName_ pRunId_ =+  StopJobRun' {name = pName_, runId = pRunId_}++-- | The name of the job to be stopped.+stopJobRun_name :: Lens.Lens' StopJobRun Prelude.Text+stopJobRun_name = Lens.lens (\StopJobRun' {name} -> name) (\s@StopJobRun' {} a -> s {name = a} :: StopJobRun)++-- | The ID of the job run to be stopped.+stopJobRun_runId :: Lens.Lens' StopJobRun Prelude.Text+stopJobRun_runId = Lens.lens (\StopJobRun' {runId} -> runId) (\s@StopJobRun' {} a -> s {runId = a} :: StopJobRun)++instance Core.AWSRequest StopJobRun where+  type AWSResponse StopJobRun = StopJobRunResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StopJobRunResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "RunId")+      )++instance Prelude.Hashable StopJobRun where+  hashWithSalt _salt StopJobRun' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` runId++instance Prelude.NFData StopJobRun where+  rnf StopJobRun' {..} =+    Prelude.rnf name `Prelude.seq` Prelude.rnf runId++instance Data.ToHeaders StopJobRun where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StopJobRun where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath StopJobRun where+  toPath StopJobRun' {..} =+    Prelude.mconcat+      [ "/jobs/",+        Data.toBS name,+        "/jobRun/",+        Data.toBS runId,+        "/stopJobRun"+      ]++instance Data.ToQuery StopJobRun where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStopJobRunResponse' smart constructor.+data StopJobRunResponse = StopJobRunResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The ID of the job run that you stopped.+    runId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopJobRunResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'stopJobRunResponse_httpStatus' - The response's http status code.+--+-- 'runId', 'stopJobRunResponse_runId' - The ID of the job run that you stopped.+newStopJobRunResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'runId'+  Prelude.Text ->+  StopJobRunResponse+newStopJobRunResponse pHttpStatus_ pRunId_ =+  StopJobRunResponse'+    { httpStatus = pHttpStatus_,+      runId = pRunId_+    }++-- | The response's http status code.+stopJobRunResponse_httpStatus :: Lens.Lens' StopJobRunResponse Prelude.Int+stopJobRunResponse_httpStatus = Lens.lens (\StopJobRunResponse' {httpStatus} -> httpStatus) (\s@StopJobRunResponse' {} a -> s {httpStatus = a} :: StopJobRunResponse)++-- | The ID of the job run that you stopped.+stopJobRunResponse_runId :: Lens.Lens' StopJobRunResponse Prelude.Text+stopJobRunResponse_runId = Lens.lens (\StopJobRunResponse' {runId} -> runId) (\s@StopJobRunResponse' {} a -> s {runId = a} :: StopJobRunResponse)++instance Prelude.NFData StopJobRunResponse where+  rnf StopJobRunResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf runId
+ gen/Amazonka/DataBrew/TagResource.hs view
@@ -0,0 +1,170 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.TagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds metadata tags to a DataBrew resource, such as a dataset, project,+-- recipe, job, or schedule.+module Amazonka.DataBrew.TagResource+  ( -- * Creating a Request+    TagResource (..),+    newTagResource,++    -- * Request Lenses+    tagResource_resourceArn,+    tagResource_tags,++    -- * Destructuring the Response+    TagResourceResponse (..),+    newTagResourceResponse,++    -- * Response Lenses+    tagResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+  { -- | The DataBrew resource to which tags should be added. The value for this+    -- parameter is an Amazon Resource Name (ARN). For DataBrew, you can tag a+    -- dataset, a job, a project, or a recipe.+    resourceArn :: Prelude.Text,+    -- | One or more tags to be assigned to the 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 DataBrew resource to which tags should be added. The value for this+-- parameter is an Amazon Resource Name (ARN). For DataBrew, you can tag a+-- dataset, a job, a project, or a recipe.+--+-- 'tags', 'tagResource_tags' - One or more tags to be assigned to the resource.+newTagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  TagResource+newTagResource pResourceArn_ =+  TagResource'+    { resourceArn = pResourceArn_,+      tags = Prelude.mempty+    }++-- | The DataBrew resource to which tags should be added. The value for this+-- parameter is an Amazon Resource Name (ARN). For DataBrew, you can tag a+-- dataset, a job, a project, or a recipe.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | One or more tags to be assigned to the 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/DataBrew/Types.hs view
@@ -0,0 +1,670 @@+{-# 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.DataBrew.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.DataBrew.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _AccessDeniedException,+    _ConflictException,+    _InternalServerException,+    _ResourceNotFoundException,+    _ServiceQuotaExceededException,+    _ValidationException,++    -- * AnalyticsMode+    AnalyticsMode (..),++    -- * CompressionFormat+    CompressionFormat (..),++    -- * DatabaseOutputMode+    DatabaseOutputMode (..),++    -- * EncryptionMode+    EncryptionMode (..),++    -- * InputFormat+    InputFormat (..),++    -- * JobRunState+    JobRunState (..),++    -- * JobType+    JobType (..),++    -- * LogSubscription+    LogSubscription (..),++    -- * Order+    Order (..),++    -- * OrderedBy+    OrderedBy (..),++    -- * OutputFormat+    OutputFormat (..),++    -- * ParameterType+    ParameterType (..),++    -- * SampleMode+    SampleMode (..),++    -- * SampleType+    SampleType (..),++    -- * SessionStatus+    SessionStatus (..),++    -- * Source+    Source (..),++    -- * ThresholdType+    ThresholdType (..),++    -- * ThresholdUnit+    ThresholdUnit (..),++    -- * ValidationMode+    ValidationMode (..),++    -- * AllowedStatistics+    AllowedStatistics (..),+    newAllowedStatistics,+    allowedStatistics_statistics,++    -- * ColumnSelector+    ColumnSelector (..),+    newColumnSelector,+    columnSelector_name,+    columnSelector_regex,++    -- * ColumnStatisticsConfiguration+    ColumnStatisticsConfiguration (..),+    newColumnStatisticsConfiguration,+    columnStatisticsConfiguration_selectors,+    columnStatisticsConfiguration_statistics,++    -- * ConditionExpression+    ConditionExpression (..),+    newConditionExpression,+    conditionExpression_value,+    conditionExpression_condition,+    conditionExpression_targetColumn,++    -- * CsvOptions+    CsvOptions (..),+    newCsvOptions,+    csvOptions_delimiter,+    csvOptions_headerRow,++    -- * CsvOutputOptions+    CsvOutputOptions (..),+    newCsvOutputOptions,+    csvOutputOptions_delimiter,++    -- * DataCatalogInputDefinition+    DataCatalogInputDefinition (..),+    newDataCatalogInputDefinition,+    dataCatalogInputDefinition_catalogId,+    dataCatalogInputDefinition_tempDirectory,+    dataCatalogInputDefinition_databaseName,+    dataCatalogInputDefinition_tableName,++    -- * DataCatalogOutput+    DataCatalogOutput (..),+    newDataCatalogOutput,+    dataCatalogOutput_catalogId,+    dataCatalogOutput_databaseOptions,+    dataCatalogOutput_overwrite,+    dataCatalogOutput_s3Options,+    dataCatalogOutput_databaseName,+    dataCatalogOutput_tableName,++    -- * DatabaseInputDefinition+    DatabaseInputDefinition (..),+    newDatabaseInputDefinition,+    databaseInputDefinition_databaseTableName,+    databaseInputDefinition_queryString,+    databaseInputDefinition_tempDirectory,+    databaseInputDefinition_glueConnectionName,++    -- * DatabaseOutput+    DatabaseOutput (..),+    newDatabaseOutput,+    databaseOutput_databaseOutputMode,+    databaseOutput_glueConnectionName,+    databaseOutput_databaseOptions,++    -- * DatabaseTableOutputOptions+    DatabaseTableOutputOptions (..),+    newDatabaseTableOutputOptions,+    databaseTableOutputOptions_tempDirectory,+    databaseTableOutputOptions_tableName,++    -- * Dataset+    Dataset (..),+    newDataset,+    dataset_accountId,+    dataset_createDate,+    dataset_createdBy,+    dataset_format,+    dataset_formatOptions,+    dataset_lastModifiedBy,+    dataset_lastModifiedDate,+    dataset_pathOptions,+    dataset_resourceArn,+    dataset_source,+    dataset_tags,+    dataset_name,+    dataset_input,++    -- * DatasetParameter+    DatasetParameter (..),+    newDatasetParameter,+    datasetParameter_createColumn,+    datasetParameter_datetimeOptions,+    datasetParameter_filter,+    datasetParameter_name,+    datasetParameter_type,++    -- * DatetimeOptions+    DatetimeOptions (..),+    newDatetimeOptions,+    datetimeOptions_localeCode,+    datetimeOptions_timezoneOffset,+    datetimeOptions_format,++    -- * EntityDetectorConfiguration+    EntityDetectorConfiguration (..),+    newEntityDetectorConfiguration,+    entityDetectorConfiguration_allowedStatistics,+    entityDetectorConfiguration_entityTypes,++    -- * ExcelOptions+    ExcelOptions (..),+    newExcelOptions,+    excelOptions_headerRow,+    excelOptions_sheetIndexes,+    excelOptions_sheetNames,++    -- * FilesLimit+    FilesLimit (..),+    newFilesLimit,+    filesLimit_order,+    filesLimit_orderedBy,+    filesLimit_maxFiles,++    -- * FilterExpression+    FilterExpression (..),+    newFilterExpression,+    filterExpression_expression,+    filterExpression_valuesMap,++    -- * FormatOptions+    FormatOptions (..),+    newFormatOptions,+    formatOptions_csv,+    formatOptions_excel,+    formatOptions_json,++    -- * Input+    Input (..),+    newInput,+    input_dataCatalogInputDefinition,+    input_databaseInputDefinition,+    input_metadata,+    input_s3InputDefinition,++    -- * Job+    Job (..),+    newJob,+    job_accountId,+    job_createDate,+    job_createdBy,+    job_dataCatalogOutputs,+    job_databaseOutputs,+    job_datasetName,+    job_encryptionKeyArn,+    job_encryptionMode,+    job_jobSample,+    job_lastModifiedBy,+    job_lastModifiedDate,+    job_logSubscription,+    job_maxCapacity,+    job_maxRetries,+    job_outputs,+    job_projectName,+    job_recipeReference,+    job_resourceArn,+    job_roleArn,+    job_tags,+    job_timeout,+    job_type,+    job_validationConfigurations,+    job_name,++    -- * JobRun+    JobRun (..),+    newJobRun,+    jobRun_attempt,+    jobRun_completedOn,+    jobRun_dataCatalogOutputs,+    jobRun_databaseOutputs,+    jobRun_datasetName,+    jobRun_errorMessage,+    jobRun_executionTime,+    jobRun_jobName,+    jobRun_jobSample,+    jobRun_logGroupName,+    jobRun_logSubscription,+    jobRun_outputs,+    jobRun_recipeReference,+    jobRun_runId,+    jobRun_startedBy,+    jobRun_startedOn,+    jobRun_state,+    jobRun_validationConfigurations,++    -- * JobSample+    JobSample (..),+    newJobSample,+    jobSample_mode,+    jobSample_size,++    -- * JsonOptions+    JsonOptions (..),+    newJsonOptions,+    jsonOptions_multiLine,++    -- * Metadata+    Metadata (..),+    newMetadata,+    metadata_sourceArn,++    -- * Output+    Output (..),+    newOutput,+    output_compressionFormat,+    output_format,+    output_formatOptions,+    output_maxOutputFiles,+    output_overwrite,+    output_partitionColumns,+    output_location,++    -- * OutputFormatOptions+    OutputFormatOptions (..),+    newOutputFormatOptions,+    outputFormatOptions_csv,++    -- * PathOptions+    PathOptions (..),+    newPathOptions,+    pathOptions_filesLimit,+    pathOptions_lastModifiedDateCondition,+    pathOptions_parameters,++    -- * ProfileConfiguration+    ProfileConfiguration (..),+    newProfileConfiguration,+    profileConfiguration_columnStatisticsConfigurations,+    profileConfiguration_datasetStatisticsConfiguration,+    profileConfiguration_entityDetectorConfiguration,+    profileConfiguration_profileColumns,++    -- * Project+    Project (..),+    newProject,+    project_accountId,+    project_createDate,+    project_createdBy,+    project_datasetName,+    project_lastModifiedBy,+    project_lastModifiedDate,+    project_openDate,+    project_openedBy,+    project_resourceArn,+    project_roleArn,+    project_sample,+    project_tags,+    project_name,+    project_recipeName,++    -- * Recipe+    Recipe (..),+    newRecipe,+    recipe_createDate,+    recipe_createdBy,+    recipe_description,+    recipe_lastModifiedBy,+    recipe_lastModifiedDate,+    recipe_projectName,+    recipe_publishedBy,+    recipe_publishedDate,+    recipe_recipeVersion,+    recipe_resourceArn,+    recipe_steps,+    recipe_tags,+    recipe_name,++    -- * RecipeAction+    RecipeAction (..),+    newRecipeAction,+    recipeAction_parameters,+    recipeAction_operation,++    -- * RecipeReference+    RecipeReference (..),+    newRecipeReference,+    recipeReference_recipeVersion,+    recipeReference_name,++    -- * RecipeStep+    RecipeStep (..),+    newRecipeStep,+    recipeStep_conditionExpressions,+    recipeStep_action,++    -- * RecipeVersionErrorDetail+    RecipeVersionErrorDetail (..),+    newRecipeVersionErrorDetail,+    recipeVersionErrorDetail_errorCode,+    recipeVersionErrorDetail_errorMessage,+    recipeVersionErrorDetail_recipeVersion,++    -- * Rule+    Rule (..),+    newRule,+    rule_columnSelectors,+    rule_disabled,+    rule_substitutionMap,+    rule_threshold,+    rule_name,+    rule_checkExpression,++    -- * RulesetItem+    RulesetItem (..),+    newRulesetItem,+    rulesetItem_accountId,+    rulesetItem_createDate,+    rulesetItem_createdBy,+    rulesetItem_description,+    rulesetItem_lastModifiedBy,+    rulesetItem_lastModifiedDate,+    rulesetItem_resourceArn,+    rulesetItem_ruleCount,+    rulesetItem_tags,+    rulesetItem_name,+    rulesetItem_targetArn,++    -- * S3Location+    S3Location (..),+    newS3Location,+    s3Location_bucketOwner,+    s3Location_key,+    s3Location_bucket,++    -- * S3TableOutputOptions+    S3TableOutputOptions (..),+    newS3TableOutputOptions,+    s3TableOutputOptions_location,++    -- * Sample+    Sample (..),+    newSample,+    sample_size,+    sample_type,++    -- * Schedule+    Schedule (..),+    newSchedule,+    schedule_accountId,+    schedule_createDate,+    schedule_createdBy,+    schedule_cronExpression,+    schedule_jobNames,+    schedule_lastModifiedBy,+    schedule_lastModifiedDate,+    schedule_resourceArn,+    schedule_tags,+    schedule_name,++    -- * StatisticOverride+    StatisticOverride (..),+    newStatisticOverride,+    statisticOverride_statistic,+    statisticOverride_parameters,++    -- * StatisticsConfiguration+    StatisticsConfiguration (..),+    newStatisticsConfiguration,+    statisticsConfiguration_includedStatistics,+    statisticsConfiguration_overrides,++    -- * Threshold+    Threshold (..),+    newThreshold,+    threshold_type,+    threshold_unit,+    threshold_value,++    -- * ValidationConfiguration+    ValidationConfiguration (..),+    newValidationConfiguration,+    validationConfiguration_validationMode,+    validationConfiguration_rulesetArn,++    -- * ViewFrame+    ViewFrame (..),+    newViewFrame,+    viewFrame_analytics,+    viewFrame_columnRange,+    viewFrame_hiddenColumns,+    viewFrame_rowRange,+    viewFrame_startRowIndex,+    viewFrame_startColumnIndex,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.DataBrew.Types.AllowedStatistics+import Amazonka.DataBrew.Types.AnalyticsMode+import Amazonka.DataBrew.Types.ColumnSelector+import Amazonka.DataBrew.Types.ColumnStatisticsConfiguration+import Amazonka.DataBrew.Types.CompressionFormat+import Amazonka.DataBrew.Types.ConditionExpression+import Amazonka.DataBrew.Types.CsvOptions+import Amazonka.DataBrew.Types.CsvOutputOptions+import Amazonka.DataBrew.Types.DataCatalogInputDefinition+import Amazonka.DataBrew.Types.DataCatalogOutput+import Amazonka.DataBrew.Types.DatabaseInputDefinition+import Amazonka.DataBrew.Types.DatabaseOutput+import Amazonka.DataBrew.Types.DatabaseOutputMode+import Amazonka.DataBrew.Types.DatabaseTableOutputOptions+import Amazonka.DataBrew.Types.Dataset+import Amazonka.DataBrew.Types.DatasetParameter+import Amazonka.DataBrew.Types.DatetimeOptions+import Amazonka.DataBrew.Types.EncryptionMode+import Amazonka.DataBrew.Types.EntityDetectorConfiguration+import Amazonka.DataBrew.Types.ExcelOptions+import Amazonka.DataBrew.Types.FilesLimit+import Amazonka.DataBrew.Types.FilterExpression+import Amazonka.DataBrew.Types.FormatOptions+import Amazonka.DataBrew.Types.Input+import Amazonka.DataBrew.Types.InputFormat+import Amazonka.DataBrew.Types.Job+import Amazonka.DataBrew.Types.JobRun+import Amazonka.DataBrew.Types.JobRunState+import Amazonka.DataBrew.Types.JobSample+import Amazonka.DataBrew.Types.JobType+import Amazonka.DataBrew.Types.JsonOptions+import Amazonka.DataBrew.Types.LogSubscription+import Amazonka.DataBrew.Types.Metadata+import Amazonka.DataBrew.Types.Order+import Amazonka.DataBrew.Types.OrderedBy+import Amazonka.DataBrew.Types.Output+import Amazonka.DataBrew.Types.OutputFormat+import Amazonka.DataBrew.Types.OutputFormatOptions+import Amazonka.DataBrew.Types.ParameterType+import Amazonka.DataBrew.Types.PathOptions+import Amazonka.DataBrew.Types.ProfileConfiguration+import Amazonka.DataBrew.Types.Project+import Amazonka.DataBrew.Types.Recipe+import Amazonka.DataBrew.Types.RecipeAction+import Amazonka.DataBrew.Types.RecipeReference+import Amazonka.DataBrew.Types.RecipeStep+import Amazonka.DataBrew.Types.RecipeVersionErrorDetail+import Amazonka.DataBrew.Types.Rule+import Amazonka.DataBrew.Types.RulesetItem+import Amazonka.DataBrew.Types.S3Location+import Amazonka.DataBrew.Types.S3TableOutputOptions+import Amazonka.DataBrew.Types.Sample+import Amazonka.DataBrew.Types.SampleMode+import Amazonka.DataBrew.Types.SampleType+import Amazonka.DataBrew.Types.Schedule+import Amazonka.DataBrew.Types.SessionStatus+import Amazonka.DataBrew.Types.Source+import Amazonka.DataBrew.Types.StatisticOverride+import Amazonka.DataBrew.Types.StatisticsConfiguration+import Amazonka.DataBrew.Types.Threshold+import Amazonka.DataBrew.Types.ThresholdType+import Amazonka.DataBrew.Types.ThresholdUnit+import Amazonka.DataBrew.Types.ValidationConfiguration+import Amazonka.DataBrew.Types.ValidationMode+import Amazonka.DataBrew.Types.ViewFrame+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2017-07-25@ of the Amazon Glue DataBrew SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "DataBrew",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "databrew",+      Core.signingName = "databrew",+      Core.version = "2017-07-25",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "DataBrew",+      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++-- | Access to the specified resource was denied.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+  Core._MatchServiceError+    defaultService+    "AccessDeniedException"+    Prelude.. Core.hasStatus 403++-- | Updating or deleting a resource can cause an inconsistent state.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+  Core._MatchServiceError+    defaultService+    "ConflictException"+    Prelude.. Core.hasStatus 409++-- | An internal service failure occurred.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+  Core._MatchServiceError+    defaultService+    "InternalServerException"+    Prelude.. Core.hasStatus 500++-- | One or more resources can\'t be found.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"+    Prelude.. Core.hasStatus 404++-- | A service quota is exceeded.+_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceQuotaExceededException =+  Core._MatchServiceError+    defaultService+    "ServiceQuotaExceededException"+    Prelude.. Core.hasStatus 402++-- | The input parameters for this request failed validation.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+  Core._MatchServiceError+    defaultService+    "ValidationException"+    Prelude.. Core.hasStatus 400
+ gen/Amazonka/DataBrew/Types/AllowedStatistics.hs view
@@ -0,0 +1,85 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.AllowedStatistics+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.AllowedStatistics 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++-- | Configuration of statistics that are allowed to be run on columns that+-- contain detected entities. When undefined, no statistics will be+-- computed on columns that contain detected entities.+--+-- /See:/ 'newAllowedStatistics' smart constructor.+data AllowedStatistics = AllowedStatistics'+  { -- | One or more column statistics to allow for columns that contain detected+    -- entities.+    statistics :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AllowedStatistics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'statistics', 'allowedStatistics_statistics' - One or more column statistics to allow for columns that contain detected+-- entities.+newAllowedStatistics ::+  -- | 'statistics'+  Prelude.NonEmpty Prelude.Text ->+  AllowedStatistics+newAllowedStatistics pStatistics_ =+  AllowedStatistics'+    { statistics =+        Lens.coerced Lens.# pStatistics_+    }++-- | One or more column statistics to allow for columns that contain detected+-- entities.+allowedStatistics_statistics :: Lens.Lens' AllowedStatistics (Prelude.NonEmpty Prelude.Text)+allowedStatistics_statistics = Lens.lens (\AllowedStatistics' {statistics} -> statistics) (\s@AllowedStatistics' {} a -> s {statistics = a} :: AllowedStatistics) Prelude.. Lens.coerced++instance Data.FromJSON AllowedStatistics where+  parseJSON =+    Data.withObject+      "AllowedStatistics"+      ( \x ->+          AllowedStatistics'+            Prelude.<$> (x Data..: "Statistics")+      )++instance Prelude.Hashable AllowedStatistics where+  hashWithSalt _salt AllowedStatistics' {..} =+    _salt `Prelude.hashWithSalt` statistics++instance Prelude.NFData AllowedStatistics where+  rnf AllowedStatistics' {..} = Prelude.rnf statistics++instance Data.ToJSON AllowedStatistics where+  toJSON AllowedStatistics' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("Statistics" Data..= statistics)]+      )
+ gen/Amazonka/DataBrew/Types/AnalyticsMode.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.DataBrew.Types.AnalyticsMode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.AnalyticsMode+  ( AnalyticsMode+      ( ..,+        AnalyticsMode_DISABLE,+        AnalyticsMode_ENABLE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AnalyticsMode = AnalyticsMode'+  { fromAnalyticsMode ::+      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 AnalyticsMode_DISABLE :: AnalyticsMode+pattern AnalyticsMode_DISABLE = AnalyticsMode' "DISABLE"++pattern AnalyticsMode_ENABLE :: AnalyticsMode+pattern AnalyticsMode_ENABLE = AnalyticsMode' "ENABLE"++{-# COMPLETE+  AnalyticsMode_DISABLE,+  AnalyticsMode_ENABLE,+  AnalyticsMode'+  #-}
+ gen/Amazonka/DataBrew/Types/ColumnSelector.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.ColumnSelector+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.ColumnSelector 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++-- | Selector of a column from a dataset for profile job configuration. One+-- selector includes either a column name or a regular expression.+--+-- /See:/ 'newColumnSelector' smart constructor.+data ColumnSelector = ColumnSelector'+  { -- | The name of a column from a dataset.+    name :: Prelude.Maybe Prelude.Text,+    -- | A regular expression for selecting a column from a dataset.+    regex :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ColumnSelector' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'columnSelector_name' - The name of a column from a dataset.+--+-- 'regex', 'columnSelector_regex' - A regular expression for selecting a column from a dataset.+newColumnSelector ::+  ColumnSelector+newColumnSelector =+  ColumnSelector'+    { name = Prelude.Nothing,+      regex = Prelude.Nothing+    }++-- | The name of a column from a dataset.+columnSelector_name :: Lens.Lens' ColumnSelector (Prelude.Maybe Prelude.Text)+columnSelector_name = Lens.lens (\ColumnSelector' {name} -> name) (\s@ColumnSelector' {} a -> s {name = a} :: ColumnSelector)++-- | A regular expression for selecting a column from a dataset.+columnSelector_regex :: Lens.Lens' ColumnSelector (Prelude.Maybe Prelude.Text)+columnSelector_regex = Lens.lens (\ColumnSelector' {regex} -> regex) (\s@ColumnSelector' {} a -> s {regex = a} :: ColumnSelector)++instance Data.FromJSON ColumnSelector where+  parseJSON =+    Data.withObject+      "ColumnSelector"+      ( \x ->+          ColumnSelector'+            Prelude.<$> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "Regex")+      )++instance Prelude.Hashable ColumnSelector where+  hashWithSalt _salt ColumnSelector' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` regex++instance Prelude.NFData ColumnSelector where+  rnf ColumnSelector' {..} =+    Prelude.rnf name `Prelude.seq` Prelude.rnf regex++instance Data.ToJSON ColumnSelector where+  toJSON ColumnSelector' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Name" Data..=) Prelude.<$> name,+            ("Regex" Data..=) Prelude.<$> regex+          ]+      )
+ gen/Amazonka/DataBrew/Types/ColumnStatisticsConfiguration.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.ColumnStatisticsConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.ColumnStatisticsConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.ColumnSelector+import Amazonka.DataBrew.Types.StatisticsConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Configuration for column evaluations for a profile job.+-- ColumnStatisticsConfiguration can be used to select evaluations and+-- override parameters of evaluations for particular columns.+--+-- /See:/ 'newColumnStatisticsConfiguration' smart constructor.+data ColumnStatisticsConfiguration = ColumnStatisticsConfiguration'+  { -- | List of column selectors. Selectors can be used to select columns from+    -- the dataset. When selectors are undefined, configuration will be applied+    -- to all supported columns.+    selectors :: Prelude.Maybe (Prelude.NonEmpty ColumnSelector),+    -- | Configuration for evaluations. Statistics can be used to select+    -- evaluations and override parameters of evaluations.+    statistics :: StatisticsConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ColumnStatisticsConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'selectors', 'columnStatisticsConfiguration_selectors' - List of column selectors. Selectors can be used to select columns from+-- the dataset. When selectors are undefined, configuration will be applied+-- to all supported columns.+--+-- 'statistics', 'columnStatisticsConfiguration_statistics' - Configuration for evaluations. Statistics can be used to select+-- evaluations and override parameters of evaluations.+newColumnStatisticsConfiguration ::+  -- | 'statistics'+  StatisticsConfiguration ->+  ColumnStatisticsConfiguration+newColumnStatisticsConfiguration pStatistics_ =+  ColumnStatisticsConfiguration'+    { selectors =+        Prelude.Nothing,+      statistics = pStatistics_+    }++-- | List of column selectors. Selectors can be used to select columns from+-- the dataset. When selectors are undefined, configuration will be applied+-- to all supported columns.+columnStatisticsConfiguration_selectors :: Lens.Lens' ColumnStatisticsConfiguration (Prelude.Maybe (Prelude.NonEmpty ColumnSelector))+columnStatisticsConfiguration_selectors = Lens.lens (\ColumnStatisticsConfiguration' {selectors} -> selectors) (\s@ColumnStatisticsConfiguration' {} a -> s {selectors = a} :: ColumnStatisticsConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Configuration for evaluations. Statistics can be used to select+-- evaluations and override parameters of evaluations.+columnStatisticsConfiguration_statistics :: Lens.Lens' ColumnStatisticsConfiguration StatisticsConfiguration+columnStatisticsConfiguration_statistics = Lens.lens (\ColumnStatisticsConfiguration' {statistics} -> statistics) (\s@ColumnStatisticsConfiguration' {} a -> s {statistics = a} :: ColumnStatisticsConfiguration)++instance Data.FromJSON ColumnStatisticsConfiguration where+  parseJSON =+    Data.withObject+      "ColumnStatisticsConfiguration"+      ( \x ->+          ColumnStatisticsConfiguration'+            Prelude.<$> (x Data..:? "Selectors")+            Prelude.<*> (x Data..: "Statistics")+      )++instance+  Prelude.Hashable+    ColumnStatisticsConfiguration+  where+  hashWithSalt _salt ColumnStatisticsConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` selectors+      `Prelude.hashWithSalt` statistics++instance Prelude.NFData ColumnStatisticsConfiguration where+  rnf ColumnStatisticsConfiguration' {..} =+    Prelude.rnf selectors+      `Prelude.seq` Prelude.rnf statistics++instance Data.ToJSON ColumnStatisticsConfiguration where+  toJSON ColumnStatisticsConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Selectors" Data..=) Prelude.<$> selectors,+            Prelude.Just ("Statistics" Data..= statistics)+          ]+      )
+ gen/Amazonka/DataBrew/Types/CompressionFormat.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.DataBrew.Types.CompressionFormat+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.CompressionFormat+  ( CompressionFormat+      ( ..,+        CompressionFormat_BROTLI,+        CompressionFormat_BZIP2,+        CompressionFormat_DEFLATE,+        CompressionFormat_GZIP,+        CompressionFormat_LZ4,+        CompressionFormat_LZO,+        CompressionFormat_SNAPPY,+        CompressionFormat_ZLIB,+        CompressionFormat_ZSTD+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CompressionFormat = CompressionFormat'+  { fromCompressionFormat ::+      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 CompressionFormat_BROTLI :: CompressionFormat+pattern CompressionFormat_BROTLI = CompressionFormat' "BROTLI"++pattern CompressionFormat_BZIP2 :: CompressionFormat+pattern CompressionFormat_BZIP2 = CompressionFormat' "BZIP2"++pattern CompressionFormat_DEFLATE :: CompressionFormat+pattern CompressionFormat_DEFLATE = CompressionFormat' "DEFLATE"++pattern CompressionFormat_GZIP :: CompressionFormat+pattern CompressionFormat_GZIP = CompressionFormat' "GZIP"++pattern CompressionFormat_LZ4 :: CompressionFormat+pattern CompressionFormat_LZ4 = CompressionFormat' "LZ4"++pattern CompressionFormat_LZO :: CompressionFormat+pattern CompressionFormat_LZO = CompressionFormat' "LZO"++pattern CompressionFormat_SNAPPY :: CompressionFormat+pattern CompressionFormat_SNAPPY = CompressionFormat' "SNAPPY"++pattern CompressionFormat_ZLIB :: CompressionFormat+pattern CompressionFormat_ZLIB = CompressionFormat' "ZLIB"++pattern CompressionFormat_ZSTD :: CompressionFormat+pattern CompressionFormat_ZSTD = CompressionFormat' "ZSTD"++{-# COMPLETE+  CompressionFormat_BROTLI,+  CompressionFormat_BZIP2,+  CompressionFormat_DEFLATE,+  CompressionFormat_GZIP,+  CompressionFormat_LZ4,+  CompressionFormat_LZO,+  CompressionFormat_SNAPPY,+  CompressionFormat_ZLIB,+  CompressionFormat_ZSTD,+  CompressionFormat'+  #-}
+ gen/Amazonka/DataBrew/Types/ConditionExpression.hs view
@@ -0,0 +1,130 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.ConditionExpression+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.ConditionExpression 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++-- | Represents an individual condition that evaluates to true or false.+--+-- Conditions are used with recipe actions. The action is only performed+-- for column values where the condition evaluates to true.+--+-- If a recipe requires more than one condition, then the recipe must+-- specify multiple @ConditionExpression@ elements. Each condition is+-- applied to the rows in a dataset first, before the recipe action is+-- performed.+--+-- /See:/ 'newConditionExpression' smart constructor.+data ConditionExpression = ConditionExpression'+  { -- | A value that the condition must evaluate to for the condition to+    -- succeed.+    value :: Prelude.Maybe Prelude.Text,+    -- | A specific condition to apply to a recipe action. For more information,+    -- see+    -- <https://docs.aws.amazon.com/databrew/latest/dg/recipes.html#recipes.structure Recipe structure>+    -- in the /Glue DataBrew Developer Guide/.+    condition :: Prelude.Text,+    -- | A column to apply this condition to.+    targetColumn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConditionExpression' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'conditionExpression_value' - A value that the condition must evaluate to for the condition to+-- succeed.+--+-- 'condition', 'conditionExpression_condition' - A specific condition to apply to a recipe action. For more information,+-- see+-- <https://docs.aws.amazon.com/databrew/latest/dg/recipes.html#recipes.structure Recipe structure>+-- in the /Glue DataBrew Developer Guide/.+--+-- 'targetColumn', 'conditionExpression_targetColumn' - A column to apply this condition to.+newConditionExpression ::+  -- | 'condition'+  Prelude.Text ->+  -- | 'targetColumn'+  Prelude.Text ->+  ConditionExpression+newConditionExpression pCondition_ pTargetColumn_ =+  ConditionExpression'+    { value = Prelude.Nothing,+      condition = pCondition_,+      targetColumn = pTargetColumn_+    }++-- | A value that the condition must evaluate to for the condition to+-- succeed.+conditionExpression_value :: Lens.Lens' ConditionExpression (Prelude.Maybe Prelude.Text)+conditionExpression_value = Lens.lens (\ConditionExpression' {value} -> value) (\s@ConditionExpression' {} a -> s {value = a} :: ConditionExpression)++-- | A specific condition to apply to a recipe action. For more information,+-- see+-- <https://docs.aws.amazon.com/databrew/latest/dg/recipes.html#recipes.structure Recipe structure>+-- in the /Glue DataBrew Developer Guide/.+conditionExpression_condition :: Lens.Lens' ConditionExpression Prelude.Text+conditionExpression_condition = Lens.lens (\ConditionExpression' {condition} -> condition) (\s@ConditionExpression' {} a -> s {condition = a} :: ConditionExpression)++-- | A column to apply this condition to.+conditionExpression_targetColumn :: Lens.Lens' ConditionExpression Prelude.Text+conditionExpression_targetColumn = Lens.lens (\ConditionExpression' {targetColumn} -> targetColumn) (\s@ConditionExpression' {} a -> s {targetColumn = a} :: ConditionExpression)++instance Data.FromJSON ConditionExpression where+  parseJSON =+    Data.withObject+      "ConditionExpression"+      ( \x ->+          ConditionExpression'+            Prelude.<$> (x Data..:? "Value")+            Prelude.<*> (x Data..: "Condition")+            Prelude.<*> (x Data..: "TargetColumn")+      )++instance Prelude.Hashable ConditionExpression where+  hashWithSalt _salt ConditionExpression' {..} =+    _salt+      `Prelude.hashWithSalt` value+      `Prelude.hashWithSalt` condition+      `Prelude.hashWithSalt` targetColumn++instance Prelude.NFData ConditionExpression where+  rnf ConditionExpression' {..} =+    Prelude.rnf value+      `Prelude.seq` Prelude.rnf condition+      `Prelude.seq` Prelude.rnf targetColumn++instance Data.ToJSON ConditionExpression where+  toJSON ConditionExpression' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Value" Data..=) Prelude.<$> value,+            Prelude.Just ("Condition" Data..= condition),+            Prelude.Just ("TargetColumn" Data..= targetColumn)+          ]+      )
+ gen/Amazonka/DataBrew/Types/CsvOptions.hs view
@@ -0,0 +1,100 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.CsvOptions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.CsvOptions 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++-- | Represents a set of options that define how DataBrew will read a+-- comma-separated value (CSV) file when creating a dataset from that file.+--+-- /See:/ 'newCsvOptions' smart constructor.+data CsvOptions = CsvOptions'+  { -- | A single character that specifies the delimiter being used in the CSV+    -- file.+    delimiter :: Prelude.Maybe Prelude.Text,+    -- | A variable that specifies whether the first row in the file is parsed as+    -- the header. If this value is false, column names are auto-generated.+    headerRow :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CsvOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'delimiter', 'csvOptions_delimiter' - A single character that specifies the delimiter being used in the CSV+-- file.+--+-- 'headerRow', 'csvOptions_headerRow' - A variable that specifies whether the first row in the file is parsed as+-- the header. If this value is false, column names are auto-generated.+newCsvOptions ::+  CsvOptions+newCsvOptions =+  CsvOptions'+    { delimiter = Prelude.Nothing,+      headerRow = Prelude.Nothing+    }++-- | A single character that specifies the delimiter being used in the CSV+-- file.+csvOptions_delimiter :: Lens.Lens' CsvOptions (Prelude.Maybe Prelude.Text)+csvOptions_delimiter = Lens.lens (\CsvOptions' {delimiter} -> delimiter) (\s@CsvOptions' {} a -> s {delimiter = a} :: CsvOptions)++-- | A variable that specifies whether the first row in the file is parsed as+-- the header. If this value is false, column names are auto-generated.+csvOptions_headerRow :: Lens.Lens' CsvOptions (Prelude.Maybe Prelude.Bool)+csvOptions_headerRow = Lens.lens (\CsvOptions' {headerRow} -> headerRow) (\s@CsvOptions' {} a -> s {headerRow = a} :: CsvOptions)++instance Data.FromJSON CsvOptions where+  parseJSON =+    Data.withObject+      "CsvOptions"+      ( \x ->+          CsvOptions'+            Prelude.<$> (x Data..:? "Delimiter")+            Prelude.<*> (x Data..:? "HeaderRow")+      )++instance Prelude.Hashable CsvOptions where+  hashWithSalt _salt CsvOptions' {..} =+    _salt+      `Prelude.hashWithSalt` delimiter+      `Prelude.hashWithSalt` headerRow++instance Prelude.NFData CsvOptions where+  rnf CsvOptions' {..} =+    Prelude.rnf delimiter+      `Prelude.seq` Prelude.rnf headerRow++instance Data.ToJSON CsvOptions where+  toJSON CsvOptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Delimiter" Data..=) Prelude.<$> delimiter,+            ("HeaderRow" Data..=) Prelude.<$> headerRow+          ]+      )
+ gen/Amazonka/DataBrew/Types/CsvOutputOptions.hs view
@@ -0,0 +1,79 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.CsvOutputOptions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.CsvOutputOptions 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++-- | Represents a set of options that define how DataBrew will write a+-- comma-separated value (CSV) file.+--+-- /See:/ 'newCsvOutputOptions' smart constructor.+data CsvOutputOptions = CsvOutputOptions'+  { -- | A single character that specifies the delimiter used to create CSV job+    -- output.+    delimiter :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CsvOutputOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'delimiter', 'csvOutputOptions_delimiter' - A single character that specifies the delimiter used to create CSV job+-- output.+newCsvOutputOptions ::+  CsvOutputOptions+newCsvOutputOptions =+  CsvOutputOptions' {delimiter = Prelude.Nothing}++-- | A single character that specifies the delimiter used to create CSV job+-- output.+csvOutputOptions_delimiter :: Lens.Lens' CsvOutputOptions (Prelude.Maybe Prelude.Text)+csvOutputOptions_delimiter = Lens.lens (\CsvOutputOptions' {delimiter} -> delimiter) (\s@CsvOutputOptions' {} a -> s {delimiter = a} :: CsvOutputOptions)++instance Data.FromJSON CsvOutputOptions where+  parseJSON =+    Data.withObject+      "CsvOutputOptions"+      ( \x ->+          CsvOutputOptions'+            Prelude.<$> (x Data..:? "Delimiter")+      )++instance Prelude.Hashable CsvOutputOptions where+  hashWithSalt _salt CsvOutputOptions' {..} =+    _salt `Prelude.hashWithSalt` delimiter++instance Prelude.NFData CsvOutputOptions where+  rnf CsvOutputOptions' {..} = Prelude.rnf delimiter++instance Data.ToJSON CsvOutputOptions where+  toJSON CsvOutputOptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [("Delimiter" Data..=) Prelude.<$> delimiter]+      )
+ gen/Amazonka/DataBrew/Types/DataCatalogInputDefinition.hs view
@@ -0,0 +1,137 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.DataCatalogInputDefinition+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.DataCatalogInputDefinition where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.S3Location+import qualified Amazonka.Prelude as Prelude++-- | Represents how metadata stored in the Glue Data Catalog is defined in a+-- DataBrew dataset.+--+-- /See:/ 'newDataCatalogInputDefinition' smart constructor.+data DataCatalogInputDefinition = DataCatalogInputDefinition'+  { -- | The unique identifier of the Amazon Web Services account that holds the+    -- Data Catalog that stores the data.+    catalogId :: Prelude.Maybe Prelude.Text,+    -- | Represents an Amazon location where DataBrew can store intermediate+    -- results.+    tempDirectory :: Prelude.Maybe S3Location,+    -- | The name of a database in the Data Catalog.+    databaseName :: Prelude.Text,+    -- | The name of a database table in the Data Catalog. This table corresponds+    -- to a DataBrew dataset.+    tableName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataCatalogInputDefinition' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'dataCatalogInputDefinition_catalogId' - The unique identifier of the Amazon Web Services account that holds the+-- Data Catalog that stores the data.+--+-- 'tempDirectory', 'dataCatalogInputDefinition_tempDirectory' - Represents an Amazon location where DataBrew can store intermediate+-- results.+--+-- 'databaseName', 'dataCatalogInputDefinition_databaseName' - The name of a database in the Data Catalog.+--+-- 'tableName', 'dataCatalogInputDefinition_tableName' - The name of a database table in the Data Catalog. This table corresponds+-- to a DataBrew dataset.+newDataCatalogInputDefinition ::+  -- | 'databaseName'+  Prelude.Text ->+  -- | 'tableName'+  Prelude.Text ->+  DataCatalogInputDefinition+newDataCatalogInputDefinition+  pDatabaseName_+  pTableName_ =+    DataCatalogInputDefinition'+      { catalogId =+          Prelude.Nothing,+        tempDirectory = Prelude.Nothing,+        databaseName = pDatabaseName_,+        tableName = pTableName_+      }++-- | The unique identifier of the Amazon Web Services account that holds the+-- Data Catalog that stores the data.+dataCatalogInputDefinition_catalogId :: Lens.Lens' DataCatalogInputDefinition (Prelude.Maybe Prelude.Text)+dataCatalogInputDefinition_catalogId = Lens.lens (\DataCatalogInputDefinition' {catalogId} -> catalogId) (\s@DataCatalogInputDefinition' {} a -> s {catalogId = a} :: DataCatalogInputDefinition)++-- | Represents an Amazon location where DataBrew can store intermediate+-- results.+dataCatalogInputDefinition_tempDirectory :: Lens.Lens' DataCatalogInputDefinition (Prelude.Maybe S3Location)+dataCatalogInputDefinition_tempDirectory = Lens.lens (\DataCatalogInputDefinition' {tempDirectory} -> tempDirectory) (\s@DataCatalogInputDefinition' {} a -> s {tempDirectory = a} :: DataCatalogInputDefinition)++-- | The name of a database in the Data Catalog.+dataCatalogInputDefinition_databaseName :: Lens.Lens' DataCatalogInputDefinition Prelude.Text+dataCatalogInputDefinition_databaseName = Lens.lens (\DataCatalogInputDefinition' {databaseName} -> databaseName) (\s@DataCatalogInputDefinition' {} a -> s {databaseName = a} :: DataCatalogInputDefinition)++-- | The name of a database table in the Data Catalog. This table corresponds+-- to a DataBrew dataset.+dataCatalogInputDefinition_tableName :: Lens.Lens' DataCatalogInputDefinition Prelude.Text+dataCatalogInputDefinition_tableName = Lens.lens (\DataCatalogInputDefinition' {tableName} -> tableName) (\s@DataCatalogInputDefinition' {} a -> s {tableName = a} :: DataCatalogInputDefinition)++instance Data.FromJSON DataCatalogInputDefinition where+  parseJSON =+    Data.withObject+      "DataCatalogInputDefinition"+      ( \x ->+          DataCatalogInputDefinition'+            Prelude.<$> (x Data..:? "CatalogId")+            Prelude.<*> (x Data..:? "TempDirectory")+            Prelude.<*> (x Data..: "DatabaseName")+            Prelude.<*> (x Data..: "TableName")+      )++instance Prelude.Hashable DataCatalogInputDefinition where+  hashWithSalt _salt DataCatalogInputDefinition' {..} =+    _salt+      `Prelude.hashWithSalt` catalogId+      `Prelude.hashWithSalt` tempDirectory+      `Prelude.hashWithSalt` databaseName+      `Prelude.hashWithSalt` tableName++instance Prelude.NFData DataCatalogInputDefinition where+  rnf DataCatalogInputDefinition' {..} =+    Prelude.rnf catalogId+      `Prelude.seq` Prelude.rnf tempDirectory+      `Prelude.seq` Prelude.rnf databaseName+      `Prelude.seq` Prelude.rnf tableName++instance Data.ToJSON DataCatalogInputDefinition where+  toJSON DataCatalogInputDefinition' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CatalogId" Data..=) Prelude.<$> catalogId,+            ("TempDirectory" Data..=) Prelude.<$> tempDirectory,+            Prelude.Just ("DatabaseName" Data..= databaseName),+            Prelude.Just ("TableName" Data..= tableName)+          ]+      )
+ gen/Amazonka/DataBrew/Types/DataCatalogOutput.hs view
@@ -0,0 +1,168 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.DataCatalogOutput+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.DataCatalogOutput where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.DatabaseTableOutputOptions+import Amazonka.DataBrew.Types.S3TableOutputOptions+import qualified Amazonka.Prelude as Prelude++-- | Represents options that specify how and where in the Glue Data Catalog+-- DataBrew writes the output generated by recipe jobs.+--+-- /See:/ 'newDataCatalogOutput' smart constructor.+data DataCatalogOutput = DataCatalogOutput'+  { -- | The unique identifier of the Amazon Web Services account that holds the+    -- Data Catalog that stores the data.+    catalogId :: Prelude.Maybe Prelude.Text,+    -- | Represents options that specify how and where DataBrew writes the+    -- database output generated by recipe jobs.+    databaseOptions :: Prelude.Maybe DatabaseTableOutputOptions,+    -- | A value that, if true, means that any data in the location specified for+    -- output is overwritten with new output. Not supported with+    -- DatabaseOptions.+    overwrite :: Prelude.Maybe Prelude.Bool,+    -- | Represents options that specify how and where DataBrew writes the Amazon+    -- S3 output generated by recipe jobs.+    s3Options :: Prelude.Maybe S3TableOutputOptions,+    -- | The name of a database in the Data Catalog.+    databaseName :: Prelude.Text,+    -- | The name of a table in the Data Catalog.+    tableName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataCatalogOutput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'catalogId', 'dataCatalogOutput_catalogId' - The unique identifier of the Amazon Web Services account that holds the+-- Data Catalog that stores the data.+--+-- 'databaseOptions', 'dataCatalogOutput_databaseOptions' - Represents options that specify how and where DataBrew writes the+-- database output generated by recipe jobs.+--+-- 'overwrite', 'dataCatalogOutput_overwrite' - A value that, if true, means that any data in the location specified for+-- output is overwritten with new output. Not supported with+-- DatabaseOptions.+--+-- 's3Options', 'dataCatalogOutput_s3Options' - Represents options that specify how and where DataBrew writes the Amazon+-- S3 output generated by recipe jobs.+--+-- 'databaseName', 'dataCatalogOutput_databaseName' - The name of a database in the Data Catalog.+--+-- 'tableName', 'dataCatalogOutput_tableName' - The name of a table in the Data Catalog.+newDataCatalogOutput ::+  -- | 'databaseName'+  Prelude.Text ->+  -- | 'tableName'+  Prelude.Text ->+  DataCatalogOutput+newDataCatalogOutput pDatabaseName_ pTableName_ =+  DataCatalogOutput'+    { catalogId = Prelude.Nothing,+      databaseOptions = Prelude.Nothing,+      overwrite = Prelude.Nothing,+      s3Options = Prelude.Nothing,+      databaseName = pDatabaseName_,+      tableName = pTableName_+    }++-- | The unique identifier of the Amazon Web Services account that holds the+-- Data Catalog that stores the data.+dataCatalogOutput_catalogId :: Lens.Lens' DataCatalogOutput (Prelude.Maybe Prelude.Text)+dataCatalogOutput_catalogId = Lens.lens (\DataCatalogOutput' {catalogId} -> catalogId) (\s@DataCatalogOutput' {} a -> s {catalogId = a} :: DataCatalogOutput)++-- | Represents options that specify how and where DataBrew writes the+-- database output generated by recipe jobs.+dataCatalogOutput_databaseOptions :: Lens.Lens' DataCatalogOutput (Prelude.Maybe DatabaseTableOutputOptions)+dataCatalogOutput_databaseOptions = Lens.lens (\DataCatalogOutput' {databaseOptions} -> databaseOptions) (\s@DataCatalogOutput' {} a -> s {databaseOptions = a} :: DataCatalogOutput)++-- | A value that, if true, means that any data in the location specified for+-- output is overwritten with new output. Not supported with+-- DatabaseOptions.+dataCatalogOutput_overwrite :: Lens.Lens' DataCatalogOutput (Prelude.Maybe Prelude.Bool)+dataCatalogOutput_overwrite = Lens.lens (\DataCatalogOutput' {overwrite} -> overwrite) (\s@DataCatalogOutput' {} a -> s {overwrite = a} :: DataCatalogOutput)++-- | Represents options that specify how and where DataBrew writes the Amazon+-- S3 output generated by recipe jobs.+dataCatalogOutput_s3Options :: Lens.Lens' DataCatalogOutput (Prelude.Maybe S3TableOutputOptions)+dataCatalogOutput_s3Options = Lens.lens (\DataCatalogOutput' {s3Options} -> s3Options) (\s@DataCatalogOutput' {} a -> s {s3Options = a} :: DataCatalogOutput)++-- | The name of a database in the Data Catalog.+dataCatalogOutput_databaseName :: Lens.Lens' DataCatalogOutput Prelude.Text+dataCatalogOutput_databaseName = Lens.lens (\DataCatalogOutput' {databaseName} -> databaseName) (\s@DataCatalogOutput' {} a -> s {databaseName = a} :: DataCatalogOutput)++-- | The name of a table in the Data Catalog.+dataCatalogOutput_tableName :: Lens.Lens' DataCatalogOutput Prelude.Text+dataCatalogOutput_tableName = Lens.lens (\DataCatalogOutput' {tableName} -> tableName) (\s@DataCatalogOutput' {} a -> s {tableName = a} :: DataCatalogOutput)++instance Data.FromJSON DataCatalogOutput where+  parseJSON =+    Data.withObject+      "DataCatalogOutput"+      ( \x ->+          DataCatalogOutput'+            Prelude.<$> (x Data..:? "CatalogId")+            Prelude.<*> (x Data..:? "DatabaseOptions")+            Prelude.<*> (x Data..:? "Overwrite")+            Prelude.<*> (x Data..:? "S3Options")+            Prelude.<*> (x Data..: "DatabaseName")+            Prelude.<*> (x Data..: "TableName")+      )++instance Prelude.Hashable DataCatalogOutput where+  hashWithSalt _salt DataCatalogOutput' {..} =+    _salt+      `Prelude.hashWithSalt` catalogId+      `Prelude.hashWithSalt` databaseOptions+      `Prelude.hashWithSalt` overwrite+      `Prelude.hashWithSalt` s3Options+      `Prelude.hashWithSalt` databaseName+      `Prelude.hashWithSalt` tableName++instance Prelude.NFData DataCatalogOutput where+  rnf DataCatalogOutput' {..} =+    Prelude.rnf catalogId+      `Prelude.seq` Prelude.rnf databaseOptions+      `Prelude.seq` Prelude.rnf overwrite+      `Prelude.seq` Prelude.rnf s3Options+      `Prelude.seq` Prelude.rnf databaseName+      `Prelude.seq` Prelude.rnf tableName++instance Data.ToJSON DataCatalogOutput where+  toJSON DataCatalogOutput' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CatalogId" Data..=) Prelude.<$> catalogId,+            ("DatabaseOptions" Data..=)+              Prelude.<$> databaseOptions,+            ("Overwrite" Data..=) Prelude.<$> overwrite,+            ("S3Options" Data..=) Prelude.<$> s3Options,+            Prelude.Just ("DatabaseName" Data..= databaseName),+            Prelude.Just ("TableName" Data..= tableName)+          ]+      )
+ gen/Amazonka/DataBrew/Types/DatabaseInputDefinition.hs view
@@ -0,0 +1,130 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.DatabaseInputDefinition+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.DatabaseInputDefinition where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.S3Location+import qualified Amazonka.Prelude as Prelude++-- | Connection information for dataset input files stored in a database.+--+-- /See:/ 'newDatabaseInputDefinition' smart constructor.+data DatabaseInputDefinition = DatabaseInputDefinition'+  { -- | The table within the target database.+    databaseTableName :: Prelude.Maybe Prelude.Text,+    -- | Custom SQL to run against the provided Glue connection. This SQL will be+    -- used as the input for DataBrew projects and jobs.+    queryString :: Prelude.Maybe Prelude.Text,+    tempDirectory :: Prelude.Maybe S3Location,+    -- | The Glue Connection that stores the connection information for the+    -- target database.+    glueConnectionName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DatabaseInputDefinition' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'databaseTableName', 'databaseInputDefinition_databaseTableName' - The table within the target database.+--+-- 'queryString', 'databaseInputDefinition_queryString' - Custom SQL to run against the provided Glue connection. This SQL will be+-- used as the input for DataBrew projects and jobs.+--+-- 'tempDirectory', 'databaseInputDefinition_tempDirectory' - Undocumented member.+--+-- 'glueConnectionName', 'databaseInputDefinition_glueConnectionName' - The Glue Connection that stores the connection information for the+-- target database.+newDatabaseInputDefinition ::+  -- | 'glueConnectionName'+  Prelude.Text ->+  DatabaseInputDefinition+newDatabaseInputDefinition pGlueConnectionName_ =+  DatabaseInputDefinition'+    { databaseTableName =+        Prelude.Nothing,+      queryString = Prelude.Nothing,+      tempDirectory = Prelude.Nothing,+      glueConnectionName = pGlueConnectionName_+    }++-- | The table within the target database.+databaseInputDefinition_databaseTableName :: Lens.Lens' DatabaseInputDefinition (Prelude.Maybe Prelude.Text)+databaseInputDefinition_databaseTableName = Lens.lens (\DatabaseInputDefinition' {databaseTableName} -> databaseTableName) (\s@DatabaseInputDefinition' {} a -> s {databaseTableName = a} :: DatabaseInputDefinition)++-- | Custom SQL to run against the provided Glue connection. This SQL will be+-- used as the input for DataBrew projects and jobs.+databaseInputDefinition_queryString :: Lens.Lens' DatabaseInputDefinition (Prelude.Maybe Prelude.Text)+databaseInputDefinition_queryString = Lens.lens (\DatabaseInputDefinition' {queryString} -> queryString) (\s@DatabaseInputDefinition' {} a -> s {queryString = a} :: DatabaseInputDefinition)++-- | Undocumented member.+databaseInputDefinition_tempDirectory :: Lens.Lens' DatabaseInputDefinition (Prelude.Maybe S3Location)+databaseInputDefinition_tempDirectory = Lens.lens (\DatabaseInputDefinition' {tempDirectory} -> tempDirectory) (\s@DatabaseInputDefinition' {} a -> s {tempDirectory = a} :: DatabaseInputDefinition)++-- | The Glue Connection that stores the connection information for the+-- target database.+databaseInputDefinition_glueConnectionName :: Lens.Lens' DatabaseInputDefinition Prelude.Text+databaseInputDefinition_glueConnectionName = Lens.lens (\DatabaseInputDefinition' {glueConnectionName} -> glueConnectionName) (\s@DatabaseInputDefinition' {} a -> s {glueConnectionName = a} :: DatabaseInputDefinition)++instance Data.FromJSON DatabaseInputDefinition where+  parseJSON =+    Data.withObject+      "DatabaseInputDefinition"+      ( \x ->+          DatabaseInputDefinition'+            Prelude.<$> (x Data..:? "DatabaseTableName")+            Prelude.<*> (x Data..:? "QueryString")+            Prelude.<*> (x Data..:? "TempDirectory")+            Prelude.<*> (x Data..: "GlueConnectionName")+      )++instance Prelude.Hashable DatabaseInputDefinition where+  hashWithSalt _salt DatabaseInputDefinition' {..} =+    _salt+      `Prelude.hashWithSalt` databaseTableName+      `Prelude.hashWithSalt` queryString+      `Prelude.hashWithSalt` tempDirectory+      `Prelude.hashWithSalt` glueConnectionName++instance Prelude.NFData DatabaseInputDefinition where+  rnf DatabaseInputDefinition' {..} =+    Prelude.rnf databaseTableName+      `Prelude.seq` Prelude.rnf queryString+      `Prelude.seq` Prelude.rnf tempDirectory+      `Prelude.seq` Prelude.rnf glueConnectionName++instance Data.ToJSON DatabaseInputDefinition where+  toJSON DatabaseInputDefinition' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DatabaseTableName" Data..=)+              Prelude.<$> databaseTableName,+            ("QueryString" Data..=) Prelude.<$> queryString,+            ("TempDirectory" Data..=) Prelude.<$> tempDirectory,+            Prelude.Just+              ("GlueConnectionName" Data..= glueConnectionName)+          ]+      )
+ gen/Amazonka/DataBrew/Types/DatabaseOutput.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.DatabaseOutput+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.DatabaseOutput where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.DatabaseOutputMode+import Amazonka.DataBrew.Types.DatabaseTableOutputOptions+import qualified Amazonka.Prelude as Prelude++-- | Represents a JDBC database output object which defines the output+-- destination for a DataBrew recipe job to write into.+--+-- /See:/ 'newDatabaseOutput' smart constructor.+data DatabaseOutput = DatabaseOutput'+  { -- | The output mode to write into the database. Currently supported option:+    -- NEW_TABLE.+    databaseOutputMode :: Prelude.Maybe DatabaseOutputMode,+    -- | The Glue connection that stores the connection information for the+    -- target database.+    glueConnectionName :: Prelude.Text,+    -- | Represents options that specify how and where DataBrew writes the+    -- database output generated by recipe jobs.+    databaseOptions :: DatabaseTableOutputOptions+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DatabaseOutput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'databaseOutputMode', 'databaseOutput_databaseOutputMode' - The output mode to write into the database. Currently supported option:+-- NEW_TABLE.+--+-- 'glueConnectionName', 'databaseOutput_glueConnectionName' - The Glue connection that stores the connection information for the+-- target database.+--+-- 'databaseOptions', 'databaseOutput_databaseOptions' - Represents options that specify how and where DataBrew writes the+-- database output generated by recipe jobs.+newDatabaseOutput ::+  -- | 'glueConnectionName'+  Prelude.Text ->+  -- | 'databaseOptions'+  DatabaseTableOutputOptions ->+  DatabaseOutput+newDatabaseOutput+  pGlueConnectionName_+  pDatabaseOptions_ =+    DatabaseOutput'+      { databaseOutputMode =+          Prelude.Nothing,+        glueConnectionName = pGlueConnectionName_,+        databaseOptions = pDatabaseOptions_+      }++-- | The output mode to write into the database. Currently supported option:+-- NEW_TABLE.+databaseOutput_databaseOutputMode :: Lens.Lens' DatabaseOutput (Prelude.Maybe DatabaseOutputMode)+databaseOutput_databaseOutputMode = Lens.lens (\DatabaseOutput' {databaseOutputMode} -> databaseOutputMode) (\s@DatabaseOutput' {} a -> s {databaseOutputMode = a} :: DatabaseOutput)++-- | The Glue connection that stores the connection information for the+-- target database.+databaseOutput_glueConnectionName :: Lens.Lens' DatabaseOutput Prelude.Text+databaseOutput_glueConnectionName = Lens.lens (\DatabaseOutput' {glueConnectionName} -> glueConnectionName) (\s@DatabaseOutput' {} a -> s {glueConnectionName = a} :: DatabaseOutput)++-- | Represents options that specify how and where DataBrew writes the+-- database output generated by recipe jobs.+databaseOutput_databaseOptions :: Lens.Lens' DatabaseOutput DatabaseTableOutputOptions+databaseOutput_databaseOptions = Lens.lens (\DatabaseOutput' {databaseOptions} -> databaseOptions) (\s@DatabaseOutput' {} a -> s {databaseOptions = a} :: DatabaseOutput)++instance Data.FromJSON DatabaseOutput where+  parseJSON =+    Data.withObject+      "DatabaseOutput"+      ( \x ->+          DatabaseOutput'+            Prelude.<$> (x Data..:? "DatabaseOutputMode")+            Prelude.<*> (x Data..: "GlueConnectionName")+            Prelude.<*> (x Data..: "DatabaseOptions")+      )++instance Prelude.Hashable DatabaseOutput where+  hashWithSalt _salt DatabaseOutput' {..} =+    _salt+      `Prelude.hashWithSalt` databaseOutputMode+      `Prelude.hashWithSalt` glueConnectionName+      `Prelude.hashWithSalt` databaseOptions++instance Prelude.NFData DatabaseOutput where+  rnf DatabaseOutput' {..} =+    Prelude.rnf databaseOutputMode+      `Prelude.seq` Prelude.rnf glueConnectionName+      `Prelude.seq` Prelude.rnf databaseOptions++instance Data.ToJSON DatabaseOutput where+  toJSON DatabaseOutput' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DatabaseOutputMode" Data..=)+              Prelude.<$> databaseOutputMode,+            Prelude.Just+              ("GlueConnectionName" Data..= glueConnectionName),+            Prelude.Just+              ("DatabaseOptions" Data..= databaseOptions)+          ]+      )
+ gen/Amazonka/DataBrew/Types/DatabaseOutputMode.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.DataBrew.Types.DatabaseOutputMode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.DatabaseOutputMode+  ( DatabaseOutputMode+      ( ..,+        DatabaseOutputMode_NEW_TABLE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DatabaseOutputMode = DatabaseOutputMode'+  { fromDatabaseOutputMode ::+      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 DatabaseOutputMode_NEW_TABLE :: DatabaseOutputMode+pattern DatabaseOutputMode_NEW_TABLE = DatabaseOutputMode' "NEW_TABLE"++{-# COMPLETE+  DatabaseOutputMode_NEW_TABLE,+  DatabaseOutputMode'+  #-}
+ gen/Amazonka/DataBrew/Types/DatabaseTableOutputOptions.hs view
@@ -0,0 +1,101 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.DatabaseTableOutputOptions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.DatabaseTableOutputOptions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.S3Location+import qualified Amazonka.Prelude as Prelude++-- | Represents options that specify how and where DataBrew writes the+-- database output generated by recipe jobs.+--+-- /See:/ 'newDatabaseTableOutputOptions' smart constructor.+data DatabaseTableOutputOptions = DatabaseTableOutputOptions'+  { -- | Represents an Amazon S3 location (bucket name and object key) where+    -- DataBrew can store intermediate results.+    tempDirectory :: Prelude.Maybe S3Location,+    -- | A prefix for the name of a table DataBrew will create in the database.+    tableName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DatabaseTableOutputOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tempDirectory', 'databaseTableOutputOptions_tempDirectory' - Represents an Amazon S3 location (bucket name and object key) where+-- DataBrew can store intermediate results.+--+-- 'tableName', 'databaseTableOutputOptions_tableName' - A prefix for the name of a table DataBrew will create in the database.+newDatabaseTableOutputOptions ::+  -- | 'tableName'+  Prelude.Text ->+  DatabaseTableOutputOptions+newDatabaseTableOutputOptions pTableName_ =+  DatabaseTableOutputOptions'+    { tempDirectory =+        Prelude.Nothing,+      tableName = pTableName_+    }++-- | Represents an Amazon S3 location (bucket name and object key) where+-- DataBrew can store intermediate results.+databaseTableOutputOptions_tempDirectory :: Lens.Lens' DatabaseTableOutputOptions (Prelude.Maybe S3Location)+databaseTableOutputOptions_tempDirectory = Lens.lens (\DatabaseTableOutputOptions' {tempDirectory} -> tempDirectory) (\s@DatabaseTableOutputOptions' {} a -> s {tempDirectory = a} :: DatabaseTableOutputOptions)++-- | A prefix for the name of a table DataBrew will create in the database.+databaseTableOutputOptions_tableName :: Lens.Lens' DatabaseTableOutputOptions Prelude.Text+databaseTableOutputOptions_tableName = Lens.lens (\DatabaseTableOutputOptions' {tableName} -> tableName) (\s@DatabaseTableOutputOptions' {} a -> s {tableName = a} :: DatabaseTableOutputOptions)++instance Data.FromJSON DatabaseTableOutputOptions where+  parseJSON =+    Data.withObject+      "DatabaseTableOutputOptions"+      ( \x ->+          DatabaseTableOutputOptions'+            Prelude.<$> (x Data..:? "TempDirectory")+            Prelude.<*> (x Data..: "TableName")+      )++instance Prelude.Hashable DatabaseTableOutputOptions where+  hashWithSalt _salt DatabaseTableOutputOptions' {..} =+    _salt+      `Prelude.hashWithSalt` tempDirectory+      `Prelude.hashWithSalt` tableName++instance Prelude.NFData DatabaseTableOutputOptions where+  rnf DatabaseTableOutputOptions' {..} =+    Prelude.rnf tempDirectory+      `Prelude.seq` Prelude.rnf tableName++instance Data.ToJSON DatabaseTableOutputOptions where+  toJSON DatabaseTableOutputOptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("TempDirectory" Data..=) Prelude.<$> tempDirectory,+            Prelude.Just ("TableName" Data..= tableName)+          ]+      )
+ gen/Amazonka/DataBrew/Types/Dataset.hs view
@@ -0,0 +1,243 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.Dataset+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.Dataset where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.FormatOptions+import Amazonka.DataBrew.Types.Input+import Amazonka.DataBrew.Types.InputFormat+import Amazonka.DataBrew.Types.PathOptions+import Amazonka.DataBrew.Types.Source+import qualified Amazonka.Prelude as Prelude++-- | Represents a dataset that can be processed by DataBrew.+--+-- /See:/ 'newDataset' smart constructor.+data Dataset = Dataset'+  { -- | The ID of the Amazon Web Services account that owns the dataset.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the dataset was created.+    createDate :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the user who created the dataset.+    createdBy :: Prelude.Maybe Prelude.Text,+    -- | The file format of a dataset that is created from an Amazon S3 file or+    -- folder.+    format :: Prelude.Maybe InputFormat,+    -- | A set of options that define how DataBrew interprets the data in the+    -- dataset.+    formatOptions :: Prelude.Maybe FormatOptions,+    -- | The Amazon Resource Name (ARN) of the user who last modified the+    -- dataset.+    lastModifiedBy :: Prelude.Maybe Prelude.Text,+    -- | The last modification date and time of the dataset.+    lastModifiedDate :: Prelude.Maybe Data.POSIX,+    -- | A set of options that defines how DataBrew interprets an Amazon S3 path+    -- of the dataset.+    pathOptions :: Prelude.Maybe PathOptions,+    -- | The unique Amazon Resource Name (ARN) for the dataset.+    resourceArn :: Prelude.Maybe Prelude.Text,+    -- | The location of the data for the dataset, either Amazon S3 or the Glue+    -- Data Catalog.+    source :: Prelude.Maybe Source,+    -- | Metadata tags that have been applied to the dataset.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The unique name of the dataset.+    name :: Prelude.Text,+    -- | Information on how DataBrew can find the dataset, in either the Glue+    -- Data Catalog or Amazon S3.+    input :: Input+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Dataset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'dataset_accountId' - The ID of the Amazon Web Services account that owns the dataset.+--+-- 'createDate', 'dataset_createDate' - The date and time that the dataset was created.+--+-- 'createdBy', 'dataset_createdBy' - The Amazon Resource Name (ARN) of the user who created the dataset.+--+-- 'format', 'dataset_format' - The file format of a dataset that is created from an Amazon S3 file or+-- folder.+--+-- 'formatOptions', 'dataset_formatOptions' - A set of options that define how DataBrew interprets the data in the+-- dataset.+--+-- 'lastModifiedBy', 'dataset_lastModifiedBy' - The Amazon Resource Name (ARN) of the user who last modified the+-- dataset.+--+-- 'lastModifiedDate', 'dataset_lastModifiedDate' - The last modification date and time of the dataset.+--+-- 'pathOptions', 'dataset_pathOptions' - A set of options that defines how DataBrew interprets an Amazon S3 path+-- of the dataset.+--+-- 'resourceArn', 'dataset_resourceArn' - The unique Amazon Resource Name (ARN) for the dataset.+--+-- 'source', 'dataset_source' - The location of the data for the dataset, either Amazon S3 or the Glue+-- Data Catalog.+--+-- 'tags', 'dataset_tags' - Metadata tags that have been applied to the dataset.+--+-- 'name', 'dataset_name' - The unique name of the dataset.+--+-- 'input', 'dataset_input' - Information on how DataBrew can find the dataset, in either the Glue+-- Data Catalog or Amazon S3.+newDataset ::+  -- | 'name'+  Prelude.Text ->+  -- | 'input'+  Input ->+  Dataset+newDataset pName_ pInput_ =+  Dataset'+    { accountId = Prelude.Nothing,+      createDate = Prelude.Nothing,+      createdBy = Prelude.Nothing,+      format = Prelude.Nothing,+      formatOptions = Prelude.Nothing,+      lastModifiedBy = Prelude.Nothing,+      lastModifiedDate = Prelude.Nothing,+      pathOptions = Prelude.Nothing,+      resourceArn = Prelude.Nothing,+      source = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_,+      input = pInput_+    }++-- | The ID of the Amazon Web Services account that owns the dataset.+dataset_accountId :: Lens.Lens' Dataset (Prelude.Maybe Prelude.Text)+dataset_accountId = Lens.lens (\Dataset' {accountId} -> accountId) (\s@Dataset' {} a -> s {accountId = a} :: Dataset)++-- | The date and time that the dataset was created.+dataset_createDate :: Lens.Lens' Dataset (Prelude.Maybe Prelude.UTCTime)+dataset_createDate = Lens.lens (\Dataset' {createDate} -> createDate) (\s@Dataset' {} a -> s {createDate = a} :: Dataset) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the user who created the dataset.+dataset_createdBy :: Lens.Lens' Dataset (Prelude.Maybe Prelude.Text)+dataset_createdBy = Lens.lens (\Dataset' {createdBy} -> createdBy) (\s@Dataset' {} a -> s {createdBy = a} :: Dataset)++-- | The file format of a dataset that is created from an Amazon S3 file or+-- folder.+dataset_format :: Lens.Lens' Dataset (Prelude.Maybe InputFormat)+dataset_format = Lens.lens (\Dataset' {format} -> format) (\s@Dataset' {} a -> s {format = a} :: Dataset)++-- | A set of options that define how DataBrew interprets the data in the+-- dataset.+dataset_formatOptions :: Lens.Lens' Dataset (Prelude.Maybe FormatOptions)+dataset_formatOptions = Lens.lens (\Dataset' {formatOptions} -> formatOptions) (\s@Dataset' {} a -> s {formatOptions = a} :: Dataset)++-- | The Amazon Resource Name (ARN) of the user who last modified the+-- dataset.+dataset_lastModifiedBy :: Lens.Lens' Dataset (Prelude.Maybe Prelude.Text)+dataset_lastModifiedBy = Lens.lens (\Dataset' {lastModifiedBy} -> lastModifiedBy) (\s@Dataset' {} a -> s {lastModifiedBy = a} :: Dataset)++-- | The last modification date and time of the dataset.+dataset_lastModifiedDate :: Lens.Lens' Dataset (Prelude.Maybe Prelude.UTCTime)+dataset_lastModifiedDate = Lens.lens (\Dataset' {lastModifiedDate} -> lastModifiedDate) (\s@Dataset' {} a -> s {lastModifiedDate = a} :: Dataset) Prelude.. Lens.mapping Data._Time++-- | A set of options that defines how DataBrew interprets an Amazon S3 path+-- of the dataset.+dataset_pathOptions :: Lens.Lens' Dataset (Prelude.Maybe PathOptions)+dataset_pathOptions = Lens.lens (\Dataset' {pathOptions} -> pathOptions) (\s@Dataset' {} a -> s {pathOptions = a} :: Dataset)++-- | The unique Amazon Resource Name (ARN) for the dataset.+dataset_resourceArn :: Lens.Lens' Dataset (Prelude.Maybe Prelude.Text)+dataset_resourceArn = Lens.lens (\Dataset' {resourceArn} -> resourceArn) (\s@Dataset' {} a -> s {resourceArn = a} :: Dataset)++-- | The location of the data for the dataset, either Amazon S3 or the Glue+-- Data Catalog.+dataset_source :: Lens.Lens' Dataset (Prelude.Maybe Source)+dataset_source = Lens.lens (\Dataset' {source} -> source) (\s@Dataset' {} a -> s {source = a} :: Dataset)++-- | Metadata tags that have been applied to the dataset.+dataset_tags :: Lens.Lens' Dataset (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+dataset_tags = Lens.lens (\Dataset' {tags} -> tags) (\s@Dataset' {} a -> s {tags = a} :: Dataset) Prelude.. Lens.mapping Lens.coerced++-- | The unique name of the dataset.+dataset_name :: Lens.Lens' Dataset Prelude.Text+dataset_name = Lens.lens (\Dataset' {name} -> name) (\s@Dataset' {} a -> s {name = a} :: Dataset)++-- | Information on how DataBrew can find the dataset, in either the Glue+-- Data Catalog or Amazon S3.+dataset_input :: Lens.Lens' Dataset Input+dataset_input = Lens.lens (\Dataset' {input} -> input) (\s@Dataset' {} a -> s {input = a} :: Dataset)++instance Data.FromJSON Dataset where+  parseJSON =+    Data.withObject+      "Dataset"+      ( \x ->+          Dataset'+            Prelude.<$> (x Data..:? "AccountId")+            Prelude.<*> (x Data..:? "CreateDate")+            Prelude.<*> (x Data..:? "CreatedBy")+            Prelude.<*> (x Data..:? "Format")+            Prelude.<*> (x Data..:? "FormatOptions")+            Prelude.<*> (x Data..:? "LastModifiedBy")+            Prelude.<*> (x Data..:? "LastModifiedDate")+            Prelude.<*> (x Data..:? "PathOptions")+            Prelude.<*> (x Data..:? "ResourceArn")+            Prelude.<*> (x Data..:? "Source")+            Prelude.<*> (x Data..:? "Tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "Name")+            Prelude.<*> (x Data..: "Input")+      )++instance Prelude.Hashable Dataset where+  hashWithSalt _salt Dataset' {..} =+    _salt+      `Prelude.hashWithSalt` accountId+      `Prelude.hashWithSalt` createDate+      `Prelude.hashWithSalt` createdBy+      `Prelude.hashWithSalt` format+      `Prelude.hashWithSalt` formatOptions+      `Prelude.hashWithSalt` lastModifiedBy+      `Prelude.hashWithSalt` lastModifiedDate+      `Prelude.hashWithSalt` pathOptions+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` source+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` input++instance Prelude.NFData Dataset where+  rnf Dataset' {..} =+    Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf createDate+      `Prelude.seq` Prelude.rnf createdBy+      `Prelude.seq` Prelude.rnf format+      `Prelude.seq` Prelude.rnf formatOptions+      `Prelude.seq` Prelude.rnf lastModifiedBy+      `Prelude.seq` Prelude.rnf lastModifiedDate+      `Prelude.seq` Prelude.rnf pathOptions+      `Prelude.seq` Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf source+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf input
+ gen/Amazonka/DataBrew/Types/DatasetParameter.hs view
@@ -0,0 +1,153 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.DatasetParameter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.DatasetParameter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.DatetimeOptions+import Amazonka.DataBrew.Types.FilterExpression+import Amazonka.DataBrew.Types.ParameterType+import qualified Amazonka.Prelude as Prelude++-- | Represents a dataset parameter that defines type and conditions for a+-- parameter in the Amazon S3 path of the dataset.+--+-- /See:/ 'newDatasetParameter' smart constructor.+data DatasetParameter = DatasetParameter'+  { -- | Optional boolean value that defines whether the captured value of this+    -- parameter should be used to create a new column in a dataset.+    createColumn :: Prelude.Maybe Prelude.Bool,+    -- | Additional parameter options such as a format and a timezone. Required+    -- for datetime parameters.+    datetimeOptions :: Prelude.Maybe DatetimeOptions,+    -- | The optional filter expression structure to apply additional matching+    -- criteria to the parameter.+    filter' :: Prelude.Maybe FilterExpression,+    -- | The name of the parameter that is used in the dataset\'s Amazon S3 path.+    name :: Prelude.Text,+    -- | The type of the dataset parameter, can be one of a \'String\',+    -- \'Number\' or \'Datetime\'.+    type' :: ParameterType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DatasetParameter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createColumn', 'datasetParameter_createColumn' - Optional boolean value that defines whether the captured value of this+-- parameter should be used to create a new column in a dataset.+--+-- 'datetimeOptions', 'datasetParameter_datetimeOptions' - Additional parameter options such as a format and a timezone. Required+-- for datetime parameters.+--+-- 'filter'', 'datasetParameter_filter' - The optional filter expression structure to apply additional matching+-- criteria to the parameter.+--+-- 'name', 'datasetParameter_name' - The name of the parameter that is used in the dataset\'s Amazon S3 path.+--+-- 'type'', 'datasetParameter_type' - The type of the dataset parameter, can be one of a \'String\',+-- \'Number\' or \'Datetime\'.+newDatasetParameter ::+  -- | 'name'+  Prelude.Text ->+  -- | 'type''+  ParameterType ->+  DatasetParameter+newDatasetParameter pName_ pType_ =+  DatasetParameter'+    { createColumn = Prelude.Nothing,+      datetimeOptions = Prelude.Nothing,+      filter' = Prelude.Nothing,+      name = pName_,+      type' = pType_+    }++-- | Optional boolean value that defines whether the captured value of this+-- parameter should be used to create a new column in a dataset.+datasetParameter_createColumn :: Lens.Lens' DatasetParameter (Prelude.Maybe Prelude.Bool)+datasetParameter_createColumn = Lens.lens (\DatasetParameter' {createColumn} -> createColumn) (\s@DatasetParameter' {} a -> s {createColumn = a} :: DatasetParameter)++-- | Additional parameter options such as a format and a timezone. Required+-- for datetime parameters.+datasetParameter_datetimeOptions :: Lens.Lens' DatasetParameter (Prelude.Maybe DatetimeOptions)+datasetParameter_datetimeOptions = Lens.lens (\DatasetParameter' {datetimeOptions} -> datetimeOptions) (\s@DatasetParameter' {} a -> s {datetimeOptions = a} :: DatasetParameter)++-- | The optional filter expression structure to apply additional matching+-- criteria to the parameter.+datasetParameter_filter :: Lens.Lens' DatasetParameter (Prelude.Maybe FilterExpression)+datasetParameter_filter = Lens.lens (\DatasetParameter' {filter'} -> filter') (\s@DatasetParameter' {} a -> s {filter' = a} :: DatasetParameter)++-- | The name of the parameter that is used in the dataset\'s Amazon S3 path.+datasetParameter_name :: Lens.Lens' DatasetParameter Prelude.Text+datasetParameter_name = Lens.lens (\DatasetParameter' {name} -> name) (\s@DatasetParameter' {} a -> s {name = a} :: DatasetParameter)++-- | The type of the dataset parameter, can be one of a \'String\',+-- \'Number\' or \'Datetime\'.+datasetParameter_type :: Lens.Lens' DatasetParameter ParameterType+datasetParameter_type = Lens.lens (\DatasetParameter' {type'} -> type') (\s@DatasetParameter' {} a -> s {type' = a} :: DatasetParameter)++instance Data.FromJSON DatasetParameter where+  parseJSON =+    Data.withObject+      "DatasetParameter"+      ( \x ->+          DatasetParameter'+            Prelude.<$> (x Data..:? "CreateColumn")+            Prelude.<*> (x Data..:? "DatetimeOptions")+            Prelude.<*> (x Data..:? "Filter")+            Prelude.<*> (x Data..: "Name")+            Prelude.<*> (x Data..: "Type")+      )++instance Prelude.Hashable DatasetParameter where+  hashWithSalt _salt DatasetParameter' {..} =+    _salt+      `Prelude.hashWithSalt` createColumn+      `Prelude.hashWithSalt` datetimeOptions+      `Prelude.hashWithSalt` filter'+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` type'++instance Prelude.NFData DatasetParameter where+  rnf DatasetParameter' {..} =+    Prelude.rnf createColumn+      `Prelude.seq` Prelude.rnf datetimeOptions+      `Prelude.seq` Prelude.rnf filter'+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf type'++instance Data.ToJSON DatasetParameter where+  toJSON DatasetParameter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CreateColumn" Data..=) Prelude.<$> createColumn,+            ("DatetimeOptions" Data..=)+              Prelude.<$> datetimeOptions,+            ("Filter" Data..=) Prelude.<$> filter',+            Prelude.Just ("Name" Data..= name),+            Prelude.Just ("Type" Data..= type')+          ]+      )
+ gen/Amazonka/DataBrew/Types/DatetimeOptions.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.DatetimeOptions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.DatetimeOptions 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++-- | Represents additional options for correct interpretation of datetime+-- parameters used in the Amazon S3 path of a dataset.+--+-- /See:/ 'newDatetimeOptions' smart constructor.+data DatetimeOptions = DatetimeOptions'+  { -- | Optional value for a non-US locale code, needed for correct+    -- interpretation of some date formats.+    localeCode :: Prelude.Maybe Prelude.Text,+    -- | Optional value for a timezone offset of the datetime parameter value in+    -- the Amazon S3 path. Shouldn\'t be used if Format for this parameter+    -- includes timezone fields. If no offset specified, UTC is assumed.+    timezoneOffset :: Prelude.Maybe Prelude.Text,+    -- | Required option, that defines the datetime format used for a date+    -- parameter in the Amazon S3 path. Should use only supported datetime+    -- specifiers and separation characters, all literal a-z or A-Z characters+    -- should be escaped with single quotes. E.g. \"MM.dd.yyyy-\'at\'-HH:mm\".+    format :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DatetimeOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'localeCode', 'datetimeOptions_localeCode' - Optional value for a non-US locale code, needed for correct+-- interpretation of some date formats.+--+-- 'timezoneOffset', 'datetimeOptions_timezoneOffset' - Optional value for a timezone offset of the datetime parameter value in+-- the Amazon S3 path. Shouldn\'t be used if Format for this parameter+-- includes timezone fields. If no offset specified, UTC is assumed.+--+-- 'format', 'datetimeOptions_format' - Required option, that defines the datetime format used for a date+-- parameter in the Amazon S3 path. Should use only supported datetime+-- specifiers and separation characters, all literal a-z or A-Z characters+-- should be escaped with single quotes. E.g. \"MM.dd.yyyy-\'at\'-HH:mm\".+newDatetimeOptions ::+  -- | 'format'+  Prelude.Text ->+  DatetimeOptions+newDatetimeOptions pFormat_ =+  DatetimeOptions'+    { localeCode = Prelude.Nothing,+      timezoneOffset = Prelude.Nothing,+      format = pFormat_+    }++-- | Optional value for a non-US locale code, needed for correct+-- interpretation of some date formats.+datetimeOptions_localeCode :: Lens.Lens' DatetimeOptions (Prelude.Maybe Prelude.Text)+datetimeOptions_localeCode = Lens.lens (\DatetimeOptions' {localeCode} -> localeCode) (\s@DatetimeOptions' {} a -> s {localeCode = a} :: DatetimeOptions)++-- | Optional value for a timezone offset of the datetime parameter value in+-- the Amazon S3 path. Shouldn\'t be used if Format for this parameter+-- includes timezone fields. If no offset specified, UTC is assumed.+datetimeOptions_timezoneOffset :: Lens.Lens' DatetimeOptions (Prelude.Maybe Prelude.Text)+datetimeOptions_timezoneOffset = Lens.lens (\DatetimeOptions' {timezoneOffset} -> timezoneOffset) (\s@DatetimeOptions' {} a -> s {timezoneOffset = a} :: DatetimeOptions)++-- | Required option, that defines the datetime format used for a date+-- parameter in the Amazon S3 path. Should use only supported datetime+-- specifiers and separation characters, all literal a-z or A-Z characters+-- should be escaped with single quotes. E.g. \"MM.dd.yyyy-\'at\'-HH:mm\".+datetimeOptions_format :: Lens.Lens' DatetimeOptions Prelude.Text+datetimeOptions_format = Lens.lens (\DatetimeOptions' {format} -> format) (\s@DatetimeOptions' {} a -> s {format = a} :: DatetimeOptions)++instance Data.FromJSON DatetimeOptions where+  parseJSON =+    Data.withObject+      "DatetimeOptions"+      ( \x ->+          DatetimeOptions'+            Prelude.<$> (x Data..:? "LocaleCode")+            Prelude.<*> (x Data..:? "TimezoneOffset")+            Prelude.<*> (x Data..: "Format")+      )++instance Prelude.Hashable DatetimeOptions where+  hashWithSalt _salt DatetimeOptions' {..} =+    _salt+      `Prelude.hashWithSalt` localeCode+      `Prelude.hashWithSalt` timezoneOffset+      `Prelude.hashWithSalt` format++instance Prelude.NFData DatetimeOptions where+  rnf DatetimeOptions' {..} =+    Prelude.rnf localeCode+      `Prelude.seq` Prelude.rnf timezoneOffset+      `Prelude.seq` Prelude.rnf format++instance Data.ToJSON DatetimeOptions where+  toJSON DatetimeOptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("LocaleCode" Data..=) Prelude.<$> localeCode,+            ("TimezoneOffset" Data..=)+              Prelude.<$> timezoneOffset,+            Prelude.Just ("Format" Data..= format)+          ]+      )
+ gen/Amazonka/DataBrew/Types/EncryptionMode.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.DataBrew.Types.EncryptionMode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.EncryptionMode+  ( EncryptionMode+      ( ..,+        EncryptionMode_SSE_KMS,+        EncryptionMode_SSE_S3+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EncryptionMode = EncryptionMode'+  { fromEncryptionMode ::+      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 EncryptionMode_SSE_KMS :: EncryptionMode+pattern EncryptionMode_SSE_KMS = EncryptionMode' "SSE-KMS"++pattern EncryptionMode_SSE_S3 :: EncryptionMode+pattern EncryptionMode_SSE_S3 = EncryptionMode' "SSE-S3"++{-# COMPLETE+  EncryptionMode_SSE_KMS,+  EncryptionMode_SSE_S3,+  EncryptionMode'+  #-}
+ gen/Amazonka/DataBrew/Types/EntityDetectorConfiguration.hs view
@@ -0,0 +1,229 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.EntityDetectorConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.EntityDetectorConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.AllowedStatistics+import qualified Amazonka.Prelude as Prelude++-- | Configuration of entity detection for a profile job. When undefined,+-- entity detection is disabled.+--+-- /See:/ 'newEntityDetectorConfiguration' smart constructor.+data EntityDetectorConfiguration = EntityDetectorConfiguration'+  { -- | Configuration of statistics that are allowed to be run on columns that+    -- contain detected entities. When undefined, no statistics will be+    -- computed on columns that contain detected entities.+    allowedStatistics :: Prelude.Maybe (Prelude.NonEmpty AllowedStatistics),+    -- | Entity types to detect. Can be any of the following:+    --+    -- -   USA_SSN+    --+    -- -   EMAIL+    --+    -- -   USA_ITIN+    --+    -- -   USA_PASSPORT_NUMBER+    --+    -- -   PHONE_NUMBER+    --+    -- -   USA_DRIVING_LICENSE+    --+    -- -   BANK_ACCOUNT+    --+    -- -   CREDIT_CARD+    --+    -- -   IP_ADDRESS+    --+    -- -   MAC_ADDRESS+    --+    -- -   USA_DEA_NUMBER+    --+    -- -   USA_HCPCS_CODE+    --+    -- -   USA_NATIONAL_PROVIDER_IDENTIFIER+    --+    -- -   USA_NATIONAL_DRUG_CODE+    --+    -- -   USA_HEALTH_INSURANCE_CLAIM_NUMBER+    --+    -- -   USA_MEDICARE_BENEFICIARY_IDENTIFIER+    --+    -- -   USA_CPT_CODE+    --+    -- -   PERSON_NAME+    --+    -- -   DATE+    --+    -- The Entity type group USA_ALL is also supported, and includes all of the+    -- above entity types except PERSON_NAME and DATE.+    entityTypes :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EntityDetectorConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowedStatistics', 'entityDetectorConfiguration_allowedStatistics' - Configuration of statistics that are allowed to be run on columns that+-- contain detected entities. When undefined, no statistics will be+-- computed on columns that contain detected entities.+--+-- 'entityTypes', 'entityDetectorConfiguration_entityTypes' - Entity types to detect. Can be any of the following:+--+-- -   USA_SSN+--+-- -   EMAIL+--+-- -   USA_ITIN+--+-- -   USA_PASSPORT_NUMBER+--+-- -   PHONE_NUMBER+--+-- -   USA_DRIVING_LICENSE+--+-- -   BANK_ACCOUNT+--+-- -   CREDIT_CARD+--+-- -   IP_ADDRESS+--+-- -   MAC_ADDRESS+--+-- -   USA_DEA_NUMBER+--+-- -   USA_HCPCS_CODE+--+-- -   USA_NATIONAL_PROVIDER_IDENTIFIER+--+-- -   USA_NATIONAL_DRUG_CODE+--+-- -   USA_HEALTH_INSURANCE_CLAIM_NUMBER+--+-- -   USA_MEDICARE_BENEFICIARY_IDENTIFIER+--+-- -   USA_CPT_CODE+--+-- -   PERSON_NAME+--+-- -   DATE+--+-- The Entity type group USA_ALL is also supported, and includes all of the+-- above entity types except PERSON_NAME and DATE.+newEntityDetectorConfiguration ::+  -- | 'entityTypes'+  Prelude.NonEmpty Prelude.Text ->+  EntityDetectorConfiguration+newEntityDetectorConfiguration pEntityTypes_ =+  EntityDetectorConfiguration'+    { allowedStatistics =+        Prelude.Nothing,+      entityTypes =+        Lens.coerced Lens.# pEntityTypes_+    }++-- | Configuration of statistics that are allowed to be run on columns that+-- contain detected entities. When undefined, no statistics will be+-- computed on columns that contain detected entities.+entityDetectorConfiguration_allowedStatistics :: Lens.Lens' EntityDetectorConfiguration (Prelude.Maybe (Prelude.NonEmpty AllowedStatistics))+entityDetectorConfiguration_allowedStatistics = Lens.lens (\EntityDetectorConfiguration' {allowedStatistics} -> allowedStatistics) (\s@EntityDetectorConfiguration' {} a -> s {allowedStatistics = a} :: EntityDetectorConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Entity types to detect. Can be any of the following:+--+-- -   USA_SSN+--+-- -   EMAIL+--+-- -   USA_ITIN+--+-- -   USA_PASSPORT_NUMBER+--+-- -   PHONE_NUMBER+--+-- -   USA_DRIVING_LICENSE+--+-- -   BANK_ACCOUNT+--+-- -   CREDIT_CARD+--+-- -   IP_ADDRESS+--+-- -   MAC_ADDRESS+--+-- -   USA_DEA_NUMBER+--+-- -   USA_HCPCS_CODE+--+-- -   USA_NATIONAL_PROVIDER_IDENTIFIER+--+-- -   USA_NATIONAL_DRUG_CODE+--+-- -   USA_HEALTH_INSURANCE_CLAIM_NUMBER+--+-- -   USA_MEDICARE_BENEFICIARY_IDENTIFIER+--+-- -   USA_CPT_CODE+--+-- -   PERSON_NAME+--+-- -   DATE+--+-- The Entity type group USA_ALL is also supported, and includes all of the+-- above entity types except PERSON_NAME and DATE.+entityDetectorConfiguration_entityTypes :: Lens.Lens' EntityDetectorConfiguration (Prelude.NonEmpty Prelude.Text)+entityDetectorConfiguration_entityTypes = Lens.lens (\EntityDetectorConfiguration' {entityTypes} -> entityTypes) (\s@EntityDetectorConfiguration' {} a -> s {entityTypes = a} :: EntityDetectorConfiguration) Prelude.. Lens.coerced++instance Data.FromJSON EntityDetectorConfiguration where+  parseJSON =+    Data.withObject+      "EntityDetectorConfiguration"+      ( \x ->+          EntityDetectorConfiguration'+            Prelude.<$> (x Data..:? "AllowedStatistics")+            Prelude.<*> (x Data..: "EntityTypes")+      )++instance Prelude.Hashable EntityDetectorConfiguration where+  hashWithSalt _salt EntityDetectorConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` allowedStatistics+      `Prelude.hashWithSalt` entityTypes++instance Prelude.NFData EntityDetectorConfiguration where+  rnf EntityDetectorConfiguration' {..} =+    Prelude.rnf allowedStatistics+      `Prelude.seq` Prelude.rnf entityTypes++instance Data.ToJSON EntityDetectorConfiguration where+  toJSON EntityDetectorConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AllowedStatistics" Data..=)+              Prelude.<$> allowedStatistics,+            Prelude.Just ("EntityTypes" Data..= entityTypes)+          ]+      )
+ gen/Amazonka/DataBrew/Types/ExcelOptions.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.DataBrew.Types.ExcelOptions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.ExcelOptions 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++-- | Represents a set of options that define how DataBrew will interpret a+-- Microsoft Excel file when creating a dataset from that file.+--+-- /See:/ 'newExcelOptions' smart constructor.+data ExcelOptions = ExcelOptions'+  { -- | A variable that specifies whether the first row in the file is parsed as+    -- the header. If this value is false, column names are auto-generated.+    headerRow :: Prelude.Maybe Prelude.Bool,+    -- | One or more sheet numbers in the Excel file that will be included in the+    -- dataset.+    sheetIndexes :: Prelude.Maybe (Prelude.NonEmpty Prelude.Natural),+    -- | One or more named sheets in the Excel file that will be included in the+    -- dataset.+    sheetNames :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExcelOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'headerRow', 'excelOptions_headerRow' - A variable that specifies whether the first row in the file is parsed as+-- the header. If this value is false, column names are auto-generated.+--+-- 'sheetIndexes', 'excelOptions_sheetIndexes' - One or more sheet numbers in the Excel file that will be included in the+-- dataset.+--+-- 'sheetNames', 'excelOptions_sheetNames' - One or more named sheets in the Excel file that will be included in the+-- dataset.+newExcelOptions ::+  ExcelOptions+newExcelOptions =+  ExcelOptions'+    { headerRow = Prelude.Nothing,+      sheetIndexes = Prelude.Nothing,+      sheetNames = Prelude.Nothing+    }++-- | A variable that specifies whether the first row in the file is parsed as+-- the header. If this value is false, column names are auto-generated.+excelOptions_headerRow :: Lens.Lens' ExcelOptions (Prelude.Maybe Prelude.Bool)+excelOptions_headerRow = Lens.lens (\ExcelOptions' {headerRow} -> headerRow) (\s@ExcelOptions' {} a -> s {headerRow = a} :: ExcelOptions)++-- | One or more sheet numbers in the Excel file that will be included in the+-- dataset.+excelOptions_sheetIndexes :: Lens.Lens' ExcelOptions (Prelude.Maybe (Prelude.NonEmpty Prelude.Natural))+excelOptions_sheetIndexes = Lens.lens (\ExcelOptions' {sheetIndexes} -> sheetIndexes) (\s@ExcelOptions' {} a -> s {sheetIndexes = a} :: ExcelOptions) Prelude.. Lens.mapping Lens.coerced++-- | One or more named sheets in the Excel file that will be included in the+-- dataset.+excelOptions_sheetNames :: Lens.Lens' ExcelOptions (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+excelOptions_sheetNames = Lens.lens (\ExcelOptions' {sheetNames} -> sheetNames) (\s@ExcelOptions' {} a -> s {sheetNames = a} :: ExcelOptions) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ExcelOptions where+  parseJSON =+    Data.withObject+      "ExcelOptions"+      ( \x ->+          ExcelOptions'+            Prelude.<$> (x Data..:? "HeaderRow")+            Prelude.<*> (x Data..:? "SheetIndexes")+            Prelude.<*> (x Data..:? "SheetNames")+      )++instance Prelude.Hashable ExcelOptions where+  hashWithSalt _salt ExcelOptions' {..} =+    _salt+      `Prelude.hashWithSalt` headerRow+      `Prelude.hashWithSalt` sheetIndexes+      `Prelude.hashWithSalt` sheetNames++instance Prelude.NFData ExcelOptions where+  rnf ExcelOptions' {..} =+    Prelude.rnf headerRow+      `Prelude.seq` Prelude.rnf sheetIndexes+      `Prelude.seq` Prelude.rnf sheetNames++instance Data.ToJSON ExcelOptions where+  toJSON ExcelOptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("HeaderRow" Data..=) Prelude.<$> headerRow,+            ("SheetIndexes" Data..=) Prelude.<$> sheetIndexes,+            ("SheetNames" Data..=) Prelude.<$> sheetNames+          ]+      )
+ gen/Amazonka/DataBrew/Types/FilesLimit.hs view
@@ -0,0 +1,123 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.FilesLimit+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.FilesLimit where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.Order+import Amazonka.DataBrew.Types.OrderedBy+import qualified Amazonka.Prelude as Prelude++-- | Represents a limit imposed on number of Amazon S3 files that should be+-- selected for a dataset from a connected Amazon S3 path.+--+-- /See:/ 'newFilesLimit' smart constructor.+data FilesLimit = FilesLimit'+  { -- | A criteria to use for Amazon S3 files sorting before their selection. By+    -- default uses DESCENDING order, i.e. most recent files are selected+    -- first. Another possible value is ASCENDING.+    order :: Prelude.Maybe Order,+    -- | A criteria to use for Amazon S3 files sorting before their selection. By+    -- default uses LAST_MODIFIED_DATE as a sorting criteria. Currently it\'s+    -- the only allowed value.+    orderedBy :: Prelude.Maybe OrderedBy,+    -- | The number of Amazon S3 files to select.+    maxFiles :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FilesLimit' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'order', 'filesLimit_order' - A criteria to use for Amazon S3 files sorting before their selection. By+-- default uses DESCENDING order, i.e. most recent files are selected+-- first. Another possible value is ASCENDING.+--+-- 'orderedBy', 'filesLimit_orderedBy' - A criteria to use for Amazon S3 files sorting before their selection. By+-- default uses LAST_MODIFIED_DATE as a sorting criteria. Currently it\'s+-- the only allowed value.+--+-- 'maxFiles', 'filesLimit_maxFiles' - The number of Amazon S3 files to select.+newFilesLimit ::+  -- | 'maxFiles'+  Prelude.Natural ->+  FilesLimit+newFilesLimit pMaxFiles_ =+  FilesLimit'+    { order = Prelude.Nothing,+      orderedBy = Prelude.Nothing,+      maxFiles = pMaxFiles_+    }++-- | A criteria to use for Amazon S3 files sorting before their selection. By+-- default uses DESCENDING order, i.e. most recent files are selected+-- first. Another possible value is ASCENDING.+filesLimit_order :: Lens.Lens' FilesLimit (Prelude.Maybe Order)+filesLimit_order = Lens.lens (\FilesLimit' {order} -> order) (\s@FilesLimit' {} a -> s {order = a} :: FilesLimit)++-- | A criteria to use for Amazon S3 files sorting before their selection. By+-- default uses LAST_MODIFIED_DATE as a sorting criteria. Currently it\'s+-- the only allowed value.+filesLimit_orderedBy :: Lens.Lens' FilesLimit (Prelude.Maybe OrderedBy)+filesLimit_orderedBy = Lens.lens (\FilesLimit' {orderedBy} -> orderedBy) (\s@FilesLimit' {} a -> s {orderedBy = a} :: FilesLimit)++-- | The number of Amazon S3 files to select.+filesLimit_maxFiles :: Lens.Lens' FilesLimit Prelude.Natural+filesLimit_maxFiles = Lens.lens (\FilesLimit' {maxFiles} -> maxFiles) (\s@FilesLimit' {} a -> s {maxFiles = a} :: FilesLimit)++instance Data.FromJSON FilesLimit where+  parseJSON =+    Data.withObject+      "FilesLimit"+      ( \x ->+          FilesLimit'+            Prelude.<$> (x Data..:? "Order")+            Prelude.<*> (x Data..:? "OrderedBy")+            Prelude.<*> (x Data..: "MaxFiles")+      )++instance Prelude.Hashable FilesLimit where+  hashWithSalt _salt FilesLimit' {..} =+    _salt+      `Prelude.hashWithSalt` order+      `Prelude.hashWithSalt` orderedBy+      `Prelude.hashWithSalt` maxFiles++instance Prelude.NFData FilesLimit where+  rnf FilesLimit' {..} =+    Prelude.rnf order+      `Prelude.seq` Prelude.rnf orderedBy+      `Prelude.seq` Prelude.rnf maxFiles++instance Data.ToJSON FilesLimit where+  toJSON FilesLimit' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Order" Data..=) Prelude.<$> order,+            ("OrderedBy" Data..=) Prelude.<$> orderedBy,+            Prelude.Just ("MaxFiles" Data..= maxFiles)+          ]+      )
+ gen/Amazonka/DataBrew/Types/FilterExpression.hs view
@@ -0,0 +1,113 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.FilterExpression+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.FilterExpression 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++-- | Represents a structure for defining parameter conditions. Supported+-- conditions are described here:+-- <https://docs.aws.amazon.com/databrew/latest/dg/datasets.multiple-files.html#conditions.for.dynamic.datasets Supported conditions for dynamic datasets>+-- in the /Glue DataBrew Developer Guide/.+--+-- /See:/ 'newFilterExpression' smart constructor.+data FilterExpression = FilterExpression'+  { -- | The expression which includes condition names followed by substitution+    -- variables, possibly grouped and combined with other conditions. For+    -- example, \"(starts_with :prefix1 or starts_with :prefix2) and (ends_with+    -- :suffix1 or ends_with :suffix2)\". Substitution variables should start+    -- with \':\' symbol.+    expression :: Prelude.Text,+    -- | The map of substitution variable names to their values used in this+    -- filter expression.+    valuesMap :: Prelude.HashMap Prelude.Text Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FilterExpression' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'expression', 'filterExpression_expression' - The expression which includes condition names followed by substitution+-- variables, possibly grouped and combined with other conditions. For+-- example, \"(starts_with :prefix1 or starts_with :prefix2) and (ends_with+-- :suffix1 or ends_with :suffix2)\". Substitution variables should start+-- with \':\' symbol.+--+-- 'valuesMap', 'filterExpression_valuesMap' - The map of substitution variable names to their values used in this+-- filter expression.+newFilterExpression ::+  -- | 'expression'+  Prelude.Text ->+  FilterExpression+newFilterExpression pExpression_ =+  FilterExpression'+    { expression = pExpression_,+      valuesMap = Prelude.mempty+    }++-- | The expression which includes condition names followed by substitution+-- variables, possibly grouped and combined with other conditions. For+-- example, \"(starts_with :prefix1 or starts_with :prefix2) and (ends_with+-- :suffix1 or ends_with :suffix2)\". Substitution variables should start+-- with \':\' symbol.+filterExpression_expression :: Lens.Lens' FilterExpression Prelude.Text+filterExpression_expression = Lens.lens (\FilterExpression' {expression} -> expression) (\s@FilterExpression' {} a -> s {expression = a} :: FilterExpression)++-- | The map of substitution variable names to their values used in this+-- filter expression.+filterExpression_valuesMap :: Lens.Lens' FilterExpression (Prelude.HashMap Prelude.Text Prelude.Text)+filterExpression_valuesMap = Lens.lens (\FilterExpression' {valuesMap} -> valuesMap) (\s@FilterExpression' {} a -> s {valuesMap = a} :: FilterExpression) Prelude.. Lens.coerced++instance Data.FromJSON FilterExpression where+  parseJSON =+    Data.withObject+      "FilterExpression"+      ( \x ->+          FilterExpression'+            Prelude.<$> (x Data..: "Expression")+            Prelude.<*> (x Data..:? "ValuesMap" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable FilterExpression where+  hashWithSalt _salt FilterExpression' {..} =+    _salt+      `Prelude.hashWithSalt` expression+      `Prelude.hashWithSalt` valuesMap++instance Prelude.NFData FilterExpression where+  rnf FilterExpression' {..} =+    Prelude.rnf expression+      `Prelude.seq` Prelude.rnf valuesMap++instance Data.ToJSON FilterExpression where+  toJSON FilterExpression' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Expression" Data..= expression),+            Prelude.Just ("ValuesMap" Data..= valuesMap)+          ]+      )
+ gen/Amazonka/DataBrew/Types/FormatOptions.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.FormatOptions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.FormatOptions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.CsvOptions+import Amazonka.DataBrew.Types.ExcelOptions+import Amazonka.DataBrew.Types.JsonOptions+import qualified Amazonka.Prelude as Prelude++-- | Represents a set of options that define the structure of either+-- comma-separated value (CSV), Excel, or JSON input.+--+-- /See:/ 'newFormatOptions' smart constructor.+data FormatOptions = FormatOptions'+  { -- | Options that define how CSV input is to be interpreted by DataBrew.+    csv :: Prelude.Maybe CsvOptions,+    -- | Options that define how Excel input is to be interpreted by DataBrew.+    excel :: Prelude.Maybe ExcelOptions,+    -- | Options that define how JSON input is to be interpreted by DataBrew.+    json :: Prelude.Maybe JsonOptions+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FormatOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'csv', 'formatOptions_csv' - Options that define how CSV input is to be interpreted by DataBrew.+--+-- 'excel', 'formatOptions_excel' - Options that define how Excel input is to be interpreted by DataBrew.+--+-- 'json', 'formatOptions_json' - Options that define how JSON input is to be interpreted by DataBrew.+newFormatOptions ::+  FormatOptions+newFormatOptions =+  FormatOptions'+    { csv = Prelude.Nothing,+      excel = Prelude.Nothing,+      json = Prelude.Nothing+    }++-- | Options that define how CSV input is to be interpreted by DataBrew.+formatOptions_csv :: Lens.Lens' FormatOptions (Prelude.Maybe CsvOptions)+formatOptions_csv = Lens.lens (\FormatOptions' {csv} -> csv) (\s@FormatOptions' {} a -> s {csv = a} :: FormatOptions)++-- | Options that define how Excel input is to be interpreted by DataBrew.+formatOptions_excel :: Lens.Lens' FormatOptions (Prelude.Maybe ExcelOptions)+formatOptions_excel = Lens.lens (\FormatOptions' {excel} -> excel) (\s@FormatOptions' {} a -> s {excel = a} :: FormatOptions)++-- | Options that define how JSON input is to be interpreted by DataBrew.+formatOptions_json :: Lens.Lens' FormatOptions (Prelude.Maybe JsonOptions)+formatOptions_json = Lens.lens (\FormatOptions' {json} -> json) (\s@FormatOptions' {} a -> s {json = a} :: FormatOptions)++instance Data.FromJSON FormatOptions where+  parseJSON =+    Data.withObject+      "FormatOptions"+      ( \x ->+          FormatOptions'+            Prelude.<$> (x Data..:? "Csv")+            Prelude.<*> (x Data..:? "Excel")+            Prelude.<*> (x Data..:? "Json")+      )++instance Prelude.Hashable FormatOptions where+  hashWithSalt _salt FormatOptions' {..} =+    _salt+      `Prelude.hashWithSalt` csv+      `Prelude.hashWithSalt` excel+      `Prelude.hashWithSalt` json++instance Prelude.NFData FormatOptions where+  rnf FormatOptions' {..} =+    Prelude.rnf csv+      `Prelude.seq` Prelude.rnf excel+      `Prelude.seq` Prelude.rnf json++instance Data.ToJSON FormatOptions where+  toJSON FormatOptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Csv" Data..=) Prelude.<$> csv,+            ("Excel" Data..=) Prelude.<$> excel,+            ("Json" Data..=) Prelude.<$> json+          ]+      )
+ gen/Amazonka/DataBrew/Types/Input.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.Input+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.Input where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.DataCatalogInputDefinition+import Amazonka.DataBrew.Types.DatabaseInputDefinition+import Amazonka.DataBrew.Types.Metadata+import Amazonka.DataBrew.Types.S3Location+import qualified Amazonka.Prelude as Prelude++-- | Represents information on how DataBrew can find data, in either the Glue+-- Data Catalog or Amazon S3.+--+-- /See:/ 'newInput' smart constructor.+data Input = Input'+  { -- | The Glue Data Catalog parameters for the data.+    dataCatalogInputDefinition :: Prelude.Maybe DataCatalogInputDefinition,+    -- | Connection information for dataset input files stored in a database.+    databaseInputDefinition :: Prelude.Maybe DatabaseInputDefinition,+    -- | Contains additional resource information needed for specific datasets.+    metadata :: Prelude.Maybe Metadata,+    -- | The Amazon S3 location where the data is stored.+    s3InputDefinition :: Prelude.Maybe S3Location+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Input' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataCatalogInputDefinition', 'input_dataCatalogInputDefinition' - The Glue Data Catalog parameters for the data.+--+-- 'databaseInputDefinition', 'input_databaseInputDefinition' - Connection information for dataset input files stored in a database.+--+-- 'metadata', 'input_metadata' - Contains additional resource information needed for specific datasets.+--+-- 's3InputDefinition', 'input_s3InputDefinition' - The Amazon S3 location where the data is stored.+newInput ::+  Input+newInput =+  Input'+    { dataCatalogInputDefinition =+        Prelude.Nothing,+      databaseInputDefinition = Prelude.Nothing,+      metadata = Prelude.Nothing,+      s3InputDefinition = Prelude.Nothing+    }++-- | The Glue Data Catalog parameters for the data.+input_dataCatalogInputDefinition :: Lens.Lens' Input (Prelude.Maybe DataCatalogInputDefinition)+input_dataCatalogInputDefinition = Lens.lens (\Input' {dataCatalogInputDefinition} -> dataCatalogInputDefinition) (\s@Input' {} a -> s {dataCatalogInputDefinition = a} :: Input)++-- | Connection information for dataset input files stored in a database.+input_databaseInputDefinition :: Lens.Lens' Input (Prelude.Maybe DatabaseInputDefinition)+input_databaseInputDefinition = Lens.lens (\Input' {databaseInputDefinition} -> databaseInputDefinition) (\s@Input' {} a -> s {databaseInputDefinition = a} :: Input)++-- | Contains additional resource information needed for specific datasets.+input_metadata :: Lens.Lens' Input (Prelude.Maybe Metadata)+input_metadata = Lens.lens (\Input' {metadata} -> metadata) (\s@Input' {} a -> s {metadata = a} :: Input)++-- | The Amazon S3 location where the data is stored.+input_s3InputDefinition :: Lens.Lens' Input (Prelude.Maybe S3Location)+input_s3InputDefinition = Lens.lens (\Input' {s3InputDefinition} -> s3InputDefinition) (\s@Input' {} a -> s {s3InputDefinition = a} :: Input)++instance Data.FromJSON Input where+  parseJSON =+    Data.withObject+      "Input"+      ( \x ->+          Input'+            Prelude.<$> (x Data..:? "DataCatalogInputDefinition")+            Prelude.<*> (x Data..:? "DatabaseInputDefinition")+            Prelude.<*> (x Data..:? "Metadata")+            Prelude.<*> (x Data..:? "S3InputDefinition")+      )++instance Prelude.Hashable Input where+  hashWithSalt _salt Input' {..} =+    _salt+      `Prelude.hashWithSalt` dataCatalogInputDefinition+      `Prelude.hashWithSalt` databaseInputDefinition+      `Prelude.hashWithSalt` metadata+      `Prelude.hashWithSalt` s3InputDefinition++instance Prelude.NFData Input where+  rnf Input' {..} =+    Prelude.rnf dataCatalogInputDefinition+      `Prelude.seq` Prelude.rnf databaseInputDefinition+      `Prelude.seq` Prelude.rnf metadata+      `Prelude.seq` Prelude.rnf s3InputDefinition++instance Data.ToJSON Input where+  toJSON Input' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DataCatalogInputDefinition" Data..=)+              Prelude.<$> dataCatalogInputDefinition,+            ("DatabaseInputDefinition" Data..=)+              Prelude.<$> databaseInputDefinition,+            ("Metadata" Data..=) Prelude.<$> metadata,+            ("S3InputDefinition" Data..=)+              Prelude.<$> s3InputDefinition+          ]+      )
+ gen/Amazonka/DataBrew/Types/InputFormat.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.DataBrew.Types.InputFormat+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.InputFormat+  ( InputFormat+      ( ..,+        InputFormat_CSV,+        InputFormat_EXCEL,+        InputFormat_JSON,+        InputFormat_ORC,+        InputFormat_PARQUET+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype InputFormat = InputFormat'+  { fromInputFormat ::+      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 InputFormat_CSV :: InputFormat+pattern InputFormat_CSV = InputFormat' "CSV"++pattern InputFormat_EXCEL :: InputFormat+pattern InputFormat_EXCEL = InputFormat' "EXCEL"++pattern InputFormat_JSON :: InputFormat+pattern InputFormat_JSON = InputFormat' "JSON"++pattern InputFormat_ORC :: InputFormat+pattern InputFormat_ORC = InputFormat' "ORC"++pattern InputFormat_PARQUET :: InputFormat+pattern InputFormat_PARQUET = InputFormat' "PARQUET"++{-# COMPLETE+  InputFormat_CSV,+  InputFormat_EXCEL,+  InputFormat_JSON,+  InputFormat_ORC,+  InputFormat_PARQUET,+  InputFormat'+  #-}
+ gen/Amazonka/DataBrew/Types/Job.hs view
@@ -0,0 +1,414 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.Job+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.Job where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.DataCatalogOutput+import Amazonka.DataBrew.Types.DatabaseOutput+import Amazonka.DataBrew.Types.EncryptionMode+import Amazonka.DataBrew.Types.JobSample+import Amazonka.DataBrew.Types.JobType+import Amazonka.DataBrew.Types.LogSubscription+import Amazonka.DataBrew.Types.Output+import Amazonka.DataBrew.Types.RecipeReference+import Amazonka.DataBrew.Types.ValidationConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Represents all of the attributes of a DataBrew job.+--+-- /See:/ 'newJob' smart constructor.+data Job = Job'+  { -- | The ID of the Amazon Web Services account that owns the job.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the job was created.+    createDate :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the user who created the job.+    createdBy :: Prelude.Maybe Prelude.Text,+    -- | One or more artifacts that represent the Glue Data Catalog output from+    -- running the job.+    dataCatalogOutputs :: Prelude.Maybe (Prelude.NonEmpty DataCatalogOutput),+    -- | Represents a list of JDBC database output objects which defines the+    -- output destination for a DataBrew recipe job to write into.+    databaseOutputs :: Prelude.Maybe (Prelude.NonEmpty DatabaseOutput),+    -- | A dataset that the job is to process.+    datasetName :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of an encryption key that is used to+    -- protect the job output. For more information, see+    -- <https://docs.aws.amazon.com/databrew/latest/dg/encryption-security-configuration.html Encrypting data written by DataBrew jobs>+    encryptionKeyArn :: Prelude.Maybe Prelude.Text,+    -- | The encryption mode for the job, which can be one of the following:+    --+    -- -   @SSE-KMS@ - Server-side encryption with keys managed by KMS.+    --+    -- -   @SSE-S3@ - Server-side encryption with keys managed by Amazon S3.+    encryptionMode :: Prelude.Maybe EncryptionMode,+    -- | A sample configuration for profile jobs only, which determines the+    -- number of rows on which the profile job is run. If a @JobSample@ value+    -- isn\'t provided, the default value is used. The default value is+    -- CUSTOM_ROWS for the mode parameter and 20,000 for the size parameter.+    jobSample :: Prelude.Maybe JobSample,+    -- | The Amazon Resource Name (ARN) of the user who last modified the job.+    lastModifiedBy :: Prelude.Maybe Prelude.Text,+    -- | The modification date and time of the job.+    lastModifiedDate :: Prelude.Maybe Data.POSIX,+    -- | The current status of Amazon CloudWatch logging for the job.+    logSubscription :: Prelude.Maybe LogSubscription,+    -- | The maximum number of nodes that can be consumed when the job processes+    -- data.+    maxCapacity :: Prelude.Maybe Prelude.Int,+    -- | The maximum number of times to retry the job after a job run fails.+    maxRetries :: Prelude.Maybe Prelude.Natural,+    -- | One or more artifacts that represent output from running the job.+    outputs :: Prelude.Maybe (Prelude.NonEmpty Output),+    -- | The name of the project that the job is associated with.+    projectName :: Prelude.Maybe Prelude.Text,+    -- | A set of steps that the job runs.+    recipeReference :: Prelude.Maybe RecipeReference,+    -- | The unique Amazon Resource Name (ARN) for the job.+    resourceArn :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the role to be assumed for this job.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | Metadata tags that have been applied to the job.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The job\'s timeout in minutes. A job that attempts to run longer than+    -- this timeout period ends with a status of @TIMEOUT@.+    timeout :: Prelude.Maybe Prelude.Natural,+    -- | The job type of the job, which must be one of the following:+    --+    -- -   @PROFILE@ - A job to analyze a dataset, to determine its size, data+    --     types, data distribution, and more.+    --+    -- -   @RECIPE@ - A job to apply one or more transformations to a dataset.+    type' :: Prelude.Maybe JobType,+    -- | List of validation configurations that are applied to the profile job.+    validationConfigurations :: Prelude.Maybe (Prelude.NonEmpty ValidationConfiguration),+    -- | The unique name of the job.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Job' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'job_accountId' - The ID of the Amazon Web Services account that owns the job.+--+-- 'createDate', 'job_createDate' - The date and time that the job was created.+--+-- 'createdBy', 'job_createdBy' - The Amazon Resource Name (ARN) of the user who created the job.+--+-- 'dataCatalogOutputs', 'job_dataCatalogOutputs' - One or more artifacts that represent the Glue Data Catalog output from+-- running the job.+--+-- 'databaseOutputs', 'job_databaseOutputs' - Represents a list of JDBC database output objects which defines the+-- output destination for a DataBrew recipe job to write into.+--+-- 'datasetName', 'job_datasetName' - A dataset that the job is to process.+--+-- 'encryptionKeyArn', 'job_encryptionKeyArn' - The Amazon Resource Name (ARN) of an encryption key that is used to+-- protect the job output. For more information, see+-- <https://docs.aws.amazon.com/databrew/latest/dg/encryption-security-configuration.html Encrypting data written by DataBrew jobs>+--+-- 'encryptionMode', 'job_encryptionMode' - The encryption mode for the job, which can be one of the following:+--+-- -   @SSE-KMS@ - Server-side encryption with keys managed by KMS.+--+-- -   @SSE-S3@ - Server-side encryption with keys managed by Amazon S3.+--+-- 'jobSample', 'job_jobSample' - A sample configuration for profile jobs only, which determines the+-- number of rows on which the profile job is run. If a @JobSample@ value+-- isn\'t provided, the default value is used. The default value is+-- CUSTOM_ROWS for the mode parameter and 20,000 for the size parameter.+--+-- 'lastModifiedBy', 'job_lastModifiedBy' - The Amazon Resource Name (ARN) of the user who last modified the job.+--+-- 'lastModifiedDate', 'job_lastModifiedDate' - The modification date and time of the job.+--+-- 'logSubscription', 'job_logSubscription' - The current status of Amazon CloudWatch logging for the job.+--+-- 'maxCapacity', 'job_maxCapacity' - The maximum number of nodes that can be consumed when the job processes+-- data.+--+-- 'maxRetries', 'job_maxRetries' - The maximum number of times to retry the job after a job run fails.+--+-- 'outputs', 'job_outputs' - One or more artifacts that represent output from running the job.+--+-- 'projectName', 'job_projectName' - The name of the project that the job is associated with.+--+-- 'recipeReference', 'job_recipeReference' - A set of steps that the job runs.+--+-- 'resourceArn', 'job_resourceArn' - The unique Amazon Resource Name (ARN) for the job.+--+-- 'roleArn', 'job_roleArn' - The Amazon Resource Name (ARN) of the role to be assumed for this job.+--+-- 'tags', 'job_tags' - Metadata tags that have been applied to the job.+--+-- 'timeout', 'job_timeout' - The job\'s timeout in minutes. A job that attempts to run longer than+-- this timeout period ends with a status of @TIMEOUT@.+--+-- 'type'', 'job_type' - The job type of the job, which must be one of the following:+--+-- -   @PROFILE@ - A job to analyze a dataset, to determine its size, data+--     types, data distribution, and more.+--+-- -   @RECIPE@ - A job to apply one or more transformations to a dataset.+--+-- 'validationConfigurations', 'job_validationConfigurations' - List of validation configurations that are applied to the profile job.+--+-- 'name', 'job_name' - The unique name of the job.+newJob ::+  -- | 'name'+  Prelude.Text ->+  Job+newJob pName_ =+  Job'+    { accountId = Prelude.Nothing,+      createDate = Prelude.Nothing,+      createdBy = Prelude.Nothing,+      dataCatalogOutputs = Prelude.Nothing,+      databaseOutputs = Prelude.Nothing,+      datasetName = Prelude.Nothing,+      encryptionKeyArn = Prelude.Nothing,+      encryptionMode = Prelude.Nothing,+      jobSample = Prelude.Nothing,+      lastModifiedBy = Prelude.Nothing,+      lastModifiedDate = Prelude.Nothing,+      logSubscription = Prelude.Nothing,+      maxCapacity = Prelude.Nothing,+      maxRetries = Prelude.Nothing,+      outputs = Prelude.Nothing,+      projectName = Prelude.Nothing,+      recipeReference = Prelude.Nothing,+      resourceArn = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      tags = Prelude.Nothing,+      timeout = Prelude.Nothing,+      type' = Prelude.Nothing,+      validationConfigurations = Prelude.Nothing,+      name = pName_+    }++-- | The ID of the Amazon Web Services account that owns the job.+job_accountId :: Lens.Lens' Job (Prelude.Maybe Prelude.Text)+job_accountId = Lens.lens (\Job' {accountId} -> accountId) (\s@Job' {} a -> s {accountId = a} :: Job)++-- | The date and time that the job was created.+job_createDate :: Lens.Lens' Job (Prelude.Maybe Prelude.UTCTime)+job_createDate = Lens.lens (\Job' {createDate} -> createDate) (\s@Job' {} a -> s {createDate = a} :: Job) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the user who created the job.+job_createdBy :: Lens.Lens' Job (Prelude.Maybe Prelude.Text)+job_createdBy = Lens.lens (\Job' {createdBy} -> createdBy) (\s@Job' {} a -> s {createdBy = a} :: Job)++-- | One or more artifacts that represent the Glue Data Catalog output from+-- running the job.+job_dataCatalogOutputs :: Lens.Lens' Job (Prelude.Maybe (Prelude.NonEmpty DataCatalogOutput))+job_dataCatalogOutputs = Lens.lens (\Job' {dataCatalogOutputs} -> dataCatalogOutputs) (\s@Job' {} a -> s {dataCatalogOutputs = a} :: Job) Prelude.. Lens.mapping Lens.coerced++-- | Represents a list of JDBC database output objects which defines the+-- output destination for a DataBrew recipe job to write into.+job_databaseOutputs :: Lens.Lens' Job (Prelude.Maybe (Prelude.NonEmpty DatabaseOutput))+job_databaseOutputs = Lens.lens (\Job' {databaseOutputs} -> databaseOutputs) (\s@Job' {} a -> s {databaseOutputs = a} :: Job) Prelude.. Lens.mapping Lens.coerced++-- | A dataset that the job is to process.+job_datasetName :: Lens.Lens' Job (Prelude.Maybe Prelude.Text)+job_datasetName = Lens.lens (\Job' {datasetName} -> datasetName) (\s@Job' {} a -> s {datasetName = a} :: Job)++-- | The Amazon Resource Name (ARN) of an encryption key that is used to+-- protect the job output. For more information, see+-- <https://docs.aws.amazon.com/databrew/latest/dg/encryption-security-configuration.html Encrypting data written by DataBrew jobs>+job_encryptionKeyArn :: Lens.Lens' Job (Prelude.Maybe Prelude.Text)+job_encryptionKeyArn = Lens.lens (\Job' {encryptionKeyArn} -> encryptionKeyArn) (\s@Job' {} a -> s {encryptionKeyArn = a} :: Job)++-- | The encryption mode for the job, which can be one of the following:+--+-- -   @SSE-KMS@ - Server-side encryption with keys managed by KMS.+--+-- -   @SSE-S3@ - Server-side encryption with keys managed by Amazon S3.+job_encryptionMode :: Lens.Lens' Job (Prelude.Maybe EncryptionMode)+job_encryptionMode = Lens.lens (\Job' {encryptionMode} -> encryptionMode) (\s@Job' {} a -> s {encryptionMode = a} :: Job)++-- | A sample configuration for profile jobs only, which determines the+-- number of rows on which the profile job is run. If a @JobSample@ value+-- isn\'t provided, the default value is used. The default value is+-- CUSTOM_ROWS for the mode parameter and 20,000 for the size parameter.+job_jobSample :: Lens.Lens' Job (Prelude.Maybe JobSample)+job_jobSample = Lens.lens (\Job' {jobSample} -> jobSample) (\s@Job' {} a -> s {jobSample = a} :: Job)++-- | The Amazon Resource Name (ARN) of the user who last modified the job.+job_lastModifiedBy :: Lens.Lens' Job (Prelude.Maybe Prelude.Text)+job_lastModifiedBy = Lens.lens (\Job' {lastModifiedBy} -> lastModifiedBy) (\s@Job' {} a -> s {lastModifiedBy = a} :: Job)++-- | The modification date and time of the job.+job_lastModifiedDate :: Lens.Lens' Job (Prelude.Maybe Prelude.UTCTime)+job_lastModifiedDate = Lens.lens (\Job' {lastModifiedDate} -> lastModifiedDate) (\s@Job' {} a -> s {lastModifiedDate = a} :: Job) Prelude.. Lens.mapping Data._Time++-- | The current status of Amazon CloudWatch logging for the job.+job_logSubscription :: Lens.Lens' Job (Prelude.Maybe LogSubscription)+job_logSubscription = Lens.lens (\Job' {logSubscription} -> logSubscription) (\s@Job' {} a -> s {logSubscription = a} :: Job)++-- | The maximum number of nodes that can be consumed when the job processes+-- data.+job_maxCapacity :: Lens.Lens' Job (Prelude.Maybe Prelude.Int)+job_maxCapacity = Lens.lens (\Job' {maxCapacity} -> maxCapacity) (\s@Job' {} a -> s {maxCapacity = a} :: Job)++-- | The maximum number of times to retry the job after a job run fails.+job_maxRetries :: Lens.Lens' Job (Prelude.Maybe Prelude.Natural)+job_maxRetries = Lens.lens (\Job' {maxRetries} -> maxRetries) (\s@Job' {} a -> s {maxRetries = a} :: Job)++-- | One or more artifacts that represent output from running the job.+job_outputs :: Lens.Lens' Job (Prelude.Maybe (Prelude.NonEmpty Output))+job_outputs = Lens.lens (\Job' {outputs} -> outputs) (\s@Job' {} a -> s {outputs = a} :: Job) Prelude.. Lens.mapping Lens.coerced++-- | The name of the project that the job is associated with.+job_projectName :: Lens.Lens' Job (Prelude.Maybe Prelude.Text)+job_projectName = Lens.lens (\Job' {projectName} -> projectName) (\s@Job' {} a -> s {projectName = a} :: Job)++-- | A set of steps that the job runs.+job_recipeReference :: Lens.Lens' Job (Prelude.Maybe RecipeReference)+job_recipeReference = Lens.lens (\Job' {recipeReference} -> recipeReference) (\s@Job' {} a -> s {recipeReference = a} :: Job)++-- | The unique Amazon Resource Name (ARN) for the job.+job_resourceArn :: Lens.Lens' Job (Prelude.Maybe Prelude.Text)+job_resourceArn = Lens.lens (\Job' {resourceArn} -> resourceArn) (\s@Job' {} a -> s {resourceArn = a} :: Job)++-- | The Amazon Resource Name (ARN) of the role to be assumed for this job.+job_roleArn :: Lens.Lens' Job (Prelude.Maybe Prelude.Text)+job_roleArn = Lens.lens (\Job' {roleArn} -> roleArn) (\s@Job' {} a -> s {roleArn = a} :: Job)++-- | Metadata tags that have been applied to the job.+job_tags :: Lens.Lens' Job (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+job_tags = Lens.lens (\Job' {tags} -> tags) (\s@Job' {} a -> s {tags = a} :: Job) Prelude.. Lens.mapping Lens.coerced++-- | The job\'s timeout in minutes. A job that attempts to run longer than+-- this timeout period ends with a status of @TIMEOUT@.+job_timeout :: Lens.Lens' Job (Prelude.Maybe Prelude.Natural)+job_timeout = Lens.lens (\Job' {timeout} -> timeout) (\s@Job' {} a -> s {timeout = a} :: Job)++-- | The job type of the job, which must be one of the following:+--+-- -   @PROFILE@ - A job to analyze a dataset, to determine its size, data+--     types, data distribution, and more.+--+-- -   @RECIPE@ - A job to apply one or more transformations to a dataset.+job_type :: Lens.Lens' Job (Prelude.Maybe JobType)+job_type = Lens.lens (\Job' {type'} -> type') (\s@Job' {} a -> s {type' = a} :: Job)++-- | List of validation configurations that are applied to the profile job.+job_validationConfigurations :: Lens.Lens' Job (Prelude.Maybe (Prelude.NonEmpty ValidationConfiguration))+job_validationConfigurations = Lens.lens (\Job' {validationConfigurations} -> validationConfigurations) (\s@Job' {} a -> s {validationConfigurations = a} :: Job) Prelude.. Lens.mapping Lens.coerced++-- | The unique name of the job.+job_name :: Lens.Lens' Job Prelude.Text+job_name = Lens.lens (\Job' {name} -> name) (\s@Job' {} a -> s {name = a} :: Job)++instance Data.FromJSON Job where+  parseJSON =+    Data.withObject+      "Job"+      ( \x ->+          Job'+            Prelude.<$> (x Data..:? "AccountId")+            Prelude.<*> (x Data..:? "CreateDate")+            Prelude.<*> (x Data..:? "CreatedBy")+            Prelude.<*> (x Data..:? "DataCatalogOutputs")+            Prelude.<*> (x Data..:? "DatabaseOutputs")+            Prelude.<*> (x Data..:? "DatasetName")+            Prelude.<*> (x Data..:? "EncryptionKeyArn")+            Prelude.<*> (x Data..:? "EncryptionMode")+            Prelude.<*> (x Data..:? "JobSample")+            Prelude.<*> (x Data..:? "LastModifiedBy")+            Prelude.<*> (x Data..:? "LastModifiedDate")+            Prelude.<*> (x Data..:? "LogSubscription")+            Prelude.<*> (x Data..:? "MaxCapacity")+            Prelude.<*> (x Data..:? "MaxRetries")+            Prelude.<*> (x Data..:? "Outputs")+            Prelude.<*> (x Data..:? "ProjectName")+            Prelude.<*> (x Data..:? "RecipeReference")+            Prelude.<*> (x Data..:? "ResourceArn")+            Prelude.<*> (x Data..:? "RoleArn")+            Prelude.<*> (x Data..:? "Tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Timeout")+            Prelude.<*> (x Data..:? "Type")+            Prelude.<*> (x Data..:? "ValidationConfigurations")+            Prelude.<*> (x Data..: "Name")+      )++instance Prelude.Hashable Job where+  hashWithSalt _salt Job' {..} =+    _salt+      `Prelude.hashWithSalt` accountId+      `Prelude.hashWithSalt` createDate+      `Prelude.hashWithSalt` createdBy+      `Prelude.hashWithSalt` dataCatalogOutputs+      `Prelude.hashWithSalt` databaseOutputs+      `Prelude.hashWithSalt` datasetName+      `Prelude.hashWithSalt` encryptionKeyArn+      `Prelude.hashWithSalt` encryptionMode+      `Prelude.hashWithSalt` jobSample+      `Prelude.hashWithSalt` lastModifiedBy+      `Prelude.hashWithSalt` lastModifiedDate+      `Prelude.hashWithSalt` logSubscription+      `Prelude.hashWithSalt` maxCapacity+      `Prelude.hashWithSalt` maxRetries+      `Prelude.hashWithSalt` outputs+      `Prelude.hashWithSalt` projectName+      `Prelude.hashWithSalt` recipeReference+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` timeout+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` validationConfigurations+      `Prelude.hashWithSalt` name++instance Prelude.NFData Job where+  rnf Job' {..} =+    Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf createDate+      `Prelude.seq` Prelude.rnf createdBy+      `Prelude.seq` Prelude.rnf dataCatalogOutputs+      `Prelude.seq` Prelude.rnf databaseOutputs+      `Prelude.seq` Prelude.rnf datasetName+      `Prelude.seq` Prelude.rnf encryptionKeyArn+      `Prelude.seq` Prelude.rnf encryptionMode+      `Prelude.seq` Prelude.rnf jobSample+      `Prelude.seq` Prelude.rnf lastModifiedBy+      `Prelude.seq` Prelude.rnf lastModifiedDate+      `Prelude.seq` Prelude.rnf logSubscription+      `Prelude.seq` Prelude.rnf maxCapacity+      `Prelude.seq` Prelude.rnf maxRetries+      `Prelude.seq` Prelude.rnf outputs+      `Prelude.seq` Prelude.rnf projectName+      `Prelude.seq` Prelude.rnf recipeReference+      `Prelude.seq` Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf timeout+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf+        validationConfigurations+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/Types/JobRun.hs view
@@ -0,0 +1,312 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.JobRun+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.JobRun where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.DataCatalogOutput+import Amazonka.DataBrew.Types.DatabaseOutput+import Amazonka.DataBrew.Types.JobRunState+import Amazonka.DataBrew.Types.JobSample+import Amazonka.DataBrew.Types.LogSubscription+import Amazonka.DataBrew.Types.Output+import Amazonka.DataBrew.Types.RecipeReference+import Amazonka.DataBrew.Types.ValidationConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Represents one run of a DataBrew job.+--+-- /See:/ 'newJobRun' smart constructor.+data JobRun = JobRun'+  { -- | The number of times that DataBrew has attempted to run the job.+    attempt :: Prelude.Maybe Prelude.Int,+    -- | The date and time when the job completed processing.+    completedOn :: Prelude.Maybe Data.POSIX,+    -- | One or more artifacts that represent the Glue Data Catalog output from+    -- running the job.+    dataCatalogOutputs :: Prelude.Maybe (Prelude.NonEmpty DataCatalogOutput),+    -- | Represents a list of JDBC database output objects which defines the+    -- output destination for a DataBrew recipe job to write into.+    databaseOutputs :: Prelude.Maybe (Prelude.NonEmpty DatabaseOutput),+    -- | The name of the dataset for the job to process.+    datasetName :: Prelude.Maybe Prelude.Text,+    -- | A message indicating an error (if any) that was encountered when the job+    -- ran.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | The amount of time, in seconds, during which a job run consumed+    -- resources.+    executionTime :: Prelude.Maybe Prelude.Int,+    -- | The name of the job being processed during this run.+    jobName :: Prelude.Maybe Prelude.Text,+    -- | A sample configuration for profile jobs only, which determines the+    -- number of rows on which the profile job is run. If a @JobSample@ value+    -- isn\'t provided, the default is used. The default value is CUSTOM_ROWS+    -- for the mode parameter and 20,000 for the size parameter.+    jobSample :: Prelude.Maybe JobSample,+    -- | The name of an Amazon CloudWatch log group, where the job writes+    -- diagnostic messages when it runs.+    logGroupName :: Prelude.Maybe Prelude.Text,+    -- | The current status of Amazon CloudWatch logging for the job run.+    logSubscription :: Prelude.Maybe LogSubscription,+    -- | One or more output artifacts from a job run.+    outputs :: Prelude.Maybe (Prelude.NonEmpty Output),+    -- | The set of steps processed by the job.+    recipeReference :: Prelude.Maybe RecipeReference,+    -- | The unique identifier of the job run.+    runId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the user who initiated the job run.+    startedBy :: Prelude.Maybe Prelude.Text,+    -- | The date and time when the job run began.+    startedOn :: Prelude.Maybe Data.POSIX,+    -- | The current state of the job run entity itself.+    state :: Prelude.Maybe JobRunState,+    -- | List of validation configurations that are applied to the profile job+    -- run.+    validationConfigurations :: Prelude.Maybe (Prelude.NonEmpty ValidationConfiguration)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'JobRun' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attempt', 'jobRun_attempt' - The number of times that DataBrew has attempted to run the job.+--+-- 'completedOn', 'jobRun_completedOn' - The date and time when the job completed processing.+--+-- 'dataCatalogOutputs', 'jobRun_dataCatalogOutputs' - One or more artifacts that represent the Glue Data Catalog output from+-- running the job.+--+-- 'databaseOutputs', 'jobRun_databaseOutputs' - Represents a list of JDBC database output objects which defines the+-- output destination for a DataBrew recipe job to write into.+--+-- 'datasetName', 'jobRun_datasetName' - The name of the dataset for the job to process.+--+-- 'errorMessage', 'jobRun_errorMessage' - A message indicating an error (if any) that was encountered when the job+-- ran.+--+-- 'executionTime', 'jobRun_executionTime' - The amount of time, in seconds, during which a job run consumed+-- resources.+--+-- 'jobName', 'jobRun_jobName' - The name of the job being processed during this run.+--+-- 'jobSample', 'jobRun_jobSample' - A sample configuration for profile jobs only, which determines the+-- number of rows on which the profile job is run. If a @JobSample@ value+-- isn\'t provided, the default is used. The default value is CUSTOM_ROWS+-- for the mode parameter and 20,000 for the size parameter.+--+-- 'logGroupName', 'jobRun_logGroupName' - The name of an Amazon CloudWatch log group, where the job writes+-- diagnostic messages when it runs.+--+-- 'logSubscription', 'jobRun_logSubscription' - The current status of Amazon CloudWatch logging for the job run.+--+-- 'outputs', 'jobRun_outputs' - One or more output artifacts from a job run.+--+-- 'recipeReference', 'jobRun_recipeReference' - The set of steps processed by the job.+--+-- 'runId', 'jobRun_runId' - The unique identifier of the job run.+--+-- 'startedBy', 'jobRun_startedBy' - The Amazon Resource Name (ARN) of the user who initiated the job run.+--+-- 'startedOn', 'jobRun_startedOn' - The date and time when the job run began.+--+-- 'state', 'jobRun_state' - The current state of the job run entity itself.+--+-- 'validationConfigurations', 'jobRun_validationConfigurations' - List of validation configurations that are applied to the profile job+-- run.+newJobRun ::+  JobRun+newJobRun =+  JobRun'+    { attempt = Prelude.Nothing,+      completedOn = Prelude.Nothing,+      dataCatalogOutputs = Prelude.Nothing,+      databaseOutputs = Prelude.Nothing,+      datasetName = Prelude.Nothing,+      errorMessage = Prelude.Nothing,+      executionTime = Prelude.Nothing,+      jobName = Prelude.Nothing,+      jobSample = Prelude.Nothing,+      logGroupName = Prelude.Nothing,+      logSubscription = Prelude.Nothing,+      outputs = Prelude.Nothing,+      recipeReference = Prelude.Nothing,+      runId = Prelude.Nothing,+      startedBy = Prelude.Nothing,+      startedOn = Prelude.Nothing,+      state = Prelude.Nothing,+      validationConfigurations = Prelude.Nothing+    }++-- | The number of times that DataBrew has attempted to run the job.+jobRun_attempt :: Lens.Lens' JobRun (Prelude.Maybe Prelude.Int)+jobRun_attempt = Lens.lens (\JobRun' {attempt} -> attempt) (\s@JobRun' {} a -> s {attempt = a} :: JobRun)++-- | The date and time when the job completed processing.+jobRun_completedOn :: Lens.Lens' JobRun (Prelude.Maybe Prelude.UTCTime)+jobRun_completedOn = Lens.lens (\JobRun' {completedOn} -> completedOn) (\s@JobRun' {} a -> s {completedOn = a} :: JobRun) Prelude.. Lens.mapping Data._Time++-- | One or more artifacts that represent the Glue Data Catalog output from+-- running the job.+jobRun_dataCatalogOutputs :: Lens.Lens' JobRun (Prelude.Maybe (Prelude.NonEmpty DataCatalogOutput))+jobRun_dataCatalogOutputs = Lens.lens (\JobRun' {dataCatalogOutputs} -> dataCatalogOutputs) (\s@JobRun' {} a -> s {dataCatalogOutputs = a} :: JobRun) Prelude.. Lens.mapping Lens.coerced++-- | Represents a list of JDBC database output objects which defines the+-- output destination for a DataBrew recipe job to write into.+jobRun_databaseOutputs :: Lens.Lens' JobRun (Prelude.Maybe (Prelude.NonEmpty DatabaseOutput))+jobRun_databaseOutputs = Lens.lens (\JobRun' {databaseOutputs} -> databaseOutputs) (\s@JobRun' {} a -> s {databaseOutputs = a} :: JobRun) Prelude.. Lens.mapping Lens.coerced++-- | The name of the dataset for the job to process.+jobRun_datasetName :: Lens.Lens' JobRun (Prelude.Maybe Prelude.Text)+jobRun_datasetName = Lens.lens (\JobRun' {datasetName} -> datasetName) (\s@JobRun' {} a -> s {datasetName = a} :: JobRun)++-- | A message indicating an error (if any) that was encountered when the job+-- ran.+jobRun_errorMessage :: Lens.Lens' JobRun (Prelude.Maybe Prelude.Text)+jobRun_errorMessage = Lens.lens (\JobRun' {errorMessage} -> errorMessage) (\s@JobRun' {} a -> s {errorMessage = a} :: JobRun)++-- | The amount of time, in seconds, during which a job run consumed+-- resources.+jobRun_executionTime :: Lens.Lens' JobRun (Prelude.Maybe Prelude.Int)+jobRun_executionTime = Lens.lens (\JobRun' {executionTime} -> executionTime) (\s@JobRun' {} a -> s {executionTime = a} :: JobRun)++-- | The name of the job being processed during this run.+jobRun_jobName :: Lens.Lens' JobRun (Prelude.Maybe Prelude.Text)+jobRun_jobName = Lens.lens (\JobRun' {jobName} -> jobName) (\s@JobRun' {} a -> s {jobName = a} :: JobRun)++-- | A sample configuration for profile jobs only, which determines the+-- number of rows on which the profile job is run. If a @JobSample@ value+-- isn\'t provided, the default is used. The default value is CUSTOM_ROWS+-- for the mode parameter and 20,000 for the size parameter.+jobRun_jobSample :: Lens.Lens' JobRun (Prelude.Maybe JobSample)+jobRun_jobSample = Lens.lens (\JobRun' {jobSample} -> jobSample) (\s@JobRun' {} a -> s {jobSample = a} :: JobRun)++-- | The name of an Amazon CloudWatch log group, where the job writes+-- diagnostic messages when it runs.+jobRun_logGroupName :: Lens.Lens' JobRun (Prelude.Maybe Prelude.Text)+jobRun_logGroupName = Lens.lens (\JobRun' {logGroupName} -> logGroupName) (\s@JobRun' {} a -> s {logGroupName = a} :: JobRun)++-- | The current status of Amazon CloudWatch logging for the job run.+jobRun_logSubscription :: Lens.Lens' JobRun (Prelude.Maybe LogSubscription)+jobRun_logSubscription = Lens.lens (\JobRun' {logSubscription} -> logSubscription) (\s@JobRun' {} a -> s {logSubscription = a} :: JobRun)++-- | One or more output artifacts from a job run.+jobRun_outputs :: Lens.Lens' JobRun (Prelude.Maybe (Prelude.NonEmpty Output))+jobRun_outputs = Lens.lens (\JobRun' {outputs} -> outputs) (\s@JobRun' {} a -> s {outputs = a} :: JobRun) Prelude.. Lens.mapping Lens.coerced++-- | The set of steps processed by the job.+jobRun_recipeReference :: Lens.Lens' JobRun (Prelude.Maybe RecipeReference)+jobRun_recipeReference = Lens.lens (\JobRun' {recipeReference} -> recipeReference) (\s@JobRun' {} a -> s {recipeReference = a} :: JobRun)++-- | The unique identifier of the job run.+jobRun_runId :: Lens.Lens' JobRun (Prelude.Maybe Prelude.Text)+jobRun_runId = Lens.lens (\JobRun' {runId} -> runId) (\s@JobRun' {} a -> s {runId = a} :: JobRun)++-- | The Amazon Resource Name (ARN) of the user who initiated the job run.+jobRun_startedBy :: Lens.Lens' JobRun (Prelude.Maybe Prelude.Text)+jobRun_startedBy = Lens.lens (\JobRun' {startedBy} -> startedBy) (\s@JobRun' {} a -> s {startedBy = a} :: JobRun)++-- | The date and time when the job run began.+jobRun_startedOn :: Lens.Lens' JobRun (Prelude.Maybe Prelude.UTCTime)+jobRun_startedOn = Lens.lens (\JobRun' {startedOn} -> startedOn) (\s@JobRun' {} a -> s {startedOn = a} :: JobRun) Prelude.. Lens.mapping Data._Time++-- | The current state of the job run entity itself.+jobRun_state :: Lens.Lens' JobRun (Prelude.Maybe JobRunState)+jobRun_state = Lens.lens (\JobRun' {state} -> state) (\s@JobRun' {} a -> s {state = a} :: JobRun)++-- | List of validation configurations that are applied to the profile job+-- run.+jobRun_validationConfigurations :: Lens.Lens' JobRun (Prelude.Maybe (Prelude.NonEmpty ValidationConfiguration))+jobRun_validationConfigurations = Lens.lens (\JobRun' {validationConfigurations} -> validationConfigurations) (\s@JobRun' {} a -> s {validationConfigurations = a} :: JobRun) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON JobRun where+  parseJSON =+    Data.withObject+      "JobRun"+      ( \x ->+          JobRun'+            Prelude.<$> (x Data..:? "Attempt")+            Prelude.<*> (x Data..:? "CompletedOn")+            Prelude.<*> (x Data..:? "DataCatalogOutputs")+            Prelude.<*> (x Data..:? "DatabaseOutputs")+            Prelude.<*> (x Data..:? "DatasetName")+            Prelude.<*> (x Data..:? "ErrorMessage")+            Prelude.<*> (x Data..:? "ExecutionTime")+            Prelude.<*> (x Data..:? "JobName")+            Prelude.<*> (x Data..:? "JobSample")+            Prelude.<*> (x Data..:? "LogGroupName")+            Prelude.<*> (x Data..:? "LogSubscription")+            Prelude.<*> (x Data..:? "Outputs")+            Prelude.<*> (x Data..:? "RecipeReference")+            Prelude.<*> (x Data..:? "RunId")+            Prelude.<*> (x Data..:? "StartedBy")+            Prelude.<*> (x Data..:? "StartedOn")+            Prelude.<*> (x Data..:? "State")+            Prelude.<*> (x Data..:? "ValidationConfigurations")+      )++instance Prelude.Hashable JobRun where+  hashWithSalt _salt JobRun' {..} =+    _salt+      `Prelude.hashWithSalt` attempt+      `Prelude.hashWithSalt` completedOn+      `Prelude.hashWithSalt` dataCatalogOutputs+      `Prelude.hashWithSalt` databaseOutputs+      `Prelude.hashWithSalt` datasetName+      `Prelude.hashWithSalt` errorMessage+      `Prelude.hashWithSalt` executionTime+      `Prelude.hashWithSalt` jobName+      `Prelude.hashWithSalt` jobSample+      `Prelude.hashWithSalt` logGroupName+      `Prelude.hashWithSalt` logSubscription+      `Prelude.hashWithSalt` outputs+      `Prelude.hashWithSalt` recipeReference+      `Prelude.hashWithSalt` runId+      `Prelude.hashWithSalt` startedBy+      `Prelude.hashWithSalt` startedOn+      `Prelude.hashWithSalt` state+      `Prelude.hashWithSalt` validationConfigurations++instance Prelude.NFData JobRun where+  rnf JobRun' {..} =+    Prelude.rnf attempt+      `Prelude.seq` Prelude.rnf completedOn+      `Prelude.seq` Prelude.rnf dataCatalogOutputs+      `Prelude.seq` Prelude.rnf databaseOutputs+      `Prelude.seq` Prelude.rnf datasetName+      `Prelude.seq` Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf executionTime+      `Prelude.seq` Prelude.rnf jobName+      `Prelude.seq` Prelude.rnf jobSample+      `Prelude.seq` Prelude.rnf logGroupName+      `Prelude.seq` Prelude.rnf logSubscription+      `Prelude.seq` Prelude.rnf outputs+      `Prelude.seq` Prelude.rnf recipeReference+      `Prelude.seq` Prelude.rnf runId+      `Prelude.seq` Prelude.rnf startedBy+      `Prelude.seq` Prelude.rnf startedOn+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf+        validationConfigurations
+ gen/Amazonka/DataBrew/Types/JobRunState.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.JobRunState+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.JobRunState+  ( JobRunState+      ( ..,+        JobRunState_FAILED,+        JobRunState_RUNNING,+        JobRunState_STARTING,+        JobRunState_STOPPED,+        JobRunState_STOPPING,+        JobRunState_SUCCEEDED,+        JobRunState_TIMEOUT+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype JobRunState = JobRunState'+  { fromJobRunState ::+      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 JobRunState_FAILED :: JobRunState+pattern JobRunState_FAILED = JobRunState' "FAILED"++pattern JobRunState_RUNNING :: JobRunState+pattern JobRunState_RUNNING = JobRunState' "RUNNING"++pattern JobRunState_STARTING :: JobRunState+pattern JobRunState_STARTING = JobRunState' "STARTING"++pattern JobRunState_STOPPED :: JobRunState+pattern JobRunState_STOPPED = JobRunState' "STOPPED"++pattern JobRunState_STOPPING :: JobRunState+pattern JobRunState_STOPPING = JobRunState' "STOPPING"++pattern JobRunState_SUCCEEDED :: JobRunState+pattern JobRunState_SUCCEEDED = JobRunState' "SUCCEEDED"++pattern JobRunState_TIMEOUT :: JobRunState+pattern JobRunState_TIMEOUT = JobRunState' "TIMEOUT"++{-# COMPLETE+  JobRunState_FAILED,+  JobRunState_RUNNING,+  JobRunState_STARTING,+  JobRunState_STOPPED,+  JobRunState_STOPPING,+  JobRunState_SUCCEEDED,+  JobRunState_TIMEOUT,+  JobRunState'+  #-}
+ gen/Amazonka/DataBrew/Types/JobSample.hs view
@@ -0,0 +1,129 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.JobSample+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.JobSample where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.SampleMode+import qualified Amazonka.Prelude as Prelude++-- | A sample configuration for profile jobs only, which determines the+-- number of rows on which the profile job is run. If a @JobSample@ value+-- isn\'t provided, the default is used. The default value is CUSTOM_ROWS+-- for the mode parameter and 20,000 for the size parameter.+--+-- /See:/ 'newJobSample' smart constructor.+data JobSample = JobSample'+  { -- | A value that determines whether the profile job is run on the entire+    -- dataset or a specified number of rows. This value must be one of the+    -- following:+    --+    -- -   FULL_DATASET - The profile job is run on the entire dataset.+    --+    -- -   CUSTOM_ROWS - The profile job is run on the number of rows specified+    --     in the @Size@ parameter.+    mode :: Prelude.Maybe SampleMode,+    -- | The @Size@ parameter is only required when the mode is CUSTOM_ROWS. The+    -- profile job is run on the specified number of rows. The maximum value+    -- for size is Long.MAX_VALUE.+    --+    -- Long.MAX_VALUE = 9223372036854775807+    size :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'JobSample' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'mode', 'jobSample_mode' - A value that determines whether the profile job is run on the entire+-- dataset or a specified number of rows. This value must be one of the+-- following:+--+-- -   FULL_DATASET - The profile job is run on the entire dataset.+--+-- -   CUSTOM_ROWS - The profile job is run on the number of rows specified+--     in the @Size@ parameter.+--+-- 'size', 'jobSample_size' - The @Size@ parameter is only required when the mode is CUSTOM_ROWS. The+-- profile job is run on the specified number of rows. The maximum value+-- for size is Long.MAX_VALUE.+--+-- Long.MAX_VALUE = 9223372036854775807+newJobSample ::+  JobSample+newJobSample =+  JobSample'+    { mode = Prelude.Nothing,+      size = Prelude.Nothing+    }++-- | A value that determines whether the profile job is run on the entire+-- dataset or a specified number of rows. This value must be one of the+-- following:+--+-- -   FULL_DATASET - The profile job is run on the entire dataset.+--+-- -   CUSTOM_ROWS - The profile job is run on the number of rows specified+--     in the @Size@ parameter.+jobSample_mode :: Lens.Lens' JobSample (Prelude.Maybe SampleMode)+jobSample_mode = Lens.lens (\JobSample' {mode} -> mode) (\s@JobSample' {} a -> s {mode = a} :: JobSample)++-- | The @Size@ parameter is only required when the mode is CUSTOM_ROWS. The+-- profile job is run on the specified number of rows. The maximum value+-- for size is Long.MAX_VALUE.+--+-- Long.MAX_VALUE = 9223372036854775807+jobSample_size :: Lens.Lens' JobSample (Prelude.Maybe Prelude.Integer)+jobSample_size = Lens.lens (\JobSample' {size} -> size) (\s@JobSample' {} a -> s {size = a} :: JobSample)++instance Data.FromJSON JobSample where+  parseJSON =+    Data.withObject+      "JobSample"+      ( \x ->+          JobSample'+            Prelude.<$> (x Data..:? "Mode")+            Prelude.<*> (x Data..:? "Size")+      )++instance Prelude.Hashable JobSample where+  hashWithSalt _salt JobSample' {..} =+    _salt+      `Prelude.hashWithSalt` mode+      `Prelude.hashWithSalt` size++instance Prelude.NFData JobSample where+  rnf JobSample' {..} =+    Prelude.rnf mode `Prelude.seq` Prelude.rnf size++instance Data.ToJSON JobSample where+  toJSON JobSample' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Mode" Data..=) Prelude.<$> mode,+            ("Size" Data..=) Prelude.<$> size+          ]+      )
+ gen/Amazonka/DataBrew/Types/JobType.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.DataBrew.Types.JobType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.JobType+  ( JobType+      ( ..,+        JobType_PROFILE,+        JobType_RECIPE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype JobType = JobType' {fromJobType :: 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 JobType_PROFILE :: JobType+pattern JobType_PROFILE = JobType' "PROFILE"++pattern JobType_RECIPE :: JobType+pattern JobType_RECIPE = JobType' "RECIPE"++{-# COMPLETE+  JobType_PROFILE,+  JobType_RECIPE,+  JobType'+  #-}
+ gen/Amazonka/DataBrew/Types/JsonOptions.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.DataBrew.Types.JsonOptions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.JsonOptions 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++-- | Represents the JSON-specific options that define how input is to be+-- interpreted by Glue DataBrew.+--+-- /See:/ 'newJsonOptions' smart constructor.+data JsonOptions = JsonOptions'+  { -- | A value that specifies whether JSON input contains embedded new line+    -- characters.+    multiLine :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'JsonOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'multiLine', 'jsonOptions_multiLine' - A value that specifies whether JSON input contains embedded new line+-- characters.+newJsonOptions ::+  JsonOptions+newJsonOptions =+  JsonOptions' {multiLine = Prelude.Nothing}++-- | A value that specifies whether JSON input contains embedded new line+-- characters.+jsonOptions_multiLine :: Lens.Lens' JsonOptions (Prelude.Maybe Prelude.Bool)+jsonOptions_multiLine = Lens.lens (\JsonOptions' {multiLine} -> multiLine) (\s@JsonOptions' {} a -> s {multiLine = a} :: JsonOptions)++instance Data.FromJSON JsonOptions where+  parseJSON =+    Data.withObject+      "JsonOptions"+      ( \x ->+          JsonOptions' Prelude.<$> (x Data..:? "MultiLine")+      )++instance Prelude.Hashable JsonOptions where+  hashWithSalt _salt JsonOptions' {..} =+    _salt `Prelude.hashWithSalt` multiLine++instance Prelude.NFData JsonOptions where+  rnf JsonOptions' {..} = Prelude.rnf multiLine++instance Data.ToJSON JsonOptions where+  toJSON JsonOptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [("MultiLine" Data..=) Prelude.<$> multiLine]+      )
+ gen/Amazonka/DataBrew/Types/LogSubscription.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.DataBrew.Types.LogSubscription+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.LogSubscription+  ( LogSubscription+      ( ..,+        LogSubscription_DISABLE,+        LogSubscription_ENABLE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LogSubscription = LogSubscription'+  { fromLogSubscription ::+      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 LogSubscription_DISABLE :: LogSubscription+pattern LogSubscription_DISABLE = LogSubscription' "DISABLE"++pattern LogSubscription_ENABLE :: LogSubscription+pattern LogSubscription_ENABLE = LogSubscription' "ENABLE"++{-# COMPLETE+  LogSubscription_DISABLE,+  LogSubscription_ENABLE,+  LogSubscription'+  #-}
+ gen/Amazonka/DataBrew/Types/Metadata.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.Metadata+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.Metadata 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 additional resource information needed for specific datasets.+--+-- /See:/ 'newMetadata' smart constructor.+data Metadata = Metadata'+  { -- | The Amazon Resource Name (ARN) associated with the dataset. Currently,+    -- DataBrew only supports ARNs from Amazon AppFlow.+    sourceArn :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Metadata' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sourceArn', 'metadata_sourceArn' - The Amazon Resource Name (ARN) associated with the dataset. Currently,+-- DataBrew only supports ARNs from Amazon AppFlow.+newMetadata ::+  Metadata+newMetadata = Metadata' {sourceArn = Prelude.Nothing}++-- | The Amazon Resource Name (ARN) associated with the dataset. Currently,+-- DataBrew only supports ARNs from Amazon AppFlow.+metadata_sourceArn :: Lens.Lens' Metadata (Prelude.Maybe Prelude.Text)+metadata_sourceArn = Lens.lens (\Metadata' {sourceArn} -> sourceArn) (\s@Metadata' {} a -> s {sourceArn = a} :: Metadata)++instance Data.FromJSON Metadata where+  parseJSON =+    Data.withObject+      "Metadata"+      ( \x ->+          Metadata' Prelude.<$> (x Data..:? "SourceArn")+      )++instance Prelude.Hashable Metadata where+  hashWithSalt _salt Metadata' {..} =+    _salt `Prelude.hashWithSalt` sourceArn++instance Prelude.NFData Metadata where+  rnf Metadata' {..} = Prelude.rnf sourceArn++instance Data.ToJSON Metadata where+  toJSON Metadata' {..} =+    Data.object+      ( Prelude.catMaybes+          [("SourceArn" Data..=) Prelude.<$> sourceArn]+      )
+ gen/Amazonka/DataBrew/Types/Order.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.DataBrew.Types.Order+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.Order+  ( Order+      ( ..,+        Order_ASCENDING,+        Order_DESCENDING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Order = Order' {fromOrder :: 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 Order_ASCENDING :: Order+pattern Order_ASCENDING = Order' "ASCENDING"++pattern Order_DESCENDING :: Order+pattern Order_DESCENDING = Order' "DESCENDING"++{-# COMPLETE+  Order_ASCENDING,+  Order_DESCENDING,+  Order'+  #-}
+ gen/Amazonka/DataBrew/Types/OrderedBy.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.DataBrew.Types.OrderedBy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.OrderedBy+  ( OrderedBy+      ( ..,+        OrderedBy_LAST_MODIFIED_DATE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype OrderedBy = OrderedBy'+  { fromOrderedBy ::+      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 OrderedBy_LAST_MODIFIED_DATE :: OrderedBy+pattern OrderedBy_LAST_MODIFIED_DATE = OrderedBy' "LAST_MODIFIED_DATE"++{-# COMPLETE+  OrderedBy_LAST_MODIFIED_DATE,+  OrderedBy'+  #-}
+ gen/Amazonka/DataBrew/Types/Output.hs view
@@ -0,0 +1,180 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.Output+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.Output where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.CompressionFormat+import Amazonka.DataBrew.Types.OutputFormat+import Amazonka.DataBrew.Types.OutputFormatOptions+import Amazonka.DataBrew.Types.S3Location+import qualified Amazonka.Prelude as Prelude++-- | Represents options that specify how and where in Amazon S3 DataBrew+-- writes the output generated by recipe jobs or profile jobs.+--+-- /See:/ 'newOutput' smart constructor.+data Output = Output'+  { -- | The compression algorithm used to compress the output text of the job.+    compressionFormat :: Prelude.Maybe CompressionFormat,+    -- | The data format of the output of the job.+    format :: Prelude.Maybe OutputFormat,+    -- | Represents options that define how DataBrew formats job output files.+    formatOptions :: Prelude.Maybe OutputFormatOptions,+    -- | Maximum number of files to be generated by the job and written to the+    -- output folder. For output partitioned by column(s), the MaxOutputFiles+    -- value is the maximum number of files per partition.+    maxOutputFiles :: Prelude.Maybe Prelude.Natural,+    -- | A value that, if true, means that any data in the location specified for+    -- output is overwritten with new output.+    overwrite :: Prelude.Maybe Prelude.Bool,+    -- | The names of one or more partition columns for the output of the job.+    partitionColumns :: Prelude.Maybe [Prelude.Text],+    -- | The location in Amazon S3 where the job writes its output.+    location :: S3Location+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Output' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'compressionFormat', 'output_compressionFormat' - The compression algorithm used to compress the output text of the job.+--+-- 'format', 'output_format' - The data format of the output of the job.+--+-- 'formatOptions', 'output_formatOptions' - Represents options that define how DataBrew formats job output files.+--+-- 'maxOutputFiles', 'output_maxOutputFiles' - Maximum number of files to be generated by the job and written to the+-- output folder. For output partitioned by column(s), the MaxOutputFiles+-- value is the maximum number of files per partition.+--+-- 'overwrite', 'output_overwrite' - A value that, if true, means that any data in the location specified for+-- output is overwritten with new output.+--+-- 'partitionColumns', 'output_partitionColumns' - The names of one or more partition columns for the output of the job.+--+-- 'location', 'output_location' - The location in Amazon S3 where the job writes its output.+newOutput ::+  -- | 'location'+  S3Location ->+  Output+newOutput pLocation_ =+  Output'+    { compressionFormat = Prelude.Nothing,+      format = Prelude.Nothing,+      formatOptions = Prelude.Nothing,+      maxOutputFiles = Prelude.Nothing,+      overwrite = Prelude.Nothing,+      partitionColumns = Prelude.Nothing,+      location = pLocation_+    }++-- | The compression algorithm used to compress the output text of the job.+output_compressionFormat :: Lens.Lens' Output (Prelude.Maybe CompressionFormat)+output_compressionFormat = Lens.lens (\Output' {compressionFormat} -> compressionFormat) (\s@Output' {} a -> s {compressionFormat = a} :: Output)++-- | The data format of the output of the job.+output_format :: Lens.Lens' Output (Prelude.Maybe OutputFormat)+output_format = Lens.lens (\Output' {format} -> format) (\s@Output' {} a -> s {format = a} :: Output)++-- | Represents options that define how DataBrew formats job output files.+output_formatOptions :: Lens.Lens' Output (Prelude.Maybe OutputFormatOptions)+output_formatOptions = Lens.lens (\Output' {formatOptions} -> formatOptions) (\s@Output' {} a -> s {formatOptions = a} :: Output)++-- | Maximum number of files to be generated by the job and written to the+-- output folder. For output partitioned by column(s), the MaxOutputFiles+-- value is the maximum number of files per partition.+output_maxOutputFiles :: Lens.Lens' Output (Prelude.Maybe Prelude.Natural)+output_maxOutputFiles = Lens.lens (\Output' {maxOutputFiles} -> maxOutputFiles) (\s@Output' {} a -> s {maxOutputFiles = a} :: Output)++-- | A value that, if true, means that any data in the location specified for+-- output is overwritten with new output.+output_overwrite :: Lens.Lens' Output (Prelude.Maybe Prelude.Bool)+output_overwrite = Lens.lens (\Output' {overwrite} -> overwrite) (\s@Output' {} a -> s {overwrite = a} :: Output)++-- | The names of one or more partition columns for the output of the job.+output_partitionColumns :: Lens.Lens' Output (Prelude.Maybe [Prelude.Text])+output_partitionColumns = Lens.lens (\Output' {partitionColumns} -> partitionColumns) (\s@Output' {} a -> s {partitionColumns = a} :: Output) Prelude.. Lens.mapping Lens.coerced++-- | The location in Amazon S3 where the job writes its output.+output_location :: Lens.Lens' Output S3Location+output_location = Lens.lens (\Output' {location} -> location) (\s@Output' {} a -> s {location = a} :: Output)++instance Data.FromJSON Output where+  parseJSON =+    Data.withObject+      "Output"+      ( \x ->+          Output'+            Prelude.<$> (x Data..:? "CompressionFormat")+            Prelude.<*> (x Data..:? "Format")+            Prelude.<*> (x Data..:? "FormatOptions")+            Prelude.<*> (x Data..:? "MaxOutputFiles")+            Prelude.<*> (x Data..:? "Overwrite")+            Prelude.<*> ( x+                            Data..:? "PartitionColumns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "Location")+      )++instance Prelude.Hashable Output where+  hashWithSalt _salt Output' {..} =+    _salt+      `Prelude.hashWithSalt` compressionFormat+      `Prelude.hashWithSalt` format+      `Prelude.hashWithSalt` formatOptions+      `Prelude.hashWithSalt` maxOutputFiles+      `Prelude.hashWithSalt` overwrite+      `Prelude.hashWithSalt` partitionColumns+      `Prelude.hashWithSalt` location++instance Prelude.NFData Output where+  rnf Output' {..} =+    Prelude.rnf compressionFormat+      `Prelude.seq` Prelude.rnf format+      `Prelude.seq` Prelude.rnf formatOptions+      `Prelude.seq` Prelude.rnf maxOutputFiles+      `Prelude.seq` Prelude.rnf overwrite+      `Prelude.seq` Prelude.rnf partitionColumns+      `Prelude.seq` Prelude.rnf location++instance Data.ToJSON Output where+  toJSON Output' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CompressionFormat" Data..=)+              Prelude.<$> compressionFormat,+            ("Format" Data..=) Prelude.<$> format,+            ("FormatOptions" Data..=) Prelude.<$> formatOptions,+            ("MaxOutputFiles" Data..=)+              Prelude.<$> maxOutputFiles,+            ("Overwrite" Data..=) Prelude.<$> overwrite,+            ("PartitionColumns" Data..=)+              Prelude.<$> partitionColumns,+            Prelude.Just ("Location" Data..= location)+          ]+      )
+ gen/Amazonka/DataBrew/Types/OutputFormat.hs view
@@ -0,0 +1,101 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.OutputFormat+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.OutputFormat+  ( OutputFormat+      ( ..,+        OutputFormat_AVRO,+        OutputFormat_CSV,+        OutputFormat_GLUEPARQUET,+        OutputFormat_JSON,+        OutputFormat_ORC,+        OutputFormat_PARQUET,+        OutputFormat_TABLEAUHYPER,+        OutputFormat_XML+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype OutputFormat = OutputFormat'+  { fromOutputFormat ::+      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 OutputFormat_AVRO :: OutputFormat+pattern OutputFormat_AVRO = OutputFormat' "AVRO"++pattern OutputFormat_CSV :: OutputFormat+pattern OutputFormat_CSV = OutputFormat' "CSV"++pattern OutputFormat_GLUEPARQUET :: OutputFormat+pattern OutputFormat_GLUEPARQUET = OutputFormat' "GLUEPARQUET"++pattern OutputFormat_JSON :: OutputFormat+pattern OutputFormat_JSON = OutputFormat' "JSON"++pattern OutputFormat_ORC :: OutputFormat+pattern OutputFormat_ORC = OutputFormat' "ORC"++pattern OutputFormat_PARQUET :: OutputFormat+pattern OutputFormat_PARQUET = OutputFormat' "PARQUET"++pattern OutputFormat_TABLEAUHYPER :: OutputFormat+pattern OutputFormat_TABLEAUHYPER = OutputFormat' "TABLEAUHYPER"++pattern OutputFormat_XML :: OutputFormat+pattern OutputFormat_XML = OutputFormat' "XML"++{-# COMPLETE+  OutputFormat_AVRO,+  OutputFormat_CSV,+  OutputFormat_GLUEPARQUET,+  OutputFormat_JSON,+  OutputFormat_ORC,+  OutputFormat_PARQUET,+  OutputFormat_TABLEAUHYPER,+  OutputFormat_XML,+  OutputFormat'+  #-}
+ gen/Amazonka/DataBrew/Types/OutputFormatOptions.hs view
@@ -0,0 +1,77 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.OutputFormatOptions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.OutputFormatOptions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.CsvOutputOptions+import qualified Amazonka.Prelude as Prelude++-- | Represents a set of options that define the structure of comma-separated+-- (CSV) job output.+--+-- /See:/ 'newOutputFormatOptions' smart constructor.+data OutputFormatOptions = OutputFormatOptions'+  { -- | Represents a set of options that define the structure of comma-separated+    -- value (CSV) job output.+    csv :: Prelude.Maybe CsvOutputOptions+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OutputFormatOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'csv', 'outputFormatOptions_csv' - Represents a set of options that define the structure of comma-separated+-- value (CSV) job output.+newOutputFormatOptions ::+  OutputFormatOptions+newOutputFormatOptions =+  OutputFormatOptions' {csv = Prelude.Nothing}++-- | Represents a set of options that define the structure of comma-separated+-- value (CSV) job output.+outputFormatOptions_csv :: Lens.Lens' OutputFormatOptions (Prelude.Maybe CsvOutputOptions)+outputFormatOptions_csv = Lens.lens (\OutputFormatOptions' {csv} -> csv) (\s@OutputFormatOptions' {} a -> s {csv = a} :: OutputFormatOptions)++instance Data.FromJSON OutputFormatOptions where+  parseJSON =+    Data.withObject+      "OutputFormatOptions"+      ( \x ->+          OutputFormatOptions' Prelude.<$> (x Data..:? "Csv")+      )++instance Prelude.Hashable OutputFormatOptions where+  hashWithSalt _salt OutputFormatOptions' {..} =+    _salt `Prelude.hashWithSalt` csv++instance Prelude.NFData OutputFormatOptions where+  rnf OutputFormatOptions' {..} = Prelude.rnf csv++instance Data.ToJSON OutputFormatOptions where+  toJSON OutputFormatOptions' {..} =+    Data.object+      (Prelude.catMaybes [("Csv" Data..=) Prelude.<$> csv])
+ gen/Amazonka/DataBrew/Types/ParameterType.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.DataBrew.Types.ParameterType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.ParameterType+  ( ParameterType+      ( ..,+        ParameterType_Datetime,+        ParameterType_Number,+        ParameterType_String+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ParameterType = ParameterType'+  { fromParameterType ::+      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 ParameterType_Datetime :: ParameterType+pattern ParameterType_Datetime = ParameterType' "Datetime"++pattern ParameterType_Number :: ParameterType+pattern ParameterType_Number = ParameterType' "Number"++pattern ParameterType_String :: ParameterType+pattern ParameterType_String = ParameterType' "String"++{-# COMPLETE+  ParameterType_Datetime,+  ParameterType_Number,+  ParameterType_String,+  ParameterType'+  #-}
+ gen/Amazonka/DataBrew/Types/PathOptions.hs view
@@ -0,0 +1,120 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.PathOptions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.PathOptions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.DatasetParameter+import Amazonka.DataBrew.Types.FilesLimit+import Amazonka.DataBrew.Types.FilterExpression+import qualified Amazonka.Prelude as Prelude++-- | Represents a set of options that define how DataBrew selects files for a+-- given Amazon S3 path in a dataset.+--+-- /See:/ 'newPathOptions' smart constructor.+data PathOptions = PathOptions'+  { -- | If provided, this structure imposes a limit on a number of files that+    -- should be selected.+    filesLimit :: Prelude.Maybe FilesLimit,+    -- | If provided, this structure defines a date range for matching Amazon S3+    -- objects based on their LastModifiedDate attribute in Amazon S3.+    lastModifiedDateCondition :: Prelude.Maybe FilterExpression,+    -- | A structure that maps names of parameters used in the Amazon S3 path of+    -- a dataset to their definitions.+    parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text DatasetParameter)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PathOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filesLimit', 'pathOptions_filesLimit' - If provided, this structure imposes a limit on a number of files that+-- should be selected.+--+-- 'lastModifiedDateCondition', 'pathOptions_lastModifiedDateCondition' - If provided, this structure defines a date range for matching Amazon S3+-- objects based on their LastModifiedDate attribute in Amazon S3.+--+-- 'parameters', 'pathOptions_parameters' - A structure that maps names of parameters used in the Amazon S3 path of+-- a dataset to their definitions.+newPathOptions ::+  PathOptions+newPathOptions =+  PathOptions'+    { filesLimit = Prelude.Nothing,+      lastModifiedDateCondition = Prelude.Nothing,+      parameters = Prelude.Nothing+    }++-- | If provided, this structure imposes a limit on a number of files that+-- should be selected.+pathOptions_filesLimit :: Lens.Lens' PathOptions (Prelude.Maybe FilesLimit)+pathOptions_filesLimit = Lens.lens (\PathOptions' {filesLimit} -> filesLimit) (\s@PathOptions' {} a -> s {filesLimit = a} :: PathOptions)++-- | If provided, this structure defines a date range for matching Amazon S3+-- objects based on their LastModifiedDate attribute in Amazon S3.+pathOptions_lastModifiedDateCondition :: Lens.Lens' PathOptions (Prelude.Maybe FilterExpression)+pathOptions_lastModifiedDateCondition = Lens.lens (\PathOptions' {lastModifiedDateCondition} -> lastModifiedDateCondition) (\s@PathOptions' {} a -> s {lastModifiedDateCondition = a} :: PathOptions)++-- | A structure that maps names of parameters used in the Amazon S3 path of+-- a dataset to their definitions.+pathOptions_parameters :: Lens.Lens' PathOptions (Prelude.Maybe (Prelude.HashMap Prelude.Text DatasetParameter))+pathOptions_parameters = Lens.lens (\PathOptions' {parameters} -> parameters) (\s@PathOptions' {} a -> s {parameters = a} :: PathOptions) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON PathOptions where+  parseJSON =+    Data.withObject+      "PathOptions"+      ( \x ->+          PathOptions'+            Prelude.<$> (x Data..:? "FilesLimit")+            Prelude.<*> (x Data..:? "LastModifiedDateCondition")+            Prelude.<*> (x Data..:? "Parameters" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable PathOptions where+  hashWithSalt _salt PathOptions' {..} =+    _salt+      `Prelude.hashWithSalt` filesLimit+      `Prelude.hashWithSalt` lastModifiedDateCondition+      `Prelude.hashWithSalt` parameters++instance Prelude.NFData PathOptions where+  rnf PathOptions' {..} =+    Prelude.rnf filesLimit+      `Prelude.seq` Prelude.rnf lastModifiedDateCondition+      `Prelude.seq` Prelude.rnf parameters++instance Data.ToJSON PathOptions where+  toJSON PathOptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("FilesLimit" Data..=) Prelude.<$> filesLimit,+            ("LastModifiedDateCondition" Data..=)+              Prelude.<$> lastModifiedDateCondition,+            ("Parameters" Data..=) Prelude.<$> parameters+          ]+      )
+ gen/Amazonka/DataBrew/Types/ProfileConfiguration.hs view
@@ -0,0 +1,161 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.ProfileConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.ProfileConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.ColumnSelector+import Amazonka.DataBrew.Types.ColumnStatisticsConfiguration+import Amazonka.DataBrew.Types.EntityDetectorConfiguration+import Amazonka.DataBrew.Types.StatisticsConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Configuration for profile jobs. Configuration can be used to select+-- columns, do evaluations, and override default parameters of evaluations.+-- When configuration is undefined, the profile job will apply default+-- settings to all supported columns.+--+-- /See:/ 'newProfileConfiguration' smart constructor.+data ProfileConfiguration = ProfileConfiguration'+  { -- | List of configurations for column evaluations.+    -- ColumnStatisticsConfigurations are used to select evaluations and+    -- override parameters of evaluations for particular columns. When+    -- ColumnStatisticsConfigurations is undefined, the profile job will+    -- profile all supported columns and run all supported evaluations.+    columnStatisticsConfigurations :: Prelude.Maybe (Prelude.NonEmpty ColumnStatisticsConfiguration),+    -- | Configuration for inter-column evaluations. Configuration can be used to+    -- select evaluations and override parameters of evaluations. When+    -- configuration is undefined, the profile job will run all supported+    -- inter-column evaluations.+    datasetStatisticsConfiguration :: Prelude.Maybe StatisticsConfiguration,+    -- | Configuration of entity detection for a profile job. When undefined,+    -- entity detection is disabled.+    entityDetectorConfiguration :: Prelude.Maybe EntityDetectorConfiguration,+    -- | List of column selectors. ProfileColumns can be used to select columns+    -- from the dataset. When ProfileColumns is undefined, the profile job will+    -- profile all supported columns.+    profileColumns :: Prelude.Maybe (Prelude.NonEmpty ColumnSelector)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ProfileConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'columnStatisticsConfigurations', 'profileConfiguration_columnStatisticsConfigurations' - List of configurations for column evaluations.+-- ColumnStatisticsConfigurations are used to select evaluations and+-- override parameters of evaluations for particular columns. When+-- ColumnStatisticsConfigurations is undefined, the profile job will+-- profile all supported columns and run all supported evaluations.+--+-- 'datasetStatisticsConfiguration', 'profileConfiguration_datasetStatisticsConfiguration' - Configuration for inter-column evaluations. Configuration can be used to+-- select evaluations and override parameters of evaluations. When+-- configuration is undefined, the profile job will run all supported+-- inter-column evaluations.+--+-- 'entityDetectorConfiguration', 'profileConfiguration_entityDetectorConfiguration' - Configuration of entity detection for a profile job. When undefined,+-- entity detection is disabled.+--+-- 'profileColumns', 'profileConfiguration_profileColumns' - List of column selectors. ProfileColumns can be used to select columns+-- from the dataset. When ProfileColumns is undefined, the profile job will+-- profile all supported columns.+newProfileConfiguration ::+  ProfileConfiguration+newProfileConfiguration =+  ProfileConfiguration'+    { columnStatisticsConfigurations =+        Prelude.Nothing,+      datasetStatisticsConfiguration = Prelude.Nothing,+      entityDetectorConfiguration = Prelude.Nothing,+      profileColumns = Prelude.Nothing+    }++-- | List of configurations for column evaluations.+-- ColumnStatisticsConfigurations are used to select evaluations and+-- override parameters of evaluations for particular columns. When+-- ColumnStatisticsConfigurations is undefined, the profile job will+-- profile all supported columns and run all supported evaluations.+profileConfiguration_columnStatisticsConfigurations :: Lens.Lens' ProfileConfiguration (Prelude.Maybe (Prelude.NonEmpty ColumnStatisticsConfiguration))+profileConfiguration_columnStatisticsConfigurations = Lens.lens (\ProfileConfiguration' {columnStatisticsConfigurations} -> columnStatisticsConfigurations) (\s@ProfileConfiguration' {} a -> s {columnStatisticsConfigurations = a} :: ProfileConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Configuration for inter-column evaluations. Configuration can be used to+-- select evaluations and override parameters of evaluations. When+-- configuration is undefined, the profile job will run all supported+-- inter-column evaluations.+profileConfiguration_datasetStatisticsConfiguration :: Lens.Lens' ProfileConfiguration (Prelude.Maybe StatisticsConfiguration)+profileConfiguration_datasetStatisticsConfiguration = Lens.lens (\ProfileConfiguration' {datasetStatisticsConfiguration} -> datasetStatisticsConfiguration) (\s@ProfileConfiguration' {} a -> s {datasetStatisticsConfiguration = a} :: ProfileConfiguration)++-- | Configuration of entity detection for a profile job. When undefined,+-- entity detection is disabled.+profileConfiguration_entityDetectorConfiguration :: Lens.Lens' ProfileConfiguration (Prelude.Maybe EntityDetectorConfiguration)+profileConfiguration_entityDetectorConfiguration = Lens.lens (\ProfileConfiguration' {entityDetectorConfiguration} -> entityDetectorConfiguration) (\s@ProfileConfiguration' {} a -> s {entityDetectorConfiguration = a} :: ProfileConfiguration)++-- | List of column selectors. ProfileColumns can be used to select columns+-- from the dataset. When ProfileColumns is undefined, the profile job will+-- profile all supported columns.+profileConfiguration_profileColumns :: Lens.Lens' ProfileConfiguration (Prelude.Maybe (Prelude.NonEmpty ColumnSelector))+profileConfiguration_profileColumns = Lens.lens (\ProfileConfiguration' {profileColumns} -> profileColumns) (\s@ProfileConfiguration' {} a -> s {profileColumns = a} :: ProfileConfiguration) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ProfileConfiguration where+  parseJSON =+    Data.withObject+      "ProfileConfiguration"+      ( \x ->+          ProfileConfiguration'+            Prelude.<$> (x Data..:? "ColumnStatisticsConfigurations")+            Prelude.<*> (x Data..:? "DatasetStatisticsConfiguration")+            Prelude.<*> (x Data..:? "EntityDetectorConfiguration")+            Prelude.<*> (x Data..:? "ProfileColumns")+      )++instance Prelude.Hashable ProfileConfiguration where+  hashWithSalt _salt ProfileConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` columnStatisticsConfigurations+      `Prelude.hashWithSalt` datasetStatisticsConfiguration+      `Prelude.hashWithSalt` entityDetectorConfiguration+      `Prelude.hashWithSalt` profileColumns++instance Prelude.NFData ProfileConfiguration where+  rnf ProfileConfiguration' {..} =+    Prelude.rnf columnStatisticsConfigurations+      `Prelude.seq` Prelude.rnf datasetStatisticsConfiguration+      `Prelude.seq` Prelude.rnf entityDetectorConfiguration+      `Prelude.seq` Prelude.rnf profileColumns++instance Data.ToJSON ProfileConfiguration where+  toJSON ProfileConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ColumnStatisticsConfigurations" Data..=)+              Prelude.<$> columnStatisticsConfigurations,+            ("DatasetStatisticsConfiguration" Data..=)+              Prelude.<$> datasetStatisticsConfiguration,+            ("EntityDetectorConfiguration" Data..=)+              Prelude.<$> entityDetectorConfiguration,+            ("ProfileColumns" Data..=)+              Prelude.<$> profileColumns+          ]+      )
+ gen/Amazonka/DataBrew/Types/Project.hs view
@@ -0,0 +1,248 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.Project+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.Project where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.Sample+import qualified Amazonka.Prelude as Prelude++-- | Represents all of the attributes of a DataBrew project.+--+-- /See:/ 'newProject' smart constructor.+data Project = Project'+  { -- | The ID of the Amazon Web Services account that owns the project.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the project was created.+    createDate :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the user who crated the project.+    createdBy :: Prelude.Maybe Prelude.Text,+    -- | The dataset that the project is to act upon.+    datasetName :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the user who last modified the+    -- project.+    lastModifiedBy :: Prelude.Maybe Prelude.Text,+    -- | The last modification date and time for the project.+    lastModifiedDate :: Prelude.Maybe Data.POSIX,+    -- | The date and time when the project was opened.+    openDate :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the user that opened the project for+    -- use.+    openedBy :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) for the project.+    resourceArn :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the role that will be assumed for this+    -- project.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The sample size and sampling type to apply to the data. If this+    -- parameter isn\'t specified, then the sample consists of the first 500+    -- rows from the dataset.+    sample :: Prelude.Maybe Sample,+    -- | Metadata tags that have been applied to the project.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The unique name of a project.+    name :: Prelude.Text,+    -- | The name of a recipe that will be developed during a project session.+    recipeName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Project' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'project_accountId' - The ID of the Amazon Web Services account that owns the project.+--+-- 'createDate', 'project_createDate' - The date and time that the project was created.+--+-- 'createdBy', 'project_createdBy' - The Amazon Resource Name (ARN) of the user who crated the project.+--+-- 'datasetName', 'project_datasetName' - The dataset that the project is to act upon.+--+-- 'lastModifiedBy', 'project_lastModifiedBy' - The Amazon Resource Name (ARN) of the user who last modified the+-- project.+--+-- 'lastModifiedDate', 'project_lastModifiedDate' - The last modification date and time for the project.+--+-- 'openDate', 'project_openDate' - The date and time when the project was opened.+--+-- 'openedBy', 'project_openedBy' - The Amazon Resource Name (ARN) of the user that opened the project for+-- use.+--+-- 'resourceArn', 'project_resourceArn' - The Amazon Resource Name (ARN) for the project.+--+-- 'roleArn', 'project_roleArn' - The Amazon Resource Name (ARN) of the role that will be assumed for this+-- project.+--+-- 'sample', 'project_sample' - The sample size and sampling type to apply to the data. If this+-- parameter isn\'t specified, then the sample consists of the first 500+-- rows from the dataset.+--+-- 'tags', 'project_tags' - Metadata tags that have been applied to the project.+--+-- 'name', 'project_name' - The unique name of a project.+--+-- 'recipeName', 'project_recipeName' - The name of a recipe that will be developed during a project session.+newProject ::+  -- | 'name'+  Prelude.Text ->+  -- | 'recipeName'+  Prelude.Text ->+  Project+newProject pName_ pRecipeName_ =+  Project'+    { accountId = Prelude.Nothing,+      createDate = Prelude.Nothing,+      createdBy = Prelude.Nothing,+      datasetName = Prelude.Nothing,+      lastModifiedBy = Prelude.Nothing,+      lastModifiedDate = Prelude.Nothing,+      openDate = Prelude.Nothing,+      openedBy = Prelude.Nothing,+      resourceArn = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      sample = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_,+      recipeName = pRecipeName_+    }++-- | The ID of the Amazon Web Services account that owns the project.+project_accountId :: Lens.Lens' Project (Prelude.Maybe Prelude.Text)+project_accountId = Lens.lens (\Project' {accountId} -> accountId) (\s@Project' {} a -> s {accountId = a} :: Project)++-- | The date and time that the project was created.+project_createDate :: Lens.Lens' Project (Prelude.Maybe Prelude.UTCTime)+project_createDate = Lens.lens (\Project' {createDate} -> createDate) (\s@Project' {} a -> s {createDate = a} :: Project) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the user who crated the project.+project_createdBy :: Lens.Lens' Project (Prelude.Maybe Prelude.Text)+project_createdBy = Lens.lens (\Project' {createdBy} -> createdBy) (\s@Project' {} a -> s {createdBy = a} :: Project)++-- | The dataset that the project is to act upon.+project_datasetName :: Lens.Lens' Project (Prelude.Maybe Prelude.Text)+project_datasetName = Lens.lens (\Project' {datasetName} -> datasetName) (\s@Project' {} a -> s {datasetName = a} :: Project)++-- | The Amazon Resource Name (ARN) of the user who last modified the+-- project.+project_lastModifiedBy :: Lens.Lens' Project (Prelude.Maybe Prelude.Text)+project_lastModifiedBy = Lens.lens (\Project' {lastModifiedBy} -> lastModifiedBy) (\s@Project' {} a -> s {lastModifiedBy = a} :: Project)++-- | The last modification date and time for the project.+project_lastModifiedDate :: Lens.Lens' Project (Prelude.Maybe Prelude.UTCTime)+project_lastModifiedDate = Lens.lens (\Project' {lastModifiedDate} -> lastModifiedDate) (\s@Project' {} a -> s {lastModifiedDate = a} :: Project) Prelude.. Lens.mapping Data._Time++-- | The date and time when the project was opened.+project_openDate :: Lens.Lens' Project (Prelude.Maybe Prelude.UTCTime)+project_openDate = Lens.lens (\Project' {openDate} -> openDate) (\s@Project' {} a -> s {openDate = a} :: Project) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the user that opened the project for+-- use.+project_openedBy :: Lens.Lens' Project (Prelude.Maybe Prelude.Text)+project_openedBy = Lens.lens (\Project' {openedBy} -> openedBy) (\s@Project' {} a -> s {openedBy = a} :: Project)++-- | The Amazon Resource Name (ARN) for the project.+project_resourceArn :: Lens.Lens' Project (Prelude.Maybe Prelude.Text)+project_resourceArn = Lens.lens (\Project' {resourceArn} -> resourceArn) (\s@Project' {} a -> s {resourceArn = a} :: Project)++-- | The Amazon Resource Name (ARN) of the role that will be assumed for this+-- project.+project_roleArn :: Lens.Lens' Project (Prelude.Maybe Prelude.Text)+project_roleArn = Lens.lens (\Project' {roleArn} -> roleArn) (\s@Project' {} a -> s {roleArn = a} :: Project)++-- | The sample size and sampling type to apply to the data. If this+-- parameter isn\'t specified, then the sample consists of the first 500+-- rows from the dataset.+project_sample :: Lens.Lens' Project (Prelude.Maybe Sample)+project_sample = Lens.lens (\Project' {sample} -> sample) (\s@Project' {} a -> s {sample = a} :: Project)++-- | Metadata tags that have been applied to the project.+project_tags :: Lens.Lens' Project (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+project_tags = Lens.lens (\Project' {tags} -> tags) (\s@Project' {} a -> s {tags = a} :: Project) Prelude.. Lens.mapping Lens.coerced++-- | The unique name of a project.+project_name :: Lens.Lens' Project Prelude.Text+project_name = Lens.lens (\Project' {name} -> name) (\s@Project' {} a -> s {name = a} :: Project)++-- | The name of a recipe that will be developed during a project session.+project_recipeName :: Lens.Lens' Project Prelude.Text+project_recipeName = Lens.lens (\Project' {recipeName} -> recipeName) (\s@Project' {} a -> s {recipeName = a} :: Project)++instance Data.FromJSON Project where+  parseJSON =+    Data.withObject+      "Project"+      ( \x ->+          Project'+            Prelude.<$> (x Data..:? "AccountId")+            Prelude.<*> (x Data..:? "CreateDate")+            Prelude.<*> (x Data..:? "CreatedBy")+            Prelude.<*> (x Data..:? "DatasetName")+            Prelude.<*> (x Data..:? "LastModifiedBy")+            Prelude.<*> (x Data..:? "LastModifiedDate")+            Prelude.<*> (x Data..:? "OpenDate")+            Prelude.<*> (x Data..:? "OpenedBy")+            Prelude.<*> (x Data..:? "ResourceArn")+            Prelude.<*> (x Data..:? "RoleArn")+            Prelude.<*> (x Data..:? "Sample")+            Prelude.<*> (x Data..:? "Tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "Name")+            Prelude.<*> (x Data..: "RecipeName")+      )++instance Prelude.Hashable Project where+  hashWithSalt _salt Project' {..} =+    _salt+      `Prelude.hashWithSalt` accountId+      `Prelude.hashWithSalt` createDate+      `Prelude.hashWithSalt` createdBy+      `Prelude.hashWithSalt` datasetName+      `Prelude.hashWithSalt` lastModifiedBy+      `Prelude.hashWithSalt` lastModifiedDate+      `Prelude.hashWithSalt` openDate+      `Prelude.hashWithSalt` openedBy+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` sample+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` recipeName++instance Prelude.NFData Project where+  rnf Project' {..} =+    Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf createDate+      `Prelude.seq` Prelude.rnf createdBy+      `Prelude.seq` Prelude.rnf datasetName+      `Prelude.seq` Prelude.rnf lastModifiedBy+      `Prelude.seq` Prelude.rnf lastModifiedDate+      `Prelude.seq` Prelude.rnf openDate+      `Prelude.seq` Prelude.rnf openedBy+      `Prelude.seq` Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf sample+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf recipeName
+ gen/Amazonka/DataBrew/Types/Recipe.hs view
@@ -0,0 +1,252 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.Recipe+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.Recipe where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.RecipeStep+import qualified Amazonka.Prelude as Prelude++-- | Represents one or more actions to be performed on a DataBrew dataset.+--+-- /See:/ 'newRecipe' smart constructor.+data Recipe = Recipe'+  { -- | The date and time that the recipe was created.+    createDate :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the user who created the recipe.+    createdBy :: Prelude.Maybe Prelude.Text,+    -- | The description of the recipe.+    description :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the user who last modified the recipe.+    lastModifiedBy :: Prelude.Maybe Prelude.Text,+    -- | The last modification date and time of the recipe.+    lastModifiedDate :: Prelude.Maybe Data.POSIX,+    -- | The name of the project that the recipe is associated with.+    projectName :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the user who published the recipe.+    publishedBy :: Prelude.Maybe Prelude.Text,+    -- | The date and time when the recipe was published.+    publishedDate :: Prelude.Maybe Data.POSIX,+    -- | The identifier for the version for the recipe. Must be one of the+    -- following:+    --+    -- -   Numeric version (@X.Y@) - @X@ and @Y@ stand for major and minor+    --     version numbers. The maximum length of each is 6 digits, and neither+    --     can be negative values. Both @X@ and @Y@ are required, and \"0.0\"+    --     isn\'t a valid version.+    --+    -- -   @LATEST_WORKING@ - the most recent valid version being developed in+    --     a DataBrew project.+    --+    -- -   @LATEST_PUBLISHED@ - the most recent published version.+    recipeVersion :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) for the recipe.+    resourceArn :: Prelude.Maybe Prelude.Text,+    -- | A list of steps that are defined by the recipe.+    steps :: Prelude.Maybe [RecipeStep],+    -- | Metadata tags that have been applied to the recipe.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The unique name for the recipe.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Recipe' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createDate', 'recipe_createDate' - The date and time that the recipe was created.+--+-- 'createdBy', 'recipe_createdBy' - The Amazon Resource Name (ARN) of the user who created the recipe.+--+-- 'description', 'recipe_description' - The description of the recipe.+--+-- 'lastModifiedBy', 'recipe_lastModifiedBy' - The Amazon Resource Name (ARN) of the user who last modified the recipe.+--+-- 'lastModifiedDate', 'recipe_lastModifiedDate' - The last modification date and time of the recipe.+--+-- 'projectName', 'recipe_projectName' - The name of the project that the recipe is associated with.+--+-- 'publishedBy', 'recipe_publishedBy' - The Amazon Resource Name (ARN) of the user who published the recipe.+--+-- 'publishedDate', 'recipe_publishedDate' - The date and time when the recipe was published.+--+-- 'recipeVersion', 'recipe_recipeVersion' - The identifier for the version for the recipe. Must be one of the+-- following:+--+-- -   Numeric version (@X.Y@) - @X@ and @Y@ stand for major and minor+--     version numbers. The maximum length of each is 6 digits, and neither+--     can be negative values. Both @X@ and @Y@ are required, and \"0.0\"+--     isn\'t a valid version.+--+-- -   @LATEST_WORKING@ - the most recent valid version being developed in+--     a DataBrew project.+--+-- -   @LATEST_PUBLISHED@ - the most recent published version.+--+-- 'resourceArn', 'recipe_resourceArn' - The Amazon Resource Name (ARN) for the recipe.+--+-- 'steps', 'recipe_steps' - A list of steps that are defined by the recipe.+--+-- 'tags', 'recipe_tags' - Metadata tags that have been applied to the recipe.+--+-- 'name', 'recipe_name' - The unique name for the recipe.+newRecipe ::+  -- | 'name'+  Prelude.Text ->+  Recipe+newRecipe pName_ =+  Recipe'+    { createDate = Prelude.Nothing,+      createdBy = Prelude.Nothing,+      description = Prelude.Nothing,+      lastModifiedBy = Prelude.Nothing,+      lastModifiedDate = Prelude.Nothing,+      projectName = Prelude.Nothing,+      publishedBy = Prelude.Nothing,+      publishedDate = Prelude.Nothing,+      recipeVersion = Prelude.Nothing,+      resourceArn = Prelude.Nothing,+      steps = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_+    }++-- | The date and time that the recipe was created.+recipe_createDate :: Lens.Lens' Recipe (Prelude.Maybe Prelude.UTCTime)+recipe_createDate = Lens.lens (\Recipe' {createDate} -> createDate) (\s@Recipe' {} a -> s {createDate = a} :: Recipe) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the user who created the recipe.+recipe_createdBy :: Lens.Lens' Recipe (Prelude.Maybe Prelude.Text)+recipe_createdBy = Lens.lens (\Recipe' {createdBy} -> createdBy) (\s@Recipe' {} a -> s {createdBy = a} :: Recipe)++-- | The description of the recipe.+recipe_description :: Lens.Lens' Recipe (Prelude.Maybe Prelude.Text)+recipe_description = Lens.lens (\Recipe' {description} -> description) (\s@Recipe' {} a -> s {description = a} :: Recipe)++-- | The Amazon Resource Name (ARN) of the user who last modified the recipe.+recipe_lastModifiedBy :: Lens.Lens' Recipe (Prelude.Maybe Prelude.Text)+recipe_lastModifiedBy = Lens.lens (\Recipe' {lastModifiedBy} -> lastModifiedBy) (\s@Recipe' {} a -> s {lastModifiedBy = a} :: Recipe)++-- | The last modification date and time of the recipe.+recipe_lastModifiedDate :: Lens.Lens' Recipe (Prelude.Maybe Prelude.UTCTime)+recipe_lastModifiedDate = Lens.lens (\Recipe' {lastModifiedDate} -> lastModifiedDate) (\s@Recipe' {} a -> s {lastModifiedDate = a} :: Recipe) Prelude.. Lens.mapping Data._Time++-- | The name of the project that the recipe is associated with.+recipe_projectName :: Lens.Lens' Recipe (Prelude.Maybe Prelude.Text)+recipe_projectName = Lens.lens (\Recipe' {projectName} -> projectName) (\s@Recipe' {} a -> s {projectName = a} :: Recipe)++-- | The Amazon Resource Name (ARN) of the user who published the recipe.+recipe_publishedBy :: Lens.Lens' Recipe (Prelude.Maybe Prelude.Text)+recipe_publishedBy = Lens.lens (\Recipe' {publishedBy} -> publishedBy) (\s@Recipe' {} a -> s {publishedBy = a} :: Recipe)++-- | The date and time when the recipe was published.+recipe_publishedDate :: Lens.Lens' Recipe (Prelude.Maybe Prelude.UTCTime)+recipe_publishedDate = Lens.lens (\Recipe' {publishedDate} -> publishedDate) (\s@Recipe' {} a -> s {publishedDate = a} :: Recipe) Prelude.. Lens.mapping Data._Time++-- | The identifier for the version for the recipe. Must be one of the+-- following:+--+-- -   Numeric version (@X.Y@) - @X@ and @Y@ stand for major and minor+--     version numbers. The maximum length of each is 6 digits, and neither+--     can be negative values. Both @X@ and @Y@ are required, and \"0.0\"+--     isn\'t a valid version.+--+-- -   @LATEST_WORKING@ - the most recent valid version being developed in+--     a DataBrew project.+--+-- -   @LATEST_PUBLISHED@ - the most recent published version.+recipe_recipeVersion :: Lens.Lens' Recipe (Prelude.Maybe Prelude.Text)+recipe_recipeVersion = Lens.lens (\Recipe' {recipeVersion} -> recipeVersion) (\s@Recipe' {} a -> s {recipeVersion = a} :: Recipe)++-- | The Amazon Resource Name (ARN) for the recipe.+recipe_resourceArn :: Lens.Lens' Recipe (Prelude.Maybe Prelude.Text)+recipe_resourceArn = Lens.lens (\Recipe' {resourceArn} -> resourceArn) (\s@Recipe' {} a -> s {resourceArn = a} :: Recipe)++-- | A list of steps that are defined by the recipe.+recipe_steps :: Lens.Lens' Recipe (Prelude.Maybe [RecipeStep])+recipe_steps = Lens.lens (\Recipe' {steps} -> steps) (\s@Recipe' {} a -> s {steps = a} :: Recipe) Prelude.. Lens.mapping Lens.coerced++-- | Metadata tags that have been applied to the recipe.+recipe_tags :: Lens.Lens' Recipe (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+recipe_tags = Lens.lens (\Recipe' {tags} -> tags) (\s@Recipe' {} a -> s {tags = a} :: Recipe) Prelude.. Lens.mapping Lens.coerced++-- | The unique name for the recipe.+recipe_name :: Lens.Lens' Recipe Prelude.Text+recipe_name = Lens.lens (\Recipe' {name} -> name) (\s@Recipe' {} a -> s {name = a} :: Recipe)++instance Data.FromJSON Recipe where+  parseJSON =+    Data.withObject+      "Recipe"+      ( \x ->+          Recipe'+            Prelude.<$> (x Data..:? "CreateDate")+            Prelude.<*> (x Data..:? "CreatedBy")+            Prelude.<*> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "LastModifiedBy")+            Prelude.<*> (x Data..:? "LastModifiedDate")+            Prelude.<*> (x Data..:? "ProjectName")+            Prelude.<*> (x Data..:? "PublishedBy")+            Prelude.<*> (x Data..:? "PublishedDate")+            Prelude.<*> (x Data..:? "RecipeVersion")+            Prelude.<*> (x Data..:? "ResourceArn")+            Prelude.<*> (x Data..:? "Steps" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "Name")+      )++instance Prelude.Hashable Recipe where+  hashWithSalt _salt Recipe' {..} =+    _salt+      `Prelude.hashWithSalt` createDate+      `Prelude.hashWithSalt` createdBy+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` lastModifiedBy+      `Prelude.hashWithSalt` lastModifiedDate+      `Prelude.hashWithSalt` projectName+      `Prelude.hashWithSalt` publishedBy+      `Prelude.hashWithSalt` publishedDate+      `Prelude.hashWithSalt` recipeVersion+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` steps+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name++instance Prelude.NFData Recipe where+  rnf Recipe' {..} =+    Prelude.rnf createDate+      `Prelude.seq` Prelude.rnf createdBy+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastModifiedBy+      `Prelude.seq` Prelude.rnf lastModifiedDate+      `Prelude.seq` Prelude.rnf projectName+      `Prelude.seq` Prelude.rnf publishedBy+      `Prelude.seq` Prelude.rnf publishedDate+      `Prelude.seq` Prelude.rnf recipeVersion+      `Prelude.seq` Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf steps+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/Types/RecipeAction.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.RecipeAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.RecipeAction 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++-- | Represents a transformation and associated parameters that are used to+-- apply a change to a DataBrew dataset. For more information, see+-- <https://docs.aws.amazon.com/databrew/latest/dg/recipe-actions-reference.html Recipe actions reference>.+--+-- /See:/ 'newRecipeAction' smart constructor.+data RecipeAction = RecipeAction'+  { -- | Contextual parameters for the transformation.+    parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name of a valid DataBrew transformation to be performed on the data.+    operation :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RecipeAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'parameters', 'recipeAction_parameters' - Contextual parameters for the transformation.+--+-- 'operation', 'recipeAction_operation' - The name of a valid DataBrew transformation to be performed on the data.+newRecipeAction ::+  -- | 'operation'+  Prelude.Text ->+  RecipeAction+newRecipeAction pOperation_ =+  RecipeAction'+    { parameters = Prelude.Nothing,+      operation = pOperation_+    }++-- | Contextual parameters for the transformation.+recipeAction_parameters :: Lens.Lens' RecipeAction (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+recipeAction_parameters = Lens.lens (\RecipeAction' {parameters} -> parameters) (\s@RecipeAction' {} a -> s {parameters = a} :: RecipeAction) Prelude.. Lens.mapping Lens.coerced++-- | The name of a valid DataBrew transformation to be performed on the data.+recipeAction_operation :: Lens.Lens' RecipeAction Prelude.Text+recipeAction_operation = Lens.lens (\RecipeAction' {operation} -> operation) (\s@RecipeAction' {} a -> s {operation = a} :: RecipeAction)++instance Data.FromJSON RecipeAction where+  parseJSON =+    Data.withObject+      "RecipeAction"+      ( \x ->+          RecipeAction'+            Prelude.<$> (x Data..:? "Parameters" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "Operation")+      )++instance Prelude.Hashable RecipeAction where+  hashWithSalt _salt RecipeAction' {..} =+    _salt+      `Prelude.hashWithSalt` parameters+      `Prelude.hashWithSalt` operation++instance Prelude.NFData RecipeAction where+  rnf RecipeAction' {..} =+    Prelude.rnf parameters+      `Prelude.seq` Prelude.rnf operation++instance Data.ToJSON RecipeAction where+  toJSON RecipeAction' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Parameters" Data..=) Prelude.<$> parameters,+            Prelude.Just ("Operation" Data..= operation)+          ]+      )
+ gen/Amazonka/DataBrew/Types/RecipeReference.hs view
@@ -0,0 +1,95 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.RecipeReference+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.RecipeReference 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++-- | Represents the name and version of a DataBrew recipe.+--+-- /See:/ 'newRecipeReference' smart constructor.+data RecipeReference = RecipeReference'+  { -- | The identifier for the version for the recipe.+    recipeVersion :: Prelude.Maybe Prelude.Text,+    -- | The name of the recipe.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RecipeReference' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'recipeVersion', 'recipeReference_recipeVersion' - The identifier for the version for the recipe.+--+-- 'name', 'recipeReference_name' - The name of the recipe.+newRecipeReference ::+  -- | 'name'+  Prelude.Text ->+  RecipeReference+newRecipeReference pName_ =+  RecipeReference'+    { recipeVersion = Prelude.Nothing,+      name = pName_+    }++-- | The identifier for the version for the recipe.+recipeReference_recipeVersion :: Lens.Lens' RecipeReference (Prelude.Maybe Prelude.Text)+recipeReference_recipeVersion = Lens.lens (\RecipeReference' {recipeVersion} -> recipeVersion) (\s@RecipeReference' {} a -> s {recipeVersion = a} :: RecipeReference)++-- | The name of the recipe.+recipeReference_name :: Lens.Lens' RecipeReference Prelude.Text+recipeReference_name = Lens.lens (\RecipeReference' {name} -> name) (\s@RecipeReference' {} a -> s {name = a} :: RecipeReference)++instance Data.FromJSON RecipeReference where+  parseJSON =+    Data.withObject+      "RecipeReference"+      ( \x ->+          RecipeReference'+            Prelude.<$> (x Data..:? "RecipeVersion")+            Prelude.<*> (x Data..: "Name")+      )++instance Prelude.Hashable RecipeReference where+  hashWithSalt _salt RecipeReference' {..} =+    _salt+      `Prelude.hashWithSalt` recipeVersion+      `Prelude.hashWithSalt` name++instance Prelude.NFData RecipeReference where+  rnf RecipeReference' {..} =+    Prelude.rnf recipeVersion+      `Prelude.seq` Prelude.rnf name++instance Data.ToJSON RecipeReference where+  toJSON RecipeReference' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("RecipeVersion" Data..=) Prelude.<$> recipeVersion,+            Prelude.Just ("Name" Data..= name)+          ]+      )
+ gen/Amazonka/DataBrew/Types/RecipeStep.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.RecipeStep+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.RecipeStep where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.ConditionExpression+import Amazonka.DataBrew.Types.RecipeAction+import qualified Amazonka.Prelude as Prelude++-- | Represents a single step from a DataBrew recipe to be performed.+--+-- /See:/ 'newRecipeStep' smart constructor.+data RecipeStep = RecipeStep'+  { -- | One or more conditions that must be met for the recipe step to succeed.+    --+    -- All of the conditions in the array must be met. In other words, all of+    -- the conditions must be combined using a logical AND operation.+    conditionExpressions :: Prelude.Maybe [ConditionExpression],+    -- | The particular action to be performed in the recipe step.+    action :: RecipeAction+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RecipeStep' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'conditionExpressions', 'recipeStep_conditionExpressions' - One or more conditions that must be met for the recipe step to succeed.+--+-- All of the conditions in the array must be met. In other words, all of+-- the conditions must be combined using a logical AND operation.+--+-- 'action', 'recipeStep_action' - The particular action to be performed in the recipe step.+newRecipeStep ::+  -- | 'action'+  RecipeAction ->+  RecipeStep+newRecipeStep pAction_ =+  RecipeStep'+    { conditionExpressions = Prelude.Nothing,+      action = pAction_+    }++-- | One or more conditions that must be met for the recipe step to succeed.+--+-- All of the conditions in the array must be met. In other words, all of+-- the conditions must be combined using a logical AND operation.+recipeStep_conditionExpressions :: Lens.Lens' RecipeStep (Prelude.Maybe [ConditionExpression])+recipeStep_conditionExpressions = Lens.lens (\RecipeStep' {conditionExpressions} -> conditionExpressions) (\s@RecipeStep' {} a -> s {conditionExpressions = a} :: RecipeStep) Prelude.. Lens.mapping Lens.coerced++-- | The particular action to be performed in the recipe step.+recipeStep_action :: Lens.Lens' RecipeStep RecipeAction+recipeStep_action = Lens.lens (\RecipeStep' {action} -> action) (\s@RecipeStep' {} a -> s {action = a} :: RecipeStep)++instance Data.FromJSON RecipeStep where+  parseJSON =+    Data.withObject+      "RecipeStep"+      ( \x ->+          RecipeStep'+            Prelude.<$> ( x+                            Data..:? "ConditionExpressions"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "Action")+      )++instance Prelude.Hashable RecipeStep where+  hashWithSalt _salt RecipeStep' {..} =+    _salt+      `Prelude.hashWithSalt` conditionExpressions+      `Prelude.hashWithSalt` action++instance Prelude.NFData RecipeStep where+  rnf RecipeStep' {..} =+    Prelude.rnf conditionExpressions+      `Prelude.seq` Prelude.rnf action++instance Data.ToJSON RecipeStep where+  toJSON RecipeStep' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ConditionExpressions" Data..=)+              Prelude.<$> conditionExpressions,+            Prelude.Just ("Action" Data..= action)+          ]+      )
+ gen/Amazonka/DataBrew/Types/RecipeVersionErrorDetail.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.RecipeVersionErrorDetail+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.RecipeVersionErrorDetail 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++-- | Represents any errors encountered when attempting to delete multiple+-- recipe versions.+--+-- /See:/ 'newRecipeVersionErrorDetail' smart constructor.+data RecipeVersionErrorDetail = RecipeVersionErrorDetail'+  { -- | The HTTP status code for the error.+    errorCode :: Prelude.Maybe Prelude.Text,+    -- | The text of the error message.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | The identifier for the recipe version associated with this error.+    recipeVersion :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RecipeVersionErrorDetail' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'errorCode', 'recipeVersionErrorDetail_errorCode' - The HTTP status code for the error.+--+-- 'errorMessage', 'recipeVersionErrorDetail_errorMessage' - The text of the error message.+--+-- 'recipeVersion', 'recipeVersionErrorDetail_recipeVersion' - The identifier for the recipe version associated with this error.+newRecipeVersionErrorDetail ::+  RecipeVersionErrorDetail+newRecipeVersionErrorDetail =+  RecipeVersionErrorDetail'+    { errorCode =+        Prelude.Nothing,+      errorMessage = Prelude.Nothing,+      recipeVersion = Prelude.Nothing+    }++-- | The HTTP status code for the error.+recipeVersionErrorDetail_errorCode :: Lens.Lens' RecipeVersionErrorDetail (Prelude.Maybe Prelude.Text)+recipeVersionErrorDetail_errorCode = Lens.lens (\RecipeVersionErrorDetail' {errorCode} -> errorCode) (\s@RecipeVersionErrorDetail' {} a -> s {errorCode = a} :: RecipeVersionErrorDetail)++-- | The text of the error message.+recipeVersionErrorDetail_errorMessage :: Lens.Lens' RecipeVersionErrorDetail (Prelude.Maybe Prelude.Text)+recipeVersionErrorDetail_errorMessage = Lens.lens (\RecipeVersionErrorDetail' {errorMessage} -> errorMessage) (\s@RecipeVersionErrorDetail' {} a -> s {errorMessage = a} :: RecipeVersionErrorDetail)++-- | The identifier for the recipe version associated with this error.+recipeVersionErrorDetail_recipeVersion :: Lens.Lens' RecipeVersionErrorDetail (Prelude.Maybe Prelude.Text)+recipeVersionErrorDetail_recipeVersion = Lens.lens (\RecipeVersionErrorDetail' {recipeVersion} -> recipeVersion) (\s@RecipeVersionErrorDetail' {} a -> s {recipeVersion = a} :: RecipeVersionErrorDetail)++instance Data.FromJSON RecipeVersionErrorDetail where+  parseJSON =+    Data.withObject+      "RecipeVersionErrorDetail"+      ( \x ->+          RecipeVersionErrorDetail'+            Prelude.<$> (x Data..:? "ErrorCode")+            Prelude.<*> (x Data..:? "ErrorMessage")+            Prelude.<*> (x Data..:? "RecipeVersion")+      )++instance Prelude.Hashable RecipeVersionErrorDetail where+  hashWithSalt _salt RecipeVersionErrorDetail' {..} =+    _salt+      `Prelude.hashWithSalt` errorCode+      `Prelude.hashWithSalt` errorMessage+      `Prelude.hashWithSalt` recipeVersion++instance Prelude.NFData RecipeVersionErrorDetail where+  rnf RecipeVersionErrorDetail' {..} =+    Prelude.rnf errorCode+      `Prelude.seq` Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf recipeVersion
+ gen/Amazonka/DataBrew/Types/Rule.hs view
@@ -0,0 +1,230 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.Rule+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.Rule where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.ColumnSelector+import Amazonka.DataBrew.Types.Threshold+import qualified Amazonka.Prelude as Prelude++-- | Represents a single data quality requirement that should be validated in+-- the scope of this dataset.+--+-- /See:/ 'newRule' smart constructor.+data Rule = Rule'+  { -- | List of column selectors. Selectors can be used to select columns using+    -- a name or regular expression from the dataset. Rule will be applied to+    -- selected columns.+    columnSelectors :: Prelude.Maybe (Prelude.NonEmpty ColumnSelector),+    -- | A value that specifies whether the rule is disabled. Once a rule is+    -- disabled, a profile job will not validate it during a job run. Default+    -- value is false.+    disabled :: Prelude.Maybe Prelude.Bool,+    -- | The map of substitution variable names to their values used in a check+    -- expression. Variable names should start with a \':\' (colon). Variable+    -- values can either be actual values or column names. To differentiate+    -- between the two, column names should be enclosed in backticks, for+    -- example, @\":col1\": \"\`Column A\`\".@+    substitutionMap :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The threshold used with a non-aggregate check expression. Non-aggregate+    -- check expressions will be applied to each row in a specific column, and+    -- the threshold will be used to determine whether the validation succeeds.+    threshold :: Prelude.Maybe Threshold,+    -- | The name of the rule.+    name :: Prelude.Text,+    -- | The expression which includes column references, condition names+    -- followed by variable references, possibly grouped and combined with+    -- other conditions. For example,+    -- @(:col1 starts_with :prefix1 or :col1 starts_with :prefix2) and (:col1 ends_with :suffix1 or :col1 ends_with :suffix2)@.+    -- Column and value references are substitution variables that should start+    -- with the \':\' symbol. Depending on the context, substitution+    -- variables\' values can be either an actual value or a column name. These+    -- values are defined in the SubstitutionMap. If a CheckExpression starts+    -- with a column reference, then ColumnSelectors in the rule should be+    -- null. If ColumnSelectors has been defined, then there should be no+    -- column reference in the left side of a condition, for example,+    -- @is_between :val1 and :val2@.+    --+    -- For more information, see+    -- <https://docs.aws.amazon.com/databrew/latest/dg/profile.data-quality-available-checks.html Available checks>+    checkExpression :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Rule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'columnSelectors', 'rule_columnSelectors' - List of column selectors. Selectors can be used to select columns using+-- a name or regular expression from the dataset. Rule will be applied to+-- selected columns.+--+-- 'disabled', 'rule_disabled' - A value that specifies whether the rule is disabled. Once a rule is+-- disabled, a profile job will not validate it during a job run. Default+-- value is false.+--+-- 'substitutionMap', 'rule_substitutionMap' - The map of substitution variable names to their values used in a check+-- expression. Variable names should start with a \':\' (colon). Variable+-- values can either be actual values or column names. To differentiate+-- between the two, column names should be enclosed in backticks, for+-- example, @\":col1\": \"\`Column A\`\".@+--+-- 'threshold', 'rule_threshold' - The threshold used with a non-aggregate check expression. Non-aggregate+-- check expressions will be applied to each row in a specific column, and+-- the threshold will be used to determine whether the validation succeeds.+--+-- 'name', 'rule_name' - The name of the rule.+--+-- 'checkExpression', 'rule_checkExpression' - The expression which includes column references, condition names+-- followed by variable references, possibly grouped and combined with+-- other conditions. For example,+-- @(:col1 starts_with :prefix1 or :col1 starts_with :prefix2) and (:col1 ends_with :suffix1 or :col1 ends_with :suffix2)@.+-- Column and value references are substitution variables that should start+-- with the \':\' symbol. Depending on the context, substitution+-- variables\' values can be either an actual value or a column name. These+-- values are defined in the SubstitutionMap. If a CheckExpression starts+-- with a column reference, then ColumnSelectors in the rule should be+-- null. If ColumnSelectors has been defined, then there should be no+-- column reference in the left side of a condition, for example,+-- @is_between :val1 and :val2@.+--+-- For more information, see+-- <https://docs.aws.amazon.com/databrew/latest/dg/profile.data-quality-available-checks.html Available checks>+newRule ::+  -- | 'name'+  Prelude.Text ->+  -- | 'checkExpression'+  Prelude.Text ->+  Rule+newRule pName_ pCheckExpression_ =+  Rule'+    { columnSelectors = Prelude.Nothing,+      disabled = Prelude.Nothing,+      substitutionMap = Prelude.Nothing,+      threshold = Prelude.Nothing,+      name = pName_,+      checkExpression = pCheckExpression_+    }++-- | List of column selectors. Selectors can be used to select columns using+-- a name or regular expression from the dataset. Rule will be applied to+-- selected columns.+rule_columnSelectors :: Lens.Lens' Rule (Prelude.Maybe (Prelude.NonEmpty ColumnSelector))+rule_columnSelectors = Lens.lens (\Rule' {columnSelectors} -> columnSelectors) (\s@Rule' {} a -> s {columnSelectors = a} :: Rule) Prelude.. Lens.mapping Lens.coerced++-- | A value that specifies whether the rule is disabled. Once a rule is+-- disabled, a profile job will not validate it during a job run. Default+-- value is false.+rule_disabled :: Lens.Lens' Rule (Prelude.Maybe Prelude.Bool)+rule_disabled = Lens.lens (\Rule' {disabled} -> disabled) (\s@Rule' {} a -> s {disabled = a} :: Rule)++-- | The map of substitution variable names to their values used in a check+-- expression. Variable names should start with a \':\' (colon). Variable+-- values can either be actual values or column names. To differentiate+-- between the two, column names should be enclosed in backticks, for+-- example, @\":col1\": \"\`Column A\`\".@+rule_substitutionMap :: Lens.Lens' Rule (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+rule_substitutionMap = Lens.lens (\Rule' {substitutionMap} -> substitutionMap) (\s@Rule' {} a -> s {substitutionMap = a} :: Rule) Prelude.. Lens.mapping Lens.coerced++-- | The threshold used with a non-aggregate check expression. Non-aggregate+-- check expressions will be applied to each row in a specific column, and+-- the threshold will be used to determine whether the validation succeeds.+rule_threshold :: Lens.Lens' Rule (Prelude.Maybe Threshold)+rule_threshold = Lens.lens (\Rule' {threshold} -> threshold) (\s@Rule' {} a -> s {threshold = a} :: Rule)++-- | The name of the rule.+rule_name :: Lens.Lens' Rule Prelude.Text+rule_name = Lens.lens (\Rule' {name} -> name) (\s@Rule' {} a -> s {name = a} :: Rule)++-- | The expression which includes column references, condition names+-- followed by variable references, possibly grouped and combined with+-- other conditions. For example,+-- @(:col1 starts_with :prefix1 or :col1 starts_with :prefix2) and (:col1 ends_with :suffix1 or :col1 ends_with :suffix2)@.+-- Column and value references are substitution variables that should start+-- with the \':\' symbol. Depending on the context, substitution+-- variables\' values can be either an actual value or a column name. These+-- values are defined in the SubstitutionMap. If a CheckExpression starts+-- with a column reference, then ColumnSelectors in the rule should be+-- null. If ColumnSelectors has been defined, then there should be no+-- column reference in the left side of a condition, for example,+-- @is_between :val1 and :val2@.+--+-- For more information, see+-- <https://docs.aws.amazon.com/databrew/latest/dg/profile.data-quality-available-checks.html Available checks>+rule_checkExpression :: Lens.Lens' Rule Prelude.Text+rule_checkExpression = Lens.lens (\Rule' {checkExpression} -> checkExpression) (\s@Rule' {} a -> s {checkExpression = a} :: Rule)++instance Data.FromJSON Rule where+  parseJSON =+    Data.withObject+      "Rule"+      ( \x ->+          Rule'+            Prelude.<$> (x Data..:? "ColumnSelectors")+            Prelude.<*> (x Data..:? "Disabled")+            Prelude.<*> ( x+                            Data..:? "SubstitutionMap"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "Threshold")+            Prelude.<*> (x Data..: "Name")+            Prelude.<*> (x Data..: "CheckExpression")+      )++instance Prelude.Hashable Rule where+  hashWithSalt _salt Rule' {..} =+    _salt+      `Prelude.hashWithSalt` columnSelectors+      `Prelude.hashWithSalt` disabled+      `Prelude.hashWithSalt` substitutionMap+      `Prelude.hashWithSalt` threshold+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` checkExpression++instance Prelude.NFData Rule where+  rnf Rule' {..} =+    Prelude.rnf columnSelectors+      `Prelude.seq` Prelude.rnf disabled+      `Prelude.seq` Prelude.rnf substitutionMap+      `Prelude.seq` Prelude.rnf threshold+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf checkExpression++instance Data.ToJSON Rule where+  toJSON Rule' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ColumnSelectors" Data..=)+              Prelude.<$> columnSelectors,+            ("Disabled" Data..=) Prelude.<$> disabled,+            ("SubstitutionMap" Data..=)+              Prelude.<$> substitutionMap,+            ("Threshold" Data..=) Prelude.<$> threshold,+            Prelude.Just ("Name" Data..= name),+            Prelude.Just+              ("CheckExpression" Data..= checkExpression)+          ]+      )
+ gen/Amazonka/DataBrew/Types/RulesetItem.hs view
@@ -0,0 +1,202 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.RulesetItem+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.RulesetItem 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 metadata about the ruleset.+--+-- /See:/ 'newRulesetItem' smart constructor.+data RulesetItem = RulesetItem'+  { -- | The ID of the Amazon Web Services account that owns the ruleset.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the ruleset was created.+    createDate :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the user who created the ruleset.+    createdBy :: Prelude.Maybe Prelude.Text,+    -- | The description of the ruleset.+    description :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the user who last modified the+    -- ruleset.+    lastModifiedBy :: Prelude.Maybe Prelude.Text,+    -- | The modification date and time of the ruleset.+    lastModifiedDate :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) for the ruleset.+    resourceArn :: Prelude.Maybe Prelude.Text,+    -- | The number of rules that are defined in the ruleset.+    ruleCount :: Prelude.Maybe Prelude.Natural,+    -- | Metadata tags that have been applied to the ruleset.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name of the ruleset.+    name :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of a resource (dataset) that the ruleset+    -- is associated with.+    targetArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RulesetItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'rulesetItem_accountId' - The ID of the Amazon Web Services account that owns the ruleset.+--+-- 'createDate', 'rulesetItem_createDate' - The date and time that the ruleset was created.+--+-- 'createdBy', 'rulesetItem_createdBy' - The Amazon Resource Name (ARN) of the user who created the ruleset.+--+-- 'description', 'rulesetItem_description' - The description of the ruleset.+--+-- 'lastModifiedBy', 'rulesetItem_lastModifiedBy' - The Amazon Resource Name (ARN) of the user who last modified the+-- ruleset.+--+-- 'lastModifiedDate', 'rulesetItem_lastModifiedDate' - The modification date and time of the ruleset.+--+-- 'resourceArn', 'rulesetItem_resourceArn' - The Amazon Resource Name (ARN) for the ruleset.+--+-- 'ruleCount', 'rulesetItem_ruleCount' - The number of rules that are defined in the ruleset.+--+-- 'tags', 'rulesetItem_tags' - Metadata tags that have been applied to the ruleset.+--+-- 'name', 'rulesetItem_name' - The name of the ruleset.+--+-- 'targetArn', 'rulesetItem_targetArn' - The Amazon Resource Name (ARN) of a resource (dataset) that the ruleset+-- is associated with.+newRulesetItem ::+  -- | 'name'+  Prelude.Text ->+  -- | 'targetArn'+  Prelude.Text ->+  RulesetItem+newRulesetItem pName_ pTargetArn_ =+  RulesetItem'+    { accountId = Prelude.Nothing,+      createDate = Prelude.Nothing,+      createdBy = Prelude.Nothing,+      description = Prelude.Nothing,+      lastModifiedBy = Prelude.Nothing,+      lastModifiedDate = Prelude.Nothing,+      resourceArn = Prelude.Nothing,+      ruleCount = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_,+      targetArn = pTargetArn_+    }++-- | The ID of the Amazon Web Services account that owns the ruleset.+rulesetItem_accountId :: Lens.Lens' RulesetItem (Prelude.Maybe Prelude.Text)+rulesetItem_accountId = Lens.lens (\RulesetItem' {accountId} -> accountId) (\s@RulesetItem' {} a -> s {accountId = a} :: RulesetItem)++-- | The date and time that the ruleset was created.+rulesetItem_createDate :: Lens.Lens' RulesetItem (Prelude.Maybe Prelude.UTCTime)+rulesetItem_createDate = Lens.lens (\RulesetItem' {createDate} -> createDate) (\s@RulesetItem' {} a -> s {createDate = a} :: RulesetItem) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the user who created the ruleset.+rulesetItem_createdBy :: Lens.Lens' RulesetItem (Prelude.Maybe Prelude.Text)+rulesetItem_createdBy = Lens.lens (\RulesetItem' {createdBy} -> createdBy) (\s@RulesetItem' {} a -> s {createdBy = a} :: RulesetItem)++-- | The description of the ruleset.+rulesetItem_description :: Lens.Lens' RulesetItem (Prelude.Maybe Prelude.Text)+rulesetItem_description = Lens.lens (\RulesetItem' {description} -> description) (\s@RulesetItem' {} a -> s {description = a} :: RulesetItem)++-- | The Amazon Resource Name (ARN) of the user who last modified the+-- ruleset.+rulesetItem_lastModifiedBy :: Lens.Lens' RulesetItem (Prelude.Maybe Prelude.Text)+rulesetItem_lastModifiedBy = Lens.lens (\RulesetItem' {lastModifiedBy} -> lastModifiedBy) (\s@RulesetItem' {} a -> s {lastModifiedBy = a} :: RulesetItem)++-- | The modification date and time of the ruleset.+rulesetItem_lastModifiedDate :: Lens.Lens' RulesetItem (Prelude.Maybe Prelude.UTCTime)+rulesetItem_lastModifiedDate = Lens.lens (\RulesetItem' {lastModifiedDate} -> lastModifiedDate) (\s@RulesetItem' {} a -> s {lastModifiedDate = a} :: RulesetItem) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) for the ruleset.+rulesetItem_resourceArn :: Lens.Lens' RulesetItem (Prelude.Maybe Prelude.Text)+rulesetItem_resourceArn = Lens.lens (\RulesetItem' {resourceArn} -> resourceArn) (\s@RulesetItem' {} a -> s {resourceArn = a} :: RulesetItem)++-- | The number of rules that are defined in the ruleset.+rulesetItem_ruleCount :: Lens.Lens' RulesetItem (Prelude.Maybe Prelude.Natural)+rulesetItem_ruleCount = Lens.lens (\RulesetItem' {ruleCount} -> ruleCount) (\s@RulesetItem' {} a -> s {ruleCount = a} :: RulesetItem)++-- | Metadata tags that have been applied to the ruleset.+rulesetItem_tags :: Lens.Lens' RulesetItem (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+rulesetItem_tags = Lens.lens (\RulesetItem' {tags} -> tags) (\s@RulesetItem' {} a -> s {tags = a} :: RulesetItem) Prelude.. Lens.mapping Lens.coerced++-- | The name of the ruleset.+rulesetItem_name :: Lens.Lens' RulesetItem Prelude.Text+rulesetItem_name = Lens.lens (\RulesetItem' {name} -> name) (\s@RulesetItem' {} a -> s {name = a} :: RulesetItem)++-- | The Amazon Resource Name (ARN) of a resource (dataset) that the ruleset+-- is associated with.+rulesetItem_targetArn :: Lens.Lens' RulesetItem Prelude.Text+rulesetItem_targetArn = Lens.lens (\RulesetItem' {targetArn} -> targetArn) (\s@RulesetItem' {} a -> s {targetArn = a} :: RulesetItem)++instance Data.FromJSON RulesetItem where+  parseJSON =+    Data.withObject+      "RulesetItem"+      ( \x ->+          RulesetItem'+            Prelude.<$> (x Data..:? "AccountId")+            Prelude.<*> (x Data..:? "CreateDate")+            Prelude.<*> (x Data..:? "CreatedBy")+            Prelude.<*> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "LastModifiedBy")+            Prelude.<*> (x Data..:? "LastModifiedDate")+            Prelude.<*> (x Data..:? "ResourceArn")+            Prelude.<*> (x Data..:? "RuleCount")+            Prelude.<*> (x Data..:? "Tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "Name")+            Prelude.<*> (x Data..: "TargetArn")+      )++instance Prelude.Hashable RulesetItem where+  hashWithSalt _salt RulesetItem' {..} =+    _salt+      `Prelude.hashWithSalt` accountId+      `Prelude.hashWithSalt` createDate+      `Prelude.hashWithSalt` createdBy+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` lastModifiedBy+      `Prelude.hashWithSalt` lastModifiedDate+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` ruleCount+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` targetArn++instance Prelude.NFData RulesetItem where+  rnf RulesetItem' {..} =+    Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf createDate+      `Prelude.seq` Prelude.rnf createdBy+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastModifiedBy+      `Prelude.seq` Prelude.rnf lastModifiedDate+      `Prelude.seq` Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf ruleCount+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf targetArn
+ gen/Amazonka/DataBrew/Types/S3Location.hs view
@@ -0,0 +1,109 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.S3Location+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.S3Location 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++-- | Represents an Amazon S3 location (bucket name, bucket owner, and object+-- key) where DataBrew can read input data, or write output from a job.+--+-- /See:/ 'newS3Location' smart constructor.+data S3Location = S3Location'+  { -- | The Amazon Web Services account ID of the bucket owner.+    bucketOwner :: Prelude.Maybe Prelude.Text,+    -- | The unique name of the object in the bucket.+    key :: Prelude.Maybe Prelude.Text,+    -- | The Amazon S3 bucket name.+    bucket :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3Location' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bucketOwner', 's3Location_bucketOwner' - The Amazon Web Services account ID of the bucket owner.+--+-- 'key', 's3Location_key' - The unique name of the object in the bucket.+--+-- 'bucket', 's3Location_bucket' - The Amazon S3 bucket name.+newS3Location ::+  -- | 'bucket'+  Prelude.Text ->+  S3Location+newS3Location pBucket_ =+  S3Location'+    { bucketOwner = Prelude.Nothing,+      key = Prelude.Nothing,+      bucket = pBucket_+    }++-- | The Amazon Web Services account ID of the bucket owner.+s3Location_bucketOwner :: Lens.Lens' S3Location (Prelude.Maybe Prelude.Text)+s3Location_bucketOwner = Lens.lens (\S3Location' {bucketOwner} -> bucketOwner) (\s@S3Location' {} a -> s {bucketOwner = a} :: S3Location)++-- | The unique name of the object in the bucket.+s3Location_key :: Lens.Lens' S3Location (Prelude.Maybe Prelude.Text)+s3Location_key = Lens.lens (\S3Location' {key} -> key) (\s@S3Location' {} a -> s {key = a} :: S3Location)++-- | The Amazon S3 bucket name.+s3Location_bucket :: Lens.Lens' S3Location Prelude.Text+s3Location_bucket = Lens.lens (\S3Location' {bucket} -> bucket) (\s@S3Location' {} a -> s {bucket = a} :: S3Location)++instance Data.FromJSON S3Location where+  parseJSON =+    Data.withObject+      "S3Location"+      ( \x ->+          S3Location'+            Prelude.<$> (x Data..:? "BucketOwner")+            Prelude.<*> (x Data..:? "Key")+            Prelude.<*> (x Data..: "Bucket")+      )++instance Prelude.Hashable S3Location where+  hashWithSalt _salt S3Location' {..} =+    _salt+      `Prelude.hashWithSalt` bucketOwner+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` bucket++instance Prelude.NFData S3Location where+  rnf S3Location' {..} =+    Prelude.rnf bucketOwner+      `Prelude.seq` Prelude.rnf key+      `Prelude.seq` Prelude.rnf bucket++instance Data.ToJSON S3Location where+  toJSON S3Location' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BucketOwner" Data..=) Prelude.<$> bucketOwner,+            ("Key" Data..=) Prelude.<$> key,+            Prelude.Just ("Bucket" Data..= bucket)+          ]+      )
+ gen/Amazonka/DataBrew/Types/S3TableOutputOptions.hs view
@@ -0,0 +1,82 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.S3TableOutputOptions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.S3TableOutputOptions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.S3Location+import qualified Amazonka.Prelude as Prelude++-- | Represents options that specify how and where DataBrew writes the Amazon+-- S3 output generated by recipe jobs.+--+-- /See:/ 'newS3TableOutputOptions' smart constructor.+data S3TableOutputOptions = S3TableOutputOptions'+  { -- | Represents an Amazon S3 location (bucket name and object key) where+    -- DataBrew can write output from a job.+    location :: S3Location+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3TableOutputOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'location', 's3TableOutputOptions_location' - Represents an Amazon S3 location (bucket name and object key) where+-- DataBrew can write output from a job.+newS3TableOutputOptions ::+  -- | 'location'+  S3Location ->+  S3TableOutputOptions+newS3TableOutputOptions pLocation_ =+  S3TableOutputOptions' {location = pLocation_}++-- | Represents an Amazon S3 location (bucket name and object key) where+-- DataBrew can write output from a job.+s3TableOutputOptions_location :: Lens.Lens' S3TableOutputOptions S3Location+s3TableOutputOptions_location = Lens.lens (\S3TableOutputOptions' {location} -> location) (\s@S3TableOutputOptions' {} a -> s {location = a} :: S3TableOutputOptions)++instance Data.FromJSON S3TableOutputOptions where+  parseJSON =+    Data.withObject+      "S3TableOutputOptions"+      ( \x ->+          S3TableOutputOptions'+            Prelude.<$> (x Data..: "Location")+      )++instance Prelude.Hashable S3TableOutputOptions where+  hashWithSalt _salt S3TableOutputOptions' {..} =+    _salt `Prelude.hashWithSalt` location++instance Prelude.NFData S3TableOutputOptions where+  rnf S3TableOutputOptions' {..} = Prelude.rnf location++instance Data.ToJSON S3TableOutputOptions where+  toJSON S3TableOutputOptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("Location" Data..= location)]+      )
+ gen/Amazonka/DataBrew/Types/Sample.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.Sample+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.Sample where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.SampleType+import qualified Amazonka.Prelude as Prelude++-- | Represents the sample size and sampling type for DataBrew to use for+-- interactive data analysis.+--+-- /See:/ 'newSample' smart constructor.+data Sample = Sample'+  { -- | The number of rows in the sample.+    size :: Prelude.Maybe Prelude.Natural,+    -- | The way in which DataBrew obtains rows from a dataset.+    type' :: SampleType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Sample' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'size', 'sample_size' - The number of rows in the sample.+--+-- 'type'', 'sample_type' - The way in which DataBrew obtains rows from a dataset.+newSample ::+  -- | 'type''+  SampleType ->+  Sample+newSample pType_ =+  Sample' {size = Prelude.Nothing, type' = pType_}++-- | The number of rows in the sample.+sample_size :: Lens.Lens' Sample (Prelude.Maybe Prelude.Natural)+sample_size = Lens.lens (\Sample' {size} -> size) (\s@Sample' {} a -> s {size = a} :: Sample)++-- | The way in which DataBrew obtains rows from a dataset.+sample_type :: Lens.Lens' Sample SampleType+sample_type = Lens.lens (\Sample' {type'} -> type') (\s@Sample' {} a -> s {type' = a} :: Sample)++instance Data.FromJSON Sample where+  parseJSON =+    Data.withObject+      "Sample"+      ( \x ->+          Sample'+            Prelude.<$> (x Data..:? "Size")+            Prelude.<*> (x Data..: "Type")+      )++instance Prelude.Hashable Sample where+  hashWithSalt _salt Sample' {..} =+    _salt+      `Prelude.hashWithSalt` size+      `Prelude.hashWithSalt` type'++instance Prelude.NFData Sample where+  rnf Sample' {..} =+    Prelude.rnf size `Prelude.seq` Prelude.rnf type'++instance Data.ToJSON Sample where+  toJSON Sample' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Size" Data..=) Prelude.<$> size,+            Prelude.Just ("Type" Data..= type')+          ]+      )
+ gen/Amazonka/DataBrew/Types/SampleMode.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.DataBrew.Types.SampleMode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.SampleMode+  ( SampleMode+      ( ..,+        SampleMode_CUSTOM_ROWS,+        SampleMode_FULL_DATASET+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SampleMode = SampleMode'+  { fromSampleMode ::+      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 SampleMode_CUSTOM_ROWS :: SampleMode+pattern SampleMode_CUSTOM_ROWS = SampleMode' "CUSTOM_ROWS"++pattern SampleMode_FULL_DATASET :: SampleMode+pattern SampleMode_FULL_DATASET = SampleMode' "FULL_DATASET"++{-# COMPLETE+  SampleMode_CUSTOM_ROWS,+  SampleMode_FULL_DATASET,+  SampleMode'+  #-}
+ gen/Amazonka/DataBrew/Types/SampleType.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.DataBrew.Types.SampleType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.SampleType+  ( SampleType+      ( ..,+        SampleType_FIRST_N,+        SampleType_LAST_N,+        SampleType_RANDOM+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SampleType = SampleType'+  { fromSampleType ::+      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 SampleType_FIRST_N :: SampleType+pattern SampleType_FIRST_N = SampleType' "FIRST_N"++pattern SampleType_LAST_N :: SampleType+pattern SampleType_LAST_N = SampleType' "LAST_N"++pattern SampleType_RANDOM :: SampleType+pattern SampleType_RANDOM = SampleType' "RANDOM"++{-# COMPLETE+  SampleType_FIRST_N,+  SampleType_LAST_N,+  SampleType_RANDOM,+  SampleType'+  #-}
+ gen/Amazonka/DataBrew/Types/Schedule.hs view
@@ -0,0 +1,191 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.Schedule+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.Schedule 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++-- | Represents one or more dates and times when a job is to run.+--+-- /See:/ 'newSchedule' smart constructor.+data Schedule = Schedule'+  { -- | The ID of the Amazon Web Services account that owns the schedule.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the schedule was created.+    createDate :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the user who created the schedule.+    createdBy :: Prelude.Maybe Prelude.Text,+    -- | The dates and times when the job is to run. For more information, see+    -- <https://docs.aws.amazon.com/databrew/latest/dg/jobs.cron.html Cron expressions>+    -- in the /Glue DataBrew Developer Guide/.+    cronExpression :: Prelude.Maybe Prelude.Text,+    -- | A list of jobs to be run, according to the schedule.+    jobNames :: Prelude.Maybe [Prelude.Text],+    -- | The Amazon Resource Name (ARN) of the user who last modified the+    -- schedule.+    lastModifiedBy :: Prelude.Maybe Prelude.Text,+    -- | The date and time when the schedule was last modified.+    lastModifiedDate :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the schedule.+    resourceArn :: Prelude.Maybe Prelude.Text,+    -- | Metadata tags that have been applied to the schedule.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name of the schedule.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Schedule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'schedule_accountId' - The ID of the Amazon Web Services account that owns the schedule.+--+-- 'createDate', 'schedule_createDate' - The date and time that the schedule was created.+--+-- 'createdBy', 'schedule_createdBy' - The Amazon Resource Name (ARN) of the user who created the schedule.+--+-- 'cronExpression', 'schedule_cronExpression' - The dates and times when the job is to run. For more information, see+-- <https://docs.aws.amazon.com/databrew/latest/dg/jobs.cron.html Cron expressions>+-- in the /Glue DataBrew Developer Guide/.+--+-- 'jobNames', 'schedule_jobNames' - A list of jobs to be run, according to the schedule.+--+-- 'lastModifiedBy', 'schedule_lastModifiedBy' - The Amazon Resource Name (ARN) of the user who last modified the+-- schedule.+--+-- 'lastModifiedDate', 'schedule_lastModifiedDate' - The date and time when the schedule was last modified.+--+-- 'resourceArn', 'schedule_resourceArn' - The Amazon Resource Name (ARN) of the schedule.+--+-- 'tags', 'schedule_tags' - Metadata tags that have been applied to the schedule.+--+-- 'name', 'schedule_name' - The name of the schedule.+newSchedule ::+  -- | 'name'+  Prelude.Text ->+  Schedule+newSchedule pName_ =+  Schedule'+    { accountId = Prelude.Nothing,+      createDate = Prelude.Nothing,+      createdBy = Prelude.Nothing,+      cronExpression = Prelude.Nothing,+      jobNames = Prelude.Nothing,+      lastModifiedBy = Prelude.Nothing,+      lastModifiedDate = Prelude.Nothing,+      resourceArn = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_+    }++-- | The ID of the Amazon Web Services account that owns the schedule.+schedule_accountId :: Lens.Lens' Schedule (Prelude.Maybe Prelude.Text)+schedule_accountId = Lens.lens (\Schedule' {accountId} -> accountId) (\s@Schedule' {} a -> s {accountId = a} :: Schedule)++-- | The date and time that the schedule was created.+schedule_createDate :: Lens.Lens' Schedule (Prelude.Maybe Prelude.UTCTime)+schedule_createDate = Lens.lens (\Schedule' {createDate} -> createDate) (\s@Schedule' {} a -> s {createDate = a} :: Schedule) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the user who created the schedule.+schedule_createdBy :: Lens.Lens' Schedule (Prelude.Maybe Prelude.Text)+schedule_createdBy = Lens.lens (\Schedule' {createdBy} -> createdBy) (\s@Schedule' {} a -> s {createdBy = a} :: Schedule)++-- | The dates and times when the job is to run. For more information, see+-- <https://docs.aws.amazon.com/databrew/latest/dg/jobs.cron.html Cron expressions>+-- in the /Glue DataBrew Developer Guide/.+schedule_cronExpression :: Lens.Lens' Schedule (Prelude.Maybe Prelude.Text)+schedule_cronExpression = Lens.lens (\Schedule' {cronExpression} -> cronExpression) (\s@Schedule' {} a -> s {cronExpression = a} :: Schedule)++-- | A list of jobs to be run, according to the schedule.+schedule_jobNames :: Lens.Lens' Schedule (Prelude.Maybe [Prelude.Text])+schedule_jobNames = Lens.lens (\Schedule' {jobNames} -> jobNames) (\s@Schedule' {} a -> s {jobNames = a} :: Schedule) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the user who last modified the+-- schedule.+schedule_lastModifiedBy :: Lens.Lens' Schedule (Prelude.Maybe Prelude.Text)+schedule_lastModifiedBy = Lens.lens (\Schedule' {lastModifiedBy} -> lastModifiedBy) (\s@Schedule' {} a -> s {lastModifiedBy = a} :: Schedule)++-- | The date and time when the schedule was last modified.+schedule_lastModifiedDate :: Lens.Lens' Schedule (Prelude.Maybe Prelude.UTCTime)+schedule_lastModifiedDate = Lens.lens (\Schedule' {lastModifiedDate} -> lastModifiedDate) (\s@Schedule' {} a -> s {lastModifiedDate = a} :: Schedule) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the schedule.+schedule_resourceArn :: Lens.Lens' Schedule (Prelude.Maybe Prelude.Text)+schedule_resourceArn = Lens.lens (\Schedule' {resourceArn} -> resourceArn) (\s@Schedule' {} a -> s {resourceArn = a} :: Schedule)++-- | Metadata tags that have been applied to the schedule.+schedule_tags :: Lens.Lens' Schedule (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+schedule_tags = Lens.lens (\Schedule' {tags} -> tags) (\s@Schedule' {} a -> s {tags = a} :: Schedule) Prelude.. Lens.mapping Lens.coerced++-- | The name of the schedule.+schedule_name :: Lens.Lens' Schedule Prelude.Text+schedule_name = Lens.lens (\Schedule' {name} -> name) (\s@Schedule' {} a -> s {name = a} :: Schedule)++instance Data.FromJSON Schedule where+  parseJSON =+    Data.withObject+      "Schedule"+      ( \x ->+          Schedule'+            Prelude.<$> (x Data..:? "AccountId")+            Prelude.<*> (x Data..:? "CreateDate")+            Prelude.<*> (x Data..:? "CreatedBy")+            Prelude.<*> (x Data..:? "CronExpression")+            Prelude.<*> (x Data..:? "JobNames" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "LastModifiedBy")+            Prelude.<*> (x Data..:? "LastModifiedDate")+            Prelude.<*> (x Data..:? "ResourceArn")+            Prelude.<*> (x Data..:? "Tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "Name")+      )++instance Prelude.Hashable Schedule where+  hashWithSalt _salt Schedule' {..} =+    _salt+      `Prelude.hashWithSalt` accountId+      `Prelude.hashWithSalt` createDate+      `Prelude.hashWithSalt` createdBy+      `Prelude.hashWithSalt` cronExpression+      `Prelude.hashWithSalt` jobNames+      `Prelude.hashWithSalt` lastModifiedBy+      `Prelude.hashWithSalt` lastModifiedDate+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name++instance Prelude.NFData Schedule where+  rnf Schedule' {..} =+    Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf createDate+      `Prelude.seq` Prelude.rnf createdBy+      `Prelude.seq` Prelude.rnf cronExpression+      `Prelude.seq` Prelude.rnf jobNames+      `Prelude.seq` Prelude.rnf lastModifiedBy+      `Prelude.seq` Prelude.rnf lastModifiedDate+      `Prelude.seq` Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/Types/SessionStatus.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.SessionStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.SessionStatus+  ( SessionStatus+      ( ..,+        SessionStatus_ASSIGNED,+        SessionStatus_FAILED,+        SessionStatus_INITIALIZING,+        SessionStatus_PROVISIONING,+        SessionStatus_READY,+        SessionStatus_RECYCLING,+        SessionStatus_ROTATING,+        SessionStatus_TERMINATED,+        SessionStatus_TERMINATING,+        SessionStatus_UPDATING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SessionStatus = SessionStatus'+  { fromSessionStatus ::+      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 SessionStatus_ASSIGNED :: SessionStatus+pattern SessionStatus_ASSIGNED = SessionStatus' "ASSIGNED"++pattern SessionStatus_FAILED :: SessionStatus+pattern SessionStatus_FAILED = SessionStatus' "FAILED"++pattern SessionStatus_INITIALIZING :: SessionStatus+pattern SessionStatus_INITIALIZING = SessionStatus' "INITIALIZING"++pattern SessionStatus_PROVISIONING :: SessionStatus+pattern SessionStatus_PROVISIONING = SessionStatus' "PROVISIONING"++pattern SessionStatus_READY :: SessionStatus+pattern SessionStatus_READY = SessionStatus' "READY"++pattern SessionStatus_RECYCLING :: SessionStatus+pattern SessionStatus_RECYCLING = SessionStatus' "RECYCLING"++pattern SessionStatus_ROTATING :: SessionStatus+pattern SessionStatus_ROTATING = SessionStatus' "ROTATING"++pattern SessionStatus_TERMINATED :: SessionStatus+pattern SessionStatus_TERMINATED = SessionStatus' "TERMINATED"++pattern SessionStatus_TERMINATING :: SessionStatus+pattern SessionStatus_TERMINATING = SessionStatus' "TERMINATING"++pattern SessionStatus_UPDATING :: SessionStatus+pattern SessionStatus_UPDATING = SessionStatus' "UPDATING"++{-# COMPLETE+  SessionStatus_ASSIGNED,+  SessionStatus_FAILED,+  SessionStatus_INITIALIZING,+  SessionStatus_PROVISIONING,+  SessionStatus_READY,+  SessionStatus_RECYCLING,+  SessionStatus_ROTATING,+  SessionStatus_TERMINATED,+  SessionStatus_TERMINATING,+  SessionStatus_UPDATING,+  SessionStatus'+  #-}
+ gen/Amazonka/DataBrew/Types/Source.hs view
@@ -0,0 +1,73 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.Source+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.Source+  ( Source+      ( ..,+        Source_DATABASE,+        Source_DATA_CATALOG,+        Source_S3+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Source = Source' {fromSource :: 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 Source_DATABASE :: Source+pattern Source_DATABASE = Source' "DATABASE"++pattern Source_DATA_CATALOG :: Source+pattern Source_DATA_CATALOG = Source' "DATA-CATALOG"++pattern Source_S3 :: Source+pattern Source_S3 = Source' "S3"++{-# COMPLETE+  Source_DATABASE,+  Source_DATA_CATALOG,+  Source_S3,+  Source'+  #-}
+ gen/Amazonka/DataBrew/Types/StatisticOverride.hs view
@@ -0,0 +1,95 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.StatisticOverride+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.StatisticOverride 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++-- | Override of a particular evaluation for a profile job.+--+-- /See:/ 'newStatisticOverride' smart constructor.+data StatisticOverride = StatisticOverride'+  { -- | The name of an evaluation+    statistic :: Prelude.Text,+    -- | A map that includes overrides of an evaluation’s parameters.+    parameters :: Prelude.HashMap Prelude.Text Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StatisticOverride' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'statistic', 'statisticOverride_statistic' - The name of an evaluation+--+-- 'parameters', 'statisticOverride_parameters' - A map that includes overrides of an evaluation’s parameters.+newStatisticOverride ::+  -- | 'statistic'+  Prelude.Text ->+  StatisticOverride+newStatisticOverride pStatistic_ =+  StatisticOverride'+    { statistic = pStatistic_,+      parameters = Prelude.mempty+    }++-- | The name of an evaluation+statisticOverride_statistic :: Lens.Lens' StatisticOverride Prelude.Text+statisticOverride_statistic = Lens.lens (\StatisticOverride' {statistic} -> statistic) (\s@StatisticOverride' {} a -> s {statistic = a} :: StatisticOverride)++-- | A map that includes overrides of an evaluation’s parameters.+statisticOverride_parameters :: Lens.Lens' StatisticOverride (Prelude.HashMap Prelude.Text Prelude.Text)+statisticOverride_parameters = Lens.lens (\StatisticOverride' {parameters} -> parameters) (\s@StatisticOverride' {} a -> s {parameters = a} :: StatisticOverride) Prelude.. Lens.coerced++instance Data.FromJSON StatisticOverride where+  parseJSON =+    Data.withObject+      "StatisticOverride"+      ( \x ->+          StatisticOverride'+            Prelude.<$> (x Data..: "Statistic")+            Prelude.<*> (x Data..:? "Parameters" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable StatisticOverride where+  hashWithSalt _salt StatisticOverride' {..} =+    _salt+      `Prelude.hashWithSalt` statistic+      `Prelude.hashWithSalt` parameters++instance Prelude.NFData StatisticOverride where+  rnf StatisticOverride' {..} =+    Prelude.rnf statistic+      `Prelude.seq` Prelude.rnf parameters++instance Data.ToJSON StatisticOverride where+  toJSON StatisticOverride' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Statistic" Data..= statistic),+            Prelude.Just ("Parameters" Data..= parameters)+          ]+      )
+ gen/Amazonka/DataBrew/Types/StatisticsConfiguration.hs view
@@ -0,0 +1,101 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.StatisticsConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.StatisticsConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.StatisticOverride+import qualified Amazonka.Prelude as Prelude++-- | Configuration of evaluations for a profile job. This configuration can+-- be used to select evaluations and override the parameters of selected+-- evaluations.+--+-- /See:/ 'newStatisticsConfiguration' smart constructor.+data StatisticsConfiguration = StatisticsConfiguration'+  { -- | List of included evaluations. When the list is undefined, all supported+    -- evaluations will be included.+    includedStatistics :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | List of overrides for evaluations.+    overrides :: Prelude.Maybe (Prelude.NonEmpty StatisticOverride)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StatisticsConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'includedStatistics', 'statisticsConfiguration_includedStatistics' - List of included evaluations. When the list is undefined, all supported+-- evaluations will be included.+--+-- 'overrides', 'statisticsConfiguration_overrides' - List of overrides for evaluations.+newStatisticsConfiguration ::+  StatisticsConfiguration+newStatisticsConfiguration =+  StatisticsConfiguration'+    { includedStatistics =+        Prelude.Nothing,+      overrides = Prelude.Nothing+    }++-- | List of included evaluations. When the list is undefined, all supported+-- evaluations will be included.+statisticsConfiguration_includedStatistics :: Lens.Lens' StatisticsConfiguration (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+statisticsConfiguration_includedStatistics = Lens.lens (\StatisticsConfiguration' {includedStatistics} -> includedStatistics) (\s@StatisticsConfiguration' {} a -> s {includedStatistics = a} :: StatisticsConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | List of overrides for evaluations.+statisticsConfiguration_overrides :: Lens.Lens' StatisticsConfiguration (Prelude.Maybe (Prelude.NonEmpty StatisticOverride))+statisticsConfiguration_overrides = Lens.lens (\StatisticsConfiguration' {overrides} -> overrides) (\s@StatisticsConfiguration' {} a -> s {overrides = a} :: StatisticsConfiguration) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON StatisticsConfiguration where+  parseJSON =+    Data.withObject+      "StatisticsConfiguration"+      ( \x ->+          StatisticsConfiguration'+            Prelude.<$> (x Data..:? "IncludedStatistics")+            Prelude.<*> (x Data..:? "Overrides")+      )++instance Prelude.Hashable StatisticsConfiguration where+  hashWithSalt _salt StatisticsConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` includedStatistics+      `Prelude.hashWithSalt` overrides++instance Prelude.NFData StatisticsConfiguration where+  rnf StatisticsConfiguration' {..} =+    Prelude.rnf includedStatistics+      `Prelude.seq` Prelude.rnf overrides++instance Data.ToJSON StatisticsConfiguration where+  toJSON StatisticsConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("IncludedStatistics" Data..=)+              Prelude.<$> includedStatistics,+            ("Overrides" Data..=) Prelude.<$> overrides+          ]+      )
+ gen/Amazonka/DataBrew/Types/Threshold.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.DataBrew.Types.Threshold+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.Threshold where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.ThresholdType+import Amazonka.DataBrew.Types.ThresholdUnit+import qualified Amazonka.Prelude as Prelude++-- | The threshold used with a non-aggregate check expression. The+-- non-aggregate check expression will be applied to each row in a specific+-- column. Then the threshold will be used to determine whether the+-- validation succeeds.+--+-- /See:/ 'newThreshold' smart constructor.+data Threshold = Threshold'+  { -- | The type of a threshold. Used for comparison of an actual count of rows+    -- that satisfy the rule to the threshold value.+    type' :: Prelude.Maybe ThresholdType,+    -- | Unit of threshold value. Can be either a COUNT or PERCENTAGE of the full+    -- sample size used for validation.+    unit :: Prelude.Maybe ThresholdUnit,+    -- | The value of a threshold.+    value :: Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Threshold' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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'', 'threshold_type' - The type of a threshold. Used for comparison of an actual count of rows+-- that satisfy the rule to the threshold value.+--+-- 'unit', 'threshold_unit' - Unit of threshold value. Can be either a COUNT or PERCENTAGE of the full+-- sample size used for validation.+--+-- 'value', 'threshold_value' - The value of a threshold.+newThreshold ::+  -- | 'value'+  Prelude.Double ->+  Threshold+newThreshold pValue_ =+  Threshold'+    { type' = Prelude.Nothing,+      unit = Prelude.Nothing,+      value = pValue_+    }++-- | The type of a threshold. Used for comparison of an actual count of rows+-- that satisfy the rule to the threshold value.+threshold_type :: Lens.Lens' Threshold (Prelude.Maybe ThresholdType)+threshold_type = Lens.lens (\Threshold' {type'} -> type') (\s@Threshold' {} a -> s {type' = a} :: Threshold)++-- | Unit of threshold value. Can be either a COUNT or PERCENTAGE of the full+-- sample size used for validation.+threshold_unit :: Lens.Lens' Threshold (Prelude.Maybe ThresholdUnit)+threshold_unit = Lens.lens (\Threshold' {unit} -> unit) (\s@Threshold' {} a -> s {unit = a} :: Threshold)++-- | The value of a threshold.+threshold_value :: Lens.Lens' Threshold Prelude.Double+threshold_value = Lens.lens (\Threshold' {value} -> value) (\s@Threshold' {} a -> s {value = a} :: Threshold)++instance Data.FromJSON Threshold where+  parseJSON =+    Data.withObject+      "Threshold"+      ( \x ->+          Threshold'+            Prelude.<$> (x Data..:? "Type")+            Prelude.<*> (x Data..:? "Unit")+            Prelude.<*> (x Data..: "Value")+      )++instance Prelude.Hashable Threshold where+  hashWithSalt _salt Threshold' {..} =+    _salt+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` unit+      `Prelude.hashWithSalt` value++instance Prelude.NFData Threshold where+  rnf Threshold' {..} =+    Prelude.rnf type'+      `Prelude.seq` Prelude.rnf unit+      `Prelude.seq` Prelude.rnf value++instance Data.ToJSON Threshold where+  toJSON Threshold' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Type" Data..=) Prelude.<$> type',+            ("Unit" Data..=) Prelude.<$> unit,+            Prelude.Just ("Value" Data..= value)+          ]+      )
+ gen/Amazonka/DataBrew/Types/ThresholdType.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.ThresholdType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.ThresholdType+  ( ThresholdType+      ( ..,+        ThresholdType_GREATER_THAN,+        ThresholdType_GREATER_THAN_OR_EQUAL,+        ThresholdType_LESS_THAN,+        ThresholdType_LESS_THAN_OR_EQUAL+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ThresholdType = ThresholdType'+  { fromThresholdType ::+      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 ThresholdType_GREATER_THAN :: ThresholdType+pattern ThresholdType_GREATER_THAN = ThresholdType' "GREATER_THAN"++pattern ThresholdType_GREATER_THAN_OR_EQUAL :: ThresholdType+pattern ThresholdType_GREATER_THAN_OR_EQUAL = ThresholdType' "GREATER_THAN_OR_EQUAL"++pattern ThresholdType_LESS_THAN :: ThresholdType+pattern ThresholdType_LESS_THAN = ThresholdType' "LESS_THAN"++pattern ThresholdType_LESS_THAN_OR_EQUAL :: ThresholdType+pattern ThresholdType_LESS_THAN_OR_EQUAL = ThresholdType' "LESS_THAN_OR_EQUAL"++{-# COMPLETE+  ThresholdType_GREATER_THAN,+  ThresholdType_GREATER_THAN_OR_EQUAL,+  ThresholdType_LESS_THAN,+  ThresholdType_LESS_THAN_OR_EQUAL,+  ThresholdType'+  #-}
+ gen/Amazonka/DataBrew/Types/ThresholdUnit.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.DataBrew.Types.ThresholdUnit+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.ThresholdUnit+  ( ThresholdUnit+      ( ..,+        ThresholdUnit_COUNT,+        ThresholdUnit_PERCENTAGE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ThresholdUnit = ThresholdUnit'+  { fromThresholdUnit ::+      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 ThresholdUnit_COUNT :: ThresholdUnit+pattern ThresholdUnit_COUNT = ThresholdUnit' "COUNT"++pattern ThresholdUnit_PERCENTAGE :: ThresholdUnit+pattern ThresholdUnit_PERCENTAGE = ThresholdUnit' "PERCENTAGE"++{-# COMPLETE+  ThresholdUnit_COUNT,+  ThresholdUnit_PERCENTAGE,+  ThresholdUnit'+  #-}
+ gen/Amazonka/DataBrew/Types/ValidationConfiguration.hs view
@@ -0,0 +1,113 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.ValidationConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.ValidationConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.ValidationMode+import qualified Amazonka.Prelude as Prelude++-- | Configuration for data quality validation. Used to select the Rulesets+-- and Validation Mode to be used in the profile job. When+-- ValidationConfiguration is null, the profile job will run without data+-- quality validation.+--+-- /See:/ 'newValidationConfiguration' smart constructor.+data ValidationConfiguration = ValidationConfiguration'+  { -- | Mode of data quality validation. Default mode is “CHECK_ALL” which+    -- verifies all rules defined in the selected ruleset.+    validationMode :: Prelude.Maybe ValidationMode,+    -- | The Amazon Resource Name (ARN) for the ruleset to be validated in the+    -- profile job. The TargetArn of the selected ruleset should be the same as+    -- the Amazon Resource Name (ARN) of the dataset that is associated with+    -- the profile job.+    rulesetArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ValidationConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'validationMode', 'validationConfiguration_validationMode' - Mode of data quality validation. Default mode is “CHECK_ALL” which+-- verifies all rules defined in the selected ruleset.+--+-- 'rulesetArn', 'validationConfiguration_rulesetArn' - The Amazon Resource Name (ARN) for the ruleset to be validated in the+-- profile job. The TargetArn of the selected ruleset should be the same as+-- the Amazon Resource Name (ARN) of the dataset that is associated with+-- the profile job.+newValidationConfiguration ::+  -- | 'rulesetArn'+  Prelude.Text ->+  ValidationConfiguration+newValidationConfiguration pRulesetArn_ =+  ValidationConfiguration'+    { validationMode =+        Prelude.Nothing,+      rulesetArn = pRulesetArn_+    }++-- | Mode of data quality validation. Default mode is “CHECK_ALL” which+-- verifies all rules defined in the selected ruleset.+validationConfiguration_validationMode :: Lens.Lens' ValidationConfiguration (Prelude.Maybe ValidationMode)+validationConfiguration_validationMode = Lens.lens (\ValidationConfiguration' {validationMode} -> validationMode) (\s@ValidationConfiguration' {} a -> s {validationMode = a} :: ValidationConfiguration)++-- | The Amazon Resource Name (ARN) for the ruleset to be validated in the+-- profile job. The TargetArn of the selected ruleset should be the same as+-- the Amazon Resource Name (ARN) of the dataset that is associated with+-- the profile job.+validationConfiguration_rulesetArn :: Lens.Lens' ValidationConfiguration Prelude.Text+validationConfiguration_rulesetArn = Lens.lens (\ValidationConfiguration' {rulesetArn} -> rulesetArn) (\s@ValidationConfiguration' {} a -> s {rulesetArn = a} :: ValidationConfiguration)++instance Data.FromJSON ValidationConfiguration where+  parseJSON =+    Data.withObject+      "ValidationConfiguration"+      ( \x ->+          ValidationConfiguration'+            Prelude.<$> (x Data..:? "ValidationMode")+            Prelude.<*> (x Data..: "RulesetArn")+      )++instance Prelude.Hashable ValidationConfiguration where+  hashWithSalt _salt ValidationConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` validationMode+      `Prelude.hashWithSalt` rulesetArn++instance Prelude.NFData ValidationConfiguration where+  rnf ValidationConfiguration' {..} =+    Prelude.rnf validationMode+      `Prelude.seq` Prelude.rnf rulesetArn++instance Data.ToJSON ValidationConfiguration where+  toJSON ValidationConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ValidationMode" Data..=)+              Prelude.<$> validationMode,+            Prelude.Just ("RulesetArn" Data..= rulesetArn)+          ]+      )
+ gen/Amazonka/DataBrew/Types/ValidationMode.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.DataBrew.Types.ValidationMode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.ValidationMode+  ( ValidationMode+      ( ..,+        ValidationMode_CHECK_ALL+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ValidationMode = ValidationMode'+  { fromValidationMode ::+      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 ValidationMode_CHECK_ALL :: ValidationMode+pattern ValidationMode_CHECK_ALL = ValidationMode' "CHECK_ALL"++{-# COMPLETE+  ValidationMode_CHECK_ALL,+  ValidationMode'+  #-}
+ gen/Amazonka/DataBrew/Types/ViewFrame.hs view
@@ -0,0 +1,147 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DataBrew.Types.ViewFrame+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.DataBrew.Types.ViewFrame where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types.AnalyticsMode+import qualified Amazonka.Prelude as Prelude++-- | Represents the data being transformed during an action.+--+-- /See:/ 'newViewFrame' smart constructor.+data ViewFrame = ViewFrame'+  { -- | Controls if analytics computation is enabled or disabled. Enabled by+    -- default.+    analytics :: Prelude.Maybe AnalyticsMode,+    -- | The number of columns to include in the view frame, beginning with the+    -- @StartColumnIndex@ value and ignoring any columns in the @HiddenColumns@+    -- list.+    columnRange :: Prelude.Maybe Prelude.Natural,+    -- | A list of columns to hide in the view frame.+    hiddenColumns :: Prelude.Maybe [Prelude.Text],+    -- | The number of rows to include in the view frame, beginning with the+    -- @StartRowIndex@ value.+    rowRange :: Prelude.Maybe Prelude.Int,+    -- | The starting index for the range of rows to return in the view frame.+    startRowIndex :: Prelude.Maybe Prelude.Natural,+    -- | The starting index for the range of columns to return in the view frame.+    startColumnIndex :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ViewFrame' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'analytics', 'viewFrame_analytics' - Controls if analytics computation is enabled or disabled. Enabled by+-- default.+--+-- 'columnRange', 'viewFrame_columnRange' - The number of columns to include in the view frame, beginning with the+-- @StartColumnIndex@ value and ignoring any columns in the @HiddenColumns@+-- list.+--+-- 'hiddenColumns', 'viewFrame_hiddenColumns' - A list of columns to hide in the view frame.+--+-- 'rowRange', 'viewFrame_rowRange' - The number of rows to include in the view frame, beginning with the+-- @StartRowIndex@ value.+--+-- 'startRowIndex', 'viewFrame_startRowIndex' - The starting index for the range of rows to return in the view frame.+--+-- 'startColumnIndex', 'viewFrame_startColumnIndex' - The starting index for the range of columns to return in the view frame.+newViewFrame ::+  -- | 'startColumnIndex'+  Prelude.Natural ->+  ViewFrame+newViewFrame pStartColumnIndex_ =+  ViewFrame'+    { analytics = Prelude.Nothing,+      columnRange = Prelude.Nothing,+      hiddenColumns = Prelude.Nothing,+      rowRange = Prelude.Nothing,+      startRowIndex = Prelude.Nothing,+      startColumnIndex = pStartColumnIndex_+    }++-- | Controls if analytics computation is enabled or disabled. Enabled by+-- default.+viewFrame_analytics :: Lens.Lens' ViewFrame (Prelude.Maybe AnalyticsMode)+viewFrame_analytics = Lens.lens (\ViewFrame' {analytics} -> analytics) (\s@ViewFrame' {} a -> s {analytics = a} :: ViewFrame)++-- | The number of columns to include in the view frame, beginning with the+-- @StartColumnIndex@ value and ignoring any columns in the @HiddenColumns@+-- list.+viewFrame_columnRange :: Lens.Lens' ViewFrame (Prelude.Maybe Prelude.Natural)+viewFrame_columnRange = Lens.lens (\ViewFrame' {columnRange} -> columnRange) (\s@ViewFrame' {} a -> s {columnRange = a} :: ViewFrame)++-- | A list of columns to hide in the view frame.+viewFrame_hiddenColumns :: Lens.Lens' ViewFrame (Prelude.Maybe [Prelude.Text])+viewFrame_hiddenColumns = Lens.lens (\ViewFrame' {hiddenColumns} -> hiddenColumns) (\s@ViewFrame' {} a -> s {hiddenColumns = a} :: ViewFrame) Prelude.. Lens.mapping Lens.coerced++-- | The number of rows to include in the view frame, beginning with the+-- @StartRowIndex@ value.+viewFrame_rowRange :: Lens.Lens' ViewFrame (Prelude.Maybe Prelude.Int)+viewFrame_rowRange = Lens.lens (\ViewFrame' {rowRange} -> rowRange) (\s@ViewFrame' {} a -> s {rowRange = a} :: ViewFrame)++-- | The starting index for the range of rows to return in the view frame.+viewFrame_startRowIndex :: Lens.Lens' ViewFrame (Prelude.Maybe Prelude.Natural)+viewFrame_startRowIndex = Lens.lens (\ViewFrame' {startRowIndex} -> startRowIndex) (\s@ViewFrame' {} a -> s {startRowIndex = a} :: ViewFrame)++-- | The starting index for the range of columns to return in the view frame.+viewFrame_startColumnIndex :: Lens.Lens' ViewFrame Prelude.Natural+viewFrame_startColumnIndex = Lens.lens (\ViewFrame' {startColumnIndex} -> startColumnIndex) (\s@ViewFrame' {} a -> s {startColumnIndex = a} :: ViewFrame)++instance Prelude.Hashable ViewFrame where+  hashWithSalt _salt ViewFrame' {..} =+    _salt+      `Prelude.hashWithSalt` analytics+      `Prelude.hashWithSalt` columnRange+      `Prelude.hashWithSalt` hiddenColumns+      `Prelude.hashWithSalt` rowRange+      `Prelude.hashWithSalt` startRowIndex+      `Prelude.hashWithSalt` startColumnIndex++instance Prelude.NFData ViewFrame where+  rnf ViewFrame' {..} =+    Prelude.rnf analytics+      `Prelude.seq` Prelude.rnf columnRange+      `Prelude.seq` Prelude.rnf hiddenColumns+      `Prelude.seq` Prelude.rnf rowRange+      `Prelude.seq` Prelude.rnf startRowIndex+      `Prelude.seq` Prelude.rnf startColumnIndex++instance Data.ToJSON ViewFrame where+  toJSON ViewFrame' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Analytics" Data..=) Prelude.<$> analytics,+            ("ColumnRange" Data..=) Prelude.<$> columnRange,+            ("HiddenColumns" Data..=) Prelude.<$> hiddenColumns,+            ("RowRange" Data..=) Prelude.<$> rowRange,+            ("StartRowIndex" Data..=) Prelude.<$> startRowIndex,+            Prelude.Just+              ("StartColumnIndex" Data..= startColumnIndex)+          ]+      )
+ gen/Amazonka/DataBrew/UntagResource.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.DataBrew.UntagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes metadata tags from a DataBrew resource.+module Amazonka.DataBrew.UntagResource+  ( -- * Creating a Request+    UntagResource (..),+    newUntagResource,++    -- * Request Lenses+    untagResource_resourceArn,+    untagResource_tagKeys,++    -- * Destructuring the Response+    UntagResourceResponse (..),+    newUntagResourceResponse,++    -- * Response Lenses+    untagResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+  { -- | A DataBrew resource from which you want to remove a tag or tags. The+    -- value for this parameter is an Amazon Resource Name (ARN).+    resourceArn :: Prelude.Text,+    -- | The tag keys (names) of one or more tags to be removed.+    tagKeys :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'untagResource_resourceArn' - A DataBrew resource from which you want to remove a tag or tags. The+-- value for this parameter is an Amazon Resource Name (ARN).+--+-- 'tagKeys', 'untagResource_tagKeys' - The tag keys (names) of one or more tags to be removed.+newUntagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  -- | 'tagKeys'+  Prelude.NonEmpty Prelude.Text ->+  UntagResource+newUntagResource pResourceArn_ pTagKeys_ =+  UntagResource'+    { resourceArn = pResourceArn_,+      tagKeys = Lens.coerced Lens.# pTagKeys_+    }++-- | A DataBrew resource from which you want to remove a tag or tags. The+-- value for this parameter is an Amazon Resource Name (ARN).+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | The tag keys (names) of one or more tags to be removed.+untagResource_tagKeys :: Lens.Lens' UntagResource (Prelude.NonEmpty Prelude.Text)+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++instance Core.AWSRequest UntagResource where+  type+    AWSResponse UntagResource =+      UntagResourceResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UntagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UntagResource where+  hashWithSalt _salt UntagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+  rnf UntagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath UntagResource where+  toPath UntagResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery UntagResource where+  toQuery UntagResource' {..} =+    Prelude.mconcat+      ["tagKeys" Data.=: Data.toQueryList "member" tagKeys]++-- | /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'untagResourceResponse_httpStatus' - The response's http status code.+newUntagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UntagResourceResponse+newUntagResourceResponse pHttpStatus_ =+  UntagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+untagResourceResponse_httpStatus :: Lens.Lens' UntagResourceResponse Prelude.Int+untagResourceResponse_httpStatus = Lens.lens (\UntagResourceResponse' {httpStatus} -> httpStatus) (\s@UntagResourceResponse' {} a -> s {httpStatus = a} :: UntagResourceResponse)++instance Prelude.NFData UntagResourceResponse where+  rnf UntagResourceResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/DataBrew/UpdateDataset.hs view
@@ -0,0 +1,228 @@+{-# 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.DataBrew.UpdateDataset+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies the definition of an existing DataBrew dataset.+module Amazonka.DataBrew.UpdateDataset+  ( -- * Creating a Request+    UpdateDataset (..),+    newUpdateDataset,++    -- * Request Lenses+    updateDataset_format,+    updateDataset_formatOptions,+    updateDataset_pathOptions,+    updateDataset_name,+    updateDataset_input,++    -- * Destructuring the Response+    UpdateDatasetResponse (..),+    newUpdateDatasetResponse,++    -- * Response Lenses+    updateDatasetResponse_httpStatus,+    updateDatasetResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateDataset' smart constructor.+data UpdateDataset = UpdateDataset'+  { -- | The file format of a dataset that is created from an Amazon S3 file or+    -- folder.+    format :: Prelude.Maybe InputFormat,+    formatOptions :: Prelude.Maybe FormatOptions,+    -- | A set of options that defines how DataBrew interprets an Amazon S3 path+    -- of the dataset.+    pathOptions :: Prelude.Maybe PathOptions,+    -- | The name of the dataset to be updated.+    name :: Prelude.Text,+    input :: Input+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDataset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'format', 'updateDataset_format' - The file format of a dataset that is created from an Amazon S3 file or+-- folder.+--+-- 'formatOptions', 'updateDataset_formatOptions' - Undocumented member.+--+-- 'pathOptions', 'updateDataset_pathOptions' - A set of options that defines how DataBrew interprets an Amazon S3 path+-- of the dataset.+--+-- 'name', 'updateDataset_name' - The name of the dataset to be updated.+--+-- 'input', 'updateDataset_input' - Undocumented member.+newUpdateDataset ::+  -- | 'name'+  Prelude.Text ->+  -- | 'input'+  Input ->+  UpdateDataset+newUpdateDataset pName_ pInput_ =+  UpdateDataset'+    { format = Prelude.Nothing,+      formatOptions = Prelude.Nothing,+      pathOptions = Prelude.Nothing,+      name = pName_,+      input = pInput_+    }++-- | The file format of a dataset that is created from an Amazon S3 file or+-- folder.+updateDataset_format :: Lens.Lens' UpdateDataset (Prelude.Maybe InputFormat)+updateDataset_format = Lens.lens (\UpdateDataset' {format} -> format) (\s@UpdateDataset' {} a -> s {format = a} :: UpdateDataset)++-- | Undocumented member.+updateDataset_formatOptions :: Lens.Lens' UpdateDataset (Prelude.Maybe FormatOptions)+updateDataset_formatOptions = Lens.lens (\UpdateDataset' {formatOptions} -> formatOptions) (\s@UpdateDataset' {} a -> s {formatOptions = a} :: UpdateDataset)++-- | A set of options that defines how DataBrew interprets an Amazon S3 path+-- of the dataset.+updateDataset_pathOptions :: Lens.Lens' UpdateDataset (Prelude.Maybe PathOptions)+updateDataset_pathOptions = Lens.lens (\UpdateDataset' {pathOptions} -> pathOptions) (\s@UpdateDataset' {} a -> s {pathOptions = a} :: UpdateDataset)++-- | The name of the dataset to be updated.+updateDataset_name :: Lens.Lens' UpdateDataset Prelude.Text+updateDataset_name = Lens.lens (\UpdateDataset' {name} -> name) (\s@UpdateDataset' {} a -> s {name = a} :: UpdateDataset)++-- | Undocumented member.+updateDataset_input :: Lens.Lens' UpdateDataset Input+updateDataset_input = Lens.lens (\UpdateDataset' {input} -> input) (\s@UpdateDataset' {} a -> s {input = a} :: UpdateDataset)++instance Core.AWSRequest UpdateDataset where+  type+    AWSResponse UpdateDataset =+      UpdateDatasetResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateDatasetResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable UpdateDataset where+  hashWithSalt _salt UpdateDataset' {..} =+    _salt+      `Prelude.hashWithSalt` format+      `Prelude.hashWithSalt` formatOptions+      `Prelude.hashWithSalt` pathOptions+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` input++instance Prelude.NFData UpdateDataset where+  rnf UpdateDataset' {..} =+    Prelude.rnf format+      `Prelude.seq` Prelude.rnf formatOptions+      `Prelude.seq` Prelude.rnf pathOptions+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf input++instance Data.ToHeaders UpdateDataset where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateDataset where+  toJSON UpdateDataset' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Format" Data..=) Prelude.<$> format,+            ("FormatOptions" Data..=) Prelude.<$> formatOptions,+            ("PathOptions" Data..=) Prelude.<$> pathOptions,+            Prelude.Just ("Input" Data..= input)+          ]+      )++instance Data.ToPath UpdateDataset where+  toPath UpdateDataset' {..} =+    Prelude.mconcat ["/datasets/", Data.toBS name]++instance Data.ToQuery UpdateDataset where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateDatasetResponse' smart constructor.+data UpdateDatasetResponse = UpdateDatasetResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the dataset that you updated.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDatasetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateDatasetResponse_httpStatus' - The response's http status code.+--+-- 'name', 'updateDatasetResponse_name' - The name of the dataset that you updated.+newUpdateDatasetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  UpdateDatasetResponse+newUpdateDatasetResponse pHttpStatus_ pName_ =+  UpdateDatasetResponse'+    { httpStatus = pHttpStatus_,+      name = pName_+    }++-- | The response's http status code.+updateDatasetResponse_httpStatus :: Lens.Lens' UpdateDatasetResponse Prelude.Int+updateDatasetResponse_httpStatus = Lens.lens (\UpdateDatasetResponse' {httpStatus} -> httpStatus) (\s@UpdateDatasetResponse' {} a -> s {httpStatus = a} :: UpdateDatasetResponse)++-- | The name of the dataset that you updated.+updateDatasetResponse_name :: Lens.Lens' UpdateDatasetResponse Prelude.Text+updateDatasetResponse_name = Lens.lens (\UpdateDatasetResponse' {name} -> name) (\s@UpdateDatasetResponse' {} a -> s {name = a} :: UpdateDatasetResponse)++instance Prelude.NFData UpdateDatasetResponse where+  rnf UpdateDatasetResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/UpdateProfileJob.hs view
@@ -0,0 +1,367 @@+{-# 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.DataBrew.UpdateProfileJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies the definition of an existing profile job.+module Amazonka.DataBrew.UpdateProfileJob+  ( -- * Creating a Request+    UpdateProfileJob (..),+    newUpdateProfileJob,++    -- * Request Lenses+    updateProfileJob_configuration,+    updateProfileJob_encryptionKeyArn,+    updateProfileJob_encryptionMode,+    updateProfileJob_jobSample,+    updateProfileJob_logSubscription,+    updateProfileJob_maxCapacity,+    updateProfileJob_maxRetries,+    updateProfileJob_timeout,+    updateProfileJob_validationConfigurations,+    updateProfileJob_name,+    updateProfileJob_outputLocation,+    updateProfileJob_roleArn,++    -- * Destructuring the Response+    UpdateProfileJobResponse (..),+    newUpdateProfileJobResponse,++    -- * Response Lenses+    updateProfileJobResponse_httpStatus,+    updateProfileJobResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateProfileJob' smart constructor.+data UpdateProfileJob = UpdateProfileJob'+  { -- | Configuration for profile jobs. Used to select columns, do evaluations,+    -- and override default parameters of evaluations. When configuration is+    -- null, the profile job will run with default settings.+    configuration :: Prelude.Maybe ProfileConfiguration,+    -- | The Amazon Resource Name (ARN) of an encryption key that is used to+    -- protect the job.+    encryptionKeyArn :: Prelude.Maybe Prelude.Text,+    -- | The encryption mode for the job, which can be one of the following:+    --+    -- -   @SSE-KMS@ - Server-side encryption with keys managed by KMS.+    --+    -- -   @SSE-S3@ - Server-side encryption with keys managed by Amazon S3.+    encryptionMode :: Prelude.Maybe EncryptionMode,+    -- | Sample configuration for Profile Jobs only. Determines the number of+    -- rows on which the Profile job will be executed. If a JobSample value is+    -- not provided for profile jobs, the default value will be used. The+    -- default value is CUSTOM_ROWS for the mode parameter and 20000 for the+    -- size parameter.+    jobSample :: Prelude.Maybe JobSample,+    -- | Enables or disables Amazon CloudWatch logging for the job. If logging is+    -- enabled, CloudWatch writes one log stream for each job run.+    logSubscription :: Prelude.Maybe LogSubscription,+    -- | The maximum number of compute nodes that DataBrew can use when the job+    -- processes data.+    maxCapacity :: Prelude.Maybe Prelude.Int,+    -- | The maximum number of times to retry the job after a job run fails.+    maxRetries :: Prelude.Maybe Prelude.Natural,+    -- | The job\'s timeout in minutes. A job that attempts to run longer than+    -- this timeout period ends with a status of @TIMEOUT@.+    timeout :: Prelude.Maybe Prelude.Natural,+    -- | List of validation configurations that are applied to the profile job.+    validationConfigurations :: Prelude.Maybe (Prelude.NonEmpty ValidationConfiguration),+    -- | The name of the job to be updated.+    name :: Prelude.Text,+    outputLocation :: S3Location,+    -- | The Amazon Resource Name (ARN) of the Identity and Access Management+    -- (IAM) role to be assumed when DataBrew runs the job.+    roleArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateProfileJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configuration', 'updateProfileJob_configuration' - Configuration for profile jobs. Used to select columns, do evaluations,+-- and override default parameters of evaluations. When configuration is+-- null, the profile job will run with default settings.+--+-- 'encryptionKeyArn', 'updateProfileJob_encryptionKeyArn' - The Amazon Resource Name (ARN) of an encryption key that is used to+-- protect the job.+--+-- 'encryptionMode', 'updateProfileJob_encryptionMode' - The encryption mode for the job, which can be one of the following:+--+-- -   @SSE-KMS@ - Server-side encryption with keys managed by KMS.+--+-- -   @SSE-S3@ - Server-side encryption with keys managed by Amazon S3.+--+-- 'jobSample', 'updateProfileJob_jobSample' - Sample configuration for Profile Jobs only. Determines the number of+-- rows on which the Profile job will be executed. If a JobSample value is+-- not provided for profile jobs, the default value will be used. The+-- default value is CUSTOM_ROWS for the mode parameter and 20000 for the+-- size parameter.+--+-- 'logSubscription', 'updateProfileJob_logSubscription' - Enables or disables Amazon CloudWatch logging for the job. If logging is+-- enabled, CloudWatch writes one log stream for each job run.+--+-- 'maxCapacity', 'updateProfileJob_maxCapacity' - The maximum number of compute nodes that DataBrew can use when the job+-- processes data.+--+-- 'maxRetries', 'updateProfileJob_maxRetries' - The maximum number of times to retry the job after a job run fails.+--+-- 'timeout', 'updateProfileJob_timeout' - The job\'s timeout in minutes. A job that attempts to run longer than+-- this timeout period ends with a status of @TIMEOUT@.+--+-- 'validationConfigurations', 'updateProfileJob_validationConfigurations' - List of validation configurations that are applied to the profile job.+--+-- 'name', 'updateProfileJob_name' - The name of the job to be updated.+--+-- 'outputLocation', 'updateProfileJob_outputLocation' - Undocumented member.+--+-- 'roleArn', 'updateProfileJob_roleArn' - The Amazon Resource Name (ARN) of the Identity and Access Management+-- (IAM) role to be assumed when DataBrew runs the job.+newUpdateProfileJob ::+  -- | 'name'+  Prelude.Text ->+  -- | 'outputLocation'+  S3Location ->+  -- | 'roleArn'+  Prelude.Text ->+  UpdateProfileJob+newUpdateProfileJob pName_ pOutputLocation_ pRoleArn_ =+  UpdateProfileJob'+    { configuration = Prelude.Nothing,+      encryptionKeyArn = Prelude.Nothing,+      encryptionMode = Prelude.Nothing,+      jobSample = Prelude.Nothing,+      logSubscription = Prelude.Nothing,+      maxCapacity = Prelude.Nothing,+      maxRetries = Prelude.Nothing,+      timeout = Prelude.Nothing,+      validationConfigurations = Prelude.Nothing,+      name = pName_,+      outputLocation = pOutputLocation_,+      roleArn = pRoleArn_+    }++-- | Configuration for profile jobs. Used to select columns, do evaluations,+-- and override default parameters of evaluations. When configuration is+-- null, the profile job will run with default settings.+updateProfileJob_configuration :: Lens.Lens' UpdateProfileJob (Prelude.Maybe ProfileConfiguration)+updateProfileJob_configuration = Lens.lens (\UpdateProfileJob' {configuration} -> configuration) (\s@UpdateProfileJob' {} a -> s {configuration = a} :: UpdateProfileJob)++-- | The Amazon Resource Name (ARN) of an encryption key that is used to+-- protect the job.+updateProfileJob_encryptionKeyArn :: Lens.Lens' UpdateProfileJob (Prelude.Maybe Prelude.Text)+updateProfileJob_encryptionKeyArn = Lens.lens (\UpdateProfileJob' {encryptionKeyArn} -> encryptionKeyArn) (\s@UpdateProfileJob' {} a -> s {encryptionKeyArn = a} :: UpdateProfileJob)++-- | The encryption mode for the job, which can be one of the following:+--+-- -   @SSE-KMS@ - Server-side encryption with keys managed by KMS.+--+-- -   @SSE-S3@ - Server-side encryption with keys managed by Amazon S3.+updateProfileJob_encryptionMode :: Lens.Lens' UpdateProfileJob (Prelude.Maybe EncryptionMode)+updateProfileJob_encryptionMode = Lens.lens (\UpdateProfileJob' {encryptionMode} -> encryptionMode) (\s@UpdateProfileJob' {} a -> s {encryptionMode = a} :: UpdateProfileJob)++-- | Sample configuration for Profile Jobs only. Determines the number of+-- rows on which the Profile job will be executed. If a JobSample value is+-- not provided for profile jobs, the default value will be used. The+-- default value is CUSTOM_ROWS for the mode parameter and 20000 for the+-- size parameter.+updateProfileJob_jobSample :: Lens.Lens' UpdateProfileJob (Prelude.Maybe JobSample)+updateProfileJob_jobSample = Lens.lens (\UpdateProfileJob' {jobSample} -> jobSample) (\s@UpdateProfileJob' {} a -> s {jobSample = a} :: UpdateProfileJob)++-- | Enables or disables Amazon CloudWatch logging for the job. If logging is+-- enabled, CloudWatch writes one log stream for each job run.+updateProfileJob_logSubscription :: Lens.Lens' UpdateProfileJob (Prelude.Maybe LogSubscription)+updateProfileJob_logSubscription = Lens.lens (\UpdateProfileJob' {logSubscription} -> logSubscription) (\s@UpdateProfileJob' {} a -> s {logSubscription = a} :: UpdateProfileJob)++-- | The maximum number of compute nodes that DataBrew can use when the job+-- processes data.+updateProfileJob_maxCapacity :: Lens.Lens' UpdateProfileJob (Prelude.Maybe Prelude.Int)+updateProfileJob_maxCapacity = Lens.lens (\UpdateProfileJob' {maxCapacity} -> maxCapacity) (\s@UpdateProfileJob' {} a -> s {maxCapacity = a} :: UpdateProfileJob)++-- | The maximum number of times to retry the job after a job run fails.+updateProfileJob_maxRetries :: Lens.Lens' UpdateProfileJob (Prelude.Maybe Prelude.Natural)+updateProfileJob_maxRetries = Lens.lens (\UpdateProfileJob' {maxRetries} -> maxRetries) (\s@UpdateProfileJob' {} a -> s {maxRetries = a} :: UpdateProfileJob)++-- | The job\'s timeout in minutes. A job that attempts to run longer than+-- this timeout period ends with a status of @TIMEOUT@.+updateProfileJob_timeout :: Lens.Lens' UpdateProfileJob (Prelude.Maybe Prelude.Natural)+updateProfileJob_timeout = Lens.lens (\UpdateProfileJob' {timeout} -> timeout) (\s@UpdateProfileJob' {} a -> s {timeout = a} :: UpdateProfileJob)++-- | List of validation configurations that are applied to the profile job.+updateProfileJob_validationConfigurations :: Lens.Lens' UpdateProfileJob (Prelude.Maybe (Prelude.NonEmpty ValidationConfiguration))+updateProfileJob_validationConfigurations = Lens.lens (\UpdateProfileJob' {validationConfigurations} -> validationConfigurations) (\s@UpdateProfileJob' {} a -> s {validationConfigurations = a} :: UpdateProfileJob) Prelude.. Lens.mapping Lens.coerced++-- | The name of the job to be updated.+updateProfileJob_name :: Lens.Lens' UpdateProfileJob Prelude.Text+updateProfileJob_name = Lens.lens (\UpdateProfileJob' {name} -> name) (\s@UpdateProfileJob' {} a -> s {name = a} :: UpdateProfileJob)++-- | Undocumented member.+updateProfileJob_outputLocation :: Lens.Lens' UpdateProfileJob S3Location+updateProfileJob_outputLocation = Lens.lens (\UpdateProfileJob' {outputLocation} -> outputLocation) (\s@UpdateProfileJob' {} a -> s {outputLocation = a} :: UpdateProfileJob)++-- | The Amazon Resource Name (ARN) of the Identity and Access Management+-- (IAM) role to be assumed when DataBrew runs the job.+updateProfileJob_roleArn :: Lens.Lens' UpdateProfileJob Prelude.Text+updateProfileJob_roleArn = Lens.lens (\UpdateProfileJob' {roleArn} -> roleArn) (\s@UpdateProfileJob' {} a -> s {roleArn = a} :: UpdateProfileJob)++instance Core.AWSRequest UpdateProfileJob where+  type+    AWSResponse UpdateProfileJob =+      UpdateProfileJobResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateProfileJobResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable UpdateProfileJob where+  hashWithSalt _salt UpdateProfileJob' {..} =+    _salt+      `Prelude.hashWithSalt` configuration+      `Prelude.hashWithSalt` encryptionKeyArn+      `Prelude.hashWithSalt` encryptionMode+      `Prelude.hashWithSalt` jobSample+      `Prelude.hashWithSalt` logSubscription+      `Prelude.hashWithSalt` maxCapacity+      `Prelude.hashWithSalt` maxRetries+      `Prelude.hashWithSalt` timeout+      `Prelude.hashWithSalt` validationConfigurations+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` outputLocation+      `Prelude.hashWithSalt` roleArn++instance Prelude.NFData UpdateProfileJob where+  rnf UpdateProfileJob' {..} =+    Prelude.rnf configuration+      `Prelude.seq` Prelude.rnf encryptionKeyArn+      `Prelude.seq` Prelude.rnf encryptionMode+      `Prelude.seq` Prelude.rnf jobSample+      `Prelude.seq` Prelude.rnf logSubscription+      `Prelude.seq` Prelude.rnf maxCapacity+      `Prelude.seq` Prelude.rnf maxRetries+      `Prelude.seq` Prelude.rnf timeout+      `Prelude.seq` Prelude.rnf validationConfigurations+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf outputLocation+      `Prelude.seq` Prelude.rnf roleArn++instance Data.ToHeaders UpdateProfileJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateProfileJob where+  toJSON UpdateProfileJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Configuration" Data..=) Prelude.<$> configuration,+            ("EncryptionKeyArn" Data..=)+              Prelude.<$> encryptionKeyArn,+            ("EncryptionMode" Data..=)+              Prelude.<$> encryptionMode,+            ("JobSample" Data..=) Prelude.<$> jobSample,+            ("LogSubscription" Data..=)+              Prelude.<$> logSubscription,+            ("MaxCapacity" Data..=) Prelude.<$> maxCapacity,+            ("MaxRetries" Data..=) Prelude.<$> maxRetries,+            ("Timeout" Data..=) Prelude.<$> timeout,+            ("ValidationConfigurations" Data..=)+              Prelude.<$> validationConfigurations,+            Prelude.Just+              ("OutputLocation" Data..= outputLocation),+            Prelude.Just ("RoleArn" Data..= roleArn)+          ]+      )++instance Data.ToPath UpdateProfileJob where+  toPath UpdateProfileJob' {..} =+    Prelude.mconcat ["/profileJobs/", Data.toBS name]++instance Data.ToQuery UpdateProfileJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateProfileJobResponse' smart constructor.+data UpdateProfileJobResponse = UpdateProfileJobResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the job that was updated.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateProfileJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateProfileJobResponse_httpStatus' - The response's http status code.+--+-- 'name', 'updateProfileJobResponse_name' - The name of the job that was updated.+newUpdateProfileJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  UpdateProfileJobResponse+newUpdateProfileJobResponse pHttpStatus_ pName_ =+  UpdateProfileJobResponse'+    { httpStatus =+        pHttpStatus_,+      name = pName_+    }++-- | The response's http status code.+updateProfileJobResponse_httpStatus :: Lens.Lens' UpdateProfileJobResponse Prelude.Int+updateProfileJobResponse_httpStatus = Lens.lens (\UpdateProfileJobResponse' {httpStatus} -> httpStatus) (\s@UpdateProfileJobResponse' {} a -> s {httpStatus = a} :: UpdateProfileJobResponse)++-- | The name of the job that was updated.+updateProfileJobResponse_name :: Lens.Lens' UpdateProfileJobResponse Prelude.Text+updateProfileJobResponse_name = Lens.lens (\UpdateProfileJobResponse' {name} -> name) (\s@UpdateProfileJobResponse' {} a -> s {name = a} :: UpdateProfileJobResponse)++instance Prelude.NFData UpdateProfileJobResponse where+  rnf UpdateProfileJobResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/UpdateProject.hs view
@@ -0,0 +1,213 @@+{-# 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.DataBrew.UpdateProject+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies the definition of an existing DataBrew project.+module Amazonka.DataBrew.UpdateProject+  ( -- * Creating a Request+    UpdateProject (..),+    newUpdateProject,++    -- * Request Lenses+    updateProject_sample,+    updateProject_roleArn,+    updateProject_name,++    -- * Destructuring the Response+    UpdateProjectResponse (..),+    newUpdateProjectResponse,++    -- * Response Lenses+    updateProjectResponse_lastModifiedDate,+    updateProjectResponse_httpStatus,+    updateProjectResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateProject' smart constructor.+data UpdateProject = UpdateProject'+  { sample :: Prelude.Maybe Sample,+    -- | The Amazon Resource Name (ARN) of the IAM role to be assumed for this+    -- request.+    roleArn :: Prelude.Text,+    -- | The name of the project to be updated.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateProject' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sample', 'updateProject_sample' - Undocumented member.+--+-- 'roleArn', 'updateProject_roleArn' - The Amazon Resource Name (ARN) of the IAM role to be assumed for this+-- request.+--+-- 'name', 'updateProject_name' - The name of the project to be updated.+newUpdateProject ::+  -- | 'roleArn'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  UpdateProject+newUpdateProject pRoleArn_ pName_ =+  UpdateProject'+    { sample = Prelude.Nothing,+      roleArn = pRoleArn_,+      name = pName_+    }++-- | Undocumented member.+updateProject_sample :: Lens.Lens' UpdateProject (Prelude.Maybe Sample)+updateProject_sample = Lens.lens (\UpdateProject' {sample} -> sample) (\s@UpdateProject' {} a -> s {sample = a} :: UpdateProject)++-- | The Amazon Resource Name (ARN) of the IAM role to be assumed for this+-- request.+updateProject_roleArn :: Lens.Lens' UpdateProject Prelude.Text+updateProject_roleArn = Lens.lens (\UpdateProject' {roleArn} -> roleArn) (\s@UpdateProject' {} a -> s {roleArn = a} :: UpdateProject)++-- | The name of the project to be updated.+updateProject_name :: Lens.Lens' UpdateProject Prelude.Text+updateProject_name = Lens.lens (\UpdateProject' {name} -> name) (\s@UpdateProject' {} a -> s {name = a} :: UpdateProject)++instance Core.AWSRequest UpdateProject where+  type+    AWSResponse UpdateProject =+      UpdateProjectResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateProjectResponse'+            Prelude.<$> (x Data..?> "LastModifiedDate")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable UpdateProject where+  hashWithSalt _salt UpdateProject' {..} =+    _salt+      `Prelude.hashWithSalt` sample+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` name++instance Prelude.NFData UpdateProject where+  rnf UpdateProject' {..} =+    Prelude.rnf sample+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders UpdateProject where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateProject where+  toJSON UpdateProject' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Sample" Data..=) Prelude.<$> sample,+            Prelude.Just ("RoleArn" Data..= roleArn)+          ]+      )++instance Data.ToPath UpdateProject where+  toPath UpdateProject' {..} =+    Prelude.mconcat ["/projects/", Data.toBS name]++instance Data.ToQuery UpdateProject where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateProjectResponse' smart constructor.+data UpdateProjectResponse = UpdateProjectResponse'+  { -- | The date and time that the project was last modified.+    lastModifiedDate :: Prelude.Maybe Data.POSIX,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the project that you updated.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateProjectResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'lastModifiedDate', 'updateProjectResponse_lastModifiedDate' - The date and time that the project was last modified.+--+-- 'httpStatus', 'updateProjectResponse_httpStatus' - The response's http status code.+--+-- 'name', 'updateProjectResponse_name' - The name of the project that you updated.+newUpdateProjectResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  UpdateProjectResponse+newUpdateProjectResponse pHttpStatus_ pName_ =+  UpdateProjectResponse'+    { lastModifiedDate =+        Prelude.Nothing,+      httpStatus = pHttpStatus_,+      name = pName_+    }++-- | The date and time that the project was last modified.+updateProjectResponse_lastModifiedDate :: Lens.Lens' UpdateProjectResponse (Prelude.Maybe Prelude.UTCTime)+updateProjectResponse_lastModifiedDate = Lens.lens (\UpdateProjectResponse' {lastModifiedDate} -> lastModifiedDate) (\s@UpdateProjectResponse' {} a -> s {lastModifiedDate = a} :: UpdateProjectResponse) Prelude.. Lens.mapping Data._Time++-- | The response's http status code.+updateProjectResponse_httpStatus :: Lens.Lens' UpdateProjectResponse Prelude.Int+updateProjectResponse_httpStatus = Lens.lens (\UpdateProjectResponse' {httpStatus} -> httpStatus) (\s@UpdateProjectResponse' {} a -> s {httpStatus = a} :: UpdateProjectResponse)++-- | The name of the project that you updated.+updateProjectResponse_name :: Lens.Lens' UpdateProjectResponse Prelude.Text+updateProjectResponse_name = Lens.lens (\UpdateProjectResponse' {name} -> name) (\s@UpdateProjectResponse' {} a -> s {name = a} :: UpdateProjectResponse)++instance Prelude.NFData UpdateProjectResponse where+  rnf UpdateProjectResponse' {..} =+    Prelude.rnf lastModifiedDate+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/UpdateRecipe.hs view
@@ -0,0 +1,198 @@+{-# 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.DataBrew.UpdateRecipe+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies the definition of the @LATEST_WORKING@ version of a DataBrew+-- recipe.+module Amazonka.DataBrew.UpdateRecipe+  ( -- * Creating a Request+    UpdateRecipe (..),+    newUpdateRecipe,++    -- * Request Lenses+    updateRecipe_description,+    updateRecipe_steps,+    updateRecipe_name,++    -- * Destructuring the Response+    UpdateRecipeResponse (..),+    newUpdateRecipeResponse,++    -- * Response Lenses+    updateRecipeResponse_httpStatus,+    updateRecipeResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateRecipe' smart constructor.+data UpdateRecipe = UpdateRecipe'+  { -- | A description of the recipe.+    description :: Prelude.Maybe Prelude.Text,+    -- | One or more steps to be performed by the recipe. Each step consists of+    -- an action, and the conditions under which the action should succeed.+    steps :: Prelude.Maybe [RecipeStep],+    -- | The name of the recipe to be updated.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateRecipe' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'updateRecipe_description' - A description of the recipe.+--+-- 'steps', 'updateRecipe_steps' - One or more steps to be performed by the recipe. Each step consists of+-- an action, and the conditions under which the action should succeed.+--+-- 'name', 'updateRecipe_name' - The name of the recipe to be updated.+newUpdateRecipe ::+  -- | 'name'+  Prelude.Text ->+  UpdateRecipe+newUpdateRecipe pName_ =+  UpdateRecipe'+    { description = Prelude.Nothing,+      steps = Prelude.Nothing,+      name = pName_+    }++-- | A description of the recipe.+updateRecipe_description :: Lens.Lens' UpdateRecipe (Prelude.Maybe Prelude.Text)+updateRecipe_description = Lens.lens (\UpdateRecipe' {description} -> description) (\s@UpdateRecipe' {} a -> s {description = a} :: UpdateRecipe)++-- | One or more steps to be performed by the recipe. Each step consists of+-- an action, and the conditions under which the action should succeed.+updateRecipe_steps :: Lens.Lens' UpdateRecipe (Prelude.Maybe [RecipeStep])+updateRecipe_steps = Lens.lens (\UpdateRecipe' {steps} -> steps) (\s@UpdateRecipe' {} a -> s {steps = a} :: UpdateRecipe) Prelude.. Lens.mapping Lens.coerced++-- | The name of the recipe to be updated.+updateRecipe_name :: Lens.Lens' UpdateRecipe Prelude.Text+updateRecipe_name = Lens.lens (\UpdateRecipe' {name} -> name) (\s@UpdateRecipe' {} a -> s {name = a} :: UpdateRecipe)++instance Core.AWSRequest UpdateRecipe where+  type AWSResponse UpdateRecipe = UpdateRecipeResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateRecipeResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable UpdateRecipe where+  hashWithSalt _salt UpdateRecipe' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` steps+      `Prelude.hashWithSalt` name++instance Prelude.NFData UpdateRecipe where+  rnf UpdateRecipe' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf steps+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders UpdateRecipe where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateRecipe where+  toJSON UpdateRecipe' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            ("Steps" Data..=) Prelude.<$> steps+          ]+      )++instance Data.ToPath UpdateRecipe where+  toPath UpdateRecipe' {..} =+    Prelude.mconcat ["/recipes/", Data.toBS name]++instance Data.ToQuery UpdateRecipe where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateRecipeResponse' smart constructor.+data UpdateRecipeResponse = UpdateRecipeResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the recipe that was updated.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateRecipeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateRecipeResponse_httpStatus' - The response's http status code.+--+-- 'name', 'updateRecipeResponse_name' - The name of the recipe that was updated.+newUpdateRecipeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  UpdateRecipeResponse+newUpdateRecipeResponse pHttpStatus_ pName_ =+  UpdateRecipeResponse'+    { httpStatus = pHttpStatus_,+      name = pName_+    }++-- | The response's http status code.+updateRecipeResponse_httpStatus :: Lens.Lens' UpdateRecipeResponse Prelude.Int+updateRecipeResponse_httpStatus = Lens.lens (\UpdateRecipeResponse' {httpStatus} -> httpStatus) (\s@UpdateRecipeResponse' {} a -> s {httpStatus = a} :: UpdateRecipeResponse)++-- | The name of the recipe that was updated.+updateRecipeResponse_name :: Lens.Lens' UpdateRecipeResponse Prelude.Text+updateRecipeResponse_name = Lens.lens (\UpdateRecipeResponse' {name} -> name) (\s@UpdateRecipeResponse' {} a -> s {name = a} :: UpdateRecipeResponse)++instance Prelude.NFData UpdateRecipeResponse where+  rnf UpdateRecipeResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/UpdateRecipeJob.hs view
@@ -0,0 +1,341 @@+{-# 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.DataBrew.UpdateRecipeJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies the definition of an existing DataBrew recipe job.+module Amazonka.DataBrew.UpdateRecipeJob+  ( -- * Creating a Request+    UpdateRecipeJob (..),+    newUpdateRecipeJob,++    -- * Request Lenses+    updateRecipeJob_dataCatalogOutputs,+    updateRecipeJob_databaseOutputs,+    updateRecipeJob_encryptionKeyArn,+    updateRecipeJob_encryptionMode,+    updateRecipeJob_logSubscription,+    updateRecipeJob_maxCapacity,+    updateRecipeJob_maxRetries,+    updateRecipeJob_outputs,+    updateRecipeJob_timeout,+    updateRecipeJob_name,+    updateRecipeJob_roleArn,++    -- * Destructuring the Response+    UpdateRecipeJobResponse (..),+    newUpdateRecipeJobResponse,++    -- * Response Lenses+    updateRecipeJobResponse_httpStatus,+    updateRecipeJobResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateRecipeJob' smart constructor.+data UpdateRecipeJob = UpdateRecipeJob'+  { -- | One or more artifacts that represent the Glue Data Catalog output from+    -- running the job.+    dataCatalogOutputs :: Prelude.Maybe (Prelude.NonEmpty DataCatalogOutput),+    -- | Represents a list of JDBC database output objects which defines the+    -- output destination for a DataBrew recipe job to write into.+    databaseOutputs :: Prelude.Maybe (Prelude.NonEmpty DatabaseOutput),+    -- | The Amazon Resource Name (ARN) of an encryption key that is used to+    -- protect the job.+    encryptionKeyArn :: Prelude.Maybe Prelude.Text,+    -- | The encryption mode for the job, which can be one of the following:+    --+    -- -   @SSE-KMS@ - Server-side encryption with keys managed by KMS.+    --+    -- -   @SSE-S3@ - Server-side encryption with keys managed by Amazon S3.+    encryptionMode :: Prelude.Maybe EncryptionMode,+    -- | Enables or disables Amazon CloudWatch logging for the job. If logging is+    -- enabled, CloudWatch writes one log stream for each job run.+    logSubscription :: Prelude.Maybe LogSubscription,+    -- | The maximum number of nodes that DataBrew can consume when the job+    -- processes data.+    maxCapacity :: Prelude.Maybe Prelude.Int,+    -- | The maximum number of times to retry the job after a job run fails.+    maxRetries :: Prelude.Maybe Prelude.Natural,+    -- | One or more artifacts that represent the output from running the job.+    outputs :: Prelude.Maybe (Prelude.NonEmpty Output),+    -- | The job\'s timeout in minutes. A job that attempts to run longer than+    -- this timeout period ends with a status of @TIMEOUT@.+    timeout :: Prelude.Maybe Prelude.Natural,+    -- | The name of the job to update.+    name :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the Identity and Access Management+    -- (IAM) role to be assumed when DataBrew runs the job.+    roleArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateRecipeJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataCatalogOutputs', 'updateRecipeJob_dataCatalogOutputs' - One or more artifacts that represent the Glue Data Catalog output from+-- running the job.+--+-- 'databaseOutputs', 'updateRecipeJob_databaseOutputs' - Represents a list of JDBC database output objects which defines the+-- output destination for a DataBrew recipe job to write into.+--+-- 'encryptionKeyArn', 'updateRecipeJob_encryptionKeyArn' - The Amazon Resource Name (ARN) of an encryption key that is used to+-- protect the job.+--+-- 'encryptionMode', 'updateRecipeJob_encryptionMode' - The encryption mode for the job, which can be one of the following:+--+-- -   @SSE-KMS@ - Server-side encryption with keys managed by KMS.+--+-- -   @SSE-S3@ - Server-side encryption with keys managed by Amazon S3.+--+-- 'logSubscription', 'updateRecipeJob_logSubscription' - Enables or disables Amazon CloudWatch logging for the job. If logging is+-- enabled, CloudWatch writes one log stream for each job run.+--+-- 'maxCapacity', 'updateRecipeJob_maxCapacity' - The maximum number of nodes that DataBrew can consume when the job+-- processes data.+--+-- 'maxRetries', 'updateRecipeJob_maxRetries' - The maximum number of times to retry the job after a job run fails.+--+-- 'outputs', 'updateRecipeJob_outputs' - One or more artifacts that represent the output from running the job.+--+-- 'timeout', 'updateRecipeJob_timeout' - The job\'s timeout in minutes. A job that attempts to run longer than+-- this timeout period ends with a status of @TIMEOUT@.+--+-- 'name', 'updateRecipeJob_name' - The name of the job to update.+--+-- 'roleArn', 'updateRecipeJob_roleArn' - The Amazon Resource Name (ARN) of the Identity and Access Management+-- (IAM) role to be assumed when DataBrew runs the job.+newUpdateRecipeJob ::+  -- | 'name'+  Prelude.Text ->+  -- | 'roleArn'+  Prelude.Text ->+  UpdateRecipeJob+newUpdateRecipeJob pName_ pRoleArn_ =+  UpdateRecipeJob'+    { dataCatalogOutputs =+        Prelude.Nothing,+      databaseOutputs = Prelude.Nothing,+      encryptionKeyArn = Prelude.Nothing,+      encryptionMode = Prelude.Nothing,+      logSubscription = Prelude.Nothing,+      maxCapacity = Prelude.Nothing,+      maxRetries = Prelude.Nothing,+      outputs = Prelude.Nothing,+      timeout = Prelude.Nothing,+      name = pName_,+      roleArn = pRoleArn_+    }++-- | One or more artifacts that represent the Glue Data Catalog output from+-- running the job.+updateRecipeJob_dataCatalogOutputs :: Lens.Lens' UpdateRecipeJob (Prelude.Maybe (Prelude.NonEmpty DataCatalogOutput))+updateRecipeJob_dataCatalogOutputs = Lens.lens (\UpdateRecipeJob' {dataCatalogOutputs} -> dataCatalogOutputs) (\s@UpdateRecipeJob' {} a -> s {dataCatalogOutputs = a} :: UpdateRecipeJob) Prelude.. Lens.mapping Lens.coerced++-- | Represents a list of JDBC database output objects which defines the+-- output destination for a DataBrew recipe job to write into.+updateRecipeJob_databaseOutputs :: Lens.Lens' UpdateRecipeJob (Prelude.Maybe (Prelude.NonEmpty DatabaseOutput))+updateRecipeJob_databaseOutputs = Lens.lens (\UpdateRecipeJob' {databaseOutputs} -> databaseOutputs) (\s@UpdateRecipeJob' {} a -> s {databaseOutputs = a} :: UpdateRecipeJob) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of an encryption key that is used to+-- protect the job.+updateRecipeJob_encryptionKeyArn :: Lens.Lens' UpdateRecipeJob (Prelude.Maybe Prelude.Text)+updateRecipeJob_encryptionKeyArn = Lens.lens (\UpdateRecipeJob' {encryptionKeyArn} -> encryptionKeyArn) (\s@UpdateRecipeJob' {} a -> s {encryptionKeyArn = a} :: UpdateRecipeJob)++-- | The encryption mode for the job, which can be one of the following:+--+-- -   @SSE-KMS@ - Server-side encryption with keys managed by KMS.+--+-- -   @SSE-S3@ - Server-side encryption with keys managed by Amazon S3.+updateRecipeJob_encryptionMode :: Lens.Lens' UpdateRecipeJob (Prelude.Maybe EncryptionMode)+updateRecipeJob_encryptionMode = Lens.lens (\UpdateRecipeJob' {encryptionMode} -> encryptionMode) (\s@UpdateRecipeJob' {} a -> s {encryptionMode = a} :: UpdateRecipeJob)++-- | Enables or disables Amazon CloudWatch logging for the job. If logging is+-- enabled, CloudWatch writes one log stream for each job run.+updateRecipeJob_logSubscription :: Lens.Lens' UpdateRecipeJob (Prelude.Maybe LogSubscription)+updateRecipeJob_logSubscription = Lens.lens (\UpdateRecipeJob' {logSubscription} -> logSubscription) (\s@UpdateRecipeJob' {} a -> s {logSubscription = a} :: UpdateRecipeJob)++-- | The maximum number of nodes that DataBrew can consume when the job+-- processes data.+updateRecipeJob_maxCapacity :: Lens.Lens' UpdateRecipeJob (Prelude.Maybe Prelude.Int)+updateRecipeJob_maxCapacity = Lens.lens (\UpdateRecipeJob' {maxCapacity} -> maxCapacity) (\s@UpdateRecipeJob' {} a -> s {maxCapacity = a} :: UpdateRecipeJob)++-- | The maximum number of times to retry the job after a job run fails.+updateRecipeJob_maxRetries :: Lens.Lens' UpdateRecipeJob (Prelude.Maybe Prelude.Natural)+updateRecipeJob_maxRetries = Lens.lens (\UpdateRecipeJob' {maxRetries} -> maxRetries) (\s@UpdateRecipeJob' {} a -> s {maxRetries = a} :: UpdateRecipeJob)++-- | One or more artifacts that represent the output from running the job.+updateRecipeJob_outputs :: Lens.Lens' UpdateRecipeJob (Prelude.Maybe (Prelude.NonEmpty Output))+updateRecipeJob_outputs = Lens.lens (\UpdateRecipeJob' {outputs} -> outputs) (\s@UpdateRecipeJob' {} a -> s {outputs = a} :: UpdateRecipeJob) Prelude.. Lens.mapping Lens.coerced++-- | The job\'s timeout in minutes. A job that attempts to run longer than+-- this timeout period ends with a status of @TIMEOUT@.+updateRecipeJob_timeout :: Lens.Lens' UpdateRecipeJob (Prelude.Maybe Prelude.Natural)+updateRecipeJob_timeout = Lens.lens (\UpdateRecipeJob' {timeout} -> timeout) (\s@UpdateRecipeJob' {} a -> s {timeout = a} :: UpdateRecipeJob)++-- | The name of the job to update.+updateRecipeJob_name :: Lens.Lens' UpdateRecipeJob Prelude.Text+updateRecipeJob_name = Lens.lens (\UpdateRecipeJob' {name} -> name) (\s@UpdateRecipeJob' {} a -> s {name = a} :: UpdateRecipeJob)++-- | The Amazon Resource Name (ARN) of the Identity and Access Management+-- (IAM) role to be assumed when DataBrew runs the job.+updateRecipeJob_roleArn :: Lens.Lens' UpdateRecipeJob Prelude.Text+updateRecipeJob_roleArn = Lens.lens (\UpdateRecipeJob' {roleArn} -> roleArn) (\s@UpdateRecipeJob' {} a -> s {roleArn = a} :: UpdateRecipeJob)++instance Core.AWSRequest UpdateRecipeJob where+  type+    AWSResponse UpdateRecipeJob =+      UpdateRecipeJobResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateRecipeJobResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable UpdateRecipeJob where+  hashWithSalt _salt UpdateRecipeJob' {..} =+    _salt+      `Prelude.hashWithSalt` dataCatalogOutputs+      `Prelude.hashWithSalt` databaseOutputs+      `Prelude.hashWithSalt` encryptionKeyArn+      `Prelude.hashWithSalt` encryptionMode+      `Prelude.hashWithSalt` logSubscription+      `Prelude.hashWithSalt` maxCapacity+      `Prelude.hashWithSalt` maxRetries+      `Prelude.hashWithSalt` outputs+      `Prelude.hashWithSalt` timeout+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` roleArn++instance Prelude.NFData UpdateRecipeJob where+  rnf UpdateRecipeJob' {..} =+    Prelude.rnf dataCatalogOutputs+      `Prelude.seq` Prelude.rnf databaseOutputs+      `Prelude.seq` Prelude.rnf encryptionKeyArn+      `Prelude.seq` Prelude.rnf encryptionMode+      `Prelude.seq` Prelude.rnf logSubscription+      `Prelude.seq` Prelude.rnf maxCapacity+      `Prelude.seq` Prelude.rnf maxRetries+      `Prelude.seq` Prelude.rnf outputs+      `Prelude.seq` Prelude.rnf timeout+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf roleArn++instance Data.ToHeaders UpdateRecipeJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateRecipeJob where+  toJSON UpdateRecipeJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DataCatalogOutputs" Data..=)+              Prelude.<$> dataCatalogOutputs,+            ("DatabaseOutputs" Data..=)+              Prelude.<$> databaseOutputs,+            ("EncryptionKeyArn" Data..=)+              Prelude.<$> encryptionKeyArn,+            ("EncryptionMode" Data..=)+              Prelude.<$> encryptionMode,+            ("LogSubscription" Data..=)+              Prelude.<$> logSubscription,+            ("MaxCapacity" Data..=) Prelude.<$> maxCapacity,+            ("MaxRetries" Data..=) Prelude.<$> maxRetries,+            ("Outputs" Data..=) Prelude.<$> outputs,+            ("Timeout" Data..=) Prelude.<$> timeout,+            Prelude.Just ("RoleArn" Data..= roleArn)+          ]+      )++instance Data.ToPath UpdateRecipeJob where+  toPath UpdateRecipeJob' {..} =+    Prelude.mconcat ["/recipeJobs/", Data.toBS name]++instance Data.ToQuery UpdateRecipeJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateRecipeJobResponse' smart constructor.+data UpdateRecipeJobResponse = UpdateRecipeJobResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the job that you updated.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateRecipeJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateRecipeJobResponse_httpStatus' - The response's http status code.+--+-- 'name', 'updateRecipeJobResponse_name' - The name of the job that you updated.+newUpdateRecipeJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  UpdateRecipeJobResponse+newUpdateRecipeJobResponse pHttpStatus_ pName_ =+  UpdateRecipeJobResponse'+    { httpStatus = pHttpStatus_,+      name = pName_+    }++-- | The response's http status code.+updateRecipeJobResponse_httpStatus :: Lens.Lens' UpdateRecipeJobResponse Prelude.Int+updateRecipeJobResponse_httpStatus = Lens.lens (\UpdateRecipeJobResponse' {httpStatus} -> httpStatus) (\s@UpdateRecipeJobResponse' {} a -> s {httpStatus = a} :: UpdateRecipeJobResponse)++-- | The name of the job that you updated.+updateRecipeJobResponse_name :: Lens.Lens' UpdateRecipeJobResponse Prelude.Text+updateRecipeJobResponse_name = Lens.lens (\UpdateRecipeJobResponse' {name} -> name) (\s@UpdateRecipeJobResponse' {} a -> s {name = a} :: UpdateRecipeJobResponse)++instance Prelude.NFData UpdateRecipeJobResponse where+  rnf UpdateRecipeJobResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/UpdateRuleset.hs view
@@ -0,0 +1,201 @@+{-# 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.DataBrew.UpdateRuleset+-- 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 specified ruleset.+module Amazonka.DataBrew.UpdateRuleset+  ( -- * Creating a Request+    UpdateRuleset (..),+    newUpdateRuleset,++    -- * Request Lenses+    updateRuleset_description,+    updateRuleset_name,+    updateRuleset_rules,++    -- * Destructuring the Response+    UpdateRulesetResponse (..),+    newUpdateRulesetResponse,++    -- * Response Lenses+    updateRulesetResponse_httpStatus,+    updateRulesetResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateRuleset' smart constructor.+data UpdateRuleset = UpdateRuleset'+  { -- | The description of the ruleset.+    description :: Prelude.Maybe Prelude.Text,+    -- | The name of the ruleset to be updated.+    name :: Prelude.Text,+    -- | A list of rules that are defined with the ruleset. A rule includes one+    -- or more checks to be validated on a DataBrew dataset.+    rules :: Prelude.NonEmpty Rule+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateRuleset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'updateRuleset_description' - The description of the ruleset.+--+-- 'name', 'updateRuleset_name' - The name of the ruleset to be updated.+--+-- 'rules', 'updateRuleset_rules' - A list of rules that are defined with the ruleset. A rule includes one+-- or more checks to be validated on a DataBrew dataset.+newUpdateRuleset ::+  -- | 'name'+  Prelude.Text ->+  -- | 'rules'+  Prelude.NonEmpty Rule ->+  UpdateRuleset+newUpdateRuleset pName_ pRules_ =+  UpdateRuleset'+    { description = Prelude.Nothing,+      name = pName_,+      rules = Lens.coerced Lens.# pRules_+    }++-- | The description of the ruleset.+updateRuleset_description :: Lens.Lens' UpdateRuleset (Prelude.Maybe Prelude.Text)+updateRuleset_description = Lens.lens (\UpdateRuleset' {description} -> description) (\s@UpdateRuleset' {} a -> s {description = a} :: UpdateRuleset)++-- | The name of the ruleset to be updated.+updateRuleset_name :: Lens.Lens' UpdateRuleset Prelude.Text+updateRuleset_name = Lens.lens (\UpdateRuleset' {name} -> name) (\s@UpdateRuleset' {} a -> s {name = a} :: UpdateRuleset)++-- | A list of rules that are defined with the ruleset. A rule includes one+-- or more checks to be validated on a DataBrew dataset.+updateRuleset_rules :: Lens.Lens' UpdateRuleset (Prelude.NonEmpty Rule)+updateRuleset_rules = Lens.lens (\UpdateRuleset' {rules} -> rules) (\s@UpdateRuleset' {} a -> s {rules = a} :: UpdateRuleset) Prelude.. Lens.coerced++instance Core.AWSRequest UpdateRuleset where+  type+    AWSResponse UpdateRuleset =+      UpdateRulesetResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateRulesetResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable UpdateRuleset where+  hashWithSalt _salt UpdateRuleset' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` rules++instance Prelude.NFData UpdateRuleset where+  rnf UpdateRuleset' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf rules++instance Data.ToHeaders UpdateRuleset where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateRuleset where+  toJSON UpdateRuleset' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            Prelude.Just ("Rules" Data..= rules)+          ]+      )++instance Data.ToPath UpdateRuleset where+  toPath UpdateRuleset' {..} =+    Prelude.mconcat ["/rulesets/", Data.toBS name]++instance Data.ToQuery UpdateRuleset where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateRulesetResponse' smart constructor.+data UpdateRulesetResponse = UpdateRulesetResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the updated ruleset.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateRulesetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateRulesetResponse_httpStatus' - The response's http status code.+--+-- 'name', 'updateRulesetResponse_name' - The name of the updated ruleset.+newUpdateRulesetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  UpdateRulesetResponse+newUpdateRulesetResponse pHttpStatus_ pName_ =+  UpdateRulesetResponse'+    { httpStatus = pHttpStatus_,+      name = pName_+    }++-- | The response's http status code.+updateRulesetResponse_httpStatus :: Lens.Lens' UpdateRulesetResponse Prelude.Int+updateRulesetResponse_httpStatus = Lens.lens (\UpdateRulesetResponse' {httpStatus} -> httpStatus) (\s@UpdateRulesetResponse' {} a -> s {httpStatus = a} :: UpdateRulesetResponse)++-- | The name of the updated ruleset.+updateRulesetResponse_name :: Lens.Lens' UpdateRulesetResponse Prelude.Text+updateRulesetResponse_name = Lens.lens (\UpdateRulesetResponse' {name} -> name) (\s@UpdateRulesetResponse' {} a -> s {name = a} :: UpdateRulesetResponse)++instance Prelude.NFData UpdateRulesetResponse where+  rnf UpdateRulesetResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/UpdateSchedule.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.DataBrew.UpdateSchedule+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies the definition of an existing DataBrew schedule.+module Amazonka.DataBrew.UpdateSchedule+  ( -- * Creating a Request+    UpdateSchedule (..),+    newUpdateSchedule,++    -- * Request Lenses+    updateSchedule_jobNames,+    updateSchedule_cronExpression,+    updateSchedule_name,++    -- * Destructuring the Response+    UpdateScheduleResponse (..),+    newUpdateScheduleResponse,++    -- * Response Lenses+    updateScheduleResponse_httpStatus,+    updateScheduleResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateSchedule' smart constructor.+data UpdateSchedule = UpdateSchedule'+  { -- | The name or names of one or more jobs to be run for this schedule.+    jobNames :: Prelude.Maybe [Prelude.Text],+    -- | The date or dates and time or times when the jobs are to be run. For+    -- more information, see+    -- <https://docs.aws.amazon.com/databrew/latest/dg/jobs.cron.html Cron expressions>+    -- in the /Glue DataBrew Developer Guide/.+    cronExpression :: Prelude.Text,+    -- | The name of the schedule to update.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateSchedule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jobNames', 'updateSchedule_jobNames' - The name or names of one or more jobs to be run for this schedule.+--+-- 'cronExpression', 'updateSchedule_cronExpression' - The date or dates and time or times when the jobs are to be run. For+-- more information, see+-- <https://docs.aws.amazon.com/databrew/latest/dg/jobs.cron.html Cron expressions>+-- in the /Glue DataBrew Developer Guide/.+--+-- 'name', 'updateSchedule_name' - The name of the schedule to update.+newUpdateSchedule ::+  -- | 'cronExpression'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  UpdateSchedule+newUpdateSchedule pCronExpression_ pName_ =+  UpdateSchedule'+    { jobNames = Prelude.Nothing,+      cronExpression = pCronExpression_,+      name = pName_+    }++-- | The name or names of one or more jobs to be run for this schedule.+updateSchedule_jobNames :: Lens.Lens' UpdateSchedule (Prelude.Maybe [Prelude.Text])+updateSchedule_jobNames = Lens.lens (\UpdateSchedule' {jobNames} -> jobNames) (\s@UpdateSchedule' {} a -> s {jobNames = a} :: UpdateSchedule) Prelude.. Lens.mapping Lens.coerced++-- | The date or dates and time or times when the jobs are to be run. For+-- more information, see+-- <https://docs.aws.amazon.com/databrew/latest/dg/jobs.cron.html Cron expressions>+-- in the /Glue DataBrew Developer Guide/.+updateSchedule_cronExpression :: Lens.Lens' UpdateSchedule Prelude.Text+updateSchedule_cronExpression = Lens.lens (\UpdateSchedule' {cronExpression} -> cronExpression) (\s@UpdateSchedule' {} a -> s {cronExpression = a} :: UpdateSchedule)++-- | The name of the schedule to update.+updateSchedule_name :: Lens.Lens' UpdateSchedule Prelude.Text+updateSchedule_name = Lens.lens (\UpdateSchedule' {name} -> name) (\s@UpdateSchedule' {} a -> s {name = a} :: UpdateSchedule)++instance Core.AWSRequest UpdateSchedule where+  type+    AWSResponse UpdateSchedule =+      UpdateScheduleResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateScheduleResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance Prelude.Hashable UpdateSchedule where+  hashWithSalt _salt UpdateSchedule' {..} =+    _salt+      `Prelude.hashWithSalt` jobNames+      `Prelude.hashWithSalt` cronExpression+      `Prelude.hashWithSalt` name++instance Prelude.NFData UpdateSchedule where+  rnf UpdateSchedule' {..} =+    Prelude.rnf jobNames+      `Prelude.seq` Prelude.rnf cronExpression+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders UpdateSchedule where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateSchedule where+  toJSON UpdateSchedule' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("JobNames" Data..=) Prelude.<$> jobNames,+            Prelude.Just+              ("CronExpression" Data..= cronExpression)+          ]+      )++instance Data.ToPath UpdateSchedule where+  toPath UpdateSchedule' {..} =+    Prelude.mconcat ["/schedules/", Data.toBS name]++instance Data.ToQuery UpdateSchedule where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateScheduleResponse' smart constructor.+data UpdateScheduleResponse = UpdateScheduleResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the schedule that was updated.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateScheduleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateScheduleResponse_httpStatus' - The response's http status code.+--+-- 'name', 'updateScheduleResponse_name' - The name of the schedule that was updated.+newUpdateScheduleResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  UpdateScheduleResponse+newUpdateScheduleResponse pHttpStatus_ pName_ =+  UpdateScheduleResponse'+    { httpStatus = pHttpStatus_,+      name = pName_+    }++-- | The response's http status code.+updateScheduleResponse_httpStatus :: Lens.Lens' UpdateScheduleResponse Prelude.Int+updateScheduleResponse_httpStatus = Lens.lens (\UpdateScheduleResponse' {httpStatus} -> httpStatus) (\s@UpdateScheduleResponse' {} a -> s {httpStatus = a} :: UpdateScheduleResponse)++-- | The name of the schedule that was updated.+updateScheduleResponse_name :: Lens.Lens' UpdateScheduleResponse Prelude.Text+updateScheduleResponse_name = Lens.lens (\UpdateScheduleResponse' {name} -> name) (\s@UpdateScheduleResponse' {} a -> s {name = a} :: UpdateScheduleResponse)++instance Prelude.NFData UpdateScheduleResponse where+  rnf UpdateScheduleResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/DataBrew/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.DataBrew.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.DataBrew.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataBrew.Lens+import Amazonka.DataBrew.Types+import qualified Amazonka.Prelude as Prelude
+ src/.gitkeep view
+ test/Main.hs view
@@ -0,0 +1,23 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Main+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Main (main) where++import Test.Amazonka.DataBrew+import Test.Amazonka.DataBrew.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "DataBrew"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/DataBrew.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.DataBrew+-- Copyright   : (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.DataBrew+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/DataBrew/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.DataBrew.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.DataBrew.Internal where
+ test/Test/Amazonka/Gen/DataBrew.hs view
@@ -0,0 +1,918 @@+{-# 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.DataBrew+-- Copyright   : (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.DataBrew where++import Amazonka.DataBrew+import qualified Data.Proxy as Proxy+import Test.Amazonka.DataBrew.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"+--         [ requestBatchDeleteRecipeVersion $+--             newBatchDeleteRecipeVersion+--+--         , requestCreateDataset $+--             newCreateDataset+--+--         , requestCreateProfileJob $+--             newCreateProfileJob+--+--         , requestCreateProject $+--             newCreateProject+--+--         , requestCreateRecipe $+--             newCreateRecipe+--+--         , requestCreateRecipeJob $+--             newCreateRecipeJob+--+--         , requestCreateRuleset $+--             newCreateRuleset+--+--         , requestCreateSchedule $+--             newCreateSchedule+--+--         , requestDeleteDataset $+--             newDeleteDataset+--+--         , requestDeleteJob $+--             newDeleteJob+--+--         , requestDeleteProject $+--             newDeleteProject+--+--         , requestDeleteRecipeVersion $+--             newDeleteRecipeVersion+--+--         , requestDeleteRuleset $+--             newDeleteRuleset+--+--         , requestDeleteSchedule $+--             newDeleteSchedule+--+--         , requestDescribeDataset $+--             newDescribeDataset+--+--         , requestDescribeJob $+--             newDescribeJob+--+--         , requestDescribeJobRun $+--             newDescribeJobRun+--+--         , requestDescribeProject $+--             newDescribeProject+--+--         , requestDescribeRecipe $+--             newDescribeRecipe+--+--         , requestDescribeRuleset $+--             newDescribeRuleset+--+--         , requestDescribeSchedule $+--             newDescribeSchedule+--+--         , requestListDatasets $+--             newListDatasets+--+--         , requestListJobRuns $+--             newListJobRuns+--+--         , requestListJobs $+--             newListJobs+--+--         , requestListProjects $+--             newListProjects+--+--         , requestListRecipeVersions $+--             newListRecipeVersions+--+--         , requestListRecipes $+--             newListRecipes+--+--         , requestListRulesets $+--             newListRulesets+--+--         , requestListSchedules $+--             newListSchedules+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestPublishRecipe $+--             newPublishRecipe+--+--         , requestSendProjectSessionAction $+--             newSendProjectSessionAction+--+--         , requestStartJobRun $+--             newStartJobRun+--+--         , requestStartProjectSession $+--             newStartProjectSession+--+--         , requestStopJobRun $+--             newStopJobRun+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateDataset $+--             newUpdateDataset+--+--         , requestUpdateProfileJob $+--             newUpdateProfileJob+--+--         , requestUpdateProject $+--             newUpdateProject+--+--         , requestUpdateRecipe $+--             newUpdateRecipe+--+--         , requestUpdateRecipeJob $+--             newUpdateRecipeJob+--+--         , requestUpdateRuleset $+--             newUpdateRuleset+--+--         , requestUpdateSchedule $+--             newUpdateSchedule+--+--           ]++--     , testGroup "response"+--         [ responseBatchDeleteRecipeVersion $+--             newBatchDeleteRecipeVersionResponse+--+--         , responseCreateDataset $+--             newCreateDatasetResponse+--+--         , responseCreateProfileJob $+--             newCreateProfileJobResponse+--+--         , responseCreateProject $+--             newCreateProjectResponse+--+--         , responseCreateRecipe $+--             newCreateRecipeResponse+--+--         , responseCreateRecipeJob $+--             newCreateRecipeJobResponse+--+--         , responseCreateRuleset $+--             newCreateRulesetResponse+--+--         , responseCreateSchedule $+--             newCreateScheduleResponse+--+--         , responseDeleteDataset $+--             newDeleteDatasetResponse+--+--         , responseDeleteJob $+--             newDeleteJobResponse+--+--         , responseDeleteProject $+--             newDeleteProjectResponse+--+--         , responseDeleteRecipeVersion $+--             newDeleteRecipeVersionResponse+--+--         , responseDeleteRuleset $+--             newDeleteRulesetResponse+--+--         , responseDeleteSchedule $+--             newDeleteScheduleResponse+--+--         , responseDescribeDataset $+--             newDescribeDatasetResponse+--+--         , responseDescribeJob $+--             newDescribeJobResponse+--+--         , responseDescribeJobRun $+--             newDescribeJobRunResponse+--+--         , responseDescribeProject $+--             newDescribeProjectResponse+--+--         , responseDescribeRecipe $+--             newDescribeRecipeResponse+--+--         , responseDescribeRuleset $+--             newDescribeRulesetResponse+--+--         , responseDescribeSchedule $+--             newDescribeScheduleResponse+--+--         , responseListDatasets $+--             newListDatasetsResponse+--+--         , responseListJobRuns $+--             newListJobRunsResponse+--+--         , responseListJobs $+--             newListJobsResponse+--+--         , responseListProjects $+--             newListProjectsResponse+--+--         , responseListRecipeVersions $+--             newListRecipeVersionsResponse+--+--         , responseListRecipes $+--             newListRecipesResponse+--+--         , responseListRulesets $+--             newListRulesetsResponse+--+--         , responseListSchedules $+--             newListSchedulesResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responsePublishRecipe $+--             newPublishRecipeResponse+--+--         , responseSendProjectSessionAction $+--             newSendProjectSessionActionResponse+--+--         , responseStartJobRun $+--             newStartJobRunResponse+--+--         , responseStartProjectSession $+--             newStartProjectSessionResponse+--+--         , responseStopJobRun $+--             newStopJobRunResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateDataset $+--             newUpdateDatasetResponse+--+--         , responseUpdateProfileJob $+--             newUpdateProfileJobResponse+--+--         , responseUpdateProject $+--             newUpdateProjectResponse+--+--         , responseUpdateRecipe $+--             newUpdateRecipeResponse+--+--         , responseUpdateRecipeJob $+--             newUpdateRecipeJobResponse+--+--         , responseUpdateRuleset $+--             newUpdateRulesetResponse+--+--         , responseUpdateSchedule $+--             newUpdateScheduleResponse+--+--           ]+--     ]++-- Requests++requestBatchDeleteRecipeVersion :: BatchDeleteRecipeVersion -> TestTree+requestBatchDeleteRecipeVersion =+  req+    "BatchDeleteRecipeVersion"+    "fixture/BatchDeleteRecipeVersion.yaml"++requestCreateDataset :: CreateDataset -> TestTree+requestCreateDataset =+  req+    "CreateDataset"+    "fixture/CreateDataset.yaml"++requestCreateProfileJob :: CreateProfileJob -> TestTree+requestCreateProfileJob =+  req+    "CreateProfileJob"+    "fixture/CreateProfileJob.yaml"++requestCreateProject :: CreateProject -> TestTree+requestCreateProject =+  req+    "CreateProject"+    "fixture/CreateProject.yaml"++requestCreateRecipe :: CreateRecipe -> TestTree+requestCreateRecipe =+  req+    "CreateRecipe"+    "fixture/CreateRecipe.yaml"++requestCreateRecipeJob :: CreateRecipeJob -> TestTree+requestCreateRecipeJob =+  req+    "CreateRecipeJob"+    "fixture/CreateRecipeJob.yaml"++requestCreateRuleset :: CreateRuleset -> TestTree+requestCreateRuleset =+  req+    "CreateRuleset"+    "fixture/CreateRuleset.yaml"++requestCreateSchedule :: CreateSchedule -> TestTree+requestCreateSchedule =+  req+    "CreateSchedule"+    "fixture/CreateSchedule.yaml"++requestDeleteDataset :: DeleteDataset -> TestTree+requestDeleteDataset =+  req+    "DeleteDataset"+    "fixture/DeleteDataset.yaml"++requestDeleteJob :: DeleteJob -> TestTree+requestDeleteJob =+  req+    "DeleteJob"+    "fixture/DeleteJob.yaml"++requestDeleteProject :: DeleteProject -> TestTree+requestDeleteProject =+  req+    "DeleteProject"+    "fixture/DeleteProject.yaml"++requestDeleteRecipeVersion :: DeleteRecipeVersion -> TestTree+requestDeleteRecipeVersion =+  req+    "DeleteRecipeVersion"+    "fixture/DeleteRecipeVersion.yaml"++requestDeleteRuleset :: DeleteRuleset -> TestTree+requestDeleteRuleset =+  req+    "DeleteRuleset"+    "fixture/DeleteRuleset.yaml"++requestDeleteSchedule :: DeleteSchedule -> TestTree+requestDeleteSchedule =+  req+    "DeleteSchedule"+    "fixture/DeleteSchedule.yaml"++requestDescribeDataset :: DescribeDataset -> TestTree+requestDescribeDataset =+  req+    "DescribeDataset"+    "fixture/DescribeDataset.yaml"++requestDescribeJob :: DescribeJob -> TestTree+requestDescribeJob =+  req+    "DescribeJob"+    "fixture/DescribeJob.yaml"++requestDescribeJobRun :: DescribeJobRun -> TestTree+requestDescribeJobRun =+  req+    "DescribeJobRun"+    "fixture/DescribeJobRun.yaml"++requestDescribeProject :: DescribeProject -> TestTree+requestDescribeProject =+  req+    "DescribeProject"+    "fixture/DescribeProject.yaml"++requestDescribeRecipe :: DescribeRecipe -> TestTree+requestDescribeRecipe =+  req+    "DescribeRecipe"+    "fixture/DescribeRecipe.yaml"++requestDescribeRuleset :: DescribeRuleset -> TestTree+requestDescribeRuleset =+  req+    "DescribeRuleset"+    "fixture/DescribeRuleset.yaml"++requestDescribeSchedule :: DescribeSchedule -> TestTree+requestDescribeSchedule =+  req+    "DescribeSchedule"+    "fixture/DescribeSchedule.yaml"++requestListDatasets :: ListDatasets -> TestTree+requestListDatasets =+  req+    "ListDatasets"+    "fixture/ListDatasets.yaml"++requestListJobRuns :: ListJobRuns -> TestTree+requestListJobRuns =+  req+    "ListJobRuns"+    "fixture/ListJobRuns.yaml"++requestListJobs :: ListJobs -> TestTree+requestListJobs =+  req+    "ListJobs"+    "fixture/ListJobs.yaml"++requestListProjects :: ListProjects -> TestTree+requestListProjects =+  req+    "ListProjects"+    "fixture/ListProjects.yaml"++requestListRecipeVersions :: ListRecipeVersions -> TestTree+requestListRecipeVersions =+  req+    "ListRecipeVersions"+    "fixture/ListRecipeVersions.yaml"++requestListRecipes :: ListRecipes -> TestTree+requestListRecipes =+  req+    "ListRecipes"+    "fixture/ListRecipes.yaml"++requestListRulesets :: ListRulesets -> TestTree+requestListRulesets =+  req+    "ListRulesets"+    "fixture/ListRulesets.yaml"++requestListSchedules :: ListSchedules -> TestTree+requestListSchedules =+  req+    "ListSchedules"+    "fixture/ListSchedules.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestPublishRecipe :: PublishRecipe -> TestTree+requestPublishRecipe =+  req+    "PublishRecipe"+    "fixture/PublishRecipe.yaml"++requestSendProjectSessionAction :: SendProjectSessionAction -> TestTree+requestSendProjectSessionAction =+  req+    "SendProjectSessionAction"+    "fixture/SendProjectSessionAction.yaml"++requestStartJobRun :: StartJobRun -> TestTree+requestStartJobRun =+  req+    "StartJobRun"+    "fixture/StartJobRun.yaml"++requestStartProjectSession :: StartProjectSession -> TestTree+requestStartProjectSession =+  req+    "StartProjectSession"+    "fixture/StartProjectSession.yaml"++requestStopJobRun :: StopJobRun -> TestTree+requestStopJobRun =+  req+    "StopJobRun"+    "fixture/StopJobRun.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateDataset :: UpdateDataset -> TestTree+requestUpdateDataset =+  req+    "UpdateDataset"+    "fixture/UpdateDataset.yaml"++requestUpdateProfileJob :: UpdateProfileJob -> TestTree+requestUpdateProfileJob =+  req+    "UpdateProfileJob"+    "fixture/UpdateProfileJob.yaml"++requestUpdateProject :: UpdateProject -> TestTree+requestUpdateProject =+  req+    "UpdateProject"+    "fixture/UpdateProject.yaml"++requestUpdateRecipe :: UpdateRecipe -> TestTree+requestUpdateRecipe =+  req+    "UpdateRecipe"+    "fixture/UpdateRecipe.yaml"++requestUpdateRecipeJob :: UpdateRecipeJob -> TestTree+requestUpdateRecipeJob =+  req+    "UpdateRecipeJob"+    "fixture/UpdateRecipeJob.yaml"++requestUpdateRuleset :: UpdateRuleset -> TestTree+requestUpdateRuleset =+  req+    "UpdateRuleset"+    "fixture/UpdateRuleset.yaml"++requestUpdateSchedule :: UpdateSchedule -> TestTree+requestUpdateSchedule =+  req+    "UpdateSchedule"+    "fixture/UpdateSchedule.yaml"++-- Responses++responseBatchDeleteRecipeVersion :: BatchDeleteRecipeVersionResponse -> TestTree+responseBatchDeleteRecipeVersion =+  res+    "BatchDeleteRecipeVersionResponse"+    "fixture/BatchDeleteRecipeVersionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy BatchDeleteRecipeVersion)++responseCreateDataset :: CreateDatasetResponse -> TestTree+responseCreateDataset =+  res+    "CreateDatasetResponse"+    "fixture/CreateDatasetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDataset)++responseCreateProfileJob :: CreateProfileJobResponse -> TestTree+responseCreateProfileJob =+  res+    "CreateProfileJobResponse"+    "fixture/CreateProfileJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateProfileJob)++responseCreateProject :: CreateProjectResponse -> TestTree+responseCreateProject =+  res+    "CreateProjectResponse"+    "fixture/CreateProjectResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateProject)++responseCreateRecipe :: CreateRecipeResponse -> TestTree+responseCreateRecipe =+  res+    "CreateRecipeResponse"+    "fixture/CreateRecipeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateRecipe)++responseCreateRecipeJob :: CreateRecipeJobResponse -> TestTree+responseCreateRecipeJob =+  res+    "CreateRecipeJobResponse"+    "fixture/CreateRecipeJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateRecipeJob)++responseCreateRuleset :: CreateRulesetResponse -> TestTree+responseCreateRuleset =+  res+    "CreateRulesetResponse"+    "fixture/CreateRulesetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateRuleset)++responseCreateSchedule :: CreateScheduleResponse -> TestTree+responseCreateSchedule =+  res+    "CreateScheduleResponse"+    "fixture/CreateScheduleResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateSchedule)++responseDeleteDataset :: DeleteDatasetResponse -> TestTree+responseDeleteDataset =+  res+    "DeleteDatasetResponse"+    "fixture/DeleteDatasetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteDataset)++responseDeleteJob :: DeleteJobResponse -> TestTree+responseDeleteJob =+  res+    "DeleteJobResponse"+    "fixture/DeleteJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteJob)++responseDeleteProject :: DeleteProjectResponse -> TestTree+responseDeleteProject =+  res+    "DeleteProjectResponse"+    "fixture/DeleteProjectResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteProject)++responseDeleteRecipeVersion :: DeleteRecipeVersionResponse -> TestTree+responseDeleteRecipeVersion =+  res+    "DeleteRecipeVersionResponse"+    "fixture/DeleteRecipeVersionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteRecipeVersion)++responseDeleteRuleset :: DeleteRulesetResponse -> TestTree+responseDeleteRuleset =+  res+    "DeleteRulesetResponse"+    "fixture/DeleteRulesetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteRuleset)++responseDeleteSchedule :: DeleteScheduleResponse -> TestTree+responseDeleteSchedule =+  res+    "DeleteScheduleResponse"+    "fixture/DeleteScheduleResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteSchedule)++responseDescribeDataset :: DescribeDatasetResponse -> TestTree+responseDescribeDataset =+  res+    "DescribeDatasetResponse"+    "fixture/DescribeDatasetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeDataset)++responseDescribeJob :: DescribeJobResponse -> TestTree+responseDescribeJob =+  res+    "DescribeJobResponse"+    "fixture/DescribeJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeJob)++responseDescribeJobRun :: DescribeJobRunResponse -> TestTree+responseDescribeJobRun =+  res+    "DescribeJobRunResponse"+    "fixture/DescribeJobRunResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeJobRun)++responseDescribeProject :: DescribeProjectResponse -> TestTree+responseDescribeProject =+  res+    "DescribeProjectResponse"+    "fixture/DescribeProjectResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeProject)++responseDescribeRecipe :: DescribeRecipeResponse -> TestTree+responseDescribeRecipe =+  res+    "DescribeRecipeResponse"+    "fixture/DescribeRecipeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeRecipe)++responseDescribeRuleset :: DescribeRulesetResponse -> TestTree+responseDescribeRuleset =+  res+    "DescribeRulesetResponse"+    "fixture/DescribeRulesetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeRuleset)++responseDescribeSchedule :: DescribeScheduleResponse -> TestTree+responseDescribeSchedule =+  res+    "DescribeScheduleResponse"+    "fixture/DescribeScheduleResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeSchedule)++responseListDatasets :: ListDatasetsResponse -> TestTree+responseListDatasets =+  res+    "ListDatasetsResponse"+    "fixture/ListDatasetsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListDatasets)++responseListJobRuns :: ListJobRunsResponse -> TestTree+responseListJobRuns =+  res+    "ListJobRunsResponse"+    "fixture/ListJobRunsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListJobRuns)++responseListJobs :: ListJobsResponse -> TestTree+responseListJobs =+  res+    "ListJobsResponse"+    "fixture/ListJobsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListJobs)++responseListProjects :: ListProjectsResponse -> TestTree+responseListProjects =+  res+    "ListProjectsResponse"+    "fixture/ListProjectsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListProjects)++responseListRecipeVersions :: ListRecipeVersionsResponse -> TestTree+responseListRecipeVersions =+  res+    "ListRecipeVersionsResponse"+    "fixture/ListRecipeVersionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListRecipeVersions)++responseListRecipes :: ListRecipesResponse -> TestTree+responseListRecipes =+  res+    "ListRecipesResponse"+    "fixture/ListRecipesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListRecipes)++responseListRulesets :: ListRulesetsResponse -> TestTree+responseListRulesets =+  res+    "ListRulesetsResponse"+    "fixture/ListRulesetsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListRulesets)++responseListSchedules :: ListSchedulesResponse -> TestTree+responseListSchedules =+  res+    "ListSchedulesResponse"+    "fixture/ListSchedulesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListSchedules)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responsePublishRecipe :: PublishRecipeResponse -> TestTree+responsePublishRecipe =+  res+    "PublishRecipeResponse"+    "fixture/PublishRecipeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PublishRecipe)++responseSendProjectSessionAction :: SendProjectSessionActionResponse -> TestTree+responseSendProjectSessionAction =+  res+    "SendProjectSessionActionResponse"+    "fixture/SendProjectSessionActionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy SendProjectSessionAction)++responseStartJobRun :: StartJobRunResponse -> TestTree+responseStartJobRun =+  res+    "StartJobRunResponse"+    "fixture/StartJobRunResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartJobRun)++responseStartProjectSession :: StartProjectSessionResponse -> TestTree+responseStartProjectSession =+  res+    "StartProjectSessionResponse"+    "fixture/StartProjectSessionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartProjectSession)++responseStopJobRun :: StopJobRunResponse -> TestTree+responseStopJobRun =+  res+    "StopJobRunResponse"+    "fixture/StopJobRunResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StopJobRun)++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)++responseUpdateDataset :: UpdateDatasetResponse -> TestTree+responseUpdateDataset =+  res+    "UpdateDatasetResponse"+    "fixture/UpdateDatasetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateDataset)++responseUpdateProfileJob :: UpdateProfileJobResponse -> TestTree+responseUpdateProfileJob =+  res+    "UpdateProfileJobResponse"+    "fixture/UpdateProfileJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateProfileJob)++responseUpdateProject :: UpdateProjectResponse -> TestTree+responseUpdateProject =+  res+    "UpdateProjectResponse"+    "fixture/UpdateProjectResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateProject)++responseUpdateRecipe :: UpdateRecipeResponse -> TestTree+responseUpdateRecipe =+  res+    "UpdateRecipeResponse"+    "fixture/UpdateRecipeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateRecipe)++responseUpdateRecipeJob :: UpdateRecipeJobResponse -> TestTree+responseUpdateRecipeJob =+  res+    "UpdateRecipeJobResponse"+    "fixture/UpdateRecipeJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateRecipeJob)++responseUpdateRuleset :: UpdateRulesetResponse -> TestTree+responseUpdateRuleset =+  res+    "UpdateRulesetResponse"+    "fixture/UpdateRulesetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateRuleset)++responseUpdateSchedule :: UpdateScheduleResponse -> TestTree+responseUpdateSchedule =+  res+    "UpdateScheduleResponse"+    "fixture/UpdateScheduleResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateSchedule)