packages feed

amazonka-mediaconvert (empty) → 1.6.0

raw patch · 74 files changed

+23601/−0 lines, 74 filesdep +amazonka-coredep +amazonka-mediaconvertdep +amazonka-testsetup-changed

Dependencies added: amazonka-core, amazonka-mediaconvert, amazonka-test, base, bytestring, 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,45 @@+# Amazon Elemental MediaConvert SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`1.6.0`+++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-mediaconvert)+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 [Network.AWS.MediaConvert](http://hackage.haskell.org/package/amazonka-mediaconvert/docs/Network-AWS-MediaConvert.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-mediaconvert` 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.
+ Setup.hs view
@@ -0,0 +1,2 @@+import           Distribution.Simple+main = defaultMain
+ amazonka-mediaconvert.cabal view
@@ -0,0 +1,105 @@+name:                  amazonka-mediaconvert+version:               1.6.0+synopsis:              Amazon Elemental MediaConvert 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>+copyright:             Copyright (c) 2013-2018 Brendan Hay+category:              Network, AWS, Cloud, Distributed Computing+build-type:            Simple+cabal-version:         >= 1.10+extra-source-files:    README.md fixture/*.yaml fixture/*.proto src/.gitkeep+description:+    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.+    .+    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+    such as <http://hackage.haskell.org/package/lens lens> or+    <http://hackage.haskell.org/package/lens-family-core lens-family-core>.+    .+    See "Network.AWS.MediaConvert" or <https://aws.amazon.com/documentation/ the AWS documentation>+    to get started.++source-repository head+    type:              git+    location:          git://github.com/brendanhay/amazonka.git+    subdir:            amazonka-mediaconvert++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:+          Network.AWS.MediaConvert+        , Network.AWS.MediaConvert.CancelJob+        , Network.AWS.MediaConvert.CreateJob+        , Network.AWS.MediaConvert.CreateJobTemplate+        , Network.AWS.MediaConvert.CreatePreset+        , Network.AWS.MediaConvert.CreateQueue+        , Network.AWS.MediaConvert.DeleteJobTemplate+        , Network.AWS.MediaConvert.DeletePreset+        , Network.AWS.MediaConvert.DeleteQueue+        , Network.AWS.MediaConvert.DescribeEndpoints+        , Network.AWS.MediaConvert.GetJob+        , Network.AWS.MediaConvert.GetJobTemplate+        , Network.AWS.MediaConvert.GetPreset+        , Network.AWS.MediaConvert.GetQueue+        , Network.AWS.MediaConvert.ListJobTemplates+        , Network.AWS.MediaConvert.ListJobs+        , Network.AWS.MediaConvert.ListPresets+        , Network.AWS.MediaConvert.ListQueues+        , Network.AWS.MediaConvert.Types+        , Network.AWS.MediaConvert.UpdateJobTemplate+        , Network.AWS.MediaConvert.UpdatePreset+        , Network.AWS.MediaConvert.UpdateQueue+        , Network.AWS.MediaConvert.Waiters++    other-modules:+          Network.AWS.MediaConvert.Types.Product+        , Network.AWS.MediaConvert.Types.Sum++    build-depends:+          amazonka-core == 1.6.0.*+        , base          >= 4.7     && < 5++test-suite amazonka-mediaconvert-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.AWS.MediaConvert+        , Test.AWS.Gen.MediaConvert+        , Test.AWS.MediaConvert.Internal++    build-depends:+          amazonka-core == 1.6.0.*+        , amazonka-test == 1.6.0.*+        , amazonka-mediaconvert+        , base+        , bytestring+        , tasty+        , tasty-hunit+        , text+        , time+        , unordered-containers
+ fixture/CancelJob.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconvert/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconvert.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/CancelJobResponse.proto view
+ fixture/CreateJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconvert/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconvert.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/CreateJobResponse.proto view
+ fixture/CreateJobTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconvert/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconvert.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/CreateJobTemplateResponse.proto view
+ fixture/CreatePreset.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconvert/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconvert.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/CreatePresetResponse.proto view
+ fixture/CreateQueue.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconvert/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconvert.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/CreateQueueResponse.proto view
+ fixture/DeleteJobTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconvert/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconvert.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/DeleteJobTemplateResponse.proto view
+ fixture/DeletePreset.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconvert/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconvert.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/DeletePresetResponse.proto view
+ fixture/DeleteQueue.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconvert/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconvert.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/DeleteQueueResponse.proto view
+ fixture/DescribeEndpoints.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconvert/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconvert.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/DescribeEndpointsResponse.proto view
+ fixture/GetJob.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconvert/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconvert.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/GetJobResponse.proto view
+ fixture/GetJobTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconvert/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconvert.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/GetJobTemplateResponse.proto view
+ fixture/GetPreset.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconvert/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconvert.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/GetPresetResponse.proto view
+ fixture/GetQueue.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconvert/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconvert.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/GetQueueResponse.proto view
+ fixture/ListJobTemplates.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconvert/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconvert.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/ListJobTemplatesResponse.proto view
+ fixture/ListJobs.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconvert/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconvert.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/ListPresets.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconvert/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconvert.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/ListPresetsResponse.proto view
+ fixture/ListQueues.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconvert/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconvert.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/ListQueuesResponse.proto view
+ fixture/UpdateJobTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconvert/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconvert.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/UpdateJobTemplateResponse.proto view
+ fixture/UpdatePreset.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconvert/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconvert.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/UpdatePresetResponse.proto view
+ fixture/UpdateQueue.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconvert/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconvert.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/UpdateQueueResponse.proto view
+ gen/Network/AWS/MediaConvert.hs view
@@ -0,0 +1,1723 @@+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.MediaConvert+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- AWS Elemental MediaConvert+module Network.AWS.MediaConvert+    (+    -- * Service Configuration+      mediaConvert++    -- * Errors+    -- $errors++    -- ** ConflictException+    , _ConflictException++    -- ** ForbiddenException+    , _ForbiddenException++    -- ** NotFoundException+    , _NotFoundException++    -- ** TooManyRequestsException+    , _TooManyRequestsException++    -- ** InternalServerErrorException+    , _InternalServerErrorException++    -- ** BadRequestException+    , _BadRequestException++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** DeletePreset+    , module Network.AWS.MediaConvert.DeletePreset++    -- ** UpdatePreset+    , module Network.AWS.MediaConvert.UpdatePreset++    -- ** ListQueues+    , module Network.AWS.MediaConvert.ListQueues++    -- ** DeleteQueue+    , module Network.AWS.MediaConvert.DeleteQueue++    -- ** UpdateQueue+    , module Network.AWS.MediaConvert.UpdateQueue++    -- ** GetPreset+    , module Network.AWS.MediaConvert.GetPreset++    -- ** CreateJob+    , module Network.AWS.MediaConvert.CreateJob++    -- ** ListJobs+    , module Network.AWS.MediaConvert.ListJobs++    -- ** GetJob+    , module Network.AWS.MediaConvert.GetJob++    -- ** CreatePreset+    , module Network.AWS.MediaConvert.CreatePreset++    -- ** ListPresets+    , module Network.AWS.MediaConvert.ListPresets++    -- ** GetQueue+    , module Network.AWS.MediaConvert.GetQueue++    -- ** DescribeEndpoints+    , module Network.AWS.MediaConvert.DescribeEndpoints++    -- ** CreateQueue+    , module Network.AWS.MediaConvert.CreateQueue++    -- ** CreateJobTemplate+    , module Network.AWS.MediaConvert.CreateJobTemplate++    -- ** DeleteJobTemplate+    , module Network.AWS.MediaConvert.DeleteJobTemplate++    -- ** UpdateJobTemplate+    , module Network.AWS.MediaConvert.UpdateJobTemplate++    -- ** ListJobTemplates+    , module Network.AWS.MediaConvert.ListJobTemplates++    -- ** GetJobTemplate+    , module Network.AWS.MediaConvert.GetJobTemplate++    -- ** CancelJob+    , module Network.AWS.MediaConvert.CancelJob++    -- * Types++    -- ** AacAudioDescriptionBroadcasterMix+    , AacAudioDescriptionBroadcasterMix (..)++    -- ** AacCodecProfile+    , AacCodecProfile (..)++    -- ** AacCodingMode+    , AacCodingMode (..)++    -- ** AacRateControlMode+    , AacRateControlMode (..)++    -- ** AacRawFormat+    , AacRawFormat (..)++    -- ** AacSpecification+    , AacSpecification (..)++    -- ** AacVbrQuality+    , AacVbrQuality (..)++    -- ** Ac3BitstreamMode+    , Ac3BitstreamMode (..)++    -- ** Ac3CodingMode+    , Ac3CodingMode (..)++    -- ** Ac3DynamicRangeCompressionProfile+    , Ac3DynamicRangeCompressionProfile (..)++    -- ** Ac3LfeFilter+    , Ac3LfeFilter (..)++    -- ** Ac3MetadataControl+    , Ac3MetadataControl (..)++    -- ** AfdSignaling+    , AfdSignaling (..)++    -- ** AntiAlias+    , AntiAlias (..)++    -- ** AudioCodec+    , AudioCodec (..)++    -- ** AudioDefaultSelection+    , AudioDefaultSelection (..)++    -- ** AudioLanguageCodeControl+    , AudioLanguageCodeControl (..)++    -- ** AudioNormalizationAlgorithm+    , AudioNormalizationAlgorithm (..)++    -- ** AudioNormalizationAlgorithmControl+    , AudioNormalizationAlgorithmControl (..)++    -- ** AudioNormalizationLoudnessLogging+    , AudioNormalizationLoudnessLogging (..)++    -- ** AudioNormalizationPeakCalculation+    , AudioNormalizationPeakCalculation (..)++    -- ** AudioSelectorType+    , AudioSelectorType (..)++    -- ** AudioTypeControl+    , AudioTypeControl (..)++    -- ** BurninSubtitleAlignment+    , BurninSubtitleAlignment (..)++    -- ** BurninSubtitleBackgroundColor+    , BurninSubtitleBackgroundColor (..)++    -- ** BurninSubtitleFontColor+    , BurninSubtitleFontColor (..)++    -- ** BurninSubtitleOutlineColor+    , BurninSubtitleOutlineColor (..)++    -- ** BurninSubtitleShadowColor+    , BurninSubtitleShadowColor (..)++    -- ** BurninSubtitleTeletextSpacing+    , BurninSubtitleTeletextSpacing (..)++    -- ** CaptionDestinationType+    , CaptionDestinationType (..)++    -- ** CaptionSourceType+    , CaptionSourceType (..)++    -- ** ColorMetadata+    , ColorMetadata (..)++    -- ** ColorSpace+    , ColorSpace (..)++    -- ** ColorSpaceConversion+    , ColorSpaceConversion (..)++    -- ** ColorSpaceUsage+    , ColorSpaceUsage (..)++    -- ** ContainerType+    , ContainerType (..)++    -- ** DashIsoHbbtvCompliance+    , DashIsoHbbtvCompliance (..)++    -- ** DashIsoSegmentControl+    , DashIsoSegmentControl (..)++    -- ** DeinterlaceAlgorithm+    , DeinterlaceAlgorithm (..)++    -- ** DeinterlacerControl+    , DeinterlacerControl (..)++    -- ** DeinterlacerMode+    , DeinterlacerMode (..)++    -- ** DropFrameTimecode+    , DropFrameTimecode (..)++    -- ** DvbSubtitleAlignment+    , DvbSubtitleAlignment (..)++    -- ** DvbSubtitleBackgroundColor+    , DvbSubtitleBackgroundColor (..)++    -- ** DvbSubtitleFontColor+    , DvbSubtitleFontColor (..)++    -- ** DvbSubtitleOutlineColor+    , DvbSubtitleOutlineColor (..)++    -- ** DvbSubtitleShadowColor+    , DvbSubtitleShadowColor (..)++    -- ** DvbSubtitleTeletextSpacing+    , DvbSubtitleTeletextSpacing (..)++    -- ** Eac3AttenuationControl+    , Eac3AttenuationControl (..)++    -- ** Eac3BitstreamMode+    , Eac3BitstreamMode (..)++    -- ** Eac3CodingMode+    , Eac3CodingMode (..)++    -- ** Eac3DcFilter+    , Eac3DcFilter (..)++    -- ** Eac3DynamicRangeCompressionLine+    , Eac3DynamicRangeCompressionLine (..)++    -- ** Eac3DynamicRangeCompressionRf+    , Eac3DynamicRangeCompressionRf (..)++    -- ** Eac3LfeControl+    , Eac3LfeControl (..)++    -- ** Eac3LfeFilter+    , Eac3LfeFilter (..)++    -- ** Eac3MetadataControl+    , Eac3MetadataControl (..)++    -- ** Eac3PassthroughControl+    , Eac3PassthroughControl (..)++    -- ** Eac3PhaseControl+    , Eac3PhaseControl (..)++    -- ** Eac3StereoDownmix+    , Eac3StereoDownmix (..)++    -- ** Eac3SurroundExMode+    , Eac3SurroundExMode (..)++    -- ** Eac3SurroundMode+    , Eac3SurroundMode (..)++    -- ** EmbeddedConvert608To708+    , EmbeddedConvert608To708 (..)++    -- ** F4vMoovPlacement+    , F4vMoovPlacement (..)++    -- ** FileSourceConvert608To708+    , FileSourceConvert608To708 (..)++    -- ** H264AdaptiveQuantization+    , H264AdaptiveQuantization (..)++    -- ** H264CodecLevel+    , H264CodecLevel (..)++    -- ** H264CodecProfile+    , H264CodecProfile (..)++    -- ** H264EntropyEncoding+    , H264EntropyEncoding (..)++    -- ** H264FieldEncoding+    , H264FieldEncoding (..)++    -- ** H264FlickerAdaptiveQuantization+    , H264FlickerAdaptiveQuantization (..)++    -- ** H264FramerateControl+    , H264FramerateControl (..)++    -- ** H264FramerateConversionAlgorithm+    , H264FramerateConversionAlgorithm (..)++    -- ** H264GopBReference+    , H264GopBReference (..)++    -- ** H264GopSizeUnits+    , H264GopSizeUnits (..)++    -- ** H264InterlaceMode+    , H264InterlaceMode (..)++    -- ** H264ParControl+    , H264ParControl (..)++    -- ** H264QualityTuningLevel+    , H264QualityTuningLevel (..)++    -- ** H264RateControlMode+    , H264RateControlMode (..)++    -- ** H264RepeatPps+    , H264RepeatPps (..)++    -- ** H264SceneChangeDetect+    , H264SceneChangeDetect (..)++    -- ** H264SlowPal+    , H264SlowPal (..)++    -- ** H264SpatialAdaptiveQuantization+    , H264SpatialAdaptiveQuantization (..)++    -- ** H264Syntax+    , H264Syntax (..)++    -- ** H264Telecine+    , H264Telecine (..)++    -- ** H264TemporalAdaptiveQuantization+    , H264TemporalAdaptiveQuantization (..)++    -- ** H264UnregisteredSeiTimecode+    , H264UnregisteredSeiTimecode (..)++    -- ** H265AdaptiveQuantization+    , H265AdaptiveQuantization (..)++    -- ** H265AlternateTransferFunctionSei+    , H265AlternateTransferFunctionSei (..)++    -- ** H265CodecLevel+    , H265CodecLevel (..)++    -- ** H265CodecProfile+    , H265CodecProfile (..)++    -- ** H265FlickerAdaptiveQuantization+    , H265FlickerAdaptiveQuantization (..)++    -- ** H265FramerateControl+    , H265FramerateControl (..)++    -- ** H265FramerateConversionAlgorithm+    , H265FramerateConversionAlgorithm (..)++    -- ** H265GopBReference+    , H265GopBReference (..)++    -- ** H265GopSizeUnits+    , H265GopSizeUnits (..)++    -- ** H265InterlaceMode+    , H265InterlaceMode (..)++    -- ** H265ParControl+    , H265ParControl (..)++    -- ** H265QualityTuningLevel+    , H265QualityTuningLevel (..)++    -- ** H265RateControlMode+    , H265RateControlMode (..)++    -- ** H265SampleAdaptiveOffsetFilterMode+    , H265SampleAdaptiveOffsetFilterMode (..)++    -- ** H265SceneChangeDetect+    , H265SceneChangeDetect (..)++    -- ** H265SlowPal+    , H265SlowPal (..)++    -- ** H265SpatialAdaptiveQuantization+    , H265SpatialAdaptiveQuantization (..)++    -- ** H265Telecine+    , H265Telecine (..)++    -- ** H265TemporalAdaptiveQuantization+    , H265TemporalAdaptiveQuantization (..)++    -- ** H265TemporalIds+    , H265TemporalIds (..)++    -- ** H265Tiles+    , H265Tiles (..)++    -- ** H265UnregisteredSeiTimecode+    , H265UnregisteredSeiTimecode (..)++    -- ** HlsAdMarkers+    , HlsAdMarkers (..)++    -- ** HlsAudioTrackType+    , HlsAudioTrackType (..)++    -- ** HlsCaptionLanguageSetting+    , HlsCaptionLanguageSetting (..)++    -- ** HlsClientCache+    , HlsClientCache (..)++    -- ** HlsCodecSpecification+    , HlsCodecSpecification (..)++    -- ** HlsDirectoryStructure+    , HlsDirectoryStructure (..)++    -- ** HlsEncryptionType+    , HlsEncryptionType (..)++    -- ** HlsIFrameOnlyManifest+    , HlsIFrameOnlyManifest (..)++    -- ** HlsInitializationVectorInManifest+    , HlsInitializationVectorInManifest (..)++    -- ** HlsKeyProviderType+    , HlsKeyProviderType (..)++    -- ** HlsManifestCompression+    , HlsManifestCompression (..)++    -- ** HlsManifestDurationFormat+    , HlsManifestDurationFormat (..)++    -- ** HlsOutputSelection+    , HlsOutputSelection (..)++    -- ** HlsProgramDateTime+    , HlsProgramDateTime (..)++    -- ** HlsSegmentControl+    , HlsSegmentControl (..)++    -- ** HlsStreamInfResolution+    , HlsStreamInfResolution (..)++    -- ** HlsTimedMetadataId3Frame+    , HlsTimedMetadataId3Frame (..)++    -- ** InputDeblockFilter+    , InputDeblockFilter (..)++    -- ** InputDenoiseFilter+    , InputDenoiseFilter (..)++    -- ** InputFilterEnable+    , InputFilterEnable (..)++    -- ** InputPsiControl+    , InputPsiControl (..)++    -- ** InputTimecodeSource+    , InputTimecodeSource (..)++    -- ** JobStatus+    , JobStatus (..)++    -- ** JobTemplateListBy+    , JobTemplateListBy (..)++    -- ** LanguageCode+    , LanguageCode (..)++    -- ** M2tsAudioBufferModel+    , M2tsAudioBufferModel (..)++    -- ** M2tsBufferModel+    , M2tsBufferModel (..)++    -- ** M2tsEbpAudioInterval+    , M2tsEbpAudioInterval (..)++    -- ** M2tsEbpPlacement+    , M2tsEbpPlacement (..)++    -- ** M2tsEsRateInPes+    , M2tsEsRateInPes (..)++    -- ** M2tsNielsenId3+    , M2tsNielsenId3 (..)++    -- ** M2tsPcrControl+    , M2tsPcrControl (..)++    -- ** M2tsRateMode+    , M2tsRateMode (..)++    -- ** M2tsScte35Source+    , M2tsScte35Source (..)++    -- ** M2tsSegmentationMarkers+    , M2tsSegmentationMarkers (..)++    -- ** M2tsSegmentationStyle+    , M2tsSegmentationStyle (..)++    -- ** M3u8NielsenId3+    , M3u8NielsenId3 (..)++    -- ** M3u8PcrControl+    , M3u8PcrControl (..)++    -- ** M3u8Scte35Source+    , M3u8Scte35Source (..)++    -- ** MovClapAtom+    , MovClapAtom (..)++    -- ** MovCslgAtom+    , MovCslgAtom (..)++    -- ** MovMpeg2FourCCControl+    , MovMpeg2FourCCControl (..)++    -- ** MovPaddingControl+    , MovPaddingControl (..)++    -- ** MovReference+    , MovReference (..)++    -- ** Mp4CslgAtom+    , Mp4CslgAtom (..)++    -- ** Mp4FreeSpaceBox+    , Mp4FreeSpaceBox (..)++    -- ** Mp4MoovPlacement+    , Mp4MoovPlacement (..)++    -- ** Mpeg2AdaptiveQuantization+    , Mpeg2AdaptiveQuantization (..)++    -- ** Mpeg2CodecLevel+    , Mpeg2CodecLevel (..)++    -- ** Mpeg2CodecProfile+    , Mpeg2CodecProfile (..)++    -- ** Mpeg2FramerateControl+    , Mpeg2FramerateControl (..)++    -- ** Mpeg2FramerateConversionAlgorithm+    , Mpeg2FramerateConversionAlgorithm (..)++    -- ** Mpeg2GopSizeUnits+    , Mpeg2GopSizeUnits (..)++    -- ** Mpeg2InterlaceMode+    , Mpeg2InterlaceMode (..)++    -- ** Mpeg2IntraDcPrecision+    , Mpeg2IntraDcPrecision (..)++    -- ** Mpeg2ParControl+    , Mpeg2ParControl (..)++    -- ** Mpeg2QualityTuningLevel+    , Mpeg2QualityTuningLevel (..)++    -- ** Mpeg2RateControlMode+    , Mpeg2RateControlMode (..)++    -- ** Mpeg2SceneChangeDetect+    , Mpeg2SceneChangeDetect (..)++    -- ** Mpeg2SlowPal+    , Mpeg2SlowPal (..)++    -- ** Mpeg2SpatialAdaptiveQuantization+    , Mpeg2SpatialAdaptiveQuantization (..)++    -- ** Mpeg2Syntax+    , Mpeg2Syntax (..)++    -- ** Mpeg2Telecine+    , Mpeg2Telecine (..)++    -- ** Mpeg2TemporalAdaptiveQuantization+    , Mpeg2TemporalAdaptiveQuantization (..)++    -- ** MsSmoothAudioDeduplication+    , MsSmoothAudioDeduplication (..)++    -- ** MsSmoothManifestEncoding+    , MsSmoothManifestEncoding (..)++    -- ** NoiseReducerFilter+    , NoiseReducerFilter (..)++    -- ** Order+    , Order (..)++    -- ** OutputGroupType+    , OutputGroupType (..)++    -- ** OutputSdt+    , OutputSdt (..)++    -- ** PresetListBy+    , PresetListBy (..)++    -- ** ProresCodecProfile+    , ProresCodecProfile (..)++    -- ** ProresFramerateControl+    , ProresFramerateControl (..)++    -- ** ProresFramerateConversionAlgorithm+    , ProresFramerateConversionAlgorithm (..)++    -- ** ProresInterlaceMode+    , ProresInterlaceMode (..)++    -- ** ProresParControl+    , ProresParControl (..)++    -- ** ProresSlowPal+    , ProresSlowPal (..)++    -- ** ProresTelecine+    , ProresTelecine (..)++    -- ** QueueListBy+    , QueueListBy (..)++    -- ** QueueStatus+    , QueueStatus (..)++    -- ** RespondToAfd+    , RespondToAfd (..)++    -- ** ScalingBehavior+    , ScalingBehavior (..)++    -- ** SccDestinationFramerate+    , SccDestinationFramerate (..)++    -- ** TimecodeBurninPosition+    , TimecodeBurninPosition (..)++    -- ** TimecodeSource+    , TimecodeSource (..)++    -- ** TimedMetadata+    , TimedMetadata (..)++    -- ** TtmlStylePassthrough+    , TtmlStylePassthrough (..)++    -- ** Type+    , Type (..)++    -- ** VideoCodec+    , VideoCodec (..)++    -- ** VideoTimecodeInsertion+    , VideoTimecodeInsertion (..)++    -- ** AacSettings+    , AacSettings+    , aacSettings+    , assAudioDescriptionBroadcasterMix+    , assRawFormat+    , assCodingMode+    , assRateControlMode+    , assSampleRate+    , assSpecification+    , assCodecProfile+    , assBitrate+    , assVbrQuality++    -- ** Ac3Settings+    , Ac3Settings+    , ac3Settings+    , aLfeFilter+    , aMetadataControl+    , aBitstreamMode+    , aCodingMode+    , aSampleRate+    , aDynamicRangeCompressionProfile+    , aBitrate+    , aDialnorm++    -- ** AiffSettings+    , AiffSettings+    , aiffSettings+    , asBitDepth+    , asChannels+    , asSampleRate++    -- ** AncillarySourceSettings+    , AncillarySourceSettings+    , ancillarySourceSettings+    , assSourceAncillaryChannelNumber++    -- ** AudioCodecSettings+    , AudioCodecSettings+    , audioCodecSettings+    , acsAiffSettings+    , acsCodec+    , acsAc3Settings+    , acsMp2Settings+    , acsWavSettings+    , acsAacSettings+    , acsEac3Settings++    -- ** AudioDescription+    , AudioDescription+    , audioDescription+    , adAudioSourceName+    , adLanguageCode+    , adAudioType+    , adAudioNormalizationSettings+    , adLanguageCodeControl+    , adCodecSettings+    , adStreamName+    , adRemixSettings+    , adAudioTypeControl++    -- ** AudioNormalizationSettings+    , AudioNormalizationSettings+    , audioNormalizationSettings+    , ansAlgorithmControl+    , ansTargetLkfs+    , ansPeakCalculation+    , ansCorrectionGateLevel+    , ansAlgorithm+    , ansLoudnessLogging++    -- ** AudioSelector+    , AudioSelector+    , audioSelector+    , asTracks+    , asProgramSelection+    , asLanguageCode+    , asOffset+    , asDefaultSelection+    , asPids+    , asSelectorType+    , asExternalAudioFileInput+    , asRemixSettings++    -- ** AudioSelectorGroup+    , AudioSelectorGroup+    , audioSelectorGroup+    , asgAudioSelectorNames++    -- ** AvailBlanking+    , AvailBlanking+    , availBlanking+    , abAvailBlankingImage++    -- ** BurninDestinationSettings+    , BurninDestinationSettings+    , burninDestinationSettings+    , bdsBackgroundOpacity+    , bdsFontOpacity+    , bdsShadowYOffset+    , bdsFontResolution+    , bdsYPosition+    , bdsBackgroundColor+    , bdsShadowXOffset+    , bdsFontSize+    , bdsXPosition+    , bdsTeletextSpacing+    , bdsAlignment+    , bdsShadowOpacity+    , bdsOutlineColor+    , bdsOutlineSize+    , bdsShadowColor+    , bdsFontColor++    -- ** CaptionDescription+    , CaptionDescription+    , captionDescription+    , cdCaptionSelectorName+    , cdLanguageCode+    , cdDestinationSettings+    , cdLanguageDescription++    -- ** CaptionDescriptionPreset+    , CaptionDescriptionPreset+    , captionDescriptionPreset+    , cdpLanguageCode+    , cdpDestinationSettings+    , cdpLanguageDescription++    -- ** CaptionDestinationSettings+    , CaptionDestinationSettings+    , captionDestinationSettings+    , cdsTeletextDestinationSettings+    , cdsDvbSubDestinationSettings+    , cdsTtmlDestinationSettings+    , cdsDestinationType+    , cdsSccDestinationSettings+    , cdsBurninDestinationSettings++    -- ** CaptionSelector+    , CaptionSelector+    , captionSelector+    , csLanguageCode+    , csSourceSettings++    -- ** CaptionSourceSettings+    , CaptionSourceSettings+    , captionSourceSettings+    , cssTeletextSourceSettings+    , cssSourceType+    , cssFileSourceSettings+    , cssDvbSubSourceSettings+    , cssAncillarySourceSettings+    , cssEmbeddedSourceSettings++    -- ** ChannelMapping+    , ChannelMapping+    , channelMapping+    , cmOutputChannels++    -- ** ColorCorrector+    , ColorCorrector+    , colorCorrector+    , ccSaturation+    , ccHue+    , ccColorSpaceConversion+    , ccHdr10Metadata+    , ccContrast+    , ccBrightness++    -- ** ContainerSettings+    , ContainerSettings+    , containerSettings+    , csM2tsSettings+    , csM3u8Settings+    , csMovSettings+    , csMp4Settings+    , csContainer+    , csF4vSettings++    -- ** DashIsoEncryptionSettings+    , DashIsoEncryptionSettings+    , dashIsoEncryptionSettings+    , diesSpekeKeyProvider++    -- ** DashIsoGroupSettings+    , DashIsoGroupSettings+    , dashIsoGroupSettings+    , digsFragmentLength+    , digsSegmentControl+    , digsDestination+    , digsHbbtvCompliance+    , digsMinBufferTime+    , digsBaseURL+    , digsEncryption+    , digsSegmentLength++    -- ** Deinterlacer+    , Deinterlacer+    , deinterlacer+    , dControl+    , dMode+    , dAlgorithm++    -- ** DvbNitSettings+    , DvbNitSettings+    , dvbNitSettings+    , dnsNetworkId+    , dnsNetworkName+    , dnsNitInterval++    -- ** DvbSdtSettings+    , DvbSdtSettings+    , dvbSdtSettings+    , dssSdtInterval+    , dssServiceProviderName+    , dssOutputSdt+    , dssServiceName++    -- ** DvbSubDestinationSettings+    , DvbSubDestinationSettings+    , dvbSubDestinationSettings+    , dsdsBackgroundOpacity+    , dsdsFontOpacity+    , dsdsShadowYOffset+    , dsdsFontResolution+    , dsdsYPosition+    , dsdsBackgroundColor+    , dsdsShadowXOffset+    , dsdsFontSize+    , dsdsXPosition+    , dsdsTeletextSpacing+    , dsdsAlignment+    , dsdsShadowOpacity+    , dsdsOutlineColor+    , dsdsOutlineSize+    , dsdsShadowColor+    , dsdsFontColor++    -- ** DvbSubSourceSettings+    , DvbSubSourceSettings+    , dvbSubSourceSettings+    , dsssPid++    -- ** DvbTdtSettings+    , DvbTdtSettings+    , dvbTdtSettings+    , dtsTdtInterval++    -- ** Eac3Settings+    , Eac3Settings+    , eac3Settings+    , esStereoDownmix+    , esLoRoCenterMixLevel+    , esLtRtCenterMixLevel+    , esLfeFilter+    , esDynamicRangeCompressionLine+    , esLtRtSurroundMixLevel+    , esMetadataControl+    , esLoRoSurroundMixLevel+    , esSurroundMode+    , esAttenuationControl+    , esPassthroughControl+    , esBitstreamMode+    , esLfeControl+    , esDynamicRangeCompressionRf+    , esCodingMode+    , esSampleRate+    , esDcFilter+    , esBitrate+    , esPhaseControl+    , esSurroundExMode+    , esDialnorm++    -- ** EmbeddedSourceSettings+    , EmbeddedSourceSettings+    , embeddedSourceSettings+    , essConvert608To708+    , essSource608TrackNumber+    , essSource608ChannelNumber++    -- ** Endpoint+    , Endpoint+    , endpoint+    , eURL++    -- ** F4vSettings+    , F4vSettings+    , f4vSettings+    , fsMoovPlacement++    -- ** FileGroupSettings+    , FileGroupSettings+    , fileGroupSettings+    , fgsDestination++    -- ** FileSourceSettings+    , FileSourceSettings+    , fileSourceSettings+    , fssConvert608To708+    , fssTimeDelta+    , fssSourceFile++    -- ** FrameCaptureSettings+    , FrameCaptureSettings+    , frameCaptureSettings+    , fcsQuality+    , fcsFramerateDenominator+    , fcsMaxCaptures+    , fcsFramerateNumerator++    -- ** H264Settings+    , H264Settings+    , h264Settings+    , hUnregisteredSeiTimecode+    , hQualityTuningLevel+    , hTemporalAdaptiveQuantization+    , hSceneChangeDetect+    , hHrdBufferInitialFillPercentage+    , hSlowPal+    , hParNumerator+    , hGopSize+    , hNumberBFramesBetweenReferenceFrames+    , hGopSizeUnits+    , hHrdBufferSize+    , hSlices+    , hRateControlMode+    , hNumberReferenceFrames+    , hTelecine+    , hMinIInterval+    , hInterlaceMode+    , hParControl+    , hRepeatPps+    , hFlickerAdaptiveQuantization+    , hSoftness+    , hCodecProfile+    , hBitrate+    , hFramerateDenominator+    , hFramerateConversionAlgorithm+    , hCodecLevel+    , hEntropyEncoding+    , hFramerateControl+    , hAdaptiveQuantization+    , hFramerateNumerator+    , hGopBReference+    , hMaxBitrate+    , hSyntax+    , hFieldEncoding+    , hGopClosedCadence+    , hParDenominator+    , hSpatialAdaptiveQuantization++    -- ** H265Settings+    , H265Settings+    , h265Settings+    , hsUnregisteredSeiTimecode+    , hsQualityTuningLevel+    , hsTemporalAdaptiveQuantization+    , hsSceneChangeDetect+    , hsHrdBufferInitialFillPercentage+    , hsTiles+    , hsSlowPal+    , hsTemporalIds+    , hsParNumerator+    , hsGopSize+    , hsNumberBFramesBetweenReferenceFrames+    , hsGopSizeUnits+    , hsHrdBufferSize+    , hsSlices+    , hsAlternateTransferFunctionSei+    , hsRateControlMode+    , hsNumberReferenceFrames+    , hsTelecine+    , hsMinIInterval+    , hsInterlaceMode+    , hsParControl+    , hsFlickerAdaptiveQuantization+    , hsSampleAdaptiveOffsetFilterMode+    , hsCodecProfile+    , hsBitrate+    , hsFramerateDenominator+    , hsFramerateConversionAlgorithm+    , hsCodecLevel+    , hsFramerateControl+    , hsAdaptiveQuantization+    , hsFramerateNumerator+    , hsGopBReference+    , hsMaxBitrate+    , hsGopClosedCadence+    , hsParDenominator+    , hsSpatialAdaptiveQuantization++    -- ** Hdr10Metadata+    , Hdr10Metadata+    , hdr10Metadata+    , hmRedPrimaryX+    , hmBluePrimaryX+    , hmMaxFrameAverageLightLevel+    , hmWhitePointY+    , hmMaxContentLightLevel+    , hmWhitePointX+    , hmBluePrimaryY+    , hmGreenPrimaryY+    , hmGreenPrimaryX+    , hmMinLuminance+    , hmRedPrimaryY+    , hmMaxLuminance++    -- ** HlsCaptionLanguageMapping+    , HlsCaptionLanguageMapping+    , hlsCaptionLanguageMapping+    , hclmLanguageCode+    , hclmLanguageDescription+    , hclmCaptionChannel++    -- ** HlsEncryptionSettings+    , HlsEncryptionSettings+    , hlsEncryptionSettings+    , hesEncryptionMethod+    , hesConstantInitializationVector+    , hesType+    , hesStaticKeyProvider+    , hesSpekeKeyProvider+    , hesInitializationVectorInManifest++    -- ** HlsGroupSettings+    , HlsGroupSettings+    , hlsGroupSettings+    , hgsDirectoryStructure+    , hgsSegmentControl+    , hgsDestination+    , hgsTimedMetadataId3Period+    , hgsMinSegmentLength+    , hgsProgramDateTime+    , hgsProgramDateTimePeriod+    , hgsCodecSpecification+    , hgsCaptionLanguageMappings+    , hgsBaseURL+    , hgsAdMarkers+    , hgsEncryption+    , hgsSegmentLength+    , hgsTimedMetadataId3Frame+    , hgsOutputSelection+    , hgsCaptionLanguageSetting+    , hgsSegmentsPerSubdirectory+    , hgsManifestDurationFormat+    , hgsClientCache+    , hgsTimestampDeltaMilliseconds+    , hgsStreamInfResolution+    , hgsManifestCompression++    -- ** HlsSettings+    , HlsSettings+    , hlsSettings+    , hsAudioRenditionSets+    , hsIFrameOnlyManifest+    , hsAudioGroupId+    , hsSegmentModifier+    , hsAudioTrackType++    -- ** Id3Insertion+    , Id3Insertion+    , id3Insertion+    , iiId3+    , iiTimecode++    -- ** ImageInserter+    , ImageInserter+    , imageInserter+    , iiInsertableImages++    -- ** Input+    , Input+    , input+    , iVideoSelector+    , iProgramNumber+    , iAudioSelectorGroups+    , iTimecodeSource+    , iAudioSelectors+    , iDeblockFilter+    , iInputClippings+    , iDenoiseFilter+    , iFilterStrength+    , iPsiControl+    , iCaptionSelectors+    , iFileInput+    , iFilterEnable++    -- ** InputClipping+    , InputClipping+    , inputClipping+    , icEndTimecode+    , icStartTimecode++    -- ** InputTemplate+    , InputTemplate+    , inputTemplate+    , itVideoSelector+    , itProgramNumber+    , itAudioSelectorGroups+    , itTimecodeSource+    , itAudioSelectors+    , itDeblockFilter+    , itInputClippings+    , itDenoiseFilter+    , itFilterStrength+    , itPsiControl+    , itCaptionSelectors+    , itFilterEnable++    -- ** InsertableImage+    , InsertableImage+    , insertableImage+    , iiImageX+    , iiHeight+    , iiStartTime+    , iiFadeOut+    , iiWidth+    , iiOpacity+    , iiLayer+    , iiDuration+    , iiImageY+    , iiImageInserterInput+    , iiFadeIn++    -- ** Job+    , Job+    , job+    , jStatus+    , jJobTemplate+    , jSettings+    , jARN+    , jCreatedAt+    , jQueue+    , jUserMetadata+    , jRole+    , jOutputGroupDetails+    , jErrorCode+    , jId+    , jTiming+    , jErrorMessage++    -- ** JobSettings+    , JobSettings+    , jobSettings+    , jsInputs+    , jsTimedMetadataInsertion+    , jsNielsenConfiguration+    , jsAvailBlanking+    , jsTimecodeConfig+    , jsOutputGroups+    , jsAdAvailOffset++    -- ** JobTemplate+    , JobTemplate+    , jobTemplate+    , jtLastUpdated+    , jtSettings+    , jtARN+    , jtCreatedAt+    , jtCategory+    , jtQueue+    , jtName+    , jtType+    , jtDescription++    -- ** JobTemplateSettings+    , JobTemplateSettings+    , jobTemplateSettings+    , jtsInputs+    , jtsTimedMetadataInsertion+    , jtsNielsenConfiguration+    , jtsAvailBlanking+    , jtsTimecodeConfig+    , jtsOutputGroups+    , jtsAdAvailOffset++    -- ** M2tsSettings+    , M2tsSettings+    , m2tsSettings+    , mPmtPid+    , mVideoPid+    , mBufferModel+    , mProgramNumber+    , mScte35Pid+    , mMinEbpInterval+    , mTransportStreamId+    , mMaxPcrInterval+    , mFragmentTime+    , mPrivateMetadataPid+    , mPmtInterval+    , mDvbSdtSettings+    , mNullPacketBitrate+    , mAudioBufferModel+    , mTimedMetadataPid+    , mAudioFramesPerPes+    , mPcrPid+    , mSegmentationMarkers+    , mDvbSubPids+    , mScte35Source+    , mPatInterval+    , mEsRateInPes+    , mBitrate+    , mAudioPids+    , mDvbTeletextPid+    , mNielsenId3+    , mSegmentationTime+    , mEbpAudioInterval+    , mDvbNitSettings+    , mPcrControl+    , mEbpPlacement+    , mRateMode+    , mSegmentationStyle+    , mDvbTdtSettings++    -- ** M3u8Settings+    , M3u8Settings+    , m3u8Settings+    , msPmtPid+    , msVideoPid+    , msProgramNumber+    , msScte35Pid+    , msTransportStreamId+    , msPrivateMetadataPid+    , msPmtInterval+    , msTimedMetadataPid+    , msAudioFramesPerPes+    , msPcrPid+    , msTimedMetadata+    , msScte35Source+    , msPatInterval+    , msAudioPids+    , msNielsenId3+    , msPcrControl++    -- ** MovSettings+    , MovSettings+    , movSettings+    , msReference+    , msCslgAtom+    , msMpeg2FourCCControl+    , msPaddingControl+    , msClapAtom++    -- ** Mp2Settings+    , Mp2Settings+    , mp2Settings+    , mssChannels+    , mssSampleRate+    , mssBitrate++    -- ** Mp4Settings+    , Mp4Settings+    , mp4Settings+    , mMoovPlacement+    , mFreeSpaceBox+    , mMp4MajorBrand+    , mCslgAtom++    -- ** Mpeg2Settings+    , Mpeg2Settings+    , mpeg2Settings+    , msQualityTuningLevel+    , msTemporalAdaptiveQuantization+    , msSceneChangeDetect+    , msHrdBufferInitialFillPercentage+    , msSlowPal+    , msParNumerator+    , msGopSize+    , msNumberBFramesBetweenReferenceFrames+    , msGopSizeUnits+    , msHrdBufferSize+    , msRateControlMode+    , msTelecine+    , msIntraDcPrecision+    , msMinIInterval+    , msInterlaceMode+    , msParControl+    , msSoftness+    , msCodecProfile+    , msBitrate+    , msFramerateDenominator+    , msFramerateConversionAlgorithm+    , msCodecLevel+    , msFramerateControl+    , msAdaptiveQuantization+    , msFramerateNumerator+    , msMaxBitrate+    , msSyntax+    , msGopClosedCadence+    , msParDenominator+    , msSpatialAdaptiveQuantization++    -- ** MsSmoothEncryptionSettings+    , MsSmoothEncryptionSettings+    , msSmoothEncryptionSettings+    , msesSpekeKeyProvider++    -- ** MsSmoothGroupSettings+    , MsSmoothGroupSettings+    , msSmoothGroupSettings+    , msgsFragmentLength+    , msgsManifestEncoding+    , msgsDestination+    , msgsAudioDeduplication+    , msgsEncryption++    -- ** NielsenConfiguration+    , NielsenConfiguration+    , nielsenConfiguration+    , ncBreakoutCode+    , ncDistributorId++    -- ** NoiseReducer+    , NoiseReducer+    , noiseReducer+    , nrSpatialFilterSettings+    , nrFilterSettings+    , nrFilter++    -- ** NoiseReducerFilterSettings+    , NoiseReducerFilterSettings+    , noiseReducerFilterSettings+    , nrfsStrength++    -- ** NoiseReducerSpatialFilterSettings+    , NoiseReducerSpatialFilterSettings+    , noiseReducerSpatialFilterSettings+    , nrsfsStrength+    , nrsfsPostFilterSharpenStrength+    , nrsfsSpeed++    -- ** Output+    , Output+    , output+    , oCaptionDescriptions+    , oExtension+    , oVideoDescription+    , oContainerSettings+    , oOutputSettings+    , oPreset+    , oNameModifier+    , oAudioDescriptions++    -- ** OutputChannelMapping+    , OutputChannelMapping+    , outputChannelMapping+    , ocmInputChannels++    -- ** OutputDetail+    , OutputDetail+    , outputDetail+    , odVideoDetails+    , odDurationInMs++    -- ** OutputGroup+    , OutputGroup+    , outputGroup+    , ogOutputGroupSettings+    , ogOutputs+    , ogCustomName+    , ogName++    -- ** OutputGroupDetail+    , OutputGroupDetail+    , outputGroupDetail+    , ogdOutputDetails++    -- ** OutputGroupSettings+    , OutputGroupSettings+    , outputGroupSettings+    , ogsFileGroupSettings+    , ogsMsSmoothGroupSettings+    , ogsHlsGroupSettings+    , ogsType+    , ogsDashIsoGroupSettings++    -- ** OutputSettings+    , OutputSettings+    , outputSettings+    , osHlsSettings++    -- ** Preset+    , Preset+    , preset+    , pLastUpdated+    , pSettings+    , pARN+    , pCreatedAt+    , pCategory+    , pName+    , pType+    , pDescription++    -- ** PresetSettings+    , PresetSettings+    , presetSettings+    , psCaptionDescriptions+    , psVideoDescription+    , psContainerSettings+    , psAudioDescriptions++    -- ** ProresSettings+    , ProresSettings+    , proresSettings+    , psSlowPal+    , psParNumerator+    , psTelecine+    , psInterlaceMode+    , psParControl+    , psCodecProfile+    , psFramerateDenominator+    , psFramerateConversionAlgorithm+    , psFramerateControl+    , psFramerateNumerator+    , psParDenominator++    -- ** Queue+    , Queue+    , queue+    , qStatus+    , qLastUpdated+    , qARN+    , qCreatedAt+    , qName+    , qType+    , qDescription++    -- ** Rectangle+    , Rectangle+    , rectangle+    , rHeight+    , rWidth+    , rX+    , rY++    -- ** RemixSettings+    , RemixSettings+    , remixSettings+    , rsChannelMapping+    , rsChannelsIn+    , rsChannelsOut++    -- ** SccDestinationSettings+    , SccDestinationSettings+    , sccDestinationSettings+    , sdsFramerate++    -- ** SpekeKeyProvider+    , SpekeKeyProvider+    , spekeKeyProvider+    , skpResourceId+    , skpURL+    , skpSystemIds++    -- ** StaticKeyProvider+    , StaticKeyProvider+    , staticKeyProvider+    , sStaticKeyValue+    , sURL+    , sKeyFormat+    , sKeyFormatVersions++    -- ** TeletextDestinationSettings+    , TeletextDestinationSettings+    , teletextDestinationSettings+    , tdsPageNumber++    -- ** TeletextSourceSettings+    , TeletextSourceSettings+    , teletextSourceSettings+    , tssPageNumber++    -- ** TimecodeBurnin+    , TimecodeBurnin+    , timecodeBurnin+    , tbPrefix+    , tbFontSize+    , tbPosition++    -- ** TimecodeConfig+    , TimecodeConfig+    , timecodeConfig+    , tcStart+    , tcTimestampOffset+    , tcAnchor+    , tcSource++    -- ** TimedMetadataInsertion+    , TimedMetadataInsertion+    , timedMetadataInsertion+    , tmiId3Insertions++    -- ** Timing+    , Timing+    , timing+    , tStartTime+    , tFinishTime+    , tSubmitTime++    -- ** TtmlDestinationSettings+    , TtmlDestinationSettings+    , ttmlDestinationSettings+    , tdsStylePassthrough++    -- ** VideoCodecSettings+    , VideoCodecSettings+    , videoCodecSettings+    , vcsFrameCaptureSettings+    , vcsCodec+    , vcsH265Settings+    , vcsProresSettings+    , vcsH264Settings+    , vcsMpeg2Settings++    -- ** VideoDescription+    , VideoDescription+    , videoDescription+    , vdTimecodeInsertion+    , vdHeight+    , vdAfdSignaling+    , vdSharpness+    , vdCrop+    , vdWidth+    , vdScalingBehavior+    , vdRespondToAfd+    , vdDropFrameTimecode+    , vdAntiAlias+    , vdFixedAfd+    , vdColorMetadata+    , vdCodecSettings+    , vdVideoPreprocessors+    , vdPosition++    -- ** VideoDetail+    , VideoDetail+    , videoDetail+    , vdHeightInPx+    , vdWidthInPx++    -- ** VideoPreprocessor+    , VideoPreprocessor+    , videoPreprocessor+    , vpTimecodeBurnin+    , vpColorCorrector+    , vpDeinterlacer+    , vpNoiseReducer+    , vpImageInserter++    -- ** VideoSelector+    , VideoSelector+    , videoSelector+    , vsProgramNumber+    , vsColorSpaceUsage+    , vsHdr10Metadata+    , vsPid+    , vsColorSpace++    -- ** WavSettings+    , WavSettings+    , wavSettings+    , wsBitDepth+    , wsChannels+    , wsSampleRate+    ) where++import Network.AWS.MediaConvert.CancelJob+import Network.AWS.MediaConvert.CreateJob+import Network.AWS.MediaConvert.CreateJobTemplate+import Network.AWS.MediaConvert.CreatePreset+import Network.AWS.MediaConvert.CreateQueue+import Network.AWS.MediaConvert.DeleteJobTemplate+import Network.AWS.MediaConvert.DeletePreset+import Network.AWS.MediaConvert.DeleteQueue+import Network.AWS.MediaConvert.DescribeEndpoints+import Network.AWS.MediaConvert.GetJob+import Network.AWS.MediaConvert.GetJobTemplate+import Network.AWS.MediaConvert.GetPreset+import Network.AWS.MediaConvert.GetQueue+import Network.AWS.MediaConvert.ListJobs+import Network.AWS.MediaConvert.ListJobTemplates+import Network.AWS.MediaConvert.ListPresets+import Network.AWS.MediaConvert.ListQueues+import Network.AWS.MediaConvert.Types+import Network.AWS.MediaConvert.UpdateJobTemplate+import Network.AWS.MediaConvert.UpdatePreset+import Network.AWS.MediaConvert.UpdateQueue+import Network.AWS.MediaConvert.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 'MediaConvert'.+-}++{- $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/Network/AWS/MediaConvert/CancelJob.hs view
@@ -0,0 +1,113 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.MediaConvert.CancelJob+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Permanently remove a job from a queue. Once you have canceled a job, you can't start it again. You can't delete a running job.+module Network.AWS.MediaConvert.CancelJob+    (+    -- * Creating a Request+      cancelJob+    , CancelJob+    -- * Request Lenses+    , cjId++    -- * Destructuring the Response+    , cancelJobResponse+    , CancelJobResponse+    -- * Response Lenses+    , crsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.MediaConvert.Types+import Network.AWS.MediaConvert.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'cancelJob' smart constructor.+newtype CancelJob = CancelJob'+  { _cjId :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CancelJob' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cjId' - The Job ID of the job to be cancelled.+cancelJob+    :: Text -- ^ 'cjId'+    -> CancelJob+cancelJob pId_ = CancelJob' {_cjId = pId_}+++-- | The Job ID of the job to be cancelled.+cjId :: Lens' CancelJob Text+cjId = lens _cjId (\ s a -> s{_cjId = a})++instance AWSRequest CancelJob where+        type Rs CancelJob = CancelJobResponse+        request = delete mediaConvert+        response+          = receiveEmpty+              (\ s h x ->+                 CancelJobResponse' <$> (pure (fromEnum s)))++instance Hashable CancelJob where++instance NFData CancelJob where++instance ToHeaders CancelJob where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath CancelJob where+        toPath CancelJob'{..}+          = mconcat ["/2017-08-29/jobs/", toBS _cjId]++instance ToQuery CancelJob where+        toQuery = const mempty++-- | /See:/ 'cancelJobResponse' smart constructor.+newtype CancelJobResponse = CancelJobResponse'+  { _crsResponseStatus :: Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CancelJobResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'crsResponseStatus' - -- | The response status code.+cancelJobResponse+    :: Int -- ^ 'crsResponseStatus'+    -> CancelJobResponse+cancelJobResponse pResponseStatus_ =+  CancelJobResponse' {_crsResponseStatus = pResponseStatus_}+++-- | -- | The response status code.+crsResponseStatus :: Lens' CancelJobResponse Int+crsResponseStatus = lens _crsResponseStatus (\ s a -> s{_crsResponseStatus = a})++instance NFData CancelJobResponse where
+ gen/Network/AWS/MediaConvert/CreateJob.hs view
@@ -0,0 +1,180 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.MediaConvert.CreateJob+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Create a new transcoding job. For information about jobs and job settings, see the User Guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html+module Network.AWS.MediaConvert.CreateJob+    (+    -- * Creating a Request+      createJob+    , CreateJob+    -- * Request Lenses+    , cjJobTemplate+    , cjSettings+    , cjQueue+    , cjUserMetadata+    , cjRole+    , cjClientRequestToken++    -- * Destructuring the Response+    , createJobResponse+    , CreateJobResponse+    -- * Response Lenses+    , cjrsJob+    , cjrsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.MediaConvert.Types+import Network.AWS.MediaConvert.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'createJob' smart constructor.+data CreateJob = CreateJob'+  { _cjJobTemplate        :: !(Maybe Text)+  , _cjSettings           :: !(Maybe JobSettings)+  , _cjQueue              :: !(Maybe Text)+  , _cjUserMetadata       :: !(Maybe (Map Text Text))+  , _cjRole               :: !(Maybe Text)+  , _cjClientRequestToken :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateJob' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cjJobTemplate' - When you create a job, you can either specify a job template or specify the transcoding settings individually+--+-- * 'cjSettings' - Undocumented member.+--+-- * 'cjQueue' - Optional. When you create a job, you can specify a queue to send it to. If you don't specify, the job will go to the default queue. For more about queues, see the User Guide topic at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html.+--+-- * 'cjUserMetadata' - User-defined metadata that you want to associate with an MediaConvert job. You specify metadata in key/value pairs.+--+-- * 'cjRole' - Required. The IAM role you use for creating this job. For details about permissions, see the User Guide topic at the User Guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html.+--+-- * 'cjClientRequestToken' - Idempotency token for CreateJob operation.+createJob+    :: CreateJob+createJob =+  CreateJob'+    { _cjJobTemplate = Nothing+    , _cjSettings = Nothing+    , _cjQueue = Nothing+    , _cjUserMetadata = Nothing+    , _cjRole = Nothing+    , _cjClientRequestToken = Nothing+    }+++-- | When you create a job, you can either specify a job template or specify the transcoding settings individually+cjJobTemplate :: Lens' CreateJob (Maybe Text)+cjJobTemplate = lens _cjJobTemplate (\ s a -> s{_cjJobTemplate = a})++-- | Undocumented member.+cjSettings :: Lens' CreateJob (Maybe JobSettings)+cjSettings = lens _cjSettings (\ s a -> s{_cjSettings = a})++-- | Optional. When you create a job, you can specify a queue to send it to. If you don't specify, the job will go to the default queue. For more about queues, see the User Guide topic at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html.+cjQueue :: Lens' CreateJob (Maybe Text)+cjQueue = lens _cjQueue (\ s a -> s{_cjQueue = a})++-- | User-defined metadata that you want to associate with an MediaConvert job. You specify metadata in key/value pairs.+cjUserMetadata :: Lens' CreateJob (HashMap Text Text)+cjUserMetadata = lens _cjUserMetadata (\ s a -> s{_cjUserMetadata = a}) . _Default . _Map++-- | Required. The IAM role you use for creating this job. For details about permissions, see the User Guide topic at the User Guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html.+cjRole :: Lens' CreateJob (Maybe Text)+cjRole = lens _cjRole (\ s a -> s{_cjRole = a})++-- | Idempotency token for CreateJob operation.+cjClientRequestToken :: Lens' CreateJob (Maybe Text)+cjClientRequestToken = lens _cjClientRequestToken (\ s a -> s{_cjClientRequestToken = a})++instance AWSRequest CreateJob where+        type Rs CreateJob = CreateJobResponse+        request = postJSON mediaConvert+        response+          = receiveJSON+              (\ s h x ->+                 CreateJobResponse' <$>+                   (x .?> "job") <*> (pure (fromEnum s)))++instance Hashable CreateJob where++instance NFData CreateJob where++instance ToHeaders CreateJob where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateJob where+        toJSON CreateJob'{..}+          = object+              (catMaybes+                 [("jobTemplate" .=) <$> _cjJobTemplate,+                  ("settings" .=) <$> _cjSettings,+                  ("queue" .=) <$> _cjQueue,+                  ("userMetadata" .=) <$> _cjUserMetadata,+                  ("role" .=) <$> _cjRole,+                  ("clientRequestToken" .=) <$> _cjClientRequestToken])++instance ToPath CreateJob where+        toPath = const "/2017-08-29/jobs"++instance ToQuery CreateJob where+        toQuery = const mempty++-- | /See:/ 'createJobResponse' smart constructor.+data CreateJobResponse = CreateJobResponse'+  { _cjrsJob            :: !(Maybe Job)+  , _cjrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateJobResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cjrsJob' - Undocumented member.+--+-- * 'cjrsResponseStatus' - -- | The response status code.+createJobResponse+    :: Int -- ^ 'cjrsResponseStatus'+    -> CreateJobResponse+createJobResponse pResponseStatus_ =+  CreateJobResponse'+    {_cjrsJob = Nothing, _cjrsResponseStatus = pResponseStatus_}+++-- | Undocumented member.+cjrsJob :: Lens' CreateJobResponse (Maybe Job)+cjrsJob = lens _cjrsJob (\ s a -> s{_cjrsJob = a})++-- | -- | The response status code.+cjrsResponseStatus :: Lens' CreateJobResponse Int+cjrsResponseStatus = lens _cjrsResponseStatus (\ s a -> s{_cjrsResponseStatus = a})++instance NFData CreateJobResponse where
+ gen/Network/AWS/MediaConvert/CreateJobTemplate.hs view
@@ -0,0 +1,169 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.MediaConvert.CreateJobTemplate+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Create a new job template. For information about job templates see the User Guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html+module Network.AWS.MediaConvert.CreateJobTemplate+    (+    -- * Creating a Request+      createJobTemplate+    , CreateJobTemplate+    -- * Request Lenses+    , cjtSettings+    , cjtCategory+    , cjtQueue+    , cjtName+    , cjtDescription++    -- * Destructuring the Response+    , createJobTemplateResponse+    , CreateJobTemplateResponse+    -- * Response Lenses+    , cjtrsJobTemplate+    , cjtrsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.MediaConvert.Types+import Network.AWS.MediaConvert.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'createJobTemplate' smart constructor.+data CreateJobTemplate = CreateJobTemplate'+  { _cjtSettings    :: !(Maybe JobTemplateSettings)+  , _cjtCategory    :: !(Maybe Text)+  , _cjtQueue       :: !(Maybe Text)+  , _cjtName        :: !(Maybe Text)+  , _cjtDescription :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateJobTemplate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cjtSettings' - Undocumented member.+--+-- * 'cjtCategory' - Optional. A category for the job template you are creating+--+-- * 'cjtQueue' - Optional. The queue that jobs created from this template are assigned to. If you don't specify this, jobs will go to the default queue.+--+-- * 'cjtName' - The name of the job template you are creating.+--+-- * 'cjtDescription' - Optional. A description of the job template you are creating.+createJobTemplate+    :: CreateJobTemplate+createJobTemplate =+  CreateJobTemplate'+    { _cjtSettings = Nothing+    , _cjtCategory = Nothing+    , _cjtQueue = Nothing+    , _cjtName = Nothing+    , _cjtDescription = Nothing+    }+++-- | Undocumented member.+cjtSettings :: Lens' CreateJobTemplate (Maybe JobTemplateSettings)+cjtSettings = lens _cjtSettings (\ s a -> s{_cjtSettings = a})++-- | Optional. A category for the job template you are creating+cjtCategory :: Lens' CreateJobTemplate (Maybe Text)+cjtCategory = lens _cjtCategory (\ s a -> s{_cjtCategory = a})++-- | Optional. The queue that jobs created from this template are assigned to. If you don't specify this, jobs will go to the default queue.+cjtQueue :: Lens' CreateJobTemplate (Maybe Text)+cjtQueue = lens _cjtQueue (\ s a -> s{_cjtQueue = a})++-- | The name of the job template you are creating.+cjtName :: Lens' CreateJobTemplate (Maybe Text)+cjtName = lens _cjtName (\ s a -> s{_cjtName = a})++-- | Optional. A description of the job template you are creating.+cjtDescription :: Lens' CreateJobTemplate (Maybe Text)+cjtDescription = lens _cjtDescription (\ s a -> s{_cjtDescription = a})++instance AWSRequest CreateJobTemplate where+        type Rs CreateJobTemplate = CreateJobTemplateResponse+        request = postJSON mediaConvert+        response+          = receiveJSON+              (\ s h x ->+                 CreateJobTemplateResponse' <$>+                   (x .?> "jobTemplate") <*> (pure (fromEnum s)))++instance Hashable CreateJobTemplate where++instance NFData CreateJobTemplate where++instance ToHeaders CreateJobTemplate where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateJobTemplate where+        toJSON CreateJobTemplate'{..}+          = object+              (catMaybes+                 [("settings" .=) <$> _cjtSettings,+                  ("category" .=) <$> _cjtCategory,+                  ("queue" .=) <$> _cjtQueue, ("name" .=) <$> _cjtName,+                  ("description" .=) <$> _cjtDescription])++instance ToPath CreateJobTemplate where+        toPath = const "/2017-08-29/jobTemplates"++instance ToQuery CreateJobTemplate where+        toQuery = const mempty++-- | /See:/ 'createJobTemplateResponse' smart constructor.+data CreateJobTemplateResponse = CreateJobTemplateResponse'+  { _cjtrsJobTemplate    :: !(Maybe JobTemplate)+  , _cjtrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateJobTemplateResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cjtrsJobTemplate' - Undocumented member.+--+-- * 'cjtrsResponseStatus' - -- | The response status code.+createJobTemplateResponse+    :: Int -- ^ 'cjtrsResponseStatus'+    -> CreateJobTemplateResponse+createJobTemplateResponse pResponseStatus_ =+  CreateJobTemplateResponse'+    {_cjtrsJobTemplate = Nothing, _cjtrsResponseStatus = pResponseStatus_}+++-- | Undocumented member.+cjtrsJobTemplate :: Lens' CreateJobTemplateResponse (Maybe JobTemplate)+cjtrsJobTemplate = lens _cjtrsJobTemplate (\ s a -> s{_cjtrsJobTemplate = a})++-- | -- | The response status code.+cjtrsResponseStatus :: Lens' CreateJobTemplateResponse Int+cjtrsResponseStatus = lens _cjtrsResponseStatus (\ s a -> s{_cjtrsResponseStatus = a})++instance NFData CreateJobTemplateResponse where
+ gen/Network/AWS/MediaConvert/CreatePreset.hs view
@@ -0,0 +1,160 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.MediaConvert.CreatePreset+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Create a new preset. For information about job templates see the User Guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html+module Network.AWS.MediaConvert.CreatePreset+    (+    -- * Creating a Request+      createPreset+    , CreatePreset+    -- * Request Lenses+    , cpSettings+    , cpCategory+    , cpName+    , cpDescription++    -- * Destructuring the Response+    , createPresetResponse+    , CreatePresetResponse+    -- * Response Lenses+    , cprsPreset+    , cprsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.MediaConvert.Types+import Network.AWS.MediaConvert.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'createPreset' smart constructor.+data CreatePreset = CreatePreset'+  { _cpSettings    :: !(Maybe PresetSettings)+  , _cpCategory    :: !(Maybe Text)+  , _cpName        :: !(Maybe Text)+  , _cpDescription :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreatePreset' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpSettings' - Undocumented member.+--+-- * 'cpCategory' - Optional. A category for the preset you are creating.+--+-- * 'cpName' - The name of the preset you are creating.+--+-- * 'cpDescription' - Optional. A description of the preset you are creating.+createPreset+    :: CreatePreset+createPreset =+  CreatePreset'+    { _cpSettings = Nothing+    , _cpCategory = Nothing+    , _cpName = Nothing+    , _cpDescription = Nothing+    }+++-- | Undocumented member.+cpSettings :: Lens' CreatePreset (Maybe PresetSettings)+cpSettings = lens _cpSettings (\ s a -> s{_cpSettings = a})++-- | Optional. A category for the preset you are creating.+cpCategory :: Lens' CreatePreset (Maybe Text)+cpCategory = lens _cpCategory (\ s a -> s{_cpCategory = a})++-- | The name of the preset you are creating.+cpName :: Lens' CreatePreset (Maybe Text)+cpName = lens _cpName (\ s a -> s{_cpName = a})++-- | Optional. A description of the preset you are creating.+cpDescription :: Lens' CreatePreset (Maybe Text)+cpDescription = lens _cpDescription (\ s a -> s{_cpDescription = a})++instance AWSRequest CreatePreset where+        type Rs CreatePreset = CreatePresetResponse+        request = postJSON mediaConvert+        response+          = receiveJSON+              (\ s h x ->+                 CreatePresetResponse' <$>+                   (x .?> "preset") <*> (pure (fromEnum s)))++instance Hashable CreatePreset where++instance NFData CreatePreset where++instance ToHeaders CreatePreset where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreatePreset where+        toJSON CreatePreset'{..}+          = object+              (catMaybes+                 [("settings" .=) <$> _cpSettings,+                  ("category" .=) <$> _cpCategory,+                  ("name" .=) <$> _cpName,+                  ("description" .=) <$> _cpDescription])++instance ToPath CreatePreset where+        toPath = const "/2017-08-29/presets"++instance ToQuery CreatePreset where+        toQuery = const mempty++-- | /See:/ 'createPresetResponse' smart constructor.+data CreatePresetResponse = CreatePresetResponse'+  { _cprsPreset         :: !(Maybe Preset)+  , _cprsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreatePresetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cprsPreset' - Undocumented member.+--+-- * 'cprsResponseStatus' - -- | The response status code.+createPresetResponse+    :: Int -- ^ 'cprsResponseStatus'+    -> CreatePresetResponse+createPresetResponse pResponseStatus_ =+  CreatePresetResponse'+    {_cprsPreset = Nothing, _cprsResponseStatus = pResponseStatus_}+++-- | Undocumented member.+cprsPreset :: Lens' CreatePresetResponse (Maybe Preset)+cprsPreset = lens _cprsPreset (\ s a -> s{_cprsPreset = a})++-- | -- | The response status code.+cprsResponseStatus :: Lens' CreatePresetResponse Int+cprsResponseStatus = lens _cprsResponseStatus (\ s a -> s{_cprsResponseStatus = a})++instance NFData CreatePresetResponse where
+ gen/Network/AWS/MediaConvert/CreateQueue.hs view
@@ -0,0 +1,136 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.MediaConvert.CreateQueue+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Create a new transcoding queue. For information about job templates see the User Guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html+module Network.AWS.MediaConvert.CreateQueue+    (+    -- * Creating a Request+      createQueue+    , CreateQueue+    -- * Request Lenses+    , cqName+    , cqDescription++    -- * Destructuring the Response+    , createQueueResponse+    , CreateQueueResponse+    -- * Response Lenses+    , cqrsQueue+    , cqrsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.MediaConvert.Types+import Network.AWS.MediaConvert.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'createQueue' smart constructor.+data CreateQueue = CreateQueue'+  { _cqName        :: !(Maybe Text)+  , _cqDescription :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateQueue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cqName' - The name of the queue you are creating.+--+-- * 'cqDescription' - Optional. A description of the queue you are creating.+createQueue+    :: CreateQueue+createQueue = CreateQueue' {_cqName = Nothing, _cqDescription = Nothing}+++-- | The name of the queue you are creating.+cqName :: Lens' CreateQueue (Maybe Text)+cqName = lens _cqName (\ s a -> s{_cqName = a})++-- | Optional. A description of the queue you are creating.+cqDescription :: Lens' CreateQueue (Maybe Text)+cqDescription = lens _cqDescription (\ s a -> s{_cqDescription = a})++instance AWSRequest CreateQueue where+        type Rs CreateQueue = CreateQueueResponse+        request = postJSON mediaConvert+        response+          = receiveJSON+              (\ s h x ->+                 CreateQueueResponse' <$>+                   (x .?> "queue") <*> (pure (fromEnum s)))++instance Hashable CreateQueue where++instance NFData CreateQueue where++instance ToHeaders CreateQueue where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateQueue where+        toJSON CreateQueue'{..}+          = object+              (catMaybes+                 [("name" .=) <$> _cqName,+                  ("description" .=) <$> _cqDescription])++instance ToPath CreateQueue where+        toPath = const "/2017-08-29/queues"++instance ToQuery CreateQueue where+        toQuery = const mempty++-- | /See:/ 'createQueueResponse' smart constructor.+data CreateQueueResponse = CreateQueueResponse'+  { _cqrsQueue          :: !(Maybe Queue)+  , _cqrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateQueueResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cqrsQueue' - Undocumented member.+--+-- * 'cqrsResponseStatus' - -- | The response status code.+createQueueResponse+    :: Int -- ^ 'cqrsResponseStatus'+    -> CreateQueueResponse+createQueueResponse pResponseStatus_ =+  CreateQueueResponse'+    {_cqrsQueue = Nothing, _cqrsResponseStatus = pResponseStatus_}+++-- | Undocumented member.+cqrsQueue :: Lens' CreateQueueResponse (Maybe Queue)+cqrsQueue = lens _cqrsQueue (\ s a -> s{_cqrsQueue = a})++-- | -- | The response status code.+cqrsResponseStatus :: Lens' CreateQueueResponse Int+cqrsResponseStatus = lens _cqrsResponseStatus (\ s a -> s{_cqrsResponseStatus = a})++instance NFData CreateQueueResponse where
+ gen/Network/AWS/MediaConvert/DeleteJobTemplate.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.MediaConvert.DeleteJobTemplate+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Permanently delete a job template you have created.+module Network.AWS.MediaConvert.DeleteJobTemplate+    (+    -- * Creating a Request+      deleteJobTemplate+    , DeleteJobTemplate+    -- * Request Lenses+    , djtName++    -- * Destructuring the Response+    , deleteJobTemplateResponse+    , DeleteJobTemplateResponse+    -- * Response Lenses+    , djtrsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.MediaConvert.Types+import Network.AWS.MediaConvert.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'deleteJobTemplate' smart constructor.+newtype DeleteJobTemplate = DeleteJobTemplate'+  { _djtName :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteJobTemplate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'djtName' - The name of the job template to be deleted.+deleteJobTemplate+    :: Text -- ^ 'djtName'+    -> DeleteJobTemplate+deleteJobTemplate pName_ = DeleteJobTemplate' {_djtName = pName_}+++-- | The name of the job template to be deleted.+djtName :: Lens' DeleteJobTemplate Text+djtName = lens _djtName (\ s a -> s{_djtName = a})++instance AWSRequest DeleteJobTemplate where+        type Rs DeleteJobTemplate = DeleteJobTemplateResponse+        request = delete mediaConvert+        response+          = receiveEmpty+              (\ s h x ->+                 DeleteJobTemplateResponse' <$> (pure (fromEnum s)))++instance Hashable DeleteJobTemplate where++instance NFData DeleteJobTemplate where++instance ToHeaders DeleteJobTemplate where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath DeleteJobTemplate where+        toPath DeleteJobTemplate'{..}+          = mconcat+              ["/2017-08-29/jobTemplates/", toBS _djtName]++instance ToQuery DeleteJobTemplate where+        toQuery = const mempty++-- | /See:/ 'deleteJobTemplateResponse' smart constructor.+newtype DeleteJobTemplateResponse = DeleteJobTemplateResponse'+  { _djtrsResponseStatus :: Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteJobTemplateResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'djtrsResponseStatus' - -- | The response status code.+deleteJobTemplateResponse+    :: Int -- ^ 'djtrsResponseStatus'+    -> DeleteJobTemplateResponse+deleteJobTemplateResponse pResponseStatus_ =+  DeleteJobTemplateResponse' {_djtrsResponseStatus = pResponseStatus_}+++-- | -- | The response status code.+djtrsResponseStatus :: Lens' DeleteJobTemplateResponse Int+djtrsResponseStatus = lens _djtrsResponseStatus (\ s a -> s{_djtrsResponseStatus = a})++instance NFData DeleteJobTemplateResponse where
+ gen/Network/AWS/MediaConvert/DeletePreset.hs view
@@ -0,0 +1,113 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.MediaConvert.DeletePreset+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Permanently delete a preset you have created.+module Network.AWS.MediaConvert.DeletePreset+    (+    -- * Creating a Request+      deletePreset+    , DeletePreset+    -- * Request Lenses+    , dpName++    -- * Destructuring the Response+    , deletePresetResponse+    , DeletePresetResponse+    -- * Response Lenses+    , dprsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.MediaConvert.Types+import Network.AWS.MediaConvert.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'deletePreset' smart constructor.+newtype DeletePreset = DeletePreset'+  { _dpName :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeletePreset' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dpName' - The name of the preset to be deleted.+deletePreset+    :: Text -- ^ 'dpName'+    -> DeletePreset+deletePreset pName_ = DeletePreset' {_dpName = pName_}+++-- | The name of the preset to be deleted.+dpName :: Lens' DeletePreset Text+dpName = lens _dpName (\ s a -> s{_dpName = a})++instance AWSRequest DeletePreset where+        type Rs DeletePreset = DeletePresetResponse+        request = delete mediaConvert+        response+          = receiveEmpty+              (\ s h x ->+                 DeletePresetResponse' <$> (pure (fromEnum s)))++instance Hashable DeletePreset where++instance NFData DeletePreset where++instance ToHeaders DeletePreset where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath DeletePreset where+        toPath DeletePreset'{..}+          = mconcat ["/2017-08-29/presets/", toBS _dpName]++instance ToQuery DeletePreset where+        toQuery = const mempty++-- | /See:/ 'deletePresetResponse' smart constructor.+newtype DeletePresetResponse = DeletePresetResponse'+  { _dprsResponseStatus :: Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeletePresetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dprsResponseStatus' - -- | The response status code.+deletePresetResponse+    :: Int -- ^ 'dprsResponseStatus'+    -> DeletePresetResponse+deletePresetResponse pResponseStatus_ =+  DeletePresetResponse' {_dprsResponseStatus = pResponseStatus_}+++-- | -- | The response status code.+dprsResponseStatus :: Lens' DeletePresetResponse Int+dprsResponseStatus = lens _dprsResponseStatus (\ s a -> s{_dprsResponseStatus = a})++instance NFData DeletePresetResponse where
+ gen/Network/AWS/MediaConvert/DeleteQueue.hs view
@@ -0,0 +1,113 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.MediaConvert.DeleteQueue+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Permanently delete a queue you have created.+module Network.AWS.MediaConvert.DeleteQueue+    (+    -- * Creating a Request+      deleteQueue+    , DeleteQueue+    -- * Request Lenses+    , dqName++    -- * Destructuring the Response+    , deleteQueueResponse+    , DeleteQueueResponse+    -- * Response Lenses+    , dqrsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.MediaConvert.Types+import Network.AWS.MediaConvert.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'deleteQueue' smart constructor.+newtype DeleteQueue = DeleteQueue'+  { _dqName :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteQueue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dqName' - The name of the queue to be deleted.+deleteQueue+    :: Text -- ^ 'dqName'+    -> DeleteQueue+deleteQueue pName_ = DeleteQueue' {_dqName = pName_}+++-- | The name of the queue to be deleted.+dqName :: Lens' DeleteQueue Text+dqName = lens _dqName (\ s a -> s{_dqName = a})++instance AWSRequest DeleteQueue where+        type Rs DeleteQueue = DeleteQueueResponse+        request = delete mediaConvert+        response+          = receiveEmpty+              (\ s h x ->+                 DeleteQueueResponse' <$> (pure (fromEnum s)))++instance Hashable DeleteQueue where++instance NFData DeleteQueue where++instance ToHeaders DeleteQueue where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath DeleteQueue where+        toPath DeleteQueue'{..}+          = mconcat ["/2017-08-29/queues/", toBS _dqName]++instance ToQuery DeleteQueue where+        toQuery = const mempty++-- | /See:/ 'deleteQueueResponse' smart constructor.+newtype DeleteQueueResponse = DeleteQueueResponse'+  { _dqrsResponseStatus :: Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteQueueResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dqrsResponseStatus' - -- | The response status code.+deleteQueueResponse+    :: Int -- ^ 'dqrsResponseStatus'+    -> DeleteQueueResponse+deleteQueueResponse pResponseStatus_ =+  DeleteQueueResponse' {_dqrsResponseStatus = pResponseStatus_}+++-- | -- | The response status code.+dqrsResponseStatus :: Lens' DeleteQueueResponse Int+dqrsResponseStatus = lens _dqrsResponseStatus (\ s a -> s{_dqrsResponseStatus = a})++instance NFData DeleteQueueResponse where
+ gen/Network/AWS/MediaConvert/DescribeEndpoints.hs view
@@ -0,0 +1,152 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.MediaConvert.DescribeEndpoints+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Send an request with an empty body to the regional API endpoint to get your account API endpoint.+module Network.AWS.MediaConvert.DescribeEndpoints+    (+    -- * Creating a Request+      describeEndpoints+    , DescribeEndpoints+    -- * Request Lenses+    , deNextToken+    , deMaxResults++    -- * Destructuring the Response+    , describeEndpointsResponse+    , DescribeEndpointsResponse+    -- * Response Lenses+    , dersNextToken+    , dersEndpoints+    , dersResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.MediaConvert.Types+import Network.AWS.MediaConvert.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | DescribeEndpointsRequest+--+-- /See:/ 'describeEndpoints' smart constructor.+data DescribeEndpoints = DescribeEndpoints'+  { _deNextToken  :: !(Maybe Text)+  , _deMaxResults :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeEndpoints' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'deNextToken' - Use this string, provided with the response to a previous request, to request the next batch of endpoints.+--+-- * 'deMaxResults' - Optional. Max number of endpoints, up to twenty, that will be returned at one time.+describeEndpoints+    :: DescribeEndpoints+describeEndpoints =+  DescribeEndpoints' {_deNextToken = Nothing, _deMaxResults = Nothing}+++-- | Use this string, provided with the response to a previous request, to request the next batch of endpoints.+deNextToken :: Lens' DescribeEndpoints (Maybe Text)+deNextToken = lens _deNextToken (\ s a -> s{_deNextToken = a})++-- | Optional. Max number of endpoints, up to twenty, that will be returned at one time.+deMaxResults :: Lens' DescribeEndpoints (Maybe Int)+deMaxResults = lens _deMaxResults (\ s a -> s{_deMaxResults = a})++instance AWSRequest DescribeEndpoints where+        type Rs DescribeEndpoints = DescribeEndpointsResponse+        request = postJSON mediaConvert+        response+          = receiveJSON+              (\ s h x ->+                 DescribeEndpointsResponse' <$>+                   (x .?> "nextToken") <*>+                     (x .?> "endpoints" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance Hashable DescribeEndpoints where++instance NFData DescribeEndpoints where++instance ToHeaders DescribeEndpoints where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DescribeEndpoints where+        toJSON DescribeEndpoints'{..}+          = object+              (catMaybes+                 [("nextToken" .=) <$> _deNextToken,+                  ("maxResults" .=) <$> _deMaxResults])++instance ToPath DescribeEndpoints where+        toPath = const "/2017-08-29/endpoints"++instance ToQuery DescribeEndpoints where+        toQuery = const mempty++-- | /See:/ 'describeEndpointsResponse' smart constructor.+data DescribeEndpointsResponse = DescribeEndpointsResponse'+  { _dersNextToken      :: !(Maybe Text)+  , _dersEndpoints      :: !(Maybe [Endpoint])+  , _dersResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeEndpointsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dersNextToken' - Use this string to request the next batch of endpoints.+--+-- * 'dersEndpoints' - List of endpoints+--+-- * 'dersResponseStatus' - -- | The response status code.+describeEndpointsResponse+    :: Int -- ^ 'dersResponseStatus'+    -> DescribeEndpointsResponse+describeEndpointsResponse pResponseStatus_ =+  DescribeEndpointsResponse'+    { _dersNextToken = Nothing+    , _dersEndpoints = Nothing+    , _dersResponseStatus = pResponseStatus_+    }+++-- | Use this string to request the next batch of endpoints.+dersNextToken :: Lens' DescribeEndpointsResponse (Maybe Text)+dersNextToken = lens _dersNextToken (\ s a -> s{_dersNextToken = a})++-- | List of endpoints+dersEndpoints :: Lens' DescribeEndpointsResponse [Endpoint]+dersEndpoints = lens _dersEndpoints (\ s a -> s{_dersEndpoints = a}) . _Default . _Coerce++-- | -- | The response status code.+dersResponseStatus :: Lens' DescribeEndpointsResponse Int+dersResponseStatus = lens _dersResponseStatus (\ s a -> s{_dersResponseStatus = a})++instance NFData DescribeEndpointsResponse where
+ gen/Network/AWS/MediaConvert/GetJob.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.MediaConvert.GetJob+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieve the JSON for a specific completed transcoding job.+module Network.AWS.MediaConvert.GetJob+    (+    -- * Creating a Request+      getJob+    , GetJob+    -- * Request Lenses+    , gjId++    -- * Destructuring the Response+    , getJobResponse+    , GetJobResponse+    -- * Response Lenses+    , gjrsJob+    , gjrsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.MediaConvert.Types+import Network.AWS.MediaConvert.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'getJob' smart constructor.+newtype GetJob = GetJob'+  { _gjId :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetJob' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gjId' - the job ID of the job.+getJob+    :: Text -- ^ 'gjId'+    -> GetJob+getJob pId_ = GetJob' {_gjId = pId_}+++-- | the job ID of the job.+gjId :: Lens' GetJob Text+gjId = lens _gjId (\ s a -> s{_gjId = a})++instance AWSRequest GetJob where+        type Rs GetJob = GetJobResponse+        request = get mediaConvert+        response+          = receiveJSON+              (\ s h x ->+                 GetJobResponse' <$>+                   (x .?> "job") <*> (pure (fromEnum s)))++instance Hashable GetJob where++instance NFData GetJob where++instance ToHeaders GetJob where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath GetJob where+        toPath GetJob'{..}+          = mconcat ["/2017-08-29/jobs/", toBS _gjId]++instance ToQuery GetJob where+        toQuery = const mempty++-- | /See:/ 'getJobResponse' smart constructor.+data GetJobResponse = GetJobResponse'+  { _gjrsJob            :: !(Maybe Job)+  , _gjrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetJobResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gjrsJob' - Undocumented member.+--+-- * 'gjrsResponseStatus' - -- | The response status code.+getJobResponse+    :: Int -- ^ 'gjrsResponseStatus'+    -> GetJobResponse+getJobResponse pResponseStatus_ =+  GetJobResponse' {_gjrsJob = Nothing, _gjrsResponseStatus = pResponseStatus_}+++-- | Undocumented member.+gjrsJob :: Lens' GetJobResponse (Maybe Job)+gjrsJob = lens _gjrsJob (\ s a -> s{_gjrsJob = a})++-- | -- | The response status code.+gjrsResponseStatus :: Lens' GetJobResponse Int+gjrsResponseStatus = lens _gjrsResponseStatus (\ s a -> s{_gjrsResponseStatus = a})++instance NFData GetJobResponse where
+ gen/Network/AWS/MediaConvert/GetJobTemplate.hs view
@@ -0,0 +1,124 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.MediaConvert.GetJobTemplate+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieve the JSON for a specific job template.+module Network.AWS.MediaConvert.GetJobTemplate+    (+    -- * Creating a Request+      getJobTemplate+    , GetJobTemplate+    -- * Request Lenses+    , gjtName++    -- * Destructuring the Response+    , getJobTemplateResponse+    , GetJobTemplateResponse+    -- * Response Lenses+    , gjtrsJobTemplate+    , gjtrsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.MediaConvert.Types+import Network.AWS.MediaConvert.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'getJobTemplate' smart constructor.+newtype GetJobTemplate = GetJobTemplate'+  { _gjtName :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetJobTemplate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gjtName' - The name of the job template.+getJobTemplate+    :: Text -- ^ 'gjtName'+    -> GetJobTemplate+getJobTemplate pName_ = GetJobTemplate' {_gjtName = pName_}+++-- | The name of the job template.+gjtName :: Lens' GetJobTemplate Text+gjtName = lens _gjtName (\ s a -> s{_gjtName = a})++instance AWSRequest GetJobTemplate where+        type Rs GetJobTemplate = GetJobTemplateResponse+        request = get mediaConvert+        response+          = receiveJSON+              (\ s h x ->+                 GetJobTemplateResponse' <$>+                   (x .?> "jobTemplate") <*> (pure (fromEnum s)))++instance Hashable GetJobTemplate where++instance NFData GetJobTemplate where++instance ToHeaders GetJobTemplate where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath GetJobTemplate where+        toPath GetJobTemplate'{..}+          = mconcat+              ["/2017-08-29/jobTemplates/", toBS _gjtName]++instance ToQuery GetJobTemplate where+        toQuery = const mempty++-- | /See:/ 'getJobTemplateResponse' smart constructor.+data GetJobTemplateResponse = GetJobTemplateResponse'+  { _gjtrsJobTemplate    :: !(Maybe JobTemplate)+  , _gjtrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetJobTemplateResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gjtrsJobTemplate' - Undocumented member.+--+-- * 'gjtrsResponseStatus' - -- | The response status code.+getJobTemplateResponse+    :: Int -- ^ 'gjtrsResponseStatus'+    -> GetJobTemplateResponse+getJobTemplateResponse pResponseStatus_ =+  GetJobTemplateResponse'+    {_gjtrsJobTemplate = Nothing, _gjtrsResponseStatus = pResponseStatus_}+++-- | Undocumented member.+gjtrsJobTemplate :: Lens' GetJobTemplateResponse (Maybe JobTemplate)+gjtrsJobTemplate = lens _gjtrsJobTemplate (\ s a -> s{_gjtrsJobTemplate = a})++-- | -- | The response status code.+gjtrsResponseStatus :: Lens' GetJobTemplateResponse Int+gjtrsResponseStatus = lens _gjtrsResponseStatus (\ s a -> s{_gjtrsResponseStatus = a})++instance NFData GetJobTemplateResponse where
+ gen/Network/AWS/MediaConvert/GetPreset.hs view
@@ -0,0 +1,123 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.MediaConvert.GetPreset+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieve the JSON for a specific preset.+module Network.AWS.MediaConvert.GetPreset+    (+    -- * Creating a Request+      getPreset+    , GetPreset+    -- * Request Lenses+    , gpName++    -- * Destructuring the Response+    , getPresetResponse+    , GetPresetResponse+    -- * Response Lenses+    , gprsPreset+    , gprsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.MediaConvert.Types+import Network.AWS.MediaConvert.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'getPreset' smart constructor.+newtype GetPreset = GetPreset'+  { _gpName :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetPreset' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gpName' - The name of the preset.+getPreset+    :: Text -- ^ 'gpName'+    -> GetPreset+getPreset pName_ = GetPreset' {_gpName = pName_}+++-- | The name of the preset.+gpName :: Lens' GetPreset Text+gpName = lens _gpName (\ s a -> s{_gpName = a})++instance AWSRequest GetPreset where+        type Rs GetPreset = GetPresetResponse+        request = get mediaConvert+        response+          = receiveJSON+              (\ s h x ->+                 GetPresetResponse' <$>+                   (x .?> "preset") <*> (pure (fromEnum s)))++instance Hashable GetPreset where++instance NFData GetPreset where++instance ToHeaders GetPreset where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath GetPreset where+        toPath GetPreset'{..}+          = mconcat ["/2017-08-29/presets/", toBS _gpName]++instance ToQuery GetPreset where+        toQuery = const mempty++-- | /See:/ 'getPresetResponse' smart constructor.+data GetPresetResponse = GetPresetResponse'+  { _gprsPreset         :: !(Maybe Preset)+  , _gprsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetPresetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gprsPreset' - Undocumented member.+--+-- * 'gprsResponseStatus' - -- | The response status code.+getPresetResponse+    :: Int -- ^ 'gprsResponseStatus'+    -> GetPresetResponse+getPresetResponse pResponseStatus_ =+  GetPresetResponse'+    {_gprsPreset = Nothing, _gprsResponseStatus = pResponseStatus_}+++-- | Undocumented member.+gprsPreset :: Lens' GetPresetResponse (Maybe Preset)+gprsPreset = lens _gprsPreset (\ s a -> s{_gprsPreset = a})++-- | -- | The response status code.+gprsResponseStatus :: Lens' GetPresetResponse Int+gprsResponseStatus = lens _gprsResponseStatus (\ s a -> s{_gprsResponseStatus = a})++instance NFData GetPresetResponse where
+ gen/Network/AWS/MediaConvert/GetQueue.hs view
@@ -0,0 +1,123 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.MediaConvert.GetQueue+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieve the JSON for a specific queue.+module Network.AWS.MediaConvert.GetQueue+    (+    -- * Creating a Request+      getQueue+    , GetQueue+    -- * Request Lenses+    , gqName++    -- * Destructuring the Response+    , getQueueResponse+    , GetQueueResponse+    -- * Response Lenses+    , gqrsQueue+    , gqrsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.MediaConvert.Types+import Network.AWS.MediaConvert.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'getQueue' smart constructor.+newtype GetQueue = GetQueue'+  { _gqName :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetQueue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gqName' - The name of the queue.+getQueue+    :: Text -- ^ 'gqName'+    -> GetQueue+getQueue pName_ = GetQueue' {_gqName = pName_}+++-- | The name of the queue.+gqName :: Lens' GetQueue Text+gqName = lens _gqName (\ s a -> s{_gqName = a})++instance AWSRequest GetQueue where+        type Rs GetQueue = GetQueueResponse+        request = get mediaConvert+        response+          = receiveJSON+              (\ s h x ->+                 GetQueueResponse' <$>+                   (x .?> "queue") <*> (pure (fromEnum s)))++instance Hashable GetQueue where++instance NFData GetQueue where++instance ToHeaders GetQueue where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath GetQueue where+        toPath GetQueue'{..}+          = mconcat ["/2017-08-29/queues/", toBS _gqName]++instance ToQuery GetQueue where+        toQuery = const mempty++-- | /See:/ 'getQueueResponse' smart constructor.+data GetQueueResponse = GetQueueResponse'+  { _gqrsQueue          :: !(Maybe Queue)+  , _gqrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetQueueResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gqrsQueue' - Undocumented member.+--+-- * 'gqrsResponseStatus' - -- | The response status code.+getQueueResponse+    :: Int -- ^ 'gqrsResponseStatus'+    -> GetQueueResponse+getQueueResponse pResponseStatus_ =+  GetQueueResponse'+    {_gqrsQueue = Nothing, _gqrsResponseStatus = pResponseStatus_}+++-- | Undocumented member.+gqrsQueue :: Lens' GetQueueResponse (Maybe Queue)+gqrsQueue = lens _gqrsQueue (\ s a -> s{_gqrsQueue = a})++-- | -- | The response status code.+gqrsResponseStatus :: Lens' GetQueueResponse Int+gqrsResponseStatus = lens _gqrsResponseStatus (\ s a -> s{_gqrsResponseStatus = a})++instance NFData GetQueueResponse where
+ gen/Network/AWS/MediaConvert/ListJobTemplates.hs view
@@ -0,0 +1,177 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.MediaConvert.ListJobTemplates+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieve a JSON array of up to twenty of your job templates. This will return the templates themselves, not just a list of them. To retrieve the next twenty templates, use the nextToken string returned with the array+module Network.AWS.MediaConvert.ListJobTemplates+    (+    -- * Creating a Request+      listJobTemplates+    , ListJobTemplates+    -- * Request Lenses+    , ljtCategory+    , ljtListBy+    , ljtNextToken+    , ljtOrder+    , ljtMaxResults++    -- * Destructuring the Response+    , listJobTemplatesResponse+    , ListJobTemplatesResponse+    -- * Response Lenses+    , ljtrsJobTemplates+    , ljtrsNextToken+    , ljtrsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.MediaConvert.Types+import Network.AWS.MediaConvert.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'listJobTemplates' smart constructor.+data ListJobTemplates = ListJobTemplates'+  { _ljtCategory   :: !(Maybe Text)+  , _ljtListBy     :: !(Maybe JobTemplateListBy)+  , _ljtNextToken  :: !(Maybe Text)+  , _ljtOrder      :: !(Maybe Order)+  , _ljtMaxResults :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListJobTemplates' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ljtCategory' - Optionally, specify a job template category to limit responses to only job templates from that category.+--+-- * 'ljtListBy' - Undocumented member.+--+-- * 'ljtNextToken' - Use this string, provided with the response to a previous request, to request the next batch of job templates.+--+-- * 'ljtOrder' - Undocumented member.+--+-- * 'ljtMaxResults' - Optional. Number of job templates, up to twenty, that will be returned at one time.+listJobTemplates+    :: ListJobTemplates+listJobTemplates =+  ListJobTemplates'+    { _ljtCategory = Nothing+    , _ljtListBy = Nothing+    , _ljtNextToken = Nothing+    , _ljtOrder = Nothing+    , _ljtMaxResults = Nothing+    }+++-- | Optionally, specify a job template category to limit responses to only job templates from that category.+ljtCategory :: Lens' ListJobTemplates (Maybe Text)+ljtCategory = lens _ljtCategory (\ s a -> s{_ljtCategory = a})++-- | Undocumented member.+ljtListBy :: Lens' ListJobTemplates (Maybe JobTemplateListBy)+ljtListBy = lens _ljtListBy (\ s a -> s{_ljtListBy = a})++-- | Use this string, provided with the response to a previous request, to request the next batch of job templates.+ljtNextToken :: Lens' ListJobTemplates (Maybe Text)+ljtNextToken = lens _ljtNextToken (\ s a -> s{_ljtNextToken = a})++-- | Undocumented member.+ljtOrder :: Lens' ListJobTemplates (Maybe Order)+ljtOrder = lens _ljtOrder (\ s a -> s{_ljtOrder = a})++-- | Optional. Number of job templates, up to twenty, that will be returned at one time.+ljtMaxResults :: Lens' ListJobTemplates (Maybe Int)+ljtMaxResults = lens _ljtMaxResults (\ s a -> s{_ljtMaxResults = a})++instance AWSRequest ListJobTemplates where+        type Rs ListJobTemplates = ListJobTemplatesResponse+        request = get mediaConvert+        response+          = receiveJSON+              (\ s h x ->+                 ListJobTemplatesResponse' <$>+                   (x .?> "jobTemplates" .!@ mempty) <*>+                     (x .?> "nextToken")+                     <*> (pure (fromEnum s)))++instance Hashable ListJobTemplates where++instance NFData ListJobTemplates where++instance ToHeaders ListJobTemplates where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath ListJobTemplates where+        toPath = const "/2017-08-29/jobTemplates"++instance ToQuery ListJobTemplates where+        toQuery ListJobTemplates'{..}+          = mconcat+              ["category" =: _ljtCategory, "listBy" =: _ljtListBy,+               "nextToken" =: _ljtNextToken, "order" =: _ljtOrder,+               "maxResults" =: _ljtMaxResults]++-- | /See:/ 'listJobTemplatesResponse' smart constructor.+data ListJobTemplatesResponse = ListJobTemplatesResponse'+  { _ljtrsJobTemplates   :: !(Maybe [JobTemplate])+  , _ljtrsNextToken      :: !(Maybe Text)+  , _ljtrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListJobTemplatesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ljtrsJobTemplates' - List of Job templates.+--+-- * 'ljtrsNextToken' - Use this string to request the next batch of job templates.+--+-- * 'ljtrsResponseStatus' - -- | The response status code.+listJobTemplatesResponse+    :: Int -- ^ 'ljtrsResponseStatus'+    -> ListJobTemplatesResponse+listJobTemplatesResponse pResponseStatus_ =+  ListJobTemplatesResponse'+    { _ljtrsJobTemplates = Nothing+    , _ljtrsNextToken = Nothing+    , _ljtrsResponseStatus = pResponseStatus_+    }+++-- | List of Job templates.+ljtrsJobTemplates :: Lens' ListJobTemplatesResponse [JobTemplate]+ljtrsJobTemplates = lens _ljtrsJobTemplates (\ s a -> s{_ljtrsJobTemplates = a}) . _Default . _Coerce++-- | Use this string to request the next batch of job templates.+ljtrsNextToken :: Lens' ListJobTemplatesResponse (Maybe Text)+ljtrsNextToken = lens _ljtrsNextToken (\ s a -> s{_ljtrsNextToken = a})++-- | -- | The response status code.+ljtrsResponseStatus :: Lens' ListJobTemplatesResponse Int+ljtrsResponseStatus = lens _ljtrsResponseStatus (\ s a -> s{_ljtrsResponseStatus = a})++instance NFData ListJobTemplatesResponse where
+ gen/Network/AWS/MediaConvert/ListJobs.hs view
@@ -0,0 +1,176 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.MediaConvert.ListJobs+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieve a JSON array of up to twenty of your most recently created jobs. This array includes in-process, completed, and errored jobs. This will return the jobs themselves, not just a list of the jobs. To retrieve the twenty next most recent jobs, use the nextToken string returned with the array.+module Network.AWS.MediaConvert.ListJobs+    (+    -- * Creating a Request+      listJobs+    , ListJobs+    -- * Request Lenses+    , ljStatus+    , ljQueue+    , ljNextToken+    , ljOrder+    , ljMaxResults++    -- * Destructuring the Response+    , listJobsResponse+    , ListJobsResponse+    -- * Response Lenses+    , ljrsNextToken+    , ljrsJobs+    , ljrsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.MediaConvert.Types+import Network.AWS.MediaConvert.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'listJobs' smart constructor.+data ListJobs = ListJobs'+  { _ljStatus     :: !(Maybe JobStatus)+  , _ljQueue      :: !(Maybe Text)+  , _ljNextToken  :: !(Maybe Text)+  , _ljOrder      :: !(Maybe Order)+  , _ljMaxResults :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListJobs' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ljStatus' - Undocumented member.+--+-- * 'ljQueue' - Provide a queue name to get back only jobs from that queue.+--+-- * 'ljNextToken' - Use this string, provided with the response to a previous request, to request the next batch of jobs.+--+-- * 'ljOrder' - Undocumented member.+--+-- * 'ljMaxResults' - Optional. Number of jobs, up to twenty, that will be returned at one time.+listJobs+    :: ListJobs+listJobs =+  ListJobs'+    { _ljStatus = Nothing+    , _ljQueue = Nothing+    , _ljNextToken = Nothing+    , _ljOrder = Nothing+    , _ljMaxResults = Nothing+    }+++-- | Undocumented member.+ljStatus :: Lens' ListJobs (Maybe JobStatus)+ljStatus = lens _ljStatus (\ s a -> s{_ljStatus = a})++-- | Provide a queue name to get back only jobs from that queue.+ljQueue :: Lens' ListJobs (Maybe Text)+ljQueue = lens _ljQueue (\ s a -> s{_ljQueue = a})++-- | Use this string, provided with the response to a previous request, to request the next batch of jobs.+ljNextToken :: Lens' ListJobs (Maybe Text)+ljNextToken = lens _ljNextToken (\ s a -> s{_ljNextToken = a})++-- | Undocumented member.+ljOrder :: Lens' ListJobs (Maybe Order)+ljOrder = lens _ljOrder (\ s a -> s{_ljOrder = a})++-- | Optional. Number of jobs, up to twenty, that will be returned at one time.+ljMaxResults :: Lens' ListJobs (Maybe Int)+ljMaxResults = lens _ljMaxResults (\ s a -> s{_ljMaxResults = a})++instance AWSRequest ListJobs where+        type Rs ListJobs = ListJobsResponse+        request = get mediaConvert+        response+          = receiveJSON+              (\ s h x ->+                 ListJobsResponse' <$>+                   (x .?> "nextToken") <*> (x .?> "jobs" .!@ mempty) <*>+                     (pure (fromEnum s)))++instance Hashable ListJobs where++instance NFData ListJobs where++instance ToHeaders ListJobs where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath ListJobs where+        toPath = const "/2017-08-29/jobs"++instance ToQuery ListJobs where+        toQuery ListJobs'{..}+          = mconcat+              ["status" =: _ljStatus, "queue" =: _ljQueue,+               "nextToken" =: _ljNextToken, "order" =: _ljOrder,+               "maxResults" =: _ljMaxResults]++-- | /See:/ 'listJobsResponse' smart constructor.+data ListJobsResponse = ListJobsResponse'+  { _ljrsNextToken      :: !(Maybe Text)+  , _ljrsJobs           :: !(Maybe [Job])+  , _ljrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListJobsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ljrsNextToken' - Use this string to request the next batch of jobs.+--+-- * 'ljrsJobs' - List of jobs+--+-- * 'ljrsResponseStatus' - -- | The response status code.+listJobsResponse+    :: Int -- ^ 'ljrsResponseStatus'+    -> ListJobsResponse+listJobsResponse pResponseStatus_ =+  ListJobsResponse'+    { _ljrsNextToken = Nothing+    , _ljrsJobs = Nothing+    , _ljrsResponseStatus = pResponseStatus_+    }+++-- | Use this string to request the next batch of jobs.+ljrsNextToken :: Lens' ListJobsResponse (Maybe Text)+ljrsNextToken = lens _ljrsNextToken (\ s a -> s{_ljrsNextToken = a})++-- | List of jobs+ljrsJobs :: Lens' ListJobsResponse [Job]+ljrsJobs = lens _ljrsJobs (\ s a -> s{_ljrsJobs = a}) . _Default . _Coerce++-- | -- | The response status code.+ljrsResponseStatus :: Lens' ListJobsResponse Int+ljrsResponseStatus = lens _ljrsResponseStatus (\ s a -> s{_ljrsResponseStatus = a})++instance NFData ListJobsResponse where
+ gen/Network/AWS/MediaConvert/ListPresets.hs view
@@ -0,0 +1,176 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.MediaConvert.ListPresets+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieve a JSON array of up to twenty of your presets. This will return the presets themselves, not just a list of them. To retrieve the next twenty presets, use the nextToken string returned with the array.+module Network.AWS.MediaConvert.ListPresets+    (+    -- * Creating a Request+      listPresets+    , ListPresets+    -- * Request Lenses+    , lpCategory+    , lpListBy+    , lpNextToken+    , lpOrder+    , lpMaxResults++    -- * Destructuring the Response+    , listPresetsResponse+    , ListPresetsResponse+    -- * Response Lenses+    , lprsPresets+    , lprsNextToken+    , lprsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.MediaConvert.Types+import Network.AWS.MediaConvert.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'listPresets' smart constructor.+data ListPresets = ListPresets'+  { _lpCategory   :: !(Maybe Text)+  , _lpListBy     :: !(Maybe PresetListBy)+  , _lpNextToken  :: !(Maybe Text)+  , _lpOrder      :: !(Maybe Order)+  , _lpMaxResults :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListPresets' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lpCategory' - Optionally, specify a preset category to limit responses to only presets from that category.+--+-- * 'lpListBy' - Undocumented member.+--+-- * 'lpNextToken' - Use this string, provided with the response to a previous request, to request the next batch of presets.+--+-- * 'lpOrder' - Undocumented member.+--+-- * 'lpMaxResults' - Optional. Number of presets, up to twenty, that will be returned at one time+listPresets+    :: ListPresets+listPresets =+  ListPresets'+    { _lpCategory = Nothing+    , _lpListBy = Nothing+    , _lpNextToken = Nothing+    , _lpOrder = Nothing+    , _lpMaxResults = Nothing+    }+++-- | Optionally, specify a preset category to limit responses to only presets from that category.+lpCategory :: Lens' ListPresets (Maybe Text)+lpCategory = lens _lpCategory (\ s a -> s{_lpCategory = a})++-- | Undocumented member.+lpListBy :: Lens' ListPresets (Maybe PresetListBy)+lpListBy = lens _lpListBy (\ s a -> s{_lpListBy = a})++-- | Use this string, provided with the response to a previous request, to request the next batch of presets.+lpNextToken :: Lens' ListPresets (Maybe Text)+lpNextToken = lens _lpNextToken (\ s a -> s{_lpNextToken = a})++-- | Undocumented member.+lpOrder :: Lens' ListPresets (Maybe Order)+lpOrder = lens _lpOrder (\ s a -> s{_lpOrder = a})++-- | Optional. Number of presets, up to twenty, that will be returned at one time+lpMaxResults :: Lens' ListPresets (Maybe Int)+lpMaxResults = lens _lpMaxResults (\ s a -> s{_lpMaxResults = a})++instance AWSRequest ListPresets where+        type Rs ListPresets = ListPresetsResponse+        request = get mediaConvert+        response+          = receiveJSON+              (\ s h x ->+                 ListPresetsResponse' <$>+                   (x .?> "presets" .!@ mempty) <*> (x .?> "nextToken")+                     <*> (pure (fromEnum s)))++instance Hashable ListPresets where++instance NFData ListPresets where++instance ToHeaders ListPresets where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath ListPresets where+        toPath = const "/2017-08-29/presets"++instance ToQuery ListPresets where+        toQuery ListPresets'{..}+          = mconcat+              ["category" =: _lpCategory, "listBy" =: _lpListBy,+               "nextToken" =: _lpNextToken, "order" =: _lpOrder,+               "maxResults" =: _lpMaxResults]++-- | /See:/ 'listPresetsResponse' smart constructor.+data ListPresetsResponse = ListPresetsResponse'+  { _lprsPresets        :: !(Maybe [Preset])+  , _lprsNextToken      :: !(Maybe Text)+  , _lprsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListPresetsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lprsPresets' - List of presets+--+-- * 'lprsNextToken' - Use this string to request the next batch of presets.+--+-- * 'lprsResponseStatus' - -- | The response status code.+listPresetsResponse+    :: Int -- ^ 'lprsResponseStatus'+    -> ListPresetsResponse+listPresetsResponse pResponseStatus_ =+  ListPresetsResponse'+    { _lprsPresets = Nothing+    , _lprsNextToken = Nothing+    , _lprsResponseStatus = pResponseStatus_+    }+++-- | List of presets+lprsPresets :: Lens' ListPresetsResponse [Preset]+lprsPresets = lens _lprsPresets (\ s a -> s{_lprsPresets = a}) . _Default . _Coerce++-- | Use this string to request the next batch of presets.+lprsNextToken :: Lens' ListPresetsResponse (Maybe Text)+lprsNextToken = lens _lprsNextToken (\ s a -> s{_lprsNextToken = a})++-- | -- | The response status code.+lprsResponseStatus :: Lens' ListPresetsResponse Int+lprsResponseStatus = lens _lprsResponseStatus (\ s a -> s{_lprsResponseStatus = a})++instance NFData ListPresetsResponse where
+ gen/Network/AWS/MediaConvert/ListQueues.hs view
@@ -0,0 +1,166 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.MediaConvert.ListQueues+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieve a JSON array of up to twenty of your queues. This will return the queues themselves, not just a list of them. To retrieve the next twenty queues, use the nextToken string returned with the array.+module Network.AWS.MediaConvert.ListQueues+    (+    -- * Creating a Request+      listQueues+    , ListQueues+    -- * Request Lenses+    , lqListBy+    , lqNextToken+    , lqOrder+    , lqMaxResults++    -- * Destructuring the Response+    , listQueuesResponse+    , ListQueuesResponse+    -- * Response Lenses+    , lqrsQueues+    , lqrsNextToken+    , lqrsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.MediaConvert.Types+import Network.AWS.MediaConvert.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'listQueues' smart constructor.+data ListQueues = ListQueues'+  { _lqListBy     :: !(Maybe QueueListBy)+  , _lqNextToken  :: !(Maybe Text)+  , _lqOrder      :: !(Maybe Order)+  , _lqMaxResults :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListQueues' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lqListBy' - Undocumented member.+--+-- * 'lqNextToken' - Use this string, provided with the response to a previous request, to request the next batch of queues.+--+-- * 'lqOrder' - Undocumented member.+--+-- * 'lqMaxResults' - Optional. Number of queues, up to twenty, that will be returned at one time.+listQueues+    :: ListQueues+listQueues =+  ListQueues'+    { _lqListBy = Nothing+    , _lqNextToken = Nothing+    , _lqOrder = Nothing+    , _lqMaxResults = Nothing+    }+++-- | Undocumented member.+lqListBy :: Lens' ListQueues (Maybe QueueListBy)+lqListBy = lens _lqListBy (\ s a -> s{_lqListBy = a})++-- | Use this string, provided with the response to a previous request, to request the next batch of queues.+lqNextToken :: Lens' ListQueues (Maybe Text)+lqNextToken = lens _lqNextToken (\ s a -> s{_lqNextToken = a})++-- | Undocumented member.+lqOrder :: Lens' ListQueues (Maybe Order)+lqOrder = lens _lqOrder (\ s a -> s{_lqOrder = a})++-- | Optional. Number of queues, up to twenty, that will be returned at one time.+lqMaxResults :: Lens' ListQueues (Maybe Int)+lqMaxResults = lens _lqMaxResults (\ s a -> s{_lqMaxResults = a})++instance AWSRequest ListQueues where+        type Rs ListQueues = ListQueuesResponse+        request = get mediaConvert+        response+          = receiveJSON+              (\ s h x ->+                 ListQueuesResponse' <$>+                   (x .?> "queues" .!@ mempty) <*> (x .?> "nextToken")+                     <*> (pure (fromEnum s)))++instance Hashable ListQueues where++instance NFData ListQueues where++instance ToHeaders ListQueues where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath ListQueues where+        toPath = const "/2017-08-29/queues"++instance ToQuery ListQueues where+        toQuery ListQueues'{..}+          = mconcat+              ["listBy" =: _lqListBy, "nextToken" =: _lqNextToken,+               "order" =: _lqOrder, "maxResults" =: _lqMaxResults]++-- | /See:/ 'listQueuesResponse' smart constructor.+data ListQueuesResponse = ListQueuesResponse'+  { _lqrsQueues         :: !(Maybe [Queue])+  , _lqrsNextToken      :: !(Maybe Text)+  , _lqrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListQueuesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lqrsQueues' - List of queues+--+-- * 'lqrsNextToken' - Use this string to request the next batch of queues.+--+-- * 'lqrsResponseStatus' - -- | The response status code.+listQueuesResponse+    :: Int -- ^ 'lqrsResponseStatus'+    -> ListQueuesResponse+listQueuesResponse pResponseStatus_ =+  ListQueuesResponse'+    { _lqrsQueues = Nothing+    , _lqrsNextToken = Nothing+    , _lqrsResponseStatus = pResponseStatus_+    }+++-- | List of queues+lqrsQueues :: Lens' ListQueuesResponse [Queue]+lqrsQueues = lens _lqrsQueues (\ s a -> s{_lqrsQueues = a}) . _Default . _Coerce++-- | Use this string to request the next batch of queues.+lqrsNextToken :: Lens' ListQueuesResponse (Maybe Text)+lqrsNextToken = lens _lqrsNextToken (\ s a -> s{_lqrsNextToken = a})++-- | -- | The response status code.+lqrsResponseStatus :: Lens' ListQueuesResponse Int+lqrsResponseStatus = lens _lqrsResponseStatus (\ s a -> s{_lqrsResponseStatus = a})++instance NFData ListQueuesResponse where
+ gen/Network/AWS/MediaConvert/Types.hs view
@@ -0,0 +1,1668 @@+{-# LANGUAGE OverloadedStrings #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.MediaConvert.Types+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.MediaConvert.Types+    (+    -- * Service Configuration+      mediaConvert++    -- * Errors+    , _ConflictException+    , _ForbiddenException+    , _NotFoundException+    , _TooManyRequestsException+    , _InternalServerErrorException+    , _BadRequestException++    -- * AacAudioDescriptionBroadcasterMix+    , AacAudioDescriptionBroadcasterMix (..)++    -- * AacCodecProfile+    , AacCodecProfile (..)++    -- * AacCodingMode+    , AacCodingMode (..)++    -- * AacRateControlMode+    , AacRateControlMode (..)++    -- * AacRawFormat+    , AacRawFormat (..)++    -- * AacSpecification+    , AacSpecification (..)++    -- * AacVbrQuality+    , AacVbrQuality (..)++    -- * Ac3BitstreamMode+    , Ac3BitstreamMode (..)++    -- * Ac3CodingMode+    , Ac3CodingMode (..)++    -- * Ac3DynamicRangeCompressionProfile+    , Ac3DynamicRangeCompressionProfile (..)++    -- * Ac3LfeFilter+    , Ac3LfeFilter (..)++    -- * Ac3MetadataControl+    , Ac3MetadataControl (..)++    -- * AfdSignaling+    , AfdSignaling (..)++    -- * AntiAlias+    , AntiAlias (..)++    -- * AudioCodec+    , AudioCodec (..)++    -- * AudioDefaultSelection+    , AudioDefaultSelection (..)++    -- * AudioLanguageCodeControl+    , AudioLanguageCodeControl (..)++    -- * AudioNormalizationAlgorithm+    , AudioNormalizationAlgorithm (..)++    -- * AudioNormalizationAlgorithmControl+    , AudioNormalizationAlgorithmControl (..)++    -- * AudioNormalizationLoudnessLogging+    , AudioNormalizationLoudnessLogging (..)++    -- * AudioNormalizationPeakCalculation+    , AudioNormalizationPeakCalculation (..)++    -- * AudioSelectorType+    , AudioSelectorType (..)++    -- * AudioTypeControl+    , AudioTypeControl (..)++    -- * BurninSubtitleAlignment+    , BurninSubtitleAlignment (..)++    -- * BurninSubtitleBackgroundColor+    , BurninSubtitleBackgroundColor (..)++    -- * BurninSubtitleFontColor+    , BurninSubtitleFontColor (..)++    -- * BurninSubtitleOutlineColor+    , BurninSubtitleOutlineColor (..)++    -- * BurninSubtitleShadowColor+    , BurninSubtitleShadowColor (..)++    -- * BurninSubtitleTeletextSpacing+    , BurninSubtitleTeletextSpacing (..)++    -- * CaptionDestinationType+    , CaptionDestinationType (..)++    -- * CaptionSourceType+    , CaptionSourceType (..)++    -- * ColorMetadata+    , ColorMetadata (..)++    -- * ColorSpace+    , ColorSpace (..)++    -- * ColorSpaceConversion+    , ColorSpaceConversion (..)++    -- * ColorSpaceUsage+    , ColorSpaceUsage (..)++    -- * ContainerType+    , ContainerType (..)++    -- * DashIsoHbbtvCompliance+    , DashIsoHbbtvCompliance (..)++    -- * DashIsoSegmentControl+    , DashIsoSegmentControl (..)++    -- * DeinterlaceAlgorithm+    , DeinterlaceAlgorithm (..)++    -- * DeinterlacerControl+    , DeinterlacerControl (..)++    -- * DeinterlacerMode+    , DeinterlacerMode (..)++    -- * DropFrameTimecode+    , DropFrameTimecode (..)++    -- * DvbSubtitleAlignment+    , DvbSubtitleAlignment (..)++    -- * DvbSubtitleBackgroundColor+    , DvbSubtitleBackgroundColor (..)++    -- * DvbSubtitleFontColor+    , DvbSubtitleFontColor (..)++    -- * DvbSubtitleOutlineColor+    , DvbSubtitleOutlineColor (..)++    -- * DvbSubtitleShadowColor+    , DvbSubtitleShadowColor (..)++    -- * DvbSubtitleTeletextSpacing+    , DvbSubtitleTeletextSpacing (..)++    -- * Eac3AttenuationControl+    , Eac3AttenuationControl (..)++    -- * Eac3BitstreamMode+    , Eac3BitstreamMode (..)++    -- * Eac3CodingMode+    , Eac3CodingMode (..)++    -- * Eac3DcFilter+    , Eac3DcFilter (..)++    -- * Eac3DynamicRangeCompressionLine+    , Eac3DynamicRangeCompressionLine (..)++    -- * Eac3DynamicRangeCompressionRf+    , Eac3DynamicRangeCompressionRf (..)++    -- * Eac3LfeControl+    , Eac3LfeControl (..)++    -- * Eac3LfeFilter+    , Eac3LfeFilter (..)++    -- * Eac3MetadataControl+    , Eac3MetadataControl (..)++    -- * Eac3PassthroughControl+    , Eac3PassthroughControl (..)++    -- * Eac3PhaseControl+    , Eac3PhaseControl (..)++    -- * Eac3StereoDownmix+    , Eac3StereoDownmix (..)++    -- * Eac3SurroundExMode+    , Eac3SurroundExMode (..)++    -- * Eac3SurroundMode+    , Eac3SurroundMode (..)++    -- * EmbeddedConvert608To708+    , EmbeddedConvert608To708 (..)++    -- * F4vMoovPlacement+    , F4vMoovPlacement (..)++    -- * FileSourceConvert608To708+    , FileSourceConvert608To708 (..)++    -- * H264AdaptiveQuantization+    , H264AdaptiveQuantization (..)++    -- * H264CodecLevel+    , H264CodecLevel (..)++    -- * H264CodecProfile+    , H264CodecProfile (..)++    -- * H264EntropyEncoding+    , H264EntropyEncoding (..)++    -- * H264FieldEncoding+    , H264FieldEncoding (..)++    -- * H264FlickerAdaptiveQuantization+    , H264FlickerAdaptiveQuantization (..)++    -- * H264FramerateControl+    , H264FramerateControl (..)++    -- * H264FramerateConversionAlgorithm+    , H264FramerateConversionAlgorithm (..)++    -- * H264GopBReference+    , H264GopBReference (..)++    -- * H264GopSizeUnits+    , H264GopSizeUnits (..)++    -- * H264InterlaceMode+    , H264InterlaceMode (..)++    -- * H264ParControl+    , H264ParControl (..)++    -- * H264QualityTuningLevel+    , H264QualityTuningLevel (..)++    -- * H264RateControlMode+    , H264RateControlMode (..)++    -- * H264RepeatPps+    , H264RepeatPps (..)++    -- * H264SceneChangeDetect+    , H264SceneChangeDetect (..)++    -- * H264SlowPal+    , H264SlowPal (..)++    -- * H264SpatialAdaptiveQuantization+    , H264SpatialAdaptiveQuantization (..)++    -- * H264Syntax+    , H264Syntax (..)++    -- * H264Telecine+    , H264Telecine (..)++    -- * H264TemporalAdaptiveQuantization+    , H264TemporalAdaptiveQuantization (..)++    -- * H264UnregisteredSeiTimecode+    , H264UnregisteredSeiTimecode (..)++    -- * H265AdaptiveQuantization+    , H265AdaptiveQuantization (..)++    -- * H265AlternateTransferFunctionSei+    , H265AlternateTransferFunctionSei (..)++    -- * H265CodecLevel+    , H265CodecLevel (..)++    -- * H265CodecProfile+    , H265CodecProfile (..)++    -- * H265FlickerAdaptiveQuantization+    , H265FlickerAdaptiveQuantization (..)++    -- * H265FramerateControl+    , H265FramerateControl (..)++    -- * H265FramerateConversionAlgorithm+    , H265FramerateConversionAlgorithm (..)++    -- * H265GopBReference+    , H265GopBReference (..)++    -- * H265GopSizeUnits+    , H265GopSizeUnits (..)++    -- * H265InterlaceMode+    , H265InterlaceMode (..)++    -- * H265ParControl+    , H265ParControl (..)++    -- * H265QualityTuningLevel+    , H265QualityTuningLevel (..)++    -- * H265RateControlMode+    , H265RateControlMode (..)++    -- * H265SampleAdaptiveOffsetFilterMode+    , H265SampleAdaptiveOffsetFilterMode (..)++    -- * H265SceneChangeDetect+    , H265SceneChangeDetect (..)++    -- * H265SlowPal+    , H265SlowPal (..)++    -- * H265SpatialAdaptiveQuantization+    , H265SpatialAdaptiveQuantization (..)++    -- * H265Telecine+    , H265Telecine (..)++    -- * H265TemporalAdaptiveQuantization+    , H265TemporalAdaptiveQuantization (..)++    -- * H265TemporalIds+    , H265TemporalIds (..)++    -- * H265Tiles+    , H265Tiles (..)++    -- * H265UnregisteredSeiTimecode+    , H265UnregisteredSeiTimecode (..)++    -- * HlsAdMarkers+    , HlsAdMarkers (..)++    -- * HlsAudioTrackType+    , HlsAudioTrackType (..)++    -- * HlsCaptionLanguageSetting+    , HlsCaptionLanguageSetting (..)++    -- * HlsClientCache+    , HlsClientCache (..)++    -- * HlsCodecSpecification+    , HlsCodecSpecification (..)++    -- * HlsDirectoryStructure+    , HlsDirectoryStructure (..)++    -- * HlsEncryptionType+    , HlsEncryptionType (..)++    -- * HlsIFrameOnlyManifest+    , HlsIFrameOnlyManifest (..)++    -- * HlsInitializationVectorInManifest+    , HlsInitializationVectorInManifest (..)++    -- * HlsKeyProviderType+    , HlsKeyProviderType (..)++    -- * HlsManifestCompression+    , HlsManifestCompression (..)++    -- * HlsManifestDurationFormat+    , HlsManifestDurationFormat (..)++    -- * HlsOutputSelection+    , HlsOutputSelection (..)++    -- * HlsProgramDateTime+    , HlsProgramDateTime (..)++    -- * HlsSegmentControl+    , HlsSegmentControl (..)++    -- * HlsStreamInfResolution+    , HlsStreamInfResolution (..)++    -- * HlsTimedMetadataId3Frame+    , HlsTimedMetadataId3Frame (..)++    -- * InputDeblockFilter+    , InputDeblockFilter (..)++    -- * InputDenoiseFilter+    , InputDenoiseFilter (..)++    -- * InputFilterEnable+    , InputFilterEnable (..)++    -- * InputPsiControl+    , InputPsiControl (..)++    -- * InputTimecodeSource+    , InputTimecodeSource (..)++    -- * JobStatus+    , JobStatus (..)++    -- * JobTemplateListBy+    , JobTemplateListBy (..)++    -- * LanguageCode+    , LanguageCode (..)++    -- * M2tsAudioBufferModel+    , M2tsAudioBufferModel (..)++    -- * M2tsBufferModel+    , M2tsBufferModel (..)++    -- * M2tsEbpAudioInterval+    , M2tsEbpAudioInterval (..)++    -- * M2tsEbpPlacement+    , M2tsEbpPlacement (..)++    -- * M2tsEsRateInPes+    , M2tsEsRateInPes (..)++    -- * M2tsNielsenId3+    , M2tsNielsenId3 (..)++    -- * M2tsPcrControl+    , M2tsPcrControl (..)++    -- * M2tsRateMode+    , M2tsRateMode (..)++    -- * M2tsScte35Source+    , M2tsScte35Source (..)++    -- * M2tsSegmentationMarkers+    , M2tsSegmentationMarkers (..)++    -- * M2tsSegmentationStyle+    , M2tsSegmentationStyle (..)++    -- * M3u8NielsenId3+    , M3u8NielsenId3 (..)++    -- * M3u8PcrControl+    , M3u8PcrControl (..)++    -- * M3u8Scte35Source+    , M3u8Scte35Source (..)++    -- * MovClapAtom+    , MovClapAtom (..)++    -- * MovCslgAtom+    , MovCslgAtom (..)++    -- * MovMpeg2FourCCControl+    , MovMpeg2FourCCControl (..)++    -- * MovPaddingControl+    , MovPaddingControl (..)++    -- * MovReference+    , MovReference (..)++    -- * Mp4CslgAtom+    , Mp4CslgAtom (..)++    -- * Mp4FreeSpaceBox+    , Mp4FreeSpaceBox (..)++    -- * Mp4MoovPlacement+    , Mp4MoovPlacement (..)++    -- * Mpeg2AdaptiveQuantization+    , Mpeg2AdaptiveQuantization (..)++    -- * Mpeg2CodecLevel+    , Mpeg2CodecLevel (..)++    -- * Mpeg2CodecProfile+    , Mpeg2CodecProfile (..)++    -- * Mpeg2FramerateControl+    , Mpeg2FramerateControl (..)++    -- * Mpeg2FramerateConversionAlgorithm+    , Mpeg2FramerateConversionAlgorithm (..)++    -- * Mpeg2GopSizeUnits+    , Mpeg2GopSizeUnits (..)++    -- * Mpeg2InterlaceMode+    , Mpeg2InterlaceMode (..)++    -- * Mpeg2IntraDcPrecision+    , Mpeg2IntraDcPrecision (..)++    -- * Mpeg2ParControl+    , Mpeg2ParControl (..)++    -- * Mpeg2QualityTuningLevel+    , Mpeg2QualityTuningLevel (..)++    -- * Mpeg2RateControlMode+    , Mpeg2RateControlMode (..)++    -- * Mpeg2SceneChangeDetect+    , Mpeg2SceneChangeDetect (..)++    -- * Mpeg2SlowPal+    , Mpeg2SlowPal (..)++    -- * Mpeg2SpatialAdaptiveQuantization+    , Mpeg2SpatialAdaptiveQuantization (..)++    -- * Mpeg2Syntax+    , Mpeg2Syntax (..)++    -- * Mpeg2Telecine+    , Mpeg2Telecine (..)++    -- * Mpeg2TemporalAdaptiveQuantization+    , Mpeg2TemporalAdaptiveQuantization (..)++    -- * MsSmoothAudioDeduplication+    , MsSmoothAudioDeduplication (..)++    -- * MsSmoothManifestEncoding+    , MsSmoothManifestEncoding (..)++    -- * NoiseReducerFilter+    , NoiseReducerFilter (..)++    -- * Order+    , Order (..)++    -- * OutputGroupType+    , OutputGroupType (..)++    -- * OutputSdt+    , OutputSdt (..)++    -- * PresetListBy+    , PresetListBy (..)++    -- * ProresCodecProfile+    , ProresCodecProfile (..)++    -- * ProresFramerateControl+    , ProresFramerateControl (..)++    -- * ProresFramerateConversionAlgorithm+    , ProresFramerateConversionAlgorithm (..)++    -- * ProresInterlaceMode+    , ProresInterlaceMode (..)++    -- * ProresParControl+    , ProresParControl (..)++    -- * ProresSlowPal+    , ProresSlowPal (..)++    -- * ProresTelecine+    , ProresTelecine (..)++    -- * QueueListBy+    , QueueListBy (..)++    -- * QueueStatus+    , QueueStatus (..)++    -- * RespondToAfd+    , RespondToAfd (..)++    -- * ScalingBehavior+    , ScalingBehavior (..)++    -- * SccDestinationFramerate+    , SccDestinationFramerate (..)++    -- * TimecodeBurninPosition+    , TimecodeBurninPosition (..)++    -- * TimecodeSource+    , TimecodeSource (..)++    -- * TimedMetadata+    , TimedMetadata (..)++    -- * TtmlStylePassthrough+    , TtmlStylePassthrough (..)++    -- * Type+    , Type (..)++    -- * VideoCodec+    , VideoCodec (..)++    -- * VideoTimecodeInsertion+    , VideoTimecodeInsertion (..)++    -- * AacSettings+    , AacSettings+    , aacSettings+    , assAudioDescriptionBroadcasterMix+    , assRawFormat+    , assCodingMode+    , assRateControlMode+    , assSampleRate+    , assSpecification+    , assCodecProfile+    , assBitrate+    , assVbrQuality++    -- * Ac3Settings+    , Ac3Settings+    , ac3Settings+    , aLfeFilter+    , aMetadataControl+    , aBitstreamMode+    , aCodingMode+    , aSampleRate+    , aDynamicRangeCompressionProfile+    , aBitrate+    , aDialnorm++    -- * AiffSettings+    , AiffSettings+    , aiffSettings+    , asBitDepth+    , asChannels+    , asSampleRate++    -- * AncillarySourceSettings+    , AncillarySourceSettings+    , ancillarySourceSettings+    , assSourceAncillaryChannelNumber++    -- * AudioCodecSettings+    , AudioCodecSettings+    , audioCodecSettings+    , acsAiffSettings+    , acsCodec+    , acsAc3Settings+    , acsMp2Settings+    , acsWavSettings+    , acsAacSettings+    , acsEac3Settings++    -- * AudioDescription+    , AudioDescription+    , audioDescription+    , adAudioSourceName+    , adLanguageCode+    , adAudioType+    , adAudioNormalizationSettings+    , adLanguageCodeControl+    , adCodecSettings+    , adStreamName+    , adRemixSettings+    , adAudioTypeControl++    -- * AudioNormalizationSettings+    , AudioNormalizationSettings+    , audioNormalizationSettings+    , ansAlgorithmControl+    , ansTargetLkfs+    , ansPeakCalculation+    , ansCorrectionGateLevel+    , ansAlgorithm+    , ansLoudnessLogging++    -- * AudioSelector+    , AudioSelector+    , audioSelector+    , asTracks+    , asProgramSelection+    , asLanguageCode+    , asOffset+    , asDefaultSelection+    , asPids+    , asSelectorType+    , asExternalAudioFileInput+    , asRemixSettings++    -- * AudioSelectorGroup+    , AudioSelectorGroup+    , audioSelectorGroup+    , asgAudioSelectorNames++    -- * AvailBlanking+    , AvailBlanking+    , availBlanking+    , abAvailBlankingImage++    -- * BurninDestinationSettings+    , BurninDestinationSettings+    , burninDestinationSettings+    , bdsBackgroundOpacity+    , bdsFontOpacity+    , bdsShadowYOffset+    , bdsFontResolution+    , bdsYPosition+    , bdsBackgroundColor+    , bdsShadowXOffset+    , bdsFontSize+    , bdsXPosition+    , bdsTeletextSpacing+    , bdsAlignment+    , bdsShadowOpacity+    , bdsOutlineColor+    , bdsOutlineSize+    , bdsShadowColor+    , bdsFontColor++    -- * CaptionDescription+    , CaptionDescription+    , captionDescription+    , cdCaptionSelectorName+    , cdLanguageCode+    , cdDestinationSettings+    , cdLanguageDescription++    -- * CaptionDescriptionPreset+    , CaptionDescriptionPreset+    , captionDescriptionPreset+    , cdpLanguageCode+    , cdpDestinationSettings+    , cdpLanguageDescription++    -- * CaptionDestinationSettings+    , CaptionDestinationSettings+    , captionDestinationSettings+    , cdsTeletextDestinationSettings+    , cdsDvbSubDestinationSettings+    , cdsTtmlDestinationSettings+    , cdsDestinationType+    , cdsSccDestinationSettings+    , cdsBurninDestinationSettings++    -- * CaptionSelector+    , CaptionSelector+    , captionSelector+    , csLanguageCode+    , csSourceSettings++    -- * CaptionSourceSettings+    , CaptionSourceSettings+    , captionSourceSettings+    , cssTeletextSourceSettings+    , cssSourceType+    , cssFileSourceSettings+    , cssDvbSubSourceSettings+    , cssAncillarySourceSettings+    , cssEmbeddedSourceSettings++    -- * ChannelMapping+    , ChannelMapping+    , channelMapping+    , cmOutputChannels++    -- * ColorCorrector+    , ColorCorrector+    , colorCorrector+    , ccSaturation+    , ccHue+    , ccColorSpaceConversion+    , ccHdr10Metadata+    , ccContrast+    , ccBrightness++    -- * ContainerSettings+    , ContainerSettings+    , containerSettings+    , csM2tsSettings+    , csM3u8Settings+    , csMovSettings+    , csMp4Settings+    , csContainer+    , csF4vSettings++    -- * DashIsoEncryptionSettings+    , DashIsoEncryptionSettings+    , dashIsoEncryptionSettings+    , diesSpekeKeyProvider++    -- * DashIsoGroupSettings+    , DashIsoGroupSettings+    , dashIsoGroupSettings+    , digsFragmentLength+    , digsSegmentControl+    , digsDestination+    , digsHbbtvCompliance+    , digsMinBufferTime+    , digsBaseURL+    , digsEncryption+    , digsSegmentLength++    -- * Deinterlacer+    , Deinterlacer+    , deinterlacer+    , dControl+    , dMode+    , dAlgorithm++    -- * DvbNitSettings+    , DvbNitSettings+    , dvbNitSettings+    , dnsNetworkId+    , dnsNetworkName+    , dnsNitInterval++    -- * DvbSdtSettings+    , DvbSdtSettings+    , dvbSdtSettings+    , dssSdtInterval+    , dssServiceProviderName+    , dssOutputSdt+    , dssServiceName++    -- * DvbSubDestinationSettings+    , DvbSubDestinationSettings+    , dvbSubDestinationSettings+    , dsdsBackgroundOpacity+    , dsdsFontOpacity+    , dsdsShadowYOffset+    , dsdsFontResolution+    , dsdsYPosition+    , dsdsBackgroundColor+    , dsdsShadowXOffset+    , dsdsFontSize+    , dsdsXPosition+    , dsdsTeletextSpacing+    , dsdsAlignment+    , dsdsShadowOpacity+    , dsdsOutlineColor+    , dsdsOutlineSize+    , dsdsShadowColor+    , dsdsFontColor++    -- * DvbSubSourceSettings+    , DvbSubSourceSettings+    , dvbSubSourceSettings+    , dsssPid++    -- * DvbTdtSettings+    , DvbTdtSettings+    , dvbTdtSettings+    , dtsTdtInterval++    -- * Eac3Settings+    , Eac3Settings+    , eac3Settings+    , esStereoDownmix+    , esLoRoCenterMixLevel+    , esLtRtCenterMixLevel+    , esLfeFilter+    , esDynamicRangeCompressionLine+    , esLtRtSurroundMixLevel+    , esMetadataControl+    , esLoRoSurroundMixLevel+    , esSurroundMode+    , esAttenuationControl+    , esPassthroughControl+    , esBitstreamMode+    , esLfeControl+    , esDynamicRangeCompressionRf+    , esCodingMode+    , esSampleRate+    , esDcFilter+    , esBitrate+    , esPhaseControl+    , esSurroundExMode+    , esDialnorm++    -- * EmbeddedSourceSettings+    , EmbeddedSourceSettings+    , embeddedSourceSettings+    , essConvert608To708+    , essSource608TrackNumber+    , essSource608ChannelNumber++    -- * Endpoint+    , Endpoint+    , endpoint+    , eURL++    -- * F4vSettings+    , F4vSettings+    , f4vSettings+    , fsMoovPlacement++    -- * FileGroupSettings+    , FileGroupSettings+    , fileGroupSettings+    , fgsDestination++    -- * FileSourceSettings+    , FileSourceSettings+    , fileSourceSettings+    , fssConvert608To708+    , fssTimeDelta+    , fssSourceFile++    -- * FrameCaptureSettings+    , FrameCaptureSettings+    , frameCaptureSettings+    , fcsQuality+    , fcsFramerateDenominator+    , fcsMaxCaptures+    , fcsFramerateNumerator++    -- * H264Settings+    , H264Settings+    , h264Settings+    , hUnregisteredSeiTimecode+    , hQualityTuningLevel+    , hTemporalAdaptiveQuantization+    , hSceneChangeDetect+    , hHrdBufferInitialFillPercentage+    , hSlowPal+    , hParNumerator+    , hGopSize+    , hNumberBFramesBetweenReferenceFrames+    , hGopSizeUnits+    , hHrdBufferSize+    , hSlices+    , hRateControlMode+    , hNumberReferenceFrames+    , hTelecine+    , hMinIInterval+    , hInterlaceMode+    , hParControl+    , hRepeatPps+    , hFlickerAdaptiveQuantization+    , hSoftness+    , hCodecProfile+    , hBitrate+    , hFramerateDenominator+    , hFramerateConversionAlgorithm+    , hCodecLevel+    , hEntropyEncoding+    , hFramerateControl+    , hAdaptiveQuantization+    , hFramerateNumerator+    , hGopBReference+    , hMaxBitrate+    , hSyntax+    , hFieldEncoding+    , hGopClosedCadence+    , hParDenominator+    , hSpatialAdaptiveQuantization++    -- * H265Settings+    , H265Settings+    , h265Settings+    , hsUnregisteredSeiTimecode+    , hsQualityTuningLevel+    , hsTemporalAdaptiveQuantization+    , hsSceneChangeDetect+    , hsHrdBufferInitialFillPercentage+    , hsTiles+    , hsSlowPal+    , hsTemporalIds+    , hsParNumerator+    , hsGopSize+    , hsNumberBFramesBetweenReferenceFrames+    , hsGopSizeUnits+    , hsHrdBufferSize+    , hsSlices+    , hsAlternateTransferFunctionSei+    , hsRateControlMode+    , hsNumberReferenceFrames+    , hsTelecine+    , hsMinIInterval+    , hsInterlaceMode+    , hsParControl+    , hsFlickerAdaptiveQuantization+    , hsSampleAdaptiveOffsetFilterMode+    , hsCodecProfile+    , hsBitrate+    , hsFramerateDenominator+    , hsFramerateConversionAlgorithm+    , hsCodecLevel+    , hsFramerateControl+    , hsAdaptiveQuantization+    , hsFramerateNumerator+    , hsGopBReference+    , hsMaxBitrate+    , hsGopClosedCadence+    , hsParDenominator+    , hsSpatialAdaptiveQuantization++    -- * Hdr10Metadata+    , Hdr10Metadata+    , hdr10Metadata+    , hmRedPrimaryX+    , hmBluePrimaryX+    , hmMaxFrameAverageLightLevel+    , hmWhitePointY+    , hmMaxContentLightLevel+    , hmWhitePointX+    , hmBluePrimaryY+    , hmGreenPrimaryY+    , hmGreenPrimaryX+    , hmMinLuminance+    , hmRedPrimaryY+    , hmMaxLuminance++    -- * HlsCaptionLanguageMapping+    , HlsCaptionLanguageMapping+    , hlsCaptionLanguageMapping+    , hclmLanguageCode+    , hclmLanguageDescription+    , hclmCaptionChannel++    -- * HlsEncryptionSettings+    , HlsEncryptionSettings+    , hlsEncryptionSettings+    , hesEncryptionMethod+    , hesConstantInitializationVector+    , hesType+    , hesStaticKeyProvider+    , hesSpekeKeyProvider+    , hesInitializationVectorInManifest++    -- * HlsGroupSettings+    , HlsGroupSettings+    , hlsGroupSettings+    , hgsDirectoryStructure+    , hgsSegmentControl+    , hgsDestination+    , hgsTimedMetadataId3Period+    , hgsMinSegmentLength+    , hgsProgramDateTime+    , hgsProgramDateTimePeriod+    , hgsCodecSpecification+    , hgsCaptionLanguageMappings+    , hgsBaseURL+    , hgsAdMarkers+    , hgsEncryption+    , hgsSegmentLength+    , hgsTimedMetadataId3Frame+    , hgsOutputSelection+    , hgsCaptionLanguageSetting+    , hgsSegmentsPerSubdirectory+    , hgsManifestDurationFormat+    , hgsClientCache+    , hgsTimestampDeltaMilliseconds+    , hgsStreamInfResolution+    , hgsManifestCompression++    -- * HlsSettings+    , HlsSettings+    , hlsSettings+    , hsAudioRenditionSets+    , hsIFrameOnlyManifest+    , hsAudioGroupId+    , hsSegmentModifier+    , hsAudioTrackType++    -- * Id3Insertion+    , Id3Insertion+    , id3Insertion+    , iiId3+    , iiTimecode++    -- * ImageInserter+    , ImageInserter+    , imageInserter+    , iiInsertableImages++    -- * Input+    , Input+    , input+    , iVideoSelector+    , iProgramNumber+    , iAudioSelectorGroups+    , iTimecodeSource+    , iAudioSelectors+    , iDeblockFilter+    , iInputClippings+    , iDenoiseFilter+    , iFilterStrength+    , iPsiControl+    , iCaptionSelectors+    , iFileInput+    , iFilterEnable++    -- * InputClipping+    , InputClipping+    , inputClipping+    , icEndTimecode+    , icStartTimecode++    -- * InputTemplate+    , InputTemplate+    , inputTemplate+    , itVideoSelector+    , itProgramNumber+    , itAudioSelectorGroups+    , itTimecodeSource+    , itAudioSelectors+    , itDeblockFilter+    , itInputClippings+    , itDenoiseFilter+    , itFilterStrength+    , itPsiControl+    , itCaptionSelectors+    , itFilterEnable++    -- * InsertableImage+    , InsertableImage+    , insertableImage+    , iiImageX+    , iiHeight+    , iiStartTime+    , iiFadeOut+    , iiWidth+    , iiOpacity+    , iiLayer+    , iiDuration+    , iiImageY+    , iiImageInserterInput+    , iiFadeIn++    -- * Job+    , Job+    , job+    , jStatus+    , jJobTemplate+    , jSettings+    , jARN+    , jCreatedAt+    , jQueue+    , jUserMetadata+    , jRole+    , jOutputGroupDetails+    , jErrorCode+    , jId+    , jTiming+    , jErrorMessage++    -- * JobSettings+    , JobSettings+    , jobSettings+    , jsInputs+    , jsTimedMetadataInsertion+    , jsNielsenConfiguration+    , jsAvailBlanking+    , jsTimecodeConfig+    , jsOutputGroups+    , jsAdAvailOffset++    -- * JobTemplate+    , JobTemplate+    , jobTemplate+    , jtLastUpdated+    , jtSettings+    , jtARN+    , jtCreatedAt+    , jtCategory+    , jtQueue+    , jtName+    , jtType+    , jtDescription++    -- * JobTemplateSettings+    , JobTemplateSettings+    , jobTemplateSettings+    , jtsInputs+    , jtsTimedMetadataInsertion+    , jtsNielsenConfiguration+    , jtsAvailBlanking+    , jtsTimecodeConfig+    , jtsOutputGroups+    , jtsAdAvailOffset++    -- * M2tsSettings+    , M2tsSettings+    , m2tsSettings+    , mPmtPid+    , mVideoPid+    , mBufferModel+    , mProgramNumber+    , mScte35Pid+    , mMinEbpInterval+    , mTransportStreamId+    , mMaxPcrInterval+    , mFragmentTime+    , mPrivateMetadataPid+    , mPmtInterval+    , mDvbSdtSettings+    , mNullPacketBitrate+    , mAudioBufferModel+    , mTimedMetadataPid+    , mAudioFramesPerPes+    , mPcrPid+    , mSegmentationMarkers+    , mDvbSubPids+    , mScte35Source+    , mPatInterval+    , mEsRateInPes+    , mBitrate+    , mAudioPids+    , mDvbTeletextPid+    , mNielsenId3+    , mSegmentationTime+    , mEbpAudioInterval+    , mDvbNitSettings+    , mPcrControl+    , mEbpPlacement+    , mRateMode+    , mSegmentationStyle+    , mDvbTdtSettings++    -- * M3u8Settings+    , M3u8Settings+    , m3u8Settings+    , msPmtPid+    , msVideoPid+    , msProgramNumber+    , msScte35Pid+    , msTransportStreamId+    , msPrivateMetadataPid+    , msPmtInterval+    , msTimedMetadataPid+    , msAudioFramesPerPes+    , msPcrPid+    , msTimedMetadata+    , msScte35Source+    , msPatInterval+    , msAudioPids+    , msNielsenId3+    , msPcrControl++    -- * MovSettings+    , MovSettings+    , movSettings+    , msReference+    , msCslgAtom+    , msMpeg2FourCCControl+    , msPaddingControl+    , msClapAtom++    -- * Mp2Settings+    , Mp2Settings+    , mp2Settings+    , mssChannels+    , mssSampleRate+    , mssBitrate++    -- * Mp4Settings+    , Mp4Settings+    , mp4Settings+    , mMoovPlacement+    , mFreeSpaceBox+    , mMp4MajorBrand+    , mCslgAtom++    -- * Mpeg2Settings+    , Mpeg2Settings+    , mpeg2Settings+    , msQualityTuningLevel+    , msTemporalAdaptiveQuantization+    , msSceneChangeDetect+    , msHrdBufferInitialFillPercentage+    , msSlowPal+    , msParNumerator+    , msGopSize+    , msNumberBFramesBetweenReferenceFrames+    , msGopSizeUnits+    , msHrdBufferSize+    , msRateControlMode+    , msTelecine+    , msIntraDcPrecision+    , msMinIInterval+    , msInterlaceMode+    , msParControl+    , msSoftness+    , msCodecProfile+    , msBitrate+    , msFramerateDenominator+    , msFramerateConversionAlgorithm+    , msCodecLevel+    , msFramerateControl+    , msAdaptiveQuantization+    , msFramerateNumerator+    , msMaxBitrate+    , msSyntax+    , msGopClosedCadence+    , msParDenominator+    , msSpatialAdaptiveQuantization++    -- * MsSmoothEncryptionSettings+    , MsSmoothEncryptionSettings+    , msSmoothEncryptionSettings+    , msesSpekeKeyProvider++    -- * MsSmoothGroupSettings+    , MsSmoothGroupSettings+    , msSmoothGroupSettings+    , msgsFragmentLength+    , msgsManifestEncoding+    , msgsDestination+    , msgsAudioDeduplication+    , msgsEncryption++    -- * NielsenConfiguration+    , NielsenConfiguration+    , nielsenConfiguration+    , ncBreakoutCode+    , ncDistributorId++    -- * NoiseReducer+    , NoiseReducer+    , noiseReducer+    , nrSpatialFilterSettings+    , nrFilterSettings+    , nrFilter++    -- * NoiseReducerFilterSettings+    , NoiseReducerFilterSettings+    , noiseReducerFilterSettings+    , nrfsStrength++    -- * NoiseReducerSpatialFilterSettings+    , NoiseReducerSpatialFilterSettings+    , noiseReducerSpatialFilterSettings+    , nrsfsStrength+    , nrsfsPostFilterSharpenStrength+    , nrsfsSpeed++    -- * Output+    , Output+    , output+    , oCaptionDescriptions+    , oExtension+    , oVideoDescription+    , oContainerSettings+    , oOutputSettings+    , oPreset+    , oNameModifier+    , oAudioDescriptions++    -- * OutputChannelMapping+    , OutputChannelMapping+    , outputChannelMapping+    , ocmInputChannels++    -- * OutputDetail+    , OutputDetail+    , outputDetail+    , odVideoDetails+    , odDurationInMs++    -- * OutputGroup+    , OutputGroup+    , outputGroup+    , ogOutputGroupSettings+    , ogOutputs+    , ogCustomName+    , ogName++    -- * OutputGroupDetail+    , OutputGroupDetail+    , outputGroupDetail+    , ogdOutputDetails++    -- * OutputGroupSettings+    , OutputGroupSettings+    , outputGroupSettings+    , ogsFileGroupSettings+    , ogsMsSmoothGroupSettings+    , ogsHlsGroupSettings+    , ogsType+    , ogsDashIsoGroupSettings++    -- * OutputSettings+    , OutputSettings+    , outputSettings+    , osHlsSettings++    -- * Preset+    , Preset+    , preset+    , pLastUpdated+    , pSettings+    , pARN+    , pCreatedAt+    , pCategory+    , pName+    , pType+    , pDescription++    -- * PresetSettings+    , PresetSettings+    , presetSettings+    , psCaptionDescriptions+    , psVideoDescription+    , psContainerSettings+    , psAudioDescriptions++    -- * ProresSettings+    , ProresSettings+    , proresSettings+    , psSlowPal+    , psParNumerator+    , psTelecine+    , psInterlaceMode+    , psParControl+    , psCodecProfile+    , psFramerateDenominator+    , psFramerateConversionAlgorithm+    , psFramerateControl+    , psFramerateNumerator+    , psParDenominator++    -- * Queue+    , Queue+    , queue+    , qStatus+    , qLastUpdated+    , qARN+    , qCreatedAt+    , qName+    , qType+    , qDescription++    -- * Rectangle+    , Rectangle+    , rectangle+    , rHeight+    , rWidth+    , rX+    , rY++    -- * RemixSettings+    , RemixSettings+    , remixSettings+    , rsChannelMapping+    , rsChannelsIn+    , rsChannelsOut++    -- * SccDestinationSettings+    , SccDestinationSettings+    , sccDestinationSettings+    , sdsFramerate++    -- * SpekeKeyProvider+    , SpekeKeyProvider+    , spekeKeyProvider+    , skpResourceId+    , skpURL+    , skpSystemIds++    -- * StaticKeyProvider+    , StaticKeyProvider+    , staticKeyProvider+    , sStaticKeyValue+    , sURL+    , sKeyFormat+    , sKeyFormatVersions++    -- * TeletextDestinationSettings+    , TeletextDestinationSettings+    , teletextDestinationSettings+    , tdsPageNumber++    -- * TeletextSourceSettings+    , TeletextSourceSettings+    , teletextSourceSettings+    , tssPageNumber++    -- * TimecodeBurnin+    , TimecodeBurnin+    , timecodeBurnin+    , tbPrefix+    , tbFontSize+    , tbPosition++    -- * TimecodeConfig+    , TimecodeConfig+    , timecodeConfig+    , tcStart+    , tcTimestampOffset+    , tcAnchor+    , tcSource++    -- * TimedMetadataInsertion+    , TimedMetadataInsertion+    , timedMetadataInsertion+    , tmiId3Insertions++    -- * Timing+    , Timing+    , timing+    , tStartTime+    , tFinishTime+    , tSubmitTime++    -- * TtmlDestinationSettings+    , TtmlDestinationSettings+    , ttmlDestinationSettings+    , tdsStylePassthrough++    -- * VideoCodecSettings+    , VideoCodecSettings+    , videoCodecSettings+    , vcsFrameCaptureSettings+    , vcsCodec+    , vcsH265Settings+    , vcsProresSettings+    , vcsH264Settings+    , vcsMpeg2Settings++    -- * VideoDescription+    , VideoDescription+    , videoDescription+    , vdTimecodeInsertion+    , vdHeight+    , vdAfdSignaling+    , vdSharpness+    , vdCrop+    , vdWidth+    , vdScalingBehavior+    , vdRespondToAfd+    , vdDropFrameTimecode+    , vdAntiAlias+    , vdFixedAfd+    , vdColorMetadata+    , vdCodecSettings+    , vdVideoPreprocessors+    , vdPosition++    -- * VideoDetail+    , VideoDetail+    , videoDetail+    , vdHeightInPx+    , vdWidthInPx++    -- * VideoPreprocessor+    , VideoPreprocessor+    , videoPreprocessor+    , vpTimecodeBurnin+    , vpColorCorrector+    , vpDeinterlacer+    , vpNoiseReducer+    , vpImageInserter++    -- * VideoSelector+    , VideoSelector+    , videoSelector+    , vsProgramNumber+    , vsColorSpaceUsage+    , vsHdr10Metadata+    , vsPid+    , vsColorSpace++    -- * WavSettings+    , WavSettings+    , wavSettings+    , wsBitDepth+    , wsChannels+    , wsSampleRate+    ) where++import Network.AWS.Lens+import Network.AWS.MediaConvert.Types.Product+import Network.AWS.MediaConvert.Types.Sum+import Network.AWS.Prelude+import Network.AWS.Sign.V4++-- | API version @2017-08-29@ of the Amazon Elemental MediaConvert SDK configuration.+mediaConvert :: Service+mediaConvert =+  Service+    { _svcAbbrev = "MediaConvert"+    , _svcSigner = v4+    , _svcPrefix = "mediaconvert"+    , _svcVersion = "2017-08-29"+    , _svcEndpoint = defaultEndpoint mediaConvert+    , _svcTimeout = Just 70+    , _svcCheck = statusSuccess+    , _svcError = parseJSONError "MediaConvert"+    , _svcRetry = retry+    }+  where+    retry =+      Exponential+        { _retryBase = 5.0e-2+        , _retryGrowth = 2+        , _retryAttempts = 5+        , _retryCheck = check+        }+    check e+      | has (hasCode "ThrottledException" . hasStatus 400) e =+        Just "throttled_exception"+      | has (hasStatus 429) e = Just "too_many_requests"+      | has (hasCode "ThrottlingException" . hasStatus 400) e =+        Just "throttling_exception"+      | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"+      | has (hasStatus 504) e = Just "gateway_timeout"+      | has (hasCode "RequestThrottledException" . hasStatus 400) e =+        Just "request_throttled_exception"+      | has (hasStatus 502) e = Just "bad_gateway"+      | has (hasStatus 503) e = Just "service_unavailable"+      | has (hasStatus 500) e = Just "general_server_error"+      | has (hasStatus 509) e = Just "limit_exceeded"+      | otherwise = Nothing+++-- | The service could not complete your request because there is a conflict with the current state of the resource.+_ConflictException :: AsError a => Getting (First ServiceError) a ServiceError+_ConflictException =+  _MatchServiceError mediaConvert "ConflictException" . hasStatus 409+++-- | You don't have permissions for this action with the credentials you sent.+_ForbiddenException :: AsError a => Getting (First ServiceError) a ServiceError+_ForbiddenException =+  _MatchServiceError mediaConvert "ForbiddenException" . hasStatus 403+++-- | The resource you requested does not exist.+_NotFoundException :: AsError a => Getting (First ServiceError) a ServiceError+_NotFoundException =+  _MatchServiceError mediaConvert "NotFoundException" . hasStatus 404+++-- | Too many requests have been sent in too short of a time. The service limits the rate at which it will accept requests.+_TooManyRequestsException :: AsError a => Getting (First ServiceError) a ServiceError+_TooManyRequestsException =+  _MatchServiceError mediaConvert "TooManyRequestsException" . hasStatus 429+++-- | The service encountered an unexpected condition and cannot fulfill your request.+_InternalServerErrorException :: AsError a => Getting (First ServiceError) a ServiceError+_InternalServerErrorException =+  _MatchServiceError mediaConvert "InternalServerErrorException" . hasStatus 500+++-- | The service can't process your request because of a problem in the request. Please check your request form and syntax.+_BadRequestException :: AsError a => Getting (First ServiceError) a ServiceError+_BadRequestException =+  _MatchServiceError mediaConvert "BadRequestException" . hasStatus 400+
+ gen/Network/AWS/MediaConvert/Types/Product.hs view
@@ -0,0 +1,8766 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.MediaConvert.Types.Product+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.MediaConvert.Types.Product where++import Network.AWS.Lens+import Network.AWS.MediaConvert.Types.Sum+import Network.AWS.Prelude++-- | Required when you set (Codec) under (AudioDescriptions)>(CodecSettings) to the value AAC.+--+-- /See:/ 'aacSettings' smart constructor.+data AacSettings = AacSettings'+  { _assAudioDescriptionBroadcasterMix :: !(Maybe AacAudioDescriptionBroadcasterMix)+  , _assRawFormat :: !(Maybe AacRawFormat)+  , _assCodingMode :: !(Maybe AacCodingMode)+  , _assRateControlMode :: !(Maybe AacRateControlMode)+  , _assSampleRate :: !(Maybe Int)+  , _assSpecification :: !(Maybe AacSpecification)+  , _assCodecProfile :: !(Maybe AacCodecProfile)+  , _assBitrate :: !(Maybe Int)+  , _assVbrQuality :: !(Maybe AacVbrQuality)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AacSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'assAudioDescriptionBroadcasterMix' - Undocumented member.+--+-- * 'assRawFormat' - Undocumented member.+--+-- * 'assCodingMode' - Undocumented member.+--+-- * 'assRateControlMode' - Undocumented member.+--+-- * 'assSampleRate' - Sample rate in Hz. Valid values depend on rate control mode and profile.+--+-- * 'assSpecification' - Undocumented member.+--+-- * 'assCodecProfile' - Undocumented member.+--+-- * 'assBitrate' - Average bitrate in bits/second. Valid values depend on rate control mode and profile.+--+-- * 'assVbrQuality' - Undocumented member.+aacSettings+    :: AacSettings+aacSettings =+  AacSettings'+    { _assAudioDescriptionBroadcasterMix = Nothing+    , _assRawFormat = Nothing+    , _assCodingMode = Nothing+    , _assRateControlMode = Nothing+    , _assSampleRate = Nothing+    , _assSpecification = Nothing+    , _assCodecProfile = Nothing+    , _assBitrate = Nothing+    , _assVbrQuality = Nothing+    }+++-- | Undocumented member.+assAudioDescriptionBroadcasterMix :: Lens' AacSettings (Maybe AacAudioDescriptionBroadcasterMix)+assAudioDescriptionBroadcasterMix = lens _assAudioDescriptionBroadcasterMix (\ s a -> s{_assAudioDescriptionBroadcasterMix = a})++-- | Undocumented member.+assRawFormat :: Lens' AacSettings (Maybe AacRawFormat)+assRawFormat = lens _assRawFormat (\ s a -> s{_assRawFormat = a})++-- | Undocumented member.+assCodingMode :: Lens' AacSettings (Maybe AacCodingMode)+assCodingMode = lens _assCodingMode (\ s a -> s{_assCodingMode = a})++-- | Undocumented member.+assRateControlMode :: Lens' AacSettings (Maybe AacRateControlMode)+assRateControlMode = lens _assRateControlMode (\ s a -> s{_assRateControlMode = a})++-- | Sample rate in Hz. Valid values depend on rate control mode and profile.+assSampleRate :: Lens' AacSettings (Maybe Int)+assSampleRate = lens _assSampleRate (\ s a -> s{_assSampleRate = a})++-- | Undocumented member.+assSpecification :: Lens' AacSettings (Maybe AacSpecification)+assSpecification = lens _assSpecification (\ s a -> s{_assSpecification = a})++-- | Undocumented member.+assCodecProfile :: Lens' AacSettings (Maybe AacCodecProfile)+assCodecProfile = lens _assCodecProfile (\ s a -> s{_assCodecProfile = a})++-- | Average bitrate in bits/second. Valid values depend on rate control mode and profile.+assBitrate :: Lens' AacSettings (Maybe Int)+assBitrate = lens _assBitrate (\ s a -> s{_assBitrate = a})++-- | Undocumented member.+assVbrQuality :: Lens' AacSettings (Maybe AacVbrQuality)+assVbrQuality = lens _assVbrQuality (\ s a -> s{_assVbrQuality = a})++instance FromJSON AacSettings where+        parseJSON+          = withObject "AacSettings"+              (\ x ->+                 AacSettings' <$>+                   (x .:? "audioDescriptionBroadcasterMix") <*>+                     (x .:? "rawFormat")+                     <*> (x .:? "codingMode")+                     <*> (x .:? "rateControlMode")+                     <*> (x .:? "sampleRate")+                     <*> (x .:? "specification")+                     <*> (x .:? "codecProfile")+                     <*> (x .:? "bitrate")+                     <*> (x .:? "vbrQuality"))++instance Hashable AacSettings where++instance NFData AacSettings where++instance ToJSON AacSettings where+        toJSON AacSettings'{..}+          = object+              (catMaybes+                 [("audioDescriptionBroadcasterMix" .=) <$>+                    _assAudioDescriptionBroadcasterMix,+                  ("rawFormat" .=) <$> _assRawFormat,+                  ("codingMode" .=) <$> _assCodingMode,+                  ("rateControlMode" .=) <$> _assRateControlMode,+                  ("sampleRate" .=) <$> _assSampleRate,+                  ("specification" .=) <$> _assSpecification,+                  ("codecProfile" .=) <$> _assCodecProfile,+                  ("bitrate" .=) <$> _assBitrate,+                  ("vbrQuality" .=) <$> _assVbrQuality])++-- | Required when you set (Codec) under (AudioDescriptions)>(CodecSettings) to the value AC3.+--+-- /See:/ 'ac3Settings' smart constructor.+data Ac3Settings = Ac3Settings'+  { _aLfeFilter :: !(Maybe Ac3LfeFilter)+  , _aMetadataControl :: !(Maybe Ac3MetadataControl)+  , _aBitstreamMode :: !(Maybe Ac3BitstreamMode)+  , _aCodingMode :: !(Maybe Ac3CodingMode)+  , _aSampleRate :: !(Maybe Int)+  , _aDynamicRangeCompressionProfile :: !(Maybe Ac3DynamicRangeCompressionProfile)+  , _aBitrate :: !(Maybe Int)+  , _aDialnorm :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Ac3Settings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aLfeFilter' - Undocumented member.+--+-- * 'aMetadataControl' - Undocumented member.+--+-- * 'aBitstreamMode' - Undocumented member.+--+-- * 'aCodingMode' - Undocumented member.+--+-- * 'aSampleRate' - Sample rate in hz. Sample rate is always 48000.+--+-- * 'aDynamicRangeCompressionProfile' - Undocumented member.+--+-- * 'aBitrate' - Average bitrate in bits/second. Valid bitrates depend on the coding mode.+--+-- * 'aDialnorm' - Sets the dialnorm for the output. If blank and input audio is Dolby Digital, dialnorm will be passed through.+ac3Settings+    :: Ac3Settings+ac3Settings =+  Ac3Settings'+    { _aLfeFilter = Nothing+    , _aMetadataControl = Nothing+    , _aBitstreamMode = Nothing+    , _aCodingMode = Nothing+    , _aSampleRate = Nothing+    , _aDynamicRangeCompressionProfile = Nothing+    , _aBitrate = Nothing+    , _aDialnorm = Nothing+    }+++-- | Undocumented member.+aLfeFilter :: Lens' Ac3Settings (Maybe Ac3LfeFilter)+aLfeFilter = lens _aLfeFilter (\ s a -> s{_aLfeFilter = a})++-- | Undocumented member.+aMetadataControl :: Lens' Ac3Settings (Maybe Ac3MetadataControl)+aMetadataControl = lens _aMetadataControl (\ s a -> s{_aMetadataControl = a})++-- | Undocumented member.+aBitstreamMode :: Lens' Ac3Settings (Maybe Ac3BitstreamMode)+aBitstreamMode = lens _aBitstreamMode (\ s a -> s{_aBitstreamMode = a})++-- | Undocumented member.+aCodingMode :: Lens' Ac3Settings (Maybe Ac3CodingMode)+aCodingMode = lens _aCodingMode (\ s a -> s{_aCodingMode = a})++-- | Sample rate in hz. Sample rate is always 48000.+aSampleRate :: Lens' Ac3Settings (Maybe Int)+aSampleRate = lens _aSampleRate (\ s a -> s{_aSampleRate = a})++-- | Undocumented member.+aDynamicRangeCompressionProfile :: Lens' Ac3Settings (Maybe Ac3DynamicRangeCompressionProfile)+aDynamicRangeCompressionProfile = lens _aDynamicRangeCompressionProfile (\ s a -> s{_aDynamicRangeCompressionProfile = a})++-- | Average bitrate in bits/second. Valid bitrates depend on the coding mode.+aBitrate :: Lens' Ac3Settings (Maybe Int)+aBitrate = lens _aBitrate (\ s a -> s{_aBitrate = a})++-- | Sets the dialnorm for the output. If blank and input audio is Dolby Digital, dialnorm will be passed through.+aDialnorm :: Lens' Ac3Settings (Maybe Int)+aDialnorm = lens _aDialnorm (\ s a -> s{_aDialnorm = a})++instance FromJSON Ac3Settings where+        parseJSON+          = withObject "Ac3Settings"+              (\ x ->+                 Ac3Settings' <$>+                   (x .:? "lfeFilter") <*> (x .:? "metadataControl") <*>+                     (x .:? "bitstreamMode")+                     <*> (x .:? "codingMode")+                     <*> (x .:? "sampleRate")+                     <*> (x .:? "dynamicRangeCompressionProfile")+                     <*> (x .:? "bitrate")+                     <*> (x .:? "dialnorm"))++instance Hashable Ac3Settings where++instance NFData Ac3Settings where++instance ToJSON Ac3Settings where+        toJSON Ac3Settings'{..}+          = object+              (catMaybes+                 [("lfeFilter" .=) <$> _aLfeFilter,+                  ("metadataControl" .=) <$> _aMetadataControl,+                  ("bitstreamMode" .=) <$> _aBitstreamMode,+                  ("codingMode" .=) <$> _aCodingMode,+                  ("sampleRate" .=) <$> _aSampleRate,+                  ("dynamicRangeCompressionProfile" .=) <$>+                    _aDynamicRangeCompressionProfile,+                  ("bitrate" .=) <$> _aBitrate,+                  ("dialnorm" .=) <$> _aDialnorm])++-- | Required when you set (Codec) under (AudioDescriptions)>(CodecSettings) to the value AIFF.+--+-- /See:/ 'aiffSettings' smart constructor.+data AiffSettings = AiffSettings'+  { _asBitDepth   :: !(Maybe Int)+  , _asChannels   :: !(Maybe Int)+  , _asSampleRate :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AiffSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'asBitDepth' - Specify Bit depth (BitDepth), in bits per sample, to choose the encoding quality for this audio track.+--+-- * 'asChannels' - Set Channels to specify the number of channels in this output audio track. Choosing Mono in the console will give you 1 output channel; choosing Stereo will give you 2. In the API, valid values are 1 and 2.+--+-- * 'asSampleRate' - Sample rate in hz.+aiffSettings+    :: AiffSettings+aiffSettings =+  AiffSettings'+    {_asBitDepth = Nothing, _asChannels = Nothing, _asSampleRate = Nothing}+++-- | Specify Bit depth (BitDepth), in bits per sample, to choose the encoding quality for this audio track.+asBitDepth :: Lens' AiffSettings (Maybe Int)+asBitDepth = lens _asBitDepth (\ s a -> s{_asBitDepth = a})++-- | Set Channels to specify the number of channels in this output audio track. Choosing Mono in the console will give you 1 output channel; choosing Stereo will give you 2. In the API, valid values are 1 and 2.+asChannels :: Lens' AiffSettings (Maybe Int)+asChannels = lens _asChannels (\ s a -> s{_asChannels = a})++-- | Sample rate in hz.+asSampleRate :: Lens' AiffSettings (Maybe Int)+asSampleRate = lens _asSampleRate (\ s a -> s{_asSampleRate = a})++instance FromJSON AiffSettings where+        parseJSON+          = withObject "AiffSettings"+              (\ x ->+                 AiffSettings' <$>+                   (x .:? "bitDepth") <*> (x .:? "channels") <*>+                     (x .:? "sampleRate"))++instance Hashable AiffSettings where++instance NFData AiffSettings where++instance ToJSON AiffSettings where+        toJSON AiffSettings'{..}+          = object+              (catMaybes+                 [("bitDepth" .=) <$> _asBitDepth,+                  ("channels" .=) <$> _asChannels,+                  ("sampleRate" .=) <$> _asSampleRate])++-- | Settings for ancillary captions source.+--+-- /See:/ 'ancillarySourceSettings' smart constructor.+newtype AncillarySourceSettings = AncillarySourceSettings'+  { _assSourceAncillaryChannelNumber :: Maybe Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AncillarySourceSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'assSourceAncillaryChannelNumber' - Specifies the 608 channel number in the ancillary data track from which to extract captions. Unused for passthrough.+ancillarySourceSettings+    :: AncillarySourceSettings+ancillarySourceSettings =+  AncillarySourceSettings' {_assSourceAncillaryChannelNumber = Nothing}+++-- | Specifies the 608 channel number in the ancillary data track from which to extract captions. Unused for passthrough.+assSourceAncillaryChannelNumber :: Lens' AncillarySourceSettings (Maybe Int)+assSourceAncillaryChannelNumber = lens _assSourceAncillaryChannelNumber (\ s a -> s{_assSourceAncillaryChannelNumber = a})++instance FromJSON AncillarySourceSettings where+        parseJSON+          = withObject "AncillarySourceSettings"+              (\ x ->+                 AncillarySourceSettings' <$>+                   (x .:? "sourceAncillaryChannelNumber"))++instance Hashable AncillarySourceSettings where++instance NFData AncillarySourceSettings where++instance ToJSON AncillarySourceSettings where+        toJSON AncillarySourceSettings'{..}+          = object+              (catMaybes+                 [("sourceAncillaryChannelNumber" .=) <$>+                    _assSourceAncillaryChannelNumber])++-- | Audio codec settings (CodecSettings) under (AudioDescriptions) contains the group of settings related to audio encoding. The settings in this group vary depending on the value you choose for Audio codec (Codec). For each codec enum you choose, define the corresponding settings object. The following lists the codec enum, settings object pairs. * AAC, AacSettings * MP2, Mp2Settings * WAV, WavSettings * AIFF, AiffSettings * AC3, Ac3Settings * EAC3, Eac3Settings+--+-- /See:/ 'audioCodecSettings' smart constructor.+data AudioCodecSettings = AudioCodecSettings'+  { _acsAiffSettings :: !(Maybe AiffSettings)+  , _acsCodec        :: !(Maybe AudioCodec)+  , _acsAc3Settings  :: !(Maybe Ac3Settings)+  , _acsMp2Settings  :: !(Maybe Mp2Settings)+  , _acsWavSettings  :: !(Maybe WavSettings)+  , _acsAacSettings  :: !(Maybe AacSettings)+  , _acsEac3Settings :: !(Maybe Eac3Settings)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AudioCodecSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'acsAiffSettings' - Undocumented member.+--+-- * 'acsCodec' - Undocumented member.+--+-- * 'acsAc3Settings' - Undocumented member.+--+-- * 'acsMp2Settings' - Undocumented member.+--+-- * 'acsWavSettings' - Undocumented member.+--+-- * 'acsAacSettings' - Undocumented member.+--+-- * 'acsEac3Settings' - Undocumented member.+audioCodecSettings+    :: AudioCodecSettings+audioCodecSettings =+  AudioCodecSettings'+    { _acsAiffSettings = Nothing+    , _acsCodec = Nothing+    , _acsAc3Settings = Nothing+    , _acsMp2Settings = Nothing+    , _acsWavSettings = Nothing+    , _acsAacSettings = Nothing+    , _acsEac3Settings = Nothing+    }+++-- | Undocumented member.+acsAiffSettings :: Lens' AudioCodecSettings (Maybe AiffSettings)+acsAiffSettings = lens _acsAiffSettings (\ s a -> s{_acsAiffSettings = a})++-- | Undocumented member.+acsCodec :: Lens' AudioCodecSettings (Maybe AudioCodec)+acsCodec = lens _acsCodec (\ s a -> s{_acsCodec = a})++-- | Undocumented member.+acsAc3Settings :: Lens' AudioCodecSettings (Maybe Ac3Settings)+acsAc3Settings = lens _acsAc3Settings (\ s a -> s{_acsAc3Settings = a})++-- | Undocumented member.+acsMp2Settings :: Lens' AudioCodecSettings (Maybe Mp2Settings)+acsMp2Settings = lens _acsMp2Settings (\ s a -> s{_acsMp2Settings = a})++-- | Undocumented member.+acsWavSettings :: Lens' AudioCodecSettings (Maybe WavSettings)+acsWavSettings = lens _acsWavSettings (\ s a -> s{_acsWavSettings = a})++-- | Undocumented member.+acsAacSettings :: Lens' AudioCodecSettings (Maybe AacSettings)+acsAacSettings = lens _acsAacSettings (\ s a -> s{_acsAacSettings = a})++-- | Undocumented member.+acsEac3Settings :: Lens' AudioCodecSettings (Maybe Eac3Settings)+acsEac3Settings = lens _acsEac3Settings (\ s a -> s{_acsEac3Settings = a})++instance FromJSON AudioCodecSettings where+        parseJSON+          = withObject "AudioCodecSettings"+              (\ x ->+                 AudioCodecSettings' <$>+                   (x .:? "aiffSettings") <*> (x .:? "codec") <*>+                     (x .:? "ac3Settings")+                     <*> (x .:? "mp2Settings")+                     <*> (x .:? "wavSettings")+                     <*> (x .:? "aacSettings")+                     <*> (x .:? "eac3Settings"))++instance Hashable AudioCodecSettings where++instance NFData AudioCodecSettings where++instance ToJSON AudioCodecSettings where+        toJSON AudioCodecSettings'{..}+          = object+              (catMaybes+                 [("aiffSettings" .=) <$> _acsAiffSettings,+                  ("codec" .=) <$> _acsCodec,+                  ("ac3Settings" .=) <$> _acsAc3Settings,+                  ("mp2Settings" .=) <$> _acsMp2Settings,+                  ("wavSettings" .=) <$> _acsWavSettings,+                  ("aacSettings" .=) <$> _acsAacSettings,+                  ("eac3Settings" .=) <$> _acsEac3Settings])++-- | Description of audio output+--+-- /See:/ 'audioDescription' smart constructor.+data AudioDescription = AudioDescription'+  { _adAudioSourceName            :: !(Maybe Text)+  , _adLanguageCode               :: !(Maybe LanguageCode)+  , _adAudioType                  :: !(Maybe Int)+  , _adAudioNormalizationSettings :: !(Maybe AudioNormalizationSettings)+  , _adLanguageCodeControl        :: !(Maybe AudioLanguageCodeControl)+  , _adCodecSettings              :: !(Maybe AudioCodecSettings)+  , _adStreamName                 :: !(Maybe Text)+  , _adRemixSettings              :: !(Maybe RemixSettings)+  , _adAudioTypeControl           :: !(Maybe AudioTypeControl)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AudioDescription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'adAudioSourceName' - Specifies which audio data to use from each input. In the simplest case, specify an "Audio Selector":#inputs-audio_selector by name based on its order within each input. For example if you specify "Audio Selector 3", then the third audio selector will be used from each input. If an input does not have an "Audio Selector 3", then the audio selector marked as "default" in that input will be used. If there is no audio selector marked as "default", silence will be inserted for the duration of that input. Alternatively, an "Audio Selector Group":#inputs-audio_selector_group name may be specified, with similar default/silence behavior. If no audio_source_name is specified, then "Audio Selector 1" will be chosen automatically.+--+-- * 'adLanguageCode' - Indicates the language of the audio output track. The ISO 639 language specified in the 'Language Code' drop down will be used when 'Follow Input Language Code' is not selected or when 'Follow Input Language Code' is selected but there is no ISO 639 language code specified by the input.+--+-- * 'adAudioType' - Applies only if Follow Input Audio Type is unchecked (false). A number between 0 and 255. The following are defined in ISO-IEC 13818-1: 0 = Undefined, 1 = Clean Effects, 2 = Hearing Impaired, 3 = Visually Impaired Commentary, 4-255 = Reserved.+--+-- * 'adAudioNormalizationSettings' - Undocumented member.+--+-- * 'adLanguageCodeControl' - Undocumented member.+--+-- * 'adCodecSettings' - Undocumented member.+--+-- * 'adStreamName' - Used for MS Smooth and Apple HLS outputs. Indicates the name displayed by the player (eg. English, or Director Commentary). Alphanumeric characters, spaces, and underscore are legal.+--+-- * 'adRemixSettings' - Advanced audio remixing settings.+--+-- * 'adAudioTypeControl' - Undocumented member.+audioDescription+    :: AudioDescription+audioDescription =+  AudioDescription'+    { _adAudioSourceName = Nothing+    , _adLanguageCode = Nothing+    , _adAudioType = Nothing+    , _adAudioNormalizationSettings = Nothing+    , _adLanguageCodeControl = Nothing+    , _adCodecSettings = Nothing+    , _adStreamName = Nothing+    , _adRemixSettings = Nothing+    , _adAudioTypeControl = Nothing+    }+++-- | Specifies which audio data to use from each input. In the simplest case, specify an "Audio Selector":#inputs-audio_selector by name based on its order within each input. For example if you specify "Audio Selector 3", then the third audio selector will be used from each input. If an input does not have an "Audio Selector 3", then the audio selector marked as "default" in that input will be used. If there is no audio selector marked as "default", silence will be inserted for the duration of that input. Alternatively, an "Audio Selector Group":#inputs-audio_selector_group name may be specified, with similar default/silence behavior. If no audio_source_name is specified, then "Audio Selector 1" will be chosen automatically.+adAudioSourceName :: Lens' AudioDescription (Maybe Text)+adAudioSourceName = lens _adAudioSourceName (\ s a -> s{_adAudioSourceName = a})++-- | Indicates the language of the audio output track. The ISO 639 language specified in the 'Language Code' drop down will be used when 'Follow Input Language Code' is not selected or when 'Follow Input Language Code' is selected but there is no ISO 639 language code specified by the input.+adLanguageCode :: Lens' AudioDescription (Maybe LanguageCode)+adLanguageCode = lens _adLanguageCode (\ s a -> s{_adLanguageCode = a})++-- | Applies only if Follow Input Audio Type is unchecked (false). A number between 0 and 255. The following are defined in ISO-IEC 13818-1: 0 = Undefined, 1 = Clean Effects, 2 = Hearing Impaired, 3 = Visually Impaired Commentary, 4-255 = Reserved.+adAudioType :: Lens' AudioDescription (Maybe Int)+adAudioType = lens _adAudioType (\ s a -> s{_adAudioType = a})++-- | Undocumented member.+adAudioNormalizationSettings :: Lens' AudioDescription (Maybe AudioNormalizationSettings)+adAudioNormalizationSettings = lens _adAudioNormalizationSettings (\ s a -> s{_adAudioNormalizationSettings = a})++-- | Undocumented member.+adLanguageCodeControl :: Lens' AudioDescription (Maybe AudioLanguageCodeControl)+adLanguageCodeControl = lens _adLanguageCodeControl (\ s a -> s{_adLanguageCodeControl = a})++-- | Undocumented member.+adCodecSettings :: Lens' AudioDescription (Maybe AudioCodecSettings)+adCodecSettings = lens _adCodecSettings (\ s a -> s{_adCodecSettings = a})++-- | Used for MS Smooth and Apple HLS outputs. Indicates the name displayed by the player (eg. English, or Director Commentary). Alphanumeric characters, spaces, and underscore are legal.+adStreamName :: Lens' AudioDescription (Maybe Text)+adStreamName = lens _adStreamName (\ s a -> s{_adStreamName = a})++-- | Advanced audio remixing settings.+adRemixSettings :: Lens' AudioDescription (Maybe RemixSettings)+adRemixSettings = lens _adRemixSettings (\ s a -> s{_adRemixSettings = a})++-- | Undocumented member.+adAudioTypeControl :: Lens' AudioDescription (Maybe AudioTypeControl)+adAudioTypeControl = lens _adAudioTypeControl (\ s a -> s{_adAudioTypeControl = a})++instance FromJSON AudioDescription where+        parseJSON+          = withObject "AudioDescription"+              (\ x ->+                 AudioDescription' <$>+                   (x .:? "audioSourceName") <*> (x .:? "languageCode")+                     <*> (x .:? "audioType")+                     <*> (x .:? "audioNormalizationSettings")+                     <*> (x .:? "languageCodeControl")+                     <*> (x .:? "codecSettings")+                     <*> (x .:? "streamName")+                     <*> (x .:? "remixSettings")+                     <*> (x .:? "audioTypeControl"))++instance Hashable AudioDescription where++instance NFData AudioDescription where++instance ToJSON AudioDescription where+        toJSON AudioDescription'{..}+          = object+              (catMaybes+                 [("audioSourceName" .=) <$> _adAudioSourceName,+                  ("languageCode" .=) <$> _adLanguageCode,+                  ("audioType" .=) <$> _adAudioType,+                  ("audioNormalizationSettings" .=) <$>+                    _adAudioNormalizationSettings,+                  ("languageCodeControl" .=) <$>+                    _adLanguageCodeControl,+                  ("codecSettings" .=) <$> _adCodecSettings,+                  ("streamName" .=) <$> _adStreamName,+                  ("remixSettings" .=) <$> _adRemixSettings,+                  ("audioTypeControl" .=) <$> _adAudioTypeControl])++-- | Advanced audio normalization settings.+--+-- /See:/ 'audioNormalizationSettings' smart constructor.+data AudioNormalizationSettings = AudioNormalizationSettings'+  { _ansAlgorithmControl    :: !(Maybe AudioNormalizationAlgorithmControl)+  , _ansTargetLkfs          :: !(Maybe Double)+  , _ansPeakCalculation     :: !(Maybe AudioNormalizationPeakCalculation)+  , _ansCorrectionGateLevel :: !(Maybe Int)+  , _ansAlgorithm           :: !(Maybe AudioNormalizationAlgorithm)+  , _ansLoudnessLogging     :: !(Maybe AudioNormalizationLoudnessLogging)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AudioNormalizationSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ansAlgorithmControl' - Undocumented member.+--+-- * 'ansTargetLkfs' - Target LKFS(loudness) to adjust volume to. If no value is entered, a default value will be used according to the chosen algorithm. The CALM Act (1770-1) recommends a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends a target of -23 LKFS.+--+-- * 'ansPeakCalculation' - Undocumented member.+--+-- * 'ansCorrectionGateLevel' - Content measuring above this level will be corrected to the target level. Content measuring below this level will not be corrected. Gating only applies when not using real_time_correction.+--+-- * 'ansAlgorithm' - Undocumented member.+--+-- * 'ansLoudnessLogging' - Undocumented member.+audioNormalizationSettings+    :: AudioNormalizationSettings+audioNormalizationSettings =+  AudioNormalizationSettings'+    { _ansAlgorithmControl = Nothing+    , _ansTargetLkfs = Nothing+    , _ansPeakCalculation = Nothing+    , _ansCorrectionGateLevel = Nothing+    , _ansAlgorithm = Nothing+    , _ansLoudnessLogging = Nothing+    }+++-- | Undocumented member.+ansAlgorithmControl :: Lens' AudioNormalizationSettings (Maybe AudioNormalizationAlgorithmControl)+ansAlgorithmControl = lens _ansAlgorithmControl (\ s a -> s{_ansAlgorithmControl = a})++-- | Target LKFS(loudness) to adjust volume to. If no value is entered, a default value will be used according to the chosen algorithm. The CALM Act (1770-1) recommends a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends a target of -23 LKFS.+ansTargetLkfs :: Lens' AudioNormalizationSettings (Maybe Double)+ansTargetLkfs = lens _ansTargetLkfs (\ s a -> s{_ansTargetLkfs = a})++-- | Undocumented member.+ansPeakCalculation :: Lens' AudioNormalizationSettings (Maybe AudioNormalizationPeakCalculation)+ansPeakCalculation = lens _ansPeakCalculation (\ s a -> s{_ansPeakCalculation = a})++-- | Content measuring above this level will be corrected to the target level. Content measuring below this level will not be corrected. Gating only applies when not using real_time_correction.+ansCorrectionGateLevel :: Lens' AudioNormalizationSettings (Maybe Int)+ansCorrectionGateLevel = lens _ansCorrectionGateLevel (\ s a -> s{_ansCorrectionGateLevel = a})++-- | Undocumented member.+ansAlgorithm :: Lens' AudioNormalizationSettings (Maybe AudioNormalizationAlgorithm)+ansAlgorithm = lens _ansAlgorithm (\ s a -> s{_ansAlgorithm = a})++-- | Undocumented member.+ansLoudnessLogging :: Lens' AudioNormalizationSettings (Maybe AudioNormalizationLoudnessLogging)+ansLoudnessLogging = lens _ansLoudnessLogging (\ s a -> s{_ansLoudnessLogging = a})++instance FromJSON AudioNormalizationSettings where+        parseJSON+          = withObject "AudioNormalizationSettings"+              (\ x ->+                 AudioNormalizationSettings' <$>+                   (x .:? "algorithmControl") <*> (x .:? "targetLkfs")+                     <*> (x .:? "peakCalculation")+                     <*> (x .:? "correctionGateLevel")+                     <*> (x .:? "algorithm")+                     <*> (x .:? "loudnessLogging"))++instance Hashable AudioNormalizationSettings where++instance NFData AudioNormalizationSettings where++instance ToJSON AudioNormalizationSettings where+        toJSON AudioNormalizationSettings'{..}+          = object+              (catMaybes+                 [("algorithmControl" .=) <$> _ansAlgorithmControl,+                  ("targetLkfs" .=) <$> _ansTargetLkfs,+                  ("peakCalculation" .=) <$> _ansPeakCalculation,+                  ("correctionGateLevel" .=) <$>+                    _ansCorrectionGateLevel,+                  ("algorithm" .=) <$> _ansAlgorithm,+                  ("loudnessLogging" .=) <$> _ansLoudnessLogging])++-- | Selector for Audio+--+-- /See:/ 'audioSelector' smart constructor.+data AudioSelector = AudioSelector'+  { _asTracks                 :: !(Maybe [Int])+  , _asProgramSelection       :: !(Maybe Int)+  , _asLanguageCode           :: !(Maybe LanguageCode)+  , _asOffset                 :: !(Maybe Int)+  , _asDefaultSelection       :: !(Maybe AudioDefaultSelection)+  , _asPids                   :: !(Maybe [Int])+  , _asSelectorType           :: !(Maybe AudioSelectorType)+  , _asExternalAudioFileInput :: !(Maybe Text)+  , _asRemixSettings          :: !(Maybe RemixSettings)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AudioSelector' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'asTracks' - Identify the channel to include in this selector by entering the 1-based track index.  To combine several tracks, enter a comma-separated list, e.g. "1,2,3" for tracks 1-3.+--+-- * 'asProgramSelection' - Applies only when input streams contain Dolby E. Enter the program ID (according to the metadata in the audio) of the Dolby E program to extract from the specified track. One program extracted per audio selector. To select multiple programs, create multiple selectors with the same Track and different Program numbers. "All channels" means to ignore the program IDs and include all the channels in this selector; useful if metadata is known to be incorrect.+--+-- * 'asLanguageCode' - Selects a specific language code from within an audio source.+--+-- * 'asOffset' - Specifies a time delta in milliseconds to offset the audio from the input video.+--+-- * 'asDefaultSelection' - Undocumented member.+--+-- * 'asPids' - Selects a specific PID from within an audio source (e.g. 257 selects PID 0x101).+--+-- * 'asSelectorType' - Undocumented member.+--+-- * 'asExternalAudioFileInput' - Specifies audio data from an external file source.+--+-- * 'asRemixSettings' - Advanced audio remixing settings.+audioSelector+    :: AudioSelector+audioSelector =+  AudioSelector'+    { _asTracks = Nothing+    , _asProgramSelection = Nothing+    , _asLanguageCode = Nothing+    , _asOffset = Nothing+    , _asDefaultSelection = Nothing+    , _asPids = Nothing+    , _asSelectorType = Nothing+    , _asExternalAudioFileInput = Nothing+    , _asRemixSettings = Nothing+    }+++-- | Identify the channel to include in this selector by entering the 1-based track index.  To combine several tracks, enter a comma-separated list, e.g. "1,2,3" for tracks 1-3.+asTracks :: Lens' AudioSelector [Int]+asTracks = lens _asTracks (\ s a -> s{_asTracks = a}) . _Default . _Coerce++-- | Applies only when input streams contain Dolby E. Enter the program ID (according to the metadata in the audio) of the Dolby E program to extract from the specified track. One program extracted per audio selector. To select multiple programs, create multiple selectors with the same Track and different Program numbers. "All channels" means to ignore the program IDs and include all the channels in this selector; useful if metadata is known to be incorrect.+asProgramSelection :: Lens' AudioSelector (Maybe Int)+asProgramSelection = lens _asProgramSelection (\ s a -> s{_asProgramSelection = a})++-- | Selects a specific language code from within an audio source.+asLanguageCode :: Lens' AudioSelector (Maybe LanguageCode)+asLanguageCode = lens _asLanguageCode (\ s a -> s{_asLanguageCode = a})++-- | Specifies a time delta in milliseconds to offset the audio from the input video.+asOffset :: Lens' AudioSelector (Maybe Int)+asOffset = lens _asOffset (\ s a -> s{_asOffset = a})++-- | Undocumented member.+asDefaultSelection :: Lens' AudioSelector (Maybe AudioDefaultSelection)+asDefaultSelection = lens _asDefaultSelection (\ s a -> s{_asDefaultSelection = a})++-- | Selects a specific PID from within an audio source (e.g. 257 selects PID 0x101).+asPids :: Lens' AudioSelector [Int]+asPids = lens _asPids (\ s a -> s{_asPids = a}) . _Default . _Coerce++-- | Undocumented member.+asSelectorType :: Lens' AudioSelector (Maybe AudioSelectorType)+asSelectorType = lens _asSelectorType (\ s a -> s{_asSelectorType = a})++-- | Specifies audio data from an external file source.+asExternalAudioFileInput :: Lens' AudioSelector (Maybe Text)+asExternalAudioFileInput = lens _asExternalAudioFileInput (\ s a -> s{_asExternalAudioFileInput = a})++-- | Advanced audio remixing settings.+asRemixSettings :: Lens' AudioSelector (Maybe RemixSettings)+asRemixSettings = lens _asRemixSettings (\ s a -> s{_asRemixSettings = a})++instance FromJSON AudioSelector where+        parseJSON+          = withObject "AudioSelector"+              (\ x ->+                 AudioSelector' <$>+                   (x .:? "tracks" .!= mempty) <*>+                     (x .:? "programSelection")+                     <*> (x .:? "languageCode")+                     <*> (x .:? "offset")+                     <*> (x .:? "defaultSelection")+                     <*> (x .:? "pids" .!= mempty)+                     <*> (x .:? "selectorType")+                     <*> (x .:? "externalAudioFileInput")+                     <*> (x .:? "remixSettings"))++instance Hashable AudioSelector where++instance NFData AudioSelector where++instance ToJSON AudioSelector where+        toJSON AudioSelector'{..}+          = object+              (catMaybes+                 [("tracks" .=) <$> _asTracks,+                  ("programSelection" .=) <$> _asProgramSelection,+                  ("languageCode" .=) <$> _asLanguageCode,+                  ("offset" .=) <$> _asOffset,+                  ("defaultSelection" .=) <$> _asDefaultSelection,+                  ("pids" .=) <$> _asPids,+                  ("selectorType" .=) <$> _asSelectorType,+                  ("externalAudioFileInput" .=) <$>+                    _asExternalAudioFileInput,+                  ("remixSettings" .=) <$> _asRemixSettings])++-- | Group of Audio Selectors+--+-- /See:/ 'audioSelectorGroup' smart constructor.+newtype AudioSelectorGroup = AudioSelectorGroup'+  { _asgAudioSelectorNames :: Maybe [Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AudioSelectorGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'asgAudioSelectorNames' - Name of an "Audio Selector":#inputs-audio_selector within the same input to include in the group.  Audio selector names are standardized, based on their order within the input (e.g. "Audio Selector 1").  The audio_selector_name parameter can be repeated to add any number of audio selectors to the group.+audioSelectorGroup+    :: AudioSelectorGroup+audioSelectorGroup = AudioSelectorGroup' {_asgAudioSelectorNames = Nothing}+++-- | Name of an "Audio Selector":#inputs-audio_selector within the same input to include in the group.  Audio selector names are standardized, based on their order within the input (e.g. "Audio Selector 1").  The audio_selector_name parameter can be repeated to add any number of audio selectors to the group.+asgAudioSelectorNames :: Lens' AudioSelectorGroup [Text]+asgAudioSelectorNames = lens _asgAudioSelectorNames (\ s a -> s{_asgAudioSelectorNames = a}) . _Default . _Coerce++instance FromJSON AudioSelectorGroup where+        parseJSON+          = withObject "AudioSelectorGroup"+              (\ x ->+                 AudioSelectorGroup' <$>+                   (x .:? "audioSelectorNames" .!= mempty))++instance Hashable AudioSelectorGroup where++instance NFData AudioSelectorGroup where++instance ToJSON AudioSelectorGroup where+        toJSON AudioSelectorGroup'{..}+          = object+              (catMaybes+                 [("audioSelectorNames" .=) <$>+                    _asgAudioSelectorNames])++-- | Settings for Avail Blanking+--+-- /See:/ 'availBlanking' smart constructor.+newtype AvailBlanking = AvailBlanking'+  { _abAvailBlankingImage :: Maybe Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AvailBlanking' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'abAvailBlankingImage' - Blanking image to be used. Leave empty for solid black. Only bmp and png images are supported.+availBlanking+    :: AvailBlanking+availBlanking = AvailBlanking' {_abAvailBlankingImage = Nothing}+++-- | Blanking image to be used. Leave empty for solid black. Only bmp and png images are supported.+abAvailBlankingImage :: Lens' AvailBlanking (Maybe Text)+abAvailBlankingImage = lens _abAvailBlankingImage (\ s a -> s{_abAvailBlankingImage = a})++instance FromJSON AvailBlanking where+        parseJSON+          = withObject "AvailBlanking"+              (\ x ->+                 AvailBlanking' <$> (x .:? "availBlankingImage"))++instance Hashable AvailBlanking where++instance NFData AvailBlanking where++instance ToJSON AvailBlanking where+        toJSON AvailBlanking'{..}+          = object+              (catMaybes+                 [("availBlankingImage" .=) <$>+                    _abAvailBlankingImage])++-- | Burn-In Destination Settings.+--+-- /See:/ 'burninDestinationSettings' smart constructor.+data BurninDestinationSettings = BurninDestinationSettings'+  { _bdsBackgroundOpacity :: !(Maybe Int)+  , _bdsFontOpacity       :: !(Maybe Int)+  , _bdsShadowYOffset     :: !(Maybe Int)+  , _bdsFontResolution    :: !(Maybe Int)+  , _bdsYPosition         :: !(Maybe Int)+  , _bdsBackgroundColor   :: !(Maybe BurninSubtitleBackgroundColor)+  , _bdsShadowXOffset     :: !(Maybe Int)+  , _bdsFontSize          :: !(Maybe Int)+  , _bdsXPosition         :: !(Maybe Int)+  , _bdsTeletextSpacing   :: !(Maybe BurninSubtitleTeletextSpacing)+  , _bdsAlignment         :: !(Maybe BurninSubtitleAlignment)+  , _bdsShadowOpacity     :: !(Maybe Int)+  , _bdsOutlineColor      :: !(Maybe BurninSubtitleOutlineColor)+  , _bdsOutlineSize       :: !(Maybe Int)+  , _bdsShadowColor       :: !(Maybe BurninSubtitleShadowColor)+  , _bdsFontColor         :: !(Maybe BurninSubtitleFontColor)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'BurninDestinationSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bdsBackgroundOpacity' - Specifies the opacity of the background rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.+--+-- * 'bdsFontOpacity' - Specifies the opacity of the burned-in captions. 255 is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.+--+-- * 'bdsShadowYOffset' - Specifies the vertical offset of the shadow relative to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All burn-in and DVB-Sub font settings must match.+--+-- * 'bdsFontResolution' - Font resolution in DPI (dots per inch); default is 96 dpi. All burn-in and DVB-Sub font settings must match.+--+-- * 'bdsYPosition' - Specifies the vertical position of the caption relative to the top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the top of the output. If no explicit y_position is provided, the caption will be positioned towards the bottom of the output. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.+--+-- * 'bdsBackgroundColor' - Undocumented member.+--+-- * 'bdsShadowXOffset' - Specifies the horizontal offset of the shadow relative to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All burn-in and DVB-Sub font settings must match.+--+-- * 'bdsFontSize' - A positive integer indicates the exact font size in points. Set to 0 for automatic font size selection. All burn-in and DVB-Sub font settings must match.+--+-- * 'bdsXPosition' - Specifies the horizontal position of the caption relative to the left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the left of the output. If no explicit x_position is provided, the horizontal caption position will be determined by the alignment parameter. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.+--+-- * 'bdsTeletextSpacing' - Undocumented member.+--+-- * 'bdsAlignment' - Undocumented member.+--+-- * 'bdsShadowOpacity' - Specifies the opacity of the shadow. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.+--+-- * 'bdsOutlineColor' - Undocumented member.+--+-- * 'bdsOutlineSize' - Specifies font outline size in pixels. This option is not valid for source captions that are either 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.+--+-- * 'bdsShadowColor' - Undocumented member.+--+-- * 'bdsFontColor' - Undocumented member.+burninDestinationSettings+    :: BurninDestinationSettings+burninDestinationSettings =+  BurninDestinationSettings'+    { _bdsBackgroundOpacity = Nothing+    , _bdsFontOpacity = Nothing+    , _bdsShadowYOffset = Nothing+    , _bdsFontResolution = Nothing+    , _bdsYPosition = Nothing+    , _bdsBackgroundColor = Nothing+    , _bdsShadowXOffset = Nothing+    , _bdsFontSize = Nothing+    , _bdsXPosition = Nothing+    , _bdsTeletextSpacing = Nothing+    , _bdsAlignment = Nothing+    , _bdsShadowOpacity = Nothing+    , _bdsOutlineColor = Nothing+    , _bdsOutlineSize = Nothing+    , _bdsShadowColor = Nothing+    , _bdsFontColor = Nothing+    }+++-- | Specifies the opacity of the background rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.+bdsBackgroundOpacity :: Lens' BurninDestinationSettings (Maybe Int)+bdsBackgroundOpacity = lens _bdsBackgroundOpacity (\ s a -> s{_bdsBackgroundOpacity = a})++-- | Specifies the opacity of the burned-in captions. 255 is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.+bdsFontOpacity :: Lens' BurninDestinationSettings (Maybe Int)+bdsFontOpacity = lens _bdsFontOpacity (\ s a -> s{_bdsFontOpacity = a})++-- | Specifies the vertical offset of the shadow relative to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All burn-in and DVB-Sub font settings must match.+bdsShadowYOffset :: Lens' BurninDestinationSettings (Maybe Int)+bdsShadowYOffset = lens _bdsShadowYOffset (\ s a -> s{_bdsShadowYOffset = a})++-- | Font resolution in DPI (dots per inch); default is 96 dpi. All burn-in and DVB-Sub font settings must match.+bdsFontResolution :: Lens' BurninDestinationSettings (Maybe Int)+bdsFontResolution = lens _bdsFontResolution (\ s a -> s{_bdsFontResolution = a})++-- | Specifies the vertical position of the caption relative to the top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the top of the output. If no explicit y_position is provided, the caption will be positioned towards the bottom of the output. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.+bdsYPosition :: Lens' BurninDestinationSettings (Maybe Int)+bdsYPosition = lens _bdsYPosition (\ s a -> s{_bdsYPosition = a})++-- | Undocumented member.+bdsBackgroundColor :: Lens' BurninDestinationSettings (Maybe BurninSubtitleBackgroundColor)+bdsBackgroundColor = lens _bdsBackgroundColor (\ s a -> s{_bdsBackgroundColor = a})++-- | Specifies the horizontal offset of the shadow relative to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All burn-in and DVB-Sub font settings must match.+bdsShadowXOffset :: Lens' BurninDestinationSettings (Maybe Int)+bdsShadowXOffset = lens _bdsShadowXOffset (\ s a -> s{_bdsShadowXOffset = a})++-- | A positive integer indicates the exact font size in points. Set to 0 for automatic font size selection. All burn-in and DVB-Sub font settings must match.+bdsFontSize :: Lens' BurninDestinationSettings (Maybe Int)+bdsFontSize = lens _bdsFontSize (\ s a -> s{_bdsFontSize = a})++-- | Specifies the horizontal position of the caption relative to the left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the left of the output. If no explicit x_position is provided, the horizontal caption position will be determined by the alignment parameter. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.+bdsXPosition :: Lens' BurninDestinationSettings (Maybe Int)+bdsXPosition = lens _bdsXPosition (\ s a -> s{_bdsXPosition = a})++-- | Undocumented member.+bdsTeletextSpacing :: Lens' BurninDestinationSettings (Maybe BurninSubtitleTeletextSpacing)+bdsTeletextSpacing = lens _bdsTeletextSpacing (\ s a -> s{_bdsTeletextSpacing = a})++-- | Undocumented member.+bdsAlignment :: Lens' BurninDestinationSettings (Maybe BurninSubtitleAlignment)+bdsAlignment = lens _bdsAlignment (\ s a -> s{_bdsAlignment = a})++-- | Specifies the opacity of the shadow. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.+bdsShadowOpacity :: Lens' BurninDestinationSettings (Maybe Int)+bdsShadowOpacity = lens _bdsShadowOpacity (\ s a -> s{_bdsShadowOpacity = a})++-- | Undocumented member.+bdsOutlineColor :: Lens' BurninDestinationSettings (Maybe BurninSubtitleOutlineColor)+bdsOutlineColor = lens _bdsOutlineColor (\ s a -> s{_bdsOutlineColor = a})++-- | Specifies font outline size in pixels. This option is not valid for source captions that are either 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.+bdsOutlineSize :: Lens' BurninDestinationSettings (Maybe Int)+bdsOutlineSize = lens _bdsOutlineSize (\ s a -> s{_bdsOutlineSize = a})++-- | Undocumented member.+bdsShadowColor :: Lens' BurninDestinationSettings (Maybe BurninSubtitleShadowColor)+bdsShadowColor = lens _bdsShadowColor (\ s a -> s{_bdsShadowColor = a})++-- | Undocumented member.+bdsFontColor :: Lens' BurninDestinationSettings (Maybe BurninSubtitleFontColor)+bdsFontColor = lens _bdsFontColor (\ s a -> s{_bdsFontColor = a})++instance FromJSON BurninDestinationSettings where+        parseJSON+          = withObject "BurninDestinationSettings"+              (\ x ->+                 BurninDestinationSettings' <$>+                   (x .:? "backgroundOpacity") <*> (x .:? "fontOpacity")+                     <*> (x .:? "shadowYOffset")+                     <*> (x .:? "fontResolution")+                     <*> (x .:? "yPosition")+                     <*> (x .:? "backgroundColor")+                     <*> (x .:? "shadowXOffset")+                     <*> (x .:? "fontSize")+                     <*> (x .:? "xPosition")+                     <*> (x .:? "teletextSpacing")+                     <*> (x .:? "alignment")+                     <*> (x .:? "shadowOpacity")+                     <*> (x .:? "outlineColor")+                     <*> (x .:? "outlineSize")+                     <*> (x .:? "shadowColor")+                     <*> (x .:? "fontColor"))++instance Hashable BurninDestinationSettings where++instance NFData BurninDestinationSettings where++instance ToJSON BurninDestinationSettings where+        toJSON BurninDestinationSettings'{..}+          = object+              (catMaybes+                 [("backgroundOpacity" .=) <$> _bdsBackgroundOpacity,+                  ("fontOpacity" .=) <$> _bdsFontOpacity,+                  ("shadowYOffset" .=) <$> _bdsShadowYOffset,+                  ("fontResolution" .=) <$> _bdsFontResolution,+                  ("yPosition" .=) <$> _bdsYPosition,+                  ("backgroundColor" .=) <$> _bdsBackgroundColor,+                  ("shadowXOffset" .=) <$> _bdsShadowXOffset,+                  ("fontSize" .=) <$> _bdsFontSize,+                  ("xPosition" .=) <$> _bdsXPosition,+                  ("teletextSpacing" .=) <$> _bdsTeletextSpacing,+                  ("alignment" .=) <$> _bdsAlignment,+                  ("shadowOpacity" .=) <$> _bdsShadowOpacity,+                  ("outlineColor" .=) <$> _bdsOutlineColor,+                  ("outlineSize" .=) <$> _bdsOutlineSize,+                  ("shadowColor" .=) <$> _bdsShadowColor,+                  ("fontColor" .=) <$> _bdsFontColor])++-- | Description of Caption output+--+-- /See:/ 'captionDescription' smart constructor.+data CaptionDescription = CaptionDescription'+  { _cdCaptionSelectorName :: !(Maybe Text)+  , _cdLanguageCode        :: !(Maybe LanguageCode)+  , _cdDestinationSettings :: !(Maybe CaptionDestinationSettings)+  , _cdLanguageDescription :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CaptionDescription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdCaptionSelectorName' - <N>", which denotes that the Nth Caption Selector will be used from each input.+--+-- * 'cdLanguageCode' - Indicates the language of the caption output track.+--+-- * 'cdDestinationSettings' - Undocumented member.+--+-- * 'cdLanguageDescription' - Human readable information to indicate captions available for players (eg. English, or Spanish). Alphanumeric characters, spaces, and underscore are legal.+captionDescription+    :: CaptionDescription+captionDescription =+  CaptionDescription'+    { _cdCaptionSelectorName = Nothing+    , _cdLanguageCode = Nothing+    , _cdDestinationSettings = Nothing+    , _cdLanguageDescription = Nothing+    }+++-- | <N>", which denotes that the Nth Caption Selector will be used from each input.+cdCaptionSelectorName :: Lens' CaptionDescription (Maybe Text)+cdCaptionSelectorName = lens _cdCaptionSelectorName (\ s a -> s{_cdCaptionSelectorName = a})++-- | Indicates the language of the caption output track.+cdLanguageCode :: Lens' CaptionDescription (Maybe LanguageCode)+cdLanguageCode = lens _cdLanguageCode (\ s a -> s{_cdLanguageCode = a})++-- | Undocumented member.+cdDestinationSettings :: Lens' CaptionDescription (Maybe CaptionDestinationSettings)+cdDestinationSettings = lens _cdDestinationSettings (\ s a -> s{_cdDestinationSettings = a})++-- | Human readable information to indicate captions available for players (eg. English, or Spanish). Alphanumeric characters, spaces, and underscore are legal.+cdLanguageDescription :: Lens' CaptionDescription (Maybe Text)+cdLanguageDescription = lens _cdLanguageDescription (\ s a -> s{_cdLanguageDescription = a})++instance FromJSON CaptionDescription where+        parseJSON+          = withObject "CaptionDescription"+              (\ x ->+                 CaptionDescription' <$>+                   (x .:? "captionSelectorName") <*>+                     (x .:? "languageCode")+                     <*> (x .:? "destinationSettings")+                     <*> (x .:? "languageDescription"))++instance Hashable CaptionDescription where++instance NFData CaptionDescription where++instance ToJSON CaptionDescription where+        toJSON CaptionDescription'{..}+          = object+              (catMaybes+                 [("captionSelectorName" .=) <$>+                    _cdCaptionSelectorName,+                  ("languageCode" .=) <$> _cdLanguageCode,+                  ("destinationSettings" .=) <$>+                    _cdDestinationSettings,+                  ("languageDescription" .=) <$>+                    _cdLanguageDescription])++-- | Caption Description for preset+--+-- /See:/ 'captionDescriptionPreset' smart constructor.+data CaptionDescriptionPreset = CaptionDescriptionPreset'+  { _cdpLanguageCode        :: !(Maybe LanguageCode)+  , _cdpDestinationSettings :: !(Maybe CaptionDestinationSettings)+  , _cdpLanguageDescription :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CaptionDescriptionPreset' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdpLanguageCode' - Indicates the language of the caption output track.+--+-- * 'cdpDestinationSettings' - Undocumented member.+--+-- * 'cdpLanguageDescription' - Human readable information to indicate captions available for players (eg. English, or Spanish). Alphanumeric characters, spaces, and underscore are legal.+captionDescriptionPreset+    :: CaptionDescriptionPreset+captionDescriptionPreset =+  CaptionDescriptionPreset'+    { _cdpLanguageCode = Nothing+    , _cdpDestinationSettings = Nothing+    , _cdpLanguageDescription = Nothing+    }+++-- | Indicates the language of the caption output track.+cdpLanguageCode :: Lens' CaptionDescriptionPreset (Maybe LanguageCode)+cdpLanguageCode = lens _cdpLanguageCode (\ s a -> s{_cdpLanguageCode = a})++-- | Undocumented member.+cdpDestinationSettings :: Lens' CaptionDescriptionPreset (Maybe CaptionDestinationSettings)+cdpDestinationSettings = lens _cdpDestinationSettings (\ s a -> s{_cdpDestinationSettings = a})++-- | Human readable information to indicate captions available for players (eg. English, or Spanish). Alphanumeric characters, spaces, and underscore are legal.+cdpLanguageDescription :: Lens' CaptionDescriptionPreset (Maybe Text)+cdpLanguageDescription = lens _cdpLanguageDescription (\ s a -> s{_cdpLanguageDescription = a})++instance FromJSON CaptionDescriptionPreset where+        parseJSON+          = withObject "CaptionDescriptionPreset"+              (\ x ->+                 CaptionDescriptionPreset' <$>+                   (x .:? "languageCode") <*>+                     (x .:? "destinationSettings")+                     <*> (x .:? "languageDescription"))++instance Hashable CaptionDescriptionPreset where++instance NFData CaptionDescriptionPreset where++instance ToJSON CaptionDescriptionPreset where+        toJSON CaptionDescriptionPreset'{..}+          = object+              (catMaybes+                 [("languageCode" .=) <$> _cdpLanguageCode,+                  ("destinationSettings" .=) <$>+                    _cdpDestinationSettings,+                  ("languageDescription" .=) <$>+                    _cdpLanguageDescription])++-- | Specific settings required by destination type. Note that burnin_destination_settings are not available if the source of the caption data is Embedded or Teletext.+--+-- /See:/ 'captionDestinationSettings' smart constructor.+data CaptionDestinationSettings = CaptionDestinationSettings'+  { _cdsTeletextDestinationSettings :: !(Maybe TeletextDestinationSettings)+  , _cdsDvbSubDestinationSettings   :: !(Maybe DvbSubDestinationSettings)+  , _cdsTtmlDestinationSettings     :: !(Maybe TtmlDestinationSettings)+  , _cdsDestinationType             :: !(Maybe CaptionDestinationType)+  , _cdsSccDestinationSettings      :: !(Maybe SccDestinationSettings)+  , _cdsBurninDestinationSettings   :: !(Maybe BurninDestinationSettings)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CaptionDestinationSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdsTeletextDestinationSettings' - Undocumented member.+--+-- * 'cdsDvbSubDestinationSettings' - Undocumented member.+--+-- * 'cdsTtmlDestinationSettings' - Undocumented member.+--+-- * 'cdsDestinationType' - Undocumented member.+--+-- * 'cdsSccDestinationSettings' - Undocumented member.+--+-- * 'cdsBurninDestinationSettings' - Undocumented member.+captionDestinationSettings+    :: CaptionDestinationSettings+captionDestinationSettings =+  CaptionDestinationSettings'+    { _cdsTeletextDestinationSettings = Nothing+    , _cdsDvbSubDestinationSettings = Nothing+    , _cdsTtmlDestinationSettings = Nothing+    , _cdsDestinationType = Nothing+    , _cdsSccDestinationSettings = Nothing+    , _cdsBurninDestinationSettings = Nothing+    }+++-- | Undocumented member.+cdsTeletextDestinationSettings :: Lens' CaptionDestinationSettings (Maybe TeletextDestinationSettings)+cdsTeletextDestinationSettings = lens _cdsTeletextDestinationSettings (\ s a -> s{_cdsTeletextDestinationSettings = a})++-- | Undocumented member.+cdsDvbSubDestinationSettings :: Lens' CaptionDestinationSettings (Maybe DvbSubDestinationSettings)+cdsDvbSubDestinationSettings = lens _cdsDvbSubDestinationSettings (\ s a -> s{_cdsDvbSubDestinationSettings = a})++-- | Undocumented member.+cdsTtmlDestinationSettings :: Lens' CaptionDestinationSettings (Maybe TtmlDestinationSettings)+cdsTtmlDestinationSettings = lens _cdsTtmlDestinationSettings (\ s a -> s{_cdsTtmlDestinationSettings = a})++-- | Undocumented member.+cdsDestinationType :: Lens' CaptionDestinationSettings (Maybe CaptionDestinationType)+cdsDestinationType = lens _cdsDestinationType (\ s a -> s{_cdsDestinationType = a})++-- | Undocumented member.+cdsSccDestinationSettings :: Lens' CaptionDestinationSettings (Maybe SccDestinationSettings)+cdsSccDestinationSettings = lens _cdsSccDestinationSettings (\ s a -> s{_cdsSccDestinationSettings = a})++-- | Undocumented member.+cdsBurninDestinationSettings :: Lens' CaptionDestinationSettings (Maybe BurninDestinationSettings)+cdsBurninDestinationSettings = lens _cdsBurninDestinationSettings (\ s a -> s{_cdsBurninDestinationSettings = a})++instance FromJSON CaptionDestinationSettings where+        parseJSON+          = withObject "CaptionDestinationSettings"+              (\ x ->+                 CaptionDestinationSettings' <$>+                   (x .:? "teletextDestinationSettings") <*>+                     (x .:? "dvbSubDestinationSettings")+                     <*> (x .:? "ttmlDestinationSettings")+                     <*> (x .:? "destinationType")+                     <*> (x .:? "sccDestinationSettings")+                     <*> (x .:? "burninDestinationSettings"))++instance Hashable CaptionDestinationSettings where++instance NFData CaptionDestinationSettings where++instance ToJSON CaptionDestinationSettings where+        toJSON CaptionDestinationSettings'{..}+          = object+              (catMaybes+                 [("teletextDestinationSettings" .=) <$>+                    _cdsTeletextDestinationSettings,+                  ("dvbSubDestinationSettings" .=) <$>+                    _cdsDvbSubDestinationSettings,+                  ("ttmlDestinationSettings" .=) <$>+                    _cdsTtmlDestinationSettings,+                  ("destinationType" .=) <$> _cdsDestinationType,+                  ("sccDestinationSettings" .=) <$>+                    _cdsSccDestinationSettings,+                  ("burninDestinationSettings" .=) <$>+                    _cdsBurninDestinationSettings])++-- | Caption inputs to be mapped to caption outputs.+--+-- /See:/ 'captionSelector' smart constructor.+data CaptionSelector = CaptionSelector'+  { _csLanguageCode   :: !(Maybe LanguageCode)+  , _csSourceSettings :: !(Maybe CaptionSourceSettings)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CaptionSelector' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csLanguageCode' - The specific language to extract from source. If input is SCTE-27, complete this field and/or PID to select the caption language to extract. If input is DVB-Sub and output is Burn-in or SMPTE-TT, complete this field and/or PID to select the caption language to extract. If input is DVB-Sub that is being passed through, omit this field (and PID field); there is no way to extract a specific language with pass-through captions.+--+-- * 'csSourceSettings' - Undocumented member.+captionSelector+    :: CaptionSelector+captionSelector =+  CaptionSelector' {_csLanguageCode = Nothing, _csSourceSettings = Nothing}+++-- | The specific language to extract from source. If input is SCTE-27, complete this field and/or PID to select the caption language to extract. If input is DVB-Sub and output is Burn-in or SMPTE-TT, complete this field and/or PID to select the caption language to extract. If input is DVB-Sub that is being passed through, omit this field (and PID field); there is no way to extract a specific language with pass-through captions.+csLanguageCode :: Lens' CaptionSelector (Maybe LanguageCode)+csLanguageCode = lens _csLanguageCode (\ s a -> s{_csLanguageCode = a})++-- | Undocumented member.+csSourceSettings :: Lens' CaptionSelector (Maybe CaptionSourceSettings)+csSourceSettings = lens _csSourceSettings (\ s a -> s{_csSourceSettings = a})++instance FromJSON CaptionSelector where+        parseJSON+          = withObject "CaptionSelector"+              (\ x ->+                 CaptionSelector' <$>+                   (x .:? "languageCode") <*> (x .:? "sourceSettings"))++instance Hashable CaptionSelector where++instance NFData CaptionSelector where++instance ToJSON CaptionSelector where+        toJSON CaptionSelector'{..}+          = object+              (catMaybes+                 [("languageCode" .=) <$> _csLanguageCode,+                  ("sourceSettings" .=) <$> _csSourceSettings])++-- | Source settings (SourceSettings) contains the group of settings for captions in the input.+--+-- /See:/ 'captionSourceSettings' smart constructor.+data CaptionSourceSettings = CaptionSourceSettings'+  { _cssTeletextSourceSettings  :: !(Maybe TeletextSourceSettings)+  , _cssSourceType              :: !(Maybe CaptionSourceType)+  , _cssFileSourceSettings      :: !(Maybe FileSourceSettings)+  , _cssDvbSubSourceSettings    :: !(Maybe DvbSubSourceSettings)+  , _cssAncillarySourceSettings :: !(Maybe AncillarySourceSettings)+  , _cssEmbeddedSourceSettings  :: !(Maybe EmbeddedSourceSettings)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CaptionSourceSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cssTeletextSourceSettings' - Undocumented member.+--+-- * 'cssSourceType' - Undocumented member.+--+-- * 'cssFileSourceSettings' - Undocumented member.+--+-- * 'cssDvbSubSourceSettings' - Undocumented member.+--+-- * 'cssAncillarySourceSettings' - Undocumented member.+--+-- * 'cssEmbeddedSourceSettings' - Undocumented member.+captionSourceSettings+    :: CaptionSourceSettings+captionSourceSettings =+  CaptionSourceSettings'+    { _cssTeletextSourceSettings = Nothing+    , _cssSourceType = Nothing+    , _cssFileSourceSettings = Nothing+    , _cssDvbSubSourceSettings = Nothing+    , _cssAncillarySourceSettings = Nothing+    , _cssEmbeddedSourceSettings = Nothing+    }+++-- | Undocumented member.+cssTeletextSourceSettings :: Lens' CaptionSourceSettings (Maybe TeletextSourceSettings)+cssTeletextSourceSettings = lens _cssTeletextSourceSettings (\ s a -> s{_cssTeletextSourceSettings = a})++-- | Undocumented member.+cssSourceType :: Lens' CaptionSourceSettings (Maybe CaptionSourceType)+cssSourceType = lens _cssSourceType (\ s a -> s{_cssSourceType = a})++-- | Undocumented member.+cssFileSourceSettings :: Lens' CaptionSourceSettings (Maybe FileSourceSettings)+cssFileSourceSettings = lens _cssFileSourceSettings (\ s a -> s{_cssFileSourceSettings = a})++-- | Undocumented member.+cssDvbSubSourceSettings :: Lens' CaptionSourceSettings (Maybe DvbSubSourceSettings)+cssDvbSubSourceSettings = lens _cssDvbSubSourceSettings (\ s a -> s{_cssDvbSubSourceSettings = a})++-- | Undocumented member.+cssAncillarySourceSettings :: Lens' CaptionSourceSettings (Maybe AncillarySourceSettings)+cssAncillarySourceSettings = lens _cssAncillarySourceSettings (\ s a -> s{_cssAncillarySourceSettings = a})++-- | Undocumented member.+cssEmbeddedSourceSettings :: Lens' CaptionSourceSettings (Maybe EmbeddedSourceSettings)+cssEmbeddedSourceSettings = lens _cssEmbeddedSourceSettings (\ s a -> s{_cssEmbeddedSourceSettings = a})++instance FromJSON CaptionSourceSettings where+        parseJSON+          = withObject "CaptionSourceSettings"+              (\ x ->+                 CaptionSourceSettings' <$>+                   (x .:? "teletextSourceSettings") <*>+                     (x .:? "sourceType")+                     <*> (x .:? "fileSourceSettings")+                     <*> (x .:? "dvbSubSourceSettings")+                     <*> (x .:? "ancillarySourceSettings")+                     <*> (x .:? "embeddedSourceSettings"))++instance Hashable CaptionSourceSettings where++instance NFData CaptionSourceSettings where++instance ToJSON CaptionSourceSettings where+        toJSON CaptionSourceSettings'{..}+          = object+              (catMaybes+                 [("teletextSourceSettings" .=) <$>+                    _cssTeletextSourceSettings,+                  ("sourceType" .=) <$> _cssSourceType,+                  ("fileSourceSettings" .=) <$> _cssFileSourceSettings,+                  ("dvbSubSourceSettings" .=) <$>+                    _cssDvbSubSourceSettings,+                  ("ancillarySourceSettings" .=) <$>+                    _cssAncillarySourceSettings,+                  ("embeddedSourceSettings" .=) <$>+                    _cssEmbeddedSourceSettings])++-- | Channel mapping (ChannelMapping) contains the group of fields that hold the remixing value for each channel. Units are in dB. Acceptable values are within the range from -60 (mute) through 6. A setting of 0 passes the input channel unchanged to the output channel (no attenuation or amplification).+--+-- /See:/ 'channelMapping' smart constructor.+newtype ChannelMapping = ChannelMapping'+  { _cmOutputChannels :: Maybe [OutputChannelMapping]+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ChannelMapping' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cmOutputChannels' - List of output channels+channelMapping+    :: ChannelMapping+channelMapping = ChannelMapping' {_cmOutputChannels = Nothing}+++-- | List of output channels+cmOutputChannels :: Lens' ChannelMapping [OutputChannelMapping]+cmOutputChannels = lens _cmOutputChannels (\ s a -> s{_cmOutputChannels = a}) . _Default . _Coerce++instance FromJSON ChannelMapping where+        parseJSON+          = withObject "ChannelMapping"+              (\ x ->+                 ChannelMapping' <$>+                   (x .:? "outputChannels" .!= mempty))++instance Hashable ChannelMapping where++instance NFData ChannelMapping where++instance ToJSON ChannelMapping where+        toJSON ChannelMapping'{..}+          = object+              (catMaybes+                 [("outputChannels" .=) <$> _cmOutputChannels])++-- | Settings for color correction.+--+-- /See:/ 'colorCorrector' smart constructor.+data ColorCorrector = ColorCorrector'+  { _ccSaturation           :: !(Maybe Int)+  , _ccHue                  :: !(Maybe Int)+  , _ccColorSpaceConversion :: !(Maybe ColorSpaceConversion)+  , _ccHdr10Metadata        :: !(Maybe Hdr10Metadata)+  , _ccContrast             :: !(Maybe Int)+  , _ccBrightness           :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ColorCorrector' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ccSaturation' - Saturation level.+--+-- * 'ccHue' - Hue in degrees.+--+-- * 'ccColorSpaceConversion' - Undocumented member.+--+-- * 'ccHdr10Metadata' - Undocumented member.+--+-- * 'ccContrast' - Contrast level.+--+-- * 'ccBrightness' - Brightness level.+colorCorrector+    :: ColorCorrector+colorCorrector =+  ColorCorrector'+    { _ccSaturation = Nothing+    , _ccHue = Nothing+    , _ccColorSpaceConversion = Nothing+    , _ccHdr10Metadata = Nothing+    , _ccContrast = Nothing+    , _ccBrightness = Nothing+    }+++-- | Saturation level.+ccSaturation :: Lens' ColorCorrector (Maybe Int)+ccSaturation = lens _ccSaturation (\ s a -> s{_ccSaturation = a})++-- | Hue in degrees.+ccHue :: Lens' ColorCorrector (Maybe Int)+ccHue = lens _ccHue (\ s a -> s{_ccHue = a})++-- | Undocumented member.+ccColorSpaceConversion :: Lens' ColorCorrector (Maybe ColorSpaceConversion)+ccColorSpaceConversion = lens _ccColorSpaceConversion (\ s a -> s{_ccColorSpaceConversion = a})++-- | Undocumented member.+ccHdr10Metadata :: Lens' ColorCorrector (Maybe Hdr10Metadata)+ccHdr10Metadata = lens _ccHdr10Metadata (\ s a -> s{_ccHdr10Metadata = a})++-- | Contrast level.+ccContrast :: Lens' ColorCorrector (Maybe Int)+ccContrast = lens _ccContrast (\ s a -> s{_ccContrast = a})++-- | Brightness level.+ccBrightness :: Lens' ColorCorrector (Maybe Int)+ccBrightness = lens _ccBrightness (\ s a -> s{_ccBrightness = a})++instance FromJSON ColorCorrector where+        parseJSON+          = withObject "ColorCorrector"+              (\ x ->+                 ColorCorrector' <$>+                   (x .:? "saturation") <*> (x .:? "hue") <*>+                     (x .:? "colorSpaceConversion")+                     <*> (x .:? "hdr10Metadata")+                     <*> (x .:? "contrast")+                     <*> (x .:? "brightness"))++instance Hashable ColorCorrector where++instance NFData ColorCorrector where++instance ToJSON ColorCorrector where+        toJSON ColorCorrector'{..}+          = object+              (catMaybes+                 [("saturation" .=) <$> _ccSaturation,+                  ("hue" .=) <$> _ccHue,+                  ("colorSpaceConversion" .=) <$>+                    _ccColorSpaceConversion,+                  ("hdr10Metadata" .=) <$> _ccHdr10Metadata,+                  ("contrast" .=) <$> _ccContrast,+                  ("brightness" .=) <$> _ccBrightness])++-- | Container specific settings.+--+-- /See:/ 'containerSettings' smart constructor.+data ContainerSettings = ContainerSettings'+  { _csM2tsSettings :: !(Maybe M2tsSettings)+  , _csM3u8Settings :: !(Maybe M3u8Settings)+  , _csMovSettings  :: !(Maybe MovSettings)+  , _csMp4Settings  :: !(Maybe Mp4Settings)+  , _csContainer    :: !(Maybe ContainerType)+  , _csF4vSettings  :: !(Maybe F4vSettings)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ContainerSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csM2tsSettings' - Undocumented member.+--+-- * 'csM3u8Settings' - Undocumented member.+--+-- * 'csMovSettings' - Undocumented member.+--+-- * 'csMp4Settings' - Undocumented member.+--+-- * 'csContainer' - Undocumented member.+--+-- * 'csF4vSettings' - Undocumented member.+containerSettings+    :: ContainerSettings+containerSettings =+  ContainerSettings'+    { _csM2tsSettings = Nothing+    , _csM3u8Settings = Nothing+    , _csMovSettings = Nothing+    , _csMp4Settings = Nothing+    , _csContainer = Nothing+    , _csF4vSettings = Nothing+    }+++-- | Undocumented member.+csM2tsSettings :: Lens' ContainerSettings (Maybe M2tsSettings)+csM2tsSettings = lens _csM2tsSettings (\ s a -> s{_csM2tsSettings = a})++-- | Undocumented member.+csM3u8Settings :: Lens' ContainerSettings (Maybe M3u8Settings)+csM3u8Settings = lens _csM3u8Settings (\ s a -> s{_csM3u8Settings = a})++-- | Undocumented member.+csMovSettings :: Lens' ContainerSettings (Maybe MovSettings)+csMovSettings = lens _csMovSettings (\ s a -> s{_csMovSettings = a})++-- | Undocumented member.+csMp4Settings :: Lens' ContainerSettings (Maybe Mp4Settings)+csMp4Settings = lens _csMp4Settings (\ s a -> s{_csMp4Settings = a})++-- | Undocumented member.+csContainer :: Lens' ContainerSettings (Maybe ContainerType)+csContainer = lens _csContainer (\ s a -> s{_csContainer = a})++-- | Undocumented member.+csF4vSettings :: Lens' ContainerSettings (Maybe F4vSettings)+csF4vSettings = lens _csF4vSettings (\ s a -> s{_csF4vSettings = a})++instance FromJSON ContainerSettings where+        parseJSON+          = withObject "ContainerSettings"+              (\ x ->+                 ContainerSettings' <$>+                   (x .:? "m2tsSettings") <*> (x .:? "m3u8Settings") <*>+                     (x .:? "movSettings")+                     <*> (x .:? "mp4Settings")+                     <*> (x .:? "container")+                     <*> (x .:? "f4vSettings"))++instance Hashable ContainerSettings where++instance NFData ContainerSettings where++instance ToJSON ContainerSettings where+        toJSON ContainerSettings'{..}+          = object+              (catMaybes+                 [("m2tsSettings" .=) <$> _csM2tsSettings,+                  ("m3u8Settings" .=) <$> _csM3u8Settings,+                  ("movSettings" .=) <$> _csMovSettings,+                  ("mp4Settings" .=) <$> _csMp4Settings,+                  ("container" .=) <$> _csContainer,+                  ("f4vSettings" .=) <$> _csF4vSettings])++-- | Specifies DRM settings for DASH outputs.+--+-- /See:/ 'dashIsoEncryptionSettings' smart constructor.+newtype DashIsoEncryptionSettings = DashIsoEncryptionSettings'+  { _diesSpekeKeyProvider :: Maybe SpekeKeyProvider+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DashIsoEncryptionSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'diesSpekeKeyProvider' - Undocumented member.+dashIsoEncryptionSettings+    :: DashIsoEncryptionSettings+dashIsoEncryptionSettings =+  DashIsoEncryptionSettings' {_diesSpekeKeyProvider = Nothing}+++-- | Undocumented member.+diesSpekeKeyProvider :: Lens' DashIsoEncryptionSettings (Maybe SpekeKeyProvider)+diesSpekeKeyProvider = lens _diesSpekeKeyProvider (\ s a -> s{_diesSpekeKeyProvider = a})++instance FromJSON DashIsoEncryptionSettings where+        parseJSON+          = withObject "DashIsoEncryptionSettings"+              (\ x ->+                 DashIsoEncryptionSettings' <$>+                   (x .:? "spekeKeyProvider"))++instance Hashable DashIsoEncryptionSettings where++instance NFData DashIsoEncryptionSettings where++instance ToJSON DashIsoEncryptionSettings where+        toJSON DashIsoEncryptionSettings'{..}+          = object+              (catMaybes+                 [("spekeKeyProvider" .=) <$> _diesSpekeKeyProvider])++-- | Required when you set (Type) under (OutputGroups)>(OutputGroupSettings) to DASH_ISO_GROUP_SETTINGS.+--+-- /See:/ 'dashIsoGroupSettings' smart constructor.+data DashIsoGroupSettings = DashIsoGroupSettings'+  { _digsFragmentLength  :: !(Maybe Int)+  , _digsSegmentControl  :: !(Maybe DashIsoSegmentControl)+  , _digsDestination     :: !(Maybe Text)+  , _digsHbbtvCompliance :: !(Maybe DashIsoHbbtvCompliance)+  , _digsMinBufferTime   :: !(Maybe Int)+  , _digsBaseURL         :: !(Maybe Text)+  , _digsEncryption      :: !(Maybe DashIsoEncryptionSettings)+  , _digsSegmentLength   :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DashIsoGroupSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'digsFragmentLength' - Length of fragments to generate (in seconds). Fragment length must be compatible with GOP size and Framerate. Note that fragments will end on the next keyframe after this number of seconds, so actual fragment length may be longer. When Emit Single File is checked, the fragmentation is internal to a single output file and it does not cause the creation of many output files as in other output types.+--+-- * 'digsSegmentControl' - Undocumented member.+--+-- * 'digsDestination' - Use Destination (Destination) to specify the S3 output location and the output filename base. Destination accepts format identifiers. If you do not specify the base filename in the URI, the service will use the filename of the input file. If your job has multiple inputs, the service uses the filename of the first input file.+--+-- * 'digsHbbtvCompliance' - Undocumented member.+--+-- * 'digsMinBufferTime' - Minimum time of initially buffered media that is needed to ensure smooth playout.+--+-- * 'digsBaseURL' - A partial URI prefix that will be put in the manifest (.mpd) file at the top level BaseURL element. Can be used if streams are delivered from a different URL than the manifest file.+--+-- * 'digsEncryption' - DRM settings.+--+-- * 'digsSegmentLength' - Length of mpd segments to create (in seconds). Note that segments will end on the next keyframe after this number of seconds, so actual segment length may be longer. When Emit Single File is checked, the segmentation is internal to a single output file and it does not cause the creation of many output files as in other output types.+dashIsoGroupSettings+    :: DashIsoGroupSettings+dashIsoGroupSettings =+  DashIsoGroupSettings'+    { _digsFragmentLength = Nothing+    , _digsSegmentControl = Nothing+    , _digsDestination = Nothing+    , _digsHbbtvCompliance = Nothing+    , _digsMinBufferTime = Nothing+    , _digsBaseURL = Nothing+    , _digsEncryption = Nothing+    , _digsSegmentLength = Nothing+    }+++-- | Length of fragments to generate (in seconds). Fragment length must be compatible with GOP size and Framerate. Note that fragments will end on the next keyframe after this number of seconds, so actual fragment length may be longer. When Emit Single File is checked, the fragmentation is internal to a single output file and it does not cause the creation of many output files as in other output types.+digsFragmentLength :: Lens' DashIsoGroupSettings (Maybe Int)+digsFragmentLength = lens _digsFragmentLength (\ s a -> s{_digsFragmentLength = a})++-- | Undocumented member.+digsSegmentControl :: Lens' DashIsoGroupSettings (Maybe DashIsoSegmentControl)+digsSegmentControl = lens _digsSegmentControl (\ s a -> s{_digsSegmentControl = a})++-- | Use Destination (Destination) to specify the S3 output location and the output filename base. Destination accepts format identifiers. If you do not specify the base filename in the URI, the service will use the filename of the input file. If your job has multiple inputs, the service uses the filename of the first input file.+digsDestination :: Lens' DashIsoGroupSettings (Maybe Text)+digsDestination = lens _digsDestination (\ s a -> s{_digsDestination = a})++-- | Undocumented member.+digsHbbtvCompliance :: Lens' DashIsoGroupSettings (Maybe DashIsoHbbtvCompliance)+digsHbbtvCompliance = lens _digsHbbtvCompliance (\ s a -> s{_digsHbbtvCompliance = a})++-- | Minimum time of initially buffered media that is needed to ensure smooth playout.+digsMinBufferTime :: Lens' DashIsoGroupSettings (Maybe Int)+digsMinBufferTime = lens _digsMinBufferTime (\ s a -> s{_digsMinBufferTime = a})++-- | A partial URI prefix that will be put in the manifest (.mpd) file at the top level BaseURL element. Can be used if streams are delivered from a different URL than the manifest file.+digsBaseURL :: Lens' DashIsoGroupSettings (Maybe Text)+digsBaseURL = lens _digsBaseURL (\ s a -> s{_digsBaseURL = a})++-- | DRM settings.+digsEncryption :: Lens' DashIsoGroupSettings (Maybe DashIsoEncryptionSettings)+digsEncryption = lens _digsEncryption (\ s a -> s{_digsEncryption = a})++-- | Length of mpd segments to create (in seconds). Note that segments will end on the next keyframe after this number of seconds, so actual segment length may be longer. When Emit Single File is checked, the segmentation is internal to a single output file and it does not cause the creation of many output files as in other output types.+digsSegmentLength :: Lens' DashIsoGroupSettings (Maybe Int)+digsSegmentLength = lens _digsSegmentLength (\ s a -> s{_digsSegmentLength = a})++instance FromJSON DashIsoGroupSettings where+        parseJSON+          = withObject "DashIsoGroupSettings"+              (\ x ->+                 DashIsoGroupSettings' <$>+                   (x .:? "fragmentLength") <*> (x .:? "segmentControl")+                     <*> (x .:? "destination")+                     <*> (x .:? "hbbtvCompliance")+                     <*> (x .:? "minBufferTime")+                     <*> (x .:? "baseUrl")+                     <*> (x .:? "encryption")+                     <*> (x .:? "segmentLength"))++instance Hashable DashIsoGroupSettings where++instance NFData DashIsoGroupSettings where++instance ToJSON DashIsoGroupSettings where+        toJSON DashIsoGroupSettings'{..}+          = object+              (catMaybes+                 [("fragmentLength" .=) <$> _digsFragmentLength,+                  ("segmentControl" .=) <$> _digsSegmentControl,+                  ("destination" .=) <$> _digsDestination,+                  ("hbbtvCompliance" .=) <$> _digsHbbtvCompliance,+                  ("minBufferTime" .=) <$> _digsMinBufferTime,+                  ("baseUrl" .=) <$> _digsBaseURL,+                  ("encryption" .=) <$> _digsEncryption,+                  ("segmentLength" .=) <$> _digsSegmentLength])++-- | Settings for deinterlacer+--+-- /See:/ 'deinterlacer' smart constructor.+data Deinterlacer = Deinterlacer'+  { _dControl   :: !(Maybe DeinterlacerControl)+  , _dMode      :: !(Maybe DeinterlacerMode)+  , _dAlgorithm :: !(Maybe DeinterlaceAlgorithm)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Deinterlacer' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dControl' - Undocumented member.+--+-- * 'dMode' - Undocumented member.+--+-- * 'dAlgorithm' - Undocumented member.+deinterlacer+    :: Deinterlacer+deinterlacer =+  Deinterlacer' {_dControl = Nothing, _dMode = Nothing, _dAlgorithm = Nothing}+++-- | Undocumented member.+dControl :: Lens' Deinterlacer (Maybe DeinterlacerControl)+dControl = lens _dControl (\ s a -> s{_dControl = a})++-- | Undocumented member.+dMode :: Lens' Deinterlacer (Maybe DeinterlacerMode)+dMode = lens _dMode (\ s a -> s{_dMode = a})++-- | Undocumented member.+dAlgorithm :: Lens' Deinterlacer (Maybe DeinterlaceAlgorithm)+dAlgorithm = lens _dAlgorithm (\ s a -> s{_dAlgorithm = a})++instance FromJSON Deinterlacer where+        parseJSON+          = withObject "Deinterlacer"+              (\ x ->+                 Deinterlacer' <$>+                   (x .:? "control") <*> (x .:? "mode") <*>+                     (x .:? "algorithm"))++instance Hashable Deinterlacer where++instance NFData Deinterlacer where++instance ToJSON Deinterlacer where+        toJSON Deinterlacer'{..}+          = object+              (catMaybes+                 [("control" .=) <$> _dControl,+                  ("mode" .=) <$> _dMode,+                  ("algorithm" .=) <$> _dAlgorithm])++-- | Inserts DVB Network Information Table (NIT) at the specified table repetition interval.+--+-- /See:/ 'dvbNitSettings' smart constructor.+data DvbNitSettings = DvbNitSettings'+  { _dnsNetworkId   :: !(Maybe Int)+  , _dnsNetworkName :: !(Maybe Text)+  , _dnsNitInterval :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DvbNitSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dnsNetworkId' - The numeric value placed in the Network Information Table (NIT).+--+-- * 'dnsNetworkName' - The network name text placed in the network_name_descriptor inside the Network Information Table. Maximum length is 256 characters.+--+-- * 'dnsNitInterval' - The number of milliseconds between instances of this table in the output transport stream.+dvbNitSettings+    :: DvbNitSettings+dvbNitSettings =+  DvbNitSettings'+    { _dnsNetworkId = Nothing+    , _dnsNetworkName = Nothing+    , _dnsNitInterval = Nothing+    }+++-- | The numeric value placed in the Network Information Table (NIT).+dnsNetworkId :: Lens' DvbNitSettings (Maybe Int)+dnsNetworkId = lens _dnsNetworkId (\ s a -> s{_dnsNetworkId = a})++-- | The network name text placed in the network_name_descriptor inside the Network Information Table. Maximum length is 256 characters.+dnsNetworkName :: Lens' DvbNitSettings (Maybe Text)+dnsNetworkName = lens _dnsNetworkName (\ s a -> s{_dnsNetworkName = a})++-- | The number of milliseconds between instances of this table in the output transport stream.+dnsNitInterval :: Lens' DvbNitSettings (Maybe Int)+dnsNitInterval = lens _dnsNitInterval (\ s a -> s{_dnsNitInterval = a})++instance FromJSON DvbNitSettings where+        parseJSON+          = withObject "DvbNitSettings"+              (\ x ->+                 DvbNitSettings' <$>+                   (x .:? "networkId") <*> (x .:? "networkName") <*>+                     (x .:? "nitInterval"))++instance Hashable DvbNitSettings where++instance NFData DvbNitSettings where++instance ToJSON DvbNitSettings where+        toJSON DvbNitSettings'{..}+          = object+              (catMaybes+                 [("networkId" .=) <$> _dnsNetworkId,+                  ("networkName" .=) <$> _dnsNetworkName,+                  ("nitInterval" .=) <$> _dnsNitInterval])++-- | Inserts DVB Service Description Table (NIT) at the specified table repetition interval.+--+-- /See:/ 'dvbSdtSettings' smart constructor.+data DvbSdtSettings = DvbSdtSettings'+  { _dssSdtInterval         :: !(Maybe Int)+  , _dssServiceProviderName :: !(Maybe Text)+  , _dssOutputSdt           :: !(Maybe OutputSdt)+  , _dssServiceName         :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DvbSdtSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dssSdtInterval' - The number of milliseconds between instances of this table in the output transport stream.+--+-- * 'dssServiceProviderName' - The service provider name placed in the service_descriptor in the Service Description Table. Maximum length is 256 characters.+--+-- * 'dssOutputSdt' - Undocumented member.+--+-- * 'dssServiceName' - The service name placed in the service_descriptor in the Service Description Table. Maximum length is 256 characters.+dvbSdtSettings+    :: DvbSdtSettings+dvbSdtSettings =+  DvbSdtSettings'+    { _dssSdtInterval = Nothing+    , _dssServiceProviderName = Nothing+    , _dssOutputSdt = Nothing+    , _dssServiceName = Nothing+    }+++-- | The number of milliseconds between instances of this table in the output transport stream.+dssSdtInterval :: Lens' DvbSdtSettings (Maybe Int)+dssSdtInterval = lens _dssSdtInterval (\ s a -> s{_dssSdtInterval = a})++-- | The service provider name placed in the service_descriptor in the Service Description Table. Maximum length is 256 characters.+dssServiceProviderName :: Lens' DvbSdtSettings (Maybe Text)+dssServiceProviderName = lens _dssServiceProviderName (\ s a -> s{_dssServiceProviderName = a})++-- | Undocumented member.+dssOutputSdt :: Lens' DvbSdtSettings (Maybe OutputSdt)+dssOutputSdt = lens _dssOutputSdt (\ s a -> s{_dssOutputSdt = a})++-- | The service name placed in the service_descriptor in the Service Description Table. Maximum length is 256 characters.+dssServiceName :: Lens' DvbSdtSettings (Maybe Text)+dssServiceName = lens _dssServiceName (\ s a -> s{_dssServiceName = a})++instance FromJSON DvbSdtSettings where+        parseJSON+          = withObject "DvbSdtSettings"+              (\ x ->+                 DvbSdtSettings' <$>+                   (x .:? "sdtInterval") <*>+                     (x .:? "serviceProviderName")+                     <*> (x .:? "outputSdt")+                     <*> (x .:? "serviceName"))++instance Hashable DvbSdtSettings where++instance NFData DvbSdtSettings where++instance ToJSON DvbSdtSettings where+        toJSON DvbSdtSettings'{..}+          = object+              (catMaybes+                 [("sdtInterval" .=) <$> _dssSdtInterval,+                  ("serviceProviderName" .=) <$>+                    _dssServiceProviderName,+                  ("outputSdt" .=) <$> _dssOutputSdt,+                  ("serviceName" .=) <$> _dssServiceName])++-- | DVB-Sub Destination Settings+--+-- /See:/ 'dvbSubDestinationSettings' smart constructor.+data DvbSubDestinationSettings = DvbSubDestinationSettings'+  { _dsdsBackgroundOpacity :: !(Maybe Int)+  , _dsdsFontOpacity       :: !(Maybe Int)+  , _dsdsShadowYOffset     :: !(Maybe Int)+  , _dsdsFontResolution    :: !(Maybe Int)+  , _dsdsYPosition         :: !(Maybe Int)+  , _dsdsBackgroundColor   :: !(Maybe DvbSubtitleBackgroundColor)+  , _dsdsShadowXOffset     :: !(Maybe Int)+  , _dsdsFontSize          :: !(Maybe Int)+  , _dsdsXPosition         :: !(Maybe Int)+  , _dsdsTeletextSpacing   :: !(Maybe DvbSubtitleTeletextSpacing)+  , _dsdsAlignment         :: !(Maybe DvbSubtitleAlignment)+  , _dsdsShadowOpacity     :: !(Maybe Int)+  , _dsdsOutlineColor      :: !(Maybe DvbSubtitleOutlineColor)+  , _dsdsOutlineSize       :: !(Maybe Int)+  , _dsdsShadowColor       :: !(Maybe DvbSubtitleShadowColor)+  , _dsdsFontColor         :: !(Maybe DvbSubtitleFontColor)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DvbSubDestinationSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsdsBackgroundOpacity' - Specifies the opacity of the background rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.+--+-- * 'dsdsFontOpacity' - Specifies the opacity of the burned-in captions. 255 is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.+--+-- * 'dsdsShadowYOffset' - Specifies the vertical offset of the shadow relative to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All burn-in and DVB-Sub font settings must match.+--+-- * 'dsdsFontResolution' - Font resolution in DPI (dots per inch); default is 96 dpi. All burn-in and DVB-Sub font settings must match.+--+-- * 'dsdsYPosition' - Specifies the vertical position of the caption relative to the top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the top of the output. If no explicit y_position is provided, the caption will be positioned towards the bottom of the output. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.+--+-- * 'dsdsBackgroundColor' - Undocumented member.+--+-- * 'dsdsShadowXOffset' - Specifies the horizontal offset of the shadow relative to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All burn-in and DVB-Sub font settings must match.+--+-- * 'dsdsFontSize' - A positive integer indicates the exact font size in points. Set to 0 for automatic font size selection. All burn-in and DVB-Sub font settings must match.+--+-- * 'dsdsXPosition' - Specifies the horizontal position of the caption relative to the left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the left of the output. If no explicit x_position is provided, the horizontal caption position will be determined by the alignment parameter. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.+--+-- * 'dsdsTeletextSpacing' - Undocumented member.+--+-- * 'dsdsAlignment' - Undocumented member.+--+-- * 'dsdsShadowOpacity' - Specifies the opacity of the shadow. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.+--+-- * 'dsdsOutlineColor' - Undocumented member.+--+-- * 'dsdsOutlineSize' - Specifies font outline size in pixels. This option is not valid for source captions that are either 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.+--+-- * 'dsdsShadowColor' - Undocumented member.+--+-- * 'dsdsFontColor' - Undocumented member.+dvbSubDestinationSettings+    :: DvbSubDestinationSettings+dvbSubDestinationSettings =+  DvbSubDestinationSettings'+    { _dsdsBackgroundOpacity = Nothing+    , _dsdsFontOpacity = Nothing+    , _dsdsShadowYOffset = Nothing+    , _dsdsFontResolution = Nothing+    , _dsdsYPosition = Nothing+    , _dsdsBackgroundColor = Nothing+    , _dsdsShadowXOffset = Nothing+    , _dsdsFontSize = Nothing+    , _dsdsXPosition = Nothing+    , _dsdsTeletextSpacing = Nothing+    , _dsdsAlignment = Nothing+    , _dsdsShadowOpacity = Nothing+    , _dsdsOutlineColor = Nothing+    , _dsdsOutlineSize = Nothing+    , _dsdsShadowColor = Nothing+    , _dsdsFontColor = Nothing+    }+++-- | Specifies the opacity of the background rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.+dsdsBackgroundOpacity :: Lens' DvbSubDestinationSettings (Maybe Int)+dsdsBackgroundOpacity = lens _dsdsBackgroundOpacity (\ s a -> s{_dsdsBackgroundOpacity = a})++-- | Specifies the opacity of the burned-in captions. 255 is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.+dsdsFontOpacity :: Lens' DvbSubDestinationSettings (Maybe Int)+dsdsFontOpacity = lens _dsdsFontOpacity (\ s a -> s{_dsdsFontOpacity = a})++-- | Specifies the vertical offset of the shadow relative to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All burn-in and DVB-Sub font settings must match.+dsdsShadowYOffset :: Lens' DvbSubDestinationSettings (Maybe Int)+dsdsShadowYOffset = lens _dsdsShadowYOffset (\ s a -> s{_dsdsShadowYOffset = a})++-- | Font resolution in DPI (dots per inch); default is 96 dpi. All burn-in and DVB-Sub font settings must match.+dsdsFontResolution :: Lens' DvbSubDestinationSettings (Maybe Int)+dsdsFontResolution = lens _dsdsFontResolution (\ s a -> s{_dsdsFontResolution = a})++-- | Specifies the vertical position of the caption relative to the top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the top of the output. If no explicit y_position is provided, the caption will be positioned towards the bottom of the output. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.+dsdsYPosition :: Lens' DvbSubDestinationSettings (Maybe Int)+dsdsYPosition = lens _dsdsYPosition (\ s a -> s{_dsdsYPosition = a})++-- | Undocumented member.+dsdsBackgroundColor :: Lens' DvbSubDestinationSettings (Maybe DvbSubtitleBackgroundColor)+dsdsBackgroundColor = lens _dsdsBackgroundColor (\ s a -> s{_dsdsBackgroundColor = a})++-- | Specifies the horizontal offset of the shadow relative to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All burn-in and DVB-Sub font settings must match.+dsdsShadowXOffset :: Lens' DvbSubDestinationSettings (Maybe Int)+dsdsShadowXOffset = lens _dsdsShadowXOffset (\ s a -> s{_dsdsShadowXOffset = a})++-- | A positive integer indicates the exact font size in points. Set to 0 for automatic font size selection. All burn-in and DVB-Sub font settings must match.+dsdsFontSize :: Lens' DvbSubDestinationSettings (Maybe Int)+dsdsFontSize = lens _dsdsFontSize (\ s a -> s{_dsdsFontSize = a})++-- | Specifies the horizontal position of the caption relative to the left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the left of the output. If no explicit x_position is provided, the horizontal caption position will be determined by the alignment parameter. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.+dsdsXPosition :: Lens' DvbSubDestinationSettings (Maybe Int)+dsdsXPosition = lens _dsdsXPosition (\ s a -> s{_dsdsXPosition = a})++-- | Undocumented member.+dsdsTeletextSpacing :: Lens' DvbSubDestinationSettings (Maybe DvbSubtitleTeletextSpacing)+dsdsTeletextSpacing = lens _dsdsTeletextSpacing (\ s a -> s{_dsdsTeletextSpacing = a})++-- | Undocumented member.+dsdsAlignment :: Lens' DvbSubDestinationSettings (Maybe DvbSubtitleAlignment)+dsdsAlignment = lens _dsdsAlignment (\ s a -> s{_dsdsAlignment = a})++-- | Specifies the opacity of the shadow. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.+dsdsShadowOpacity :: Lens' DvbSubDestinationSettings (Maybe Int)+dsdsShadowOpacity = lens _dsdsShadowOpacity (\ s a -> s{_dsdsShadowOpacity = a})++-- | Undocumented member.+dsdsOutlineColor :: Lens' DvbSubDestinationSettings (Maybe DvbSubtitleOutlineColor)+dsdsOutlineColor = lens _dsdsOutlineColor (\ s a -> s{_dsdsOutlineColor = a})++-- | Specifies font outline size in pixels. This option is not valid for source captions that are either 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.+dsdsOutlineSize :: Lens' DvbSubDestinationSettings (Maybe Int)+dsdsOutlineSize = lens _dsdsOutlineSize (\ s a -> s{_dsdsOutlineSize = a})++-- | Undocumented member.+dsdsShadowColor :: Lens' DvbSubDestinationSettings (Maybe DvbSubtitleShadowColor)+dsdsShadowColor = lens _dsdsShadowColor (\ s a -> s{_dsdsShadowColor = a})++-- | Undocumented member.+dsdsFontColor :: Lens' DvbSubDestinationSettings (Maybe DvbSubtitleFontColor)+dsdsFontColor = lens _dsdsFontColor (\ s a -> s{_dsdsFontColor = a})++instance FromJSON DvbSubDestinationSettings where+        parseJSON+          = withObject "DvbSubDestinationSettings"+              (\ x ->+                 DvbSubDestinationSettings' <$>+                   (x .:? "backgroundOpacity") <*> (x .:? "fontOpacity")+                     <*> (x .:? "shadowYOffset")+                     <*> (x .:? "fontResolution")+                     <*> (x .:? "yPosition")+                     <*> (x .:? "backgroundColor")+                     <*> (x .:? "shadowXOffset")+                     <*> (x .:? "fontSize")+                     <*> (x .:? "xPosition")+                     <*> (x .:? "teletextSpacing")+                     <*> (x .:? "alignment")+                     <*> (x .:? "shadowOpacity")+                     <*> (x .:? "outlineColor")+                     <*> (x .:? "outlineSize")+                     <*> (x .:? "shadowColor")+                     <*> (x .:? "fontColor"))++instance Hashable DvbSubDestinationSettings where++instance NFData DvbSubDestinationSettings where++instance ToJSON DvbSubDestinationSettings where+        toJSON DvbSubDestinationSettings'{..}+          = object+              (catMaybes+                 [("backgroundOpacity" .=) <$> _dsdsBackgroundOpacity,+                  ("fontOpacity" .=) <$> _dsdsFontOpacity,+                  ("shadowYOffset" .=) <$> _dsdsShadowYOffset,+                  ("fontResolution" .=) <$> _dsdsFontResolution,+                  ("yPosition" .=) <$> _dsdsYPosition,+                  ("backgroundColor" .=) <$> _dsdsBackgroundColor,+                  ("shadowXOffset" .=) <$> _dsdsShadowXOffset,+                  ("fontSize" .=) <$> _dsdsFontSize,+                  ("xPosition" .=) <$> _dsdsXPosition,+                  ("teletextSpacing" .=) <$> _dsdsTeletextSpacing,+                  ("alignment" .=) <$> _dsdsAlignment,+                  ("shadowOpacity" .=) <$> _dsdsShadowOpacity,+                  ("outlineColor" .=) <$> _dsdsOutlineColor,+                  ("outlineSize" .=) <$> _dsdsOutlineSize,+                  ("shadowColor" .=) <$> _dsdsShadowColor,+                  ("fontColor" .=) <$> _dsdsFontColor])++-- | DVB Sub Source Settings+--+-- /See:/ 'dvbSubSourceSettings' smart constructor.+newtype DvbSubSourceSettings = DvbSubSourceSettings'+  { _dsssPid :: Maybe Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DvbSubSourceSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsssPid' - When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through, regardless of selectors.+dvbSubSourceSettings+    :: DvbSubSourceSettings+dvbSubSourceSettings = DvbSubSourceSettings' {_dsssPid = Nothing}+++-- | When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through, regardless of selectors.+dsssPid :: Lens' DvbSubSourceSettings (Maybe Int)+dsssPid = lens _dsssPid (\ s a -> s{_dsssPid = a})++instance FromJSON DvbSubSourceSettings where+        parseJSON+          = withObject "DvbSubSourceSettings"+              (\ x -> DvbSubSourceSettings' <$> (x .:? "pid"))++instance Hashable DvbSubSourceSettings where++instance NFData DvbSubSourceSettings where++instance ToJSON DvbSubSourceSettings where+        toJSON DvbSubSourceSettings'{..}+          = object (catMaybes [("pid" .=) <$> _dsssPid])++-- | Inserts DVB Time and Date Table (TDT) at the specified table repetition interval.+--+-- /See:/ 'dvbTdtSettings' smart constructor.+newtype DvbTdtSettings = DvbTdtSettings'+  { _dtsTdtInterval :: Maybe Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DvbTdtSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtsTdtInterval' - The number of milliseconds between instances of this table in the output transport stream.+dvbTdtSettings+    :: DvbTdtSettings+dvbTdtSettings = DvbTdtSettings' {_dtsTdtInterval = Nothing}+++-- | The number of milliseconds between instances of this table in the output transport stream.+dtsTdtInterval :: Lens' DvbTdtSettings (Maybe Int)+dtsTdtInterval = lens _dtsTdtInterval (\ s a -> s{_dtsTdtInterval = a})++instance FromJSON DvbTdtSettings where+        parseJSON+          = withObject "DvbTdtSettings"+              (\ x -> DvbTdtSettings' <$> (x .:? "tdtInterval"))++instance Hashable DvbTdtSettings where++instance NFData DvbTdtSettings where++instance ToJSON DvbTdtSettings where+        toJSON DvbTdtSettings'{..}+          = object+              (catMaybes [("tdtInterval" .=) <$> _dtsTdtInterval])++-- | Required when you set (Codec) under (AudioDescriptions)>(CodecSettings) to the value EAC3.+--+-- /See:/ 'eac3Settings' smart constructor.+data Eac3Settings = Eac3Settings'+  { _esStereoDownmix               :: !(Maybe Eac3StereoDownmix)+  , _esLoRoCenterMixLevel          :: !(Maybe Double)+  , _esLtRtCenterMixLevel          :: !(Maybe Double)+  , _esLfeFilter                   :: !(Maybe Eac3LfeFilter)+  , _esDynamicRangeCompressionLine :: !(Maybe Eac3DynamicRangeCompressionLine)+  , _esLtRtSurroundMixLevel        :: !(Maybe Double)+  , _esMetadataControl             :: !(Maybe Eac3MetadataControl)+  , _esLoRoSurroundMixLevel        :: !(Maybe Double)+  , _esSurroundMode                :: !(Maybe Eac3SurroundMode)+  , _esAttenuationControl          :: !(Maybe Eac3AttenuationControl)+  , _esPassthroughControl          :: !(Maybe Eac3PassthroughControl)+  , _esBitstreamMode               :: !(Maybe Eac3BitstreamMode)+  , _esLfeControl                  :: !(Maybe Eac3LfeControl)+  , _esDynamicRangeCompressionRf   :: !(Maybe Eac3DynamicRangeCompressionRf)+  , _esCodingMode                  :: !(Maybe Eac3CodingMode)+  , _esSampleRate                  :: !(Maybe Int)+  , _esDcFilter                    :: !(Maybe Eac3DcFilter)+  , _esBitrate                     :: !(Maybe Int)+  , _esPhaseControl                :: !(Maybe Eac3PhaseControl)+  , _esSurroundExMode              :: !(Maybe Eac3SurroundExMode)+  , _esDialnorm                    :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Eac3Settings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'esStereoDownmix' - Undocumented member.+--+-- * 'esLoRoCenterMixLevel' - Left only/Right only center mix level. Only used for 3/2 coding mode. Valid values: 3.0, 1.5, 0.0, -1.5 -3.0 -4.5 -6.0 -60+--+-- * 'esLtRtCenterMixLevel' - Left total/Right total center mix level. Only used for 3/2 coding mode. Valid values: 3.0, 1.5, 0.0, -1.5 -3.0 -4.5 -6.0 -60+--+-- * 'esLfeFilter' - Undocumented member.+--+-- * 'esDynamicRangeCompressionLine' - Undocumented member.+--+-- * 'esLtRtSurroundMixLevel' - Left total/Right total surround mix level. Only used for 3/2 coding mode. Valid values: -1.5 -3.0 -4.5 -6.0 -60+--+-- * 'esMetadataControl' - Undocumented member.+--+-- * 'esLoRoSurroundMixLevel' - Left only/Right only surround mix level. Only used for 3/2 coding mode. Valid values: -1.5 -3.0 -4.5 -6.0 -60+--+-- * 'esSurroundMode' - Undocumented member.+--+-- * 'esAttenuationControl' - Undocumented member.+--+-- * 'esPassthroughControl' - Undocumented member.+--+-- * 'esBitstreamMode' - Undocumented member.+--+-- * 'esLfeControl' - Undocumented member.+--+-- * 'esDynamicRangeCompressionRf' - Undocumented member.+--+-- * 'esCodingMode' - Undocumented member.+--+-- * 'esSampleRate' - Sample rate in hz. Sample rate is always 48000.+--+-- * 'esDcFilter' - Undocumented member.+--+-- * 'esBitrate' - Average bitrate in bits/second. Valid bitrates depend on the coding mode.+--+-- * 'esPhaseControl' - Undocumented member.+--+-- * 'esSurroundExMode' - Undocumented member.+--+-- * 'esDialnorm' - Sets the dialnorm for the output. If blank and input audio is Dolby Digital Plus, dialnorm will be passed through.+eac3Settings+    :: Eac3Settings+eac3Settings =+  Eac3Settings'+    { _esStereoDownmix = Nothing+    , _esLoRoCenterMixLevel = Nothing+    , _esLtRtCenterMixLevel = Nothing+    , _esLfeFilter = Nothing+    , _esDynamicRangeCompressionLine = Nothing+    , _esLtRtSurroundMixLevel = Nothing+    , _esMetadataControl = Nothing+    , _esLoRoSurroundMixLevel = Nothing+    , _esSurroundMode = Nothing+    , _esAttenuationControl = Nothing+    , _esPassthroughControl = Nothing+    , _esBitstreamMode = Nothing+    , _esLfeControl = Nothing+    , _esDynamicRangeCompressionRf = Nothing+    , _esCodingMode = Nothing+    , _esSampleRate = Nothing+    , _esDcFilter = Nothing+    , _esBitrate = Nothing+    , _esPhaseControl = Nothing+    , _esSurroundExMode = Nothing+    , _esDialnorm = Nothing+    }+++-- | Undocumented member.+esStereoDownmix :: Lens' Eac3Settings (Maybe Eac3StereoDownmix)+esStereoDownmix = lens _esStereoDownmix (\ s a -> s{_esStereoDownmix = a})++-- | Left only/Right only center mix level. Only used for 3/2 coding mode. Valid values: 3.0, 1.5, 0.0, -1.5 -3.0 -4.5 -6.0 -60+esLoRoCenterMixLevel :: Lens' Eac3Settings (Maybe Double)+esLoRoCenterMixLevel = lens _esLoRoCenterMixLevel (\ s a -> s{_esLoRoCenterMixLevel = a})++-- | Left total/Right total center mix level. Only used for 3/2 coding mode. Valid values: 3.0, 1.5, 0.0, -1.5 -3.0 -4.5 -6.0 -60+esLtRtCenterMixLevel :: Lens' Eac3Settings (Maybe Double)+esLtRtCenterMixLevel = lens _esLtRtCenterMixLevel (\ s a -> s{_esLtRtCenterMixLevel = a})++-- | Undocumented member.+esLfeFilter :: Lens' Eac3Settings (Maybe Eac3LfeFilter)+esLfeFilter = lens _esLfeFilter (\ s a -> s{_esLfeFilter = a})++-- | Undocumented member.+esDynamicRangeCompressionLine :: Lens' Eac3Settings (Maybe Eac3DynamicRangeCompressionLine)+esDynamicRangeCompressionLine = lens _esDynamicRangeCompressionLine (\ s a -> s{_esDynamicRangeCompressionLine = a})++-- | Left total/Right total surround mix level. Only used for 3/2 coding mode. Valid values: -1.5 -3.0 -4.5 -6.0 -60+esLtRtSurroundMixLevel :: Lens' Eac3Settings (Maybe Double)+esLtRtSurroundMixLevel = lens _esLtRtSurroundMixLevel (\ s a -> s{_esLtRtSurroundMixLevel = a})++-- | Undocumented member.+esMetadataControl :: Lens' Eac3Settings (Maybe Eac3MetadataControl)+esMetadataControl = lens _esMetadataControl (\ s a -> s{_esMetadataControl = a})++-- | Left only/Right only surround mix level. Only used for 3/2 coding mode. Valid values: -1.5 -3.0 -4.5 -6.0 -60+esLoRoSurroundMixLevel :: Lens' Eac3Settings (Maybe Double)+esLoRoSurroundMixLevel = lens _esLoRoSurroundMixLevel (\ s a -> s{_esLoRoSurroundMixLevel = a})++-- | Undocumented member.+esSurroundMode :: Lens' Eac3Settings (Maybe Eac3SurroundMode)+esSurroundMode = lens _esSurroundMode (\ s a -> s{_esSurroundMode = a})++-- | Undocumented member.+esAttenuationControl :: Lens' Eac3Settings (Maybe Eac3AttenuationControl)+esAttenuationControl = lens _esAttenuationControl (\ s a -> s{_esAttenuationControl = a})++-- | Undocumented member.+esPassthroughControl :: Lens' Eac3Settings (Maybe Eac3PassthroughControl)+esPassthroughControl = lens _esPassthroughControl (\ s a -> s{_esPassthroughControl = a})++-- | Undocumented member.+esBitstreamMode :: Lens' Eac3Settings (Maybe Eac3BitstreamMode)+esBitstreamMode = lens _esBitstreamMode (\ s a -> s{_esBitstreamMode = a})++-- | Undocumented member.+esLfeControl :: Lens' Eac3Settings (Maybe Eac3LfeControl)+esLfeControl = lens _esLfeControl (\ s a -> s{_esLfeControl = a})++-- | Undocumented member.+esDynamicRangeCompressionRf :: Lens' Eac3Settings (Maybe Eac3DynamicRangeCompressionRf)+esDynamicRangeCompressionRf = lens _esDynamicRangeCompressionRf (\ s a -> s{_esDynamicRangeCompressionRf = a})++-- | Undocumented member.+esCodingMode :: Lens' Eac3Settings (Maybe Eac3CodingMode)+esCodingMode = lens _esCodingMode (\ s a -> s{_esCodingMode = a})++-- | Sample rate in hz. Sample rate is always 48000.+esSampleRate :: Lens' Eac3Settings (Maybe Int)+esSampleRate = lens _esSampleRate (\ s a -> s{_esSampleRate = a})++-- | Undocumented member.+esDcFilter :: Lens' Eac3Settings (Maybe Eac3DcFilter)+esDcFilter = lens _esDcFilter (\ s a -> s{_esDcFilter = a})++-- | Average bitrate in bits/second. Valid bitrates depend on the coding mode.+esBitrate :: Lens' Eac3Settings (Maybe Int)+esBitrate = lens _esBitrate (\ s a -> s{_esBitrate = a})++-- | Undocumented member.+esPhaseControl :: Lens' Eac3Settings (Maybe Eac3PhaseControl)+esPhaseControl = lens _esPhaseControl (\ s a -> s{_esPhaseControl = a})++-- | Undocumented member.+esSurroundExMode :: Lens' Eac3Settings (Maybe Eac3SurroundExMode)+esSurroundExMode = lens _esSurroundExMode (\ s a -> s{_esSurroundExMode = a})++-- | Sets the dialnorm for the output. If blank and input audio is Dolby Digital Plus, dialnorm will be passed through.+esDialnorm :: Lens' Eac3Settings (Maybe Int)+esDialnorm = lens _esDialnorm (\ s a -> s{_esDialnorm = a})++instance FromJSON Eac3Settings where+        parseJSON+          = withObject "Eac3Settings"+              (\ x ->+                 Eac3Settings' <$>+                   (x .:? "stereoDownmix") <*>+                     (x .:? "loRoCenterMixLevel")+                     <*> (x .:? "ltRtCenterMixLevel")+                     <*> (x .:? "lfeFilter")+                     <*> (x .:? "dynamicRangeCompressionLine")+                     <*> (x .:? "ltRtSurroundMixLevel")+                     <*> (x .:? "metadataControl")+                     <*> (x .:? "loRoSurroundMixLevel")+                     <*> (x .:? "surroundMode")+                     <*> (x .:? "attenuationControl")+                     <*> (x .:? "passthroughControl")+                     <*> (x .:? "bitstreamMode")+                     <*> (x .:? "lfeControl")+                     <*> (x .:? "dynamicRangeCompressionRf")+                     <*> (x .:? "codingMode")+                     <*> (x .:? "sampleRate")+                     <*> (x .:? "dcFilter")+                     <*> (x .:? "bitrate")+                     <*> (x .:? "phaseControl")+                     <*> (x .:? "surroundExMode")+                     <*> (x .:? "dialnorm"))++instance Hashable Eac3Settings where++instance NFData Eac3Settings where++instance ToJSON Eac3Settings where+        toJSON Eac3Settings'{..}+          = object+              (catMaybes+                 [("stereoDownmix" .=) <$> _esStereoDownmix,+                  ("loRoCenterMixLevel" .=) <$> _esLoRoCenterMixLevel,+                  ("ltRtCenterMixLevel" .=) <$> _esLtRtCenterMixLevel,+                  ("lfeFilter" .=) <$> _esLfeFilter,+                  ("dynamicRangeCompressionLine" .=) <$>+                    _esDynamicRangeCompressionLine,+                  ("ltRtSurroundMixLevel" .=) <$>+                    _esLtRtSurroundMixLevel,+                  ("metadataControl" .=) <$> _esMetadataControl,+                  ("loRoSurroundMixLevel" .=) <$>+                    _esLoRoSurroundMixLevel,+                  ("surroundMode" .=) <$> _esSurroundMode,+                  ("attenuationControl" .=) <$> _esAttenuationControl,+                  ("passthroughControl" .=) <$> _esPassthroughControl,+                  ("bitstreamMode" .=) <$> _esBitstreamMode,+                  ("lfeControl" .=) <$> _esLfeControl,+                  ("dynamicRangeCompressionRf" .=) <$>+                    _esDynamicRangeCompressionRf,+                  ("codingMode" .=) <$> _esCodingMode,+                  ("sampleRate" .=) <$> _esSampleRate,+                  ("dcFilter" .=) <$> _esDcFilter,+                  ("bitrate" .=) <$> _esBitrate,+                  ("phaseControl" .=) <$> _esPhaseControl,+                  ("surroundExMode" .=) <$> _esSurroundExMode,+                  ("dialnorm" .=) <$> _esDialnorm])++-- | Settings for embedded captions Source+--+-- /See:/ 'embeddedSourceSettings' smart constructor.+data EmbeddedSourceSettings = EmbeddedSourceSettings'+  { _essConvert608To708        :: !(Maybe EmbeddedConvert608To708)+  , _essSource608TrackNumber   :: !(Maybe Int)+  , _essSource608ChannelNumber :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'EmbeddedSourceSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'essConvert608To708' - Undocumented member.+--+-- * 'essSource608TrackNumber' - Specifies the video track index used for extracting captions. The system only supports one input video track, so this should always be set to '1'.+--+-- * 'essSource608ChannelNumber' - Specifies the 608/708 channel number within the video track from which to extract captions. Unused for passthrough.+embeddedSourceSettings+    :: EmbeddedSourceSettings+embeddedSourceSettings =+  EmbeddedSourceSettings'+    { _essConvert608To708 = Nothing+    , _essSource608TrackNumber = Nothing+    , _essSource608ChannelNumber = Nothing+    }+++-- | Undocumented member.+essConvert608To708 :: Lens' EmbeddedSourceSettings (Maybe EmbeddedConvert608To708)+essConvert608To708 = lens _essConvert608To708 (\ s a -> s{_essConvert608To708 = a})++-- | Specifies the video track index used for extracting captions. The system only supports one input video track, so this should always be set to '1'.+essSource608TrackNumber :: Lens' EmbeddedSourceSettings (Maybe Int)+essSource608TrackNumber = lens _essSource608TrackNumber (\ s a -> s{_essSource608TrackNumber = a})++-- | Specifies the 608/708 channel number within the video track from which to extract captions. Unused for passthrough.+essSource608ChannelNumber :: Lens' EmbeddedSourceSettings (Maybe Int)+essSource608ChannelNumber = lens _essSource608ChannelNumber (\ s a -> s{_essSource608ChannelNumber = a})++instance FromJSON EmbeddedSourceSettings where+        parseJSON+          = withObject "EmbeddedSourceSettings"+              (\ x ->+                 EmbeddedSourceSettings' <$>+                   (x .:? "convert608To708") <*>+                     (x .:? "source608TrackNumber")+                     <*> (x .:? "source608ChannelNumber"))++instance Hashable EmbeddedSourceSettings where++instance NFData EmbeddedSourceSettings where++instance ToJSON EmbeddedSourceSettings where+        toJSON EmbeddedSourceSettings'{..}+          = object+              (catMaybes+                 [("convert608To708" .=) <$> _essConvert608To708,+                  ("source608TrackNumber" .=) <$>+                    _essSource608TrackNumber,+                  ("source608ChannelNumber" .=) <$>+                    _essSource608ChannelNumber])++-- | Describes account specific API endpoint+--+-- /See:/ 'endpoint' smart constructor.+newtype Endpoint = Endpoint'+  { _eURL :: Maybe Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Endpoint' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eURL' - URL of endpoint+endpoint+    :: Endpoint+endpoint = Endpoint' {_eURL = Nothing}+++-- | URL of endpoint+eURL :: Lens' Endpoint (Maybe Text)+eURL = lens _eURL (\ s a -> s{_eURL = a})++instance FromJSON Endpoint where+        parseJSON+          = withObject "Endpoint"+              (\ x -> Endpoint' <$> (x .:? "url"))++instance Hashable Endpoint where++instance NFData Endpoint where++-- | Settings for F4v container+--+-- /See:/ 'f4vSettings' smart constructor.+newtype F4vSettings = F4vSettings'+  { _fsMoovPlacement :: Maybe F4vMoovPlacement+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'F4vSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fsMoovPlacement' - Undocumented member.+f4vSettings+    :: F4vSettings+f4vSettings = F4vSettings' {_fsMoovPlacement = Nothing}+++-- | Undocumented member.+fsMoovPlacement :: Lens' F4vSettings (Maybe F4vMoovPlacement)+fsMoovPlacement = lens _fsMoovPlacement (\ s a -> s{_fsMoovPlacement = a})++instance FromJSON F4vSettings where+        parseJSON+          = withObject "F4vSettings"+              (\ x -> F4vSettings' <$> (x .:? "moovPlacement"))++instance Hashable F4vSettings where++instance NFData F4vSettings where++instance ToJSON F4vSettings where+        toJSON F4vSettings'{..}+          = object+              (catMaybes+                 [("moovPlacement" .=) <$> _fsMoovPlacement])++-- | Required when you set (Type) under (OutputGroups)>(OutputGroupSettings) to FILE_GROUP_SETTINGS.+--+-- /See:/ 'fileGroupSettings' smart constructor.+newtype FileGroupSettings = FileGroupSettings'+  { _fgsDestination :: Maybe Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'FileGroupSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fgsDestination' - Use Destination (Destination) to specify the S3 output location and the output filename base. Destination accepts format identifiers. If you do not specify the base filename in the URI, the service will use the filename of the input file. If your job has multiple inputs, the service uses the filename of the first input file.+fileGroupSettings+    :: FileGroupSettings+fileGroupSettings = FileGroupSettings' {_fgsDestination = Nothing}+++-- | Use Destination (Destination) to specify the S3 output location and the output filename base. Destination accepts format identifiers. If you do not specify the base filename in the URI, the service will use the filename of the input file. If your job has multiple inputs, the service uses the filename of the first input file.+fgsDestination :: Lens' FileGroupSettings (Maybe Text)+fgsDestination = lens _fgsDestination (\ s a -> s{_fgsDestination = a})++instance FromJSON FileGroupSettings where+        parseJSON+          = withObject "FileGroupSettings"+              (\ x -> FileGroupSettings' <$> (x .:? "destination"))++instance Hashable FileGroupSettings where++instance NFData FileGroupSettings where++instance ToJSON FileGroupSettings where+        toJSON FileGroupSettings'{..}+          = object+              (catMaybes [("destination" .=) <$> _fgsDestination])++-- | Settings for File-based Captions in Source+--+-- /See:/ 'fileSourceSettings' smart constructor.+data FileSourceSettings = FileSourceSettings'+  { _fssConvert608To708 :: !(Maybe FileSourceConvert608To708)+  , _fssTimeDelta       :: !(Maybe Int)+  , _fssSourceFile      :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'FileSourceSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fssConvert608To708' - Undocumented member.+--+-- * 'fssTimeDelta' - Specifies a time delta in seconds to offset the captions from the source file.+--+-- * 'fssSourceFile' - External caption file used for loading captions. Accepted file extensions are 'scc', 'ttml', 'dfxp', 'stl', 'srt', and 'smi'.+fileSourceSettings+    :: FileSourceSettings+fileSourceSettings =+  FileSourceSettings'+    { _fssConvert608To708 = Nothing+    , _fssTimeDelta = Nothing+    , _fssSourceFile = Nothing+    }+++-- | Undocumented member.+fssConvert608To708 :: Lens' FileSourceSettings (Maybe FileSourceConvert608To708)+fssConvert608To708 = lens _fssConvert608To708 (\ s a -> s{_fssConvert608To708 = a})++-- | Specifies a time delta in seconds to offset the captions from the source file.+fssTimeDelta :: Lens' FileSourceSettings (Maybe Int)+fssTimeDelta = lens _fssTimeDelta (\ s a -> s{_fssTimeDelta = a})++-- | External caption file used for loading captions. Accepted file extensions are 'scc', 'ttml', 'dfxp', 'stl', 'srt', and 'smi'.+fssSourceFile :: Lens' FileSourceSettings (Maybe Text)+fssSourceFile = lens _fssSourceFile (\ s a -> s{_fssSourceFile = a})++instance FromJSON FileSourceSettings where+        parseJSON+          = withObject "FileSourceSettings"+              (\ x ->+                 FileSourceSettings' <$>+                   (x .:? "convert608To708") <*> (x .:? "timeDelta") <*>+                     (x .:? "sourceFile"))++instance Hashable FileSourceSettings where++instance NFData FileSourceSettings where++instance ToJSON FileSourceSettings where+        toJSON FileSourceSettings'{..}+          = object+              (catMaybes+                 [("convert608To708" .=) <$> _fssConvert608To708,+                  ("timeDelta" .=) <$> _fssTimeDelta,+                  ("sourceFile" .=) <$> _fssSourceFile])++-- | Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the value FRAME_CAPTURE.+--+-- /See:/ 'frameCaptureSettings' smart constructor.+data FrameCaptureSettings = FrameCaptureSettings'+  { _fcsQuality              :: !(Maybe Int)+  , _fcsFramerateDenominator :: !(Maybe Int)+  , _fcsMaxCaptures          :: !(Maybe Int)+  , _fcsFramerateNumerator   :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'FrameCaptureSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fcsQuality' - JPEG Quality - a higher value equals higher quality.+--+-- * 'fcsFramerateDenominator' - Frame capture will encode the first frame of the output stream, then one frame every framerateDenominator/framerateNumerator seconds. For example, settings of framerateNumerator = 1 and framerateDenominator = 3 (a rate of 1/3 frame per second) will capture the first frame, then 1 frame every 3s. Files will be named as filename.n.jpg where n is the 0-based sequence number of each Capture.+--+-- * 'fcsMaxCaptures' - Maximum number of captures (encoded jpg output files).+--+-- * 'fcsFramerateNumerator' - Frame capture will encode the first frame of the output stream, then one frame every framerateDenominator/framerateNumerator seconds. For example, settings of framerateNumerator = 1 and framerateDenominator = 3 (a rate of 1/3 frame per second) will capture the first frame, then 1 frame every 3s. Files will be named as filename.NNNNNNN.jpg where N is the 0-based frame sequence number zero padded to 7 decimal places.+frameCaptureSettings+    :: FrameCaptureSettings+frameCaptureSettings =+  FrameCaptureSettings'+    { _fcsQuality = Nothing+    , _fcsFramerateDenominator = Nothing+    , _fcsMaxCaptures = Nothing+    , _fcsFramerateNumerator = Nothing+    }+++-- | JPEG Quality - a higher value equals higher quality.+fcsQuality :: Lens' FrameCaptureSettings (Maybe Int)+fcsQuality = lens _fcsQuality (\ s a -> s{_fcsQuality = a})++-- | Frame capture will encode the first frame of the output stream, then one frame every framerateDenominator/framerateNumerator seconds. For example, settings of framerateNumerator = 1 and framerateDenominator = 3 (a rate of 1/3 frame per second) will capture the first frame, then 1 frame every 3s. Files will be named as filename.n.jpg where n is the 0-based sequence number of each Capture.+fcsFramerateDenominator :: Lens' FrameCaptureSettings (Maybe Int)+fcsFramerateDenominator = lens _fcsFramerateDenominator (\ s a -> s{_fcsFramerateDenominator = a})++-- | Maximum number of captures (encoded jpg output files).+fcsMaxCaptures :: Lens' FrameCaptureSettings (Maybe Int)+fcsMaxCaptures = lens _fcsMaxCaptures (\ s a -> s{_fcsMaxCaptures = a})++-- | Frame capture will encode the first frame of the output stream, then one frame every framerateDenominator/framerateNumerator seconds. For example, settings of framerateNumerator = 1 and framerateDenominator = 3 (a rate of 1/3 frame per second) will capture the first frame, then 1 frame every 3s. Files will be named as filename.NNNNNNN.jpg where N is the 0-based frame sequence number zero padded to 7 decimal places.+fcsFramerateNumerator :: Lens' FrameCaptureSettings (Maybe Int)+fcsFramerateNumerator = lens _fcsFramerateNumerator (\ s a -> s{_fcsFramerateNumerator = a})++instance FromJSON FrameCaptureSettings where+        parseJSON+          = withObject "FrameCaptureSettings"+              (\ x ->+                 FrameCaptureSettings' <$>+                   (x .:? "quality") <*> (x .:? "framerateDenominator")+                     <*> (x .:? "maxCaptures")+                     <*> (x .:? "framerateNumerator"))++instance Hashable FrameCaptureSettings where++instance NFData FrameCaptureSettings where++instance ToJSON FrameCaptureSettings where+        toJSON FrameCaptureSettings'{..}+          = object+              (catMaybes+                 [("quality" .=) <$> _fcsQuality,+                  ("framerateDenominator" .=) <$>+                    _fcsFramerateDenominator,+                  ("maxCaptures" .=) <$> _fcsMaxCaptures,+                  ("framerateNumerator" .=) <$>+                    _fcsFramerateNumerator])++-- | Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the value H_264.+--+-- /See:/ 'h264Settings' smart constructor.+data H264Settings = H264Settings'+  { _hUnregisteredSeiTimecode :: !(Maybe H264UnregisteredSeiTimecode)+  , _hQualityTuningLevel :: !(Maybe H264QualityTuningLevel)+  , _hTemporalAdaptiveQuantization :: !(Maybe H264TemporalAdaptiveQuantization)+  , _hSceneChangeDetect :: !(Maybe H264SceneChangeDetect)+  , _hHrdBufferInitialFillPercentage :: !(Maybe Int)+  , _hSlowPal :: !(Maybe H264SlowPal)+  , _hParNumerator :: !(Maybe Int)+  , _hGopSize :: !(Maybe Double)+  , _hNumberBFramesBetweenReferenceFrames :: !(Maybe Int)+  , _hGopSizeUnits :: !(Maybe H264GopSizeUnits)+  , _hHrdBufferSize :: !(Maybe Int)+  , _hSlices :: !(Maybe Int)+  , _hRateControlMode :: !(Maybe H264RateControlMode)+  , _hNumberReferenceFrames :: !(Maybe Int)+  , _hTelecine :: !(Maybe H264Telecine)+  , _hMinIInterval :: !(Maybe Int)+  , _hInterlaceMode :: !(Maybe H264InterlaceMode)+  , _hParControl :: !(Maybe H264ParControl)+  , _hRepeatPps :: !(Maybe H264RepeatPps)+  , _hFlickerAdaptiveQuantization :: !(Maybe H264FlickerAdaptiveQuantization)+  , _hSoftness :: !(Maybe Int)+  , _hCodecProfile :: !(Maybe H264CodecProfile)+  , _hBitrate :: !(Maybe Int)+  , _hFramerateDenominator :: !(Maybe Int)+  , _hFramerateConversionAlgorithm :: !(Maybe H264FramerateConversionAlgorithm)+  , _hCodecLevel :: !(Maybe H264CodecLevel)+  , _hEntropyEncoding :: !(Maybe H264EntropyEncoding)+  , _hFramerateControl :: !(Maybe H264FramerateControl)+  , _hAdaptiveQuantization :: !(Maybe H264AdaptiveQuantization)+  , _hFramerateNumerator :: !(Maybe Int)+  , _hGopBReference :: !(Maybe H264GopBReference)+  , _hMaxBitrate :: !(Maybe Int)+  , _hSyntax :: !(Maybe H264Syntax)+  , _hFieldEncoding :: !(Maybe H264FieldEncoding)+  , _hGopClosedCadence :: !(Maybe Int)+  , _hParDenominator :: !(Maybe Int)+  , _hSpatialAdaptiveQuantization :: !(Maybe H264SpatialAdaptiveQuantization)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'H264Settings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hUnregisteredSeiTimecode' - Undocumented member.+--+-- * 'hQualityTuningLevel' - Undocumented member.+--+-- * 'hTemporalAdaptiveQuantization' - Undocumented member.+--+-- * 'hSceneChangeDetect' - Undocumented member.+--+-- * 'hHrdBufferInitialFillPercentage' - Percentage of the buffer that should initially be filled (HRD buffer model).+--+-- * 'hSlowPal' - Undocumented member.+--+-- * 'hParNumerator' - Pixel Aspect Ratio numerator.+--+-- * 'hGopSize' - GOP Length (keyframe interval) in frames or seconds. Must be greater than zero.+--+-- * 'hNumberBFramesBetweenReferenceFrames' - Number of B-frames between reference frames.+--+-- * 'hGopSizeUnits' - Undocumented member.+--+-- * 'hHrdBufferSize' - Size of buffer (HRD buffer model). Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m.+--+-- * 'hSlices' - Number of slices per picture. Must be less than or equal to the number of macroblock rows for progressive pictures, and less than or equal to half the number of macroblock rows for interlaced pictures.+--+-- * 'hRateControlMode' - Undocumented member.+--+-- * 'hNumberReferenceFrames' - Number of reference frames to use. The encoder may use more than requested if using B-frames and/or interlaced encoding.+--+-- * 'hTelecine' - Undocumented member.+--+-- * 'hMinIInterval' - Enforces separation between repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal cadence resumes for the next GOP. This setting is only used when Scene Change Detect is enabled. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1+--+-- * 'hInterlaceMode' - Undocumented member.+--+-- * 'hParControl' - Undocumented member.+--+-- * 'hRepeatPps' - Undocumented member.+--+-- * 'hFlickerAdaptiveQuantization' - Undocumented member.+--+-- * 'hSoftness' - Softness. Selects quantizer matrix, larger values reduce high-frequency content in the encoded image.+--+-- * 'hCodecProfile' - Undocumented member.+--+-- * 'hBitrate' - Average bitrate in bits/second. Required for VBR, CBR, and ABR. Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m. For MS Smooth outputs, bitrates must be unique when rounded down to the nearest multiple of 1000.+--+-- * 'hFramerateDenominator' - When you use the API for transcode jobs that use framerate conversion, specify the framerate as a fraction. For example,  24000 / 1001 = 23.976 fps. Use FramerateDenominator to specify the denominator of this fraction. In this example, use 1001 for the value of FramerateDenominator. When you use the console for transcode jobs that use framerate conversion, provide the value as a decimal number for Framerate. In this example, specify 23.976.+--+-- * 'hFramerateConversionAlgorithm' - Undocumented member.+--+-- * 'hCodecLevel' - Undocumented member.+--+-- * 'hEntropyEncoding' - Undocumented member.+--+-- * 'hFramerateControl' - Undocumented member.+--+-- * 'hAdaptiveQuantization' - Undocumented member.+--+-- * 'hFramerateNumerator' - Framerate numerator - framerate is a fraction, e.g. 24000 / 1001 = 23.976 fps.+--+-- * 'hGopBReference' - Undocumented member.+--+-- * 'hMaxBitrate' - Maximum bitrate in bits/second (for VBR mode only). Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m.+--+-- * 'hSyntax' - Undocumented member.+--+-- * 'hFieldEncoding' - Undocumented member.+--+-- * 'hGopClosedCadence' - Frequency of closed GOPs. In streaming applications, it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as quickly as possible. Setting this value to 0 will break output segmenting.+--+-- * 'hParDenominator' - Pixel Aspect Ratio denominator.+--+-- * 'hSpatialAdaptiveQuantization' - Undocumented member.+h264Settings+    :: H264Settings+h264Settings =+  H264Settings'+    { _hUnregisteredSeiTimecode = Nothing+    , _hQualityTuningLevel = Nothing+    , _hTemporalAdaptiveQuantization = Nothing+    , _hSceneChangeDetect = Nothing+    , _hHrdBufferInitialFillPercentage = Nothing+    , _hSlowPal = Nothing+    , _hParNumerator = Nothing+    , _hGopSize = Nothing+    , _hNumberBFramesBetweenReferenceFrames = Nothing+    , _hGopSizeUnits = Nothing+    , _hHrdBufferSize = Nothing+    , _hSlices = Nothing+    , _hRateControlMode = Nothing+    , _hNumberReferenceFrames = Nothing+    , _hTelecine = Nothing+    , _hMinIInterval = Nothing+    , _hInterlaceMode = Nothing+    , _hParControl = Nothing+    , _hRepeatPps = Nothing+    , _hFlickerAdaptiveQuantization = Nothing+    , _hSoftness = Nothing+    , _hCodecProfile = Nothing+    , _hBitrate = Nothing+    , _hFramerateDenominator = Nothing+    , _hFramerateConversionAlgorithm = Nothing+    , _hCodecLevel = Nothing+    , _hEntropyEncoding = Nothing+    , _hFramerateControl = Nothing+    , _hAdaptiveQuantization = Nothing+    , _hFramerateNumerator = Nothing+    , _hGopBReference = Nothing+    , _hMaxBitrate = Nothing+    , _hSyntax = Nothing+    , _hFieldEncoding = Nothing+    , _hGopClosedCadence = Nothing+    , _hParDenominator = Nothing+    , _hSpatialAdaptiveQuantization = Nothing+    }+++-- | Undocumented member.+hUnregisteredSeiTimecode :: Lens' H264Settings (Maybe H264UnregisteredSeiTimecode)+hUnregisteredSeiTimecode = lens _hUnregisteredSeiTimecode (\ s a -> s{_hUnregisteredSeiTimecode = a})++-- | Undocumented member.+hQualityTuningLevel :: Lens' H264Settings (Maybe H264QualityTuningLevel)+hQualityTuningLevel = lens _hQualityTuningLevel (\ s a -> s{_hQualityTuningLevel = a})++-- | Undocumented member.+hTemporalAdaptiveQuantization :: Lens' H264Settings (Maybe H264TemporalAdaptiveQuantization)+hTemporalAdaptiveQuantization = lens _hTemporalAdaptiveQuantization (\ s a -> s{_hTemporalAdaptiveQuantization = a})++-- | Undocumented member.+hSceneChangeDetect :: Lens' H264Settings (Maybe H264SceneChangeDetect)+hSceneChangeDetect = lens _hSceneChangeDetect (\ s a -> s{_hSceneChangeDetect = a})++-- | Percentage of the buffer that should initially be filled (HRD buffer model).+hHrdBufferInitialFillPercentage :: Lens' H264Settings (Maybe Int)+hHrdBufferInitialFillPercentage = lens _hHrdBufferInitialFillPercentage (\ s a -> s{_hHrdBufferInitialFillPercentage = a})++-- | Undocumented member.+hSlowPal :: Lens' H264Settings (Maybe H264SlowPal)+hSlowPal = lens _hSlowPal (\ s a -> s{_hSlowPal = a})++-- | Pixel Aspect Ratio numerator.+hParNumerator :: Lens' H264Settings (Maybe Int)+hParNumerator = lens _hParNumerator (\ s a -> s{_hParNumerator = a})++-- | GOP Length (keyframe interval) in frames or seconds. Must be greater than zero.+hGopSize :: Lens' H264Settings (Maybe Double)+hGopSize = lens _hGopSize (\ s a -> s{_hGopSize = a})++-- | Number of B-frames between reference frames.+hNumberBFramesBetweenReferenceFrames :: Lens' H264Settings (Maybe Int)+hNumberBFramesBetweenReferenceFrames = lens _hNumberBFramesBetweenReferenceFrames (\ s a -> s{_hNumberBFramesBetweenReferenceFrames = a})++-- | Undocumented member.+hGopSizeUnits :: Lens' H264Settings (Maybe H264GopSizeUnits)+hGopSizeUnits = lens _hGopSizeUnits (\ s a -> s{_hGopSizeUnits = a})++-- | Size of buffer (HRD buffer model). Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m.+hHrdBufferSize :: Lens' H264Settings (Maybe Int)+hHrdBufferSize = lens _hHrdBufferSize (\ s a -> s{_hHrdBufferSize = a})++-- | Number of slices per picture. Must be less than or equal to the number of macroblock rows for progressive pictures, and less than or equal to half the number of macroblock rows for interlaced pictures.+hSlices :: Lens' H264Settings (Maybe Int)+hSlices = lens _hSlices (\ s a -> s{_hSlices = a})++-- | Undocumented member.+hRateControlMode :: Lens' H264Settings (Maybe H264RateControlMode)+hRateControlMode = lens _hRateControlMode (\ s a -> s{_hRateControlMode = a})++-- | Number of reference frames to use. The encoder may use more than requested if using B-frames and/or interlaced encoding.+hNumberReferenceFrames :: Lens' H264Settings (Maybe Int)+hNumberReferenceFrames = lens _hNumberReferenceFrames (\ s a -> s{_hNumberReferenceFrames = a})++-- | Undocumented member.+hTelecine :: Lens' H264Settings (Maybe H264Telecine)+hTelecine = lens _hTelecine (\ s a -> s{_hTelecine = a})++-- | Enforces separation between repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal cadence resumes for the next GOP. This setting is only used when Scene Change Detect is enabled. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1+hMinIInterval :: Lens' H264Settings (Maybe Int)+hMinIInterval = lens _hMinIInterval (\ s a -> s{_hMinIInterval = a})++-- | Undocumented member.+hInterlaceMode :: Lens' H264Settings (Maybe H264InterlaceMode)+hInterlaceMode = lens _hInterlaceMode (\ s a -> s{_hInterlaceMode = a})++-- | Undocumented member.+hParControl :: Lens' H264Settings (Maybe H264ParControl)+hParControl = lens _hParControl (\ s a -> s{_hParControl = a})++-- | Undocumented member.+hRepeatPps :: Lens' H264Settings (Maybe H264RepeatPps)+hRepeatPps = lens _hRepeatPps (\ s a -> s{_hRepeatPps = a})++-- | Undocumented member.+hFlickerAdaptiveQuantization :: Lens' H264Settings (Maybe H264FlickerAdaptiveQuantization)+hFlickerAdaptiveQuantization = lens _hFlickerAdaptiveQuantization (\ s a -> s{_hFlickerAdaptiveQuantization = a})++-- | Softness. Selects quantizer matrix, larger values reduce high-frequency content in the encoded image.+hSoftness :: Lens' H264Settings (Maybe Int)+hSoftness = lens _hSoftness (\ s a -> s{_hSoftness = a})++-- | Undocumented member.+hCodecProfile :: Lens' H264Settings (Maybe H264CodecProfile)+hCodecProfile = lens _hCodecProfile (\ s a -> s{_hCodecProfile = a})++-- | Average bitrate in bits/second. Required for VBR, CBR, and ABR. Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m. For MS Smooth outputs, bitrates must be unique when rounded down to the nearest multiple of 1000.+hBitrate :: Lens' H264Settings (Maybe Int)+hBitrate = lens _hBitrate (\ s a -> s{_hBitrate = a})++-- | When you use the API for transcode jobs that use framerate conversion, specify the framerate as a fraction. For example,  24000 / 1001 = 23.976 fps. Use FramerateDenominator to specify the denominator of this fraction. In this example, use 1001 for the value of FramerateDenominator. When you use the console for transcode jobs that use framerate conversion, provide the value as a decimal number for Framerate. In this example, specify 23.976.+hFramerateDenominator :: Lens' H264Settings (Maybe Int)+hFramerateDenominator = lens _hFramerateDenominator (\ s a -> s{_hFramerateDenominator = a})++-- | Undocumented member.+hFramerateConversionAlgorithm :: Lens' H264Settings (Maybe H264FramerateConversionAlgorithm)+hFramerateConversionAlgorithm = lens _hFramerateConversionAlgorithm (\ s a -> s{_hFramerateConversionAlgorithm = a})++-- | Undocumented member.+hCodecLevel :: Lens' H264Settings (Maybe H264CodecLevel)+hCodecLevel = lens _hCodecLevel (\ s a -> s{_hCodecLevel = a})++-- | Undocumented member.+hEntropyEncoding :: Lens' H264Settings (Maybe H264EntropyEncoding)+hEntropyEncoding = lens _hEntropyEncoding (\ s a -> s{_hEntropyEncoding = a})++-- | Undocumented member.+hFramerateControl :: Lens' H264Settings (Maybe H264FramerateControl)+hFramerateControl = lens _hFramerateControl (\ s a -> s{_hFramerateControl = a})++-- | Undocumented member.+hAdaptiveQuantization :: Lens' H264Settings (Maybe H264AdaptiveQuantization)+hAdaptiveQuantization = lens _hAdaptiveQuantization (\ s a -> s{_hAdaptiveQuantization = a})++-- | Framerate numerator - framerate is a fraction, e.g. 24000 / 1001 = 23.976 fps.+hFramerateNumerator :: Lens' H264Settings (Maybe Int)+hFramerateNumerator = lens _hFramerateNumerator (\ s a -> s{_hFramerateNumerator = a})++-- | Undocumented member.+hGopBReference :: Lens' H264Settings (Maybe H264GopBReference)+hGopBReference = lens _hGopBReference (\ s a -> s{_hGopBReference = a})++-- | Maximum bitrate in bits/second (for VBR mode only). Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m.+hMaxBitrate :: Lens' H264Settings (Maybe Int)+hMaxBitrate = lens _hMaxBitrate (\ s a -> s{_hMaxBitrate = a})++-- | Undocumented member.+hSyntax :: Lens' H264Settings (Maybe H264Syntax)+hSyntax = lens _hSyntax (\ s a -> s{_hSyntax = a})++-- | Undocumented member.+hFieldEncoding :: Lens' H264Settings (Maybe H264FieldEncoding)+hFieldEncoding = lens _hFieldEncoding (\ s a -> s{_hFieldEncoding = a})++-- | Frequency of closed GOPs. In streaming applications, it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as quickly as possible. Setting this value to 0 will break output segmenting.+hGopClosedCadence :: Lens' H264Settings (Maybe Int)+hGopClosedCadence = lens _hGopClosedCadence (\ s a -> s{_hGopClosedCadence = a})++-- | Pixel Aspect Ratio denominator.+hParDenominator :: Lens' H264Settings (Maybe Int)+hParDenominator = lens _hParDenominator (\ s a -> s{_hParDenominator = a})++-- | Undocumented member.+hSpatialAdaptiveQuantization :: Lens' H264Settings (Maybe H264SpatialAdaptiveQuantization)+hSpatialAdaptiveQuantization = lens _hSpatialAdaptiveQuantization (\ s a -> s{_hSpatialAdaptiveQuantization = a})++instance FromJSON H264Settings where+        parseJSON+          = withObject "H264Settings"+              (\ x ->+                 H264Settings' <$>+                   (x .:? "unregisteredSeiTimecode") <*>+                     (x .:? "qualityTuningLevel")+                     <*> (x .:? "temporalAdaptiveQuantization")+                     <*> (x .:? "sceneChangeDetect")+                     <*> (x .:? "hrdBufferInitialFillPercentage")+                     <*> (x .:? "slowPal")+                     <*> (x .:? "parNumerator")+                     <*> (x .:? "gopSize")+                     <*> (x .:? "numberBFramesBetweenReferenceFrames")+                     <*> (x .:? "gopSizeUnits")+                     <*> (x .:? "hrdBufferSize")+                     <*> (x .:? "slices")+                     <*> (x .:? "rateControlMode")+                     <*> (x .:? "numberReferenceFrames")+                     <*> (x .:? "telecine")+                     <*> (x .:? "minIInterval")+                     <*> (x .:? "interlaceMode")+                     <*> (x .:? "parControl")+                     <*> (x .:? "repeatPps")+                     <*> (x .:? "flickerAdaptiveQuantization")+                     <*> (x .:? "softness")+                     <*> (x .:? "codecProfile")+                     <*> (x .:? "bitrate")+                     <*> (x .:? "framerateDenominator")+                     <*> (x .:? "framerateConversionAlgorithm")+                     <*> (x .:? "codecLevel")+                     <*> (x .:? "entropyEncoding")+                     <*> (x .:? "framerateControl")+                     <*> (x .:? "adaptiveQuantization")+                     <*> (x .:? "framerateNumerator")+                     <*> (x .:? "gopBReference")+                     <*> (x .:? "maxBitrate")+                     <*> (x .:? "syntax")+                     <*> (x .:? "fieldEncoding")+                     <*> (x .:? "gopClosedCadence")+                     <*> (x .:? "parDenominator")+                     <*> (x .:? "spatialAdaptiveQuantization"))++instance Hashable H264Settings where++instance NFData H264Settings where++instance ToJSON H264Settings where+        toJSON H264Settings'{..}+          = object+              (catMaybes+                 [("unregisteredSeiTimecode" .=) <$>+                    _hUnregisteredSeiTimecode,+                  ("qualityTuningLevel" .=) <$> _hQualityTuningLevel,+                  ("temporalAdaptiveQuantization" .=) <$>+                    _hTemporalAdaptiveQuantization,+                  ("sceneChangeDetect" .=) <$> _hSceneChangeDetect,+                  ("hrdBufferInitialFillPercentage" .=) <$>+                    _hHrdBufferInitialFillPercentage,+                  ("slowPal" .=) <$> _hSlowPal,+                  ("parNumerator" .=) <$> _hParNumerator,+                  ("gopSize" .=) <$> _hGopSize,+                  ("numberBFramesBetweenReferenceFrames" .=) <$>+                    _hNumberBFramesBetweenReferenceFrames,+                  ("gopSizeUnits" .=) <$> _hGopSizeUnits,+                  ("hrdBufferSize" .=) <$> _hHrdBufferSize,+                  ("slices" .=) <$> _hSlices,+                  ("rateControlMode" .=) <$> _hRateControlMode,+                  ("numberReferenceFrames" .=) <$>+                    _hNumberReferenceFrames,+                  ("telecine" .=) <$> _hTelecine,+                  ("minIInterval" .=) <$> _hMinIInterval,+                  ("interlaceMode" .=) <$> _hInterlaceMode,+                  ("parControl" .=) <$> _hParControl,+                  ("repeatPps" .=) <$> _hRepeatPps,+                  ("flickerAdaptiveQuantization" .=) <$>+                    _hFlickerAdaptiveQuantization,+                  ("softness" .=) <$> _hSoftness,+                  ("codecProfile" .=) <$> _hCodecProfile,+                  ("bitrate" .=) <$> _hBitrate,+                  ("framerateDenominator" .=) <$>+                    _hFramerateDenominator,+                  ("framerateConversionAlgorithm" .=) <$>+                    _hFramerateConversionAlgorithm,+                  ("codecLevel" .=) <$> _hCodecLevel,+                  ("entropyEncoding" .=) <$> _hEntropyEncoding,+                  ("framerateControl" .=) <$> _hFramerateControl,+                  ("adaptiveQuantization" .=) <$>+                    _hAdaptiveQuantization,+                  ("framerateNumerator" .=) <$> _hFramerateNumerator,+                  ("gopBReference" .=) <$> _hGopBReference,+                  ("maxBitrate" .=) <$> _hMaxBitrate,+                  ("syntax" .=) <$> _hSyntax,+                  ("fieldEncoding" .=) <$> _hFieldEncoding,+                  ("gopClosedCadence" .=) <$> _hGopClosedCadence,+                  ("parDenominator" .=) <$> _hParDenominator,+                  ("spatialAdaptiveQuantization" .=) <$>+                    _hSpatialAdaptiveQuantization])++-- | Settings for H265 codec+--+-- /See:/ 'h265Settings' smart constructor.+data H265Settings = H265Settings'+  { _hsUnregisteredSeiTimecode :: !(Maybe H265UnregisteredSeiTimecode)+  , _hsQualityTuningLevel :: !(Maybe H265QualityTuningLevel)+  , _hsTemporalAdaptiveQuantization :: !(Maybe H265TemporalAdaptiveQuantization)+  , _hsSceneChangeDetect :: !(Maybe H265SceneChangeDetect)+  , _hsHrdBufferInitialFillPercentage :: !(Maybe Int)+  , _hsTiles :: !(Maybe H265Tiles)+  , _hsSlowPal :: !(Maybe H265SlowPal)+  , _hsTemporalIds :: !(Maybe H265TemporalIds)+  , _hsParNumerator :: !(Maybe Int)+  , _hsGopSize :: !(Maybe Double)+  , _hsNumberBFramesBetweenReferenceFrames :: !(Maybe Int)+  , _hsGopSizeUnits :: !(Maybe H265GopSizeUnits)+  , _hsHrdBufferSize :: !(Maybe Int)+  , _hsSlices :: !(Maybe Int)+  , _hsAlternateTransferFunctionSei :: !(Maybe H265AlternateTransferFunctionSei)+  , _hsRateControlMode :: !(Maybe H265RateControlMode)+  , _hsNumberReferenceFrames :: !(Maybe Int)+  , _hsTelecine :: !(Maybe H265Telecine)+  , _hsMinIInterval :: !(Maybe Int)+  , _hsInterlaceMode :: !(Maybe H265InterlaceMode)+  , _hsParControl :: !(Maybe H265ParControl)+  , _hsFlickerAdaptiveQuantization :: !(Maybe H265FlickerAdaptiveQuantization)+  , _hsSampleAdaptiveOffsetFilterMode :: !(Maybe H265SampleAdaptiveOffsetFilterMode)+  , _hsCodecProfile :: !(Maybe H265CodecProfile)+  , _hsBitrate :: !(Maybe Int)+  , _hsFramerateDenominator :: !(Maybe Int)+  , _hsFramerateConversionAlgorithm :: !(Maybe H265FramerateConversionAlgorithm)+  , _hsCodecLevel :: !(Maybe H265CodecLevel)+  , _hsFramerateControl :: !(Maybe H265FramerateControl)+  , _hsAdaptiveQuantization :: !(Maybe H265AdaptiveQuantization)+  , _hsFramerateNumerator :: !(Maybe Int)+  , _hsGopBReference :: !(Maybe H265GopBReference)+  , _hsMaxBitrate :: !(Maybe Int)+  , _hsGopClosedCadence :: !(Maybe Int)+  , _hsParDenominator :: !(Maybe Int)+  , _hsSpatialAdaptiveQuantization :: !(Maybe H265SpatialAdaptiveQuantization)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'H265Settings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hsUnregisteredSeiTimecode' - Undocumented member.+--+-- * 'hsQualityTuningLevel' - Undocumented member.+--+-- * 'hsTemporalAdaptiveQuantization' - Undocumented member.+--+-- * 'hsSceneChangeDetect' - Undocumented member.+--+-- * 'hsHrdBufferInitialFillPercentage' - Percentage of the buffer that should initially be filled (HRD buffer model).+--+-- * 'hsTiles' - Undocumented member.+--+-- * 'hsSlowPal' - Undocumented member.+--+-- * 'hsTemporalIds' - Undocumented member.+--+-- * 'hsParNumerator' - Pixel Aspect Ratio numerator.+--+-- * 'hsGopSize' - GOP Length (keyframe interval) in frames or seconds. Must be greater than zero.+--+-- * 'hsNumberBFramesBetweenReferenceFrames' - Number of B-frames between reference frames.+--+-- * 'hsGopSizeUnits' - Undocumented member.+--+-- * 'hsHrdBufferSize' - Size of buffer (HRD buffer model). Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m.+--+-- * 'hsSlices' - Number of slices per picture. Must be less than or equal to the number of macroblock rows for progressive pictures, and less than or equal to half the number of macroblock rows for interlaced pictures.+--+-- * 'hsAlternateTransferFunctionSei' - Undocumented member.+--+-- * 'hsRateControlMode' - Undocumented member.+--+-- * 'hsNumberReferenceFrames' - Number of reference frames to use. The encoder may use more than requested if using B-frames and/or interlaced encoding.+--+-- * 'hsTelecine' - Undocumented member.+--+-- * 'hsMinIInterval' - Enforces separation between repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal cadence resumes for the next GOP. This setting is only used when Scene Change Detect is enabled. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1+--+-- * 'hsInterlaceMode' - Undocumented member.+--+-- * 'hsParControl' - Undocumented member.+--+-- * 'hsFlickerAdaptiveQuantization' - Undocumented member.+--+-- * 'hsSampleAdaptiveOffsetFilterMode' - Undocumented member.+--+-- * 'hsCodecProfile' - Undocumented member.+--+-- * 'hsBitrate' - Average bitrate in bits/second. Required for VBR, CBR, and ABR. Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m. For MS Smooth outputs, bitrates must be unique when rounded down to the nearest multiple of 1000.+--+-- * 'hsFramerateDenominator' - Framerate denominator.+--+-- * 'hsFramerateConversionAlgorithm' - Undocumented member.+--+-- * 'hsCodecLevel' - Undocumented member.+--+-- * 'hsFramerateControl' - Undocumented member.+--+-- * 'hsAdaptiveQuantization' - Undocumented member.+--+-- * 'hsFramerateNumerator' - Framerate numerator - framerate is a fraction, e.g. 24000 / 1001 = 23.976 fps.+--+-- * 'hsGopBReference' - Undocumented member.+--+-- * 'hsMaxBitrate' - Maximum bitrate in bits/second (for VBR mode only). Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m.+--+-- * 'hsGopClosedCadence' - Frequency of closed GOPs. In streaming applications, it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as quickly as possible. Setting this value to 0 will break output segmenting.+--+-- * 'hsParDenominator' - Pixel Aspect Ratio denominator.+--+-- * 'hsSpatialAdaptiveQuantization' - Undocumented member.+h265Settings+    :: H265Settings+h265Settings =+  H265Settings'+    { _hsUnregisteredSeiTimecode = Nothing+    , _hsQualityTuningLevel = Nothing+    , _hsTemporalAdaptiveQuantization = Nothing+    , _hsSceneChangeDetect = Nothing+    , _hsHrdBufferInitialFillPercentage = Nothing+    , _hsTiles = Nothing+    , _hsSlowPal = Nothing+    , _hsTemporalIds = Nothing+    , _hsParNumerator = Nothing+    , _hsGopSize = Nothing+    , _hsNumberBFramesBetweenReferenceFrames = Nothing+    , _hsGopSizeUnits = Nothing+    , _hsHrdBufferSize = Nothing+    , _hsSlices = Nothing+    , _hsAlternateTransferFunctionSei = Nothing+    , _hsRateControlMode = Nothing+    , _hsNumberReferenceFrames = Nothing+    , _hsTelecine = Nothing+    , _hsMinIInterval = Nothing+    , _hsInterlaceMode = Nothing+    , _hsParControl = Nothing+    , _hsFlickerAdaptiveQuantization = Nothing+    , _hsSampleAdaptiveOffsetFilterMode = Nothing+    , _hsCodecProfile = Nothing+    , _hsBitrate = Nothing+    , _hsFramerateDenominator = Nothing+    , _hsFramerateConversionAlgorithm = Nothing+    , _hsCodecLevel = Nothing+    , _hsFramerateControl = Nothing+    , _hsAdaptiveQuantization = Nothing+    , _hsFramerateNumerator = Nothing+    , _hsGopBReference = Nothing+    , _hsMaxBitrate = Nothing+    , _hsGopClosedCadence = Nothing+    , _hsParDenominator = Nothing+    , _hsSpatialAdaptiveQuantization = Nothing+    }+++-- | Undocumented member.+hsUnregisteredSeiTimecode :: Lens' H265Settings (Maybe H265UnregisteredSeiTimecode)+hsUnregisteredSeiTimecode = lens _hsUnregisteredSeiTimecode (\ s a -> s{_hsUnregisteredSeiTimecode = a})++-- | Undocumented member.+hsQualityTuningLevel :: Lens' H265Settings (Maybe H265QualityTuningLevel)+hsQualityTuningLevel = lens _hsQualityTuningLevel (\ s a -> s{_hsQualityTuningLevel = a})++-- | Undocumented member.+hsTemporalAdaptiveQuantization :: Lens' H265Settings (Maybe H265TemporalAdaptiveQuantization)+hsTemporalAdaptiveQuantization = lens _hsTemporalAdaptiveQuantization (\ s a -> s{_hsTemporalAdaptiveQuantization = a})++-- | Undocumented member.+hsSceneChangeDetect :: Lens' H265Settings (Maybe H265SceneChangeDetect)+hsSceneChangeDetect = lens _hsSceneChangeDetect (\ s a -> s{_hsSceneChangeDetect = a})++-- | Percentage of the buffer that should initially be filled (HRD buffer model).+hsHrdBufferInitialFillPercentage :: Lens' H265Settings (Maybe Int)+hsHrdBufferInitialFillPercentage = lens _hsHrdBufferInitialFillPercentage (\ s a -> s{_hsHrdBufferInitialFillPercentage = a})++-- | Undocumented member.+hsTiles :: Lens' H265Settings (Maybe H265Tiles)+hsTiles = lens _hsTiles (\ s a -> s{_hsTiles = a})++-- | Undocumented member.+hsSlowPal :: Lens' H265Settings (Maybe H265SlowPal)+hsSlowPal = lens _hsSlowPal (\ s a -> s{_hsSlowPal = a})++-- | Undocumented member.+hsTemporalIds :: Lens' H265Settings (Maybe H265TemporalIds)+hsTemporalIds = lens _hsTemporalIds (\ s a -> s{_hsTemporalIds = a})++-- | Pixel Aspect Ratio numerator.+hsParNumerator :: Lens' H265Settings (Maybe Int)+hsParNumerator = lens _hsParNumerator (\ s a -> s{_hsParNumerator = a})++-- | GOP Length (keyframe interval) in frames or seconds. Must be greater than zero.+hsGopSize :: Lens' H265Settings (Maybe Double)+hsGopSize = lens _hsGopSize (\ s a -> s{_hsGopSize = a})++-- | Number of B-frames between reference frames.+hsNumberBFramesBetweenReferenceFrames :: Lens' H265Settings (Maybe Int)+hsNumberBFramesBetweenReferenceFrames = lens _hsNumberBFramesBetweenReferenceFrames (\ s a -> s{_hsNumberBFramesBetweenReferenceFrames = a})++-- | Undocumented member.+hsGopSizeUnits :: Lens' H265Settings (Maybe H265GopSizeUnits)+hsGopSizeUnits = lens _hsGopSizeUnits (\ s a -> s{_hsGopSizeUnits = a})++-- | Size of buffer (HRD buffer model). Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m.+hsHrdBufferSize :: Lens' H265Settings (Maybe Int)+hsHrdBufferSize = lens _hsHrdBufferSize (\ s a -> s{_hsHrdBufferSize = a})++-- | Number of slices per picture. Must be less than or equal to the number of macroblock rows for progressive pictures, and less than or equal to half the number of macroblock rows for interlaced pictures.+hsSlices :: Lens' H265Settings (Maybe Int)+hsSlices = lens _hsSlices (\ s a -> s{_hsSlices = a})++-- | Undocumented member.+hsAlternateTransferFunctionSei :: Lens' H265Settings (Maybe H265AlternateTransferFunctionSei)+hsAlternateTransferFunctionSei = lens _hsAlternateTransferFunctionSei (\ s a -> s{_hsAlternateTransferFunctionSei = a})++-- | Undocumented member.+hsRateControlMode :: Lens' H265Settings (Maybe H265RateControlMode)+hsRateControlMode = lens _hsRateControlMode (\ s a -> s{_hsRateControlMode = a})++-- | Number of reference frames to use. The encoder may use more than requested if using B-frames and/or interlaced encoding.+hsNumberReferenceFrames :: Lens' H265Settings (Maybe Int)+hsNumberReferenceFrames = lens _hsNumberReferenceFrames (\ s a -> s{_hsNumberReferenceFrames = a})++-- | Undocumented member.+hsTelecine :: Lens' H265Settings (Maybe H265Telecine)+hsTelecine = lens _hsTelecine (\ s a -> s{_hsTelecine = a})++-- | Enforces separation between repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal cadence resumes for the next GOP. This setting is only used when Scene Change Detect is enabled. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1+hsMinIInterval :: Lens' H265Settings (Maybe Int)+hsMinIInterval = lens _hsMinIInterval (\ s a -> s{_hsMinIInterval = a})++-- | Undocumented member.+hsInterlaceMode :: Lens' H265Settings (Maybe H265InterlaceMode)+hsInterlaceMode = lens _hsInterlaceMode (\ s a -> s{_hsInterlaceMode = a})++-- | Undocumented member.+hsParControl :: Lens' H265Settings (Maybe H265ParControl)+hsParControl = lens _hsParControl (\ s a -> s{_hsParControl = a})++-- | Undocumented member.+hsFlickerAdaptiveQuantization :: Lens' H265Settings (Maybe H265FlickerAdaptiveQuantization)+hsFlickerAdaptiveQuantization = lens _hsFlickerAdaptiveQuantization (\ s a -> s{_hsFlickerAdaptiveQuantization = a})++-- | Undocumented member.+hsSampleAdaptiveOffsetFilterMode :: Lens' H265Settings (Maybe H265SampleAdaptiveOffsetFilterMode)+hsSampleAdaptiveOffsetFilterMode = lens _hsSampleAdaptiveOffsetFilterMode (\ s a -> s{_hsSampleAdaptiveOffsetFilterMode = a})++-- | Undocumented member.+hsCodecProfile :: Lens' H265Settings (Maybe H265CodecProfile)+hsCodecProfile = lens _hsCodecProfile (\ s a -> s{_hsCodecProfile = a})++-- | Average bitrate in bits/second. Required for VBR, CBR, and ABR. Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m. For MS Smooth outputs, bitrates must be unique when rounded down to the nearest multiple of 1000.+hsBitrate :: Lens' H265Settings (Maybe Int)+hsBitrate = lens _hsBitrate (\ s a -> s{_hsBitrate = a})++-- | Framerate denominator.+hsFramerateDenominator :: Lens' H265Settings (Maybe Int)+hsFramerateDenominator = lens _hsFramerateDenominator (\ s a -> s{_hsFramerateDenominator = a})++-- | Undocumented member.+hsFramerateConversionAlgorithm :: Lens' H265Settings (Maybe H265FramerateConversionAlgorithm)+hsFramerateConversionAlgorithm = lens _hsFramerateConversionAlgorithm (\ s a -> s{_hsFramerateConversionAlgorithm = a})++-- | Undocumented member.+hsCodecLevel :: Lens' H265Settings (Maybe H265CodecLevel)+hsCodecLevel = lens _hsCodecLevel (\ s a -> s{_hsCodecLevel = a})++-- | Undocumented member.+hsFramerateControl :: Lens' H265Settings (Maybe H265FramerateControl)+hsFramerateControl = lens _hsFramerateControl (\ s a -> s{_hsFramerateControl = a})++-- | Undocumented member.+hsAdaptiveQuantization :: Lens' H265Settings (Maybe H265AdaptiveQuantization)+hsAdaptiveQuantization = lens _hsAdaptiveQuantization (\ s a -> s{_hsAdaptiveQuantization = a})++-- | Framerate numerator - framerate is a fraction, e.g. 24000 / 1001 = 23.976 fps.+hsFramerateNumerator :: Lens' H265Settings (Maybe Int)+hsFramerateNumerator = lens _hsFramerateNumerator (\ s a -> s{_hsFramerateNumerator = a})++-- | Undocumented member.+hsGopBReference :: Lens' H265Settings (Maybe H265GopBReference)+hsGopBReference = lens _hsGopBReference (\ s a -> s{_hsGopBReference = a})++-- | Maximum bitrate in bits/second (for VBR mode only). Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m.+hsMaxBitrate :: Lens' H265Settings (Maybe Int)+hsMaxBitrate = lens _hsMaxBitrate (\ s a -> s{_hsMaxBitrate = a})++-- | Frequency of closed GOPs. In streaming applications, it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as quickly as possible. Setting this value to 0 will break output segmenting.+hsGopClosedCadence :: Lens' H265Settings (Maybe Int)+hsGopClosedCadence = lens _hsGopClosedCadence (\ s a -> s{_hsGopClosedCadence = a})++-- | Pixel Aspect Ratio denominator.+hsParDenominator :: Lens' H265Settings (Maybe Int)+hsParDenominator = lens _hsParDenominator (\ s a -> s{_hsParDenominator = a})++-- | Undocumented member.+hsSpatialAdaptiveQuantization :: Lens' H265Settings (Maybe H265SpatialAdaptiveQuantization)+hsSpatialAdaptiveQuantization = lens _hsSpatialAdaptiveQuantization (\ s a -> s{_hsSpatialAdaptiveQuantization = a})++instance FromJSON H265Settings where+        parseJSON+          = withObject "H265Settings"+              (\ x ->+                 H265Settings' <$>+                   (x .:? "unregisteredSeiTimecode") <*>+                     (x .:? "qualityTuningLevel")+                     <*> (x .:? "temporalAdaptiveQuantization")+                     <*> (x .:? "sceneChangeDetect")+                     <*> (x .:? "hrdBufferInitialFillPercentage")+                     <*> (x .:? "tiles")+                     <*> (x .:? "slowPal")+                     <*> (x .:? "temporalIds")+                     <*> (x .:? "parNumerator")+                     <*> (x .:? "gopSize")+                     <*> (x .:? "numberBFramesBetweenReferenceFrames")+                     <*> (x .:? "gopSizeUnits")+                     <*> (x .:? "hrdBufferSize")+                     <*> (x .:? "slices")+                     <*> (x .:? "alternateTransferFunctionSei")+                     <*> (x .:? "rateControlMode")+                     <*> (x .:? "numberReferenceFrames")+                     <*> (x .:? "telecine")+                     <*> (x .:? "minIInterval")+                     <*> (x .:? "interlaceMode")+                     <*> (x .:? "parControl")+                     <*> (x .:? "flickerAdaptiveQuantization")+                     <*> (x .:? "sampleAdaptiveOffsetFilterMode")+                     <*> (x .:? "codecProfile")+                     <*> (x .:? "bitrate")+                     <*> (x .:? "framerateDenominator")+                     <*> (x .:? "framerateConversionAlgorithm")+                     <*> (x .:? "codecLevel")+                     <*> (x .:? "framerateControl")+                     <*> (x .:? "adaptiveQuantization")+                     <*> (x .:? "framerateNumerator")+                     <*> (x .:? "gopBReference")+                     <*> (x .:? "maxBitrate")+                     <*> (x .:? "gopClosedCadence")+                     <*> (x .:? "parDenominator")+                     <*> (x .:? "spatialAdaptiveQuantization"))++instance Hashable H265Settings where++instance NFData H265Settings where++instance ToJSON H265Settings where+        toJSON H265Settings'{..}+          = object+              (catMaybes+                 [("unregisteredSeiTimecode" .=) <$>+                    _hsUnregisteredSeiTimecode,+                  ("qualityTuningLevel" .=) <$> _hsQualityTuningLevel,+                  ("temporalAdaptiveQuantization" .=) <$>+                    _hsTemporalAdaptiveQuantization,+                  ("sceneChangeDetect" .=) <$> _hsSceneChangeDetect,+                  ("hrdBufferInitialFillPercentage" .=) <$>+                    _hsHrdBufferInitialFillPercentage,+                  ("tiles" .=) <$> _hsTiles,+                  ("slowPal" .=) <$> _hsSlowPal,+                  ("temporalIds" .=) <$> _hsTemporalIds,+                  ("parNumerator" .=) <$> _hsParNumerator,+                  ("gopSize" .=) <$> _hsGopSize,+                  ("numberBFramesBetweenReferenceFrames" .=) <$>+                    _hsNumberBFramesBetweenReferenceFrames,+                  ("gopSizeUnits" .=) <$> _hsGopSizeUnits,+                  ("hrdBufferSize" .=) <$> _hsHrdBufferSize,+                  ("slices" .=) <$> _hsSlices,+                  ("alternateTransferFunctionSei" .=) <$>+                    _hsAlternateTransferFunctionSei,+                  ("rateControlMode" .=) <$> _hsRateControlMode,+                  ("numberReferenceFrames" .=) <$>+                    _hsNumberReferenceFrames,+                  ("telecine" .=) <$> _hsTelecine,+                  ("minIInterval" .=) <$> _hsMinIInterval,+                  ("interlaceMode" .=) <$> _hsInterlaceMode,+                  ("parControl" .=) <$> _hsParControl,+                  ("flickerAdaptiveQuantization" .=) <$>+                    _hsFlickerAdaptiveQuantization,+                  ("sampleAdaptiveOffsetFilterMode" .=) <$>+                    _hsSampleAdaptiveOffsetFilterMode,+                  ("codecProfile" .=) <$> _hsCodecProfile,+                  ("bitrate" .=) <$> _hsBitrate,+                  ("framerateDenominator" .=) <$>+                    _hsFramerateDenominator,+                  ("framerateConversionAlgorithm" .=) <$>+                    _hsFramerateConversionAlgorithm,+                  ("codecLevel" .=) <$> _hsCodecLevel,+                  ("framerateControl" .=) <$> _hsFramerateControl,+                  ("adaptiveQuantization" .=) <$>+                    _hsAdaptiveQuantization,+                  ("framerateNumerator" .=) <$> _hsFramerateNumerator,+                  ("gopBReference" .=) <$> _hsGopBReference,+                  ("maxBitrate" .=) <$> _hsMaxBitrate,+                  ("gopClosedCadence" .=) <$> _hsGopClosedCadence,+                  ("parDenominator" .=) <$> _hsParDenominator,+                  ("spatialAdaptiveQuantization" .=) <$>+                    _hsSpatialAdaptiveQuantization])++-- | Use the HDR master display (Hdr10Metadata) settings to provide values for HDR color. These values vary depending on the input video and must be provided by a color grader. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate.+--+-- /See:/ 'hdr10Metadata' smart constructor.+data Hdr10Metadata = Hdr10Metadata'+  { _hmRedPrimaryX               :: !(Maybe Int)+  , _hmBluePrimaryX              :: !(Maybe Int)+  , _hmMaxFrameAverageLightLevel :: !(Maybe Int)+  , _hmWhitePointY               :: !(Maybe Int)+  , _hmMaxContentLightLevel      :: !(Maybe Int)+  , _hmWhitePointX               :: !(Maybe Int)+  , _hmBluePrimaryY              :: !(Maybe Int)+  , _hmGreenPrimaryY             :: !(Maybe Int)+  , _hmGreenPrimaryX             :: !(Maybe Int)+  , _hmMinLuminance              :: !(Maybe Int)+  , _hmRedPrimaryY               :: !(Maybe Int)+  , _hmMaxLuminance              :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Hdr10Metadata' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hmRedPrimaryX' - HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate.+--+-- * 'hmBluePrimaryX' - HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate.+--+-- * 'hmMaxFrameAverageLightLevel' - Maximum average light level of any frame in the coded video sequence, in units of candelas per square meter.+--+-- * 'hmWhitePointY' - HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate.+--+-- * 'hmMaxContentLightLevel' - Maximum light level among all samples in the coded video sequence, in units of candelas per square meter.+--+-- * 'hmWhitePointX' - HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate.+--+-- * 'hmBluePrimaryY' - HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate.+--+-- * 'hmGreenPrimaryY' - HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate.+--+-- * 'hmGreenPrimaryX' - HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate.+--+-- * 'hmMinLuminance' - Nominal minimum mastering display luminance in units of of 0.0001 candelas per square meter+--+-- * 'hmRedPrimaryY' - HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate.+--+-- * 'hmMaxLuminance' - Nominal maximum mastering display luminance in units of of 0.0001 candelas per square meter.+hdr10Metadata+    :: Hdr10Metadata+hdr10Metadata =+  Hdr10Metadata'+    { _hmRedPrimaryX = Nothing+    , _hmBluePrimaryX = Nothing+    , _hmMaxFrameAverageLightLevel = Nothing+    , _hmWhitePointY = Nothing+    , _hmMaxContentLightLevel = Nothing+    , _hmWhitePointX = Nothing+    , _hmBluePrimaryY = Nothing+    , _hmGreenPrimaryY = Nothing+    , _hmGreenPrimaryX = Nothing+    , _hmMinLuminance = Nothing+    , _hmRedPrimaryY = Nothing+    , _hmMaxLuminance = Nothing+    }+++-- | HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate.+hmRedPrimaryX :: Lens' Hdr10Metadata (Maybe Int)+hmRedPrimaryX = lens _hmRedPrimaryX (\ s a -> s{_hmRedPrimaryX = a})++-- | HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate.+hmBluePrimaryX :: Lens' Hdr10Metadata (Maybe Int)+hmBluePrimaryX = lens _hmBluePrimaryX (\ s a -> s{_hmBluePrimaryX = a})++-- | Maximum average light level of any frame in the coded video sequence, in units of candelas per square meter.+hmMaxFrameAverageLightLevel :: Lens' Hdr10Metadata (Maybe Int)+hmMaxFrameAverageLightLevel = lens _hmMaxFrameAverageLightLevel (\ s a -> s{_hmMaxFrameAverageLightLevel = a})++-- | HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate.+hmWhitePointY :: Lens' Hdr10Metadata (Maybe Int)+hmWhitePointY = lens _hmWhitePointY (\ s a -> s{_hmWhitePointY = a})++-- | Maximum light level among all samples in the coded video sequence, in units of candelas per square meter.+hmMaxContentLightLevel :: Lens' Hdr10Metadata (Maybe Int)+hmMaxContentLightLevel = lens _hmMaxContentLightLevel (\ s a -> s{_hmMaxContentLightLevel = a})++-- | HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate.+hmWhitePointX :: Lens' Hdr10Metadata (Maybe Int)+hmWhitePointX = lens _hmWhitePointX (\ s a -> s{_hmWhitePointX = a})++-- | HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate.+hmBluePrimaryY :: Lens' Hdr10Metadata (Maybe Int)+hmBluePrimaryY = lens _hmBluePrimaryY (\ s a -> s{_hmBluePrimaryY = a})++-- | HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate.+hmGreenPrimaryY :: Lens' Hdr10Metadata (Maybe Int)+hmGreenPrimaryY = lens _hmGreenPrimaryY (\ s a -> s{_hmGreenPrimaryY = a})++-- | HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate.+hmGreenPrimaryX :: Lens' Hdr10Metadata (Maybe Int)+hmGreenPrimaryX = lens _hmGreenPrimaryX (\ s a -> s{_hmGreenPrimaryX = a})++-- | Nominal minimum mastering display luminance in units of of 0.0001 candelas per square meter+hmMinLuminance :: Lens' Hdr10Metadata (Maybe Int)+hmMinLuminance = lens _hmMinLuminance (\ s a -> s{_hmMinLuminance = a})++-- | HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate.+hmRedPrimaryY :: Lens' Hdr10Metadata (Maybe Int)+hmRedPrimaryY = lens _hmRedPrimaryY (\ s a -> s{_hmRedPrimaryY = a})++-- | Nominal maximum mastering display luminance in units of of 0.0001 candelas per square meter.+hmMaxLuminance :: Lens' Hdr10Metadata (Maybe Int)+hmMaxLuminance = lens _hmMaxLuminance (\ s a -> s{_hmMaxLuminance = a})++instance FromJSON Hdr10Metadata where+        parseJSON+          = withObject "Hdr10Metadata"+              (\ x ->+                 Hdr10Metadata' <$>+                   (x .:? "redPrimaryX") <*> (x .:? "bluePrimaryX") <*>+                     (x .:? "maxFrameAverageLightLevel")+                     <*> (x .:? "whitePointY")+                     <*> (x .:? "maxContentLightLevel")+                     <*> (x .:? "whitePointX")+                     <*> (x .:? "bluePrimaryY")+                     <*> (x .:? "greenPrimaryY")+                     <*> (x .:? "greenPrimaryX")+                     <*> (x .:? "minLuminance")+                     <*> (x .:? "redPrimaryY")+                     <*> (x .:? "maxLuminance"))++instance Hashable Hdr10Metadata where++instance NFData Hdr10Metadata where++instance ToJSON Hdr10Metadata where+        toJSON Hdr10Metadata'{..}+          = object+              (catMaybes+                 [("redPrimaryX" .=) <$> _hmRedPrimaryX,+                  ("bluePrimaryX" .=) <$> _hmBluePrimaryX,+                  ("maxFrameAverageLightLevel" .=) <$>+                    _hmMaxFrameAverageLightLevel,+                  ("whitePointY" .=) <$> _hmWhitePointY,+                  ("maxContentLightLevel" .=) <$>+                    _hmMaxContentLightLevel,+                  ("whitePointX" .=) <$> _hmWhitePointX,+                  ("bluePrimaryY" .=) <$> _hmBluePrimaryY,+                  ("greenPrimaryY" .=) <$> _hmGreenPrimaryY,+                  ("greenPrimaryX" .=) <$> _hmGreenPrimaryX,+                  ("minLuminance" .=) <$> _hmMinLuminance,+                  ("redPrimaryY" .=) <$> _hmRedPrimaryY,+                  ("maxLuminance" .=) <$> _hmMaxLuminance])++-- | Caption Language Mapping+--+-- /See:/ 'hlsCaptionLanguageMapping' smart constructor.+data HlsCaptionLanguageMapping = HlsCaptionLanguageMapping'+  { _hclmLanguageCode        :: !(Maybe LanguageCode)+  , _hclmLanguageDescription :: !(Maybe Text)+  , _hclmCaptionChannel      :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'HlsCaptionLanguageMapping' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hclmLanguageCode' - Undocumented member.+--+-- * 'hclmLanguageDescription' - Caption language description.+--+-- * 'hclmCaptionChannel' - Caption channel.+hlsCaptionLanguageMapping+    :: HlsCaptionLanguageMapping+hlsCaptionLanguageMapping =+  HlsCaptionLanguageMapping'+    { _hclmLanguageCode = Nothing+    , _hclmLanguageDescription = Nothing+    , _hclmCaptionChannel = Nothing+    }+++-- | Undocumented member.+hclmLanguageCode :: Lens' HlsCaptionLanguageMapping (Maybe LanguageCode)+hclmLanguageCode = lens _hclmLanguageCode (\ s a -> s{_hclmLanguageCode = a})++-- | Caption language description.+hclmLanguageDescription :: Lens' HlsCaptionLanguageMapping (Maybe Text)+hclmLanguageDescription = lens _hclmLanguageDescription (\ s a -> s{_hclmLanguageDescription = a})++-- | Caption channel.+hclmCaptionChannel :: Lens' HlsCaptionLanguageMapping (Maybe Int)+hclmCaptionChannel = lens _hclmCaptionChannel (\ s a -> s{_hclmCaptionChannel = a})++instance FromJSON HlsCaptionLanguageMapping where+        parseJSON+          = withObject "HlsCaptionLanguageMapping"+              (\ x ->+                 HlsCaptionLanguageMapping' <$>+                   (x .:? "languageCode") <*>+                     (x .:? "languageDescription")+                     <*> (x .:? "captionChannel"))++instance Hashable HlsCaptionLanguageMapping where++instance NFData HlsCaptionLanguageMapping where++instance ToJSON HlsCaptionLanguageMapping where+        toJSON HlsCaptionLanguageMapping'{..}+          = object+              (catMaybes+                 [("languageCode" .=) <$> _hclmLanguageCode,+                  ("languageDescription" .=) <$>+                    _hclmLanguageDescription,+                  ("captionChannel" .=) <$> _hclmCaptionChannel])++-- | Settings for HLS encryption+--+-- /See:/ 'hlsEncryptionSettings' smart constructor.+data HlsEncryptionSettings = HlsEncryptionSettings'+  { _hesEncryptionMethod :: !(Maybe HlsEncryptionType)+  , _hesConstantInitializationVector :: !(Maybe Text)+  , _hesType :: !(Maybe HlsKeyProviderType)+  , _hesStaticKeyProvider :: !(Maybe StaticKeyProvider)+  , _hesSpekeKeyProvider :: !(Maybe SpekeKeyProvider)+  , _hesInitializationVectorInManifest :: !(Maybe HlsInitializationVectorInManifest)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'HlsEncryptionSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hesEncryptionMethod' - Undocumented member.+--+-- * 'hesConstantInitializationVector' - This is a 128-bit, 16-byte hex value represented by a 32-character text string. If this parameter is not set then the Initialization Vector will follow the segment number by default.+--+-- * 'hesType' - Undocumented member.+--+-- * 'hesStaticKeyProvider' - Undocumented member.+--+-- * 'hesSpekeKeyProvider' - Undocumented member.+--+-- * 'hesInitializationVectorInManifest' - Undocumented member.+hlsEncryptionSettings+    :: HlsEncryptionSettings+hlsEncryptionSettings =+  HlsEncryptionSettings'+    { _hesEncryptionMethod = Nothing+    , _hesConstantInitializationVector = Nothing+    , _hesType = Nothing+    , _hesStaticKeyProvider = Nothing+    , _hesSpekeKeyProvider = Nothing+    , _hesInitializationVectorInManifest = Nothing+    }+++-- | Undocumented member.+hesEncryptionMethod :: Lens' HlsEncryptionSettings (Maybe HlsEncryptionType)+hesEncryptionMethod = lens _hesEncryptionMethod (\ s a -> s{_hesEncryptionMethod = a})++-- | This is a 128-bit, 16-byte hex value represented by a 32-character text string. If this parameter is not set then the Initialization Vector will follow the segment number by default.+hesConstantInitializationVector :: Lens' HlsEncryptionSettings (Maybe Text)+hesConstantInitializationVector = lens _hesConstantInitializationVector (\ s a -> s{_hesConstantInitializationVector = a})++-- | Undocumented member.+hesType :: Lens' HlsEncryptionSettings (Maybe HlsKeyProviderType)+hesType = lens _hesType (\ s a -> s{_hesType = a})++-- | Undocumented member.+hesStaticKeyProvider :: Lens' HlsEncryptionSettings (Maybe StaticKeyProvider)+hesStaticKeyProvider = lens _hesStaticKeyProvider (\ s a -> s{_hesStaticKeyProvider = a})++-- | Undocumented member.+hesSpekeKeyProvider :: Lens' HlsEncryptionSettings (Maybe SpekeKeyProvider)+hesSpekeKeyProvider = lens _hesSpekeKeyProvider (\ s a -> s{_hesSpekeKeyProvider = a})++-- | Undocumented member.+hesInitializationVectorInManifest :: Lens' HlsEncryptionSettings (Maybe HlsInitializationVectorInManifest)+hesInitializationVectorInManifest = lens _hesInitializationVectorInManifest (\ s a -> s{_hesInitializationVectorInManifest = a})++instance FromJSON HlsEncryptionSettings where+        parseJSON+          = withObject "HlsEncryptionSettings"+              (\ x ->+                 HlsEncryptionSettings' <$>+                   (x .:? "encryptionMethod") <*>+                     (x .:? "constantInitializationVector")+                     <*> (x .:? "type")+                     <*> (x .:? "staticKeyProvider")+                     <*> (x .:? "spekeKeyProvider")+                     <*> (x .:? "initializationVectorInManifest"))++instance Hashable HlsEncryptionSettings where++instance NFData HlsEncryptionSettings where++instance ToJSON HlsEncryptionSettings where+        toJSON HlsEncryptionSettings'{..}+          = object+              (catMaybes+                 [("encryptionMethod" .=) <$> _hesEncryptionMethod,+                  ("constantInitializationVector" .=) <$>+                    _hesConstantInitializationVector,+                  ("type" .=) <$> _hesType,+                  ("staticKeyProvider" .=) <$> _hesStaticKeyProvider,+                  ("spekeKeyProvider" .=) <$> _hesSpekeKeyProvider,+                  ("initializationVectorInManifest" .=) <$>+                    _hesInitializationVectorInManifest])++-- | Required when you set (Type) under (OutputGroups)>(OutputGroupSettings) to HLS_GROUP_SETTINGS.+--+-- /See:/ 'hlsGroupSettings' smart constructor.+data HlsGroupSettings = HlsGroupSettings'+  { _hgsDirectoryStructure         :: !(Maybe HlsDirectoryStructure)+  , _hgsSegmentControl             :: !(Maybe HlsSegmentControl)+  , _hgsDestination                :: !(Maybe Text)+  , _hgsTimedMetadataId3Period     :: !(Maybe Int)+  , _hgsMinSegmentLength           :: !(Maybe Int)+  , _hgsProgramDateTime            :: !(Maybe HlsProgramDateTime)+  , _hgsProgramDateTimePeriod      :: !(Maybe Int)+  , _hgsCodecSpecification         :: !(Maybe HlsCodecSpecification)+  , _hgsCaptionLanguageMappings    :: !(Maybe [HlsCaptionLanguageMapping])+  , _hgsBaseURL                    :: !(Maybe Text)+  , _hgsAdMarkers                  :: !(Maybe [HlsAdMarkers])+  , _hgsEncryption                 :: !(Maybe HlsEncryptionSettings)+  , _hgsSegmentLength              :: !(Maybe Int)+  , _hgsTimedMetadataId3Frame      :: !(Maybe HlsTimedMetadataId3Frame)+  , _hgsOutputSelection            :: !(Maybe HlsOutputSelection)+  , _hgsCaptionLanguageSetting     :: !(Maybe HlsCaptionLanguageSetting)+  , _hgsSegmentsPerSubdirectory    :: !(Maybe Int)+  , _hgsManifestDurationFormat     :: !(Maybe HlsManifestDurationFormat)+  , _hgsClientCache                :: !(Maybe HlsClientCache)+  , _hgsTimestampDeltaMilliseconds :: !(Maybe Int)+  , _hgsStreamInfResolution        :: !(Maybe HlsStreamInfResolution)+  , _hgsManifestCompression        :: !(Maybe HlsManifestCompression)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'HlsGroupSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hgsDirectoryStructure' - Undocumented member.+--+-- * 'hgsSegmentControl' - Undocumented member.+--+-- * 'hgsDestination' - Use Destination (Destination) to specify the S3 output location and the output filename base. Destination accepts format identifiers. If you do not specify the base filename in the URI, the service will use the filename of the input file. If your job has multiple inputs, the service uses the filename of the first input file.+--+-- * 'hgsTimedMetadataId3Period' - Timed Metadata interval in seconds.+--+-- * 'hgsMinSegmentLength' - When set, Minimum Segment Size is enforced by looking ahead and back within the specified range for a nearby avail and extending the segment size if needed.+--+-- * 'hgsProgramDateTime' - Undocumented member.+--+-- * 'hgsProgramDateTimePeriod' - Period of insertion of EXT-X-PROGRAM-DATE-TIME entry, in seconds.+--+-- * 'hgsCodecSpecification' - Undocumented member.+--+-- * 'hgsCaptionLanguageMappings' - Language to be used on Caption outputs+--+-- * 'hgsBaseURL' - A partial URI prefix that will be prepended to each output in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the main .m3u8 file.+--+-- * 'hgsAdMarkers' - Choose one or more ad marker types to pass SCTE35 signals through to this group of Apple HLS outputs.+--+-- * 'hgsEncryption' - DRM settings.+--+-- * 'hgsSegmentLength' - Length of MPEG-2 Transport Stream segments to create (in seconds). Note that segments will end on the next keyframe after this number of seconds, so actual segment length may be longer.+--+-- * 'hgsTimedMetadataId3Frame' - Undocumented member.+--+-- * 'hgsOutputSelection' - Undocumented member.+--+-- * 'hgsCaptionLanguageSetting' - Undocumented member.+--+-- * 'hgsSegmentsPerSubdirectory' - Number of segments to write to a subdirectory before starting a new one. directoryStructure must be SINGLE_DIRECTORY for this setting to have an effect.+--+-- * 'hgsManifestDurationFormat' - Undocumented member.+--+-- * 'hgsClientCache' - Undocumented member.+--+-- * 'hgsTimestampDeltaMilliseconds' - Provides an extra millisecond delta offset to fine tune the timestamps.+--+-- * 'hgsStreamInfResolution' - Undocumented member.+--+-- * 'hgsManifestCompression' - Undocumented member.+hlsGroupSettings+    :: HlsGroupSettings+hlsGroupSettings =+  HlsGroupSettings'+    { _hgsDirectoryStructure = Nothing+    , _hgsSegmentControl = Nothing+    , _hgsDestination = Nothing+    , _hgsTimedMetadataId3Period = Nothing+    , _hgsMinSegmentLength = Nothing+    , _hgsProgramDateTime = Nothing+    , _hgsProgramDateTimePeriod = Nothing+    , _hgsCodecSpecification = Nothing+    , _hgsCaptionLanguageMappings = Nothing+    , _hgsBaseURL = Nothing+    , _hgsAdMarkers = Nothing+    , _hgsEncryption = Nothing+    , _hgsSegmentLength = Nothing+    , _hgsTimedMetadataId3Frame = Nothing+    , _hgsOutputSelection = Nothing+    , _hgsCaptionLanguageSetting = Nothing+    , _hgsSegmentsPerSubdirectory = Nothing+    , _hgsManifestDurationFormat = Nothing+    , _hgsClientCache = Nothing+    , _hgsTimestampDeltaMilliseconds = Nothing+    , _hgsStreamInfResolution = Nothing+    , _hgsManifestCompression = Nothing+    }+++-- | Undocumented member.+hgsDirectoryStructure :: Lens' HlsGroupSettings (Maybe HlsDirectoryStructure)+hgsDirectoryStructure = lens _hgsDirectoryStructure (\ s a -> s{_hgsDirectoryStructure = a})++-- | Undocumented member.+hgsSegmentControl :: Lens' HlsGroupSettings (Maybe HlsSegmentControl)+hgsSegmentControl = lens _hgsSegmentControl (\ s a -> s{_hgsSegmentControl = a})++-- | Use Destination (Destination) to specify the S3 output location and the output filename base. Destination accepts format identifiers. If you do not specify the base filename in the URI, the service will use the filename of the input file. If your job has multiple inputs, the service uses the filename of the first input file.+hgsDestination :: Lens' HlsGroupSettings (Maybe Text)+hgsDestination = lens _hgsDestination (\ s a -> s{_hgsDestination = a})++-- | Timed Metadata interval in seconds.+hgsTimedMetadataId3Period :: Lens' HlsGroupSettings (Maybe Int)+hgsTimedMetadataId3Period = lens _hgsTimedMetadataId3Period (\ s a -> s{_hgsTimedMetadataId3Period = a})++-- | When set, Minimum Segment Size is enforced by looking ahead and back within the specified range for a nearby avail and extending the segment size if needed.+hgsMinSegmentLength :: Lens' HlsGroupSettings (Maybe Int)+hgsMinSegmentLength = lens _hgsMinSegmentLength (\ s a -> s{_hgsMinSegmentLength = a})++-- | Undocumented member.+hgsProgramDateTime :: Lens' HlsGroupSettings (Maybe HlsProgramDateTime)+hgsProgramDateTime = lens _hgsProgramDateTime (\ s a -> s{_hgsProgramDateTime = a})++-- | Period of insertion of EXT-X-PROGRAM-DATE-TIME entry, in seconds.+hgsProgramDateTimePeriod :: Lens' HlsGroupSettings (Maybe Int)+hgsProgramDateTimePeriod = lens _hgsProgramDateTimePeriod (\ s a -> s{_hgsProgramDateTimePeriod = a})++-- | Undocumented member.+hgsCodecSpecification :: Lens' HlsGroupSettings (Maybe HlsCodecSpecification)+hgsCodecSpecification = lens _hgsCodecSpecification (\ s a -> s{_hgsCodecSpecification = a})++-- | Language to be used on Caption outputs+hgsCaptionLanguageMappings :: Lens' HlsGroupSettings [HlsCaptionLanguageMapping]+hgsCaptionLanguageMappings = lens _hgsCaptionLanguageMappings (\ s a -> s{_hgsCaptionLanguageMappings = a}) . _Default . _Coerce++-- | A partial URI prefix that will be prepended to each output in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the main .m3u8 file.+hgsBaseURL :: Lens' HlsGroupSettings (Maybe Text)+hgsBaseURL = lens _hgsBaseURL (\ s a -> s{_hgsBaseURL = a})++-- | Choose one or more ad marker types to pass SCTE35 signals through to this group of Apple HLS outputs.+hgsAdMarkers :: Lens' HlsGroupSettings [HlsAdMarkers]+hgsAdMarkers = lens _hgsAdMarkers (\ s a -> s{_hgsAdMarkers = a}) . _Default . _Coerce++-- | DRM settings.+hgsEncryption :: Lens' HlsGroupSettings (Maybe HlsEncryptionSettings)+hgsEncryption = lens _hgsEncryption (\ s a -> s{_hgsEncryption = a})++-- | Length of MPEG-2 Transport Stream segments to create (in seconds). Note that segments will end on the next keyframe after this number of seconds, so actual segment length may be longer.+hgsSegmentLength :: Lens' HlsGroupSettings (Maybe Int)+hgsSegmentLength = lens _hgsSegmentLength (\ s a -> s{_hgsSegmentLength = a})++-- | Undocumented member.+hgsTimedMetadataId3Frame :: Lens' HlsGroupSettings (Maybe HlsTimedMetadataId3Frame)+hgsTimedMetadataId3Frame = lens _hgsTimedMetadataId3Frame (\ s a -> s{_hgsTimedMetadataId3Frame = a})++-- | Undocumented member.+hgsOutputSelection :: Lens' HlsGroupSettings (Maybe HlsOutputSelection)+hgsOutputSelection = lens _hgsOutputSelection (\ s a -> s{_hgsOutputSelection = a})++-- | Undocumented member.+hgsCaptionLanguageSetting :: Lens' HlsGroupSettings (Maybe HlsCaptionLanguageSetting)+hgsCaptionLanguageSetting = lens _hgsCaptionLanguageSetting (\ s a -> s{_hgsCaptionLanguageSetting = a})++-- | Number of segments to write to a subdirectory before starting a new one. directoryStructure must be SINGLE_DIRECTORY for this setting to have an effect.+hgsSegmentsPerSubdirectory :: Lens' HlsGroupSettings (Maybe Int)+hgsSegmentsPerSubdirectory = lens _hgsSegmentsPerSubdirectory (\ s a -> s{_hgsSegmentsPerSubdirectory = a})++-- | Undocumented member.+hgsManifestDurationFormat :: Lens' HlsGroupSettings (Maybe HlsManifestDurationFormat)+hgsManifestDurationFormat = lens _hgsManifestDurationFormat (\ s a -> s{_hgsManifestDurationFormat = a})++-- | Undocumented member.+hgsClientCache :: Lens' HlsGroupSettings (Maybe HlsClientCache)+hgsClientCache = lens _hgsClientCache (\ s a -> s{_hgsClientCache = a})++-- | Provides an extra millisecond delta offset to fine tune the timestamps.+hgsTimestampDeltaMilliseconds :: Lens' HlsGroupSettings (Maybe Int)+hgsTimestampDeltaMilliseconds = lens _hgsTimestampDeltaMilliseconds (\ s a -> s{_hgsTimestampDeltaMilliseconds = a})++-- | Undocumented member.+hgsStreamInfResolution :: Lens' HlsGroupSettings (Maybe HlsStreamInfResolution)+hgsStreamInfResolution = lens _hgsStreamInfResolution (\ s a -> s{_hgsStreamInfResolution = a})++-- | Undocumented member.+hgsManifestCompression :: Lens' HlsGroupSettings (Maybe HlsManifestCompression)+hgsManifestCompression = lens _hgsManifestCompression (\ s a -> s{_hgsManifestCompression = a})++instance FromJSON HlsGroupSettings where+        parseJSON+          = withObject "HlsGroupSettings"+              (\ x ->+                 HlsGroupSettings' <$>+                   (x .:? "directoryStructure") <*>+                     (x .:? "segmentControl")+                     <*> (x .:? "destination")+                     <*> (x .:? "timedMetadataId3Period")+                     <*> (x .:? "minSegmentLength")+                     <*> (x .:? "programDateTime")+                     <*> (x .:? "programDateTimePeriod")+                     <*> (x .:? "codecSpecification")+                     <*> (x .:? "captionLanguageMappings" .!= mempty)+                     <*> (x .:? "baseUrl")+                     <*> (x .:? "adMarkers" .!= mempty)+                     <*> (x .:? "encryption")+                     <*> (x .:? "segmentLength")+                     <*> (x .:? "timedMetadataId3Frame")+                     <*> (x .:? "outputSelection")+                     <*> (x .:? "captionLanguageSetting")+                     <*> (x .:? "segmentsPerSubdirectory")+                     <*> (x .:? "manifestDurationFormat")+                     <*> (x .:? "clientCache")+                     <*> (x .:? "timestampDeltaMilliseconds")+                     <*> (x .:? "streamInfResolution")+                     <*> (x .:? "manifestCompression"))++instance Hashable HlsGroupSettings where++instance NFData HlsGroupSettings where++instance ToJSON HlsGroupSettings where+        toJSON HlsGroupSettings'{..}+          = object+              (catMaybes+                 [("directoryStructure" .=) <$>+                    _hgsDirectoryStructure,+                  ("segmentControl" .=) <$> _hgsSegmentControl,+                  ("destination" .=) <$> _hgsDestination,+                  ("timedMetadataId3Period" .=) <$>+                    _hgsTimedMetadataId3Period,+                  ("minSegmentLength" .=) <$> _hgsMinSegmentLength,+                  ("programDateTime" .=) <$> _hgsProgramDateTime,+                  ("programDateTimePeriod" .=) <$>+                    _hgsProgramDateTimePeriod,+                  ("codecSpecification" .=) <$> _hgsCodecSpecification,+                  ("captionLanguageMappings" .=) <$>+                    _hgsCaptionLanguageMappings,+                  ("baseUrl" .=) <$> _hgsBaseURL,+                  ("adMarkers" .=) <$> _hgsAdMarkers,+                  ("encryption" .=) <$> _hgsEncryption,+                  ("segmentLength" .=) <$> _hgsSegmentLength,+                  ("timedMetadataId3Frame" .=) <$>+                    _hgsTimedMetadataId3Frame,+                  ("outputSelection" .=) <$> _hgsOutputSelection,+                  ("captionLanguageSetting" .=) <$>+                    _hgsCaptionLanguageSetting,+                  ("segmentsPerSubdirectory" .=) <$>+                    _hgsSegmentsPerSubdirectory,+                  ("manifestDurationFormat" .=) <$>+                    _hgsManifestDurationFormat,+                  ("clientCache" .=) <$> _hgsClientCache,+                  ("timestampDeltaMilliseconds" .=) <$>+                    _hgsTimestampDeltaMilliseconds,+                  ("streamInfResolution" .=) <$>+                    _hgsStreamInfResolution,+                  ("manifestCompression" .=) <$>+                    _hgsManifestCompression])++-- | Settings for HLS output groups+--+-- /See:/ 'hlsSettings' smart constructor.+data HlsSettings = HlsSettings'+  { _hsAudioRenditionSets :: !(Maybe Text)+  , _hsIFrameOnlyManifest :: !(Maybe HlsIFrameOnlyManifest)+  , _hsAudioGroupId       :: !(Maybe Text)+  , _hsSegmentModifier    :: !(Maybe Text)+  , _hsAudioTrackType     :: !(Maybe HlsAudioTrackType)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'HlsSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hsAudioRenditionSets' - List all the audio groups that are used with the video output stream. Input all the audio GROUP-IDs that are associated to the video, separate by ','.+--+-- * 'hsIFrameOnlyManifest' - Undocumented member.+--+-- * 'hsAudioGroupId' - Specifies the group to which the audio Rendition belongs.+--+-- * 'hsSegmentModifier' - String concatenated to end of segment filenames. Accepts "Format Identifiers":#format_identifier_parameters.+--+-- * 'hsAudioTrackType' - Undocumented member.+hlsSettings+    :: HlsSettings+hlsSettings =+  HlsSettings'+    { _hsAudioRenditionSets = Nothing+    , _hsIFrameOnlyManifest = Nothing+    , _hsAudioGroupId = Nothing+    , _hsSegmentModifier = Nothing+    , _hsAudioTrackType = Nothing+    }+++-- | List all the audio groups that are used with the video output stream. Input all the audio GROUP-IDs that are associated to the video, separate by ','.+hsAudioRenditionSets :: Lens' HlsSettings (Maybe Text)+hsAudioRenditionSets = lens _hsAudioRenditionSets (\ s a -> s{_hsAudioRenditionSets = a})++-- | Undocumented member.+hsIFrameOnlyManifest :: Lens' HlsSettings (Maybe HlsIFrameOnlyManifest)+hsIFrameOnlyManifest = lens _hsIFrameOnlyManifest (\ s a -> s{_hsIFrameOnlyManifest = a})++-- | Specifies the group to which the audio Rendition belongs.+hsAudioGroupId :: Lens' HlsSettings (Maybe Text)+hsAudioGroupId = lens _hsAudioGroupId (\ s a -> s{_hsAudioGroupId = a})++-- | String concatenated to end of segment filenames. Accepts "Format Identifiers":#format_identifier_parameters.+hsSegmentModifier :: Lens' HlsSettings (Maybe Text)+hsSegmentModifier = lens _hsSegmentModifier (\ s a -> s{_hsSegmentModifier = a})++-- | Undocumented member.+hsAudioTrackType :: Lens' HlsSettings (Maybe HlsAudioTrackType)+hsAudioTrackType = lens _hsAudioTrackType (\ s a -> s{_hsAudioTrackType = a})++instance FromJSON HlsSettings where+        parseJSON+          = withObject "HlsSettings"+              (\ x ->+                 HlsSettings' <$>+                   (x .:? "audioRenditionSets") <*>+                     (x .:? "iFrameOnlyManifest")+                     <*> (x .:? "audioGroupId")+                     <*> (x .:? "segmentModifier")+                     <*> (x .:? "audioTrackType"))++instance Hashable HlsSettings where++instance NFData HlsSettings where++instance ToJSON HlsSettings where+        toJSON HlsSettings'{..}+          = object+              (catMaybes+                 [("audioRenditionSets" .=) <$> _hsAudioRenditionSets,+                  ("iFrameOnlyManifest" .=) <$> _hsIFrameOnlyManifest,+                  ("audioGroupId" .=) <$> _hsAudioGroupId,+                  ("segmentModifier" .=) <$> _hsSegmentModifier,+                  ("audioTrackType" .=) <$> _hsAudioTrackType])++-- | To insert ID3 tags in your output, specify two values. Use ID3 tag (Id3) to specify the base 64 encoded string and use Timecode (TimeCode) to specify the time when the tag should be inserted. To insert multiple ID3 tags in your output, create mulitple instances of ID3 insertion (Id3Insertion).+--+-- /See:/ 'id3Insertion' smart constructor.+data Id3Insertion = Id3Insertion'+  { _iiId3      :: !(Maybe Text)+  , _iiTimecode :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Id3Insertion' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iiId3' - Use ID3 tag (Id3) to provide a tag value in base64-encode format.+--+-- * 'iiTimecode' - Provide a Timecode (TimeCode) in HH:MM:SS:FF or HH:MM:SS;FF format.+id3Insertion+    :: Id3Insertion+id3Insertion = Id3Insertion' {_iiId3 = Nothing, _iiTimecode = Nothing}+++-- | Use ID3 tag (Id3) to provide a tag value in base64-encode format.+iiId3 :: Lens' Id3Insertion (Maybe Text)+iiId3 = lens _iiId3 (\ s a -> s{_iiId3 = a})++-- | Provide a Timecode (TimeCode) in HH:MM:SS:FF or HH:MM:SS;FF format.+iiTimecode :: Lens' Id3Insertion (Maybe Text)+iiTimecode = lens _iiTimecode (\ s a -> s{_iiTimecode = a})++instance FromJSON Id3Insertion where+        parseJSON+          = withObject "Id3Insertion"+              (\ x ->+                 Id3Insertion' <$>+                   (x .:? "id3") <*> (x .:? "timecode"))++instance Hashable Id3Insertion where++instance NFData Id3Insertion where++instance ToJSON Id3Insertion where+        toJSON Id3Insertion'{..}+          = object+              (catMaybes+                 [("id3" .=) <$> _iiId3,+                  ("timecode" .=) <$> _iiTimecode])++-- | Enable the Image inserter (ImageInserter) feature to include a graphic overlay on your video. Enable or disable this feature for each output individually. This setting is disabled by default.+--+-- /See:/ 'imageInserter' smart constructor.+newtype ImageInserter = ImageInserter'+  { _iiInsertableImages :: Maybe [InsertableImage]+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ImageInserter' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iiInsertableImages' - Image to insert. Must be 32 bit windows BMP, PNG, or TGA file. Must not be  larger than the output frames.+imageInserter+    :: ImageInserter+imageInserter = ImageInserter' {_iiInsertableImages = Nothing}+++-- | Image to insert. Must be 32 bit windows BMP, PNG, or TGA file. Must not be  larger than the output frames.+iiInsertableImages :: Lens' ImageInserter [InsertableImage]+iiInsertableImages = lens _iiInsertableImages (\ s a -> s{_iiInsertableImages = a}) . _Default . _Coerce++instance FromJSON ImageInserter where+        parseJSON+          = withObject "ImageInserter"+              (\ x ->+                 ImageInserter' <$>+                   (x .:? "insertableImages" .!= mempty))++instance Hashable ImageInserter where++instance NFData ImageInserter where++instance ToJSON ImageInserter where+        toJSON ImageInserter'{..}+          = object+              (catMaybes+                 [("insertableImages" .=) <$> _iiInsertableImages])++-- | Specifies media input+--+-- /See:/ 'input' smart constructor.+data Input = Input'+  { _iVideoSelector       :: !(Maybe VideoSelector)+  , _iProgramNumber       :: !(Maybe Int)+  , _iAudioSelectorGroups :: !(Maybe (Map Text AudioSelectorGroup))+  , _iTimecodeSource      :: !(Maybe InputTimecodeSource)+  , _iAudioSelectors      :: !(Maybe (Map Text AudioSelector))+  , _iDeblockFilter       :: !(Maybe InputDeblockFilter)+  , _iInputClippings      :: !(Maybe [InputClipping])+  , _iDenoiseFilter       :: !(Maybe InputDenoiseFilter)+  , _iFilterStrength      :: !(Maybe Int)+  , _iPsiControl          :: !(Maybe InputPsiControl)+  , _iCaptionSelectors    :: !(Maybe (Map Text CaptionSelector))+  , _iFileInput           :: !(Maybe Text)+  , _iFilterEnable        :: !(Maybe InputFilterEnable)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Input' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iVideoSelector' - Undocumented member.+--+-- * 'iProgramNumber' - Use Program (programNumber) to select a specific program from within a multi-program transport stream. Note that Quad 4K is not currently supported. Default is the first program within the transport stream. If the program you specify doesn't exist, the transcoding service will use this default.+--+-- * 'iAudioSelectorGroups' - Specifies set of audio selectors within an input to combine. An input may have multiple audio selector groups. See "Audio Selector Group":#inputs-audio_selector_group for more information.+--+-- * 'iTimecodeSource' - Undocumented member.+--+-- * 'iAudioSelectors' - Use Audio selectors (AudioSelectors) to specify a track or set of tracks from the input that you will use in your outputs. You can use mutiple Audio selectors per input.+--+-- * 'iDeblockFilter' - Undocumented member.+--+-- * 'iInputClippings' - (InputClippings) contains sets of start and end times that together specify a portion of the input to be used in the outputs. If you provide only a start time, the clip will be the entire input from that point to the end. If you provide only an end time, it will be the entire input up to that point. When you specify more than one input clip, the transcoding service creates the job outputs by stringing the clips together in the order you specify them.+--+-- * 'iDenoiseFilter' - Undocumented member.+--+-- * 'iFilterStrength' - Use Filter strength (FilterStrength) to adjust the magnitude the input filter settings (Deblock and Denoise). The range is -5 to 5. Default is 0.+--+-- * 'iPsiControl' - Undocumented member.+--+-- * 'iCaptionSelectors' - Use Captions selectors (CaptionSelectors) to specify the captions data from the input that you will use in your outputs. You can use mutiple captions selectors per input.+--+-- * 'iFileInput' - Use Input (fileInput) to define the source file used in the transcode job. There can be multiple inputs in a job. These inputs are concantenated, in the order they are specified in the job, to create the output.+--+-- * 'iFilterEnable' - Undocumented member.+input+    :: Input+input =+  Input'+    { _iVideoSelector = Nothing+    , _iProgramNumber = Nothing+    , _iAudioSelectorGroups = Nothing+    , _iTimecodeSource = Nothing+    , _iAudioSelectors = Nothing+    , _iDeblockFilter = Nothing+    , _iInputClippings = Nothing+    , _iDenoiseFilter = Nothing+    , _iFilterStrength = Nothing+    , _iPsiControl = Nothing+    , _iCaptionSelectors = Nothing+    , _iFileInput = Nothing+    , _iFilterEnable = Nothing+    }+++-- | Undocumented member.+iVideoSelector :: Lens' Input (Maybe VideoSelector)+iVideoSelector = lens _iVideoSelector (\ s a -> s{_iVideoSelector = a})++-- | Use Program (programNumber) to select a specific program from within a multi-program transport stream. Note that Quad 4K is not currently supported. Default is the first program within the transport stream. If the program you specify doesn't exist, the transcoding service will use this default.+iProgramNumber :: Lens' Input (Maybe Int)+iProgramNumber = lens _iProgramNumber (\ s a -> s{_iProgramNumber = a})++-- | Specifies set of audio selectors within an input to combine. An input may have multiple audio selector groups. See "Audio Selector Group":#inputs-audio_selector_group for more information.+iAudioSelectorGroups :: Lens' Input (HashMap Text AudioSelectorGroup)+iAudioSelectorGroups = lens _iAudioSelectorGroups (\ s a -> s{_iAudioSelectorGroups = a}) . _Default . _Map++-- | Undocumented member.+iTimecodeSource :: Lens' Input (Maybe InputTimecodeSource)+iTimecodeSource = lens _iTimecodeSource (\ s a -> s{_iTimecodeSource = a})++-- | Use Audio selectors (AudioSelectors) to specify a track or set of tracks from the input that you will use in your outputs. You can use mutiple Audio selectors per input.+iAudioSelectors :: Lens' Input (HashMap Text AudioSelector)+iAudioSelectors = lens _iAudioSelectors (\ s a -> s{_iAudioSelectors = a}) . _Default . _Map++-- | Undocumented member.+iDeblockFilter :: Lens' Input (Maybe InputDeblockFilter)+iDeblockFilter = lens _iDeblockFilter (\ s a -> s{_iDeblockFilter = a})++-- | (InputClippings) contains sets of start and end times that together specify a portion of the input to be used in the outputs. If you provide only a start time, the clip will be the entire input from that point to the end. If you provide only an end time, it will be the entire input up to that point. When you specify more than one input clip, the transcoding service creates the job outputs by stringing the clips together in the order you specify them.+iInputClippings :: Lens' Input [InputClipping]+iInputClippings = lens _iInputClippings (\ s a -> s{_iInputClippings = a}) . _Default . _Coerce++-- | Undocumented member.+iDenoiseFilter :: Lens' Input (Maybe InputDenoiseFilter)+iDenoiseFilter = lens _iDenoiseFilter (\ s a -> s{_iDenoiseFilter = a})++-- | Use Filter strength (FilterStrength) to adjust the magnitude the input filter settings (Deblock and Denoise). The range is -5 to 5. Default is 0.+iFilterStrength :: Lens' Input (Maybe Int)+iFilterStrength = lens _iFilterStrength (\ s a -> s{_iFilterStrength = a})++-- | Undocumented member.+iPsiControl :: Lens' Input (Maybe InputPsiControl)+iPsiControl = lens _iPsiControl (\ s a -> s{_iPsiControl = a})++-- | Use Captions selectors (CaptionSelectors) to specify the captions data from the input that you will use in your outputs. You can use mutiple captions selectors per input.+iCaptionSelectors :: Lens' Input (HashMap Text CaptionSelector)+iCaptionSelectors = lens _iCaptionSelectors (\ s a -> s{_iCaptionSelectors = a}) . _Default . _Map++-- | Use Input (fileInput) to define the source file used in the transcode job. There can be multiple inputs in a job. These inputs are concantenated, in the order they are specified in the job, to create the output.+iFileInput :: Lens' Input (Maybe Text)+iFileInput = lens _iFileInput (\ s a -> s{_iFileInput = a})++-- | Undocumented member.+iFilterEnable :: Lens' Input (Maybe InputFilterEnable)+iFilterEnable = lens _iFilterEnable (\ s a -> s{_iFilterEnable = a})++instance FromJSON Input where+        parseJSON+          = withObject "Input"+              (\ x ->+                 Input' <$>+                   (x .:? "videoSelector") <*> (x .:? "programNumber")+                     <*> (x .:? "audioSelectorGroups" .!= mempty)+                     <*> (x .:? "timecodeSource")+                     <*> (x .:? "audioSelectors" .!= mempty)+                     <*> (x .:? "deblockFilter")+                     <*> (x .:? "inputClippings" .!= mempty)+                     <*> (x .:? "denoiseFilter")+                     <*> (x .:? "filterStrength")+                     <*> (x .:? "psiControl")+                     <*> (x .:? "captionSelectors" .!= mempty)+                     <*> (x .:? "fileInput")+                     <*> (x .:? "filterEnable"))++instance Hashable Input where++instance NFData Input where++instance ToJSON Input where+        toJSON Input'{..}+          = object+              (catMaybes+                 [("videoSelector" .=) <$> _iVideoSelector,+                  ("programNumber" .=) <$> _iProgramNumber,+                  ("audioSelectorGroups" .=) <$> _iAudioSelectorGroups,+                  ("timecodeSource" .=) <$> _iTimecodeSource,+                  ("audioSelectors" .=) <$> _iAudioSelectors,+                  ("deblockFilter" .=) <$> _iDeblockFilter,+                  ("inputClippings" .=) <$> _iInputClippings,+                  ("denoiseFilter" .=) <$> _iDenoiseFilter,+                  ("filterStrength" .=) <$> _iFilterStrength,+                  ("psiControl" .=) <$> _iPsiControl,+                  ("captionSelectors" .=) <$> _iCaptionSelectors,+                  ("fileInput" .=) <$> _iFileInput,+                  ("filterEnable" .=) <$> _iFilterEnable])++-- | Include one instance of (InputClipping) for each input clip.+--+-- /See:/ 'inputClipping' smart constructor.+data InputClipping = InputClipping'+  { _icEndTimecode   :: !(Maybe Text)+  , _icStartTimecode :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InputClipping' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'icEndTimecode' - Set End timecode (EndTimecode) to the end of the portion of the input you are clipping. The frame corresponding to the End timecode value is included in the clip. Start timecode or End timecode may be left blank, but not both. When choosing this value, take into account your setting for Input timecode source. For example, if you have embedded timecodes that start at 01:00:00:00 and you want your clip to begin five minutes into the video, use 01:00:05:00.+--+-- * 'icStartTimecode' - Set Start timecode (StartTimecode) to the beginning of the portion of the input you are clipping. The frame corresponding to the Start timecode value is included in the clip. Start timecode or End timecode may be left blank, but not both. When choosing this value, take into account your setting for Input timecode source. For example, if you have embedded timecodes that start at 01:00:00:00 and you want your clip to begin five minutes into the video, use 01:00:05:00.+inputClipping+    :: InputClipping+inputClipping =+  InputClipping' {_icEndTimecode = Nothing, _icStartTimecode = Nothing}+++-- | Set End timecode (EndTimecode) to the end of the portion of the input you are clipping. The frame corresponding to the End timecode value is included in the clip. Start timecode or End timecode may be left blank, but not both. When choosing this value, take into account your setting for Input timecode source. For example, if you have embedded timecodes that start at 01:00:00:00 and you want your clip to begin five minutes into the video, use 01:00:05:00.+icEndTimecode :: Lens' InputClipping (Maybe Text)+icEndTimecode = lens _icEndTimecode (\ s a -> s{_icEndTimecode = a})++-- | Set Start timecode (StartTimecode) to the beginning of the portion of the input you are clipping. The frame corresponding to the Start timecode value is included in the clip. Start timecode or End timecode may be left blank, but not both. When choosing this value, take into account your setting for Input timecode source. For example, if you have embedded timecodes that start at 01:00:00:00 and you want your clip to begin five minutes into the video, use 01:00:05:00.+icStartTimecode :: Lens' InputClipping (Maybe Text)+icStartTimecode = lens _icStartTimecode (\ s a -> s{_icStartTimecode = a})++instance FromJSON InputClipping where+        parseJSON+          = withObject "InputClipping"+              (\ x ->+                 InputClipping' <$>+                   (x .:? "endTimecode") <*> (x .:? "startTimecode"))++instance Hashable InputClipping where++instance NFData InputClipping where++instance ToJSON InputClipping where+        toJSON InputClipping'{..}+          = object+              (catMaybes+                 [("endTimecode" .=) <$> _icEndTimecode,+                  ("startTimecode" .=) <$> _icStartTimecode])++-- | Specified video input in a template.+--+-- /See:/ 'inputTemplate' smart constructor.+data InputTemplate = InputTemplate'+  { _itVideoSelector       :: !(Maybe VideoSelector)+  , _itProgramNumber       :: !(Maybe Int)+  , _itAudioSelectorGroups :: !(Maybe (Map Text AudioSelectorGroup))+  , _itTimecodeSource      :: !(Maybe InputTimecodeSource)+  , _itAudioSelectors      :: !(Maybe (Map Text AudioSelector))+  , _itDeblockFilter       :: !(Maybe InputDeblockFilter)+  , _itInputClippings      :: !(Maybe [InputClipping])+  , _itDenoiseFilter       :: !(Maybe InputDenoiseFilter)+  , _itFilterStrength      :: !(Maybe Int)+  , _itPsiControl          :: !(Maybe InputPsiControl)+  , _itCaptionSelectors    :: !(Maybe (Map Text CaptionSelector))+  , _itFilterEnable        :: !(Maybe InputFilterEnable)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InputTemplate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'itVideoSelector' - Undocumented member.+--+-- * 'itProgramNumber' - Use Program (programNumber) to select a specific program from within a multi-program transport stream. Note that Quad 4K is not currently supported. Default is the first program within the transport stream. If the program you specify doesn't exist, the transcoding service will use this default.+--+-- * 'itAudioSelectorGroups' - Specifies set of audio selectors within an input to combine. An input may have multiple audio selector groups. See "Audio Selector Group":#inputs-audio_selector_group for more information.+--+-- * 'itTimecodeSource' - Undocumented member.+--+-- * 'itAudioSelectors' - Use Audio selectors (AudioSelectors) to specify a track or set of tracks from the input that you will use in your outputs. You can use mutiple Audio selectors per input.+--+-- * 'itDeblockFilter' - Undocumented member.+--+-- * 'itInputClippings' - (InputClippings) contains sets of start and end times that together specify a portion of the input to be used in the outputs. If you provide only a start time, the clip will be the entire input from that point to the end. If you provide only an end time, it will be the entire input up to that point. When you specify more than one input clip, the transcoding service creates the job outputs by stringing the clips together in the order you specify them.+--+-- * 'itDenoiseFilter' - Undocumented member.+--+-- * 'itFilterStrength' - Use Filter strength (FilterStrength) to adjust the magnitude the input filter settings (Deblock and Denoise). The range is -5 to 5. Default is 0.+--+-- * 'itPsiControl' - Undocumented member.+--+-- * 'itCaptionSelectors' - Use Captions selectors (CaptionSelectors) to specify the captions data from the input that you will use in your outputs. You can use mutiple captions selectors per input.+--+-- * 'itFilterEnable' - Undocumented member.+inputTemplate+    :: InputTemplate+inputTemplate =+  InputTemplate'+    { _itVideoSelector = Nothing+    , _itProgramNumber = Nothing+    , _itAudioSelectorGroups = Nothing+    , _itTimecodeSource = Nothing+    , _itAudioSelectors = Nothing+    , _itDeblockFilter = Nothing+    , _itInputClippings = Nothing+    , _itDenoiseFilter = Nothing+    , _itFilterStrength = Nothing+    , _itPsiControl = Nothing+    , _itCaptionSelectors = Nothing+    , _itFilterEnable = Nothing+    }+++-- | Undocumented member.+itVideoSelector :: Lens' InputTemplate (Maybe VideoSelector)+itVideoSelector = lens _itVideoSelector (\ s a -> s{_itVideoSelector = a})++-- | Use Program (programNumber) to select a specific program from within a multi-program transport stream. Note that Quad 4K is not currently supported. Default is the first program within the transport stream. If the program you specify doesn't exist, the transcoding service will use this default.+itProgramNumber :: Lens' InputTemplate (Maybe Int)+itProgramNumber = lens _itProgramNumber (\ s a -> s{_itProgramNumber = a})++-- | Specifies set of audio selectors within an input to combine. An input may have multiple audio selector groups. See "Audio Selector Group":#inputs-audio_selector_group for more information.+itAudioSelectorGroups :: Lens' InputTemplate (HashMap Text AudioSelectorGroup)+itAudioSelectorGroups = lens _itAudioSelectorGroups (\ s a -> s{_itAudioSelectorGroups = a}) . _Default . _Map++-- | Undocumented member.+itTimecodeSource :: Lens' InputTemplate (Maybe InputTimecodeSource)+itTimecodeSource = lens _itTimecodeSource (\ s a -> s{_itTimecodeSource = a})++-- | Use Audio selectors (AudioSelectors) to specify a track or set of tracks from the input that you will use in your outputs. You can use mutiple Audio selectors per input.+itAudioSelectors :: Lens' InputTemplate (HashMap Text AudioSelector)+itAudioSelectors = lens _itAudioSelectors (\ s a -> s{_itAudioSelectors = a}) . _Default . _Map++-- | Undocumented member.+itDeblockFilter :: Lens' InputTemplate (Maybe InputDeblockFilter)+itDeblockFilter = lens _itDeblockFilter (\ s a -> s{_itDeblockFilter = a})++-- | (InputClippings) contains sets of start and end times that together specify a portion of the input to be used in the outputs. If you provide only a start time, the clip will be the entire input from that point to the end. If you provide only an end time, it will be the entire input up to that point. When you specify more than one input clip, the transcoding service creates the job outputs by stringing the clips together in the order you specify them.+itInputClippings :: Lens' InputTemplate [InputClipping]+itInputClippings = lens _itInputClippings (\ s a -> s{_itInputClippings = a}) . _Default . _Coerce++-- | Undocumented member.+itDenoiseFilter :: Lens' InputTemplate (Maybe InputDenoiseFilter)+itDenoiseFilter = lens _itDenoiseFilter (\ s a -> s{_itDenoiseFilter = a})++-- | Use Filter strength (FilterStrength) to adjust the magnitude the input filter settings (Deblock and Denoise). The range is -5 to 5. Default is 0.+itFilterStrength :: Lens' InputTemplate (Maybe Int)+itFilterStrength = lens _itFilterStrength (\ s a -> s{_itFilterStrength = a})++-- | Undocumented member.+itPsiControl :: Lens' InputTemplate (Maybe InputPsiControl)+itPsiControl = lens _itPsiControl (\ s a -> s{_itPsiControl = a})++-- | Use Captions selectors (CaptionSelectors) to specify the captions data from the input that you will use in your outputs. You can use mutiple captions selectors per input.+itCaptionSelectors :: Lens' InputTemplate (HashMap Text CaptionSelector)+itCaptionSelectors = lens _itCaptionSelectors (\ s a -> s{_itCaptionSelectors = a}) . _Default . _Map++-- | Undocumented member.+itFilterEnable :: Lens' InputTemplate (Maybe InputFilterEnable)+itFilterEnable = lens _itFilterEnable (\ s a -> s{_itFilterEnable = a})++instance FromJSON InputTemplate where+        parseJSON+          = withObject "InputTemplate"+              (\ x ->+                 InputTemplate' <$>+                   (x .:? "videoSelector") <*> (x .:? "programNumber")+                     <*> (x .:? "audioSelectorGroups" .!= mempty)+                     <*> (x .:? "timecodeSource")+                     <*> (x .:? "audioSelectors" .!= mempty)+                     <*> (x .:? "deblockFilter")+                     <*> (x .:? "inputClippings" .!= mempty)+                     <*> (x .:? "denoiseFilter")+                     <*> (x .:? "filterStrength")+                     <*> (x .:? "psiControl")+                     <*> (x .:? "captionSelectors" .!= mempty)+                     <*> (x .:? "filterEnable"))++instance Hashable InputTemplate where++instance NFData InputTemplate where++instance ToJSON InputTemplate where+        toJSON InputTemplate'{..}+          = object+              (catMaybes+                 [("videoSelector" .=) <$> _itVideoSelector,+                  ("programNumber" .=) <$> _itProgramNumber,+                  ("audioSelectorGroups" .=) <$>+                    _itAudioSelectorGroups,+                  ("timecodeSource" .=) <$> _itTimecodeSource,+                  ("audioSelectors" .=) <$> _itAudioSelectors,+                  ("deblockFilter" .=) <$> _itDeblockFilter,+                  ("inputClippings" .=) <$> _itInputClippings,+                  ("denoiseFilter" .=) <$> _itDenoiseFilter,+                  ("filterStrength" .=) <$> _itFilterStrength,+                  ("psiControl" .=) <$> _itPsiControl,+                  ("captionSelectors" .=) <$> _itCaptionSelectors,+                  ("filterEnable" .=) <$> _itFilterEnable])++-- | Settings for Insertable Image+--+-- /See:/ 'insertableImage' smart constructor.+data InsertableImage = InsertableImage'+  { _iiImageX             :: !(Maybe Int)+  , _iiHeight             :: !(Maybe Int)+  , _iiStartTime          :: !(Maybe Text)+  , _iiFadeOut            :: !(Maybe Int)+  , _iiWidth              :: !(Maybe Int)+  , _iiOpacity            :: !(Maybe Int)+  , _iiLayer              :: !(Maybe Int)+  , _iiDuration           :: !(Maybe Int)+  , _iiImageY             :: !(Maybe Int)+  , _iiImageInserterInput :: !(Maybe Text)+  , _iiFadeIn             :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InsertableImage' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iiImageX' - Use Left (ImageX) to set the distance, in pixels, between the inserted image and the left edge of the frame. Required for BMP, PNG and TGA input.+--+-- * 'iiHeight' - Specify the Height (Height) of the inserted image. Use a value that is less than or equal to the video resolution height. Leave this setting blank to use the native height of the image.+--+-- * 'iiStartTime' - Use Start time (StartTime) to specify the video timecode when the image is inserted in the output. This must be in timecode format (HH:MM:SS:FF)+--+-- * 'iiFadeOut' - Use Fade out (FadeOut) to set the length, in milliseconds, of the inserted image fade out. If you don't specify a value for Fade out, the image will disappear abruptly at the end of the inserted image duration.+--+-- * 'iiWidth' - Specify the Width (Width) of the inserted image. Use a value that is less than or equal to the video resolution width. Leave this setting blank to use the native width of the image.+--+-- * 'iiOpacity' - Use Opacity (Opacity) to specify how much of the underlying video shows through the inserted image. 0 is transparent and 100 is fully opaque. Default is 50.+--+-- * 'iiLayer' - Use Layer (Layer) to specify how overlapping inserted images appear. Images with higher values of layer appear on top of images with lower values of layer.+--+-- * 'iiDuration' - Use Duration (Duration) to set the time, in milliseconds, for the image to remain on the output video.+--+-- * 'iiImageY' - Use Top (ImageY) to set the distance, in pixels, between the inserted image and the top edge of the video frame. Required for BMP, PNG and TGA input.+--+-- * 'iiImageInserterInput' - Use Image location (imageInserterInput) to specify the Amazon S3 location of the image to be inserted into the output. Use a 32 bit BMP, PNG, or TGA file that fits inside the video frame.+--+-- * 'iiFadeIn' - Use Fade in (FadeIut) to set the length, in milliseconds, of the inserted image fade in. If you don't specify a value for Fade in, the image will appear abruptly at the Start time.+insertableImage+    :: InsertableImage+insertableImage =+  InsertableImage'+    { _iiImageX = Nothing+    , _iiHeight = Nothing+    , _iiStartTime = Nothing+    , _iiFadeOut = Nothing+    , _iiWidth = Nothing+    , _iiOpacity = Nothing+    , _iiLayer = Nothing+    , _iiDuration = Nothing+    , _iiImageY = Nothing+    , _iiImageInserterInput = Nothing+    , _iiFadeIn = Nothing+    }+++-- | Use Left (ImageX) to set the distance, in pixels, between the inserted image and the left edge of the frame. Required for BMP, PNG and TGA input.+iiImageX :: Lens' InsertableImage (Maybe Int)+iiImageX = lens _iiImageX (\ s a -> s{_iiImageX = a})++-- | Specify the Height (Height) of the inserted image. Use a value that is less than or equal to the video resolution height. Leave this setting blank to use the native height of the image.+iiHeight :: Lens' InsertableImage (Maybe Int)+iiHeight = lens _iiHeight (\ s a -> s{_iiHeight = a})++-- | Use Start time (StartTime) to specify the video timecode when the image is inserted in the output. This must be in timecode format (HH:MM:SS:FF)+iiStartTime :: Lens' InsertableImage (Maybe Text)+iiStartTime = lens _iiStartTime (\ s a -> s{_iiStartTime = a})++-- | Use Fade out (FadeOut) to set the length, in milliseconds, of the inserted image fade out. If you don't specify a value for Fade out, the image will disappear abruptly at the end of the inserted image duration.+iiFadeOut :: Lens' InsertableImage (Maybe Int)+iiFadeOut = lens _iiFadeOut (\ s a -> s{_iiFadeOut = a})++-- | Specify the Width (Width) of the inserted image. Use a value that is less than or equal to the video resolution width. Leave this setting blank to use the native width of the image.+iiWidth :: Lens' InsertableImage (Maybe Int)+iiWidth = lens _iiWidth (\ s a -> s{_iiWidth = a})++-- | Use Opacity (Opacity) to specify how much of the underlying video shows through the inserted image. 0 is transparent and 100 is fully opaque. Default is 50.+iiOpacity :: Lens' InsertableImage (Maybe Int)+iiOpacity = lens _iiOpacity (\ s a -> s{_iiOpacity = a})++-- | Use Layer (Layer) to specify how overlapping inserted images appear. Images with higher values of layer appear on top of images with lower values of layer.+iiLayer :: Lens' InsertableImage (Maybe Int)+iiLayer = lens _iiLayer (\ s a -> s{_iiLayer = a})++-- | Use Duration (Duration) to set the time, in milliseconds, for the image to remain on the output video.+iiDuration :: Lens' InsertableImage (Maybe Int)+iiDuration = lens _iiDuration (\ s a -> s{_iiDuration = a})++-- | Use Top (ImageY) to set the distance, in pixels, between the inserted image and the top edge of the video frame. Required for BMP, PNG and TGA input.+iiImageY :: Lens' InsertableImage (Maybe Int)+iiImageY = lens _iiImageY (\ s a -> s{_iiImageY = a})++-- | Use Image location (imageInserterInput) to specify the Amazon S3 location of the image to be inserted into the output. Use a 32 bit BMP, PNG, or TGA file that fits inside the video frame.+iiImageInserterInput :: Lens' InsertableImage (Maybe Text)+iiImageInserterInput = lens _iiImageInserterInput (\ s a -> s{_iiImageInserterInput = a})++-- | Use Fade in (FadeIut) to set the length, in milliseconds, of the inserted image fade in. If you don't specify a value for Fade in, the image will appear abruptly at the Start time.+iiFadeIn :: Lens' InsertableImage (Maybe Int)+iiFadeIn = lens _iiFadeIn (\ s a -> s{_iiFadeIn = a})++instance FromJSON InsertableImage where+        parseJSON+          = withObject "InsertableImage"+              (\ x ->+                 InsertableImage' <$>+                   (x .:? "imageX") <*> (x .:? "height") <*>+                     (x .:? "startTime")+                     <*> (x .:? "fadeOut")+                     <*> (x .:? "width")+                     <*> (x .:? "opacity")+                     <*> (x .:? "layer")+                     <*> (x .:? "duration")+                     <*> (x .:? "imageY")+                     <*> (x .:? "imageInserterInput")+                     <*> (x .:? "fadeIn"))++instance Hashable InsertableImage where++instance NFData InsertableImage where++instance ToJSON InsertableImage where+        toJSON InsertableImage'{..}+          = object+              (catMaybes+                 [("imageX" .=) <$> _iiImageX,+                  ("height" .=) <$> _iiHeight,+                  ("startTime" .=) <$> _iiStartTime,+                  ("fadeOut" .=) <$> _iiFadeOut,+                  ("width" .=) <$> _iiWidth,+                  ("opacity" .=) <$> _iiOpacity,+                  ("layer" .=) <$> _iiLayer,+                  ("duration" .=) <$> _iiDuration,+                  ("imageY" .=) <$> _iiImageY,+                  ("imageInserterInput" .=) <$> _iiImageInserterInput,+                  ("fadeIn" .=) <$> _iiFadeIn])++-- | Each job converts an input file into an output file or files. For more information, see the User Guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html+--+-- /See:/ 'job' smart constructor.+data Job = Job'+  { _jStatus             :: !(Maybe JobStatus)+  , _jJobTemplate        :: !(Maybe Text)+  , _jSettings           :: !(Maybe JobSettings)+  , _jARN                :: !(Maybe Text)+  , _jCreatedAt          :: !(Maybe POSIX)+  , _jQueue              :: !(Maybe Text)+  , _jUserMetadata       :: !(Maybe (Map Text Text))+  , _jRole               :: !(Maybe Text)+  , _jOutputGroupDetails :: !(Maybe [OutputGroupDetail])+  , _jErrorCode          :: !(Maybe Int)+  , _jId                 :: !(Maybe Text)+  , _jTiming             :: !(Maybe Timing)+  , _jErrorMessage       :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Job' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jStatus' - Undocumented member.+--+-- * 'jJobTemplate' - The job template that the job is created from, if it is created from a job template.+--+-- * 'jSettings' - Undocumented member.+--+-- * 'jARN' - An identifier for this resource that is unique within all of AWS.+--+-- * 'jCreatedAt' - The time, in Unix epoch format in seconds, when the job got created.+--+-- * 'jQueue' - Optional. When you create a job, you can specify a queue to send it to. If you don't specify, the job will go to the default queue. For more about queues, see the User Guide topic at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html+--+-- * 'jUserMetadata' - User-defined metadata that you want to associate with an MediaConvert job. You specify metadata in key/value pairs.+--+-- * 'jRole' - The IAM role you use for creating this job. For details about permissions, see the User Guide topic at the User Guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html+--+-- * 'jOutputGroupDetails' - List of output group details+--+-- * 'jErrorCode' - Error code for the job+--+-- * 'jId' - A portion of the job's ARN, unique within your AWS Elemental MediaConvert resources+--+-- * 'jTiming' - Undocumented member.+--+-- * 'jErrorMessage' - Error message of Job+job+    :: Job+job =+  Job'+    { _jStatus = Nothing+    , _jJobTemplate = Nothing+    , _jSettings = Nothing+    , _jARN = Nothing+    , _jCreatedAt = Nothing+    , _jQueue = Nothing+    , _jUserMetadata = Nothing+    , _jRole = Nothing+    , _jOutputGroupDetails = Nothing+    , _jErrorCode = Nothing+    , _jId = Nothing+    , _jTiming = Nothing+    , _jErrorMessage = Nothing+    }+++-- | Undocumented member.+jStatus :: Lens' Job (Maybe JobStatus)+jStatus = lens _jStatus (\ s a -> s{_jStatus = a})++-- | The job template that the job is created from, if it is created from a job template.+jJobTemplate :: Lens' Job (Maybe Text)+jJobTemplate = lens _jJobTemplate (\ s a -> s{_jJobTemplate = a})++-- | Undocumented member.+jSettings :: Lens' Job (Maybe JobSettings)+jSettings = lens _jSettings (\ s a -> s{_jSettings = a})++-- | An identifier for this resource that is unique within all of AWS.+jARN :: Lens' Job (Maybe Text)+jARN = lens _jARN (\ s a -> s{_jARN = a})++-- | The time, in Unix epoch format in seconds, when the job got created.+jCreatedAt :: Lens' Job (Maybe UTCTime)+jCreatedAt = lens _jCreatedAt (\ s a -> s{_jCreatedAt = a}) . mapping _Time++-- | Optional. When you create a job, you can specify a queue to send it to. If you don't specify, the job will go to the default queue. For more about queues, see the User Guide topic at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html+jQueue :: Lens' Job (Maybe Text)+jQueue = lens _jQueue (\ s a -> s{_jQueue = a})++-- | User-defined metadata that you want to associate with an MediaConvert job. You specify metadata in key/value pairs.+jUserMetadata :: Lens' Job (HashMap Text Text)+jUserMetadata = lens _jUserMetadata (\ s a -> s{_jUserMetadata = a}) . _Default . _Map++-- | The IAM role you use for creating this job. For details about permissions, see the User Guide topic at the User Guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html+jRole :: Lens' Job (Maybe Text)+jRole = lens _jRole (\ s a -> s{_jRole = a})++-- | List of output group details+jOutputGroupDetails :: Lens' Job [OutputGroupDetail]+jOutputGroupDetails = lens _jOutputGroupDetails (\ s a -> s{_jOutputGroupDetails = a}) . _Default . _Coerce++-- | Error code for the job+jErrorCode :: Lens' Job (Maybe Int)+jErrorCode = lens _jErrorCode (\ s a -> s{_jErrorCode = a})++-- | A portion of the job's ARN, unique within your AWS Elemental MediaConvert resources+jId :: Lens' Job (Maybe Text)+jId = lens _jId (\ s a -> s{_jId = a})++-- | Undocumented member.+jTiming :: Lens' Job (Maybe Timing)+jTiming = lens _jTiming (\ s a -> s{_jTiming = a})++-- | Error message of Job+jErrorMessage :: Lens' Job (Maybe Text)+jErrorMessage = lens _jErrorMessage (\ s a -> s{_jErrorMessage = a})++instance FromJSON Job where+        parseJSON+          = withObject "Job"+              (\ x ->+                 Job' <$>+                   (x .:? "status") <*> (x .:? "jobTemplate") <*>+                     (x .:? "settings")+                     <*> (x .:? "arn")+                     <*> (x .:? "createdAt")+                     <*> (x .:? "queue")+                     <*> (x .:? "userMetadata" .!= mempty)+                     <*> (x .:? "role")+                     <*> (x .:? "outputGroupDetails" .!= mempty)+                     <*> (x .:? "errorCode")+                     <*> (x .:? "id")+                     <*> (x .:? "timing")+                     <*> (x .:? "errorMessage"))++instance Hashable Job where++instance NFData Job where++-- | JobSettings contains all the transcode settings for a job.+--+-- /See:/ 'jobSettings' smart constructor.+data JobSettings = JobSettings'+  { _jsInputs                 :: !(Maybe [Input])+  , _jsTimedMetadataInsertion :: !(Maybe TimedMetadataInsertion)+  , _jsNielsenConfiguration   :: !(Maybe NielsenConfiguration)+  , _jsAvailBlanking          :: !(Maybe AvailBlanking)+  , _jsTimecodeConfig         :: !(Maybe TimecodeConfig)+  , _jsOutputGroups           :: !(Maybe [OutputGroup])+  , _jsAdAvailOffset          :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'JobSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jsInputs' - Use Inputs (inputs) to define source file used in the transcode job. There can be multiple inputs add in a job. These inputs will be concantenated together to create the output.+--+-- * 'jsTimedMetadataInsertion' - Undocumented member.+--+-- * 'jsNielsenConfiguration' - Undocumented member.+--+-- * 'jsAvailBlanking' - Settings for ad avail blanking.  Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails.+--+-- * 'jsTimecodeConfig' - Contains settings used to acquire and adjust timecode information from inputs.+--+-- * 'jsOutputGroups' - **!!**(OutputGroups) contains one group of settings for each set of outputs that share a common package type. All unpackaged files (MPEG-4, MPEG-2 TS, Quicktime, MXF, and no container) are grouped in a single output group as well. Required in (OutputGroups) is a group of settings that apply to the whole group. This required object depends on the value you set for (Type) under (OutputGroups)>(OutputGroupSettings). Type, settings object pairs are as follows. * FILE_GROUP_SETTINGS, FileGroupSettings * HLS_GROUP_SETTINGS, HlsGroupSettings * DASH_ISO_GROUP_SETTINGS, DashIsoGroupSettings * MS_SMOOTH_GROUP_SETTINGS, MsSmoothGroupSettings+--+-- * 'jsAdAvailOffset' - When specified, this offset (in milliseconds) is added to the input Ad Avail PTS time.+jobSettings+    :: JobSettings+jobSettings =+  JobSettings'+    { _jsInputs = Nothing+    , _jsTimedMetadataInsertion = Nothing+    , _jsNielsenConfiguration = Nothing+    , _jsAvailBlanking = Nothing+    , _jsTimecodeConfig = Nothing+    , _jsOutputGroups = Nothing+    , _jsAdAvailOffset = Nothing+    }+++-- | Use Inputs (inputs) to define source file used in the transcode job. There can be multiple inputs add in a job. These inputs will be concantenated together to create the output.+jsInputs :: Lens' JobSettings [Input]+jsInputs = lens _jsInputs (\ s a -> s{_jsInputs = a}) . _Default . _Coerce++-- | Undocumented member.+jsTimedMetadataInsertion :: Lens' JobSettings (Maybe TimedMetadataInsertion)+jsTimedMetadataInsertion = lens _jsTimedMetadataInsertion (\ s a -> s{_jsTimedMetadataInsertion = a})++-- | Undocumented member.+jsNielsenConfiguration :: Lens' JobSettings (Maybe NielsenConfiguration)+jsNielsenConfiguration = lens _jsNielsenConfiguration (\ s a -> s{_jsNielsenConfiguration = a})++-- | Settings for ad avail blanking.  Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails.+jsAvailBlanking :: Lens' JobSettings (Maybe AvailBlanking)+jsAvailBlanking = lens _jsAvailBlanking (\ s a -> s{_jsAvailBlanking = a})++-- | Contains settings used to acquire and adjust timecode information from inputs.+jsTimecodeConfig :: Lens' JobSettings (Maybe TimecodeConfig)+jsTimecodeConfig = lens _jsTimecodeConfig (\ s a -> s{_jsTimecodeConfig = a})++-- | **!!**(OutputGroups) contains one group of settings for each set of outputs that share a common package type. All unpackaged files (MPEG-4, MPEG-2 TS, Quicktime, MXF, and no container) are grouped in a single output group as well. Required in (OutputGroups) is a group of settings that apply to the whole group. This required object depends on the value you set for (Type) under (OutputGroups)>(OutputGroupSettings). Type, settings object pairs are as follows. * FILE_GROUP_SETTINGS, FileGroupSettings * HLS_GROUP_SETTINGS, HlsGroupSettings * DASH_ISO_GROUP_SETTINGS, DashIsoGroupSettings * MS_SMOOTH_GROUP_SETTINGS, MsSmoothGroupSettings+jsOutputGroups :: Lens' JobSettings [OutputGroup]+jsOutputGroups = lens _jsOutputGroups (\ s a -> s{_jsOutputGroups = a}) . _Default . _Coerce++-- | When specified, this offset (in milliseconds) is added to the input Ad Avail PTS time.+jsAdAvailOffset :: Lens' JobSettings (Maybe Int)+jsAdAvailOffset = lens _jsAdAvailOffset (\ s a -> s{_jsAdAvailOffset = a})++instance FromJSON JobSettings where+        parseJSON+          = withObject "JobSettings"+              (\ x ->+                 JobSettings' <$>+                   (x .:? "inputs" .!= mempty) <*>+                     (x .:? "timedMetadataInsertion")+                     <*> (x .:? "nielsenConfiguration")+                     <*> (x .:? "availBlanking")+                     <*> (x .:? "timecodeConfig")+                     <*> (x .:? "outputGroups" .!= mempty)+                     <*> (x .:? "adAvailOffset"))++instance Hashable JobSettings where++instance NFData JobSettings where++instance ToJSON JobSettings where+        toJSON JobSettings'{..}+          = object+              (catMaybes+                 [("inputs" .=) <$> _jsInputs,+                  ("timedMetadataInsertion" .=) <$>+                    _jsTimedMetadataInsertion,+                  ("nielsenConfiguration" .=) <$>+                    _jsNielsenConfiguration,+                  ("availBlanking" .=) <$> _jsAvailBlanking,+                  ("timecodeConfig" .=) <$> _jsTimecodeConfig,+                  ("outputGroups" .=) <$> _jsOutputGroups,+                  ("adAvailOffset" .=) <$> _jsAdAvailOffset])++-- | A job template is a pre-made set of encoding instructions that you can use to quickly create a job.+--+-- /See:/ 'jobTemplate' smart constructor.+data JobTemplate = JobTemplate'+  { _jtLastUpdated :: !(Maybe POSIX)+  , _jtSettings    :: !(Maybe JobTemplateSettings)+  , _jtARN         :: !(Maybe Text)+  , _jtCreatedAt   :: !(Maybe POSIX)+  , _jtCategory    :: !(Maybe Text)+  , _jtQueue       :: !(Maybe Text)+  , _jtName        :: !(Maybe Text)+  , _jtType        :: !(Maybe Type)+  , _jtDescription :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'JobTemplate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jtLastUpdated' - The timestamp in epoch seconds when the Job template was last updated.+--+-- * 'jtSettings' - Undocumented member.+--+-- * 'jtARN' - An identifier for this resource that is unique within all of AWS.+--+-- * 'jtCreatedAt' - The timestamp in epoch seconds for Job template creation.+--+-- * 'jtCategory' - An optional category you create to organize your job templates.+--+-- * 'jtQueue' - Optional. The queue that jobs created from this template are assigned to. If you don't specify this, jobs will go to the default queue.+--+-- * 'jtName' - A name you create for each job template. Each name must be unique within your account.+--+-- * 'jtType' - A job template can be of two types: system or custom. System or built-in job templates can't be modified or deleted by the user.+--+-- * 'jtDescription' - An optional description you create for each job template.+jobTemplate+    :: JobTemplate+jobTemplate =+  JobTemplate'+    { _jtLastUpdated = Nothing+    , _jtSettings = Nothing+    , _jtARN = Nothing+    , _jtCreatedAt = Nothing+    , _jtCategory = Nothing+    , _jtQueue = Nothing+    , _jtName = Nothing+    , _jtType = Nothing+    , _jtDescription = Nothing+    }+++-- | The timestamp in epoch seconds when the Job template was last updated.+jtLastUpdated :: Lens' JobTemplate (Maybe UTCTime)+jtLastUpdated = lens _jtLastUpdated (\ s a -> s{_jtLastUpdated = a}) . mapping _Time++-- | Undocumented member.+jtSettings :: Lens' JobTemplate (Maybe JobTemplateSettings)+jtSettings = lens _jtSettings (\ s a -> s{_jtSettings = a})++-- | An identifier for this resource that is unique within all of AWS.+jtARN :: Lens' JobTemplate (Maybe Text)+jtARN = lens _jtARN (\ s a -> s{_jtARN = a})++-- | The timestamp in epoch seconds for Job template creation.+jtCreatedAt :: Lens' JobTemplate (Maybe UTCTime)+jtCreatedAt = lens _jtCreatedAt (\ s a -> s{_jtCreatedAt = a}) . mapping _Time++-- | An optional category you create to organize your job templates.+jtCategory :: Lens' JobTemplate (Maybe Text)+jtCategory = lens _jtCategory (\ s a -> s{_jtCategory = a})++-- | Optional. The queue that jobs created from this template are assigned to. If you don't specify this, jobs will go to the default queue.+jtQueue :: Lens' JobTemplate (Maybe Text)+jtQueue = lens _jtQueue (\ s a -> s{_jtQueue = a})++-- | A name you create for each job template. Each name must be unique within your account.+jtName :: Lens' JobTemplate (Maybe Text)+jtName = lens _jtName (\ s a -> s{_jtName = a})++-- | A job template can be of two types: system or custom. System or built-in job templates can't be modified or deleted by the user.+jtType :: Lens' JobTemplate (Maybe Type)+jtType = lens _jtType (\ s a -> s{_jtType = a})++-- | An optional description you create for each job template.+jtDescription :: Lens' JobTemplate (Maybe Text)+jtDescription = lens _jtDescription (\ s a -> s{_jtDescription = a})++instance FromJSON JobTemplate where+        parseJSON+          = withObject "JobTemplate"+              (\ x ->+                 JobTemplate' <$>+                   (x .:? "lastUpdated") <*> (x .:? "settings") <*>+                     (x .:? "arn")+                     <*> (x .:? "createdAt")+                     <*> (x .:? "category")+                     <*> (x .:? "queue")+                     <*> (x .:? "name")+                     <*> (x .:? "type")+                     <*> (x .:? "description"))++instance Hashable JobTemplate where++instance NFData JobTemplate where++-- | JobTemplateSettings contains all the transcode settings saved in the template that will be applied to jobs created from it.+--+-- /See:/ 'jobTemplateSettings' smart constructor.+data JobTemplateSettings = JobTemplateSettings'+  { _jtsInputs                 :: !(Maybe [InputTemplate])+  , _jtsTimedMetadataInsertion :: !(Maybe TimedMetadataInsertion)+  , _jtsNielsenConfiguration   :: !(Maybe NielsenConfiguration)+  , _jtsAvailBlanking          :: !(Maybe AvailBlanking)+  , _jtsTimecodeConfig         :: !(Maybe TimecodeConfig)+  , _jtsOutputGroups           :: !(Maybe [OutputGroup])+  , _jtsAdAvailOffset          :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'JobTemplateSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jtsInputs' - Use Inputs (inputs) to define the source file used in the transcode job. There can only be one input in a job template.  Using the API, you can include multiple inputs when referencing a job template.+--+-- * 'jtsTimedMetadataInsertion' - Undocumented member.+--+-- * 'jtsNielsenConfiguration' - Undocumented member.+--+-- * 'jtsAvailBlanking' - Settings for ad avail blanking.  Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails.+--+-- * 'jtsTimecodeConfig' - Contains settings used to acquire and adjust timecode information from inputs.+--+-- * 'jtsOutputGroups' - **!!**(OutputGroups) contains one group of settings for each set of outputs that share a common package type. All unpackaged files (MPEG-4, MPEG-2 TS, Quicktime, MXF, and no container) are grouped in a single output group as well. Required in (OutputGroups) is a group of settings that apply to the whole group. This required object depends on the value you set for (Type) under (OutputGroups)>(OutputGroupSettings). Type, settings object pairs are as follows. * FILE_GROUP_SETTINGS, FileGroupSettings * HLS_GROUP_SETTINGS, HlsGroupSettings * DASH_ISO_GROUP_SETTINGS, DashIsoGroupSettings * MS_SMOOTH_GROUP_SETTINGS, MsSmoothGroupSettings+--+-- * 'jtsAdAvailOffset' - When specified, this offset (in milliseconds) is added to the input Ad Avail PTS time.+jobTemplateSettings+    :: JobTemplateSettings+jobTemplateSettings =+  JobTemplateSettings'+    { _jtsInputs = Nothing+    , _jtsTimedMetadataInsertion = Nothing+    , _jtsNielsenConfiguration = Nothing+    , _jtsAvailBlanking = Nothing+    , _jtsTimecodeConfig = Nothing+    , _jtsOutputGroups = Nothing+    , _jtsAdAvailOffset = Nothing+    }+++-- | Use Inputs (inputs) to define the source file used in the transcode job. There can only be one input in a job template.  Using the API, you can include multiple inputs when referencing a job template.+jtsInputs :: Lens' JobTemplateSettings [InputTemplate]+jtsInputs = lens _jtsInputs (\ s a -> s{_jtsInputs = a}) . _Default . _Coerce++-- | Undocumented member.+jtsTimedMetadataInsertion :: Lens' JobTemplateSettings (Maybe TimedMetadataInsertion)+jtsTimedMetadataInsertion = lens _jtsTimedMetadataInsertion (\ s a -> s{_jtsTimedMetadataInsertion = a})++-- | Undocumented member.+jtsNielsenConfiguration :: Lens' JobTemplateSettings (Maybe NielsenConfiguration)+jtsNielsenConfiguration = lens _jtsNielsenConfiguration (\ s a -> s{_jtsNielsenConfiguration = a})++-- | Settings for ad avail blanking.  Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails.+jtsAvailBlanking :: Lens' JobTemplateSettings (Maybe AvailBlanking)+jtsAvailBlanking = lens _jtsAvailBlanking (\ s a -> s{_jtsAvailBlanking = a})++-- | Contains settings used to acquire and adjust timecode information from inputs.+jtsTimecodeConfig :: Lens' JobTemplateSettings (Maybe TimecodeConfig)+jtsTimecodeConfig = lens _jtsTimecodeConfig (\ s a -> s{_jtsTimecodeConfig = a})++-- | **!!**(OutputGroups) contains one group of settings for each set of outputs that share a common package type. All unpackaged files (MPEG-4, MPEG-2 TS, Quicktime, MXF, and no container) are grouped in a single output group as well. Required in (OutputGroups) is a group of settings that apply to the whole group. This required object depends on the value you set for (Type) under (OutputGroups)>(OutputGroupSettings). Type, settings object pairs are as follows. * FILE_GROUP_SETTINGS, FileGroupSettings * HLS_GROUP_SETTINGS, HlsGroupSettings * DASH_ISO_GROUP_SETTINGS, DashIsoGroupSettings * MS_SMOOTH_GROUP_SETTINGS, MsSmoothGroupSettings+jtsOutputGroups :: Lens' JobTemplateSettings [OutputGroup]+jtsOutputGroups = lens _jtsOutputGroups (\ s a -> s{_jtsOutputGroups = a}) . _Default . _Coerce++-- | When specified, this offset (in milliseconds) is added to the input Ad Avail PTS time.+jtsAdAvailOffset :: Lens' JobTemplateSettings (Maybe Int)+jtsAdAvailOffset = lens _jtsAdAvailOffset (\ s a -> s{_jtsAdAvailOffset = a})++instance FromJSON JobTemplateSettings where+        parseJSON+          = withObject "JobTemplateSettings"+              (\ x ->+                 JobTemplateSettings' <$>+                   (x .:? "inputs" .!= mempty) <*>+                     (x .:? "timedMetadataInsertion")+                     <*> (x .:? "nielsenConfiguration")+                     <*> (x .:? "availBlanking")+                     <*> (x .:? "timecodeConfig")+                     <*> (x .:? "outputGroups" .!= mempty)+                     <*> (x .:? "adAvailOffset"))++instance Hashable JobTemplateSettings where++instance NFData JobTemplateSettings where++instance ToJSON JobTemplateSettings where+        toJSON JobTemplateSettings'{..}+          = object+              (catMaybes+                 [("inputs" .=) <$> _jtsInputs,+                  ("timedMetadataInsertion" .=) <$>+                    _jtsTimedMetadataInsertion,+                  ("nielsenConfiguration" .=) <$>+                    _jtsNielsenConfiguration,+                  ("availBlanking" .=) <$> _jtsAvailBlanking,+                  ("timecodeConfig" .=) <$> _jtsTimecodeConfig,+                  ("outputGroups" .=) <$> _jtsOutputGroups,+                  ("adAvailOffset" .=) <$> _jtsAdAvailOffset])++-- | Settings for M2TS Container.+--+-- /See:/ 'm2tsSettings' smart constructor.+data M2tsSettings = M2tsSettings'+  { _mPmtPid              :: !(Maybe Int)+  , _mVideoPid            :: !(Maybe Int)+  , _mBufferModel         :: !(Maybe M2tsBufferModel)+  , _mProgramNumber       :: !(Maybe Int)+  , _mScte35Pid           :: !(Maybe Int)+  , _mMinEbpInterval      :: !(Maybe Int)+  , _mTransportStreamId   :: !(Maybe Int)+  , _mMaxPcrInterval      :: !(Maybe Int)+  , _mFragmentTime        :: !(Maybe Double)+  , _mPrivateMetadataPid  :: !(Maybe Int)+  , _mPmtInterval         :: !(Maybe Int)+  , _mDvbSdtSettings      :: !(Maybe DvbSdtSettings)+  , _mNullPacketBitrate   :: !(Maybe Double)+  , _mAudioBufferModel    :: !(Maybe M2tsAudioBufferModel)+  , _mTimedMetadataPid    :: !(Maybe Int)+  , _mAudioFramesPerPes   :: !(Maybe Int)+  , _mPcrPid              :: !(Maybe Int)+  , _mSegmentationMarkers :: !(Maybe M2tsSegmentationMarkers)+  , _mDvbSubPids          :: !(Maybe [Int])+  , _mScte35Source        :: !(Maybe M2tsScte35Source)+  , _mPatInterval         :: !(Maybe Int)+  , _mEsRateInPes         :: !(Maybe M2tsEsRateInPes)+  , _mBitrate             :: !(Maybe Int)+  , _mAudioPids           :: !(Maybe [Int])+  , _mDvbTeletextPid      :: !(Maybe Int)+  , _mNielsenId3          :: !(Maybe M2tsNielsenId3)+  , _mSegmentationTime    :: !(Maybe Double)+  , _mEbpAudioInterval    :: !(Maybe M2tsEbpAudioInterval)+  , _mDvbNitSettings      :: !(Maybe DvbNitSettings)+  , _mPcrControl          :: !(Maybe M2tsPcrControl)+  , _mEbpPlacement        :: !(Maybe M2tsEbpPlacement)+  , _mRateMode            :: !(Maybe M2tsRateMode)+  , _mSegmentationStyle   :: !(Maybe M2tsSegmentationStyle)+  , _mDvbTdtSettings      :: !(Maybe DvbTdtSettings)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'M2tsSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mPmtPid' - Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream.+--+-- * 'mVideoPid' - Packet Identifier (PID) of the elementary video stream in the transport stream.+--+-- * 'mBufferModel' - Undocumented member.+--+-- * 'mProgramNumber' - The value of the program number field in the Program Map Table.+--+-- * 'mScte35Pid' - Packet Identifier (PID) of the SCTE-35 stream in the transport stream.+--+-- * 'mMinEbpInterval' - When set, enforces that Encoder Boundary Points do not come within the specified time interval of each other by looking ahead at input video. If another EBP is going to come in within the specified time interval, the current EBP is not emitted, and the segment is "stretched" to the next marker. The lookahead value does not add latency to the system. The Live Event must be configured elsewhere to create sufficient latency to make the lookahead accurate.+--+-- * 'mTransportStreamId' - The value of the transport stream ID field in the Program Map Table.+--+-- * 'mMaxPcrInterval' - Maximum time in milliseconds between Program Clock References (PCRs) inserted into the transport stream.+--+-- * 'mFragmentTime' - The length in seconds of each fragment. Only used with EBP markers.+--+-- * 'mPrivateMetadataPid' - Packet Identifier (PID) of the private metadata stream in the transport stream.+--+-- * 'mPmtInterval' - The number of milliseconds between instances of this table in the output transport stream.+--+-- * 'mDvbSdtSettings' - Undocumented member.+--+-- * 'mNullPacketBitrate' - Value in bits per second of extra null packets to insert into the transport stream. This can be used if a downstream encryption system requires periodic null packets.+--+-- * 'mAudioBufferModel' - Undocumented member.+--+-- * 'mTimedMetadataPid' - Packet Identifier (PID) of the timed metadata stream in the transport stream.+--+-- * 'mAudioFramesPerPes' - The number of audio frames to insert for each PES packet.+--+-- * 'mPcrPid' - Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport stream. When no value is given, the encoder will assign the same value as the Video PID.+--+-- * 'mSegmentationMarkers' - Undocumented member.+--+-- * 'mDvbSubPids' - Packet Identifier (PID) for input source DVB Subtitle data to this output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.+--+-- * 'mScte35Source' - Undocumented member.+--+-- * 'mPatInterval' - The number of milliseconds between instances of this table in the output transport stream.+--+-- * 'mEsRateInPes' - Undocumented member.+--+-- * 'mBitrate' - The output bitrate of the transport stream in bits per second. Setting to 0 lets the muxer automatically determine the appropriate bitrate. Other common values are 3750000, 7500000, and 15000000.+--+-- * 'mAudioPids' - Packet Identifier (PID) of the elementary audio stream(s) in the transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma separation.+--+-- * 'mDvbTeletextPid' - Packet Identifier (PID) for input source DVB Teletext data to this output.+--+-- * 'mNielsenId3' - Undocumented member.+--+-- * 'mSegmentationTime' - The length in seconds of each segment. Required unless markers is set to _none_.+--+-- * 'mEbpAudioInterval' - Undocumented member.+--+-- * 'mDvbNitSettings' - Undocumented member.+--+-- * 'mPcrControl' - Undocumented member.+--+-- * 'mEbpPlacement' - Undocumented member.+--+-- * 'mRateMode' - Undocumented member.+--+-- * 'mSegmentationStyle' - Undocumented member.+--+-- * 'mDvbTdtSettings' - Undocumented member.+m2tsSettings+    :: M2tsSettings+m2tsSettings =+  M2tsSettings'+    { _mPmtPid = Nothing+    , _mVideoPid = Nothing+    , _mBufferModel = Nothing+    , _mProgramNumber = Nothing+    , _mScte35Pid = Nothing+    , _mMinEbpInterval = Nothing+    , _mTransportStreamId = Nothing+    , _mMaxPcrInterval = Nothing+    , _mFragmentTime = Nothing+    , _mPrivateMetadataPid = Nothing+    , _mPmtInterval = Nothing+    , _mDvbSdtSettings = Nothing+    , _mNullPacketBitrate = Nothing+    , _mAudioBufferModel = Nothing+    , _mTimedMetadataPid = Nothing+    , _mAudioFramesPerPes = Nothing+    , _mPcrPid = Nothing+    , _mSegmentationMarkers = Nothing+    , _mDvbSubPids = Nothing+    , _mScte35Source = Nothing+    , _mPatInterval = Nothing+    , _mEsRateInPes = Nothing+    , _mBitrate = Nothing+    , _mAudioPids = Nothing+    , _mDvbTeletextPid = Nothing+    , _mNielsenId3 = Nothing+    , _mSegmentationTime = Nothing+    , _mEbpAudioInterval = Nothing+    , _mDvbNitSettings = Nothing+    , _mPcrControl = Nothing+    , _mEbpPlacement = Nothing+    , _mRateMode = Nothing+    , _mSegmentationStyle = Nothing+    , _mDvbTdtSettings = Nothing+    }+++-- | Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream.+mPmtPid :: Lens' M2tsSettings (Maybe Int)+mPmtPid = lens _mPmtPid (\ s a -> s{_mPmtPid = a})++-- | Packet Identifier (PID) of the elementary video stream in the transport stream.+mVideoPid :: Lens' M2tsSettings (Maybe Int)+mVideoPid = lens _mVideoPid (\ s a -> s{_mVideoPid = a})++-- | Undocumented member.+mBufferModel :: Lens' M2tsSettings (Maybe M2tsBufferModel)+mBufferModel = lens _mBufferModel (\ s a -> s{_mBufferModel = a})++-- | The value of the program number field in the Program Map Table.+mProgramNumber :: Lens' M2tsSettings (Maybe Int)+mProgramNumber = lens _mProgramNumber (\ s a -> s{_mProgramNumber = a})++-- | Packet Identifier (PID) of the SCTE-35 stream in the transport stream.+mScte35Pid :: Lens' M2tsSettings (Maybe Int)+mScte35Pid = lens _mScte35Pid (\ s a -> s{_mScte35Pid = a})++-- | When set, enforces that Encoder Boundary Points do not come within the specified time interval of each other by looking ahead at input video. If another EBP is going to come in within the specified time interval, the current EBP is not emitted, and the segment is "stretched" to the next marker. The lookahead value does not add latency to the system. The Live Event must be configured elsewhere to create sufficient latency to make the lookahead accurate.+mMinEbpInterval :: Lens' M2tsSettings (Maybe Int)+mMinEbpInterval = lens _mMinEbpInterval (\ s a -> s{_mMinEbpInterval = a})++-- | The value of the transport stream ID field in the Program Map Table.+mTransportStreamId :: Lens' M2tsSettings (Maybe Int)+mTransportStreamId = lens _mTransportStreamId (\ s a -> s{_mTransportStreamId = a})++-- | Maximum time in milliseconds between Program Clock References (PCRs) inserted into the transport stream.+mMaxPcrInterval :: Lens' M2tsSettings (Maybe Int)+mMaxPcrInterval = lens _mMaxPcrInterval (\ s a -> s{_mMaxPcrInterval = a})++-- | The length in seconds of each fragment. Only used with EBP markers.+mFragmentTime :: Lens' M2tsSettings (Maybe Double)+mFragmentTime = lens _mFragmentTime (\ s a -> s{_mFragmentTime = a})++-- | Packet Identifier (PID) of the private metadata stream in the transport stream.+mPrivateMetadataPid :: Lens' M2tsSettings (Maybe Int)+mPrivateMetadataPid = lens _mPrivateMetadataPid (\ s a -> s{_mPrivateMetadataPid = a})++-- | The number of milliseconds between instances of this table in the output transport stream.+mPmtInterval :: Lens' M2tsSettings (Maybe Int)+mPmtInterval = lens _mPmtInterval (\ s a -> s{_mPmtInterval = a})++-- | Undocumented member.+mDvbSdtSettings :: Lens' M2tsSettings (Maybe DvbSdtSettings)+mDvbSdtSettings = lens _mDvbSdtSettings (\ s a -> s{_mDvbSdtSettings = a})++-- | Value in bits per second of extra null packets to insert into the transport stream. This can be used if a downstream encryption system requires periodic null packets.+mNullPacketBitrate :: Lens' M2tsSettings (Maybe Double)+mNullPacketBitrate = lens _mNullPacketBitrate (\ s a -> s{_mNullPacketBitrate = a})++-- | Undocumented member.+mAudioBufferModel :: Lens' M2tsSettings (Maybe M2tsAudioBufferModel)+mAudioBufferModel = lens _mAudioBufferModel (\ s a -> s{_mAudioBufferModel = a})++-- | Packet Identifier (PID) of the timed metadata stream in the transport stream.+mTimedMetadataPid :: Lens' M2tsSettings (Maybe Int)+mTimedMetadataPid = lens _mTimedMetadataPid (\ s a -> s{_mTimedMetadataPid = a})++-- | The number of audio frames to insert for each PES packet.+mAudioFramesPerPes :: Lens' M2tsSettings (Maybe Int)+mAudioFramesPerPes = lens _mAudioFramesPerPes (\ s a -> s{_mAudioFramesPerPes = a})++-- | Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport stream. When no value is given, the encoder will assign the same value as the Video PID.+mPcrPid :: Lens' M2tsSettings (Maybe Int)+mPcrPid = lens _mPcrPid (\ s a -> s{_mPcrPid = a})++-- | Undocumented member.+mSegmentationMarkers :: Lens' M2tsSettings (Maybe M2tsSegmentationMarkers)+mSegmentationMarkers = lens _mSegmentationMarkers (\ s a -> s{_mSegmentationMarkers = a})++-- | Packet Identifier (PID) for input source DVB Subtitle data to this output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.+mDvbSubPids :: Lens' M2tsSettings [Int]+mDvbSubPids = lens _mDvbSubPids (\ s a -> s{_mDvbSubPids = a}) . _Default . _Coerce++-- | Undocumented member.+mScte35Source :: Lens' M2tsSettings (Maybe M2tsScte35Source)+mScte35Source = lens _mScte35Source (\ s a -> s{_mScte35Source = a})++-- | The number of milliseconds between instances of this table in the output transport stream.+mPatInterval :: Lens' M2tsSettings (Maybe Int)+mPatInterval = lens _mPatInterval (\ s a -> s{_mPatInterval = a})++-- | Undocumented member.+mEsRateInPes :: Lens' M2tsSettings (Maybe M2tsEsRateInPes)+mEsRateInPes = lens _mEsRateInPes (\ s a -> s{_mEsRateInPes = a})++-- | The output bitrate of the transport stream in bits per second. Setting to 0 lets the muxer automatically determine the appropriate bitrate. Other common values are 3750000, 7500000, and 15000000.+mBitrate :: Lens' M2tsSettings (Maybe Int)+mBitrate = lens _mBitrate (\ s a -> s{_mBitrate = a})++-- | Packet Identifier (PID) of the elementary audio stream(s) in the transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma separation.+mAudioPids :: Lens' M2tsSettings [Int]+mAudioPids = lens _mAudioPids (\ s a -> s{_mAudioPids = a}) . _Default . _Coerce++-- | Packet Identifier (PID) for input source DVB Teletext data to this output.+mDvbTeletextPid :: Lens' M2tsSettings (Maybe Int)+mDvbTeletextPid = lens _mDvbTeletextPid (\ s a -> s{_mDvbTeletextPid = a})++-- | Undocumented member.+mNielsenId3 :: Lens' M2tsSettings (Maybe M2tsNielsenId3)+mNielsenId3 = lens _mNielsenId3 (\ s a -> s{_mNielsenId3 = a})++-- | The length in seconds of each segment. Required unless markers is set to _none_.+mSegmentationTime :: Lens' M2tsSettings (Maybe Double)+mSegmentationTime = lens _mSegmentationTime (\ s a -> s{_mSegmentationTime = a})++-- | Undocumented member.+mEbpAudioInterval :: Lens' M2tsSettings (Maybe M2tsEbpAudioInterval)+mEbpAudioInterval = lens _mEbpAudioInterval (\ s a -> s{_mEbpAudioInterval = a})++-- | Undocumented member.+mDvbNitSettings :: Lens' M2tsSettings (Maybe DvbNitSettings)+mDvbNitSettings = lens _mDvbNitSettings (\ s a -> s{_mDvbNitSettings = a})++-- | Undocumented member.+mPcrControl :: Lens' M2tsSettings (Maybe M2tsPcrControl)+mPcrControl = lens _mPcrControl (\ s a -> s{_mPcrControl = a})++-- | Undocumented member.+mEbpPlacement :: Lens' M2tsSettings (Maybe M2tsEbpPlacement)+mEbpPlacement = lens _mEbpPlacement (\ s a -> s{_mEbpPlacement = a})++-- | Undocumented member.+mRateMode :: Lens' M2tsSettings (Maybe M2tsRateMode)+mRateMode = lens _mRateMode (\ s a -> s{_mRateMode = a})++-- | Undocumented member.+mSegmentationStyle :: Lens' M2tsSettings (Maybe M2tsSegmentationStyle)+mSegmentationStyle = lens _mSegmentationStyle (\ s a -> s{_mSegmentationStyle = a})++-- | Undocumented member.+mDvbTdtSettings :: Lens' M2tsSettings (Maybe DvbTdtSettings)+mDvbTdtSettings = lens _mDvbTdtSettings (\ s a -> s{_mDvbTdtSettings = a})++instance FromJSON M2tsSettings where+        parseJSON+          = withObject "M2tsSettings"+              (\ x ->+                 M2tsSettings' <$>+                   (x .:? "pmtPid") <*> (x .:? "videoPid") <*>+                     (x .:? "bufferModel")+                     <*> (x .:? "programNumber")+                     <*> (x .:? "scte35Pid")+                     <*> (x .:? "minEbpInterval")+                     <*> (x .:? "transportStreamId")+                     <*> (x .:? "maxPcrInterval")+                     <*> (x .:? "fragmentTime")+                     <*> (x .:? "privateMetadataPid")+                     <*> (x .:? "pmtInterval")+                     <*> (x .:? "dvbSdtSettings")+                     <*> (x .:? "nullPacketBitrate")+                     <*> (x .:? "audioBufferModel")+                     <*> (x .:? "timedMetadataPid")+                     <*> (x .:? "audioFramesPerPes")+                     <*> (x .:? "pcrPid")+                     <*> (x .:? "segmentationMarkers")+                     <*> (x .:? "dvbSubPids" .!= mempty)+                     <*> (x .:? "scte35Source")+                     <*> (x .:? "patInterval")+                     <*> (x .:? "esRateInPes")+                     <*> (x .:? "bitrate")+                     <*> (x .:? "audioPids" .!= mempty)+                     <*> (x .:? "dvbTeletextPid")+                     <*> (x .:? "nielsenId3")+                     <*> (x .:? "segmentationTime")+                     <*> (x .:? "ebpAudioInterval")+                     <*> (x .:? "dvbNitSettings")+                     <*> (x .:? "pcrControl")+                     <*> (x .:? "ebpPlacement")+                     <*> (x .:? "rateMode")+                     <*> (x .:? "segmentationStyle")+                     <*> (x .:? "dvbTdtSettings"))++instance Hashable M2tsSettings where++instance NFData M2tsSettings where++instance ToJSON M2tsSettings where+        toJSON M2tsSettings'{..}+          = object+              (catMaybes+                 [("pmtPid" .=) <$> _mPmtPid,+                  ("videoPid" .=) <$> _mVideoPid,+                  ("bufferModel" .=) <$> _mBufferModel,+                  ("programNumber" .=) <$> _mProgramNumber,+                  ("scte35Pid" .=) <$> _mScte35Pid,+                  ("minEbpInterval" .=) <$> _mMinEbpInterval,+                  ("transportStreamId" .=) <$> _mTransportStreamId,+                  ("maxPcrInterval" .=) <$> _mMaxPcrInterval,+                  ("fragmentTime" .=) <$> _mFragmentTime,+                  ("privateMetadataPid" .=) <$> _mPrivateMetadataPid,+                  ("pmtInterval" .=) <$> _mPmtInterval,+                  ("dvbSdtSettings" .=) <$> _mDvbSdtSettings,+                  ("nullPacketBitrate" .=) <$> _mNullPacketBitrate,+                  ("audioBufferModel" .=) <$> _mAudioBufferModel,+                  ("timedMetadataPid" .=) <$> _mTimedMetadataPid,+                  ("audioFramesPerPes" .=) <$> _mAudioFramesPerPes,+                  ("pcrPid" .=) <$> _mPcrPid,+                  ("segmentationMarkers" .=) <$> _mSegmentationMarkers,+                  ("dvbSubPids" .=) <$> _mDvbSubPids,+                  ("scte35Source" .=) <$> _mScte35Source,+                  ("patInterval" .=) <$> _mPatInterval,+                  ("esRateInPes" .=) <$> _mEsRateInPes,+                  ("bitrate" .=) <$> _mBitrate,+                  ("audioPids" .=) <$> _mAudioPids,+                  ("dvbTeletextPid" .=) <$> _mDvbTeletextPid,+                  ("nielsenId3" .=) <$> _mNielsenId3,+                  ("segmentationTime" .=) <$> _mSegmentationTime,+                  ("ebpAudioInterval" .=) <$> _mEbpAudioInterval,+                  ("dvbNitSettings" .=) <$> _mDvbNitSettings,+                  ("pcrControl" .=) <$> _mPcrControl,+                  ("ebpPlacement" .=) <$> _mEbpPlacement,+                  ("rateMode" .=) <$> _mRateMode,+                  ("segmentationStyle" .=) <$> _mSegmentationStyle,+                  ("dvbTdtSettings" .=) <$> _mDvbTdtSettings])++-- | Settings for TS segments in HLS+--+-- /See:/ 'm3u8Settings' smart constructor.+data M3u8Settings = M3u8Settings'+  { _msPmtPid             :: !(Maybe Int)+  , _msVideoPid           :: !(Maybe Int)+  , _msProgramNumber      :: !(Maybe Int)+  , _msScte35Pid          :: !(Maybe Int)+  , _msTransportStreamId  :: !(Maybe Int)+  , _msPrivateMetadataPid :: !(Maybe Int)+  , _msPmtInterval        :: !(Maybe Int)+  , _msTimedMetadataPid   :: !(Maybe Int)+  , _msAudioFramesPerPes  :: !(Maybe Int)+  , _msPcrPid             :: !(Maybe Int)+  , _msTimedMetadata      :: !(Maybe TimedMetadata)+  , _msScte35Source       :: !(Maybe M3u8Scte35Source)+  , _msPatInterval        :: !(Maybe Int)+  , _msAudioPids          :: !(Maybe [Int])+  , _msNielsenId3         :: !(Maybe M3u8NielsenId3)+  , _msPcrControl         :: !(Maybe M3u8PcrControl)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'M3u8Settings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'msPmtPid' - Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream.+--+-- * 'msVideoPid' - Packet Identifier (PID) of the elementary video stream in the transport stream.+--+-- * 'msProgramNumber' - The value of the program number field in the Program Map Table.+--+-- * 'msScte35Pid' - Packet Identifier (PID) of the SCTE-35 stream in the transport stream.+--+-- * 'msTransportStreamId' - The value of the transport stream ID field in the Program Map Table.+--+-- * 'msPrivateMetadataPid' - Packet Identifier (PID) of the private metadata stream in the transport stream.+--+-- * 'msPmtInterval' - The number of milliseconds between instances of this table in the output transport stream.+--+-- * 'msTimedMetadataPid' - Packet Identifier (PID) of the timed metadata stream in the transport stream.+--+-- * 'msAudioFramesPerPes' - The number of audio frames to insert for each PES packet.+--+-- * 'msPcrPid' - Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport stream. When no value is given, the encoder will assign the same value as the Video PID.+--+-- * 'msTimedMetadata' - Undocumented member.+--+-- * 'msScte35Source' - Undocumented member.+--+-- * 'msPatInterval' - The number of milliseconds between instances of this table in the output transport stream.+--+-- * 'msAudioPids' - Packet Identifier (PID) of the elementary audio stream(s) in the transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma separation.+--+-- * 'msNielsenId3' - Undocumented member.+--+-- * 'msPcrControl' - Undocumented member.+m3u8Settings+    :: M3u8Settings+m3u8Settings =+  M3u8Settings'+    { _msPmtPid = Nothing+    , _msVideoPid = Nothing+    , _msProgramNumber = Nothing+    , _msScte35Pid = Nothing+    , _msTransportStreamId = Nothing+    , _msPrivateMetadataPid = Nothing+    , _msPmtInterval = Nothing+    , _msTimedMetadataPid = Nothing+    , _msAudioFramesPerPes = Nothing+    , _msPcrPid = Nothing+    , _msTimedMetadata = Nothing+    , _msScte35Source = Nothing+    , _msPatInterval = Nothing+    , _msAudioPids = Nothing+    , _msNielsenId3 = Nothing+    , _msPcrControl = Nothing+    }+++-- | Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream.+msPmtPid :: Lens' M3u8Settings (Maybe Int)+msPmtPid = lens _msPmtPid (\ s a -> s{_msPmtPid = a})++-- | Packet Identifier (PID) of the elementary video stream in the transport stream.+msVideoPid :: Lens' M3u8Settings (Maybe Int)+msVideoPid = lens _msVideoPid (\ s a -> s{_msVideoPid = a})++-- | The value of the program number field in the Program Map Table.+msProgramNumber :: Lens' M3u8Settings (Maybe Int)+msProgramNumber = lens _msProgramNumber (\ s a -> s{_msProgramNumber = a})++-- | Packet Identifier (PID) of the SCTE-35 stream in the transport stream.+msScte35Pid :: Lens' M3u8Settings (Maybe Int)+msScte35Pid = lens _msScte35Pid (\ s a -> s{_msScte35Pid = a})++-- | The value of the transport stream ID field in the Program Map Table.+msTransportStreamId :: Lens' M3u8Settings (Maybe Int)+msTransportStreamId = lens _msTransportStreamId (\ s a -> s{_msTransportStreamId = a})++-- | Packet Identifier (PID) of the private metadata stream in the transport stream.+msPrivateMetadataPid :: Lens' M3u8Settings (Maybe Int)+msPrivateMetadataPid = lens _msPrivateMetadataPid (\ s a -> s{_msPrivateMetadataPid = a})++-- | The number of milliseconds between instances of this table in the output transport stream.+msPmtInterval :: Lens' M3u8Settings (Maybe Int)+msPmtInterval = lens _msPmtInterval (\ s a -> s{_msPmtInterval = a})++-- | Packet Identifier (PID) of the timed metadata stream in the transport stream.+msTimedMetadataPid :: Lens' M3u8Settings (Maybe Int)+msTimedMetadataPid = lens _msTimedMetadataPid (\ s a -> s{_msTimedMetadataPid = a})++-- | The number of audio frames to insert for each PES packet.+msAudioFramesPerPes :: Lens' M3u8Settings (Maybe Int)+msAudioFramesPerPes = lens _msAudioFramesPerPes (\ s a -> s{_msAudioFramesPerPes = a})++-- | Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport stream. When no value is given, the encoder will assign the same value as the Video PID.+msPcrPid :: Lens' M3u8Settings (Maybe Int)+msPcrPid = lens _msPcrPid (\ s a -> s{_msPcrPid = a})++-- | Undocumented member.+msTimedMetadata :: Lens' M3u8Settings (Maybe TimedMetadata)+msTimedMetadata = lens _msTimedMetadata (\ s a -> s{_msTimedMetadata = a})++-- | Undocumented member.+msScte35Source :: Lens' M3u8Settings (Maybe M3u8Scte35Source)+msScte35Source = lens _msScte35Source (\ s a -> s{_msScte35Source = a})++-- | The number of milliseconds between instances of this table in the output transport stream.+msPatInterval :: Lens' M3u8Settings (Maybe Int)+msPatInterval = lens _msPatInterval (\ s a -> s{_msPatInterval = a})++-- | Packet Identifier (PID) of the elementary audio stream(s) in the transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma separation.+msAudioPids :: Lens' M3u8Settings [Int]+msAudioPids = lens _msAudioPids (\ s a -> s{_msAudioPids = a}) . _Default . _Coerce++-- | Undocumented member.+msNielsenId3 :: Lens' M3u8Settings (Maybe M3u8NielsenId3)+msNielsenId3 = lens _msNielsenId3 (\ s a -> s{_msNielsenId3 = a})++-- | Undocumented member.+msPcrControl :: Lens' M3u8Settings (Maybe M3u8PcrControl)+msPcrControl = lens _msPcrControl (\ s a -> s{_msPcrControl = a})++instance FromJSON M3u8Settings where+        parseJSON+          = withObject "M3u8Settings"+              (\ x ->+                 M3u8Settings' <$>+                   (x .:? "pmtPid") <*> (x .:? "videoPid") <*>+                     (x .:? "programNumber")+                     <*> (x .:? "scte35Pid")+                     <*> (x .:? "transportStreamId")+                     <*> (x .:? "privateMetadataPid")+                     <*> (x .:? "pmtInterval")+                     <*> (x .:? "timedMetadataPid")+                     <*> (x .:? "audioFramesPerPes")+                     <*> (x .:? "pcrPid")+                     <*> (x .:? "timedMetadata")+                     <*> (x .:? "scte35Source")+                     <*> (x .:? "patInterval")+                     <*> (x .:? "audioPids" .!= mempty)+                     <*> (x .:? "nielsenId3")+                     <*> (x .:? "pcrControl"))++instance Hashable M3u8Settings where++instance NFData M3u8Settings where++instance ToJSON M3u8Settings where+        toJSON M3u8Settings'{..}+          = object+              (catMaybes+                 [("pmtPid" .=) <$> _msPmtPid,+                  ("videoPid" .=) <$> _msVideoPid,+                  ("programNumber" .=) <$> _msProgramNumber,+                  ("scte35Pid" .=) <$> _msScte35Pid,+                  ("transportStreamId" .=) <$> _msTransportStreamId,+                  ("privateMetadataPid" .=) <$> _msPrivateMetadataPid,+                  ("pmtInterval" .=) <$> _msPmtInterval,+                  ("timedMetadataPid" .=) <$> _msTimedMetadataPid,+                  ("audioFramesPerPes" .=) <$> _msAudioFramesPerPes,+                  ("pcrPid" .=) <$> _msPcrPid,+                  ("timedMetadata" .=) <$> _msTimedMetadata,+                  ("scte35Source" .=) <$> _msScte35Source,+                  ("patInterval" .=) <$> _msPatInterval,+                  ("audioPids" .=) <$> _msAudioPids,+                  ("nielsenId3" .=) <$> _msNielsenId3,+                  ("pcrControl" .=) <$> _msPcrControl])++-- | Settings for MOV Container.+--+-- /See:/ 'movSettings' smart constructor.+data MovSettings = MovSettings'+  { _msReference          :: !(Maybe MovReference)+  , _msCslgAtom           :: !(Maybe MovCslgAtom)+  , _msMpeg2FourCCControl :: !(Maybe MovMpeg2FourCCControl)+  , _msPaddingControl     :: !(Maybe MovPaddingControl)+  , _msClapAtom           :: !(Maybe MovClapAtom)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'MovSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'msReference' - Undocumented member.+--+-- * 'msCslgAtom' - Undocumented member.+--+-- * 'msMpeg2FourCCControl' - Undocumented member.+--+-- * 'msPaddingControl' - Undocumented member.+--+-- * 'msClapAtom' - Undocumented member.+movSettings+    :: MovSettings+movSettings =+  MovSettings'+    { _msReference = Nothing+    , _msCslgAtom = Nothing+    , _msMpeg2FourCCControl = Nothing+    , _msPaddingControl = Nothing+    , _msClapAtom = Nothing+    }+++-- | Undocumented member.+msReference :: Lens' MovSettings (Maybe MovReference)+msReference = lens _msReference (\ s a -> s{_msReference = a})++-- | Undocumented member.+msCslgAtom :: Lens' MovSettings (Maybe MovCslgAtom)+msCslgAtom = lens _msCslgAtom (\ s a -> s{_msCslgAtom = a})++-- | Undocumented member.+msMpeg2FourCCControl :: Lens' MovSettings (Maybe MovMpeg2FourCCControl)+msMpeg2FourCCControl = lens _msMpeg2FourCCControl (\ s a -> s{_msMpeg2FourCCControl = a})++-- | Undocumented member.+msPaddingControl :: Lens' MovSettings (Maybe MovPaddingControl)+msPaddingControl = lens _msPaddingControl (\ s a -> s{_msPaddingControl = a})++-- | Undocumented member.+msClapAtom :: Lens' MovSettings (Maybe MovClapAtom)+msClapAtom = lens _msClapAtom (\ s a -> s{_msClapAtom = a})++instance FromJSON MovSettings where+        parseJSON+          = withObject "MovSettings"+              (\ x ->+                 MovSettings' <$>+                   (x .:? "reference") <*> (x .:? "cslgAtom") <*>+                     (x .:? "mpeg2FourCCControl")+                     <*> (x .:? "paddingControl")+                     <*> (x .:? "clapAtom"))++instance Hashable MovSettings where++instance NFData MovSettings where++instance ToJSON MovSettings where+        toJSON MovSettings'{..}+          = object+              (catMaybes+                 [("reference" .=) <$> _msReference,+                  ("cslgAtom" .=) <$> _msCslgAtom,+                  ("mpeg2FourCCControl" .=) <$> _msMpeg2FourCCControl,+                  ("paddingControl" .=) <$> _msPaddingControl,+                  ("clapAtom" .=) <$> _msClapAtom])++-- | Required when you set (Codec) under (AudioDescriptions)>(CodecSettings) to the value MP2.+--+-- /See:/ 'mp2Settings' smart constructor.+data Mp2Settings = Mp2Settings'+  { _mssChannels   :: !(Maybe Int)+  , _mssSampleRate :: !(Maybe Int)+  , _mssBitrate    :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Mp2Settings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mssChannels' - Set Channels to specify the number of channels in this output audio track. Choosing Mono in the console will give you 1 output channel; choosing Stereo will give you 2. In the API, valid values are 1 and 2.+--+-- * 'mssSampleRate' - Sample rate in hz.+--+-- * 'mssBitrate' - Average bitrate in bits/second.+mp2Settings+    :: Mp2Settings+mp2Settings =+  Mp2Settings'+    {_mssChannels = Nothing, _mssSampleRate = Nothing, _mssBitrate = Nothing}+++-- | Set Channels to specify the number of channels in this output audio track. Choosing Mono in the console will give you 1 output channel; choosing Stereo will give you 2. In the API, valid values are 1 and 2.+mssChannels :: Lens' Mp2Settings (Maybe Int)+mssChannels = lens _mssChannels (\ s a -> s{_mssChannels = a})++-- | Sample rate in hz.+mssSampleRate :: Lens' Mp2Settings (Maybe Int)+mssSampleRate = lens _mssSampleRate (\ s a -> s{_mssSampleRate = a})++-- | Average bitrate in bits/second.+mssBitrate :: Lens' Mp2Settings (Maybe Int)+mssBitrate = lens _mssBitrate (\ s a -> s{_mssBitrate = a})++instance FromJSON Mp2Settings where+        parseJSON+          = withObject "Mp2Settings"+              (\ x ->+                 Mp2Settings' <$>+                   (x .:? "channels") <*> (x .:? "sampleRate") <*>+                     (x .:? "bitrate"))++instance Hashable Mp2Settings where++instance NFData Mp2Settings where++instance ToJSON Mp2Settings where+        toJSON Mp2Settings'{..}+          = object+              (catMaybes+                 [("channels" .=) <$> _mssChannels,+                  ("sampleRate" .=) <$> _mssSampleRate,+                  ("bitrate" .=) <$> _mssBitrate])++-- | Settings for MP4 Container+--+-- /See:/ 'mp4Settings' smart constructor.+data Mp4Settings = Mp4Settings'+  { _mMoovPlacement :: !(Maybe Mp4MoovPlacement)+  , _mFreeSpaceBox  :: !(Maybe Mp4FreeSpaceBox)+  , _mMp4MajorBrand :: !(Maybe Text)+  , _mCslgAtom      :: !(Maybe Mp4CslgAtom)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Mp4Settings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mMoovPlacement' - Undocumented member.+--+-- * 'mFreeSpaceBox' - Undocumented member.+--+-- * 'mMp4MajorBrand' - Overrides the "Major Brand" field in the output file. Usually not necessary to specify.+--+-- * 'mCslgAtom' - Undocumented member.+mp4Settings+    :: Mp4Settings+mp4Settings =+  Mp4Settings'+    { _mMoovPlacement = Nothing+    , _mFreeSpaceBox = Nothing+    , _mMp4MajorBrand = Nothing+    , _mCslgAtom = Nothing+    }+++-- | Undocumented member.+mMoovPlacement :: Lens' Mp4Settings (Maybe Mp4MoovPlacement)+mMoovPlacement = lens _mMoovPlacement (\ s a -> s{_mMoovPlacement = a})++-- | Undocumented member.+mFreeSpaceBox :: Lens' Mp4Settings (Maybe Mp4FreeSpaceBox)+mFreeSpaceBox = lens _mFreeSpaceBox (\ s a -> s{_mFreeSpaceBox = a})++-- | Overrides the "Major Brand" field in the output file. Usually not necessary to specify.+mMp4MajorBrand :: Lens' Mp4Settings (Maybe Text)+mMp4MajorBrand = lens _mMp4MajorBrand (\ s a -> s{_mMp4MajorBrand = a})++-- | Undocumented member.+mCslgAtom :: Lens' Mp4Settings (Maybe Mp4CslgAtom)+mCslgAtom = lens _mCslgAtom (\ s a -> s{_mCslgAtom = a})++instance FromJSON Mp4Settings where+        parseJSON+          = withObject "Mp4Settings"+              (\ x ->+                 Mp4Settings' <$>+                   (x .:? "moovPlacement") <*> (x .:? "freeSpaceBox")+                     <*> (x .:? "mp4MajorBrand")+                     <*> (x .:? "cslgAtom"))++instance Hashable Mp4Settings where++instance NFData Mp4Settings where++instance ToJSON Mp4Settings where+        toJSON Mp4Settings'{..}+          = object+              (catMaybes+                 [("moovPlacement" .=) <$> _mMoovPlacement,+                  ("freeSpaceBox" .=) <$> _mFreeSpaceBox,+                  ("mp4MajorBrand" .=) <$> _mMp4MajorBrand,+                  ("cslgAtom" .=) <$> _mCslgAtom])++-- | Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the value MPEG2.+--+-- /See:/ 'mpeg2Settings' smart constructor.+data Mpeg2Settings = Mpeg2Settings'+  { _msQualityTuningLevel :: !(Maybe Mpeg2QualityTuningLevel)+  , _msTemporalAdaptiveQuantization :: !(Maybe Mpeg2TemporalAdaptiveQuantization)+  , _msSceneChangeDetect :: !(Maybe Mpeg2SceneChangeDetect)+  , _msHrdBufferInitialFillPercentage :: !(Maybe Int)+  , _msSlowPal :: !(Maybe Mpeg2SlowPal)+  , _msParNumerator :: !(Maybe Int)+  , _msGopSize :: !(Maybe Double)+  , _msNumberBFramesBetweenReferenceFrames :: !(Maybe Int)+  , _msGopSizeUnits :: !(Maybe Mpeg2GopSizeUnits)+  , _msHrdBufferSize :: !(Maybe Int)+  , _msRateControlMode :: !(Maybe Mpeg2RateControlMode)+  , _msTelecine :: !(Maybe Mpeg2Telecine)+  , _msIntraDcPrecision :: !(Maybe Mpeg2IntraDcPrecision)+  , _msMinIInterval :: !(Maybe Int)+  , _msInterlaceMode :: !(Maybe Mpeg2InterlaceMode)+  , _msParControl :: !(Maybe Mpeg2ParControl)+  , _msSoftness :: !(Maybe Int)+  , _msCodecProfile :: !(Maybe Mpeg2CodecProfile)+  , _msBitrate :: !(Maybe Int)+  , _msFramerateDenominator :: !(Maybe Int)+  , _msFramerateConversionAlgorithm :: !(Maybe Mpeg2FramerateConversionAlgorithm)+  , _msCodecLevel :: !(Maybe Mpeg2CodecLevel)+  , _msFramerateControl :: !(Maybe Mpeg2FramerateControl)+  , _msAdaptiveQuantization :: !(Maybe Mpeg2AdaptiveQuantization)+  , _msFramerateNumerator :: !(Maybe Int)+  , _msMaxBitrate :: !(Maybe Int)+  , _msSyntax :: !(Maybe Mpeg2Syntax)+  , _msGopClosedCadence :: !(Maybe Int)+  , _msParDenominator :: !(Maybe Int)+  , _msSpatialAdaptiveQuantization :: !(Maybe Mpeg2SpatialAdaptiveQuantization)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Mpeg2Settings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'msQualityTuningLevel' - Undocumented member.+--+-- * 'msTemporalAdaptiveQuantization' - Undocumented member.+--+-- * 'msSceneChangeDetect' - Undocumented member.+--+-- * 'msHrdBufferInitialFillPercentage' - Percentage of the buffer that should initially be filled (HRD buffer model).+--+-- * 'msSlowPal' - Undocumented member.+--+-- * 'msParNumerator' - Pixel Aspect Ratio numerator.+--+-- * 'msGopSize' - GOP Length (keyframe interval) in frames or seconds. Must be greater than zero.+--+-- * 'msNumberBFramesBetweenReferenceFrames' - Number of B-frames between reference frames.+--+-- * 'msGopSizeUnits' - Undocumented member.+--+-- * 'msHrdBufferSize' - Size of buffer (HRD buffer model). Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m.+--+-- * 'msRateControlMode' - Undocumented member.+--+-- * 'msTelecine' - Undocumented member.+--+-- * 'msIntraDcPrecision' - Undocumented member.+--+-- * 'msMinIInterval' - Enforces separation between repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal cadence resumes for the next GOP. This setting is only used when Scene Change Detect is enabled. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1+--+-- * 'msInterlaceMode' - Undocumented member.+--+-- * 'msParControl' - Undocumented member.+--+-- * 'msSoftness' - Softness. Selects quantizer matrix, larger values reduce high-frequency content in the encoded image.+--+-- * 'msCodecProfile' - Undocumented member.+--+-- * 'msBitrate' - Average bitrate in bits/second. Required for VBR, CBR, and ABR. Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m. For MS Smooth outputs, bitrates must be unique when rounded down to the nearest multiple of 1000.+--+-- * 'msFramerateDenominator' - Framerate denominator.+--+-- * 'msFramerateConversionAlgorithm' - Undocumented member.+--+-- * 'msCodecLevel' - Undocumented member.+--+-- * 'msFramerateControl' - Undocumented member.+--+-- * 'msAdaptiveQuantization' - Undocumented member.+--+-- * 'msFramerateNumerator' - Framerate numerator - framerate is a fraction, e.g. 24000 / 1001 = 23.976 fps.+--+-- * 'msMaxBitrate' - Maximum bitrate in bits/second (for VBR mode only). Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m.+--+-- * 'msSyntax' - Undocumented member.+--+-- * 'msGopClosedCadence' - Frequency of closed GOPs. In streaming applications, it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as quickly as possible. Setting this value to 0 will break output segmenting.+--+-- * 'msParDenominator' - Pixel Aspect Ratio denominator.+--+-- * 'msSpatialAdaptiveQuantization' - Undocumented member.+mpeg2Settings+    :: Mpeg2Settings+mpeg2Settings =+  Mpeg2Settings'+    { _msQualityTuningLevel = Nothing+    , _msTemporalAdaptiveQuantization = Nothing+    , _msSceneChangeDetect = Nothing+    , _msHrdBufferInitialFillPercentage = Nothing+    , _msSlowPal = Nothing+    , _msParNumerator = Nothing+    , _msGopSize = Nothing+    , _msNumberBFramesBetweenReferenceFrames = Nothing+    , _msGopSizeUnits = Nothing+    , _msHrdBufferSize = Nothing+    , _msRateControlMode = Nothing+    , _msTelecine = Nothing+    , _msIntraDcPrecision = Nothing+    , _msMinIInterval = Nothing+    , _msInterlaceMode = Nothing+    , _msParControl = Nothing+    , _msSoftness = Nothing+    , _msCodecProfile = Nothing+    , _msBitrate = Nothing+    , _msFramerateDenominator = Nothing+    , _msFramerateConversionAlgorithm = Nothing+    , _msCodecLevel = Nothing+    , _msFramerateControl = Nothing+    , _msAdaptiveQuantization = Nothing+    , _msFramerateNumerator = Nothing+    , _msMaxBitrate = Nothing+    , _msSyntax = Nothing+    , _msGopClosedCadence = Nothing+    , _msParDenominator = Nothing+    , _msSpatialAdaptiveQuantization = Nothing+    }+++-- | Undocumented member.+msQualityTuningLevel :: Lens' Mpeg2Settings (Maybe Mpeg2QualityTuningLevel)+msQualityTuningLevel = lens _msQualityTuningLevel (\ s a -> s{_msQualityTuningLevel = a})++-- | Undocumented member.+msTemporalAdaptiveQuantization :: Lens' Mpeg2Settings (Maybe Mpeg2TemporalAdaptiveQuantization)+msTemporalAdaptiveQuantization = lens _msTemporalAdaptiveQuantization (\ s a -> s{_msTemporalAdaptiveQuantization = a})++-- | Undocumented member.+msSceneChangeDetect :: Lens' Mpeg2Settings (Maybe Mpeg2SceneChangeDetect)+msSceneChangeDetect = lens _msSceneChangeDetect (\ s a -> s{_msSceneChangeDetect = a})++-- | Percentage of the buffer that should initially be filled (HRD buffer model).+msHrdBufferInitialFillPercentage :: Lens' Mpeg2Settings (Maybe Int)+msHrdBufferInitialFillPercentage = lens _msHrdBufferInitialFillPercentage (\ s a -> s{_msHrdBufferInitialFillPercentage = a})++-- | Undocumented member.+msSlowPal :: Lens' Mpeg2Settings (Maybe Mpeg2SlowPal)+msSlowPal = lens _msSlowPal (\ s a -> s{_msSlowPal = a})++-- | Pixel Aspect Ratio numerator.+msParNumerator :: Lens' Mpeg2Settings (Maybe Int)+msParNumerator = lens _msParNumerator (\ s a -> s{_msParNumerator = a})++-- | GOP Length (keyframe interval) in frames or seconds. Must be greater than zero.+msGopSize :: Lens' Mpeg2Settings (Maybe Double)+msGopSize = lens _msGopSize (\ s a -> s{_msGopSize = a})++-- | Number of B-frames between reference frames.+msNumberBFramesBetweenReferenceFrames :: Lens' Mpeg2Settings (Maybe Int)+msNumberBFramesBetweenReferenceFrames = lens _msNumberBFramesBetweenReferenceFrames (\ s a -> s{_msNumberBFramesBetweenReferenceFrames = a})++-- | Undocumented member.+msGopSizeUnits :: Lens' Mpeg2Settings (Maybe Mpeg2GopSizeUnits)+msGopSizeUnits = lens _msGopSizeUnits (\ s a -> s{_msGopSizeUnits = a})++-- | Size of buffer (HRD buffer model). Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m.+msHrdBufferSize :: Lens' Mpeg2Settings (Maybe Int)+msHrdBufferSize = lens _msHrdBufferSize (\ s a -> s{_msHrdBufferSize = a})++-- | Undocumented member.+msRateControlMode :: Lens' Mpeg2Settings (Maybe Mpeg2RateControlMode)+msRateControlMode = lens _msRateControlMode (\ s a -> s{_msRateControlMode = a})++-- | Undocumented member.+msTelecine :: Lens' Mpeg2Settings (Maybe Mpeg2Telecine)+msTelecine = lens _msTelecine (\ s a -> s{_msTelecine = a})++-- | Undocumented member.+msIntraDcPrecision :: Lens' Mpeg2Settings (Maybe Mpeg2IntraDcPrecision)+msIntraDcPrecision = lens _msIntraDcPrecision (\ s a -> s{_msIntraDcPrecision = a})++-- | Enforces separation between repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal cadence resumes for the next GOP. This setting is only used when Scene Change Detect is enabled. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1+msMinIInterval :: Lens' Mpeg2Settings (Maybe Int)+msMinIInterval = lens _msMinIInterval (\ s a -> s{_msMinIInterval = a})++-- | Undocumented member.+msInterlaceMode :: Lens' Mpeg2Settings (Maybe Mpeg2InterlaceMode)+msInterlaceMode = lens _msInterlaceMode (\ s a -> s{_msInterlaceMode = a})++-- | Undocumented member.+msParControl :: Lens' Mpeg2Settings (Maybe Mpeg2ParControl)+msParControl = lens _msParControl (\ s a -> s{_msParControl = a})++-- | Softness. Selects quantizer matrix, larger values reduce high-frequency content in the encoded image.+msSoftness :: Lens' Mpeg2Settings (Maybe Int)+msSoftness = lens _msSoftness (\ s a -> s{_msSoftness = a})++-- | Undocumented member.+msCodecProfile :: Lens' Mpeg2Settings (Maybe Mpeg2CodecProfile)+msCodecProfile = lens _msCodecProfile (\ s a -> s{_msCodecProfile = a})++-- | Average bitrate in bits/second. Required for VBR, CBR, and ABR. Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m. For MS Smooth outputs, bitrates must be unique when rounded down to the nearest multiple of 1000.+msBitrate :: Lens' Mpeg2Settings (Maybe Int)+msBitrate = lens _msBitrate (\ s a -> s{_msBitrate = a})++-- | Framerate denominator.+msFramerateDenominator :: Lens' Mpeg2Settings (Maybe Int)+msFramerateDenominator = lens _msFramerateDenominator (\ s a -> s{_msFramerateDenominator = a})++-- | Undocumented member.+msFramerateConversionAlgorithm :: Lens' Mpeg2Settings (Maybe Mpeg2FramerateConversionAlgorithm)+msFramerateConversionAlgorithm = lens _msFramerateConversionAlgorithm (\ s a -> s{_msFramerateConversionAlgorithm = a})++-- | Undocumented member.+msCodecLevel :: Lens' Mpeg2Settings (Maybe Mpeg2CodecLevel)+msCodecLevel = lens _msCodecLevel (\ s a -> s{_msCodecLevel = a})++-- | Undocumented member.+msFramerateControl :: Lens' Mpeg2Settings (Maybe Mpeg2FramerateControl)+msFramerateControl = lens _msFramerateControl (\ s a -> s{_msFramerateControl = a})++-- | Undocumented member.+msAdaptiveQuantization :: Lens' Mpeg2Settings (Maybe Mpeg2AdaptiveQuantization)+msAdaptiveQuantization = lens _msAdaptiveQuantization (\ s a -> s{_msAdaptiveQuantization = a})++-- | Framerate numerator - framerate is a fraction, e.g. 24000 / 1001 = 23.976 fps.+msFramerateNumerator :: Lens' Mpeg2Settings (Maybe Int)+msFramerateNumerator = lens _msFramerateNumerator (\ s a -> s{_msFramerateNumerator = a})++-- | Maximum bitrate in bits/second (for VBR mode only). Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m.+msMaxBitrate :: Lens' Mpeg2Settings (Maybe Int)+msMaxBitrate = lens _msMaxBitrate (\ s a -> s{_msMaxBitrate = a})++-- | Undocumented member.+msSyntax :: Lens' Mpeg2Settings (Maybe Mpeg2Syntax)+msSyntax = lens _msSyntax (\ s a -> s{_msSyntax = a})++-- | Frequency of closed GOPs. In streaming applications, it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as quickly as possible. Setting this value to 0 will break output segmenting.+msGopClosedCadence :: Lens' Mpeg2Settings (Maybe Int)+msGopClosedCadence = lens _msGopClosedCadence (\ s a -> s{_msGopClosedCadence = a})++-- | Pixel Aspect Ratio denominator.+msParDenominator :: Lens' Mpeg2Settings (Maybe Int)+msParDenominator = lens _msParDenominator (\ s a -> s{_msParDenominator = a})++-- | Undocumented member.+msSpatialAdaptiveQuantization :: Lens' Mpeg2Settings (Maybe Mpeg2SpatialAdaptiveQuantization)+msSpatialAdaptiveQuantization = lens _msSpatialAdaptiveQuantization (\ s a -> s{_msSpatialAdaptiveQuantization = a})++instance FromJSON Mpeg2Settings where+        parseJSON+          = withObject "Mpeg2Settings"+              (\ x ->+                 Mpeg2Settings' <$>+                   (x .:? "qualityTuningLevel") <*>+                     (x .:? "temporalAdaptiveQuantization")+                     <*> (x .:? "sceneChangeDetect")+                     <*> (x .:? "hrdBufferInitialFillPercentage")+                     <*> (x .:? "slowPal")+                     <*> (x .:? "parNumerator")+                     <*> (x .:? "gopSize")+                     <*> (x .:? "numberBFramesBetweenReferenceFrames")+                     <*> (x .:? "gopSizeUnits")+                     <*> (x .:? "hrdBufferSize")+                     <*> (x .:? "rateControlMode")+                     <*> (x .:? "telecine")+                     <*> (x .:? "intraDcPrecision")+                     <*> (x .:? "minIInterval")+                     <*> (x .:? "interlaceMode")+                     <*> (x .:? "parControl")+                     <*> (x .:? "softness")+                     <*> (x .:? "codecProfile")+                     <*> (x .:? "bitrate")+                     <*> (x .:? "framerateDenominator")+                     <*> (x .:? "framerateConversionAlgorithm")+                     <*> (x .:? "codecLevel")+                     <*> (x .:? "framerateControl")+                     <*> (x .:? "adaptiveQuantization")+                     <*> (x .:? "framerateNumerator")+                     <*> (x .:? "maxBitrate")+                     <*> (x .:? "syntax")+                     <*> (x .:? "gopClosedCadence")+                     <*> (x .:? "parDenominator")+                     <*> (x .:? "spatialAdaptiveQuantization"))++instance Hashable Mpeg2Settings where++instance NFData Mpeg2Settings where++instance ToJSON Mpeg2Settings where+        toJSON Mpeg2Settings'{..}+          = object+              (catMaybes+                 [("qualityTuningLevel" .=) <$> _msQualityTuningLevel,+                  ("temporalAdaptiveQuantization" .=) <$>+                    _msTemporalAdaptiveQuantization,+                  ("sceneChangeDetect" .=) <$> _msSceneChangeDetect,+                  ("hrdBufferInitialFillPercentage" .=) <$>+                    _msHrdBufferInitialFillPercentage,+                  ("slowPal" .=) <$> _msSlowPal,+                  ("parNumerator" .=) <$> _msParNumerator,+                  ("gopSize" .=) <$> _msGopSize,+                  ("numberBFramesBetweenReferenceFrames" .=) <$>+                    _msNumberBFramesBetweenReferenceFrames,+                  ("gopSizeUnits" .=) <$> _msGopSizeUnits,+                  ("hrdBufferSize" .=) <$> _msHrdBufferSize,+                  ("rateControlMode" .=) <$> _msRateControlMode,+                  ("telecine" .=) <$> _msTelecine,+                  ("intraDcPrecision" .=) <$> _msIntraDcPrecision,+                  ("minIInterval" .=) <$> _msMinIInterval,+                  ("interlaceMode" .=) <$> _msInterlaceMode,+                  ("parControl" .=) <$> _msParControl,+                  ("softness" .=) <$> _msSoftness,+                  ("codecProfile" .=) <$> _msCodecProfile,+                  ("bitrate" .=) <$> _msBitrate,+                  ("framerateDenominator" .=) <$>+                    _msFramerateDenominator,+                  ("framerateConversionAlgorithm" .=) <$>+                    _msFramerateConversionAlgorithm,+                  ("codecLevel" .=) <$> _msCodecLevel,+                  ("framerateControl" .=) <$> _msFramerateControl,+                  ("adaptiveQuantization" .=) <$>+                    _msAdaptiveQuantization,+                  ("framerateNumerator" .=) <$> _msFramerateNumerator,+                  ("maxBitrate" .=) <$> _msMaxBitrate,+                  ("syntax" .=) <$> _msSyntax,+                  ("gopClosedCadence" .=) <$> _msGopClosedCadence,+                  ("parDenominator" .=) <$> _msParDenominator,+                  ("spatialAdaptiveQuantization" .=) <$>+                    _msSpatialAdaptiveQuantization])++-- | If you are using DRM, set DRM System (MsSmoothEncryptionSettings) to specify the value SpekeKeyProvider.+--+-- /See:/ 'msSmoothEncryptionSettings' smart constructor.+newtype MsSmoothEncryptionSettings = MsSmoothEncryptionSettings'+  { _msesSpekeKeyProvider :: Maybe SpekeKeyProvider+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'MsSmoothEncryptionSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'msesSpekeKeyProvider' - Undocumented member.+msSmoothEncryptionSettings+    :: MsSmoothEncryptionSettings+msSmoothEncryptionSettings =+  MsSmoothEncryptionSettings' {_msesSpekeKeyProvider = Nothing}+++-- | Undocumented member.+msesSpekeKeyProvider :: Lens' MsSmoothEncryptionSettings (Maybe SpekeKeyProvider)+msesSpekeKeyProvider = lens _msesSpekeKeyProvider (\ s a -> s{_msesSpekeKeyProvider = a})++instance FromJSON MsSmoothEncryptionSettings where+        parseJSON+          = withObject "MsSmoothEncryptionSettings"+              (\ x ->+                 MsSmoothEncryptionSettings' <$>+                   (x .:? "spekeKeyProvider"))++instance Hashable MsSmoothEncryptionSettings where++instance NFData MsSmoothEncryptionSettings where++instance ToJSON MsSmoothEncryptionSettings where+        toJSON MsSmoothEncryptionSettings'{..}+          = object+              (catMaybes+                 [("spekeKeyProvider" .=) <$> _msesSpekeKeyProvider])++-- | Required when you set (Type) under (OutputGroups)>(OutputGroupSettings) to MS_SMOOTH_GROUP_SETTINGS.+--+-- /See:/ 'msSmoothGroupSettings' smart constructor.+data MsSmoothGroupSettings = MsSmoothGroupSettings'+  { _msgsFragmentLength     :: !(Maybe Int)+  , _msgsManifestEncoding   :: !(Maybe MsSmoothManifestEncoding)+  , _msgsDestination        :: !(Maybe Text)+  , _msgsAudioDeduplication :: !(Maybe MsSmoothAudioDeduplication)+  , _msgsEncryption         :: !(Maybe MsSmoothEncryptionSettings)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'MsSmoothGroupSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'msgsFragmentLength' - Use Fragment length (FragmentLength) to specify the mp4 fragment sizes in seconds. Fragment length must be compatible with GOP size and framerate.+--+-- * 'msgsManifestEncoding' - Undocumented member.+--+-- * 'msgsDestination' - Use Destination (Destination) to specify the S3 output location and the output filename base. Destination accepts format identifiers. If you do not specify the base filename in the URI, the service will use the filename of the input file. If your job has multiple inputs, the service uses the filename of the first input file.+--+-- * 'msgsAudioDeduplication' - Undocumented member.+--+-- * 'msgsEncryption' - Undocumented member.+msSmoothGroupSettings+    :: MsSmoothGroupSettings+msSmoothGroupSettings =+  MsSmoothGroupSettings'+    { _msgsFragmentLength = Nothing+    , _msgsManifestEncoding = Nothing+    , _msgsDestination = Nothing+    , _msgsAudioDeduplication = Nothing+    , _msgsEncryption = Nothing+    }+++-- | Use Fragment length (FragmentLength) to specify the mp4 fragment sizes in seconds. Fragment length must be compatible with GOP size and framerate.+msgsFragmentLength :: Lens' MsSmoothGroupSettings (Maybe Int)+msgsFragmentLength = lens _msgsFragmentLength (\ s a -> s{_msgsFragmentLength = a})++-- | Undocumented member.+msgsManifestEncoding :: Lens' MsSmoothGroupSettings (Maybe MsSmoothManifestEncoding)+msgsManifestEncoding = lens _msgsManifestEncoding (\ s a -> s{_msgsManifestEncoding = a})++-- | Use Destination (Destination) to specify the S3 output location and the output filename base. Destination accepts format identifiers. If you do not specify the base filename in the URI, the service will use the filename of the input file. If your job has multiple inputs, the service uses the filename of the first input file.+msgsDestination :: Lens' MsSmoothGroupSettings (Maybe Text)+msgsDestination = lens _msgsDestination (\ s a -> s{_msgsDestination = a})++-- | Undocumented member.+msgsAudioDeduplication :: Lens' MsSmoothGroupSettings (Maybe MsSmoothAudioDeduplication)+msgsAudioDeduplication = lens _msgsAudioDeduplication (\ s a -> s{_msgsAudioDeduplication = a})++-- | Undocumented member.+msgsEncryption :: Lens' MsSmoothGroupSettings (Maybe MsSmoothEncryptionSettings)+msgsEncryption = lens _msgsEncryption (\ s a -> s{_msgsEncryption = a})++instance FromJSON MsSmoothGroupSettings where+        parseJSON+          = withObject "MsSmoothGroupSettings"+              (\ x ->+                 MsSmoothGroupSettings' <$>+                   (x .:? "fragmentLength") <*>+                     (x .:? "manifestEncoding")+                     <*> (x .:? "destination")+                     <*> (x .:? "audioDeduplication")+                     <*> (x .:? "encryption"))++instance Hashable MsSmoothGroupSettings where++instance NFData MsSmoothGroupSettings where++instance ToJSON MsSmoothGroupSettings where+        toJSON MsSmoothGroupSettings'{..}+          = object+              (catMaybes+                 [("fragmentLength" .=) <$> _msgsFragmentLength,+                  ("manifestEncoding" .=) <$> _msgsManifestEncoding,+                  ("destination" .=) <$> _msgsDestination,+                  ("audioDeduplication" .=) <$>+                    _msgsAudioDeduplication,+                  ("encryption" .=) <$> _msgsEncryption])++-- | Settings for Nielsen Configuration+--+-- /See:/ 'nielsenConfiguration' smart constructor.+data NielsenConfiguration = NielsenConfiguration'+  { _ncBreakoutCode  :: !(Maybe Int)+  , _ncDistributorId :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NielsenConfiguration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ncBreakoutCode' - Use Nielsen Configuration (NielsenConfiguration) to set the Nielsen measurement system breakout code. Supported values are 0, 3, 7, and 9.+--+-- * 'ncDistributorId' - Use Distributor ID (DistributorID) to specify the distributor ID that is assigned to your organization by Neilsen.+nielsenConfiguration+    :: NielsenConfiguration+nielsenConfiguration =+  NielsenConfiguration' {_ncBreakoutCode = Nothing, _ncDistributorId = Nothing}+++-- | Use Nielsen Configuration (NielsenConfiguration) to set the Nielsen measurement system breakout code. Supported values are 0, 3, 7, and 9.+ncBreakoutCode :: Lens' NielsenConfiguration (Maybe Int)+ncBreakoutCode = lens _ncBreakoutCode (\ s a -> s{_ncBreakoutCode = a})++-- | Use Distributor ID (DistributorID) to specify the distributor ID that is assigned to your organization by Neilsen.+ncDistributorId :: Lens' NielsenConfiguration (Maybe Text)+ncDistributorId = lens _ncDistributorId (\ s a -> s{_ncDistributorId = a})++instance FromJSON NielsenConfiguration where+        parseJSON+          = withObject "NielsenConfiguration"+              (\ x ->+                 NielsenConfiguration' <$>+                   (x .:? "breakoutCode") <*> (x .:? "distributorId"))++instance Hashable NielsenConfiguration where++instance NFData NielsenConfiguration where++instance ToJSON NielsenConfiguration where+        toJSON NielsenConfiguration'{..}+          = object+              (catMaybes+                 [("breakoutCode" .=) <$> _ncBreakoutCode,+                  ("distributorId" .=) <$> _ncDistributorId])++-- | Enable the Noise reducer (NoiseReducer) feature to remove noise from your video output if necessary. Enable or disable this feature for each output individually. This setting is disabled by default. When you enable Noise reducer (NoiseReducer), you must also select a value for Noise reducer filter (NoiseReducerFilter).+--+-- /See:/ 'noiseReducer' smart constructor.+data NoiseReducer = NoiseReducer'+  { _nrSpatialFilterSettings :: !(Maybe NoiseReducerSpatialFilterSettings)+  , _nrFilterSettings        :: !(Maybe NoiseReducerFilterSettings)+  , _nrFilter                :: !(Maybe NoiseReducerFilter)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NoiseReducer' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nrSpatialFilterSettings' - Undocumented member.+--+-- * 'nrFilterSettings' - Undocumented member.+--+-- * 'nrFilter' - Undocumented member.+noiseReducer+    :: NoiseReducer+noiseReducer =+  NoiseReducer'+    { _nrSpatialFilterSettings = Nothing+    , _nrFilterSettings = Nothing+    , _nrFilter = Nothing+    }+++-- | Undocumented member.+nrSpatialFilterSettings :: Lens' NoiseReducer (Maybe NoiseReducerSpatialFilterSettings)+nrSpatialFilterSettings = lens _nrSpatialFilterSettings (\ s a -> s{_nrSpatialFilterSettings = a})++-- | Undocumented member.+nrFilterSettings :: Lens' NoiseReducer (Maybe NoiseReducerFilterSettings)+nrFilterSettings = lens _nrFilterSettings (\ s a -> s{_nrFilterSettings = a})++-- | Undocumented member.+nrFilter :: Lens' NoiseReducer (Maybe NoiseReducerFilter)+nrFilter = lens _nrFilter (\ s a -> s{_nrFilter = a})++instance FromJSON NoiseReducer where+        parseJSON+          = withObject "NoiseReducer"+              (\ x ->+                 NoiseReducer' <$>+                   (x .:? "spatialFilterSettings") <*>+                     (x .:? "filterSettings")+                     <*> (x .:? "filter"))++instance Hashable NoiseReducer where++instance NFData NoiseReducer where++instance ToJSON NoiseReducer where+        toJSON NoiseReducer'{..}+          = object+              (catMaybes+                 [("spatialFilterSettings" .=) <$>+                    _nrSpatialFilterSettings,+                  ("filterSettings" .=) <$> _nrFilterSettings,+                  ("filter" .=) <$> _nrFilter])++-- | Settings for a noise reducer filter+--+-- /See:/ 'noiseReducerFilterSettings' smart constructor.+newtype NoiseReducerFilterSettings = NoiseReducerFilterSettings'+  { _nrfsStrength :: Maybe Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NoiseReducerFilterSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nrfsStrength' - Relative strength of noise reducing filter. Higher values produce stronger filtering.+noiseReducerFilterSettings+    :: NoiseReducerFilterSettings+noiseReducerFilterSettings =+  NoiseReducerFilterSettings' {_nrfsStrength = Nothing}+++-- | Relative strength of noise reducing filter. Higher values produce stronger filtering.+nrfsStrength :: Lens' NoiseReducerFilterSettings (Maybe Int)+nrfsStrength = lens _nrfsStrength (\ s a -> s{_nrfsStrength = a})++instance FromJSON NoiseReducerFilterSettings where+        parseJSON+          = withObject "NoiseReducerFilterSettings"+              (\ x ->+                 NoiseReducerFilterSettings' <$> (x .:? "strength"))++instance Hashable NoiseReducerFilterSettings where++instance NFData NoiseReducerFilterSettings where++instance ToJSON NoiseReducerFilterSettings where+        toJSON NoiseReducerFilterSettings'{..}+          = object+              (catMaybes [("strength" .=) <$> _nrfsStrength])++-- | Noise reducer filter settings for spatial filter.+--+-- /See:/ 'noiseReducerSpatialFilterSettings' smart constructor.+data NoiseReducerSpatialFilterSettings = NoiseReducerSpatialFilterSettings'+  { _nrsfsStrength                  :: !(Maybe Int)+  , _nrsfsPostFilterSharpenStrength :: !(Maybe Int)+  , _nrsfsSpeed                     :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NoiseReducerSpatialFilterSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nrsfsStrength' - Relative strength of noise reducing filter. Higher values produce stronger filtering.+--+-- * 'nrsfsPostFilterSharpenStrength' - Specify strength of post noise reduction sharpening filter, with 0 disabling the filter and 3 enabling it at maximum strength.+--+-- * 'nrsfsSpeed' - The speed of the filter, from -2 (lower speed) to 3 (higher speed), with 0 being the nominal value.+noiseReducerSpatialFilterSettings+    :: NoiseReducerSpatialFilterSettings+noiseReducerSpatialFilterSettings =+  NoiseReducerSpatialFilterSettings'+    { _nrsfsStrength = Nothing+    , _nrsfsPostFilterSharpenStrength = Nothing+    , _nrsfsSpeed = Nothing+    }+++-- | Relative strength of noise reducing filter. Higher values produce stronger filtering.+nrsfsStrength :: Lens' NoiseReducerSpatialFilterSettings (Maybe Int)+nrsfsStrength = lens _nrsfsStrength (\ s a -> s{_nrsfsStrength = a})++-- | Specify strength of post noise reduction sharpening filter, with 0 disabling the filter and 3 enabling it at maximum strength.+nrsfsPostFilterSharpenStrength :: Lens' NoiseReducerSpatialFilterSettings (Maybe Int)+nrsfsPostFilterSharpenStrength = lens _nrsfsPostFilterSharpenStrength (\ s a -> s{_nrsfsPostFilterSharpenStrength = a})++-- | The speed of the filter, from -2 (lower speed) to 3 (higher speed), with 0 being the nominal value.+nrsfsSpeed :: Lens' NoiseReducerSpatialFilterSettings (Maybe Int)+nrsfsSpeed = lens _nrsfsSpeed (\ s a -> s{_nrsfsSpeed = a})++instance FromJSON NoiseReducerSpatialFilterSettings+         where+        parseJSON+          = withObject "NoiseReducerSpatialFilterSettings"+              (\ x ->+                 NoiseReducerSpatialFilterSettings' <$>+                   (x .:? "strength") <*>+                     (x .:? "postFilterSharpenStrength")+                     <*> (x .:? "speed"))++instance Hashable NoiseReducerSpatialFilterSettings+         where++instance NFData NoiseReducerSpatialFilterSettings+         where++instance ToJSON NoiseReducerSpatialFilterSettings+         where+        toJSON NoiseReducerSpatialFilterSettings'{..}+          = object+              (catMaybes+                 [("strength" .=) <$> _nrsfsStrength,+                  ("postFilterSharpenStrength" .=) <$>+                    _nrsfsPostFilterSharpenStrength,+                  ("speed" .=) <$> _nrsfsSpeed])++-- | An output object describes the settings for a single output file or stream in an output group.+--+-- /See:/ 'output' smart constructor.+data Output = Output'+  { _oCaptionDescriptions :: !(Maybe [CaptionDescription])+  , _oExtension           :: !(Maybe Text)+  , _oVideoDescription    :: !(Maybe VideoDescription)+  , _oContainerSettings   :: !(Maybe ContainerSettings)+  , _oOutputSettings      :: !(Maybe OutputSettings)+  , _oPreset              :: !(Maybe Text)+  , _oNameModifier        :: !(Maybe Text)+  , _oAudioDescriptions   :: !(Maybe [AudioDescription])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Output' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oCaptionDescriptions' - (CaptionDescriptions) contains groups of captions settings. For each output that has captions, include one instance of (CaptionDescriptions). (CaptionDescriptions) can contain multiple groups of captions settings.+--+-- * 'oExtension' - Use Extension (Extension) to specify the file extension for outputs in File output groups. If you do not specify a value, the service will use default extensions by container type as follows * MPEG-2 transport stream, m2ts * Quicktime, mov * MXF container, mxf * MPEG-4 container, mp4 * No Container, the service will use codec extensions (e.g. AAC, H265, H265, AC3)+--+-- * 'oVideoDescription' - (VideoDescription) contains a group of video encoding settings. The specific video settings depend on the video codec you choose when you specify a value for Video codec (codec). Include one instance of (VideoDescription) per output.+--+-- * 'oContainerSettings' - Undocumented member.+--+-- * 'oOutputSettings' - Undocumented member.+--+-- * 'oPreset' - Use Preset (Preset) to specifiy a preset for your transcoding settings. Provide the system or custom preset name. You can specify either Preset (Preset) or Container settings (ContainerSettings), but not both.+--+-- * 'oNameModifier' - Use Name modifier (NameModifier) to have the service add a string to the end of each output filename. You specify the base filename as part of your destination URI. When you create multiple outputs in the same output group, Name modifier (NameModifier) is required. Name modifier also accepts format identifiers. For DASH ISO outputs, if you use the format identifiers $Number$ or $Time$ in one output, you must use them in the same way in all outputs of the output group.+--+-- * 'oAudioDescriptions' - (AudioDescriptions) contains groups of audio encoding settings organized by audio codec. Include one instance of (AudioDescriptions) per output. (AudioDescriptions) can contain multiple groups of encoding settings.+output+    :: Output+output =+  Output'+    { _oCaptionDescriptions = Nothing+    , _oExtension = Nothing+    , _oVideoDescription = Nothing+    , _oContainerSettings = Nothing+    , _oOutputSettings = Nothing+    , _oPreset = Nothing+    , _oNameModifier = Nothing+    , _oAudioDescriptions = Nothing+    }+++-- | (CaptionDescriptions) contains groups of captions settings. For each output that has captions, include one instance of (CaptionDescriptions). (CaptionDescriptions) can contain multiple groups of captions settings.+oCaptionDescriptions :: Lens' Output [CaptionDescription]+oCaptionDescriptions = lens _oCaptionDescriptions (\ s a -> s{_oCaptionDescriptions = a}) . _Default . _Coerce++-- | Use Extension (Extension) to specify the file extension for outputs in File output groups. If you do not specify a value, the service will use default extensions by container type as follows * MPEG-2 transport stream, m2ts * Quicktime, mov * MXF container, mxf * MPEG-4 container, mp4 * No Container, the service will use codec extensions (e.g. AAC, H265, H265, AC3)+oExtension :: Lens' Output (Maybe Text)+oExtension = lens _oExtension (\ s a -> s{_oExtension = a})++-- | (VideoDescription) contains a group of video encoding settings. The specific video settings depend on the video codec you choose when you specify a value for Video codec (codec). Include one instance of (VideoDescription) per output.+oVideoDescription :: Lens' Output (Maybe VideoDescription)+oVideoDescription = lens _oVideoDescription (\ s a -> s{_oVideoDescription = a})++-- | Undocumented member.+oContainerSettings :: Lens' Output (Maybe ContainerSettings)+oContainerSettings = lens _oContainerSettings (\ s a -> s{_oContainerSettings = a})++-- | Undocumented member.+oOutputSettings :: Lens' Output (Maybe OutputSettings)+oOutputSettings = lens _oOutputSettings (\ s a -> s{_oOutputSettings = a})++-- | Use Preset (Preset) to specifiy a preset for your transcoding settings. Provide the system or custom preset name. You can specify either Preset (Preset) or Container settings (ContainerSettings), but not both.+oPreset :: Lens' Output (Maybe Text)+oPreset = lens _oPreset (\ s a -> s{_oPreset = a})++-- | Use Name modifier (NameModifier) to have the service add a string to the end of each output filename. You specify the base filename as part of your destination URI. When you create multiple outputs in the same output group, Name modifier (NameModifier) is required. Name modifier also accepts format identifiers. For DASH ISO outputs, if you use the format identifiers $Number$ or $Time$ in one output, you must use them in the same way in all outputs of the output group.+oNameModifier :: Lens' Output (Maybe Text)+oNameModifier = lens _oNameModifier (\ s a -> s{_oNameModifier = a})++-- | (AudioDescriptions) contains groups of audio encoding settings organized by audio codec. Include one instance of (AudioDescriptions) per output. (AudioDescriptions) can contain multiple groups of encoding settings.+oAudioDescriptions :: Lens' Output [AudioDescription]+oAudioDescriptions = lens _oAudioDescriptions (\ s a -> s{_oAudioDescriptions = a}) . _Default . _Coerce++instance FromJSON Output where+        parseJSON+          = withObject "Output"+              (\ x ->+                 Output' <$>+                   (x .:? "captionDescriptions" .!= mempty) <*>+                     (x .:? "extension")+                     <*> (x .:? "videoDescription")+                     <*> (x .:? "containerSettings")+                     <*> (x .:? "outputSettings")+                     <*> (x .:? "preset")+                     <*> (x .:? "nameModifier")+                     <*> (x .:? "audioDescriptions" .!= mempty))++instance Hashable Output where++instance NFData Output where++instance ToJSON Output where+        toJSON Output'{..}+          = object+              (catMaybes+                 [("captionDescriptions" .=) <$>+                    _oCaptionDescriptions,+                  ("extension" .=) <$> _oExtension,+                  ("videoDescription" .=) <$> _oVideoDescription,+                  ("containerSettings" .=) <$> _oContainerSettings,+                  ("outputSettings" .=) <$> _oOutputSettings,+                  ("preset" .=) <$> _oPreset,+                  ("nameModifier" .=) <$> _oNameModifier,+                  ("audioDescriptions" .=) <$> _oAudioDescriptions])++-- | OutputChannel mapping settings.+--+-- /See:/ 'outputChannelMapping' smart constructor.+newtype OutputChannelMapping = OutputChannelMapping'+  { _ocmInputChannels :: Maybe [Int]+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'OutputChannelMapping' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ocmInputChannels' - List of input channels+outputChannelMapping+    :: OutputChannelMapping+outputChannelMapping = OutputChannelMapping' {_ocmInputChannels = Nothing}+++-- | List of input channels+ocmInputChannels :: Lens' OutputChannelMapping [Int]+ocmInputChannels = lens _ocmInputChannels (\ s a -> s{_ocmInputChannels = a}) . _Default . _Coerce++instance FromJSON OutputChannelMapping where+        parseJSON+          = withObject "OutputChannelMapping"+              (\ x ->+                 OutputChannelMapping' <$>+                   (x .:? "inputChannels" .!= mempty))++instance Hashable OutputChannelMapping where++instance NFData OutputChannelMapping where++instance ToJSON OutputChannelMapping where+        toJSON OutputChannelMapping'{..}+          = object+              (catMaybes+                 [("inputChannels" .=) <$> _ocmInputChannels])++-- | Details regarding output+--+-- /See:/ 'outputDetail' smart constructor.+data OutputDetail = OutputDetail'+  { _odVideoDetails :: !(Maybe VideoDetail)+  , _odDurationInMs :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'OutputDetail' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'odVideoDetails' - Undocumented member.+--+-- * 'odDurationInMs' - Duration in milliseconds+outputDetail+    :: OutputDetail+outputDetail =+  OutputDetail' {_odVideoDetails = Nothing, _odDurationInMs = Nothing}+++-- | Undocumented member.+odVideoDetails :: Lens' OutputDetail (Maybe VideoDetail)+odVideoDetails = lens _odVideoDetails (\ s a -> s{_odVideoDetails = a})++-- | Duration in milliseconds+odDurationInMs :: Lens' OutputDetail (Maybe Int)+odDurationInMs = lens _odDurationInMs (\ s a -> s{_odDurationInMs = a})++instance FromJSON OutputDetail where+        parseJSON+          = withObject "OutputDetail"+              (\ x ->+                 OutputDetail' <$>+                   (x .:? "videoDetails") <*> (x .:? "durationInMs"))++instance Hashable OutputDetail where++instance NFData OutputDetail where++-- | Group of outputs+--+-- /See:/ 'outputGroup' smart constructor.+data OutputGroup = OutputGroup'+  { _ogOutputGroupSettings :: !(Maybe OutputGroupSettings)+  , _ogOutputs             :: !(Maybe [Output])+  , _ogCustomName          :: !(Maybe Text)+  , _ogName                :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'OutputGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ogOutputGroupSettings' - Undocumented member.+--+-- * 'ogOutputs' - This object holds groups of encoding settings, one group of settings per output.+--+-- * 'ogCustomName' - Use Custom Group Name (CustomName) to specify a name for the output group. This value is displayed on the console and can make your job settings JSON more human-readable. It does not affect your outputs. Use up to twelve characters that are either letters, numbers, spaces, or underscores.+--+-- * 'ogName' - Name of the output group+outputGroup+    :: OutputGroup+outputGroup =+  OutputGroup'+    { _ogOutputGroupSettings = Nothing+    , _ogOutputs = Nothing+    , _ogCustomName = Nothing+    , _ogName = Nothing+    }+++-- | Undocumented member.+ogOutputGroupSettings :: Lens' OutputGroup (Maybe OutputGroupSettings)+ogOutputGroupSettings = lens _ogOutputGroupSettings (\ s a -> s{_ogOutputGroupSettings = a})++-- | This object holds groups of encoding settings, one group of settings per output.+ogOutputs :: Lens' OutputGroup [Output]+ogOutputs = lens _ogOutputs (\ s a -> s{_ogOutputs = a}) . _Default . _Coerce++-- | Use Custom Group Name (CustomName) to specify a name for the output group. This value is displayed on the console and can make your job settings JSON more human-readable. It does not affect your outputs. Use up to twelve characters that are either letters, numbers, spaces, or underscores.+ogCustomName :: Lens' OutputGroup (Maybe Text)+ogCustomName = lens _ogCustomName (\ s a -> s{_ogCustomName = a})++-- | Name of the output group+ogName :: Lens' OutputGroup (Maybe Text)+ogName = lens _ogName (\ s a -> s{_ogName = a})++instance FromJSON OutputGroup where+        parseJSON+          = withObject "OutputGroup"+              (\ x ->+                 OutputGroup' <$>+                   (x .:? "outputGroupSettings") <*>+                     (x .:? "outputs" .!= mempty)+                     <*> (x .:? "customName")+                     <*> (x .:? "name"))++instance Hashable OutputGroup where++instance NFData OutputGroup where++instance ToJSON OutputGroup where+        toJSON OutputGroup'{..}+          = object+              (catMaybes+                 [("outputGroupSettings" .=) <$>+                    _ogOutputGroupSettings,+                  ("outputs" .=) <$> _ogOutputs,+                  ("customName" .=) <$> _ogCustomName,+                  ("name" .=) <$> _ogName])++-- | Contains details about the output groups specified in the job settings.+--+-- /See:/ 'outputGroupDetail' smart constructor.+newtype OutputGroupDetail = OutputGroupDetail'+  { _ogdOutputDetails :: Maybe [OutputDetail]+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'OutputGroupDetail' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ogdOutputDetails' - Details about the output+outputGroupDetail+    :: OutputGroupDetail+outputGroupDetail = OutputGroupDetail' {_ogdOutputDetails = Nothing}+++-- | Details about the output+ogdOutputDetails :: Lens' OutputGroupDetail [OutputDetail]+ogdOutputDetails = lens _ogdOutputDetails (\ s a -> s{_ogdOutputDetails = a}) . _Default . _Coerce++instance FromJSON OutputGroupDetail where+        parseJSON+          = withObject "OutputGroupDetail"+              (\ x ->+                 OutputGroupDetail' <$>+                   (x .:? "outputDetails" .!= mempty))++instance Hashable OutputGroupDetail where++instance NFData OutputGroupDetail where++-- | Output Group settings, including type+--+-- /See:/ 'outputGroupSettings' smart constructor.+data OutputGroupSettings = OutputGroupSettings'+  { _ogsFileGroupSettings     :: !(Maybe FileGroupSettings)+  , _ogsMsSmoothGroupSettings :: !(Maybe MsSmoothGroupSettings)+  , _ogsHlsGroupSettings      :: !(Maybe HlsGroupSettings)+  , _ogsType                  :: !(Maybe OutputGroupType)+  , _ogsDashIsoGroupSettings  :: !(Maybe DashIsoGroupSettings)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'OutputGroupSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ogsFileGroupSettings' - Undocumented member.+--+-- * 'ogsMsSmoothGroupSettings' - Undocumented member.+--+-- * 'ogsHlsGroupSettings' - Undocumented member.+--+-- * 'ogsType' - Undocumented member.+--+-- * 'ogsDashIsoGroupSettings' - Undocumented member.+outputGroupSettings+    :: OutputGroupSettings+outputGroupSettings =+  OutputGroupSettings'+    { _ogsFileGroupSettings = Nothing+    , _ogsMsSmoothGroupSettings = Nothing+    , _ogsHlsGroupSettings = Nothing+    , _ogsType = Nothing+    , _ogsDashIsoGroupSettings = Nothing+    }+++-- | Undocumented member.+ogsFileGroupSettings :: Lens' OutputGroupSettings (Maybe FileGroupSettings)+ogsFileGroupSettings = lens _ogsFileGroupSettings (\ s a -> s{_ogsFileGroupSettings = a})++-- | Undocumented member.+ogsMsSmoothGroupSettings :: Lens' OutputGroupSettings (Maybe MsSmoothGroupSettings)+ogsMsSmoothGroupSettings = lens _ogsMsSmoothGroupSettings (\ s a -> s{_ogsMsSmoothGroupSettings = a})++-- | Undocumented member.+ogsHlsGroupSettings :: Lens' OutputGroupSettings (Maybe HlsGroupSettings)+ogsHlsGroupSettings = lens _ogsHlsGroupSettings (\ s a -> s{_ogsHlsGroupSettings = a})++-- | Undocumented member.+ogsType :: Lens' OutputGroupSettings (Maybe OutputGroupType)+ogsType = lens _ogsType (\ s a -> s{_ogsType = a})++-- | Undocumented member.+ogsDashIsoGroupSettings :: Lens' OutputGroupSettings (Maybe DashIsoGroupSettings)+ogsDashIsoGroupSettings = lens _ogsDashIsoGroupSettings (\ s a -> s{_ogsDashIsoGroupSettings = a})++instance FromJSON OutputGroupSettings where+        parseJSON+          = withObject "OutputGroupSettings"+              (\ x ->+                 OutputGroupSettings' <$>+                   (x .:? "fileGroupSettings") <*>+                     (x .:? "msSmoothGroupSettings")+                     <*> (x .:? "hlsGroupSettings")+                     <*> (x .:? "type")+                     <*> (x .:? "dashIsoGroupSettings"))++instance Hashable OutputGroupSettings where++instance NFData OutputGroupSettings where++instance ToJSON OutputGroupSettings where+        toJSON OutputGroupSettings'{..}+          = object+              (catMaybes+                 [("fileGroupSettings" .=) <$> _ogsFileGroupSettings,+                  ("msSmoothGroupSettings" .=) <$>+                    _ogsMsSmoothGroupSettings,+                  ("hlsGroupSettings" .=) <$> _ogsHlsGroupSettings,+                  ("type" .=) <$> _ogsType,+                  ("dashIsoGroupSettings" .=) <$>+                    _ogsDashIsoGroupSettings])++-- | Specific settings for this type of output.+--+-- /See:/ 'outputSettings' smart constructor.+newtype OutputSettings = OutputSettings'+  { _osHlsSettings :: Maybe HlsSettings+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'OutputSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'osHlsSettings' - Undocumented member.+outputSettings+    :: OutputSettings+outputSettings = OutputSettings' {_osHlsSettings = Nothing}+++-- | Undocumented member.+osHlsSettings :: Lens' OutputSettings (Maybe HlsSettings)+osHlsSettings = lens _osHlsSettings (\ s a -> s{_osHlsSettings = a})++instance FromJSON OutputSettings where+        parseJSON+          = withObject "OutputSettings"+              (\ x -> OutputSettings' <$> (x .:? "hlsSettings"))++instance Hashable OutputSettings where++instance NFData OutputSettings where++instance ToJSON OutputSettings where+        toJSON OutputSettings'{..}+          = object+              (catMaybes [("hlsSettings" .=) <$> _osHlsSettings])++-- | A preset is a collection of preconfigured media conversion settings that you want MediaConvert to apply to the output during the conversion process.+--+-- /See:/ 'preset' smart constructor.+data Preset = Preset'+  { _pLastUpdated :: !(Maybe POSIX)+  , _pSettings    :: !(Maybe PresetSettings)+  , _pARN         :: !(Maybe Text)+  , _pCreatedAt   :: !(Maybe POSIX)+  , _pCategory    :: !(Maybe Text)+  , _pName        :: !(Maybe Text)+  , _pType        :: !(Maybe Type)+  , _pDescription :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Preset' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pLastUpdated' - The timestamp in epoch seconds when the preset was last updated.+--+-- * 'pSettings' - Undocumented member.+--+-- * 'pARN' - An identifier for this resource that is unique within all of AWS.+--+-- * 'pCreatedAt' - The timestamp in epoch seconds for preset creation.+--+-- * 'pCategory' - An optional category you create to organize your presets.+--+-- * 'pName' - A name you create for each preset. Each name must be unique within your account.+--+-- * 'pType' - A preset can be of two types: system or custom. System or built-in preset can't be modified or deleted by the user.+--+-- * 'pDescription' - An optional description you create for each preset.+preset+    :: Preset+preset =+  Preset'+    { _pLastUpdated = Nothing+    , _pSettings = Nothing+    , _pARN = Nothing+    , _pCreatedAt = Nothing+    , _pCategory = Nothing+    , _pName = Nothing+    , _pType = Nothing+    , _pDescription = Nothing+    }+++-- | The timestamp in epoch seconds when the preset was last updated.+pLastUpdated :: Lens' Preset (Maybe UTCTime)+pLastUpdated = lens _pLastUpdated (\ s a -> s{_pLastUpdated = a}) . mapping _Time++-- | Undocumented member.+pSettings :: Lens' Preset (Maybe PresetSettings)+pSettings = lens _pSettings (\ s a -> s{_pSettings = a})++-- | An identifier for this resource that is unique within all of AWS.+pARN :: Lens' Preset (Maybe Text)+pARN = lens _pARN (\ s a -> s{_pARN = a})++-- | The timestamp in epoch seconds for preset creation.+pCreatedAt :: Lens' Preset (Maybe UTCTime)+pCreatedAt = lens _pCreatedAt (\ s a -> s{_pCreatedAt = a}) . mapping _Time++-- | An optional category you create to organize your presets.+pCategory :: Lens' Preset (Maybe Text)+pCategory = lens _pCategory (\ s a -> s{_pCategory = a})++-- | A name you create for each preset. Each name must be unique within your account.+pName :: Lens' Preset (Maybe Text)+pName = lens _pName (\ s a -> s{_pName = a})++-- | A preset can be of two types: system or custom. System or built-in preset can't be modified or deleted by the user.+pType :: Lens' Preset (Maybe Type)+pType = lens _pType (\ s a -> s{_pType = a})++-- | An optional description you create for each preset.+pDescription :: Lens' Preset (Maybe Text)+pDescription = lens _pDescription (\ s a -> s{_pDescription = a})++instance FromJSON Preset where+        parseJSON+          = withObject "Preset"+              (\ x ->+                 Preset' <$>+                   (x .:? "lastUpdated") <*> (x .:? "settings") <*>+                     (x .:? "arn")+                     <*> (x .:? "createdAt")+                     <*> (x .:? "category")+                     <*> (x .:? "name")+                     <*> (x .:? "type")+                     <*> (x .:? "description"))++instance Hashable Preset where++instance NFData Preset where++-- | Settings for preset+--+-- /See:/ 'presetSettings' smart constructor.+data PresetSettings = PresetSettings'+  { _psCaptionDescriptions :: !(Maybe [CaptionDescriptionPreset])+  , _psVideoDescription    :: !(Maybe VideoDescription)+  , _psContainerSettings   :: !(Maybe ContainerSettings)+  , _psAudioDescriptions   :: !(Maybe [AudioDescription])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PresetSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'psCaptionDescriptions' - Caption settings for this preset. There can be multiple caption settings in a single output.+--+-- * 'psVideoDescription' - (VideoDescription) contains a group of video encoding settings. The specific video settings depend on the video codec you choose when you specify a value for Video codec (codec). Include one instance of (VideoDescription) per output.+--+-- * 'psContainerSettings' - Undocumented member.+--+-- * 'psAudioDescriptions' - (AudioDescriptions) contains groups of audio encoding settings organized by audio codec. Include one instance of (AudioDescriptions) per output. (AudioDescriptions) can contain multiple groups of encoding settings.+presetSettings+    :: PresetSettings+presetSettings =+  PresetSettings'+    { _psCaptionDescriptions = Nothing+    , _psVideoDescription = Nothing+    , _psContainerSettings = Nothing+    , _psAudioDescriptions = Nothing+    }+++-- | Caption settings for this preset. There can be multiple caption settings in a single output.+psCaptionDescriptions :: Lens' PresetSettings [CaptionDescriptionPreset]+psCaptionDescriptions = lens _psCaptionDescriptions (\ s a -> s{_psCaptionDescriptions = a}) . _Default . _Coerce++-- | (VideoDescription) contains a group of video encoding settings. The specific video settings depend on the video codec you choose when you specify a value for Video codec (codec). Include one instance of (VideoDescription) per output.+psVideoDescription :: Lens' PresetSettings (Maybe VideoDescription)+psVideoDescription = lens _psVideoDescription (\ s a -> s{_psVideoDescription = a})++-- | Undocumented member.+psContainerSettings :: Lens' PresetSettings (Maybe ContainerSettings)+psContainerSettings = lens _psContainerSettings (\ s a -> s{_psContainerSettings = a})++-- | (AudioDescriptions) contains groups of audio encoding settings organized by audio codec. Include one instance of (AudioDescriptions) per output. (AudioDescriptions) can contain multiple groups of encoding settings.+psAudioDescriptions :: Lens' PresetSettings [AudioDescription]+psAudioDescriptions = lens _psAudioDescriptions (\ s a -> s{_psAudioDescriptions = a}) . _Default . _Coerce++instance FromJSON PresetSettings where+        parseJSON+          = withObject "PresetSettings"+              (\ x ->+                 PresetSettings' <$>+                   (x .:? "captionDescriptions" .!= mempty) <*>+                     (x .:? "videoDescription")+                     <*> (x .:? "containerSettings")+                     <*> (x .:? "audioDescriptions" .!= mempty))++instance Hashable PresetSettings where++instance NFData PresetSettings where++instance ToJSON PresetSettings where+        toJSON PresetSettings'{..}+          = object+              (catMaybes+                 [("captionDescriptions" .=) <$>+                    _psCaptionDescriptions,+                  ("videoDescription" .=) <$> _psVideoDescription,+                  ("containerSettings" .=) <$> _psContainerSettings,+                  ("audioDescriptions" .=) <$> _psAudioDescriptions])++-- | Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the value PRORES.+--+-- /See:/ 'proresSettings' smart constructor.+data ProresSettings = ProresSettings'+  { _psSlowPal :: !(Maybe ProresSlowPal)+  , _psParNumerator :: !(Maybe Int)+  , _psTelecine :: !(Maybe ProresTelecine)+  , _psInterlaceMode :: !(Maybe ProresInterlaceMode)+  , _psParControl :: !(Maybe ProresParControl)+  , _psCodecProfile :: !(Maybe ProresCodecProfile)+  , _psFramerateDenominator :: !(Maybe Int)+  , _psFramerateConversionAlgorithm :: !(Maybe ProresFramerateConversionAlgorithm)+  , _psFramerateControl :: !(Maybe ProresFramerateControl)+  , _psFramerateNumerator :: !(Maybe Int)+  , _psParDenominator :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ProresSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'psSlowPal' - Undocumented member.+--+-- * 'psParNumerator' - Pixel Aspect Ratio numerator.+--+-- * 'psTelecine' - Undocumented member.+--+-- * 'psInterlaceMode' - Undocumented member.+--+-- * 'psParControl' - Undocumented member.+--+-- * 'psCodecProfile' - Undocumented member.+--+-- * 'psFramerateDenominator' - Framerate denominator.+--+-- * 'psFramerateConversionAlgorithm' - Undocumented member.+--+-- * 'psFramerateControl' - Undocumented member.+--+-- * 'psFramerateNumerator' - When you use the API for transcode jobs that use framerate conversion, specify the framerate as a fraction. For example,  24000 / 1001 = 23.976 fps. Use FramerateNumerator to specify the numerator of this fraction. In this example, use 24000 for the value of FramerateNumerator.+--+-- * 'psParDenominator' - Pixel Aspect Ratio denominator.+proresSettings+    :: ProresSettings+proresSettings =+  ProresSettings'+    { _psSlowPal = Nothing+    , _psParNumerator = Nothing+    , _psTelecine = Nothing+    , _psInterlaceMode = Nothing+    , _psParControl = Nothing+    , _psCodecProfile = Nothing+    , _psFramerateDenominator = Nothing+    , _psFramerateConversionAlgorithm = Nothing+    , _psFramerateControl = Nothing+    , _psFramerateNumerator = Nothing+    , _psParDenominator = Nothing+    }+++-- | Undocumented member.+psSlowPal :: Lens' ProresSettings (Maybe ProresSlowPal)+psSlowPal = lens _psSlowPal (\ s a -> s{_psSlowPal = a})++-- | Pixel Aspect Ratio numerator.+psParNumerator :: Lens' ProresSettings (Maybe Int)+psParNumerator = lens _psParNumerator (\ s a -> s{_psParNumerator = a})++-- | Undocumented member.+psTelecine :: Lens' ProresSettings (Maybe ProresTelecine)+psTelecine = lens _psTelecine (\ s a -> s{_psTelecine = a})++-- | Undocumented member.+psInterlaceMode :: Lens' ProresSettings (Maybe ProresInterlaceMode)+psInterlaceMode = lens _psInterlaceMode (\ s a -> s{_psInterlaceMode = a})++-- | Undocumented member.+psParControl :: Lens' ProresSettings (Maybe ProresParControl)+psParControl = lens _psParControl (\ s a -> s{_psParControl = a})++-- | Undocumented member.+psCodecProfile :: Lens' ProresSettings (Maybe ProresCodecProfile)+psCodecProfile = lens _psCodecProfile (\ s a -> s{_psCodecProfile = a})++-- | Framerate denominator.+psFramerateDenominator :: Lens' ProresSettings (Maybe Int)+psFramerateDenominator = lens _psFramerateDenominator (\ s a -> s{_psFramerateDenominator = a})++-- | Undocumented member.+psFramerateConversionAlgorithm :: Lens' ProresSettings (Maybe ProresFramerateConversionAlgorithm)+psFramerateConversionAlgorithm = lens _psFramerateConversionAlgorithm (\ s a -> s{_psFramerateConversionAlgorithm = a})++-- | Undocumented member.+psFramerateControl :: Lens' ProresSettings (Maybe ProresFramerateControl)+psFramerateControl = lens _psFramerateControl (\ s a -> s{_psFramerateControl = a})++-- | When you use the API for transcode jobs that use framerate conversion, specify the framerate as a fraction. For example,  24000 / 1001 = 23.976 fps. Use FramerateNumerator to specify the numerator of this fraction. In this example, use 24000 for the value of FramerateNumerator.+psFramerateNumerator :: Lens' ProresSettings (Maybe Int)+psFramerateNumerator = lens _psFramerateNumerator (\ s a -> s{_psFramerateNumerator = a})++-- | Pixel Aspect Ratio denominator.+psParDenominator :: Lens' ProresSettings (Maybe Int)+psParDenominator = lens _psParDenominator (\ s a -> s{_psParDenominator = a})++instance FromJSON ProresSettings where+        parseJSON+          = withObject "ProresSettings"+              (\ x ->+                 ProresSettings' <$>+                   (x .:? "slowPal") <*> (x .:? "parNumerator") <*>+                     (x .:? "telecine")+                     <*> (x .:? "interlaceMode")+                     <*> (x .:? "parControl")+                     <*> (x .:? "codecProfile")+                     <*> (x .:? "framerateDenominator")+                     <*> (x .:? "framerateConversionAlgorithm")+                     <*> (x .:? "framerateControl")+                     <*> (x .:? "framerateNumerator")+                     <*> (x .:? "parDenominator"))++instance Hashable ProresSettings where++instance NFData ProresSettings where++instance ToJSON ProresSettings where+        toJSON ProresSettings'{..}+          = object+              (catMaybes+                 [("slowPal" .=) <$> _psSlowPal,+                  ("parNumerator" .=) <$> _psParNumerator,+                  ("telecine" .=) <$> _psTelecine,+                  ("interlaceMode" .=) <$> _psInterlaceMode,+                  ("parControl" .=) <$> _psParControl,+                  ("codecProfile" .=) <$> _psCodecProfile,+                  ("framerateDenominator" .=) <$>+                    _psFramerateDenominator,+                  ("framerateConversionAlgorithm" .=) <$>+                    _psFramerateConversionAlgorithm,+                  ("framerateControl" .=) <$> _psFramerateControl,+                  ("framerateNumerator" .=) <$> _psFramerateNumerator,+                  ("parDenominator" .=) <$> _psParDenominator])++-- | MediaConvert jobs are submitted to a queue. Unless specified otherwise jobs are submitted to a built-in default queue. User can create additional queues to separate the jobs of different categories or priority.+--+-- /See:/ 'queue' smart constructor.+data Queue = Queue'+  { _qStatus      :: !(Maybe QueueStatus)+  , _qLastUpdated :: !(Maybe POSIX)+  , _qARN         :: !(Maybe Text)+  , _qCreatedAt   :: !(Maybe POSIX)+  , _qName        :: !(Maybe Text)+  , _qType        :: !(Maybe Type)+  , _qDescription :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Queue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'qStatus' - Undocumented member.+--+-- * 'qLastUpdated' - The timestamp in epoch seconds when the queue was last updated.+--+-- * 'qARN' - An identifier for this resource that is unique within all of AWS.+--+-- * 'qCreatedAt' - The timestamp in epoch seconds for queue creation.+--+-- * 'qName' - A name you create for each queue. Each name must be unique within your account.+--+-- * 'qType' - A queue can be of two types: system or custom. System or built-in queues can't be modified or deleted by the user.+--+-- * 'qDescription' - An optional description you create for each queue.+queue+    :: Queue+queue =+  Queue'+    { _qStatus = Nothing+    , _qLastUpdated = Nothing+    , _qARN = Nothing+    , _qCreatedAt = Nothing+    , _qName = Nothing+    , _qType = Nothing+    , _qDescription = Nothing+    }+++-- | Undocumented member.+qStatus :: Lens' Queue (Maybe QueueStatus)+qStatus = lens _qStatus (\ s a -> s{_qStatus = a})++-- | The timestamp in epoch seconds when the queue was last updated.+qLastUpdated :: Lens' Queue (Maybe UTCTime)+qLastUpdated = lens _qLastUpdated (\ s a -> s{_qLastUpdated = a}) . mapping _Time++-- | An identifier for this resource that is unique within all of AWS.+qARN :: Lens' Queue (Maybe Text)+qARN = lens _qARN (\ s a -> s{_qARN = a})++-- | The timestamp in epoch seconds for queue creation.+qCreatedAt :: Lens' Queue (Maybe UTCTime)+qCreatedAt = lens _qCreatedAt (\ s a -> s{_qCreatedAt = a}) . mapping _Time++-- | A name you create for each queue. Each name must be unique within your account.+qName :: Lens' Queue (Maybe Text)+qName = lens _qName (\ s a -> s{_qName = a})++-- | A queue can be of two types: system or custom. System or built-in queues can't be modified or deleted by the user.+qType :: Lens' Queue (Maybe Type)+qType = lens _qType (\ s a -> s{_qType = a})++-- | An optional description you create for each queue.+qDescription :: Lens' Queue (Maybe Text)+qDescription = lens _qDescription (\ s a -> s{_qDescription = a})++instance FromJSON Queue where+        parseJSON+          = withObject "Queue"+              (\ x ->+                 Queue' <$>+                   (x .:? "status") <*> (x .:? "lastUpdated") <*>+                     (x .:? "arn")+                     <*> (x .:? "createdAt")+                     <*> (x .:? "name")+                     <*> (x .:? "type")+                     <*> (x .:? "description"))++instance Hashable Queue where++instance NFData Queue where++-- | Use Rectangle to identify a specific area of the video frame.+--+-- /See:/ 'rectangle' smart constructor.+data Rectangle = Rectangle'+  { _rHeight :: !(Maybe Int)+  , _rWidth  :: !(Maybe Int)+  , _rX      :: !(Maybe Int)+  , _rY      :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Rectangle' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rHeight' - Height of rectangle in pixels.+--+-- * 'rWidth' - Width of rectangle in pixels.+--+-- * 'rX' - The distance, in pixels, between the rectangle and the left edge of the video frame.+--+-- * 'rY' - The distance, in pixels, between the rectangle and the top edge of the video frame.+rectangle+    :: Rectangle+rectangle =+  Rectangle'+    {_rHeight = Nothing, _rWidth = Nothing, _rX = Nothing, _rY = Nothing}+++-- | Height of rectangle in pixels.+rHeight :: Lens' Rectangle (Maybe Int)+rHeight = lens _rHeight (\ s a -> s{_rHeight = a})++-- | Width of rectangle in pixels.+rWidth :: Lens' Rectangle (Maybe Int)+rWidth = lens _rWidth (\ s a -> s{_rWidth = a})++-- | The distance, in pixels, between the rectangle and the left edge of the video frame.+rX :: Lens' Rectangle (Maybe Int)+rX = lens _rX (\ s a -> s{_rX = a})++-- | The distance, in pixels, between the rectangle and the top edge of the video frame.+rY :: Lens' Rectangle (Maybe Int)+rY = lens _rY (\ s a -> s{_rY = a})++instance FromJSON Rectangle where+        parseJSON+          = withObject "Rectangle"+              (\ x ->+                 Rectangle' <$>+                   (x .:? "height") <*> (x .:? "width") <*> (x .:? "x")+                     <*> (x .:? "y"))++instance Hashable Rectangle where++instance NFData Rectangle where++instance ToJSON Rectangle where+        toJSON Rectangle'{..}+          = object+              (catMaybes+                 [("height" .=) <$> _rHeight,+                  ("width" .=) <$> _rWidth, ("x" .=) <$> _rX,+                  ("y" .=) <$> _rY])++-- | Use Manual audio remixing (RemixSettings) to adjust audio levels for each output channel. With audio remixing, you can output more or fewer audio channels than your input audio source provides.+--+-- /See:/ 'remixSettings' smart constructor.+data RemixSettings = RemixSettings'+  { _rsChannelMapping :: !(Maybe ChannelMapping)+  , _rsChannelsIn     :: !(Maybe Int)+  , _rsChannelsOut    :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RemixSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rsChannelMapping' - Undocumented member.+--+-- * 'rsChannelsIn' - Specify the number of audio channels from your input that you want to use in your output. With remixing, you might combine or split the data in these channels, so the number of channels in your final output might be different.+--+-- * 'rsChannelsOut' - Specify the number of channels in this output after remixing. Valid values: 1, 2, 4, 6, 8+remixSettings+    :: RemixSettings+remixSettings =+  RemixSettings'+    { _rsChannelMapping = Nothing+    , _rsChannelsIn = Nothing+    , _rsChannelsOut = Nothing+    }+++-- | Undocumented member.+rsChannelMapping :: Lens' RemixSettings (Maybe ChannelMapping)+rsChannelMapping = lens _rsChannelMapping (\ s a -> s{_rsChannelMapping = a})++-- | Specify the number of audio channels from your input that you want to use in your output. With remixing, you might combine or split the data in these channels, so the number of channels in your final output might be different.+rsChannelsIn :: Lens' RemixSettings (Maybe Int)+rsChannelsIn = lens _rsChannelsIn (\ s a -> s{_rsChannelsIn = a})++-- | Specify the number of channels in this output after remixing. Valid values: 1, 2, 4, 6, 8+rsChannelsOut :: Lens' RemixSettings (Maybe Int)+rsChannelsOut = lens _rsChannelsOut (\ s a -> s{_rsChannelsOut = a})++instance FromJSON RemixSettings where+        parseJSON+          = withObject "RemixSettings"+              (\ x ->+                 RemixSettings' <$>+                   (x .:? "channelMapping") <*> (x .:? "channelsIn") <*>+                     (x .:? "channelsOut"))++instance Hashable RemixSettings where++instance NFData RemixSettings where++instance ToJSON RemixSettings where+        toJSON RemixSettings'{..}+          = object+              (catMaybes+                 [("channelMapping" .=) <$> _rsChannelMapping,+                  ("channelsIn" .=) <$> _rsChannelsIn,+                  ("channelsOut" .=) <$> _rsChannelsOut])++-- | Settings for SCC caption output.+--+-- /See:/ 'sccDestinationSettings' smart constructor.+newtype SccDestinationSettings = SccDestinationSettings'+  { _sdsFramerate :: Maybe SccDestinationFramerate+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SccDestinationSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdsFramerate' - Undocumented member.+sccDestinationSettings+    :: SccDestinationSettings+sccDestinationSettings = SccDestinationSettings' {_sdsFramerate = Nothing}+++-- | Undocumented member.+sdsFramerate :: Lens' SccDestinationSettings (Maybe SccDestinationFramerate)+sdsFramerate = lens _sdsFramerate (\ s a -> s{_sdsFramerate = a})++instance FromJSON SccDestinationSettings where+        parseJSON+          = withObject "SccDestinationSettings"+              (\ x ->+                 SccDestinationSettings' <$> (x .:? "framerate"))++instance Hashable SccDestinationSettings where++instance NFData SccDestinationSettings where++instance ToJSON SccDestinationSettings where+        toJSON SccDestinationSettings'{..}+          = object+              (catMaybes [("framerate" .=) <$> _sdsFramerate])++-- | Settings for use with a SPEKE key provider+--+-- /See:/ 'spekeKeyProvider' smart constructor.+data SpekeKeyProvider = SpekeKeyProvider'+  { _skpResourceId :: !(Maybe Text)+  , _skpURL        :: !(Maybe Text)+  , _skpSystemIds  :: !(Maybe [Text])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SpekeKeyProvider' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'skpResourceId' - The SPEKE-compliant server uses Resource ID (ResourceId) to identify content.+--+-- * 'skpURL' - Use URL (Url) to specify the SPEKE-compliant server that will provide keys for content.+--+-- * 'skpSystemIds' - Relates to SPEKE implementation. DRM system identifiers. DASH output groups support a max of two system ids. Other group types support one system id.+spekeKeyProvider+    :: SpekeKeyProvider+spekeKeyProvider =+  SpekeKeyProvider'+    {_skpResourceId = Nothing, _skpURL = Nothing, _skpSystemIds = Nothing}+++-- | The SPEKE-compliant server uses Resource ID (ResourceId) to identify content.+skpResourceId :: Lens' SpekeKeyProvider (Maybe Text)+skpResourceId = lens _skpResourceId (\ s a -> s{_skpResourceId = a})++-- | Use URL (Url) to specify the SPEKE-compliant server that will provide keys for content.+skpURL :: Lens' SpekeKeyProvider (Maybe Text)+skpURL = lens _skpURL (\ s a -> s{_skpURL = a})++-- | Relates to SPEKE implementation. DRM system identifiers. DASH output groups support a max of two system ids. Other group types support one system id.+skpSystemIds :: Lens' SpekeKeyProvider [Text]+skpSystemIds = lens _skpSystemIds (\ s a -> s{_skpSystemIds = a}) . _Default . _Coerce++instance FromJSON SpekeKeyProvider where+        parseJSON+          = withObject "SpekeKeyProvider"+              (\ x ->+                 SpekeKeyProvider' <$>+                   (x .:? "resourceId") <*> (x .:? "url") <*>+                     (x .:? "systemIds" .!= mempty))++instance Hashable SpekeKeyProvider where++instance NFData SpekeKeyProvider where++instance ToJSON SpekeKeyProvider where+        toJSON SpekeKeyProvider'{..}+          = object+              (catMaybes+                 [("resourceId" .=) <$> _skpResourceId,+                  ("url" .=) <$> _skpURL,+                  ("systemIds" .=) <$> _skpSystemIds])++-- | Settings for use with a SPEKE key provider.+--+-- /See:/ 'staticKeyProvider' smart constructor.+data StaticKeyProvider = StaticKeyProvider'+  { _sStaticKeyValue    :: !(Maybe Text)+  , _sURL               :: !(Maybe Text)+  , _sKeyFormat         :: !(Maybe Text)+  , _sKeyFormatVersions :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'StaticKeyProvider' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sStaticKeyValue' - Relates to DRM implementation. Use a 32-character hexidecimal string to specify Key Value (StaticKeyValue).+--+-- * 'sURL' - Relates to DRM implementation. The location of the license server used for protecting content.+--+-- * 'sKeyFormat' - Relates to DRM implementation. Sets the value of the KEYFORMAT attribute. Must be 'identity' or a reverse DNS string. May be omitted to indicate an implicit value of 'identity'.+--+-- * 'sKeyFormatVersions' - Relates to DRM implementation. Either a single positive integer version value or a slash delimited list of version values (1/2/3).+staticKeyProvider+    :: StaticKeyProvider+staticKeyProvider =+  StaticKeyProvider'+    { _sStaticKeyValue = Nothing+    , _sURL = Nothing+    , _sKeyFormat = Nothing+    , _sKeyFormatVersions = Nothing+    }+++-- | Relates to DRM implementation. Use a 32-character hexidecimal string to specify Key Value (StaticKeyValue).+sStaticKeyValue :: Lens' StaticKeyProvider (Maybe Text)+sStaticKeyValue = lens _sStaticKeyValue (\ s a -> s{_sStaticKeyValue = a})++-- | Relates to DRM implementation. The location of the license server used for protecting content.+sURL :: Lens' StaticKeyProvider (Maybe Text)+sURL = lens _sURL (\ s a -> s{_sURL = a})++-- | Relates to DRM implementation. Sets the value of the KEYFORMAT attribute. Must be 'identity' or a reverse DNS string. May be omitted to indicate an implicit value of 'identity'.+sKeyFormat :: Lens' StaticKeyProvider (Maybe Text)+sKeyFormat = lens _sKeyFormat (\ s a -> s{_sKeyFormat = a})++-- | Relates to DRM implementation. Either a single positive integer version value or a slash delimited list of version values (1/2/3).+sKeyFormatVersions :: Lens' StaticKeyProvider (Maybe Text)+sKeyFormatVersions = lens _sKeyFormatVersions (\ s a -> s{_sKeyFormatVersions = a})++instance FromJSON StaticKeyProvider where+        parseJSON+          = withObject "StaticKeyProvider"+              (\ x ->+                 StaticKeyProvider' <$>+                   (x .:? "staticKeyValue") <*> (x .:? "url") <*>+                     (x .:? "keyFormat")+                     <*> (x .:? "keyFormatVersions"))++instance Hashable StaticKeyProvider where++instance NFData StaticKeyProvider where++instance ToJSON StaticKeyProvider where+        toJSON StaticKeyProvider'{..}+          = object+              (catMaybes+                 [("staticKeyValue" .=) <$> _sStaticKeyValue,+                  ("url" .=) <$> _sURL,+                  ("keyFormat" .=) <$> _sKeyFormat,+                  ("keyFormatVersions" .=) <$> _sKeyFormatVersions])++-- | Settings for Teletext caption output+--+-- /See:/ 'teletextDestinationSettings' smart constructor.+newtype TeletextDestinationSettings = TeletextDestinationSettings'+  { _tdsPageNumber :: Maybe Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TeletextDestinationSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tdsPageNumber' - Set pageNumber to the Teletext page number for the destination captions for this output. This value must be a three-digit hexadecimal string; strings ending in -FF are invalid. If you are passing through the entire set of Teletext data, do not use this field.+teletextDestinationSettings+    :: TeletextDestinationSettings+teletextDestinationSettings =+  TeletextDestinationSettings' {_tdsPageNumber = Nothing}+++-- | Set pageNumber to the Teletext page number for the destination captions for this output. This value must be a three-digit hexadecimal string; strings ending in -FF are invalid. If you are passing through the entire set of Teletext data, do not use this field.+tdsPageNumber :: Lens' TeletextDestinationSettings (Maybe Text)+tdsPageNumber = lens _tdsPageNumber (\ s a -> s{_tdsPageNumber = a})++instance FromJSON TeletextDestinationSettings where+        parseJSON+          = withObject "TeletextDestinationSettings"+              (\ x ->+                 TeletextDestinationSettings' <$>+                   (x .:? "pageNumber"))++instance Hashable TeletextDestinationSettings where++instance NFData TeletextDestinationSettings where++instance ToJSON TeletextDestinationSettings where+        toJSON TeletextDestinationSettings'{..}+          = object+              (catMaybes [("pageNumber" .=) <$> _tdsPageNumber])++-- | Settings specific to Teletext caption sources, including Page number.+--+-- /See:/ 'teletextSourceSettings' smart constructor.+newtype TeletextSourceSettings = TeletextSourceSettings'+  { _tssPageNumber :: Maybe Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TeletextSourceSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tssPageNumber' - Use Page Number (PageNumber) to specify the three-digit hexadecimal page number that will be used for Teletext captions. Do not use this setting if you are passing through teletext from the input source to output.+teletextSourceSettings+    :: TeletextSourceSettings+teletextSourceSettings = TeletextSourceSettings' {_tssPageNumber = Nothing}+++-- | Use Page Number (PageNumber) to specify the three-digit hexadecimal page number that will be used for Teletext captions. Do not use this setting if you are passing through teletext from the input source to output.+tssPageNumber :: Lens' TeletextSourceSettings (Maybe Text)+tssPageNumber = lens _tssPageNumber (\ s a -> s{_tssPageNumber = a})++instance FromJSON TeletextSourceSettings where+        parseJSON+          = withObject "TeletextSourceSettings"+              (\ x ->+                 TeletextSourceSettings' <$> (x .:? "pageNumber"))++instance Hashable TeletextSourceSettings where++instance NFData TeletextSourceSettings where++instance ToJSON TeletextSourceSettings where+        toJSON TeletextSourceSettings'{..}+          = object+              (catMaybes [("pageNumber" .=) <$> _tssPageNumber])++-- | Timecode burn-in (TimecodeBurnIn)--Burns the output timecode and specified prefix into the output.+--+-- /See:/ 'timecodeBurnin' smart constructor.+data TimecodeBurnin = TimecodeBurnin'+  { _tbPrefix   :: !(Maybe Text)+  , _tbFontSize :: !(Maybe Int)+  , _tbPosition :: !(Maybe TimecodeBurninPosition)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TimecodeBurnin' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tbPrefix' - Use Prefix (Prefix) to place ASCII characters before any burned-in timecode. For example, a prefix of "EZ-" will result in the timecode "EZ-00:00:00:00". Provide either the characters themselves or the ASCII code equivalents. The supported range of characters is 0x20 through 0x7e. This includes letters, numbers, and all special characters represented on a standard English keyboard.+--+-- * 'tbFontSize' - Use Font Size (FontSize) to set the font size of any burned-in timecode. Valid values are 10, 16, 32, 48.+--+-- * 'tbPosition' - Undocumented member.+timecodeBurnin+    :: TimecodeBurnin+timecodeBurnin =+  TimecodeBurnin'+    {_tbPrefix = Nothing, _tbFontSize = Nothing, _tbPosition = Nothing}+++-- | Use Prefix (Prefix) to place ASCII characters before any burned-in timecode. For example, a prefix of "EZ-" will result in the timecode "EZ-00:00:00:00". Provide either the characters themselves or the ASCII code equivalents. The supported range of characters is 0x20 through 0x7e. This includes letters, numbers, and all special characters represented on a standard English keyboard.+tbPrefix :: Lens' TimecodeBurnin (Maybe Text)+tbPrefix = lens _tbPrefix (\ s a -> s{_tbPrefix = a})++-- | Use Font Size (FontSize) to set the font size of any burned-in timecode. Valid values are 10, 16, 32, 48.+tbFontSize :: Lens' TimecodeBurnin (Maybe Int)+tbFontSize = lens _tbFontSize (\ s a -> s{_tbFontSize = a})++-- | Undocumented member.+tbPosition :: Lens' TimecodeBurnin (Maybe TimecodeBurninPosition)+tbPosition = lens _tbPosition (\ s a -> s{_tbPosition = a})++instance FromJSON TimecodeBurnin where+        parseJSON+          = withObject "TimecodeBurnin"+              (\ x ->+                 TimecodeBurnin' <$>+                   (x .:? "prefix") <*> (x .:? "fontSize") <*>+                     (x .:? "position"))++instance Hashable TimecodeBurnin where++instance NFData TimecodeBurnin where++instance ToJSON TimecodeBurnin where+        toJSON TimecodeBurnin'{..}+          = object+              (catMaybes+                 [("prefix" .=) <$> _tbPrefix,+                  ("fontSize" .=) <$> _tbFontSize,+                  ("position" .=) <$> _tbPosition])++-- | Contains settings used to acquire and adjust timecode information from inputs.+--+-- /See:/ 'timecodeConfig' smart constructor.+data TimecodeConfig = TimecodeConfig'+  { _tcStart           :: !(Maybe Text)+  , _tcTimestampOffset :: !(Maybe Text)+  , _tcAnchor          :: !(Maybe Text)+  , _tcSource          :: !(Maybe TimecodeSource)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TimecodeConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tcStart' - Only use when you set Timecode Source (TimecodeSource) to Specified Start (SPECIFIEDSTART). Use Start timecode (Start) to specify the timecode for the initial frame. Use 24-hour format with frame number, (HH:MM:SS:FF) or (HH:MM:SS;FF).+--+-- * 'tcTimestampOffset' - Only applies to outputs that support program-date-time stamp. Use Time stamp offset (TimestampOffset) to overwrite the timecode date without affecting the time and frame number. Provide the new date as a string in the format "yyyy-mm-dd".  To use Time stamp offset, you must also enable Insert program-date-time (InsertProgramDateTime) in the output settings.+--+-- * 'tcAnchor' - If you use an editing platform that relies on an anchor timecode, use Anchor Timecode (Anchor) to specify a timecode that will match the input video frame to the output video frame. Use 24-hour format with frame number, (HH:MM:SS:FF) or (HH:MM:SS;FF). This setting ignores framerate conversion. System behavior for Anchor Timecode varies depending on your setting for Timecode source (TimecodeSource). * If Timecode source (TimecodeSource) is set to Specified Start (specifiedstart), the first input frame is the specified value in Start Timecode (Start). Anchor Timecode (Anchor) and Start Timecode (Start) are used calculate output timecode. * If Timecode source (TimecodeSource) is set to Start at 0 (zerobased)  the  first frame is 00:00:00:00. * If Timecode source (TimecodeSource) is set to Embedded (embedded), the  first frame is the timecode value on the first input frame of the input.+--+-- * 'tcSource' - Undocumented member.+timecodeConfig+    :: TimecodeConfig+timecodeConfig =+  TimecodeConfig'+    { _tcStart = Nothing+    , _tcTimestampOffset = Nothing+    , _tcAnchor = Nothing+    , _tcSource = Nothing+    }+++-- | Only use when you set Timecode Source (TimecodeSource) to Specified Start (SPECIFIEDSTART). Use Start timecode (Start) to specify the timecode for the initial frame. Use 24-hour format with frame number, (HH:MM:SS:FF) or (HH:MM:SS;FF).+tcStart :: Lens' TimecodeConfig (Maybe Text)+tcStart = lens _tcStart (\ s a -> s{_tcStart = a})++-- | Only applies to outputs that support program-date-time stamp. Use Time stamp offset (TimestampOffset) to overwrite the timecode date without affecting the time and frame number. Provide the new date as a string in the format "yyyy-mm-dd".  To use Time stamp offset, you must also enable Insert program-date-time (InsertProgramDateTime) in the output settings.+tcTimestampOffset :: Lens' TimecodeConfig (Maybe Text)+tcTimestampOffset = lens _tcTimestampOffset (\ s a -> s{_tcTimestampOffset = a})++-- | If you use an editing platform that relies on an anchor timecode, use Anchor Timecode (Anchor) to specify a timecode that will match the input video frame to the output video frame. Use 24-hour format with frame number, (HH:MM:SS:FF) or (HH:MM:SS;FF). This setting ignores framerate conversion. System behavior for Anchor Timecode varies depending on your setting for Timecode source (TimecodeSource). * If Timecode source (TimecodeSource) is set to Specified Start (specifiedstart), the first input frame is the specified value in Start Timecode (Start). Anchor Timecode (Anchor) and Start Timecode (Start) are used calculate output timecode. * If Timecode source (TimecodeSource) is set to Start at 0 (zerobased)  the  first frame is 00:00:00:00. * If Timecode source (TimecodeSource) is set to Embedded (embedded), the  first frame is the timecode value on the first input frame of the input.+tcAnchor :: Lens' TimecodeConfig (Maybe Text)+tcAnchor = lens _tcAnchor (\ s a -> s{_tcAnchor = a})++-- | Undocumented member.+tcSource :: Lens' TimecodeConfig (Maybe TimecodeSource)+tcSource = lens _tcSource (\ s a -> s{_tcSource = a})++instance FromJSON TimecodeConfig where+        parseJSON+          = withObject "TimecodeConfig"+              (\ x ->+                 TimecodeConfig' <$>+                   (x .:? "start") <*> (x .:? "timestampOffset") <*>+                     (x .:? "anchor")+                     <*> (x .:? "source"))++instance Hashable TimecodeConfig where++instance NFData TimecodeConfig where++instance ToJSON TimecodeConfig where+        toJSON TimecodeConfig'{..}+          = object+              (catMaybes+                 [("start" .=) <$> _tcStart,+                  ("timestampOffset" .=) <$> _tcTimestampOffset,+                  ("anchor" .=) <$> _tcAnchor,+                  ("source" .=) <$> _tcSource])++-- | Enable Timed metadata insertion (TimedMetadataInsertion) to include ID3 tags in your job. To include timed metadata, you must enable it here, enable it in each output container, and specify tags and timecodes in ID3 insertion (Id3Insertion) objects.+--+-- /See:/ 'timedMetadataInsertion' smart constructor.+newtype TimedMetadataInsertion = TimedMetadataInsertion'+  { _tmiId3Insertions :: Maybe [Id3Insertion]+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TimedMetadataInsertion' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tmiId3Insertions' - Id3Insertions contains the array of Id3Insertion instances.+timedMetadataInsertion+    :: TimedMetadataInsertion+timedMetadataInsertion = TimedMetadataInsertion' {_tmiId3Insertions = Nothing}+++-- | Id3Insertions contains the array of Id3Insertion instances.+tmiId3Insertions :: Lens' TimedMetadataInsertion [Id3Insertion]+tmiId3Insertions = lens _tmiId3Insertions (\ s a -> s{_tmiId3Insertions = a}) . _Default . _Coerce++instance FromJSON TimedMetadataInsertion where+        parseJSON+          = withObject "TimedMetadataInsertion"+              (\ x ->+                 TimedMetadataInsertion' <$>+                   (x .:? "id3Insertions" .!= mempty))++instance Hashable TimedMetadataInsertion where++instance NFData TimedMetadataInsertion where++instance ToJSON TimedMetadataInsertion where+        toJSON TimedMetadataInsertion'{..}+          = object+              (catMaybes+                 [("id3Insertions" .=) <$> _tmiId3Insertions])++-- | Information about when jobs are submitted, started, and finished is specified in Unix epoch format in seconds.+--+-- /See:/ 'timing' smart constructor.+data Timing = Timing'+  { _tStartTime  :: !(Maybe POSIX)+  , _tFinishTime :: !(Maybe POSIX)+  , _tSubmitTime :: !(Maybe POSIX)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Timing' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tStartTime' - The time, in Unix epoch format, that transcoding for the job began.+--+-- * 'tFinishTime' - The time, in Unix epoch format, that the transcoding job finished+--+-- * 'tSubmitTime' - The time, in Unix epoch format, that you submitted the job.+timing+    :: Timing+timing =+  Timing'+    {_tStartTime = Nothing, _tFinishTime = Nothing, _tSubmitTime = Nothing}+++-- | The time, in Unix epoch format, that transcoding for the job began.+tStartTime :: Lens' Timing (Maybe UTCTime)+tStartTime = lens _tStartTime (\ s a -> s{_tStartTime = a}) . mapping _Time++-- | The time, in Unix epoch format, that the transcoding job finished+tFinishTime :: Lens' Timing (Maybe UTCTime)+tFinishTime = lens _tFinishTime (\ s a -> s{_tFinishTime = a}) . mapping _Time++-- | The time, in Unix epoch format, that you submitted the job.+tSubmitTime :: Lens' Timing (Maybe UTCTime)+tSubmitTime = lens _tSubmitTime (\ s a -> s{_tSubmitTime = a}) . mapping _Time++instance FromJSON Timing where+        parseJSON+          = withObject "Timing"+              (\ x ->+                 Timing' <$>+                   (x .:? "startTime") <*> (x .:? "finishTime") <*>+                     (x .:? "submitTime"))++instance Hashable Timing where++instance NFData Timing where++-- | Settings specific to TTML caption outputs, including Pass style information (TtmlStylePassthrough).+--+-- /See:/ 'ttmlDestinationSettings' smart constructor.+newtype TtmlDestinationSettings = TtmlDestinationSettings'+  { _tdsStylePassthrough :: Maybe TtmlStylePassthrough+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TtmlDestinationSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tdsStylePassthrough' - Undocumented member.+ttmlDestinationSettings+    :: TtmlDestinationSettings+ttmlDestinationSettings =+  TtmlDestinationSettings' {_tdsStylePassthrough = Nothing}+++-- | Undocumented member.+tdsStylePassthrough :: Lens' TtmlDestinationSettings (Maybe TtmlStylePassthrough)+tdsStylePassthrough = lens _tdsStylePassthrough (\ s a -> s{_tdsStylePassthrough = a})++instance FromJSON TtmlDestinationSettings where+        parseJSON+          = withObject "TtmlDestinationSettings"+              (\ x ->+                 TtmlDestinationSettings' <$>+                   (x .:? "stylePassthrough"))++instance Hashable TtmlDestinationSettings where++instance NFData TtmlDestinationSettings where++instance ToJSON TtmlDestinationSettings where+        toJSON TtmlDestinationSettings'{..}+          = object+              (catMaybes+                 [("stylePassthrough" .=) <$> _tdsStylePassthrough])++-- | Video codec settings, (CodecSettings) under (VideoDescription), contains the group of settings related to video encoding. The settings in this group vary depending on the value you choose for Video codec (Codec). For each codec enum you choose, define the corresponding settings object. The following lists the codec enum, settings object pairs. * H_264, H264Settings * H_265, H265Settings * MPEG2, Mpeg2Settings * PRORES, ProresSettings * FRAME_CAPTURE, FrameCaptureSettings+--+-- /See:/ 'videoCodecSettings' smart constructor.+data VideoCodecSettings = VideoCodecSettings'+  { _vcsFrameCaptureSettings :: !(Maybe FrameCaptureSettings)+  , _vcsCodec                :: !(Maybe VideoCodec)+  , _vcsH265Settings         :: !(Maybe H265Settings)+  , _vcsProresSettings       :: !(Maybe ProresSettings)+  , _vcsH264Settings         :: !(Maybe H264Settings)+  , _vcsMpeg2Settings        :: !(Maybe Mpeg2Settings)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VideoCodecSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vcsFrameCaptureSettings' - Undocumented member.+--+-- * 'vcsCodec' - Undocumented member.+--+-- * 'vcsH265Settings' - Undocumented member.+--+-- * 'vcsProresSettings' - Undocumented member.+--+-- * 'vcsH264Settings' - Undocumented member.+--+-- * 'vcsMpeg2Settings' - Undocumented member.+videoCodecSettings+    :: VideoCodecSettings+videoCodecSettings =+  VideoCodecSettings'+    { _vcsFrameCaptureSettings = Nothing+    , _vcsCodec = Nothing+    , _vcsH265Settings = Nothing+    , _vcsProresSettings = Nothing+    , _vcsH264Settings = Nothing+    , _vcsMpeg2Settings = Nothing+    }+++-- | Undocumented member.+vcsFrameCaptureSettings :: Lens' VideoCodecSettings (Maybe FrameCaptureSettings)+vcsFrameCaptureSettings = lens _vcsFrameCaptureSettings (\ s a -> s{_vcsFrameCaptureSettings = a})++-- | Undocumented member.+vcsCodec :: Lens' VideoCodecSettings (Maybe VideoCodec)+vcsCodec = lens _vcsCodec (\ s a -> s{_vcsCodec = a})++-- | Undocumented member.+vcsH265Settings :: Lens' VideoCodecSettings (Maybe H265Settings)+vcsH265Settings = lens _vcsH265Settings (\ s a -> s{_vcsH265Settings = a})++-- | Undocumented member.+vcsProresSettings :: Lens' VideoCodecSettings (Maybe ProresSettings)+vcsProresSettings = lens _vcsProresSettings (\ s a -> s{_vcsProresSettings = a})++-- | Undocumented member.+vcsH264Settings :: Lens' VideoCodecSettings (Maybe H264Settings)+vcsH264Settings = lens _vcsH264Settings (\ s a -> s{_vcsH264Settings = a})++-- | Undocumented member.+vcsMpeg2Settings :: Lens' VideoCodecSettings (Maybe Mpeg2Settings)+vcsMpeg2Settings = lens _vcsMpeg2Settings (\ s a -> s{_vcsMpeg2Settings = a})++instance FromJSON VideoCodecSettings where+        parseJSON+          = withObject "VideoCodecSettings"+              (\ x ->+                 VideoCodecSettings' <$>+                   (x .:? "frameCaptureSettings") <*> (x .:? "codec")+                     <*> (x .:? "h265Settings")+                     <*> (x .:? "proresSettings")+                     <*> (x .:? "h264Settings")+                     <*> (x .:? "mpeg2Settings"))++instance Hashable VideoCodecSettings where++instance NFData VideoCodecSettings where++instance ToJSON VideoCodecSettings where+        toJSON VideoCodecSettings'{..}+          = object+              (catMaybes+                 [("frameCaptureSettings" .=) <$>+                    _vcsFrameCaptureSettings,+                  ("codec" .=) <$> _vcsCodec,+                  ("h265Settings" .=) <$> _vcsH265Settings,+                  ("proresSettings" .=) <$> _vcsProresSettings,+                  ("h264Settings" .=) <$> _vcsH264Settings,+                  ("mpeg2Settings" .=) <$> _vcsMpeg2Settings])++-- | Settings for video outputs+--+-- /See:/ 'videoDescription' smart constructor.+data VideoDescription = VideoDescription'+  { _vdTimecodeInsertion  :: !(Maybe VideoTimecodeInsertion)+  , _vdHeight             :: !(Maybe Int)+  , _vdAfdSignaling       :: !(Maybe AfdSignaling)+  , _vdSharpness          :: !(Maybe Int)+  , _vdCrop               :: !(Maybe Rectangle)+  , _vdWidth              :: !(Maybe Int)+  , _vdScalingBehavior    :: !(Maybe ScalingBehavior)+  , _vdRespondToAfd       :: !(Maybe RespondToAfd)+  , _vdDropFrameTimecode  :: !(Maybe DropFrameTimecode)+  , _vdAntiAlias          :: !(Maybe AntiAlias)+  , _vdFixedAfd           :: !(Maybe Int)+  , _vdColorMetadata      :: !(Maybe ColorMetadata)+  , _vdCodecSettings      :: !(Maybe VideoCodecSettings)+  , _vdVideoPreprocessors :: !(Maybe VideoPreprocessor)+  , _vdPosition           :: !(Maybe Rectangle)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VideoDescription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vdTimecodeInsertion' - Undocumented member.+--+-- * 'vdHeight' - Use the Height (Height) setting to define the video resolution height for this output. Specify in pixels. If you don't provide a value here, the service will use the input height.+--+-- * 'vdAfdSignaling' - Undocumented member.+--+-- * 'vdSharpness' - Use Sharpness (Sharpness)setting to specify the strength of anti-aliasing. This setting changes the width of the anti-alias filter kernel used for scaling. Sharpness only applies if your output resolution is different from your input resolution, and if you set Anti-alias (AntiAlias) to ENABLED. 0 is the softest setting, 100 the sharpest, and 50 recommended for most content.+--+-- * 'vdCrop' - Applies only if your input aspect ratio is different from your output aspect ratio. Use Input cropping rectangle (Crop) to specify the  video area the service will include in the output. This will crop the input source, causing video pixels to be removed on encode. Do not use this setting if you have enabled Stretch to output (stretchToOutput) in your output settings.+--+-- * 'vdWidth' - Use Width (Width) to define the video resolution width, in pixels, for this output. If you don't provide a value here, the service will use the input width.+--+-- * 'vdScalingBehavior' - Undocumented member.+--+-- * 'vdRespondToAfd' - Undocumented member.+--+-- * 'vdDropFrameTimecode' - Undocumented member.+--+-- * 'vdAntiAlias' - Undocumented member.+--+-- * 'vdFixedAfd' - Applies only if you set AFD Signaling(AfdSignaling) to Fixed (FIXED). Use Fixed (FixedAfd) to specify a four-bit AFD value which the service will write on all  frames of this video output.+--+-- * 'vdColorMetadata' - Undocumented member.+--+-- * 'vdCodecSettings' - Undocumented member.+--+-- * 'vdVideoPreprocessors' - Find additional transcoding features under Preprocessors (VideoPreprocessors). Enable the features at each output individually. These features are disabled by default.+--+-- * 'vdPosition' - Use Position (Position) to point to a rectangle object to define your position. This setting overrides any other aspect ratio.+videoDescription+    :: VideoDescription+videoDescription =+  VideoDescription'+    { _vdTimecodeInsertion = Nothing+    , _vdHeight = Nothing+    , _vdAfdSignaling = Nothing+    , _vdSharpness = Nothing+    , _vdCrop = Nothing+    , _vdWidth = Nothing+    , _vdScalingBehavior = Nothing+    , _vdRespondToAfd = Nothing+    , _vdDropFrameTimecode = Nothing+    , _vdAntiAlias = Nothing+    , _vdFixedAfd = Nothing+    , _vdColorMetadata = Nothing+    , _vdCodecSettings = Nothing+    , _vdVideoPreprocessors = Nothing+    , _vdPosition = Nothing+    }+++-- | Undocumented member.+vdTimecodeInsertion :: Lens' VideoDescription (Maybe VideoTimecodeInsertion)+vdTimecodeInsertion = lens _vdTimecodeInsertion (\ s a -> s{_vdTimecodeInsertion = a})++-- | Use the Height (Height) setting to define the video resolution height for this output. Specify in pixels. If you don't provide a value here, the service will use the input height.+vdHeight :: Lens' VideoDescription (Maybe Int)+vdHeight = lens _vdHeight (\ s a -> s{_vdHeight = a})++-- | Undocumented member.+vdAfdSignaling :: Lens' VideoDescription (Maybe AfdSignaling)+vdAfdSignaling = lens _vdAfdSignaling (\ s a -> s{_vdAfdSignaling = a})++-- | Use Sharpness (Sharpness)setting to specify the strength of anti-aliasing. This setting changes the width of the anti-alias filter kernel used for scaling. Sharpness only applies if your output resolution is different from your input resolution, and if you set Anti-alias (AntiAlias) to ENABLED. 0 is the softest setting, 100 the sharpest, and 50 recommended for most content.+vdSharpness :: Lens' VideoDescription (Maybe Int)+vdSharpness = lens _vdSharpness (\ s a -> s{_vdSharpness = a})++-- | Applies only if your input aspect ratio is different from your output aspect ratio. Use Input cropping rectangle (Crop) to specify the  video area the service will include in the output. This will crop the input source, causing video pixels to be removed on encode. Do not use this setting if you have enabled Stretch to output (stretchToOutput) in your output settings.+vdCrop :: Lens' VideoDescription (Maybe Rectangle)+vdCrop = lens _vdCrop (\ s a -> s{_vdCrop = a})++-- | Use Width (Width) to define the video resolution width, in pixels, for this output. If you don't provide a value here, the service will use the input width.+vdWidth :: Lens' VideoDescription (Maybe Int)+vdWidth = lens _vdWidth (\ s a -> s{_vdWidth = a})++-- | Undocumented member.+vdScalingBehavior :: Lens' VideoDescription (Maybe ScalingBehavior)+vdScalingBehavior = lens _vdScalingBehavior (\ s a -> s{_vdScalingBehavior = a})++-- | Undocumented member.+vdRespondToAfd :: Lens' VideoDescription (Maybe RespondToAfd)+vdRespondToAfd = lens _vdRespondToAfd (\ s a -> s{_vdRespondToAfd = a})++-- | Undocumented member.+vdDropFrameTimecode :: Lens' VideoDescription (Maybe DropFrameTimecode)+vdDropFrameTimecode = lens _vdDropFrameTimecode (\ s a -> s{_vdDropFrameTimecode = a})++-- | Undocumented member.+vdAntiAlias :: Lens' VideoDescription (Maybe AntiAlias)+vdAntiAlias = lens _vdAntiAlias (\ s a -> s{_vdAntiAlias = a})++-- | Applies only if you set AFD Signaling(AfdSignaling) to Fixed (FIXED). Use Fixed (FixedAfd) to specify a four-bit AFD value which the service will write on all  frames of this video output.+vdFixedAfd :: Lens' VideoDescription (Maybe Int)+vdFixedAfd = lens _vdFixedAfd (\ s a -> s{_vdFixedAfd = a})++-- | Undocumented member.+vdColorMetadata :: Lens' VideoDescription (Maybe ColorMetadata)+vdColorMetadata = lens _vdColorMetadata (\ s a -> s{_vdColorMetadata = a})++-- | Undocumented member.+vdCodecSettings :: Lens' VideoDescription (Maybe VideoCodecSettings)+vdCodecSettings = lens _vdCodecSettings (\ s a -> s{_vdCodecSettings = a})++-- | Find additional transcoding features under Preprocessors (VideoPreprocessors). Enable the features at each output individually. These features are disabled by default.+vdVideoPreprocessors :: Lens' VideoDescription (Maybe VideoPreprocessor)+vdVideoPreprocessors = lens _vdVideoPreprocessors (\ s a -> s{_vdVideoPreprocessors = a})++-- | Use Position (Position) to point to a rectangle object to define your position. This setting overrides any other aspect ratio.+vdPosition :: Lens' VideoDescription (Maybe Rectangle)+vdPosition = lens _vdPosition (\ s a -> s{_vdPosition = a})++instance FromJSON VideoDescription where+        parseJSON+          = withObject "VideoDescription"+              (\ x ->+                 VideoDescription' <$>+                   (x .:? "timecodeInsertion") <*> (x .:? "height") <*>+                     (x .:? "afdSignaling")+                     <*> (x .:? "sharpness")+                     <*> (x .:? "crop")+                     <*> (x .:? "width")+                     <*> (x .:? "scalingBehavior")+                     <*> (x .:? "respondToAfd")+                     <*> (x .:? "dropFrameTimecode")+                     <*> (x .:? "antiAlias")+                     <*> (x .:? "fixedAfd")+                     <*> (x .:? "colorMetadata")+                     <*> (x .:? "codecSettings")+                     <*> (x .:? "videoPreprocessors")+                     <*> (x .:? "position"))++instance Hashable VideoDescription where++instance NFData VideoDescription where++instance ToJSON VideoDescription where+        toJSON VideoDescription'{..}+          = object+              (catMaybes+                 [("timecodeInsertion" .=) <$> _vdTimecodeInsertion,+                  ("height" .=) <$> _vdHeight,+                  ("afdSignaling" .=) <$> _vdAfdSignaling,+                  ("sharpness" .=) <$> _vdSharpness,+                  ("crop" .=) <$> _vdCrop, ("width" .=) <$> _vdWidth,+                  ("scalingBehavior" .=) <$> _vdScalingBehavior,+                  ("respondToAfd" .=) <$> _vdRespondToAfd,+                  ("dropFrameTimecode" .=) <$> _vdDropFrameTimecode,+                  ("antiAlias" .=) <$> _vdAntiAlias,+                  ("fixedAfd" .=) <$> _vdFixedAfd,+                  ("colorMetadata" .=) <$> _vdColorMetadata,+                  ("codecSettings" .=) <$> _vdCodecSettings,+                  ("videoPreprocessors" .=) <$> _vdVideoPreprocessors,+                  ("position" .=) <$> _vdPosition])++-- | Contains details about the output's video stream+--+-- /See:/ 'videoDetail' smart constructor.+data VideoDetail = VideoDetail'+  { _vdHeightInPx :: !(Maybe Int)+  , _vdWidthInPx  :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VideoDetail' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vdHeightInPx' - Height in pixels for the output+--+-- * 'vdWidthInPx' - Width in pixels for the output+videoDetail+    :: VideoDetail+videoDetail = VideoDetail' {_vdHeightInPx = Nothing, _vdWidthInPx = Nothing}+++-- | Height in pixels for the output+vdHeightInPx :: Lens' VideoDetail (Maybe Int)+vdHeightInPx = lens _vdHeightInPx (\ s a -> s{_vdHeightInPx = a})++-- | Width in pixels for the output+vdWidthInPx :: Lens' VideoDetail (Maybe Int)+vdWidthInPx = lens _vdWidthInPx (\ s a -> s{_vdWidthInPx = a})++instance FromJSON VideoDetail where+        parseJSON+          = withObject "VideoDetail"+              (\ x ->+                 VideoDetail' <$>+                   (x .:? "heightInPx") <*> (x .:? "widthInPx"))++instance Hashable VideoDetail where++instance NFData VideoDetail where++-- | Find additional transcoding features under Preprocessors (VideoPreprocessors). Enable the features at each output individually. These features are disabled by default.+--+-- /See:/ 'videoPreprocessor' smart constructor.+data VideoPreprocessor = VideoPreprocessor'+  { _vpTimecodeBurnin :: !(Maybe TimecodeBurnin)+  , _vpColorCorrector :: !(Maybe ColorCorrector)+  , _vpDeinterlacer   :: !(Maybe Deinterlacer)+  , _vpNoiseReducer   :: !(Maybe NoiseReducer)+  , _vpImageInserter  :: !(Maybe ImageInserter)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VideoPreprocessor' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vpTimecodeBurnin' - Timecode burn-in (TimecodeBurnIn)--Burns the output timecode and specified prefix into the output.+--+-- * 'vpColorCorrector' - Enable the Color corrector (ColorCorrector) feature if necessary. Enable or disable this feature for each output individually. This setting is disabled by default.+--+-- * 'vpDeinterlacer' - Use Deinterlacer (Deinterlacer) to produce smoother motion and a clearer picture.+--+-- * 'vpNoiseReducer' - Enable the Noise reducer (NoiseReducer) feature to remove noise from your video output if necessary. Enable or disable this feature for each output individually. This setting is disabled by default.+--+-- * 'vpImageInserter' - Enable the Image inserter (ImageInserter) feature to include a graphic overlay on your video. Enable or disable this feature for each output individually. This setting is disabled by default.+videoPreprocessor+    :: VideoPreprocessor+videoPreprocessor =+  VideoPreprocessor'+    { _vpTimecodeBurnin = Nothing+    , _vpColorCorrector = Nothing+    , _vpDeinterlacer = Nothing+    , _vpNoiseReducer = Nothing+    , _vpImageInserter = Nothing+    }+++-- | Timecode burn-in (TimecodeBurnIn)--Burns the output timecode and specified prefix into the output.+vpTimecodeBurnin :: Lens' VideoPreprocessor (Maybe TimecodeBurnin)+vpTimecodeBurnin = lens _vpTimecodeBurnin (\ s a -> s{_vpTimecodeBurnin = a})++-- | Enable the Color corrector (ColorCorrector) feature if necessary. Enable or disable this feature for each output individually. This setting is disabled by default.+vpColorCorrector :: Lens' VideoPreprocessor (Maybe ColorCorrector)+vpColorCorrector = lens _vpColorCorrector (\ s a -> s{_vpColorCorrector = a})++-- | Use Deinterlacer (Deinterlacer) to produce smoother motion and a clearer picture.+vpDeinterlacer :: Lens' VideoPreprocessor (Maybe Deinterlacer)+vpDeinterlacer = lens _vpDeinterlacer (\ s a -> s{_vpDeinterlacer = a})++-- | Enable the Noise reducer (NoiseReducer) feature to remove noise from your video output if necessary. Enable or disable this feature for each output individually. This setting is disabled by default.+vpNoiseReducer :: Lens' VideoPreprocessor (Maybe NoiseReducer)+vpNoiseReducer = lens _vpNoiseReducer (\ s a -> s{_vpNoiseReducer = a})++-- | Enable the Image inserter (ImageInserter) feature to include a graphic overlay on your video. Enable or disable this feature for each output individually. This setting is disabled by default.+vpImageInserter :: Lens' VideoPreprocessor (Maybe ImageInserter)+vpImageInserter = lens _vpImageInserter (\ s a -> s{_vpImageInserter = a})++instance FromJSON VideoPreprocessor where+        parseJSON+          = withObject "VideoPreprocessor"+              (\ x ->+                 VideoPreprocessor' <$>+                   (x .:? "timecodeBurnin") <*> (x .:? "colorCorrector")+                     <*> (x .:? "deinterlacer")+                     <*> (x .:? "noiseReducer")+                     <*> (x .:? "imageInserter"))++instance Hashable VideoPreprocessor where++instance NFData VideoPreprocessor where++instance ToJSON VideoPreprocessor where+        toJSON VideoPreprocessor'{..}+          = object+              (catMaybes+                 [("timecodeBurnin" .=) <$> _vpTimecodeBurnin,+                  ("colorCorrector" .=) <$> _vpColorCorrector,+                  ("deinterlacer" .=) <$> _vpDeinterlacer,+                  ("noiseReducer" .=) <$> _vpNoiseReducer,+                  ("imageInserter" .=) <$> _vpImageInserter])++-- | Selector for video.+--+-- /See:/ 'videoSelector' smart constructor.+data VideoSelector = VideoSelector'+  { _vsProgramNumber   :: !(Maybe Int)+  , _vsColorSpaceUsage :: !(Maybe ColorSpaceUsage)+  , _vsHdr10Metadata   :: !(Maybe Hdr10Metadata)+  , _vsPid             :: !(Maybe Int)+  , _vsColorSpace      :: !(Maybe ColorSpace)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VideoSelector' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vsProgramNumber' - Selects a specific program from within a multi-program transport stream. Note that Quad 4K is not currently supported.+--+-- * 'vsColorSpaceUsage' - Undocumented member.+--+-- * 'vsHdr10Metadata' - Undocumented member.+--+-- * 'vsPid' - Use PID (Pid) to select specific video data from an input file. Specify this value as an integer; the system automatically converts it to the hexidecimal value. For example, 257 selects PID 0x101. A PID, or packet identifier, is an identifier for a set of data in an MPEG-2 transport stream container.+--+-- * 'vsColorSpace' - Undocumented member.+videoSelector+    :: VideoSelector+videoSelector =+  VideoSelector'+    { _vsProgramNumber = Nothing+    , _vsColorSpaceUsage = Nothing+    , _vsHdr10Metadata = Nothing+    , _vsPid = Nothing+    , _vsColorSpace = Nothing+    }+++-- | Selects a specific program from within a multi-program transport stream. Note that Quad 4K is not currently supported.+vsProgramNumber :: Lens' VideoSelector (Maybe Int)+vsProgramNumber = lens _vsProgramNumber (\ s a -> s{_vsProgramNumber = a})++-- | Undocumented member.+vsColorSpaceUsage :: Lens' VideoSelector (Maybe ColorSpaceUsage)+vsColorSpaceUsage = lens _vsColorSpaceUsage (\ s a -> s{_vsColorSpaceUsage = a})++-- | Undocumented member.+vsHdr10Metadata :: Lens' VideoSelector (Maybe Hdr10Metadata)+vsHdr10Metadata = lens _vsHdr10Metadata (\ s a -> s{_vsHdr10Metadata = a})++-- | Use PID (Pid) to select specific video data from an input file. Specify this value as an integer; the system automatically converts it to the hexidecimal value. For example, 257 selects PID 0x101. A PID, or packet identifier, is an identifier for a set of data in an MPEG-2 transport stream container.+vsPid :: Lens' VideoSelector (Maybe Int)+vsPid = lens _vsPid (\ s a -> s{_vsPid = a})++-- | Undocumented member.+vsColorSpace :: Lens' VideoSelector (Maybe ColorSpace)+vsColorSpace = lens _vsColorSpace (\ s a -> s{_vsColorSpace = a})++instance FromJSON VideoSelector where+        parseJSON+          = withObject "VideoSelector"+              (\ x ->+                 VideoSelector' <$>+                   (x .:? "programNumber") <*> (x .:? "colorSpaceUsage")+                     <*> (x .:? "hdr10Metadata")+                     <*> (x .:? "pid")+                     <*> (x .:? "colorSpace"))++instance Hashable VideoSelector where++instance NFData VideoSelector where++instance ToJSON VideoSelector where+        toJSON VideoSelector'{..}+          = object+              (catMaybes+                 [("programNumber" .=) <$> _vsProgramNumber,+                  ("colorSpaceUsage" .=) <$> _vsColorSpaceUsage,+                  ("hdr10Metadata" .=) <$> _vsHdr10Metadata,+                  ("pid" .=) <$> _vsPid,+                  ("colorSpace" .=) <$> _vsColorSpace])++-- | Required when you set (Codec) under (AudioDescriptions)>(CodecSettings) to the value WAV.+--+-- /See:/ 'wavSettings' smart constructor.+data WavSettings = WavSettings'+  { _wsBitDepth   :: !(Maybe Int)+  , _wsChannels   :: !(Maybe Int)+  , _wsSampleRate :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'WavSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'wsBitDepth' - Specify Bit depth (BitDepth), in bits per sample, to choose the encoding quality for this audio track.+--+-- * 'wsChannels' - Set Channels to specify the number of channels in this output audio track. With WAV, valid values 1, 2, 4, and 8. In the console, these values are Mono, Stereo, 4-Channel, and 8-Channel, respectively.+--+-- * 'wsSampleRate' - Sample rate in Hz.+wavSettings+    :: WavSettings+wavSettings =+  WavSettings'+    {_wsBitDepth = Nothing, _wsChannels = Nothing, _wsSampleRate = Nothing}+++-- | Specify Bit depth (BitDepth), in bits per sample, to choose the encoding quality for this audio track.+wsBitDepth :: Lens' WavSettings (Maybe Int)+wsBitDepth = lens _wsBitDepth (\ s a -> s{_wsBitDepth = a})++-- | Set Channels to specify the number of channels in this output audio track. With WAV, valid values 1, 2, 4, and 8. In the console, these values are Mono, Stereo, 4-Channel, and 8-Channel, respectively.+wsChannels :: Lens' WavSettings (Maybe Int)+wsChannels = lens _wsChannels (\ s a -> s{_wsChannels = a})++-- | Sample rate in Hz.+wsSampleRate :: Lens' WavSettings (Maybe Int)+wsSampleRate = lens _wsSampleRate (\ s a -> s{_wsSampleRate = a})++instance FromJSON WavSettings where+        parseJSON+          = withObject "WavSettings"+              (\ x ->+                 WavSettings' <$>+                   (x .:? "bitDepth") <*> (x .:? "channels") <*>+                     (x .:? "sampleRate"))++instance Hashable WavSettings where++instance NFData WavSettings where++instance ToJSON WavSettings where+        toJSON WavSettings'{..}+          = object+              (catMaybes+                 [("bitDepth" .=) <$> _wsBitDepth,+                  ("channels" .=) <$> _wsChannels,+                  ("sampleRate" .=) <$> _wsSampleRate])
+ gen/Network/AWS/MediaConvert/Types/Sum.hs view
@@ -0,0 +1,7338 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE LambdaCase         #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.MediaConvert.Types.Sum+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.MediaConvert.Types.Sum where++import Network.AWS.Prelude++-- | Choose BROADCASTER_MIXED_AD when the input contains pre-mixed main audio + audio description (AD) as a stereo pair. The value for AudioType will be set to 3, which signals to downstream systems that this stream contains "broadcaster mixed AD". Note that the input received by the encoder must contain pre-mixed audio; the encoder does not perform the mixing. When you choose BROADCASTER_MIXED_AD, the encoder ignores any values you provide in AudioType and  FollowInputAudioType. Choose NORMAL when the input does not contain pre-mixed audio + audio description (AD). In this case, the encoder will use any values you provide for AudioType and FollowInputAudioType.+data AacAudioDescriptionBroadcasterMix+  = AADBMBroadcasterMixedAd+  | AADBMNormal+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText AacAudioDescriptionBroadcasterMix where+    parser = takeLowerText >>= \case+        "broadcaster_mixed_ad" -> pure AADBMBroadcasterMixedAd+        "normal" -> pure AADBMNormal+        e -> fromTextError $ "Failure parsing AacAudioDescriptionBroadcasterMix from value: '" <> e+           <> "'. Accepted values: broadcaster_mixed_ad, normal"++instance ToText AacAudioDescriptionBroadcasterMix where+    toText = \case+        AADBMBroadcasterMixedAd -> "BROADCASTER_MIXED_AD"+        AADBMNormal -> "NORMAL"++instance Hashable     AacAudioDescriptionBroadcasterMix+instance NFData       AacAudioDescriptionBroadcasterMix+instance ToByteString AacAudioDescriptionBroadcasterMix+instance ToQuery      AacAudioDescriptionBroadcasterMix+instance ToHeader     AacAudioDescriptionBroadcasterMix++instance ToJSON AacAudioDescriptionBroadcasterMix where+    toJSON = toJSONText++instance FromJSON AacAudioDescriptionBroadcasterMix where+    parseJSON = parseJSONText "AacAudioDescriptionBroadcasterMix"++-- | AAC Profile.+data AacCodecProfile+  = HEV1+  | HEV2+  | LC+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText AacCodecProfile where+    parser = takeLowerText >>= \case+        "hev1" -> pure HEV1+        "hev2" -> pure HEV2+        "lc" -> pure LC+        e -> fromTextError $ "Failure parsing AacCodecProfile from value: '" <> e+           <> "'. Accepted values: hev1, hev2, lc"++instance ToText AacCodecProfile where+    toText = \case+        HEV1 -> "HEV1"+        HEV2 -> "HEV2"+        LC -> "LC"++instance Hashable     AacCodecProfile+instance NFData       AacCodecProfile+instance ToByteString AacCodecProfile+instance ToQuery      AacCodecProfile+instance ToHeader     AacCodecProfile++instance ToJSON AacCodecProfile where+    toJSON = toJSONText++instance FromJSON AacCodecProfile where+    parseJSON = parseJSONText "AacCodecProfile"++-- | Mono (Audio Description), Mono, Stereo, or 5.1 channel layout. Valid values depend on rate control mode and profile. "1.0 - Audio Description (Receiver Mix)" setting receives a stereo description plus control track and emits a mono AAC encode of the description track, with control data emitted in the PES header as per ETSI TS 101 154 Annex E.+data AacCodingMode+  = ACMAdReceiverMix+  | ACMCodingMode10+  | ACMCodingMode11+  | ACMCodingMode20+  | ACMCodingMode51+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText AacCodingMode where+    parser = takeLowerText >>= \case+        "ad_receiver_mix" -> pure ACMAdReceiverMix+        "coding_mode_1_0" -> pure ACMCodingMode10+        "coding_mode_1_1" -> pure ACMCodingMode11+        "coding_mode_2_0" -> pure ACMCodingMode20+        "coding_mode_5_1" -> pure ACMCodingMode51+        e -> fromTextError $ "Failure parsing AacCodingMode from value: '" <> e+           <> "'. Accepted values: ad_receiver_mix, coding_mode_1_0, coding_mode_1_1, coding_mode_2_0, coding_mode_5_1"++instance ToText AacCodingMode where+    toText = \case+        ACMAdReceiverMix -> "AD_RECEIVER_MIX"+        ACMCodingMode10 -> "CODING_MODE_1_0"+        ACMCodingMode11 -> "CODING_MODE_1_1"+        ACMCodingMode20 -> "CODING_MODE_2_0"+        ACMCodingMode51 -> "CODING_MODE_5_1"++instance Hashable     AacCodingMode+instance NFData       AacCodingMode+instance ToByteString AacCodingMode+instance ToQuery      AacCodingMode+instance ToHeader     AacCodingMode++instance ToJSON AacCodingMode where+    toJSON = toJSONText++instance FromJSON AacCodingMode where+    parseJSON = parseJSONText "AacCodingMode"++-- | Rate Control Mode.+data AacRateControlMode+  = ARCMCbr+  | ARCMVbr+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText AacRateControlMode where+    parser = takeLowerText >>= \case+        "cbr" -> pure ARCMCbr+        "vbr" -> pure ARCMVbr+        e -> fromTextError $ "Failure parsing AacRateControlMode from value: '" <> e+           <> "'. Accepted values: cbr, vbr"++instance ToText AacRateControlMode where+    toText = \case+        ARCMCbr -> "CBR"+        ARCMVbr -> "VBR"++instance Hashable     AacRateControlMode+instance NFData       AacRateControlMode+instance ToByteString AacRateControlMode+instance ToQuery      AacRateControlMode+instance ToHeader     AacRateControlMode++instance ToJSON AacRateControlMode where+    toJSON = toJSONText++instance FromJSON AacRateControlMode where+    parseJSON = parseJSONText "AacRateControlMode"++-- | Enables LATM/LOAS AAC output. Note that if you use LATM/LOAS AAC in an output, you must choose "No container" for the output container.+data AacRawFormat+  = ARFLatmLoas+  | ARFNone+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText AacRawFormat where+    parser = takeLowerText >>= \case+        "latm_loas" -> pure ARFLatmLoas+        "none" -> pure ARFNone+        e -> fromTextError $ "Failure parsing AacRawFormat from value: '" <> e+           <> "'. Accepted values: latm_loas, none"++instance ToText AacRawFormat where+    toText = \case+        ARFLatmLoas -> "LATM_LOAS"+        ARFNone -> "NONE"++instance Hashable     AacRawFormat+instance NFData       AacRawFormat+instance ToByteString AacRawFormat+instance ToQuery      AacRawFormat+instance ToHeader     AacRawFormat++instance ToJSON AacRawFormat where+    toJSON = toJSONText++instance FromJSON AacRawFormat where+    parseJSON = parseJSONText "AacRawFormat"++-- | Use MPEG-2 AAC instead of MPEG-4 AAC audio for raw or MPEG-2 Transport Stream containers.+data AacSpecification+  = ASMPEG2+  | ASMPEG4+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText AacSpecification where+    parser = takeLowerText >>= \case+        "mpeg2" -> pure ASMPEG2+        "mpeg4" -> pure ASMPEG4+        e -> fromTextError $ "Failure parsing AacSpecification from value: '" <> e+           <> "'. Accepted values: mpeg2, mpeg4"++instance ToText AacSpecification where+    toText = \case+        ASMPEG2 -> "MPEG2"+        ASMPEG4 -> "MPEG4"++instance Hashable     AacSpecification+instance NFData       AacSpecification+instance ToByteString AacSpecification+instance ToQuery      AacSpecification+instance ToHeader     AacSpecification++instance ToJSON AacSpecification where+    toJSON = toJSONText++instance FromJSON AacSpecification where+    parseJSON = parseJSONText "AacSpecification"++-- | VBR Quality Level - Only used if rate_control_mode is VBR.+data AacVbrQuality+  = AVQHigh+  | AVQLow+  | AVQMediumHigh+  | AVQMediumLow+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText AacVbrQuality where+    parser = takeLowerText >>= \case+        "high" -> pure AVQHigh+        "low" -> pure AVQLow+        "medium_high" -> pure AVQMediumHigh+        "medium_low" -> pure AVQMediumLow+        e -> fromTextError $ "Failure parsing AacVbrQuality from value: '" <> e+           <> "'. Accepted values: high, low, medium_high, medium_low"++instance ToText AacVbrQuality where+    toText = \case+        AVQHigh -> "HIGH"+        AVQLow -> "LOW"+        AVQMediumHigh -> "MEDIUM_HIGH"+        AVQMediumLow -> "MEDIUM_LOW"++instance Hashable     AacVbrQuality+instance NFData       AacVbrQuality+instance ToByteString AacVbrQuality+instance ToQuery      AacVbrQuality+instance ToHeader     AacVbrQuality++instance ToJSON AacVbrQuality where+    toJSON = toJSONText++instance FromJSON AacVbrQuality where+    parseJSON = parseJSONText "AacVbrQuality"++-- | Specifies the "Bitstream Mode" (bsmod) for the emitted AC-3 stream. See ATSC A/52-2012 for background on these values.+data Ac3BitstreamMode+  = Commentary+  | CompleteMain+  | Dialogue+  | Emergency+  | HearingImpaired+  | MusicAndEffects+  | VisuallyImpaired+  | VoiceOver+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Ac3BitstreamMode where+    parser = takeLowerText >>= \case+        "commentary" -> pure Commentary+        "complete_main" -> pure CompleteMain+        "dialogue" -> pure Dialogue+        "emergency" -> pure Emergency+        "hearing_impaired" -> pure HearingImpaired+        "music_and_effects" -> pure MusicAndEffects+        "visually_impaired" -> pure VisuallyImpaired+        "voice_over" -> pure VoiceOver+        e -> fromTextError $ "Failure parsing Ac3BitstreamMode from value: '" <> e+           <> "'. Accepted values: commentary, complete_main, dialogue, emergency, hearing_impaired, music_and_effects, visually_impaired, voice_over"++instance ToText Ac3BitstreamMode where+    toText = \case+        Commentary -> "COMMENTARY"+        CompleteMain -> "COMPLETE_MAIN"+        Dialogue -> "DIALOGUE"+        Emergency -> "EMERGENCY"+        HearingImpaired -> "HEARING_IMPAIRED"+        MusicAndEffects -> "MUSIC_AND_EFFECTS"+        VisuallyImpaired -> "VISUALLY_IMPAIRED"+        VoiceOver -> "VOICE_OVER"++instance Hashable     Ac3BitstreamMode+instance NFData       Ac3BitstreamMode+instance ToByteString Ac3BitstreamMode+instance ToQuery      Ac3BitstreamMode+instance ToHeader     Ac3BitstreamMode++instance ToJSON Ac3BitstreamMode where+    toJSON = toJSONText++instance FromJSON Ac3BitstreamMode where+    parseJSON = parseJSONText "Ac3BitstreamMode"++-- | Dolby Digital coding mode. Determines number of channels.+data Ac3CodingMode+  = CodingMode10+  | CodingMode11+  | CodingMode20+  | CodingMode32Lfe+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Ac3CodingMode where+    parser = takeLowerText >>= \case+        "coding_mode_1_0" -> pure CodingMode10+        "coding_mode_1_1" -> pure CodingMode11+        "coding_mode_2_0" -> pure CodingMode20+        "coding_mode_3_2_lfe" -> pure CodingMode32Lfe+        e -> fromTextError $ "Failure parsing Ac3CodingMode from value: '" <> e+           <> "'. Accepted values: coding_mode_1_0, coding_mode_1_1, coding_mode_2_0, coding_mode_3_2_lfe"++instance ToText Ac3CodingMode where+    toText = \case+        CodingMode10 -> "CODING_MODE_1_0"+        CodingMode11 -> "CODING_MODE_1_1"+        CodingMode20 -> "CODING_MODE_2_0"+        CodingMode32Lfe -> "CODING_MODE_3_2_LFE"++instance Hashable     Ac3CodingMode+instance NFData       Ac3CodingMode+instance ToByteString Ac3CodingMode+instance ToQuery      Ac3CodingMode+instance ToHeader     Ac3CodingMode++instance ToJSON Ac3CodingMode where+    toJSON = toJSONText++instance FromJSON Ac3CodingMode where+    parseJSON = parseJSONText "Ac3CodingMode"++-- | If set to FILM_STANDARD, adds dynamic range compression signaling to the output bitstream as defined in the Dolby Digital specification.+data Ac3DynamicRangeCompressionProfile+  = ADRCPFilmStandard+  | ADRCPNone+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Ac3DynamicRangeCompressionProfile where+    parser = takeLowerText >>= \case+        "film_standard" -> pure ADRCPFilmStandard+        "none" -> pure ADRCPNone+        e -> fromTextError $ "Failure parsing Ac3DynamicRangeCompressionProfile from value: '" <> e+           <> "'. Accepted values: film_standard, none"++instance ToText Ac3DynamicRangeCompressionProfile where+    toText = \case+        ADRCPFilmStandard -> "FILM_STANDARD"+        ADRCPNone -> "NONE"++instance Hashable     Ac3DynamicRangeCompressionProfile+instance NFData       Ac3DynamicRangeCompressionProfile+instance ToByteString Ac3DynamicRangeCompressionProfile+instance ToQuery      Ac3DynamicRangeCompressionProfile+instance ToHeader     Ac3DynamicRangeCompressionProfile++instance ToJSON Ac3DynamicRangeCompressionProfile where+    toJSON = toJSONText++instance FromJSON Ac3DynamicRangeCompressionProfile where+    parseJSON = parseJSONText "Ac3DynamicRangeCompressionProfile"++-- | Applies a 120Hz lowpass filter to the LFE channel prior to encoding. Only valid with 3_2_LFE coding mode.+data Ac3LfeFilter+  = ALFDisabled+  | ALFEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Ac3LfeFilter where+    parser = takeLowerText >>= \case+        "disabled" -> pure ALFDisabled+        "enabled" -> pure ALFEnabled+        e -> fromTextError $ "Failure parsing Ac3LfeFilter from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText Ac3LfeFilter where+    toText = \case+        ALFDisabled -> "DISABLED"+        ALFEnabled -> "ENABLED"++instance Hashable     Ac3LfeFilter+instance NFData       Ac3LfeFilter+instance ToByteString Ac3LfeFilter+instance ToQuery      Ac3LfeFilter+instance ToHeader     Ac3LfeFilter++instance ToJSON Ac3LfeFilter where+    toJSON = toJSONText++instance FromJSON Ac3LfeFilter where+    parseJSON = parseJSONText "Ac3LfeFilter"++-- | When set to FOLLOW_INPUT, encoder metadata will be sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied from one of these streams, then the static metadata settings will be used.+data Ac3MetadataControl+  = AMCFollowInput+  | AMCUseConfigured+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Ac3MetadataControl where+    parser = takeLowerText >>= \case+        "follow_input" -> pure AMCFollowInput+        "use_configured" -> pure AMCUseConfigured+        e -> fromTextError $ "Failure parsing Ac3MetadataControl from value: '" <> e+           <> "'. Accepted values: follow_input, use_configured"++instance ToText Ac3MetadataControl where+    toText = \case+        AMCFollowInput -> "FOLLOW_INPUT"+        AMCUseConfigured -> "USE_CONFIGURED"++instance Hashable     Ac3MetadataControl+instance NFData       Ac3MetadataControl+instance ToByteString Ac3MetadataControl+instance ToQuery      Ac3MetadataControl+instance ToHeader     Ac3MetadataControl++instance ToJSON Ac3MetadataControl where+    toJSON = toJSONText++instance FromJSON Ac3MetadataControl where+    parseJSON = parseJSONText "Ac3MetadataControl"++-- | This setting only applies to H.264 and MPEG2 outputs. Use Insert AFD signaling (AfdSignaling) to whether there are AFD values in the output video data and what those values are. * Choose None to remove all AFD values from this output. * Choose Fixed to ignore input AFD values and instead encode the value specified in the job. * Choose Auto to calculate output AFD values based on the input AFD scaler data.+data AfdSignaling+  = ASAuto+  | ASFixed+  | ASNone+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText AfdSignaling where+    parser = takeLowerText >>= \case+        "auto" -> pure ASAuto+        "fixed" -> pure ASFixed+        "none" -> pure ASNone+        e -> fromTextError $ "Failure parsing AfdSignaling from value: '" <> e+           <> "'. Accepted values: auto, fixed, none"++instance ToText AfdSignaling where+    toText = \case+        ASAuto -> "AUTO"+        ASFixed -> "FIXED"+        ASNone -> "NONE"++instance Hashable     AfdSignaling+instance NFData       AfdSignaling+instance ToByteString AfdSignaling+instance ToQuery      AfdSignaling+instance ToHeader     AfdSignaling++instance ToJSON AfdSignaling where+    toJSON = toJSONText++instance FromJSON AfdSignaling where+    parseJSON = parseJSONText "AfdSignaling"++-- | Enable Anti-alias (AntiAlias) to enhance sharp edges in video output when your input resolution is much larger than your output resolution. Default is enabled.+data AntiAlias+  = AADisabled+  | AAEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText AntiAlias where+    parser = takeLowerText >>= \case+        "disabled" -> pure AADisabled+        "enabled" -> pure AAEnabled+        e -> fromTextError $ "Failure parsing AntiAlias from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText AntiAlias where+    toText = \case+        AADisabled -> "DISABLED"+        AAEnabled -> "ENABLED"++instance Hashable     AntiAlias+instance NFData       AntiAlias+instance ToByteString AntiAlias+instance ToQuery      AntiAlias+instance ToHeader     AntiAlias++instance ToJSON AntiAlias where+    toJSON = toJSONText++instance FromJSON AntiAlias where+    parseJSON = parseJSONText "AntiAlias"++-- | Type of Audio codec.+data AudioCodec+  = AC3+  | Aac+  | Aiff+  | EAC3+  | MP2+  | Passthrough+  | Wav+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText AudioCodec where+    parser = takeLowerText >>= \case+        "ac3" -> pure AC3+        "aac" -> pure Aac+        "aiff" -> pure Aiff+        "eac3" -> pure EAC3+        "mp2" -> pure MP2+        "passthrough" -> pure Passthrough+        "wav" -> pure Wav+        e -> fromTextError $ "Failure parsing AudioCodec from value: '" <> e+           <> "'. Accepted values: ac3, aac, aiff, eac3, mp2, passthrough, wav"++instance ToText AudioCodec where+    toText = \case+        AC3 -> "AC3"+        Aac -> "AAC"+        Aiff -> "AIFF"+        EAC3 -> "EAC3"+        MP2 -> "MP2"+        Passthrough -> "PASSTHROUGH"+        Wav -> "WAV"++instance Hashable     AudioCodec+instance NFData       AudioCodec+instance ToByteString AudioCodec+instance ToQuery      AudioCodec+instance ToHeader     AudioCodec++instance ToJSON AudioCodec where+    toJSON = toJSONText++instance FromJSON AudioCodec where+    parseJSON = parseJSONText "AudioCodec"++-- | When an "Audio Description":#audio_description specifies an AudioSelector or AudioSelectorGroup  for which no matching source is found in the input, then the audio selector marked as DEFAULT will be used.  If none are marked as default, silence will be inserted for the duration of the input.+data AudioDefaultSelection+  = Default+  | NotDefault+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText AudioDefaultSelection where+    parser = takeLowerText >>= \case+        "default" -> pure Default+        "not_default" -> pure NotDefault+        e -> fromTextError $ "Failure parsing AudioDefaultSelection from value: '" <> e+           <> "'. Accepted values: default, not_default"++instance ToText AudioDefaultSelection where+    toText = \case+        Default -> "DEFAULT"+        NotDefault -> "NOT_DEFAULT"++instance Hashable     AudioDefaultSelection+instance NFData       AudioDefaultSelection+instance ToByteString AudioDefaultSelection+instance ToQuery      AudioDefaultSelection+instance ToHeader     AudioDefaultSelection++instance ToJSON AudioDefaultSelection where+    toJSON = toJSONText++instance FromJSON AudioDefaultSelection where+    parseJSON = parseJSONText "AudioDefaultSelection"++-- | Choosing FOLLOW_INPUT will cause the ISO 639 language code of the output to follow the ISO 639 language code of the input. The language specified for languageCode' will be used when USE_CONFIGURED is selected or when FOLLOW_INPUT is selected but there is no ISO 639 language code specified by the input.+data AudioLanguageCodeControl+  = FollowInput+  | UseConfigured+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText AudioLanguageCodeControl where+    parser = takeLowerText >>= \case+        "follow_input" -> pure FollowInput+        "use_configured" -> pure UseConfigured+        e -> fromTextError $ "Failure parsing AudioLanguageCodeControl from value: '" <> e+           <> "'. Accepted values: follow_input, use_configured"++instance ToText AudioLanguageCodeControl where+    toText = \case+        FollowInput -> "FOLLOW_INPUT"+        UseConfigured -> "USE_CONFIGURED"++instance Hashable     AudioLanguageCodeControl+instance NFData       AudioLanguageCodeControl+instance ToByteString AudioLanguageCodeControl+instance ToQuery      AudioLanguageCodeControl+instance ToHeader     AudioLanguageCodeControl++instance ToJSON AudioLanguageCodeControl where+    toJSON = toJSONText++instance FromJSON AudioLanguageCodeControl where+    parseJSON = parseJSONText "AudioLanguageCodeControl"++-- | Audio normalization algorithm to use. 1770-1 conforms to the CALM Act specification, 1770-2 conforms to the EBU R-128 specification.+data AudioNormalizationAlgorithm+  = ItuBs17701+  | ItuBs17702+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText AudioNormalizationAlgorithm where+    parser = takeLowerText >>= \case+        "itu_bs_1770_1" -> pure ItuBs17701+        "itu_bs_1770_2" -> pure ItuBs17702+        e -> fromTextError $ "Failure parsing AudioNormalizationAlgorithm from value: '" <> e+           <> "'. Accepted values: itu_bs_1770_1, itu_bs_1770_2"++instance ToText AudioNormalizationAlgorithm where+    toText = \case+        ItuBs17701 -> "ITU_BS_1770_1"+        ItuBs17702 -> "ITU_BS_1770_2"++instance Hashable     AudioNormalizationAlgorithm+instance NFData       AudioNormalizationAlgorithm+instance ToByteString AudioNormalizationAlgorithm+instance ToQuery      AudioNormalizationAlgorithm+instance ToHeader     AudioNormalizationAlgorithm++instance ToJSON AudioNormalizationAlgorithm where+    toJSON = toJSONText++instance FromJSON AudioNormalizationAlgorithm where+    parseJSON = parseJSONText "AudioNormalizationAlgorithm"++-- | When enabled the output audio is corrected using the chosen algorithm. If disabled, the audio will be measured but not adjusted.+data AudioNormalizationAlgorithmControl+  = CorrectAudio+  | MeasureOnly+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText AudioNormalizationAlgorithmControl where+    parser = takeLowerText >>= \case+        "correct_audio" -> pure CorrectAudio+        "measure_only" -> pure MeasureOnly+        e -> fromTextError $ "Failure parsing AudioNormalizationAlgorithmControl from value: '" <> e+           <> "'. Accepted values: correct_audio, measure_only"++instance ToText AudioNormalizationAlgorithmControl where+    toText = \case+        CorrectAudio -> "CORRECT_AUDIO"+        MeasureOnly -> "MEASURE_ONLY"++instance Hashable     AudioNormalizationAlgorithmControl+instance NFData       AudioNormalizationAlgorithmControl+instance ToByteString AudioNormalizationAlgorithmControl+instance ToQuery      AudioNormalizationAlgorithmControl+instance ToHeader     AudioNormalizationAlgorithmControl++instance ToJSON AudioNormalizationAlgorithmControl where+    toJSON = toJSONText++instance FromJSON AudioNormalizationAlgorithmControl where+    parseJSON = parseJSONText "AudioNormalizationAlgorithmControl"++-- | If set to LOG, log each output's audio track loudness to a CSV file.+data AudioNormalizationLoudnessLogging+  = DontLog+  | Log+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText AudioNormalizationLoudnessLogging where+    parser = takeLowerText >>= \case+        "dont_log" -> pure DontLog+        "log" -> pure Log+        e -> fromTextError $ "Failure parsing AudioNormalizationLoudnessLogging from value: '" <> e+           <> "'. Accepted values: dont_log, log"++instance ToText AudioNormalizationLoudnessLogging where+    toText = \case+        DontLog -> "DONT_LOG"+        Log -> "LOG"++instance Hashable     AudioNormalizationLoudnessLogging+instance NFData       AudioNormalizationLoudnessLogging+instance ToByteString AudioNormalizationLoudnessLogging+instance ToQuery      AudioNormalizationLoudnessLogging+instance ToHeader     AudioNormalizationLoudnessLogging++instance ToJSON AudioNormalizationLoudnessLogging where+    toJSON = toJSONText++instance FromJSON AudioNormalizationLoudnessLogging where+    parseJSON = parseJSONText "AudioNormalizationLoudnessLogging"++-- | If set to TRUE_PEAK, calculate and log the TruePeak for each output's audio track loudness.+data AudioNormalizationPeakCalculation+  = ANPCNone+  | ANPCTruePeak+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText AudioNormalizationPeakCalculation where+    parser = takeLowerText >>= \case+        "none" -> pure ANPCNone+        "true_peak" -> pure ANPCTruePeak+        e -> fromTextError $ "Failure parsing AudioNormalizationPeakCalculation from value: '" <> e+           <> "'. Accepted values: none, true_peak"++instance ToText AudioNormalizationPeakCalculation where+    toText = \case+        ANPCNone -> "NONE"+        ANPCTruePeak -> "TRUE_PEAK"++instance Hashable     AudioNormalizationPeakCalculation+instance NFData       AudioNormalizationPeakCalculation+instance ToByteString AudioNormalizationPeakCalculation+instance ToQuery      AudioNormalizationPeakCalculation+instance ToHeader     AudioNormalizationPeakCalculation++instance ToJSON AudioNormalizationPeakCalculation where+    toJSON = toJSONText++instance FromJSON AudioNormalizationPeakCalculation where+    parseJSON = parseJSONText "AudioNormalizationPeakCalculation"++-- | Specifies the type of the audio selector.+data AudioSelectorType+  = LanguageCode+  | Pid+  | Track+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText AudioSelectorType where+    parser = takeLowerText >>= \case+        "language_code" -> pure LanguageCode+        "pid" -> pure Pid+        "track" -> pure Track+        e -> fromTextError $ "Failure parsing AudioSelectorType from value: '" <> e+           <> "'. Accepted values: language_code, pid, track"++instance ToText AudioSelectorType where+    toText = \case+        LanguageCode -> "LANGUAGE_CODE"+        Pid -> "PID"+        Track -> "TRACK"++instance Hashable     AudioSelectorType+instance NFData       AudioSelectorType+instance ToByteString AudioSelectorType+instance ToQuery      AudioSelectorType+instance ToHeader     AudioSelectorType++instance ToJSON AudioSelectorType where+    toJSON = toJSONText++instance FromJSON AudioSelectorType where+    parseJSON = parseJSONText "AudioSelectorType"++-- | When set to FOLLOW_INPUT, if the input contains an ISO 639 audio_type, then that value is passed through to the output. If the input contains no ISO 639 audio_type, the value in Audio Type is included in the output. Otherwise the value in Audio Type is included in the output. Note that this field and audioType are both ignored if audioDescriptionBroadcasterMix is set to BROADCASTER_MIXED_AD.+data AudioTypeControl+  = ATCFollowInput+  | ATCUseConfigured+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText AudioTypeControl where+    parser = takeLowerText >>= \case+        "follow_input" -> pure ATCFollowInput+        "use_configured" -> pure ATCUseConfigured+        e -> fromTextError $ "Failure parsing AudioTypeControl from value: '" <> e+           <> "'. Accepted values: follow_input, use_configured"++instance ToText AudioTypeControl where+    toText = \case+        ATCFollowInput -> "FOLLOW_INPUT"+        ATCUseConfigured -> "USE_CONFIGURED"++instance Hashable     AudioTypeControl+instance NFData       AudioTypeControl+instance ToByteString AudioTypeControl+instance ToQuery      AudioTypeControl+instance ToHeader     AudioTypeControl++instance ToJSON AudioTypeControl where+    toJSON = toJSONText++instance FromJSON AudioTypeControl where+    parseJSON = parseJSONText "AudioTypeControl"++-- | If no explicit x_position or y_position is provided, setting alignment to centered will place the captions at the bottom center of the output. Similarly, setting a left alignment will align captions to the bottom left of the output. If x and y positions are given in conjunction with the alignment parameter, the font will be justified (either left or centered) relative to those coordinates. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.+data BurninSubtitleAlignment+  = BSACentered+  | BSALeft'+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText BurninSubtitleAlignment where+    parser = takeLowerText >>= \case+        "centered" -> pure BSACentered+        "left" -> pure BSALeft'+        e -> fromTextError $ "Failure parsing BurninSubtitleAlignment from value: '" <> e+           <> "'. Accepted values: centered, left"++instance ToText BurninSubtitleAlignment where+    toText = \case+        BSACentered -> "CENTERED"+        BSALeft' -> "LEFT"++instance Hashable     BurninSubtitleAlignment+instance NFData       BurninSubtitleAlignment+instance ToByteString BurninSubtitleAlignment+instance ToQuery      BurninSubtitleAlignment+instance ToHeader     BurninSubtitleAlignment++instance ToJSON BurninSubtitleAlignment where+    toJSON = toJSONText++instance FromJSON BurninSubtitleAlignment where+    parseJSON = parseJSONText "BurninSubtitleAlignment"++-- | Specifies the color of the rectangle behind the captions.+--+-- All burn-in and DVB-Sub font settings must match.+data BurninSubtitleBackgroundColor+  = BSBCBlack+  | BSBCNone+  | BSBCWhite+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText BurninSubtitleBackgroundColor where+    parser = takeLowerText >>= \case+        "black" -> pure BSBCBlack+        "none" -> pure BSBCNone+        "white" -> pure BSBCWhite+        e -> fromTextError $ "Failure parsing BurninSubtitleBackgroundColor from value: '" <> e+           <> "'. Accepted values: black, none, white"++instance ToText BurninSubtitleBackgroundColor where+    toText = \case+        BSBCBlack -> "BLACK"+        BSBCNone -> "NONE"+        BSBCWhite -> "WHITE"++instance Hashable     BurninSubtitleBackgroundColor+instance NFData       BurninSubtitleBackgroundColor+instance ToByteString BurninSubtitleBackgroundColor+instance ToQuery      BurninSubtitleBackgroundColor+instance ToHeader     BurninSubtitleBackgroundColor++instance ToJSON BurninSubtitleBackgroundColor where+    toJSON = toJSONText++instance FromJSON BurninSubtitleBackgroundColor where+    parseJSON = parseJSONText "BurninSubtitleBackgroundColor"++-- | Specifies the color of the burned-in captions. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.+data BurninSubtitleFontColor+  = BSFCBlack+  | BSFCBlue+  | BSFCGreen+  | BSFCRed+  | BSFCWhite+  | BSFCYellow+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText BurninSubtitleFontColor where+    parser = takeLowerText >>= \case+        "black" -> pure BSFCBlack+        "blue" -> pure BSFCBlue+        "green" -> pure BSFCGreen+        "red" -> pure BSFCRed+        "white" -> pure BSFCWhite+        "yellow" -> pure BSFCYellow+        e -> fromTextError $ "Failure parsing BurninSubtitleFontColor from value: '" <> e+           <> "'. Accepted values: black, blue, green, red, white, yellow"++instance ToText BurninSubtitleFontColor where+    toText = \case+        BSFCBlack -> "BLACK"+        BSFCBlue -> "BLUE"+        BSFCGreen -> "GREEN"+        BSFCRed -> "RED"+        BSFCWhite -> "WHITE"+        BSFCYellow -> "YELLOW"++instance Hashable     BurninSubtitleFontColor+instance NFData       BurninSubtitleFontColor+instance ToByteString BurninSubtitleFontColor+instance ToQuery      BurninSubtitleFontColor+instance ToHeader     BurninSubtitleFontColor++instance ToJSON BurninSubtitleFontColor where+    toJSON = toJSONText++instance FromJSON BurninSubtitleFontColor where+    parseJSON = parseJSONText "BurninSubtitleFontColor"++-- | Specifies font outline color. This option is not valid for source captions that are either 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.+data BurninSubtitleOutlineColor+  = BSOCBlack+  | BSOCBlue+  | BSOCGreen+  | BSOCRed+  | BSOCWhite+  | BSOCYellow+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText BurninSubtitleOutlineColor where+    parser = takeLowerText >>= \case+        "black" -> pure BSOCBlack+        "blue" -> pure BSOCBlue+        "green" -> pure BSOCGreen+        "red" -> pure BSOCRed+        "white" -> pure BSOCWhite+        "yellow" -> pure BSOCYellow+        e -> fromTextError $ "Failure parsing BurninSubtitleOutlineColor from value: '" <> e+           <> "'. Accepted values: black, blue, green, red, white, yellow"++instance ToText BurninSubtitleOutlineColor where+    toText = \case+        BSOCBlack -> "BLACK"+        BSOCBlue -> "BLUE"+        BSOCGreen -> "GREEN"+        BSOCRed -> "RED"+        BSOCWhite -> "WHITE"+        BSOCYellow -> "YELLOW"++instance Hashable     BurninSubtitleOutlineColor+instance NFData       BurninSubtitleOutlineColor+instance ToByteString BurninSubtitleOutlineColor+instance ToQuery      BurninSubtitleOutlineColor+instance ToHeader     BurninSubtitleOutlineColor++instance ToJSON BurninSubtitleOutlineColor where+    toJSON = toJSONText++instance FromJSON BurninSubtitleOutlineColor where+    parseJSON = parseJSONText "BurninSubtitleOutlineColor"++-- | Specifies the color of the shadow cast by the captions.+--+-- All burn-in and DVB-Sub font settings must match.+data BurninSubtitleShadowColor+  = BSSCBlack+  | BSSCNone+  | BSSCWhite+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText BurninSubtitleShadowColor where+    parser = takeLowerText >>= \case+        "black" -> pure BSSCBlack+        "none" -> pure BSSCNone+        "white" -> pure BSSCWhite+        e -> fromTextError $ "Failure parsing BurninSubtitleShadowColor from value: '" <> e+           <> "'. Accepted values: black, none, white"++instance ToText BurninSubtitleShadowColor where+    toText = \case+        BSSCBlack -> "BLACK"+        BSSCNone -> "NONE"+        BSSCWhite -> "WHITE"++instance Hashable     BurninSubtitleShadowColor+instance NFData       BurninSubtitleShadowColor+instance ToByteString BurninSubtitleShadowColor+instance ToQuery      BurninSubtitleShadowColor+instance ToHeader     BurninSubtitleShadowColor++instance ToJSON BurninSubtitleShadowColor where+    toJSON = toJSONText++instance FromJSON BurninSubtitleShadowColor where+    parseJSON = parseJSONText "BurninSubtitleShadowColor"++-- | Controls whether a fixed grid size or proportional font spacing will be used to generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in outputs.+data BurninSubtitleTeletextSpacing+  = BSTSFixedGrid+  | BSTSProportional+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText BurninSubtitleTeletextSpacing where+    parser = takeLowerText >>= \case+        "fixed_grid" -> pure BSTSFixedGrid+        "proportional" -> pure BSTSProportional+        e -> fromTextError $ "Failure parsing BurninSubtitleTeletextSpacing from value: '" <> e+           <> "'. Accepted values: fixed_grid, proportional"++instance ToText BurninSubtitleTeletextSpacing where+    toText = \case+        BSTSFixedGrid -> "FIXED_GRID"+        BSTSProportional -> "PROPORTIONAL"++instance Hashable     BurninSubtitleTeletextSpacing+instance NFData       BurninSubtitleTeletextSpacing+instance ToByteString BurninSubtitleTeletextSpacing+instance ToQuery      BurninSubtitleTeletextSpacing+instance ToHeader     BurninSubtitleTeletextSpacing++instance ToJSON BurninSubtitleTeletextSpacing where+    toJSON = toJSONText++instance FromJSON BurninSubtitleTeletextSpacing where+    parseJSON = parseJSONText "BurninSubtitleTeletextSpacing"++-- | Type of Caption output, including Burn-In, Embedded, SCC, SRT, TTML, WebVTT, DVB-Sub, Teletext.+data CaptionDestinationType+  = CDTBurnIn+  | CDTDvbSub+  | CDTEmbedded+  | CDTScc+  | CDTSrt+  | CDTTeletext+  | CDTTtml+  | CDTWebvtt+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText CaptionDestinationType where+    parser = takeLowerText >>= \case+        "burn_in" -> pure CDTBurnIn+        "dvb_sub" -> pure CDTDvbSub+        "embedded" -> pure CDTEmbedded+        "scc" -> pure CDTScc+        "srt" -> pure CDTSrt+        "teletext" -> pure CDTTeletext+        "ttml" -> pure CDTTtml+        "webvtt" -> pure CDTWebvtt+        e -> fromTextError $ "Failure parsing CaptionDestinationType from value: '" <> e+           <> "'. Accepted values: burn_in, dvb_sub, embedded, scc, srt, teletext, ttml, webvtt"++instance ToText CaptionDestinationType where+    toText = \case+        CDTBurnIn -> "BURN_IN"+        CDTDvbSub -> "DVB_SUB"+        CDTEmbedded -> "EMBEDDED"+        CDTScc -> "SCC"+        CDTSrt -> "SRT"+        CDTTeletext -> "TELETEXT"+        CDTTtml -> "TTML"+        CDTWebvtt -> "WEBVTT"++instance Hashable     CaptionDestinationType+instance NFData       CaptionDestinationType+instance ToByteString CaptionDestinationType+instance ToQuery      CaptionDestinationType+instance ToHeader     CaptionDestinationType++instance ToJSON CaptionDestinationType where+    toJSON = toJSONText++instance FromJSON CaptionDestinationType where+    parseJSON = parseJSONText "CaptionDestinationType"++-- | Use Source (SourceType) to identify the format of your input captions.  The service cannot auto-detect caption format.+data CaptionSourceType+  = CSTAncillary+  | CSTDvbSub+  | CSTEmbedded+  | CSTNullSource+  | CSTScc+  | CSTSrt+  | CSTStl+  | CSTTeletext+  | CSTTtml+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText CaptionSourceType where+    parser = takeLowerText >>= \case+        "ancillary" -> pure CSTAncillary+        "dvb_sub" -> pure CSTDvbSub+        "embedded" -> pure CSTEmbedded+        "null_source" -> pure CSTNullSource+        "scc" -> pure CSTScc+        "srt" -> pure CSTSrt+        "stl" -> pure CSTStl+        "teletext" -> pure CSTTeletext+        "ttml" -> pure CSTTtml+        e -> fromTextError $ "Failure parsing CaptionSourceType from value: '" <> e+           <> "'. Accepted values: ancillary, dvb_sub, embedded, null_source, scc, srt, stl, teletext, ttml"++instance ToText CaptionSourceType where+    toText = \case+        CSTAncillary -> "ANCILLARY"+        CSTDvbSub -> "DVB_SUB"+        CSTEmbedded -> "EMBEDDED"+        CSTNullSource -> "NULL_SOURCE"+        CSTScc -> "SCC"+        CSTSrt -> "SRT"+        CSTStl -> "STL"+        CSTTeletext -> "TELETEXT"+        CSTTtml -> "TTML"++instance Hashable     CaptionSourceType+instance NFData       CaptionSourceType+instance ToByteString CaptionSourceType+instance ToQuery      CaptionSourceType+instance ToHeader     CaptionSourceType++instance ToJSON CaptionSourceType where+    toJSON = toJSONText++instance FromJSON CaptionSourceType where+    parseJSON = parseJSONText "CaptionSourceType"++-- | Enable Insert color metadata (ColorMetadata) to include color metadata in this output. This setting is enabled by default.+data ColorMetadata+  = Ignore+  | Insert+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ColorMetadata where+    parser = takeLowerText >>= \case+        "ignore" -> pure Ignore+        "insert" -> pure Insert+        e -> fromTextError $ "Failure parsing ColorMetadata from value: '" <> e+           <> "'. Accepted values: ignore, insert"++instance ToText ColorMetadata where+    toText = \case+        Ignore -> "IGNORE"+        Insert -> "INSERT"++instance Hashable     ColorMetadata+instance NFData       ColorMetadata+instance ToByteString ColorMetadata+instance ToQuery      ColorMetadata+instance ToHeader     ColorMetadata++instance ToJSON ColorMetadata where+    toJSON = toJSONText++instance FromJSON ColorMetadata where+    parseJSON = parseJSONText "ColorMetadata"++-- | Specifies the colorspace of an input. This setting works in tandem with "Color Corrector":#color_corrector > color_space_conversion to determine if any conversion will be performed.+data ColorSpace+  = Follow+  | HDR10+  | Hlg2020+  | Rec601+  | Rec709+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ColorSpace where+    parser = takeLowerText >>= \case+        "follow" -> pure Follow+        "hdr10" -> pure HDR10+        "hlg_2020" -> pure Hlg2020+        "rec_601" -> pure Rec601+        "rec_709" -> pure Rec709+        e -> fromTextError $ "Failure parsing ColorSpace from value: '" <> e+           <> "'. Accepted values: follow, hdr10, hlg_2020, rec_601, rec_709"++instance ToText ColorSpace where+    toText = \case+        Follow -> "FOLLOW"+        HDR10 -> "HDR10"+        Hlg2020 -> "HLG_2020"+        Rec601 -> "REC_601"+        Rec709 -> "REC_709"++instance Hashable     ColorSpace+instance NFData       ColorSpace+instance ToByteString ColorSpace+instance ToQuery      ColorSpace+instance ToHeader     ColorSpace++instance ToJSON ColorSpace where+    toJSON = toJSONText++instance FromJSON ColorSpace where+    parseJSON = parseJSONText "ColorSpace"++-- | Determines if colorspace conversion will be performed. If set to _None_, no conversion will be performed. If _Force 601_ or _Force 709_ are selected, conversion will be performed for inputs with differing colorspaces. An input's colorspace can be specified explicitly in the "Video Selector":#inputs-video_selector if necessary.+data ColorSpaceConversion+  = CSCForce601+  | CSCForce709+  | CSCForceHDR10+  | CSCForceHlg2020+  | CSCNone+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ColorSpaceConversion where+    parser = takeLowerText >>= \case+        "force_601" -> pure CSCForce601+        "force_709" -> pure CSCForce709+        "force_hdr10" -> pure CSCForceHDR10+        "force_hlg_2020" -> pure CSCForceHlg2020+        "none" -> pure CSCNone+        e -> fromTextError $ "Failure parsing ColorSpaceConversion from value: '" <> e+           <> "'. Accepted values: force_601, force_709, force_hdr10, force_hlg_2020, none"++instance ToText ColorSpaceConversion where+    toText = \case+        CSCForce601 -> "FORCE_601"+        CSCForce709 -> "FORCE_709"+        CSCForceHDR10 -> "FORCE_HDR10"+        CSCForceHlg2020 -> "FORCE_HLG_2020"+        CSCNone -> "NONE"++instance Hashable     ColorSpaceConversion+instance NFData       ColorSpaceConversion+instance ToByteString ColorSpaceConversion+instance ToQuery      ColorSpaceConversion+instance ToHeader     ColorSpaceConversion++instance ToJSON ColorSpaceConversion where+    toJSON = toJSONText++instance FromJSON ColorSpaceConversion where+    parseJSON = parseJSONText "ColorSpaceConversion"++-- | There are two sources for color metadata, the input file and the job configuration. This enum controls which takes precedence. FORCE: System will use color metadata supplied by user, if any. If the user does not supply color metadata the system will use data from the source. FALLBACK: System will use color metadata from the source. If source has no color metadata, the system will use user-supplied color metadata values if available.+data ColorSpaceUsage+  = Fallback+  | Force+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ColorSpaceUsage where+    parser = takeLowerText >>= \case+        "fallback" -> pure Fallback+        "force" -> pure Force+        e -> fromTextError $ "Failure parsing ColorSpaceUsage from value: '" <> e+           <> "'. Accepted values: fallback, force"++instance ToText ColorSpaceUsage where+    toText = \case+        Fallback -> "FALLBACK"+        Force -> "FORCE"++instance Hashable     ColorSpaceUsage+instance NFData       ColorSpaceUsage+instance ToByteString ColorSpaceUsage+instance ToQuery      ColorSpaceUsage+instance ToHeader     ColorSpaceUsage++instance ToJSON ColorSpaceUsage where+    toJSON = toJSONText++instance FromJSON ColorSpaceUsage where+    parseJSON = parseJSONText "ColorSpaceUsage"++-- | Container for this output. Some containers require a container settings object. If not specified, the default object will be created.+data ContainerType+  = F4V+  | Ismv+  | M2TS+  | M3U8+  | MP4+  | Mov+  | Mpd+  | Mxf+  | Raw+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ContainerType where+    parser = takeLowerText >>= \case+        "f4v" -> pure F4V+        "ismv" -> pure Ismv+        "m2ts" -> pure M2TS+        "m3u8" -> pure M3U8+        "mp4" -> pure MP4+        "mov" -> pure Mov+        "mpd" -> pure Mpd+        "mxf" -> pure Mxf+        "raw" -> pure Raw+        e -> fromTextError $ "Failure parsing ContainerType from value: '" <> e+           <> "'. Accepted values: f4v, ismv, m2ts, m3u8, mp4, mov, mpd, mxf, raw"++instance ToText ContainerType where+    toText = \case+        F4V -> "F4V"+        Ismv -> "ISMV"+        M2TS -> "M2TS"+        M3U8 -> "M3U8"+        MP4 -> "MP4"+        Mov -> "MOV"+        Mpd -> "MPD"+        Mxf -> "MXF"+        Raw -> "RAW"++instance Hashable     ContainerType+instance NFData       ContainerType+instance ToByteString ContainerType+instance ToQuery      ContainerType+instance ToHeader     ContainerType++instance ToJSON ContainerType where+    toJSON = toJSONText++instance FromJSON ContainerType where+    parseJSON = parseJSONText "ContainerType"++-- | Supports HbbTV specification as indicated+data DashIsoHbbtvCompliance+  = DIHCHbbtv15+  | DIHCNone+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText DashIsoHbbtvCompliance where+    parser = takeLowerText >>= \case+        "hbbtv_1_5" -> pure DIHCHbbtv15+        "none" -> pure DIHCNone+        e -> fromTextError $ "Failure parsing DashIsoHbbtvCompliance from value: '" <> e+           <> "'. Accepted values: hbbtv_1_5, none"++instance ToText DashIsoHbbtvCompliance where+    toText = \case+        DIHCHbbtv15 -> "HBBTV_1_5"+        DIHCNone -> "NONE"++instance Hashable     DashIsoHbbtvCompliance+instance NFData       DashIsoHbbtvCompliance+instance ToByteString DashIsoHbbtvCompliance+instance ToQuery      DashIsoHbbtvCompliance+instance ToHeader     DashIsoHbbtvCompliance++instance ToJSON DashIsoHbbtvCompliance where+    toJSON = toJSONText++instance FromJSON DashIsoHbbtvCompliance where+    parseJSON = parseJSONText "DashIsoHbbtvCompliance"++-- | When set to SINGLE_FILE, a single output file is generated, which is internally segmented using the Fragment Length and Segment Length. When set to SEGMENTED_FILES, separate segment files will be created.+data DashIsoSegmentControl+  = DISCSegmentedFiles+  | DISCSingleFile+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText DashIsoSegmentControl where+    parser = takeLowerText >>= \case+        "segmented_files" -> pure DISCSegmentedFiles+        "single_file" -> pure DISCSingleFile+        e -> fromTextError $ "Failure parsing DashIsoSegmentControl from value: '" <> e+           <> "'. Accepted values: segmented_files, single_file"++instance ToText DashIsoSegmentControl where+    toText = \case+        DISCSegmentedFiles -> "SEGMENTED_FILES"+        DISCSingleFile -> "SINGLE_FILE"++instance Hashable     DashIsoSegmentControl+instance NFData       DashIsoSegmentControl+instance ToByteString DashIsoSegmentControl+instance ToQuery      DashIsoSegmentControl+instance ToHeader     DashIsoSegmentControl++instance ToJSON DashIsoSegmentControl where+    toJSON = toJSONText++instance FromJSON DashIsoSegmentControl where+    parseJSON = parseJSONText "DashIsoSegmentControl"++-- | Only applies when you set Deinterlacer (DeinterlaceMode) to Deinterlace (DEINTERLACE) or Adaptive (ADAPTIVE). Motion adaptive interpolate (INTERPOLATE) produces sharper pictures, while blend (BLEND) produces smoother motion. Use (INTERPOLATE_TICKER) OR (BLEND_TICKER) if your source file includes a ticker, such as a scrolling headline at the bottom of the frame.+data DeinterlaceAlgorithm+  = DABlend+  | DABlendTicker+  | DAInterpolate+  | DAInterpolateTicker+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText DeinterlaceAlgorithm where+    parser = takeLowerText >>= \case+        "blend" -> pure DABlend+        "blend_ticker" -> pure DABlendTicker+        "interpolate" -> pure DAInterpolate+        "interpolate_ticker" -> pure DAInterpolateTicker+        e -> fromTextError $ "Failure parsing DeinterlaceAlgorithm from value: '" <> e+           <> "'. Accepted values: blend, blend_ticker, interpolate, interpolate_ticker"++instance ToText DeinterlaceAlgorithm where+    toText = \case+        DABlend -> "BLEND"+        DABlendTicker -> "BLEND_TICKER"+        DAInterpolate -> "INTERPOLATE"+        DAInterpolateTicker -> "INTERPOLATE_TICKER"++instance Hashable     DeinterlaceAlgorithm+instance NFData       DeinterlaceAlgorithm+instance ToByteString DeinterlaceAlgorithm+instance ToQuery      DeinterlaceAlgorithm+instance ToHeader     DeinterlaceAlgorithm++instance ToJSON DeinterlaceAlgorithm where+    toJSON = toJSONText++instance FromJSON DeinterlaceAlgorithm where+    parseJSON = parseJSONText "DeinterlaceAlgorithm"++-- | - When set to NORMAL (default), the deinterlacer does not convert frames that are tagged  in metadata as progressive. It will only convert those that are tagged as some other type. - When set to FORCE_ALL_FRAMES, the deinterlacer converts every frame to progressive - even those that are already tagged as progressive. Turn Force mode on only if there is  a good chance that the metadata has tagged frames as progressive when they are not  progressive. Do not turn on otherwise; processing frames that are already progressive  into progressive will probably result in lower quality video.+data DeinterlacerControl+  = ForceAllFrames+  | Normal+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText DeinterlacerControl where+    parser = takeLowerText >>= \case+        "force_all_frames" -> pure ForceAllFrames+        "normal" -> pure Normal+        e -> fromTextError $ "Failure parsing DeinterlacerControl from value: '" <> e+           <> "'. Accepted values: force_all_frames, normal"++instance ToText DeinterlacerControl where+    toText = \case+        ForceAllFrames -> "FORCE_ALL_FRAMES"+        Normal -> "NORMAL"++instance Hashable     DeinterlacerControl+instance NFData       DeinterlacerControl+instance ToByteString DeinterlacerControl+instance ToQuery      DeinterlacerControl+instance ToHeader     DeinterlacerControl++instance ToJSON DeinterlacerControl where+    toJSON = toJSONText++instance FromJSON DeinterlacerControl where+    parseJSON = parseJSONText "DeinterlacerControl"++-- | Use Deinterlacer (DeinterlaceMode) to choose how the service will do deinterlacing. Default is Deinterlace. - Deinterlace converts interlaced to progressive. - Inverse telecine converts Hard Telecine 29.97i to progressive 23.976p. - Adaptive auto-detects and converts to progressive.+data DeinterlacerMode+  = Adaptive+  | Deinterlace+  | InverseTelecine+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText DeinterlacerMode where+    parser = takeLowerText >>= \case+        "adaptive" -> pure Adaptive+        "deinterlace" -> pure Deinterlace+        "inverse_telecine" -> pure InverseTelecine+        e -> fromTextError $ "Failure parsing DeinterlacerMode from value: '" <> e+           <> "'. Accepted values: adaptive, deinterlace, inverse_telecine"++instance ToText DeinterlacerMode where+    toText = \case+        Adaptive -> "ADAPTIVE"+        Deinterlace -> "DEINTERLACE"+        InverseTelecine -> "INVERSE_TELECINE"++instance Hashable     DeinterlacerMode+instance NFData       DeinterlacerMode+instance ToByteString DeinterlacerMode+instance ToQuery      DeinterlacerMode+instance ToHeader     DeinterlacerMode++instance ToJSON DeinterlacerMode where+    toJSON = toJSONText++instance FromJSON DeinterlacerMode where+    parseJSON = parseJSONText "DeinterlacerMode"++-- | Applies only to 29.97 fps outputs. When this feature is enabled, the service will use drop-frame timecode on outputs. If it is not possible to use drop-frame timecode, the system will fall back to non-drop-frame. This setting is enabled by default when Timecode insertion (TimecodeInsertion) is enabled.+data DropFrameTimecode+  = DFTDisabled+  | DFTEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText DropFrameTimecode where+    parser = takeLowerText >>= \case+        "disabled" -> pure DFTDisabled+        "enabled" -> pure DFTEnabled+        e -> fromTextError $ "Failure parsing DropFrameTimecode from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText DropFrameTimecode where+    toText = \case+        DFTDisabled -> "DISABLED"+        DFTEnabled -> "ENABLED"++instance Hashable     DropFrameTimecode+instance NFData       DropFrameTimecode+instance ToByteString DropFrameTimecode+instance ToQuery      DropFrameTimecode+instance ToHeader     DropFrameTimecode++instance ToJSON DropFrameTimecode where+    toJSON = toJSONText++instance FromJSON DropFrameTimecode where+    parseJSON = parseJSONText "DropFrameTimecode"++-- | If no explicit x_position or y_position is provided, setting alignment to centered will place the captions at the bottom center of the output. Similarly, setting a left alignment will align captions to the bottom left of the output. If x and y positions are given in conjunction with the alignment parameter, the font will be justified (either left or centered) relative to those coordinates. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.+data DvbSubtitleAlignment+  = Centered+  | Left'+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText DvbSubtitleAlignment where+    parser = takeLowerText >>= \case+        "centered" -> pure Centered+        "left" -> pure Left'+        e -> fromTextError $ "Failure parsing DvbSubtitleAlignment from value: '" <> e+           <> "'. Accepted values: centered, left"++instance ToText DvbSubtitleAlignment where+    toText = \case+        Centered -> "CENTERED"+        Left' -> "LEFT"++instance Hashable     DvbSubtitleAlignment+instance NFData       DvbSubtitleAlignment+instance ToByteString DvbSubtitleAlignment+instance ToQuery      DvbSubtitleAlignment+instance ToHeader     DvbSubtitleAlignment++instance ToJSON DvbSubtitleAlignment where+    toJSON = toJSONText++instance FromJSON DvbSubtitleAlignment where+    parseJSON = parseJSONText "DvbSubtitleAlignment"++-- | Specifies the color of the rectangle behind the captions.+--+-- All burn-in and DVB-Sub font settings must match.+data DvbSubtitleBackgroundColor+  = DSBCBlack+  | DSBCNone+  | DSBCWhite+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText DvbSubtitleBackgroundColor where+    parser = takeLowerText >>= \case+        "black" -> pure DSBCBlack+        "none" -> pure DSBCNone+        "white" -> pure DSBCWhite+        e -> fromTextError $ "Failure parsing DvbSubtitleBackgroundColor from value: '" <> e+           <> "'. Accepted values: black, none, white"++instance ToText DvbSubtitleBackgroundColor where+    toText = \case+        DSBCBlack -> "BLACK"+        DSBCNone -> "NONE"+        DSBCWhite -> "WHITE"++instance Hashable     DvbSubtitleBackgroundColor+instance NFData       DvbSubtitleBackgroundColor+instance ToByteString DvbSubtitleBackgroundColor+instance ToQuery      DvbSubtitleBackgroundColor+instance ToHeader     DvbSubtitleBackgroundColor++instance ToJSON DvbSubtitleBackgroundColor where+    toJSON = toJSONText++instance FromJSON DvbSubtitleBackgroundColor where+    parseJSON = parseJSONText "DvbSubtitleBackgroundColor"++-- | Specifies the color of the burned-in captions. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.+data DvbSubtitleFontColor+  = DSFCBlack+  | DSFCBlue+  | DSFCGreen+  | DSFCRed+  | DSFCWhite+  | DSFCYellow+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText DvbSubtitleFontColor where+    parser = takeLowerText >>= \case+        "black" -> pure DSFCBlack+        "blue" -> pure DSFCBlue+        "green" -> pure DSFCGreen+        "red" -> pure DSFCRed+        "white" -> pure DSFCWhite+        "yellow" -> pure DSFCYellow+        e -> fromTextError $ "Failure parsing DvbSubtitleFontColor from value: '" <> e+           <> "'. Accepted values: black, blue, green, red, white, yellow"++instance ToText DvbSubtitleFontColor where+    toText = \case+        DSFCBlack -> "BLACK"+        DSFCBlue -> "BLUE"+        DSFCGreen -> "GREEN"+        DSFCRed -> "RED"+        DSFCWhite -> "WHITE"+        DSFCYellow -> "YELLOW"++instance Hashable     DvbSubtitleFontColor+instance NFData       DvbSubtitleFontColor+instance ToByteString DvbSubtitleFontColor+instance ToQuery      DvbSubtitleFontColor+instance ToHeader     DvbSubtitleFontColor++instance ToJSON DvbSubtitleFontColor where+    toJSON = toJSONText++instance FromJSON DvbSubtitleFontColor where+    parseJSON = parseJSONText "DvbSubtitleFontColor"++-- | Specifies font outline color. This option is not valid for source captions that are either 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.+data DvbSubtitleOutlineColor+  = Black+  | Blue+  | Green+  | Red+  | White+  | Yellow+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText DvbSubtitleOutlineColor where+    parser = takeLowerText >>= \case+        "black" -> pure Black+        "blue" -> pure Blue+        "green" -> pure Green+        "red" -> pure Red+        "white" -> pure White+        "yellow" -> pure Yellow+        e -> fromTextError $ "Failure parsing DvbSubtitleOutlineColor from value: '" <> e+           <> "'. Accepted values: black, blue, green, red, white, yellow"++instance ToText DvbSubtitleOutlineColor where+    toText = \case+        Black -> "BLACK"+        Blue -> "BLUE"+        Green -> "GREEN"+        Red -> "RED"+        White -> "WHITE"+        Yellow -> "YELLOW"++instance Hashable     DvbSubtitleOutlineColor+instance NFData       DvbSubtitleOutlineColor+instance ToByteString DvbSubtitleOutlineColor+instance ToQuery      DvbSubtitleOutlineColor+instance ToHeader     DvbSubtitleOutlineColor++instance ToJSON DvbSubtitleOutlineColor where+    toJSON = toJSONText++instance FromJSON DvbSubtitleOutlineColor where+    parseJSON = parseJSONText "DvbSubtitleOutlineColor"++-- | Specifies the color of the shadow cast by the captions.+--+-- All burn-in and DVB-Sub font settings must match.+data DvbSubtitleShadowColor+  = DSSCBlack+  | DSSCNone+  | DSSCWhite+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText DvbSubtitleShadowColor where+    parser = takeLowerText >>= \case+        "black" -> pure DSSCBlack+        "none" -> pure DSSCNone+        "white" -> pure DSSCWhite+        e -> fromTextError $ "Failure parsing DvbSubtitleShadowColor from value: '" <> e+           <> "'. Accepted values: black, none, white"++instance ToText DvbSubtitleShadowColor where+    toText = \case+        DSSCBlack -> "BLACK"+        DSSCNone -> "NONE"+        DSSCWhite -> "WHITE"++instance Hashable     DvbSubtitleShadowColor+instance NFData       DvbSubtitleShadowColor+instance ToByteString DvbSubtitleShadowColor+instance ToQuery      DvbSubtitleShadowColor+instance ToHeader     DvbSubtitleShadowColor++instance ToJSON DvbSubtitleShadowColor where+    toJSON = toJSONText++instance FromJSON DvbSubtitleShadowColor where+    parseJSON = parseJSONText "DvbSubtitleShadowColor"++-- | Controls whether a fixed grid size or proportional font spacing will be used to generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in outputs.+data DvbSubtitleTeletextSpacing+  = FixedGrid+  | Proportional+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText DvbSubtitleTeletextSpacing where+    parser = takeLowerText >>= \case+        "fixed_grid" -> pure FixedGrid+        "proportional" -> pure Proportional+        e -> fromTextError $ "Failure parsing DvbSubtitleTeletextSpacing from value: '" <> e+           <> "'. Accepted values: fixed_grid, proportional"++instance ToText DvbSubtitleTeletextSpacing where+    toText = \case+        FixedGrid -> "FIXED_GRID"+        Proportional -> "PROPORTIONAL"++instance Hashable     DvbSubtitleTeletextSpacing+instance NFData       DvbSubtitleTeletextSpacing+instance ToByteString DvbSubtitleTeletextSpacing+instance ToQuery      DvbSubtitleTeletextSpacing+instance ToHeader     DvbSubtitleTeletextSpacing++instance ToJSON DvbSubtitleTeletextSpacing where+    toJSON = toJSONText++instance FromJSON DvbSubtitleTeletextSpacing where+    parseJSON = parseJSONText "DvbSubtitleTeletextSpacing"++-- | If set to ATTENUATE_3_DB, applies a 3 dB attenuation to the surround channels. Only used for 3/2 coding mode.+data Eac3AttenuationControl+  = EACAttenuate3DB+  | EACNone+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Eac3AttenuationControl where+    parser = takeLowerText >>= \case+        "attenuate_3_db" -> pure EACAttenuate3DB+        "none" -> pure EACNone+        e -> fromTextError $ "Failure parsing Eac3AttenuationControl from value: '" <> e+           <> "'. Accepted values: attenuate_3_db, none"++instance ToText Eac3AttenuationControl where+    toText = \case+        EACAttenuate3DB -> "ATTENUATE_3_DB"+        EACNone -> "NONE"++instance Hashable     Eac3AttenuationControl+instance NFData       Eac3AttenuationControl+instance ToByteString Eac3AttenuationControl+instance ToQuery      Eac3AttenuationControl+instance ToHeader     Eac3AttenuationControl++instance ToJSON Eac3AttenuationControl where+    toJSON = toJSONText++instance FromJSON Eac3AttenuationControl where+    parseJSON = parseJSONText "Eac3AttenuationControl"++-- | Specifies the "Bitstream Mode" (bsmod) for the emitted E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.+data Eac3BitstreamMode+  = EBMCommentary+  | EBMCompleteMain+  | EBMEmergency+  | EBMHearingImpaired+  | EBMVisuallyImpaired+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Eac3BitstreamMode where+    parser = takeLowerText >>= \case+        "commentary" -> pure EBMCommentary+        "complete_main" -> pure EBMCompleteMain+        "emergency" -> pure EBMEmergency+        "hearing_impaired" -> pure EBMHearingImpaired+        "visually_impaired" -> pure EBMVisuallyImpaired+        e -> fromTextError $ "Failure parsing Eac3BitstreamMode from value: '" <> e+           <> "'. Accepted values: commentary, complete_main, emergency, hearing_impaired, visually_impaired"++instance ToText Eac3BitstreamMode where+    toText = \case+        EBMCommentary -> "COMMENTARY"+        EBMCompleteMain -> "COMPLETE_MAIN"+        EBMEmergency -> "EMERGENCY"+        EBMHearingImpaired -> "HEARING_IMPAIRED"+        EBMVisuallyImpaired -> "VISUALLY_IMPAIRED"++instance Hashable     Eac3BitstreamMode+instance NFData       Eac3BitstreamMode+instance ToByteString Eac3BitstreamMode+instance ToQuery      Eac3BitstreamMode+instance ToHeader     Eac3BitstreamMode++instance ToJSON Eac3BitstreamMode where+    toJSON = toJSONText++instance FromJSON Eac3BitstreamMode where+    parseJSON = parseJSONText "Eac3BitstreamMode"++-- | Dolby Digital Plus coding mode. Determines number of channels.+data Eac3CodingMode+  = ECMCodingMode10+  | ECMCodingMode20+  | ECMCodingMode32+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Eac3CodingMode where+    parser = takeLowerText >>= \case+        "coding_mode_1_0" -> pure ECMCodingMode10+        "coding_mode_2_0" -> pure ECMCodingMode20+        "coding_mode_3_2" -> pure ECMCodingMode32+        e -> fromTextError $ "Failure parsing Eac3CodingMode from value: '" <> e+           <> "'. Accepted values: coding_mode_1_0, coding_mode_2_0, coding_mode_3_2"++instance ToText Eac3CodingMode where+    toText = \case+        ECMCodingMode10 -> "CODING_MODE_1_0"+        ECMCodingMode20 -> "CODING_MODE_2_0"+        ECMCodingMode32 -> "CODING_MODE_3_2"++instance Hashable     Eac3CodingMode+instance NFData       Eac3CodingMode+instance ToByteString Eac3CodingMode+instance ToQuery      Eac3CodingMode+instance ToHeader     Eac3CodingMode++instance ToJSON Eac3CodingMode where+    toJSON = toJSONText++instance FromJSON Eac3CodingMode where+    parseJSON = parseJSONText "Eac3CodingMode"++-- | Activates a DC highpass filter for all input channels.+data Eac3DcFilter+  = EDFDisabled+  | EDFEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Eac3DcFilter where+    parser = takeLowerText >>= \case+        "disabled" -> pure EDFDisabled+        "enabled" -> pure EDFEnabled+        e -> fromTextError $ "Failure parsing Eac3DcFilter from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText Eac3DcFilter where+    toText = \case+        EDFDisabled -> "DISABLED"+        EDFEnabled -> "ENABLED"++instance Hashable     Eac3DcFilter+instance NFData       Eac3DcFilter+instance ToByteString Eac3DcFilter+instance ToQuery      Eac3DcFilter+instance ToHeader     Eac3DcFilter++instance ToJSON Eac3DcFilter where+    toJSON = toJSONText++instance FromJSON Eac3DcFilter where+    parseJSON = parseJSONText "Eac3DcFilter"++-- | Enables Dynamic Range Compression that restricts the absolute peak level for a signal.+data Eac3DynamicRangeCompressionLine+  = EDRCLFilmLight+  | EDRCLFilmStandard+  | EDRCLMusicLight+  | EDRCLMusicStandard+  | EDRCLNone+  | EDRCLSpeech+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Eac3DynamicRangeCompressionLine where+    parser = takeLowerText >>= \case+        "film_light" -> pure EDRCLFilmLight+        "film_standard" -> pure EDRCLFilmStandard+        "music_light" -> pure EDRCLMusicLight+        "music_standard" -> pure EDRCLMusicStandard+        "none" -> pure EDRCLNone+        "speech" -> pure EDRCLSpeech+        e -> fromTextError $ "Failure parsing Eac3DynamicRangeCompressionLine from value: '" <> e+           <> "'. Accepted values: film_light, film_standard, music_light, music_standard, none, speech"++instance ToText Eac3DynamicRangeCompressionLine where+    toText = \case+        EDRCLFilmLight -> "FILM_LIGHT"+        EDRCLFilmStandard -> "FILM_STANDARD"+        EDRCLMusicLight -> "MUSIC_LIGHT"+        EDRCLMusicStandard -> "MUSIC_STANDARD"+        EDRCLNone -> "NONE"+        EDRCLSpeech -> "SPEECH"++instance Hashable     Eac3DynamicRangeCompressionLine+instance NFData       Eac3DynamicRangeCompressionLine+instance ToByteString Eac3DynamicRangeCompressionLine+instance ToQuery      Eac3DynamicRangeCompressionLine+instance ToHeader     Eac3DynamicRangeCompressionLine++instance ToJSON Eac3DynamicRangeCompressionLine where+    toJSON = toJSONText++instance FromJSON Eac3DynamicRangeCompressionLine where+    parseJSON = parseJSONText "Eac3DynamicRangeCompressionLine"++-- | Enables Heavy Dynamic Range Compression, ensures that the instantaneous signal peaks do not exceed specified levels.+data Eac3DynamicRangeCompressionRf+  = EDRCRFilmLight+  | EDRCRFilmStandard+  | EDRCRMusicLight+  | EDRCRMusicStandard+  | EDRCRNone+  | EDRCRSpeech+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Eac3DynamicRangeCompressionRf where+    parser = takeLowerText >>= \case+        "film_light" -> pure EDRCRFilmLight+        "film_standard" -> pure EDRCRFilmStandard+        "music_light" -> pure EDRCRMusicLight+        "music_standard" -> pure EDRCRMusicStandard+        "none" -> pure EDRCRNone+        "speech" -> pure EDRCRSpeech+        e -> fromTextError $ "Failure parsing Eac3DynamicRangeCompressionRf from value: '" <> e+           <> "'. Accepted values: film_light, film_standard, music_light, music_standard, none, speech"++instance ToText Eac3DynamicRangeCompressionRf where+    toText = \case+        EDRCRFilmLight -> "FILM_LIGHT"+        EDRCRFilmStandard -> "FILM_STANDARD"+        EDRCRMusicLight -> "MUSIC_LIGHT"+        EDRCRMusicStandard -> "MUSIC_STANDARD"+        EDRCRNone -> "NONE"+        EDRCRSpeech -> "SPEECH"++instance Hashable     Eac3DynamicRangeCompressionRf+instance NFData       Eac3DynamicRangeCompressionRf+instance ToByteString Eac3DynamicRangeCompressionRf+instance ToQuery      Eac3DynamicRangeCompressionRf+instance ToHeader     Eac3DynamicRangeCompressionRf++instance ToJSON Eac3DynamicRangeCompressionRf where+    toJSON = toJSONText++instance FromJSON Eac3DynamicRangeCompressionRf where+    parseJSON = parseJSONText "Eac3DynamicRangeCompressionRf"++-- | When encoding 3/2 audio, controls whether the LFE channel is enabled+data Eac3LfeControl+  = Lfe+  | NoLfe+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Eac3LfeControl where+    parser = takeLowerText >>= \case+        "lfe" -> pure Lfe+        "no_lfe" -> pure NoLfe+        e -> fromTextError $ "Failure parsing Eac3LfeControl from value: '" <> e+           <> "'. Accepted values: lfe, no_lfe"++instance ToText Eac3LfeControl where+    toText = \case+        Lfe -> "LFE"+        NoLfe -> "NO_LFE"++instance Hashable     Eac3LfeControl+instance NFData       Eac3LfeControl+instance ToByteString Eac3LfeControl+instance ToQuery      Eac3LfeControl+instance ToHeader     Eac3LfeControl++instance ToJSON Eac3LfeControl where+    toJSON = toJSONText++instance FromJSON Eac3LfeControl where+    parseJSON = parseJSONText "Eac3LfeControl"++-- | Applies a 120Hz lowpass filter to the LFE channel prior to encoding. Only valid with 3_2_LFE coding mode.+data Eac3LfeFilter+  = ELFDisabled+  | ELFEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Eac3LfeFilter where+    parser = takeLowerText >>= \case+        "disabled" -> pure ELFDisabled+        "enabled" -> pure ELFEnabled+        e -> fromTextError $ "Failure parsing Eac3LfeFilter from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText Eac3LfeFilter where+    toText = \case+        ELFDisabled -> "DISABLED"+        ELFEnabled -> "ENABLED"++instance Hashable     Eac3LfeFilter+instance NFData       Eac3LfeFilter+instance ToByteString Eac3LfeFilter+instance ToQuery      Eac3LfeFilter+instance ToHeader     Eac3LfeFilter++instance ToJSON Eac3LfeFilter where+    toJSON = toJSONText++instance FromJSON Eac3LfeFilter where+    parseJSON = parseJSONText "Eac3LfeFilter"++-- | When set to FOLLOW_INPUT, encoder metadata will be sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied from one of these streams, then the static metadata settings will be used.+data Eac3MetadataControl+  = EMCFollowInput+  | EMCUseConfigured+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Eac3MetadataControl where+    parser = takeLowerText >>= \case+        "follow_input" -> pure EMCFollowInput+        "use_configured" -> pure EMCUseConfigured+        e -> fromTextError $ "Failure parsing Eac3MetadataControl from value: '" <> e+           <> "'. Accepted values: follow_input, use_configured"++instance ToText Eac3MetadataControl where+    toText = \case+        EMCFollowInput -> "FOLLOW_INPUT"+        EMCUseConfigured -> "USE_CONFIGURED"++instance Hashable     Eac3MetadataControl+instance NFData       Eac3MetadataControl+instance ToByteString Eac3MetadataControl+instance ToQuery      Eac3MetadataControl+instance ToHeader     Eac3MetadataControl++instance ToJSON Eac3MetadataControl where+    toJSON = toJSONText++instance FromJSON Eac3MetadataControl where+    parseJSON = parseJSONText "Eac3MetadataControl"++-- | When set to WHEN_POSSIBLE, input DD+ audio will be passed through if it is present on the input. this detection is dynamic over the life of the transcode. Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+ output as the system alternates between passthrough and encoding.+data Eac3PassthroughControl+  = NoPassthrough+  | WhenPossible+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Eac3PassthroughControl where+    parser = takeLowerText >>= \case+        "no_passthrough" -> pure NoPassthrough+        "when_possible" -> pure WhenPossible+        e -> fromTextError $ "Failure parsing Eac3PassthroughControl from value: '" <> e+           <> "'. Accepted values: no_passthrough, when_possible"++instance ToText Eac3PassthroughControl where+    toText = \case+        NoPassthrough -> "NO_PASSTHROUGH"+        WhenPossible -> "WHEN_POSSIBLE"++instance Hashable     Eac3PassthroughControl+instance NFData       Eac3PassthroughControl+instance ToByteString Eac3PassthroughControl+instance ToQuery      Eac3PassthroughControl+instance ToHeader     Eac3PassthroughControl++instance ToJSON Eac3PassthroughControl where+    toJSON = toJSONText++instance FromJSON Eac3PassthroughControl where+    parseJSON = parseJSONText "Eac3PassthroughControl"++-- | Controls the amount of phase-shift applied to the surround channels. Only used for 3/2 coding mode.+data Eac3PhaseControl+  = NoShift+  | Shift90Degrees+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Eac3PhaseControl where+    parser = takeLowerText >>= \case+        "no_shift" -> pure NoShift+        "shift_90_degrees" -> pure Shift90Degrees+        e -> fromTextError $ "Failure parsing Eac3PhaseControl from value: '" <> e+           <> "'. Accepted values: no_shift, shift_90_degrees"++instance ToText Eac3PhaseControl where+    toText = \case+        NoShift -> "NO_SHIFT"+        Shift90Degrees -> "SHIFT_90_DEGREES"++instance Hashable     Eac3PhaseControl+instance NFData       Eac3PhaseControl+instance ToByteString Eac3PhaseControl+instance ToQuery      Eac3PhaseControl+instance ToHeader     Eac3PhaseControl++instance ToJSON Eac3PhaseControl where+    toJSON = toJSONText++instance FromJSON Eac3PhaseControl where+    parseJSON = parseJSONText "Eac3PhaseControl"++-- | Stereo downmix preference. Only used for 3/2 coding mode.+data Eac3StereoDownmix+  = DPL2+  | LoRo+  | LtRt+  | NotIndicated+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Eac3StereoDownmix where+    parser = takeLowerText >>= \case+        "dpl2" -> pure DPL2+        "lo_ro" -> pure LoRo+        "lt_rt" -> pure LtRt+        "not_indicated" -> pure NotIndicated+        e -> fromTextError $ "Failure parsing Eac3StereoDownmix from value: '" <> e+           <> "'. Accepted values: dpl2, lo_ro, lt_rt, not_indicated"++instance ToText Eac3StereoDownmix where+    toText = \case+        DPL2 -> "DPL2"+        LoRo -> "LO_RO"+        LtRt -> "LT_RT"+        NotIndicated -> "NOT_INDICATED"++instance Hashable     Eac3StereoDownmix+instance NFData       Eac3StereoDownmix+instance ToByteString Eac3StereoDownmix+instance ToQuery      Eac3StereoDownmix+instance ToHeader     Eac3StereoDownmix++instance ToJSON Eac3StereoDownmix where+    toJSON = toJSONText++instance FromJSON Eac3StereoDownmix where+    parseJSON = parseJSONText "Eac3StereoDownmix"++-- | When encoding 3/2 audio, sets whether an extra center back surround channel is matrix encoded into the left and right surround channels.+data Eac3SurroundExMode+  = ESEMDisabled+  | ESEMEnabled+  | ESEMNotIndicated+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Eac3SurroundExMode where+    parser = takeLowerText >>= \case+        "disabled" -> pure ESEMDisabled+        "enabled" -> pure ESEMEnabled+        "not_indicated" -> pure ESEMNotIndicated+        e -> fromTextError $ "Failure parsing Eac3SurroundExMode from value: '" <> e+           <> "'. Accepted values: disabled, enabled, not_indicated"++instance ToText Eac3SurroundExMode where+    toText = \case+        ESEMDisabled -> "DISABLED"+        ESEMEnabled -> "ENABLED"+        ESEMNotIndicated -> "NOT_INDICATED"++instance Hashable     Eac3SurroundExMode+instance NFData       Eac3SurroundExMode+instance ToByteString Eac3SurroundExMode+instance ToQuery      Eac3SurroundExMode+instance ToHeader     Eac3SurroundExMode++instance ToJSON Eac3SurroundExMode where+    toJSON = toJSONText++instance FromJSON Eac3SurroundExMode where+    parseJSON = parseJSONText "Eac3SurroundExMode"++-- | When encoding 2/0 audio, sets whether Dolby Surround is matrix encoded into the two channels.+data Eac3SurroundMode+  = ESMDisabled+  | ESMEnabled+  | ESMNotIndicated+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Eac3SurroundMode where+    parser = takeLowerText >>= \case+        "disabled" -> pure ESMDisabled+        "enabled" -> pure ESMEnabled+        "not_indicated" -> pure ESMNotIndicated+        e -> fromTextError $ "Failure parsing Eac3SurroundMode from value: '" <> e+           <> "'. Accepted values: disabled, enabled, not_indicated"++instance ToText Eac3SurroundMode where+    toText = \case+        ESMDisabled -> "DISABLED"+        ESMEnabled -> "ENABLED"+        ESMNotIndicated -> "NOT_INDICATED"++instance Hashable     Eac3SurroundMode+instance NFData       Eac3SurroundMode+instance ToByteString Eac3SurroundMode+instance ToQuery      Eac3SurroundMode+instance ToHeader     Eac3SurroundMode++instance ToJSON Eac3SurroundMode where+    toJSON = toJSONText++instance FromJSON Eac3SurroundMode where+    parseJSON = parseJSONText "Eac3SurroundMode"++-- | When set to UPCONVERT, 608 data is both passed through via the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data present in the source content will be discarded.+data EmbeddedConvert608To708+  = ECTDisabled+  | ECTUpconvert+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText EmbeddedConvert608To708 where+    parser = takeLowerText >>= \case+        "disabled" -> pure ECTDisabled+        "upconvert" -> pure ECTUpconvert+        e -> fromTextError $ "Failure parsing EmbeddedConvert608To708 from value: '" <> e+           <> "'. Accepted values: disabled, upconvert"++instance ToText EmbeddedConvert608To708 where+    toText = \case+        ECTDisabled -> "DISABLED"+        ECTUpconvert -> "UPCONVERT"++instance Hashable     EmbeddedConvert608To708+instance NFData       EmbeddedConvert608To708+instance ToByteString EmbeddedConvert608To708+instance ToQuery      EmbeddedConvert608To708+instance ToHeader     EmbeddedConvert608To708++instance ToJSON EmbeddedConvert608To708 where+    toJSON = toJSONText++instance FromJSON EmbeddedConvert608To708 where+    parseJSON = parseJSONText "EmbeddedConvert608To708"++-- | If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning of the archive as required for progressive downloading. Otherwise it is placed normally at the end.+data F4vMoovPlacement+  = FMPNormal+  | FMPProgressiveDownload+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText F4vMoovPlacement where+    parser = takeLowerText >>= \case+        "normal" -> pure FMPNormal+        "progressive_download" -> pure FMPProgressiveDownload+        e -> fromTextError $ "Failure parsing F4vMoovPlacement from value: '" <> e+           <> "'. Accepted values: normal, progressive_download"++instance ToText F4vMoovPlacement where+    toText = \case+        FMPNormal -> "NORMAL"+        FMPProgressiveDownload -> "PROGRESSIVE_DOWNLOAD"++instance Hashable     F4vMoovPlacement+instance NFData       F4vMoovPlacement+instance ToByteString F4vMoovPlacement+instance ToQuery      F4vMoovPlacement+instance ToHeader     F4vMoovPlacement++instance ToJSON F4vMoovPlacement where+    toJSON = toJSONText++instance FromJSON F4vMoovPlacement where+    parseJSON = parseJSONText "F4vMoovPlacement"++-- | If set to UPCONVERT, 608 caption data is both passed through via the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data present in the source content will be discarded.+data FileSourceConvert608To708+  = FSCTDisabled+  | FSCTUpconvert+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText FileSourceConvert608To708 where+    parser = takeLowerText >>= \case+        "disabled" -> pure FSCTDisabled+        "upconvert" -> pure FSCTUpconvert+        e -> fromTextError $ "Failure parsing FileSourceConvert608To708 from value: '" <> e+           <> "'. Accepted values: disabled, upconvert"++instance ToText FileSourceConvert608To708 where+    toText = \case+        FSCTDisabled -> "DISABLED"+        FSCTUpconvert -> "UPCONVERT"++instance Hashable     FileSourceConvert608To708+instance NFData       FileSourceConvert608To708+instance ToByteString FileSourceConvert608To708+instance ToQuery      FileSourceConvert608To708+instance ToHeader     FileSourceConvert608To708++instance ToJSON FileSourceConvert608To708 where+    toJSON = toJSONText++instance FromJSON FileSourceConvert608To708 where+    parseJSON = parseJSONText "FileSourceConvert608To708"++-- | Adaptive quantization. Allows intra-frame quantizers to vary to improve visual quality.+data H264AdaptiveQuantization+  = HAQHigh+  | HAQHigher+  | HAQLow+  | HAQMax+  | HAQMedium+  | HAQOff+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H264AdaptiveQuantization where+    parser = takeLowerText >>= \case+        "high" -> pure HAQHigh+        "higher" -> pure HAQHigher+        "low" -> pure HAQLow+        "max" -> pure HAQMax+        "medium" -> pure HAQMedium+        "off" -> pure HAQOff+        e -> fromTextError $ "Failure parsing H264AdaptiveQuantization from value: '" <> e+           <> "'. Accepted values: high, higher, low, max, medium, off"++instance ToText H264AdaptiveQuantization where+    toText = \case+        HAQHigh -> "HIGH"+        HAQHigher -> "HIGHER"+        HAQLow -> "LOW"+        HAQMax -> "MAX"+        HAQMedium -> "MEDIUM"+        HAQOff -> "OFF"++instance Hashable     H264AdaptiveQuantization+instance NFData       H264AdaptiveQuantization+instance ToByteString H264AdaptiveQuantization+instance ToQuery      H264AdaptiveQuantization+instance ToHeader     H264AdaptiveQuantization++instance ToJSON H264AdaptiveQuantization where+    toJSON = toJSONText++instance FromJSON H264AdaptiveQuantization where+    parseJSON = parseJSONText "H264AdaptiveQuantization"++-- | H.264 Level.+data H264CodecLevel+  = HCLAuto+  | HCLLevel1+  | HCLLevel11+  | HCLLevel12+  | HCLLevel13+  | HCLLevel2+  | HCLLevel21+  | HCLLevel22+  | HCLLevel3+  | HCLLevel31+  | HCLLevel32+  | HCLLevel4+  | HCLLevel41+  | HCLLevel42+  | HCLLevel5+  | HCLLevel51+  | HCLLevel52+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H264CodecLevel where+    parser = takeLowerText >>= \case+        "auto" -> pure HCLAuto+        "level_1" -> pure HCLLevel1+        "level_1_1" -> pure HCLLevel11+        "level_1_2" -> pure HCLLevel12+        "level_1_3" -> pure HCLLevel13+        "level_2" -> pure HCLLevel2+        "level_2_1" -> pure HCLLevel21+        "level_2_2" -> pure HCLLevel22+        "level_3" -> pure HCLLevel3+        "level_3_1" -> pure HCLLevel31+        "level_3_2" -> pure HCLLevel32+        "level_4" -> pure HCLLevel4+        "level_4_1" -> pure HCLLevel41+        "level_4_2" -> pure HCLLevel42+        "level_5" -> pure HCLLevel5+        "level_5_1" -> pure HCLLevel51+        "level_5_2" -> pure HCLLevel52+        e -> fromTextError $ "Failure parsing H264CodecLevel from value: '" <> e+           <> "'. Accepted values: auto, level_1, level_1_1, level_1_2, level_1_3, level_2, level_2_1, level_2_2, level_3, level_3_1, level_3_2, level_4, level_4_1, level_4_2, level_5, level_5_1, level_5_2"++instance ToText H264CodecLevel where+    toText = \case+        HCLAuto -> "AUTO"+        HCLLevel1 -> "LEVEL_1"+        HCLLevel11 -> "LEVEL_1_1"+        HCLLevel12 -> "LEVEL_1_2"+        HCLLevel13 -> "LEVEL_1_3"+        HCLLevel2 -> "LEVEL_2"+        HCLLevel21 -> "LEVEL_2_1"+        HCLLevel22 -> "LEVEL_2_2"+        HCLLevel3 -> "LEVEL_3"+        HCLLevel31 -> "LEVEL_3_1"+        HCLLevel32 -> "LEVEL_3_2"+        HCLLevel4 -> "LEVEL_4"+        HCLLevel41 -> "LEVEL_4_1"+        HCLLevel42 -> "LEVEL_4_2"+        HCLLevel5 -> "LEVEL_5"+        HCLLevel51 -> "LEVEL_5_1"+        HCLLevel52 -> "LEVEL_5_2"++instance Hashable     H264CodecLevel+instance NFData       H264CodecLevel+instance ToByteString H264CodecLevel+instance ToQuery      H264CodecLevel+instance ToHeader     H264CodecLevel++instance ToJSON H264CodecLevel where+    toJSON = toJSONText++instance FromJSON H264CodecLevel where+    parseJSON = parseJSONText "H264CodecLevel"++-- | H.264 Profile. High 4:2:2 and 10-bit profiles are only available with the AVC-I License.+data H264CodecProfile+  = HCPBaseline+  | HCPHigh+  | HCPHigh10BIT+  | HCPHigh422+  | HCPHigh42210BIT+  | HCPMain+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H264CodecProfile where+    parser = takeLowerText >>= \case+        "baseline" -> pure HCPBaseline+        "high" -> pure HCPHigh+        "high_10bit" -> pure HCPHigh10BIT+        "high_422" -> pure HCPHigh422+        "high_422_10bit" -> pure HCPHigh42210BIT+        "main" -> pure HCPMain+        e -> fromTextError $ "Failure parsing H264CodecProfile from value: '" <> e+           <> "'. Accepted values: baseline, high, high_10bit, high_422, high_422_10bit, main"++instance ToText H264CodecProfile where+    toText = \case+        HCPBaseline -> "BASELINE"+        HCPHigh -> "HIGH"+        HCPHigh10BIT -> "HIGH_10BIT"+        HCPHigh422 -> "HIGH_422"+        HCPHigh42210BIT -> "HIGH_422_10BIT"+        HCPMain -> "MAIN"++instance Hashable     H264CodecProfile+instance NFData       H264CodecProfile+instance ToByteString H264CodecProfile+instance ToQuery      H264CodecProfile+instance ToHeader     H264CodecProfile++instance ToJSON H264CodecProfile where+    toJSON = toJSONText++instance FromJSON H264CodecProfile where+    parseJSON = parseJSONText "H264CodecProfile"++-- | Entropy encoding mode. Use CABAC (must be in Main or High profile) or CAVLC.+data H264EntropyEncoding+  = Cabac+  | Cavlc+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H264EntropyEncoding where+    parser = takeLowerText >>= \case+        "cabac" -> pure Cabac+        "cavlc" -> pure Cavlc+        e -> fromTextError $ "Failure parsing H264EntropyEncoding from value: '" <> e+           <> "'. Accepted values: cabac, cavlc"++instance ToText H264EntropyEncoding where+    toText = \case+        Cabac -> "CABAC"+        Cavlc -> "CAVLC"++instance Hashable     H264EntropyEncoding+instance NFData       H264EntropyEncoding+instance ToByteString H264EntropyEncoding+instance ToQuery      H264EntropyEncoding+instance ToHeader     H264EntropyEncoding++instance ToJSON H264EntropyEncoding where+    toJSON = toJSONText++instance FromJSON H264EntropyEncoding where+    parseJSON = parseJSONText "H264EntropyEncoding"++-- | Choosing FORCE_FIELD disables PAFF encoding for interlaced outputs.+data H264FieldEncoding+  = ForceField+  | Paff+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H264FieldEncoding where+    parser = takeLowerText >>= \case+        "force_field" -> pure ForceField+        "paff" -> pure Paff+        e -> fromTextError $ "Failure parsing H264FieldEncoding from value: '" <> e+           <> "'. Accepted values: force_field, paff"++instance ToText H264FieldEncoding where+    toText = \case+        ForceField -> "FORCE_FIELD"+        Paff -> "PAFF"++instance Hashable     H264FieldEncoding+instance NFData       H264FieldEncoding+instance ToByteString H264FieldEncoding+instance ToQuery      H264FieldEncoding+instance ToHeader     H264FieldEncoding++instance ToJSON H264FieldEncoding where+    toJSON = toJSONText++instance FromJSON H264FieldEncoding where+    parseJSON = parseJSONText "H264FieldEncoding"++-- | Adjust quantization within each frame to reduce flicker or 'pop' on I-frames.+data H264FlickerAdaptiveQuantization+  = HFAQFDisabled+  | HFAQFEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H264FlickerAdaptiveQuantization where+    parser = takeLowerText >>= \case+        "disabled" -> pure HFAQFDisabled+        "enabled" -> pure HFAQFEnabled+        e -> fromTextError $ "Failure parsing H264FlickerAdaptiveQuantization from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText H264FlickerAdaptiveQuantization where+    toText = \case+        HFAQFDisabled -> "DISABLED"+        HFAQFEnabled -> "ENABLED"++instance Hashable     H264FlickerAdaptiveQuantization+instance NFData       H264FlickerAdaptiveQuantization+instance ToByteString H264FlickerAdaptiveQuantization+instance ToQuery      H264FlickerAdaptiveQuantization+instance ToHeader     H264FlickerAdaptiveQuantization++instance ToJSON H264FlickerAdaptiveQuantization where+    toJSON = toJSONText++instance FromJSON H264FlickerAdaptiveQuantization where+    parseJSON = parseJSONText "H264FlickerAdaptiveQuantization"++-- | Using the API, set FramerateControl to INITIALIZE_FROM_SOURCE if you want the service to use the framerate from the input. Using the console, do this by choosing INITIALIZE_FROM_SOURCE for Framerate.+data H264FramerateControl+  = HInitializeFromSource+  | HSpecified+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H264FramerateControl where+    parser = takeLowerText >>= \case+        "initialize_from_source" -> pure HInitializeFromSource+        "specified" -> pure HSpecified+        e -> fromTextError $ "Failure parsing H264FramerateControl from value: '" <> e+           <> "'. Accepted values: initialize_from_source, specified"++instance ToText H264FramerateControl where+    toText = \case+        HInitializeFromSource -> "INITIALIZE_FROM_SOURCE"+        HSpecified -> "SPECIFIED"++instance Hashable     H264FramerateControl+instance NFData       H264FramerateControl+instance ToByteString H264FramerateControl+instance ToQuery      H264FramerateControl+instance ToHeader     H264FramerateControl++instance ToJSON H264FramerateControl where+    toJSON = toJSONText++instance FromJSON H264FramerateControl where+    parseJSON = parseJSONText "H264FramerateControl"++-- | When set to INTERPOLATE, produces smoother motion during framerate conversion.+data H264FramerateConversionAlgorithm+  = HFCADuplicateDrop+  | HFCAInterpolate+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H264FramerateConversionAlgorithm where+    parser = takeLowerText >>= \case+        "duplicate_drop" -> pure HFCADuplicateDrop+        "interpolate" -> pure HFCAInterpolate+        e -> fromTextError $ "Failure parsing H264FramerateConversionAlgorithm from value: '" <> e+           <> "'. Accepted values: duplicate_drop, interpolate"++instance ToText H264FramerateConversionAlgorithm where+    toText = \case+        HFCADuplicateDrop -> "DUPLICATE_DROP"+        HFCAInterpolate -> "INTERPOLATE"++instance Hashable     H264FramerateConversionAlgorithm+instance NFData       H264FramerateConversionAlgorithm+instance ToByteString H264FramerateConversionAlgorithm+instance ToQuery      H264FramerateConversionAlgorithm+instance ToHeader     H264FramerateConversionAlgorithm++instance ToJSON H264FramerateConversionAlgorithm where+    toJSON = toJSONText++instance FromJSON H264FramerateConversionAlgorithm where+    parseJSON = parseJSONText "H264FramerateConversionAlgorithm"++-- | If enable, use reference B frames for GOP structures that have B frames > 1.+data H264GopBReference+  = HGBRGDisabled+  | HGBRGEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H264GopBReference where+    parser = takeLowerText >>= \case+        "disabled" -> pure HGBRGDisabled+        "enabled" -> pure HGBRGEnabled+        e -> fromTextError $ "Failure parsing H264GopBReference from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText H264GopBReference where+    toText = \case+        HGBRGDisabled -> "DISABLED"+        HGBRGEnabled -> "ENABLED"++instance Hashable     H264GopBReference+instance NFData       H264GopBReference+instance ToByteString H264GopBReference+instance ToQuery      H264GopBReference+instance ToHeader     H264GopBReference++instance ToJSON H264GopBReference where+    toJSON = toJSONText++instance FromJSON H264GopBReference where+    parseJSON = parseJSONText "H264GopBReference"++-- | Indicates if the GOP Size in H264 is specified in frames or seconds. If seconds the system will convert the GOP Size into a frame count at run time.+data H264GopSizeUnits+  = HGSUFrames+  | HGSUSeconds+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H264GopSizeUnits where+    parser = takeLowerText >>= \case+        "frames" -> pure HGSUFrames+        "seconds" -> pure HGSUSeconds+        e -> fromTextError $ "Failure parsing H264GopSizeUnits from value: '" <> e+           <> "'. Accepted values: frames, seconds"++instance ToText H264GopSizeUnits where+    toText = \case+        HGSUFrames -> "FRAMES"+        HGSUSeconds -> "SECONDS"++instance Hashable     H264GopSizeUnits+instance NFData       H264GopSizeUnits+instance ToByteString H264GopSizeUnits+instance ToQuery      H264GopSizeUnits+instance ToHeader     H264GopSizeUnits++instance ToJSON H264GopSizeUnits where+    toJSON = toJSONText++instance FromJSON H264GopSizeUnits where+    parseJSON = parseJSONText "H264GopSizeUnits"++-- | Use Interlace mode (InterlaceMode) to choose the scan line type for the output. * Top Field First (TOP_FIELD) and Bottom Field First (BOTTOM_FIELD) produce interlaced output with the entire output having the same field polarity (top or bottom first). * Follow, Default Top (FOLLOw_TOP_FIELD) and Follow, Default Bottom (FOLLOW_BOTTOM_FIELD) use the same  field polarity as the source. Therefore, behavior depends on the input scan type. - If the source is interlaced, the output will be interlaced with the same polarity as the source (it will follow the source). The output could therefore be a mix of "top field first" and "bottom field first". - If the source is progressive, the output will be interlaced with "top field first" or "bottom field first" polarity, depending on which of the Follow options you chose.+data H264InterlaceMode+  = HIMBottomField+  | HIMFollowBottomField+  | HIMFollowTopField+  | HIMProgressive+  | HIMTopField+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H264InterlaceMode where+    parser = takeLowerText >>= \case+        "bottom_field" -> pure HIMBottomField+        "follow_bottom_field" -> pure HIMFollowBottomField+        "follow_top_field" -> pure HIMFollowTopField+        "progressive" -> pure HIMProgressive+        "top_field" -> pure HIMTopField+        e -> fromTextError $ "Failure parsing H264InterlaceMode from value: '" <> e+           <> "'. Accepted values: bottom_field, follow_bottom_field, follow_top_field, progressive, top_field"++instance ToText H264InterlaceMode where+    toText = \case+        HIMBottomField -> "BOTTOM_FIELD"+        HIMFollowBottomField -> "FOLLOW_BOTTOM_FIELD"+        HIMFollowTopField -> "FOLLOW_TOP_FIELD"+        HIMProgressive -> "PROGRESSIVE"+        HIMTopField -> "TOP_FIELD"++instance Hashable     H264InterlaceMode+instance NFData       H264InterlaceMode+instance ToByteString H264InterlaceMode+instance ToQuery      H264InterlaceMode+instance ToHeader     H264InterlaceMode++instance ToJSON H264InterlaceMode where+    toJSON = toJSONText++instance FromJSON H264InterlaceMode where+    parseJSON = parseJSONText "H264InterlaceMode"++-- | Using the API, enable ParFollowSource if you want the service to use the pixel aspect ratio from the input. Using the console, do this by choosing Follow source for Pixel aspect ratio.+data H264ParControl+  = HPCInitializeFromSource+  | HPCSpecified+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H264ParControl where+    parser = takeLowerText >>= \case+        "initialize_from_source" -> pure HPCInitializeFromSource+        "specified" -> pure HPCSpecified+        e -> fromTextError $ "Failure parsing H264ParControl from value: '" <> e+           <> "'. Accepted values: initialize_from_source, specified"++instance ToText H264ParControl where+    toText = \case+        HPCInitializeFromSource -> "INITIALIZE_FROM_SOURCE"+        HPCSpecified -> "SPECIFIED"++instance Hashable     H264ParControl+instance NFData       H264ParControl+instance ToByteString H264ParControl+instance ToQuery      H264ParControl+instance ToHeader     H264ParControl++instance ToJSON H264ParControl where+    toJSON = toJSONText++instance FromJSON H264ParControl where+    parseJSON = parseJSONText "H264ParControl"++-- | Use Quality tuning level (H264QualityTuningLevel) to specifiy whether to use fast single-pass, high-quality singlepass, or high-quality multipass video encoding.+data H264QualityTuningLevel+  = HQTLMultiPassHq+  | HQTLSinglePass+  | HQTLSinglePassHq+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H264QualityTuningLevel where+    parser = takeLowerText >>= \case+        "multi_pass_hq" -> pure HQTLMultiPassHq+        "single_pass" -> pure HQTLSinglePass+        "single_pass_hq" -> pure HQTLSinglePassHq+        e -> fromTextError $ "Failure parsing H264QualityTuningLevel from value: '" <> e+           <> "'. Accepted values: multi_pass_hq, single_pass, single_pass_hq"++instance ToText H264QualityTuningLevel where+    toText = \case+        HQTLMultiPassHq -> "MULTI_PASS_HQ"+        HQTLSinglePass -> "SINGLE_PASS"+        HQTLSinglePassHq -> "SINGLE_PASS_HQ"++instance Hashable     H264QualityTuningLevel+instance NFData       H264QualityTuningLevel+instance ToByteString H264QualityTuningLevel+instance ToQuery      H264QualityTuningLevel+instance ToHeader     H264QualityTuningLevel++instance ToJSON H264QualityTuningLevel where+    toJSON = toJSONText++instance FromJSON H264QualityTuningLevel where+    parseJSON = parseJSONText "H264QualityTuningLevel"++-- | Rate control mode. CQ uses constant quantizer (qp), ABR (average bitrate) does not write HRD parameters.+data H264RateControlMode+  = HRCMCbr+  | HRCMVbr+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H264RateControlMode where+    parser = takeLowerText >>= \case+        "cbr" -> pure HRCMCbr+        "vbr" -> pure HRCMVbr+        e -> fromTextError $ "Failure parsing H264RateControlMode from value: '" <> e+           <> "'. Accepted values: cbr, vbr"++instance ToText H264RateControlMode where+    toText = \case+        HRCMCbr -> "CBR"+        HRCMVbr -> "VBR"++instance Hashable     H264RateControlMode+instance NFData       H264RateControlMode+instance ToByteString H264RateControlMode+instance ToQuery      H264RateControlMode+instance ToHeader     H264RateControlMode++instance ToJSON H264RateControlMode where+    toJSON = toJSONText++instance FromJSON H264RateControlMode where+    parseJSON = parseJSONText "H264RateControlMode"++-- | Places a PPS header on each encoded picture, even if repeated.+data H264RepeatPps+  = HRPDisabled+  | HRPEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H264RepeatPps where+    parser = takeLowerText >>= \case+        "disabled" -> pure HRPDisabled+        "enabled" -> pure HRPEnabled+        e -> fromTextError $ "Failure parsing H264RepeatPps from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText H264RepeatPps where+    toText = \case+        HRPDisabled -> "DISABLED"+        HRPEnabled -> "ENABLED"++instance Hashable     H264RepeatPps+instance NFData       H264RepeatPps+instance ToByteString H264RepeatPps+instance ToQuery      H264RepeatPps+instance ToHeader     H264RepeatPps++instance ToJSON H264RepeatPps where+    toJSON = toJSONText++instance FromJSON H264RepeatPps where+    parseJSON = parseJSONText "H264RepeatPps"++-- | Scene change detection (inserts I-frames on scene changes).+data H264SceneChangeDetect+  = HSCDSDisabled+  | HSCDSEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H264SceneChangeDetect where+    parser = takeLowerText >>= \case+        "disabled" -> pure HSCDSDisabled+        "enabled" -> pure HSCDSEnabled+        e -> fromTextError $ "Failure parsing H264SceneChangeDetect from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText H264SceneChangeDetect where+    toText = \case+        HSCDSDisabled -> "DISABLED"+        HSCDSEnabled -> "ENABLED"++instance Hashable     H264SceneChangeDetect+instance NFData       H264SceneChangeDetect+instance ToByteString H264SceneChangeDetect+instance ToQuery      H264SceneChangeDetect+instance ToHeader     H264SceneChangeDetect++instance ToJSON H264SceneChangeDetect where+    toJSON = toJSONText++instance FromJSON H264SceneChangeDetect where+    parseJSON = parseJSONText "H264SceneChangeDetect"++-- | Enables Slow PAL rate conversion. 23.976fps and 24fps input is relabeled as 25fps, and audio is sped up correspondingly.+data H264SlowPal+  = HSPSDisabled+  | HSPSEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H264SlowPal where+    parser = takeLowerText >>= \case+        "disabled" -> pure HSPSDisabled+        "enabled" -> pure HSPSEnabled+        e -> fromTextError $ "Failure parsing H264SlowPal from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText H264SlowPal where+    toText = \case+        HSPSDisabled -> "DISABLED"+        HSPSEnabled -> "ENABLED"++instance Hashable     H264SlowPal+instance NFData       H264SlowPal+instance ToByteString H264SlowPal+instance ToQuery      H264SlowPal+instance ToHeader     H264SlowPal++instance ToJSON H264SlowPal where+    toJSON = toJSONText++instance FromJSON H264SlowPal where+    parseJSON = parseJSONText "H264SlowPal"++-- | Adjust quantization within each frame based on spatial variation of content complexity.+data H264SpatialAdaptiveQuantization+  = HSAQSDisabled+  | HSAQSEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H264SpatialAdaptiveQuantization where+    parser = takeLowerText >>= \case+        "disabled" -> pure HSAQSDisabled+        "enabled" -> pure HSAQSEnabled+        e -> fromTextError $ "Failure parsing H264SpatialAdaptiveQuantization from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText H264SpatialAdaptiveQuantization where+    toText = \case+        HSAQSDisabled -> "DISABLED"+        HSAQSEnabled -> "ENABLED"++instance Hashable     H264SpatialAdaptiveQuantization+instance NFData       H264SpatialAdaptiveQuantization+instance ToByteString H264SpatialAdaptiveQuantization+instance ToQuery      H264SpatialAdaptiveQuantization+instance ToHeader     H264SpatialAdaptiveQuantization++instance ToJSON H264SpatialAdaptiveQuantization where+    toJSON = toJSONText++instance FromJSON H264SpatialAdaptiveQuantization where+    parseJSON = parseJSONText "H264SpatialAdaptiveQuantization"++-- | Produces a bitstream compliant with SMPTE RP-2027.+data H264Syntax+  = HSDefault+  | HSRP2027+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H264Syntax where+    parser = takeLowerText >>= \case+        "default" -> pure HSDefault+        "rp2027" -> pure HSRP2027+        e -> fromTextError $ "Failure parsing H264Syntax from value: '" <> e+           <> "'. Accepted values: default, rp2027"++instance ToText H264Syntax where+    toText = \case+        HSDefault -> "DEFAULT"+        HSRP2027 -> "RP2027"++instance Hashable     H264Syntax+instance NFData       H264Syntax+instance ToByteString H264Syntax+instance ToQuery      H264Syntax+instance ToHeader     H264Syntax++instance ToJSON H264Syntax where+    toJSON = toJSONText++instance FromJSON H264Syntax where+    parseJSON = parseJSONText "H264Syntax"++-- | This field applies only if the Streams > Advanced > Framerate (framerate) field  is set to 29.970. This field works with the Streams > Advanced > Preprocessors > Deinterlacer  field (deinterlace_mode) and the Streams > Advanced > Interlaced Mode field (interlace_mode)  to identify the scan type for the output: Progressive, Interlaced, Hard Telecine or Soft Telecine. - Hard: produces 29.97i output from 23.976 input. - Soft: produces 23.976; the player converts this output to 29.97i.+data H264Telecine+  = HHard+  | HNone+  | HSoft+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H264Telecine where+    parser = takeLowerText >>= \case+        "hard" -> pure HHard+        "none" -> pure HNone+        "soft" -> pure HSoft+        e -> fromTextError $ "Failure parsing H264Telecine from value: '" <> e+           <> "'. Accepted values: hard, none, soft"++instance ToText H264Telecine where+    toText = \case+        HHard -> "HARD"+        HNone -> "NONE"+        HSoft -> "SOFT"++instance Hashable     H264Telecine+instance NFData       H264Telecine+instance ToByteString H264Telecine+instance ToQuery      H264Telecine+instance ToHeader     H264Telecine++instance ToJSON H264Telecine where+    toJSON = toJSONText++instance FromJSON H264Telecine where+    parseJSON = parseJSONText "H264Telecine"++-- | Adjust quantization within each frame based on temporal variation of content complexity.+data H264TemporalAdaptiveQuantization+  = H26Disabled+  | H26Enabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H264TemporalAdaptiveQuantization where+    parser = takeLowerText >>= \case+        "disabled" -> pure H26Disabled+        "enabled" -> pure H26Enabled+        e -> fromTextError $ "Failure parsing H264TemporalAdaptiveQuantization from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText H264TemporalAdaptiveQuantization where+    toText = \case+        H26Disabled -> "DISABLED"+        H26Enabled -> "ENABLED"++instance Hashable     H264TemporalAdaptiveQuantization+instance NFData       H264TemporalAdaptiveQuantization+instance ToByteString H264TemporalAdaptiveQuantization+instance ToQuery      H264TemporalAdaptiveQuantization+instance ToHeader     H264TemporalAdaptiveQuantization++instance ToJSON H264TemporalAdaptiveQuantization where+    toJSON = toJSONText++instance FromJSON H264TemporalAdaptiveQuantization where+    parseJSON = parseJSONText "H264TemporalAdaptiveQuantization"++-- | Inserts timecode for each frame as 4 bytes of an unregistered SEI message.+data H264UnregisteredSeiTimecode+  = HDisabled+  | HEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H264UnregisteredSeiTimecode where+    parser = takeLowerText >>= \case+        "disabled" -> pure HDisabled+        "enabled" -> pure HEnabled+        e -> fromTextError $ "Failure parsing H264UnregisteredSeiTimecode from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText H264UnregisteredSeiTimecode where+    toText = \case+        HDisabled -> "DISABLED"+        HEnabled -> "ENABLED"++instance Hashable     H264UnregisteredSeiTimecode+instance NFData       H264UnregisteredSeiTimecode+instance ToByteString H264UnregisteredSeiTimecode+instance ToQuery      H264UnregisteredSeiTimecode+instance ToHeader     H264UnregisteredSeiTimecode++instance ToJSON H264UnregisteredSeiTimecode where+    toJSON = toJSONText++instance FromJSON H264UnregisteredSeiTimecode where+    parseJSON = parseJSONText "H264UnregisteredSeiTimecode"++-- | Adaptive quantization. Allows intra-frame quantizers to vary to improve visual quality.+data H265AdaptiveQuantization+  = High+  | Higher+  | Low+  | Max+  | Medium+  | Off+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H265AdaptiveQuantization where+    parser = takeLowerText >>= \case+        "high" -> pure High+        "higher" -> pure Higher+        "low" -> pure Low+        "max" -> pure Max+        "medium" -> pure Medium+        "off" -> pure Off+        e -> fromTextError $ "Failure parsing H265AdaptiveQuantization from value: '" <> e+           <> "'. Accepted values: high, higher, low, max, medium, off"++instance ToText H265AdaptiveQuantization where+    toText = \case+        High -> "HIGH"+        Higher -> "HIGHER"+        Low -> "LOW"+        Max -> "MAX"+        Medium -> "MEDIUM"+        Off -> "OFF"++instance Hashable     H265AdaptiveQuantization+instance NFData       H265AdaptiveQuantization+instance ToByteString H265AdaptiveQuantization+instance ToQuery      H265AdaptiveQuantization+instance ToHeader     H265AdaptiveQuantization++instance ToJSON H265AdaptiveQuantization where+    toJSON = toJSONText++instance FromJSON H265AdaptiveQuantization where+    parseJSON = parseJSONText "H265AdaptiveQuantization"++-- | Enables Alternate Transfer Function SEI message for outputs using Hybrid Log Gamma (HLG) Electro-Optical Transfer Function (EOTF).+data H265AlternateTransferFunctionSei+  = HATFSDisabled+  | HATFSEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H265AlternateTransferFunctionSei where+    parser = takeLowerText >>= \case+        "disabled" -> pure HATFSDisabled+        "enabled" -> pure HATFSEnabled+        e -> fromTextError $ "Failure parsing H265AlternateTransferFunctionSei from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText H265AlternateTransferFunctionSei where+    toText = \case+        HATFSDisabled -> "DISABLED"+        HATFSEnabled -> "ENABLED"++instance Hashable     H265AlternateTransferFunctionSei+instance NFData       H265AlternateTransferFunctionSei+instance ToByteString H265AlternateTransferFunctionSei+instance ToQuery      H265AlternateTransferFunctionSei+instance ToHeader     H265AlternateTransferFunctionSei++instance ToJSON H265AlternateTransferFunctionSei where+    toJSON = toJSONText++instance FromJSON H265AlternateTransferFunctionSei where+    parseJSON = parseJSONText "H265AlternateTransferFunctionSei"++-- | H.265 Level.+data H265CodecLevel+  = Auto+  | Level1+  | Level2+  | Level21+  | Level3+  | Level31+  | Level4+  | Level41+  | Level5+  | Level51+  | Level52+  | Level6+  | Level61+  | Level62+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H265CodecLevel where+    parser = takeLowerText >>= \case+        "auto" -> pure Auto+        "level_1" -> pure Level1+        "level_2" -> pure Level2+        "level_2_1" -> pure Level21+        "level_3" -> pure Level3+        "level_3_1" -> pure Level31+        "level_4" -> pure Level4+        "level_4_1" -> pure Level41+        "level_5" -> pure Level5+        "level_5_1" -> pure Level51+        "level_5_2" -> pure Level52+        "level_6" -> pure Level6+        "level_6_1" -> pure Level61+        "level_6_2" -> pure Level62+        e -> fromTextError $ "Failure parsing H265CodecLevel from value: '" <> e+           <> "'. Accepted values: auto, level_1, level_2, level_2_1, level_3, level_3_1, level_4, level_4_1, level_5, level_5_1, level_5_2, level_6, level_6_1, level_6_2"++instance ToText H265CodecLevel where+    toText = \case+        Auto -> "AUTO"+        Level1 -> "LEVEL_1"+        Level2 -> "LEVEL_2"+        Level21 -> "LEVEL_2_1"+        Level3 -> "LEVEL_3"+        Level31 -> "LEVEL_3_1"+        Level4 -> "LEVEL_4"+        Level41 -> "LEVEL_4_1"+        Level5 -> "LEVEL_5"+        Level51 -> "LEVEL_5_1"+        Level52 -> "LEVEL_5_2"+        Level6 -> "LEVEL_6"+        Level61 -> "LEVEL_6_1"+        Level62 -> "LEVEL_6_2"++instance Hashable     H265CodecLevel+instance NFData       H265CodecLevel+instance ToByteString H265CodecLevel+instance ToQuery      H265CodecLevel+instance ToHeader     H265CodecLevel++instance ToJSON H265CodecLevel where+    toJSON = toJSONText++instance FromJSON H265CodecLevel where+    parseJSON = parseJSONText "H265CodecLevel"++-- | Represents the Profile and Tier, per the HEVC (H.265) specification. Selections are grouped as [Profile] / [Tier], so "Main/High" represents Main Profile with High Tier. 4:2:2 profiles are only available with the HEVC 4:2:2 License.+data H265CodecProfile+  = MAIN10High+  | MAIN10Main+  | Main42210BITHigh+  | Main42210BITMain+  | Main4228BITHigh+  | Main4228BITMain+  | MainHigh+  | MainMain+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H265CodecProfile where+    parser = takeLowerText >>= \case+        "main10_high" -> pure MAIN10High+        "main10_main" -> pure MAIN10Main+        "main_422_10bit_high" -> pure Main42210BITHigh+        "main_422_10bit_main" -> pure Main42210BITMain+        "main_422_8bit_high" -> pure Main4228BITHigh+        "main_422_8bit_main" -> pure Main4228BITMain+        "main_high" -> pure MainHigh+        "main_main" -> pure MainMain+        e -> fromTextError $ "Failure parsing H265CodecProfile from value: '" <> e+           <> "'. Accepted values: main10_high, main10_main, main_422_10bit_high, main_422_10bit_main, main_422_8bit_high, main_422_8bit_main, main_high, main_main"++instance ToText H265CodecProfile where+    toText = \case+        MAIN10High -> "MAIN10_HIGH"+        MAIN10Main -> "MAIN10_MAIN"+        Main42210BITHigh -> "MAIN_422_10BIT_HIGH"+        Main42210BITMain -> "MAIN_422_10BIT_MAIN"+        Main4228BITHigh -> "MAIN_422_8BIT_HIGH"+        Main4228BITMain -> "MAIN_422_8BIT_MAIN"+        MainHigh -> "MAIN_HIGH"+        MainMain -> "MAIN_MAIN"++instance Hashable     H265CodecProfile+instance NFData       H265CodecProfile+instance ToByteString H265CodecProfile+instance ToQuery      H265CodecProfile+instance ToHeader     H265CodecProfile++instance ToJSON H265CodecProfile where+    toJSON = toJSONText++instance FromJSON H265CodecProfile where+    parseJSON = parseJSONText "H265CodecProfile"++-- | Adjust quantization within each frame to reduce flicker or 'pop' on I-frames.+data H265FlickerAdaptiveQuantization+  = HFAQDisabled+  | HFAQEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H265FlickerAdaptiveQuantization where+    parser = takeLowerText >>= \case+        "disabled" -> pure HFAQDisabled+        "enabled" -> pure HFAQEnabled+        e -> fromTextError $ "Failure parsing H265FlickerAdaptiveQuantization from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText H265FlickerAdaptiveQuantization where+    toText = \case+        HFAQDisabled -> "DISABLED"+        HFAQEnabled -> "ENABLED"++instance Hashable     H265FlickerAdaptiveQuantization+instance NFData       H265FlickerAdaptiveQuantization+instance ToByteString H265FlickerAdaptiveQuantization+instance ToQuery      H265FlickerAdaptiveQuantization+instance ToHeader     H265FlickerAdaptiveQuantization++instance ToJSON H265FlickerAdaptiveQuantization where+    toJSON = toJSONText++instance FromJSON H265FlickerAdaptiveQuantization where+    parseJSON = parseJSONText "H265FlickerAdaptiveQuantization"++-- | Using the API, set FramerateControl to INITIALIZE_FROM_SOURCE if you want the service to use the framerate from the input. Using the console, do this by choosing INITIALIZE_FROM_SOURCE for Framerate.+data H265FramerateControl+  = HFCInitializeFromSource+  | HFCSpecified+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H265FramerateControl where+    parser = takeLowerText >>= \case+        "initialize_from_source" -> pure HFCInitializeFromSource+        "specified" -> pure HFCSpecified+        e -> fromTextError $ "Failure parsing H265FramerateControl from value: '" <> e+           <> "'. Accepted values: initialize_from_source, specified"++instance ToText H265FramerateControl where+    toText = \case+        HFCInitializeFromSource -> "INITIALIZE_FROM_SOURCE"+        HFCSpecified -> "SPECIFIED"++instance Hashable     H265FramerateControl+instance NFData       H265FramerateControl+instance ToByteString H265FramerateControl+instance ToQuery      H265FramerateControl+instance ToHeader     H265FramerateControl++instance ToJSON H265FramerateControl where+    toJSON = toJSONText++instance FromJSON H265FramerateControl where+    parseJSON = parseJSONText "H265FramerateControl"++-- | When set to INTERPOLATE, produces smoother motion during framerate conversion.+data H265FramerateConversionAlgorithm+  = DuplicateDrop+  | Interpolate+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H265FramerateConversionAlgorithm where+    parser = takeLowerText >>= \case+        "duplicate_drop" -> pure DuplicateDrop+        "interpolate" -> pure Interpolate+        e -> fromTextError $ "Failure parsing H265FramerateConversionAlgorithm from value: '" <> e+           <> "'. Accepted values: duplicate_drop, interpolate"++instance ToText H265FramerateConversionAlgorithm where+    toText = \case+        DuplicateDrop -> "DUPLICATE_DROP"+        Interpolate -> "INTERPOLATE"++instance Hashable     H265FramerateConversionAlgorithm+instance NFData       H265FramerateConversionAlgorithm+instance ToByteString H265FramerateConversionAlgorithm+instance ToQuery      H265FramerateConversionAlgorithm+instance ToHeader     H265FramerateConversionAlgorithm++instance ToJSON H265FramerateConversionAlgorithm where+    toJSON = toJSONText++instance FromJSON H265FramerateConversionAlgorithm where+    parseJSON = parseJSONText "H265FramerateConversionAlgorithm"++-- | If enable, use reference B frames for GOP structures that have B frames > 1.+data H265GopBReference+  = HGBRDisabled+  | HGBREnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H265GopBReference where+    parser = takeLowerText >>= \case+        "disabled" -> pure HGBRDisabled+        "enabled" -> pure HGBREnabled+        e -> fromTextError $ "Failure parsing H265GopBReference from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText H265GopBReference where+    toText = \case+        HGBRDisabled -> "DISABLED"+        HGBREnabled -> "ENABLED"++instance Hashable     H265GopBReference+instance NFData       H265GopBReference+instance ToByteString H265GopBReference+instance ToQuery      H265GopBReference+instance ToHeader     H265GopBReference++instance ToJSON H265GopBReference where+    toJSON = toJSONText++instance FromJSON H265GopBReference where+    parseJSON = parseJSONText "H265GopBReference"++-- | Indicates if the GOP Size in H265 is specified in frames or seconds. If seconds the system will convert the GOP Size into a frame count at run time.+data H265GopSizeUnits+  = Frames+  | Seconds+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H265GopSizeUnits where+    parser = takeLowerText >>= \case+        "frames" -> pure Frames+        "seconds" -> pure Seconds+        e -> fromTextError $ "Failure parsing H265GopSizeUnits from value: '" <> e+           <> "'. Accepted values: frames, seconds"++instance ToText H265GopSizeUnits where+    toText = \case+        Frames -> "FRAMES"+        Seconds -> "SECONDS"++instance Hashable     H265GopSizeUnits+instance NFData       H265GopSizeUnits+instance ToByteString H265GopSizeUnits+instance ToQuery      H265GopSizeUnits+instance ToHeader     H265GopSizeUnits++instance ToJSON H265GopSizeUnits where+    toJSON = toJSONText++instance FromJSON H265GopSizeUnits where+    parseJSON = parseJSONText "H265GopSizeUnits"++-- | Use Interlace mode (InterlaceMode) to choose the scan line type for the output. * Top Field First (TOP_FIELD) and Bottom Field First (BOTTOM_FIELD) produce interlaced output with the entire output having the same field polarity (top or bottom first). * Follow, Default Top (FOLLOw_TOP_FIELD) and Follow, Default Bottom (FOLLOW_BOTTOM_FIELD) use the same  field polarity as the source. Therefore, behavior depends on the input scan type. - If the source is interlaced, the output will be interlaced with the same polarity as the source (it will follow the source). The output could therefore be a mix of "top field first" and "bottom field first". - If the source is progressive, the output will be interlaced with "top field first" or "bottom field first" polarity, depending on which of the Follow options you chose.+data H265InterlaceMode+  = BottomField+  | FollowBottomField+  | FollowTopField+  | Progressive+  | TopField+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H265InterlaceMode where+    parser = takeLowerText >>= \case+        "bottom_field" -> pure BottomField+        "follow_bottom_field" -> pure FollowBottomField+        "follow_top_field" -> pure FollowTopField+        "progressive" -> pure Progressive+        "top_field" -> pure TopField+        e -> fromTextError $ "Failure parsing H265InterlaceMode from value: '" <> e+           <> "'. Accepted values: bottom_field, follow_bottom_field, follow_top_field, progressive, top_field"++instance ToText H265InterlaceMode where+    toText = \case+        BottomField -> "BOTTOM_FIELD"+        FollowBottomField -> "FOLLOW_BOTTOM_FIELD"+        FollowTopField -> "FOLLOW_TOP_FIELD"+        Progressive -> "PROGRESSIVE"+        TopField -> "TOP_FIELD"++instance Hashable     H265InterlaceMode+instance NFData       H265InterlaceMode+instance ToByteString H265InterlaceMode+instance ToQuery      H265InterlaceMode+instance ToHeader     H265InterlaceMode++instance ToJSON H265InterlaceMode where+    toJSON = toJSONText++instance FromJSON H265InterlaceMode where+    parseJSON = parseJSONText "H265InterlaceMode"++-- | Using the API, enable ParFollowSource if you want the service to use the pixel aspect ratio from the input. Using the console, do this by choosing Follow source for Pixel aspect ratio.+data H265ParControl+  = InitializeFromSource+  | Specified+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H265ParControl where+    parser = takeLowerText >>= \case+        "initialize_from_source" -> pure InitializeFromSource+        "specified" -> pure Specified+        e -> fromTextError $ "Failure parsing H265ParControl from value: '" <> e+           <> "'. Accepted values: initialize_from_source, specified"++instance ToText H265ParControl where+    toText = \case+        InitializeFromSource -> "INITIALIZE_FROM_SOURCE"+        Specified -> "SPECIFIED"++instance Hashable     H265ParControl+instance NFData       H265ParControl+instance ToByteString H265ParControl+instance ToQuery      H265ParControl+instance ToHeader     H265ParControl++instance ToJSON H265ParControl where+    toJSON = toJSONText++instance FromJSON H265ParControl where+    parseJSON = parseJSONText "H265ParControl"++-- | Use Quality tuning level (H265QualityTuningLevel) to specifiy whether to use fast single-pass, high-quality singlepass, or high-quality multipass video encoding.+data H265QualityTuningLevel+  = MultiPassHq+  | SinglePass+  | SinglePassHq+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H265QualityTuningLevel where+    parser = takeLowerText >>= \case+        "multi_pass_hq" -> pure MultiPassHq+        "single_pass" -> pure SinglePass+        "single_pass_hq" -> pure SinglePassHq+        e -> fromTextError $ "Failure parsing H265QualityTuningLevel from value: '" <> e+           <> "'. Accepted values: multi_pass_hq, single_pass, single_pass_hq"++instance ToText H265QualityTuningLevel where+    toText = \case+        MultiPassHq -> "MULTI_PASS_HQ"+        SinglePass -> "SINGLE_PASS"+        SinglePassHq -> "SINGLE_PASS_HQ"++instance Hashable     H265QualityTuningLevel+instance NFData       H265QualityTuningLevel+instance ToByteString H265QualityTuningLevel+instance ToQuery      H265QualityTuningLevel+instance ToHeader     H265QualityTuningLevel++instance ToJSON H265QualityTuningLevel where+    toJSON = toJSONText++instance FromJSON H265QualityTuningLevel where+    parseJSON = parseJSONText "H265QualityTuningLevel"++-- | Rate control mode. CQ uses constant quantizer (qp), ABR (average bitrate) does not write HRD parameters.+data H265RateControlMode+  = Cbr+  | Vbr+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H265RateControlMode where+    parser = takeLowerText >>= \case+        "cbr" -> pure Cbr+        "vbr" -> pure Vbr+        e -> fromTextError $ "Failure parsing H265RateControlMode from value: '" <> e+           <> "'. Accepted values: cbr, vbr"++instance ToText H265RateControlMode where+    toText = \case+        Cbr -> "CBR"+        Vbr -> "VBR"++instance Hashable     H265RateControlMode+instance NFData       H265RateControlMode+instance ToByteString H265RateControlMode+instance ToQuery      H265RateControlMode+instance ToHeader     H265RateControlMode++instance ToJSON H265RateControlMode where+    toJSON = toJSONText++instance FromJSON H265RateControlMode where+    parseJSON = parseJSONText "H265RateControlMode"++-- | Specify Sample Adaptive Offset (SAO) filter strength.  Adaptive mode dynamically selects best strength based on content+data H265SampleAdaptiveOffsetFilterMode+  = HSAOFMAdaptive+  | HSAOFMDefault+  | HSAOFMOff+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H265SampleAdaptiveOffsetFilterMode where+    parser = takeLowerText >>= \case+        "adaptive" -> pure HSAOFMAdaptive+        "default" -> pure HSAOFMDefault+        "off" -> pure HSAOFMOff+        e -> fromTextError $ "Failure parsing H265SampleAdaptiveOffsetFilterMode from value: '" <> e+           <> "'. Accepted values: adaptive, default, off"++instance ToText H265SampleAdaptiveOffsetFilterMode where+    toText = \case+        HSAOFMAdaptive -> "ADAPTIVE"+        HSAOFMDefault -> "DEFAULT"+        HSAOFMOff -> "OFF"++instance Hashable     H265SampleAdaptiveOffsetFilterMode+instance NFData       H265SampleAdaptiveOffsetFilterMode+instance ToByteString H265SampleAdaptiveOffsetFilterMode+instance ToQuery      H265SampleAdaptiveOffsetFilterMode+instance ToHeader     H265SampleAdaptiveOffsetFilterMode++instance ToJSON H265SampleAdaptiveOffsetFilterMode where+    toJSON = toJSONText++instance FromJSON H265SampleAdaptiveOffsetFilterMode where+    parseJSON = parseJSONText "H265SampleAdaptiveOffsetFilterMode"++-- | Scene change detection (inserts I-frames on scene changes).+data H265SceneChangeDetect+  = HSCDDisabled+  | HSCDEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H265SceneChangeDetect where+    parser = takeLowerText >>= \case+        "disabled" -> pure HSCDDisabled+        "enabled" -> pure HSCDEnabled+        e -> fromTextError $ "Failure parsing H265SceneChangeDetect from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText H265SceneChangeDetect where+    toText = \case+        HSCDDisabled -> "DISABLED"+        HSCDEnabled -> "ENABLED"++instance Hashable     H265SceneChangeDetect+instance NFData       H265SceneChangeDetect+instance ToByteString H265SceneChangeDetect+instance ToQuery      H265SceneChangeDetect+instance ToHeader     H265SceneChangeDetect++instance ToJSON H265SceneChangeDetect where+    toJSON = toJSONText++instance FromJSON H265SceneChangeDetect where+    parseJSON = parseJSONText "H265SceneChangeDetect"++-- | Enables Slow PAL rate conversion. 23.976fps and 24fps input is relabeled as 25fps, and audio is sped up correspondingly.+data H265SlowPal+  = HSPDisabled+  | HSPEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H265SlowPal where+    parser = takeLowerText >>= \case+        "disabled" -> pure HSPDisabled+        "enabled" -> pure HSPEnabled+        e -> fromTextError $ "Failure parsing H265SlowPal from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText H265SlowPal where+    toText = \case+        HSPDisabled -> "DISABLED"+        HSPEnabled -> "ENABLED"++instance Hashable     H265SlowPal+instance NFData       H265SlowPal+instance ToByteString H265SlowPal+instance ToQuery      H265SlowPal+instance ToHeader     H265SlowPal++instance ToJSON H265SlowPal where+    toJSON = toJSONText++instance FromJSON H265SlowPal where+    parseJSON = parseJSONText "H265SlowPal"++-- | Adjust quantization within each frame based on spatial variation of content complexity.+data H265SpatialAdaptiveQuantization+  = HSAQDisabled+  | HSAQEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H265SpatialAdaptiveQuantization where+    parser = takeLowerText >>= \case+        "disabled" -> pure HSAQDisabled+        "enabled" -> pure HSAQEnabled+        e -> fromTextError $ "Failure parsing H265SpatialAdaptiveQuantization from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText H265SpatialAdaptiveQuantization where+    toText = \case+        HSAQDisabled -> "DISABLED"+        HSAQEnabled -> "ENABLED"++instance Hashable     H265SpatialAdaptiveQuantization+instance NFData       H265SpatialAdaptiveQuantization+instance ToByteString H265SpatialAdaptiveQuantization+instance ToQuery      H265SpatialAdaptiveQuantization+instance ToHeader     H265SpatialAdaptiveQuantization++instance ToJSON H265SpatialAdaptiveQuantization where+    toJSON = toJSONText++instance FromJSON H265SpatialAdaptiveQuantization where+    parseJSON = parseJSONText "H265SpatialAdaptiveQuantization"++-- | This field applies only if the Streams > Advanced > Framerate (framerate) field  is set to 29.970. This field works with the Streams > Advanced > Preprocessors > Deinterlacer  field (deinterlace_mode) and the Streams > Advanced > Interlaced Mode field (interlace_mode)  to identify the scan type for the output: Progressive, Interlaced, Hard Telecine or Soft Telecine. - Hard: produces 29.97i output from 23.976 input. - Soft: produces 23.976; the player converts this output to 29.97i.+data H265Telecine+  = HTHard+  | HTNone+  | HTSoft+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H265Telecine where+    parser = takeLowerText >>= \case+        "hard" -> pure HTHard+        "none" -> pure HTNone+        "soft" -> pure HTSoft+        e -> fromTextError $ "Failure parsing H265Telecine from value: '" <> e+           <> "'. Accepted values: hard, none, soft"++instance ToText H265Telecine where+    toText = \case+        HTHard -> "HARD"+        HTNone -> "NONE"+        HTSoft -> "SOFT"++instance Hashable     H265Telecine+instance NFData       H265Telecine+instance ToByteString H265Telecine+instance ToQuery      H265Telecine+instance ToHeader     H265Telecine++instance ToJSON H265Telecine where+    toJSON = toJSONText++instance FromJSON H265Telecine where+    parseJSON = parseJSONText "H265Telecine"++-- | Adjust quantization within each frame based on temporal variation of content complexity.+data H265TemporalAdaptiveQuantization+  = HTAQDisabled+  | HTAQEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H265TemporalAdaptiveQuantization where+    parser = takeLowerText >>= \case+        "disabled" -> pure HTAQDisabled+        "enabled" -> pure HTAQEnabled+        e -> fromTextError $ "Failure parsing H265TemporalAdaptiveQuantization from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText H265TemporalAdaptiveQuantization where+    toText = \case+        HTAQDisabled -> "DISABLED"+        HTAQEnabled -> "ENABLED"++instance Hashable     H265TemporalAdaptiveQuantization+instance NFData       H265TemporalAdaptiveQuantization+instance ToByteString H265TemporalAdaptiveQuantization+instance ToQuery      H265TemporalAdaptiveQuantization+instance ToHeader     H265TemporalAdaptiveQuantization++instance ToJSON H265TemporalAdaptiveQuantization where+    toJSON = toJSONText++instance FromJSON H265TemporalAdaptiveQuantization where+    parseJSON = parseJSONText "H265TemporalAdaptiveQuantization"++-- | Enables temporal layer identifiers in the encoded bitstream. Up to 3 layers are supported depending on GOP structure: I- and P-frames form one layer, reference B-frames can form a second layer and non-reference b-frames can form a third layer. Decoders can optionally decode only the lower temporal layers to generate a lower frame rate output. For example, given a bitstream with temporal IDs and with b-frames = 1 (i.e. IbPbPb display order), a decoder could decode all the frames for full frame rate output or only the I and P frames (lowest temporal layer) for a half frame rate output.+data H265TemporalIds+  = HTIDisabled+  | HTIEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H265TemporalIds where+    parser = takeLowerText >>= \case+        "disabled" -> pure HTIDisabled+        "enabled" -> pure HTIEnabled+        e -> fromTextError $ "Failure parsing H265TemporalIds from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText H265TemporalIds where+    toText = \case+        HTIDisabled -> "DISABLED"+        HTIEnabled -> "ENABLED"++instance Hashable     H265TemporalIds+instance NFData       H265TemporalIds+instance ToByteString H265TemporalIds+instance ToQuery      H265TemporalIds+instance ToHeader     H265TemporalIds++instance ToJSON H265TemporalIds where+    toJSON = toJSONText++instance FromJSON H265TemporalIds where+    parseJSON = parseJSONText "H265TemporalIds"++-- | Enable use of tiles, allowing horizontal as well as vertical subdivision of the encoded pictures.+data H265Tiles+  = HTDisabled+  | HTEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H265Tiles where+    parser = takeLowerText >>= \case+        "disabled" -> pure HTDisabled+        "enabled" -> pure HTEnabled+        e -> fromTextError $ "Failure parsing H265Tiles from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText H265Tiles where+    toText = \case+        HTDisabled -> "DISABLED"+        HTEnabled -> "ENABLED"++instance Hashable     H265Tiles+instance NFData       H265Tiles+instance ToByteString H265Tiles+instance ToQuery      H265Tiles+instance ToHeader     H265Tiles++instance ToJSON H265Tiles where+    toJSON = toJSONText++instance FromJSON H265Tiles where+    parseJSON = parseJSONText "H265Tiles"++-- | Inserts timecode for each frame as 4 bytes of an unregistered SEI message.+data H265UnregisteredSeiTimecode+  = HUSTDisabled+  | HUSTEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText H265UnregisteredSeiTimecode where+    parser = takeLowerText >>= \case+        "disabled" -> pure HUSTDisabled+        "enabled" -> pure HUSTEnabled+        e -> fromTextError $ "Failure parsing H265UnregisteredSeiTimecode from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText H265UnregisteredSeiTimecode where+    toText = \case+        HUSTDisabled -> "DISABLED"+        HUSTEnabled -> "ENABLED"++instance Hashable     H265UnregisteredSeiTimecode+instance NFData       H265UnregisteredSeiTimecode+instance ToByteString H265UnregisteredSeiTimecode+instance ToQuery      H265UnregisteredSeiTimecode+instance ToHeader     H265UnregisteredSeiTimecode++instance ToJSON H265UnregisteredSeiTimecode where+    toJSON = toJSONText++instance FromJSON H265UnregisteredSeiTimecode where+    parseJSON = parseJSONText "H265UnregisteredSeiTimecode"++data HlsAdMarkers+  = Elemental+  | ElementalSCTE35+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText HlsAdMarkers where+    parser = takeLowerText >>= \case+        "elemental" -> pure Elemental+        "elemental_scte35" -> pure ElementalSCTE35+        e -> fromTextError $ "Failure parsing HlsAdMarkers from value: '" <> e+           <> "'. Accepted values: elemental, elemental_scte35"++instance ToText HlsAdMarkers where+    toText = \case+        Elemental -> "ELEMENTAL"+        ElementalSCTE35 -> "ELEMENTAL_SCTE35"++instance Hashable     HlsAdMarkers+instance NFData       HlsAdMarkers+instance ToByteString HlsAdMarkers+instance ToQuery      HlsAdMarkers+instance ToHeader     HlsAdMarkers++instance ToJSON HlsAdMarkers where+    toJSON = toJSONText++instance FromJSON HlsAdMarkers where+    parseJSON = parseJSONText "HlsAdMarkers"++-- | Four types of audio-only tracks are supported: Audio-Only Variant Stream The client can play back this audio-only stream instead of video in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select, Default Alternate rendition that the client should try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto Select, Not Default Alternate rendition that the client may try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate Audio, not Auto Select Alternate rendition that the client will not try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=NO+data HlsAudioTrackType+  = AlternateAudioAutoSelect+  | AlternateAudioAutoSelectDefault+  | AlternateAudioNotAutoSelect+  | AudioOnlyVariantStream+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText HlsAudioTrackType where+    parser = takeLowerText >>= \case+        "alternate_audio_auto_select" -> pure AlternateAudioAutoSelect+        "alternate_audio_auto_select_default" -> pure AlternateAudioAutoSelectDefault+        "alternate_audio_not_auto_select" -> pure AlternateAudioNotAutoSelect+        "audio_only_variant_stream" -> pure AudioOnlyVariantStream+        e -> fromTextError $ "Failure parsing HlsAudioTrackType from value: '" <> e+           <> "'. Accepted values: alternate_audio_auto_select, alternate_audio_auto_select_default, alternate_audio_not_auto_select, audio_only_variant_stream"++instance ToText HlsAudioTrackType where+    toText = \case+        AlternateAudioAutoSelect -> "ALTERNATE_AUDIO_AUTO_SELECT"+        AlternateAudioAutoSelectDefault -> "ALTERNATE_AUDIO_AUTO_SELECT_DEFAULT"+        AlternateAudioNotAutoSelect -> "ALTERNATE_AUDIO_NOT_AUTO_SELECT"+        AudioOnlyVariantStream -> "AUDIO_ONLY_VARIANT_STREAM"++instance Hashable     HlsAudioTrackType+instance NFData       HlsAudioTrackType+instance ToByteString HlsAudioTrackType+instance ToQuery      HlsAudioTrackType+instance ToHeader     HlsAudioTrackType++instance ToJSON HlsAudioTrackType where+    toJSON = toJSONText++instance FromJSON HlsAudioTrackType where+    parseJSON = parseJSONText "HlsAudioTrackType"++-- | Applies only to 608 Embedded output captions. Insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you specify. Make sure to specify the languages in the order in which they appear in the original source (if the source is embedded format) or the order of the caption selectors (if the source is other than embedded). Otherwise, languages in the manifest will not match up properly with the output captions. None: Include CLOSED-CAPTIONS=NONE line in the manifest. Omit: Omit any CLOSED-CAPTIONS line from the manifest.+data HlsCaptionLanguageSetting+  = HCLSInsert+  | HCLSNone+  | HCLSOmit+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText HlsCaptionLanguageSetting where+    parser = takeLowerText >>= \case+        "insert" -> pure HCLSInsert+        "none" -> pure HCLSNone+        "omit" -> pure HCLSOmit+        e -> fromTextError $ "Failure parsing HlsCaptionLanguageSetting from value: '" <> e+           <> "'. Accepted values: insert, none, omit"++instance ToText HlsCaptionLanguageSetting where+    toText = \case+        HCLSInsert -> "INSERT"+        HCLSNone -> "NONE"+        HCLSOmit -> "OMIT"++instance Hashable     HlsCaptionLanguageSetting+instance NFData       HlsCaptionLanguageSetting+instance ToByteString HlsCaptionLanguageSetting+instance ToQuery      HlsCaptionLanguageSetting+instance ToHeader     HlsCaptionLanguageSetting++instance ToJSON HlsCaptionLanguageSetting where+    toJSON = toJSONText++instance FromJSON HlsCaptionLanguageSetting where+    parseJSON = parseJSONText "HlsCaptionLanguageSetting"++-- | When set to ENABLED, sets #EXT-X-ALLOW-CACHE:no tag, which prevents client from saving media segments for later replay.+data HlsClientCache+  = HCCDisabled+  | HCCEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText HlsClientCache where+    parser = takeLowerText >>= \case+        "disabled" -> pure HCCDisabled+        "enabled" -> pure HCCEnabled+        e -> fromTextError $ "Failure parsing HlsClientCache from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText HlsClientCache where+    toText = \case+        HCCDisabled -> "DISABLED"+        HCCEnabled -> "ENABLED"++instance Hashable     HlsClientCache+instance NFData       HlsClientCache+instance ToByteString HlsClientCache+instance ToQuery      HlsClientCache+instance ToHeader     HlsClientCache++instance ToJSON HlsClientCache where+    toJSON = toJSONText++instance FromJSON HlsClientCache where+    parseJSON = parseJSONText "HlsClientCache"++-- | Specification to use (RFC-6381 or the default RFC-4281) during m3u8 playlist generation.+data HlsCodecSpecification+  = Rfc4281+  | Rfc6381+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText HlsCodecSpecification where+    parser = takeLowerText >>= \case+        "rfc_4281" -> pure Rfc4281+        "rfc_6381" -> pure Rfc6381+        e -> fromTextError $ "Failure parsing HlsCodecSpecification from value: '" <> e+           <> "'. Accepted values: rfc_4281, rfc_6381"++instance ToText HlsCodecSpecification where+    toText = \case+        Rfc4281 -> "RFC_4281"+        Rfc6381 -> "RFC_6381"++instance Hashable     HlsCodecSpecification+instance NFData       HlsCodecSpecification+instance ToByteString HlsCodecSpecification+instance ToQuery      HlsCodecSpecification+instance ToHeader     HlsCodecSpecification++instance ToJSON HlsCodecSpecification where+    toJSON = toJSONText++instance FromJSON HlsCodecSpecification where+    parseJSON = parseJSONText "HlsCodecSpecification"++-- | Indicates whether segments should be placed in subdirectories.+data HlsDirectoryStructure+  = SingleDirectory+  | SubdirectoryPerStream+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText HlsDirectoryStructure where+    parser = takeLowerText >>= \case+        "single_directory" -> pure SingleDirectory+        "subdirectory_per_stream" -> pure SubdirectoryPerStream+        e -> fromTextError $ "Failure parsing HlsDirectoryStructure from value: '" <> e+           <> "'. Accepted values: single_directory, subdirectory_per_stream"++instance ToText HlsDirectoryStructure where+    toText = \case+        SingleDirectory -> "SINGLE_DIRECTORY"+        SubdirectoryPerStream -> "SUBDIRECTORY_PER_STREAM"++instance Hashable     HlsDirectoryStructure+instance NFData       HlsDirectoryStructure+instance ToByteString HlsDirectoryStructure+instance ToQuery      HlsDirectoryStructure+instance ToHeader     HlsDirectoryStructure++instance ToJSON HlsDirectoryStructure where+    toJSON = toJSONText++instance FromJSON HlsDirectoryStructure where+    parseJSON = parseJSONText "HlsDirectoryStructure"++-- | Encrypts the segments with the given encryption scheme. Leave blank to disable. Selecting 'Disabled' in the web interface also disables encryption.+data HlsEncryptionType+  = AES128+  | SampleAES+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText HlsEncryptionType where+    parser = takeLowerText >>= \case+        "aes128" -> pure AES128+        "sample_aes" -> pure SampleAES+        e -> fromTextError $ "Failure parsing HlsEncryptionType from value: '" <> e+           <> "'. Accepted values: aes128, sample_aes"++instance ToText HlsEncryptionType where+    toText = \case+        AES128 -> "AES128"+        SampleAES -> "SAMPLE_AES"++instance Hashable     HlsEncryptionType+instance NFData       HlsEncryptionType+instance ToByteString HlsEncryptionType+instance ToQuery      HlsEncryptionType+instance ToHeader     HlsEncryptionType++instance ToJSON HlsEncryptionType where+    toJSON = toJSONText++instance FromJSON HlsEncryptionType where+    parseJSON = parseJSONText "HlsEncryptionType"++-- | When set to INCLUDE, writes I-Frame Only Manifest in addition to the HLS manifest+data HlsIFrameOnlyManifest+  = HIFOMExclude+  | HIFOMInclude+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText HlsIFrameOnlyManifest where+    parser = takeLowerText >>= \case+        "exclude" -> pure HIFOMExclude+        "include" -> pure HIFOMInclude+        e -> fromTextError $ "Failure parsing HlsIFrameOnlyManifest from value: '" <> e+           <> "'. Accepted values: exclude, include"++instance ToText HlsIFrameOnlyManifest where+    toText = \case+        HIFOMExclude -> "EXCLUDE"+        HIFOMInclude -> "INCLUDE"++instance Hashable     HlsIFrameOnlyManifest+instance NFData       HlsIFrameOnlyManifest+instance ToByteString HlsIFrameOnlyManifest+instance ToQuery      HlsIFrameOnlyManifest+instance ToHeader     HlsIFrameOnlyManifest++instance ToJSON HlsIFrameOnlyManifest where+    toJSON = toJSONText++instance FromJSON HlsIFrameOnlyManifest where+    parseJSON = parseJSONText "HlsIFrameOnlyManifest"++-- | The Initialization Vector is a 128-bit number used in conjunction with the key for encrypting blocks. If set to INCLUDE, Initialization Vector is listed in the manifest. Otherwise Initialization Vector is not in the manifest.+data HlsInitializationVectorInManifest+  = HIVIMExclude+  | HIVIMInclude+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText HlsInitializationVectorInManifest where+    parser = takeLowerText >>= \case+        "exclude" -> pure HIVIMExclude+        "include" -> pure HIVIMInclude+        e -> fromTextError $ "Failure parsing HlsInitializationVectorInManifest from value: '" <> e+           <> "'. Accepted values: exclude, include"++instance ToText HlsInitializationVectorInManifest where+    toText = \case+        HIVIMExclude -> "EXCLUDE"+        HIVIMInclude -> "INCLUDE"++instance Hashable     HlsInitializationVectorInManifest+instance NFData       HlsInitializationVectorInManifest+instance ToByteString HlsInitializationVectorInManifest+instance ToQuery      HlsInitializationVectorInManifest+instance ToHeader     HlsInitializationVectorInManifest++instance ToJSON HlsInitializationVectorInManifest where+    toJSON = toJSONText++instance FromJSON HlsInitializationVectorInManifest where+    parseJSON = parseJSONText "HlsInitializationVectorInManifest"++-- | Indicates which type of key provider is used for encryption.+data HlsKeyProviderType+  = Speke+  | StaticKey+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText HlsKeyProviderType where+    parser = takeLowerText >>= \case+        "speke" -> pure Speke+        "static_key" -> pure StaticKey+        e -> fromTextError $ "Failure parsing HlsKeyProviderType from value: '" <> e+           <> "'. Accepted values: speke, static_key"++instance ToText HlsKeyProviderType where+    toText = \case+        Speke -> "SPEKE"+        StaticKey -> "STATIC_KEY"++instance Hashable     HlsKeyProviderType+instance NFData       HlsKeyProviderType+instance ToByteString HlsKeyProviderType+instance ToQuery      HlsKeyProviderType+instance ToHeader     HlsKeyProviderType++instance ToJSON HlsKeyProviderType where+    toJSON = toJSONText++instance FromJSON HlsKeyProviderType where+    parseJSON = parseJSONText "HlsKeyProviderType"++-- | When set to GZIP, compresses HLS playlist.+data HlsManifestCompression+  = HMCGzip+  | HMCNone+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText HlsManifestCompression where+    parser = takeLowerText >>= \case+        "gzip" -> pure HMCGzip+        "none" -> pure HMCNone+        e -> fromTextError $ "Failure parsing HlsManifestCompression from value: '" <> e+           <> "'. Accepted values: gzip, none"++instance ToText HlsManifestCompression where+    toText = \case+        HMCGzip -> "GZIP"+        HMCNone -> "NONE"++instance Hashable     HlsManifestCompression+instance NFData       HlsManifestCompression+instance ToByteString HlsManifestCompression+instance ToQuery      HlsManifestCompression+instance ToHeader     HlsManifestCompression++instance ToJSON HlsManifestCompression where+    toJSON = toJSONText++instance FromJSON HlsManifestCompression where+    parseJSON = parseJSONText "HlsManifestCompression"++-- | Indicates whether the output manifest should use floating point values for segment duration.+data HlsManifestDurationFormat+  = FloatingPoint+  | Integer+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText HlsManifestDurationFormat where+    parser = takeLowerText >>= \case+        "floating_point" -> pure FloatingPoint+        "integer" -> pure Integer+        e -> fromTextError $ "Failure parsing HlsManifestDurationFormat from value: '" <> e+           <> "'. Accepted values: floating_point, integer"++instance ToText HlsManifestDurationFormat where+    toText = \case+        FloatingPoint -> "FLOATING_POINT"+        Integer -> "INTEGER"++instance Hashable     HlsManifestDurationFormat+instance NFData       HlsManifestDurationFormat+instance ToByteString HlsManifestDurationFormat+instance ToQuery      HlsManifestDurationFormat+instance ToHeader     HlsManifestDurationFormat++instance ToJSON HlsManifestDurationFormat where+    toJSON = toJSONText++instance FromJSON HlsManifestDurationFormat where+    parseJSON = parseJSONText "HlsManifestDurationFormat"++-- | Indicates whether the .m3u8 manifest file should be generated for this HLS output group.+data HlsOutputSelection+  = ManifestsAndSegments+  | SegmentsOnly+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText HlsOutputSelection where+    parser = takeLowerText >>= \case+        "manifests_and_segments" -> pure ManifestsAndSegments+        "segments_only" -> pure SegmentsOnly+        e -> fromTextError $ "Failure parsing HlsOutputSelection from value: '" <> e+           <> "'. Accepted values: manifests_and_segments, segments_only"++instance ToText HlsOutputSelection where+    toText = \case+        ManifestsAndSegments -> "MANIFESTS_AND_SEGMENTS"+        SegmentsOnly -> "SEGMENTS_ONLY"++instance Hashable     HlsOutputSelection+instance NFData       HlsOutputSelection+instance ToByteString HlsOutputSelection+instance ToQuery      HlsOutputSelection+instance ToHeader     HlsOutputSelection++instance ToJSON HlsOutputSelection where+    toJSON = toJSONText++instance FromJSON HlsOutputSelection where+    parseJSON = parseJSONText "HlsOutputSelection"++-- | Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8 manifest files. The value is calculated as follows: either the program date and time are initialized using the input timecode source, or the time is initialized using the input timecode source and the date is initialized using the timestamp_offset.+data HlsProgramDateTime+  = Exclude+  | Include+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText HlsProgramDateTime where+    parser = takeLowerText >>= \case+        "exclude" -> pure Exclude+        "include" -> pure Include+        e -> fromTextError $ "Failure parsing HlsProgramDateTime from value: '" <> e+           <> "'. Accepted values: exclude, include"++instance ToText HlsProgramDateTime where+    toText = \case+        Exclude -> "EXCLUDE"+        Include -> "INCLUDE"++instance Hashable     HlsProgramDateTime+instance NFData       HlsProgramDateTime+instance ToByteString HlsProgramDateTime+instance ToQuery      HlsProgramDateTime+instance ToHeader     HlsProgramDateTime++instance ToJSON HlsProgramDateTime where+    toJSON = toJSONText++instance FromJSON HlsProgramDateTime where+    parseJSON = parseJSONText "HlsProgramDateTime"++-- | When set to SINGLE_FILE, emits program as a single media resource (.ts) file, uses #EXT-X-BYTERANGE tags to index segment for playback.+data HlsSegmentControl+  = SegmentedFiles+  | SingleFile+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText HlsSegmentControl where+    parser = takeLowerText >>= \case+        "segmented_files" -> pure SegmentedFiles+        "single_file" -> pure SingleFile+        e -> fromTextError $ "Failure parsing HlsSegmentControl from value: '" <> e+           <> "'. Accepted values: segmented_files, single_file"++instance ToText HlsSegmentControl where+    toText = \case+        SegmentedFiles -> "SEGMENTED_FILES"+        SingleFile -> "SINGLE_FILE"++instance Hashable     HlsSegmentControl+instance NFData       HlsSegmentControl+instance ToByteString HlsSegmentControl+instance ToQuery      HlsSegmentControl+instance ToHeader     HlsSegmentControl++instance ToJSON HlsSegmentControl where+    toJSON = toJSONText++instance FromJSON HlsSegmentControl where+    parseJSON = parseJSONText "HlsSegmentControl"++-- | Include or exclude RESOLUTION attribute for video in EXT-X-STREAM-INF tag of variant manifest.+data HlsStreamInfResolution+  = HSIRExclude+  | HSIRInclude+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText HlsStreamInfResolution where+    parser = takeLowerText >>= \case+        "exclude" -> pure HSIRExclude+        "include" -> pure HSIRInclude+        e -> fromTextError $ "Failure parsing HlsStreamInfResolution from value: '" <> e+           <> "'. Accepted values: exclude, include"++instance ToText HlsStreamInfResolution where+    toText = \case+        HSIRExclude -> "EXCLUDE"+        HSIRInclude -> "INCLUDE"++instance Hashable     HlsStreamInfResolution+instance NFData       HlsStreamInfResolution+instance ToByteString HlsStreamInfResolution+instance ToQuery      HlsStreamInfResolution+instance ToHeader     HlsStreamInfResolution++instance ToJSON HlsStreamInfResolution where+    toJSON = toJSONText++instance FromJSON HlsStreamInfResolution where+    parseJSON = parseJSONText "HlsStreamInfResolution"++-- | Indicates ID3 frame that has the timecode.+data HlsTimedMetadataId3Frame+  = HTMIFNone+  | HTMIFPriv+  | HTMIFTdrl+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText HlsTimedMetadataId3Frame where+    parser = takeLowerText >>= \case+        "none" -> pure HTMIFNone+        "priv" -> pure HTMIFPriv+        "tdrl" -> pure HTMIFTdrl+        e -> fromTextError $ "Failure parsing HlsTimedMetadataId3Frame from value: '" <> e+           <> "'. Accepted values: none, priv, tdrl"++instance ToText HlsTimedMetadataId3Frame where+    toText = \case+        HTMIFNone -> "NONE"+        HTMIFPriv -> "PRIV"+        HTMIFTdrl -> "TDRL"++instance Hashable     HlsTimedMetadataId3Frame+instance NFData       HlsTimedMetadataId3Frame+instance ToByteString HlsTimedMetadataId3Frame+instance ToQuery      HlsTimedMetadataId3Frame+instance ToHeader     HlsTimedMetadataId3Frame++instance ToJSON HlsTimedMetadataId3Frame where+    toJSON = toJSONText++instance FromJSON HlsTimedMetadataId3Frame where+    parseJSON = parseJSONText "HlsTimedMetadataId3Frame"++-- | Enable Deblock (InputDeblockFilter) to produce smoother motion in the output. Default is disabled. Only manaully controllable for MPEG2 and uncompressed video inputs.+data InputDeblockFilter+  = Disabled+  | Enabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText InputDeblockFilter where+    parser = takeLowerText >>= \case+        "disabled" -> pure Disabled+        "enabled" -> pure Enabled+        e -> fromTextError $ "Failure parsing InputDeblockFilter from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText InputDeblockFilter where+    toText = \case+        Disabled -> "DISABLED"+        Enabled -> "ENABLED"++instance Hashable     InputDeblockFilter+instance NFData       InputDeblockFilter+instance ToByteString InputDeblockFilter+instance ToQuery      InputDeblockFilter+instance ToHeader     InputDeblockFilter++instance ToJSON InputDeblockFilter where+    toJSON = toJSONText++instance FromJSON InputDeblockFilter where+    parseJSON = parseJSONText "InputDeblockFilter"++-- | Enable Denoise (InputDenoiseFilter) to filter noise from the input.  Default is disabled. Only applicable to MPEG2, H.264, H.265, and uncompressed video inputs.+data InputDenoiseFilter+  = IDFDisabled+  | IDFEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText InputDenoiseFilter where+    parser = takeLowerText >>= \case+        "disabled" -> pure IDFDisabled+        "enabled" -> pure IDFEnabled+        e -> fromTextError $ "Failure parsing InputDenoiseFilter from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText InputDenoiseFilter where+    toText = \case+        IDFDisabled -> "DISABLED"+        IDFEnabled -> "ENABLED"++instance Hashable     InputDenoiseFilter+instance NFData       InputDenoiseFilter+instance ToByteString InputDenoiseFilter+instance ToQuery      InputDenoiseFilter+instance ToHeader     InputDenoiseFilter++instance ToJSON InputDenoiseFilter where+    toJSON = toJSONText++instance FromJSON InputDenoiseFilter where+    parseJSON = parseJSONText "InputDenoiseFilter"++-- | Use Filter enable (InputFilterEnable) to specify how the transcoding service applies the denoise and deblock filters. You must also enable the filters separately, with Denoise (InputDenoiseFilter) and Deblock (InputDeblockFilter). * Auto - The transcoding service determines whether to apply filtering, depending on input type and quality. * Disable - The input is not filtered. This is true even if you use the API to enable them in (InputDeblockFilter) and (InputDeblockFilter). * Force - The in put is filtered regardless of input type.+data InputFilterEnable+  = IFEAuto+  | IFEDisable+  | IFEForce+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText InputFilterEnable where+    parser = takeLowerText >>= \case+        "auto" -> pure IFEAuto+        "disable" -> pure IFEDisable+        "force" -> pure IFEForce+        e -> fromTextError $ "Failure parsing InputFilterEnable from value: '" <> e+           <> "'. Accepted values: auto, disable, force"++instance ToText InputFilterEnable where+    toText = \case+        IFEAuto -> "AUTO"+        IFEDisable -> "DISABLE"+        IFEForce -> "FORCE"++instance Hashable     InputFilterEnable+instance NFData       InputFilterEnable+instance ToByteString InputFilterEnable+instance ToQuery      InputFilterEnable+instance ToHeader     InputFilterEnable++instance ToJSON InputFilterEnable where+    toJSON = toJSONText++instance FromJSON InputFilterEnable where+    parseJSON = parseJSONText "InputFilterEnable"++-- | Set PSI control (InputPsiControl) for transport stream inputs to specify which data the demux process to scans. * Ignore PSI - Scan all PIDs for audio and video. * Use PSI - Scan only PSI data.+data InputPsiControl+  = IgnorePsi+  | UsePsi+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText InputPsiControl where+    parser = takeLowerText >>= \case+        "ignore_psi" -> pure IgnorePsi+        "use_psi" -> pure UsePsi+        e -> fromTextError $ "Failure parsing InputPsiControl from value: '" <> e+           <> "'. Accepted values: ignore_psi, use_psi"++instance ToText InputPsiControl where+    toText = \case+        IgnorePsi -> "IGNORE_PSI"+        UsePsi -> "USE_PSI"++instance Hashable     InputPsiControl+instance NFData       InputPsiControl+instance ToByteString InputPsiControl+instance ToQuery      InputPsiControl+instance ToHeader     InputPsiControl++instance ToJSON InputPsiControl where+    toJSON = toJSONText++instance FromJSON InputPsiControl where+    parseJSON = parseJSONText "InputPsiControl"++-- | Use Timecode source (InputTimecodeSource) to specify how timecode information from your input is adjusted and encoded in all outputs for the job. Default is embedded. Set to Embedded (EMBEDDED) to use the timecode that is in the input video. If no embedded timecode is in the source, will set the timecode for the first frame to 00:00:00:00. Set to Start at 0 (ZEROBASED) to set the timecode of the initial frame to 00:00:00:00. Set to Specified start (SPECIFIEDSTART) to provide the initial timecode yourself the setting (Start).+data InputTimecodeSource+  = Embedded+  | Specifiedstart+  | Zerobased+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText InputTimecodeSource where+    parser = takeLowerText >>= \case+        "embedded" -> pure Embedded+        "specifiedstart" -> pure Specifiedstart+        "zerobased" -> pure Zerobased+        e -> fromTextError $ "Failure parsing InputTimecodeSource from value: '" <> e+           <> "'. Accepted values: embedded, specifiedstart, zerobased"++instance ToText InputTimecodeSource where+    toText = \case+        Embedded -> "EMBEDDED"+        Specifiedstart -> "SPECIFIEDSTART"+        Zerobased -> "ZEROBASED"++instance Hashable     InputTimecodeSource+instance NFData       InputTimecodeSource+instance ToByteString InputTimecodeSource+instance ToQuery      InputTimecodeSource+instance ToHeader     InputTimecodeSource++instance ToJSON InputTimecodeSource where+    toJSON = toJSONText++instance FromJSON InputTimecodeSource where+    parseJSON = parseJSONText "InputTimecodeSource"++-- | A job's status can be SUBMITTED, PROGRESSING, COMPLETE, CANCELED, or ERROR.+data JobStatus+  = Canceled+  | Complete+  | Error'+  | Progressing+  | Submitted+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText JobStatus where+    parser = takeLowerText >>= \case+        "canceled" -> pure Canceled+        "complete" -> pure Complete+        "error" -> pure Error'+        "progressing" -> pure Progressing+        "submitted" -> pure Submitted+        e -> fromTextError $ "Failure parsing JobStatus from value: '" <> e+           <> "'. Accepted values: canceled, complete, error, progressing, submitted"++instance ToText JobStatus where+    toText = \case+        Canceled -> "CANCELED"+        Complete -> "COMPLETE"+        Error' -> "ERROR"+        Progressing -> "PROGRESSING"+        Submitted -> "SUBMITTED"++instance Hashable     JobStatus+instance NFData       JobStatus+instance ToByteString JobStatus+instance ToQuery      JobStatus+instance ToHeader     JobStatus++instance ToJSON JobStatus where+    toJSON = toJSONText++instance FromJSON JobStatus where+    parseJSON = parseJSONText "JobStatus"++-- | Optional. When you request a list of job templates, you can choose to list them alphabetically by NAME or chronologically by CREATION_DATE. If you don't specify, the service will list them by name.+data JobTemplateListBy+  = JTLBCreationDate+  | JTLBName+  | JTLBSystem+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText JobTemplateListBy where+    parser = takeLowerText >>= \case+        "creation_date" -> pure JTLBCreationDate+        "name" -> pure JTLBName+        "system" -> pure JTLBSystem+        e -> fromTextError $ "Failure parsing JobTemplateListBy from value: '" <> e+           <> "'. Accepted values: creation_date, name, system"++instance ToText JobTemplateListBy where+    toText = \case+        JTLBCreationDate -> "CREATION_DATE"+        JTLBName -> "NAME"+        JTLBSystem -> "SYSTEM"++instance Hashable     JobTemplateListBy+instance NFData       JobTemplateListBy+instance ToByteString JobTemplateListBy+instance ToQuery      JobTemplateListBy+instance ToHeader     JobTemplateListBy++instance ToJSON JobTemplateListBy where+    toJSON = toJSONText++-- | Code to specify the language, following the specification "ISO 639-2 three-digit code":http://www.loc.gov/standards/iso639-2/+data LanguageCode+  = Aar+  | Abk+  | Afr+  | Aka+  | Amh+  | Ara+  | Arg+  | Asm+  | Ava+  | Ave+  | Aym+  | Aze+  | Bak+  | Bam+  | Bel+  | Ben+  | Bih+  | Bis+  | Bod+  | Bos+  | Bre+  | Bul+  | Cat+  | Ces+  | Cha+  | Che+  | Chu+  | Chv+  | Cor+  | Cos+  | Cre+  | Cym+  | Dan+  | Deu+  | Div+  | Dzo+  | Ell+  | Eng+  | Enm+  | Epo+  | Est+  | Eus+  | Ewe+  | Fao+  | Fas+  | Fij+  | Fin+  | Fra+  | Frm+  | Fry+  | Ful+  | Ger+  | Gla+  | Gle+  | Glg+  | Glv+  | Grn+  | Guj+  | Hat+  | Hau+  | Heb+  | Her+  | Hin+  | Hmo+  | Hrv+  | Hun+  | Hye+  | IPk+  | Ibo+  | Ido+  | Iii+  | Iku+  | Ile+  | Ina+  | Ind+  | Isl+  | Ita+  | Jav+  | Jpn+  | Kal+  | Kan+  | Kas+  | Kat+  | Kau+  | Kaz+  | Khm+  | Kik+  | Kin+  | Kir+  | Kom+  | Kon+  | Kor+  | Kua+  | Kur+  | Lao+  | Lat+  | Lav+  | Lim+  | Lin+  | Lit+  | Ltz+  | Lub+  | Lug+  | Mah+  | Mal+  | Mar+  | Mkd+  | Mlg+  | Mlt+  | Mon+  | Mri+  | Msa+  | Mya+  | Nau+  | Nav+  | Nbl+  | Nde+  | Ndo+  | Nep+  | Nld+  | Nno+  | Nob+  | Nor+  | Nya+  | OSs+  | Oci+  | Oji+  | Ori+  | Orj+  | Orm+  | Pan+  | Pli+  | Pol+  | Por+  | Pus+  | Qaa+  | Qpc+  | Que+  | Roh+  | Ron+  | Run+  | Rus+  | Sag+  | San+  | Sin+  | Slk+  | Slv+  | Sme+  | Smo+  | Sna+  | Snd+  | Som+  | Sot+  | Spa+  | Sqi+  | Srb+  | Srd+  | Ssw+  | Sun+  | Swa+  | Swe+  | Tah+  | Tam+  | Tat+  | Tel+  | Tgk+  | Tgl+  | Tha+  | Tir+  | Tng+  | Ton+  | Tsn+  | Tso+  | Tuk+  | Tur+  | Twi+  | Uig+  | Ukr+  | Urd+  | Uzb+  | Ven+  | Vie+  | Vol+  | Wln+  | Wol+  | Xho+  | Yid+  | Yor+  | Zha+  | Zho+  | Zul+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText LanguageCode where+    parser = takeLowerText >>= \case+        "aar" -> pure Aar+        "abk" -> pure Abk+        "afr" -> pure Afr+        "aka" -> pure Aka+        "amh" -> pure Amh+        "ara" -> pure Ara+        "arg" -> pure Arg+        "asm" -> pure Asm+        "ava" -> pure Ava+        "ave" -> pure Ave+        "aym" -> pure Aym+        "aze" -> pure Aze+        "bak" -> pure Bak+        "bam" -> pure Bam+        "bel" -> pure Bel+        "ben" -> pure Ben+        "bih" -> pure Bih+        "bis" -> pure Bis+        "bod" -> pure Bod+        "bos" -> pure Bos+        "bre" -> pure Bre+        "bul" -> pure Bul+        "cat" -> pure Cat+        "ces" -> pure Ces+        "cha" -> pure Cha+        "che" -> pure Che+        "chu" -> pure Chu+        "chv" -> pure Chv+        "cor" -> pure Cor+        "cos" -> pure Cos+        "cre" -> pure Cre+        "cym" -> pure Cym+        "dan" -> pure Dan+        "deu" -> pure Deu+        "div" -> pure Div+        "dzo" -> pure Dzo+        "ell" -> pure Ell+        "eng" -> pure Eng+        "enm" -> pure Enm+        "epo" -> pure Epo+        "est" -> pure Est+        "eus" -> pure Eus+        "ewe" -> pure Ewe+        "fao" -> pure Fao+        "fas" -> pure Fas+        "fij" -> pure Fij+        "fin" -> pure Fin+        "fra" -> pure Fra+        "frm" -> pure Frm+        "fry" -> pure Fry+        "ful" -> pure Ful+        "ger" -> pure Ger+        "gla" -> pure Gla+        "gle" -> pure Gle+        "glg" -> pure Glg+        "glv" -> pure Glv+        "grn" -> pure Grn+        "guj" -> pure Guj+        "hat" -> pure Hat+        "hau" -> pure Hau+        "heb" -> pure Heb+        "her" -> pure Her+        "hin" -> pure Hin+        "hmo" -> pure Hmo+        "hrv" -> pure Hrv+        "hun" -> pure Hun+        "hye" -> pure Hye+        "ipk" -> pure IPk+        "ibo" -> pure Ibo+        "ido" -> pure Ido+        "iii" -> pure Iii+        "iku" -> pure Iku+        "ile" -> pure Ile+        "ina" -> pure Ina+        "ind" -> pure Ind+        "isl" -> pure Isl+        "ita" -> pure Ita+        "jav" -> pure Jav+        "jpn" -> pure Jpn+        "kal" -> pure Kal+        "kan" -> pure Kan+        "kas" -> pure Kas+        "kat" -> pure Kat+        "kau" -> pure Kau+        "kaz" -> pure Kaz+        "khm" -> pure Khm+        "kik" -> pure Kik+        "kin" -> pure Kin+        "kir" -> pure Kir+        "kom" -> pure Kom+        "kon" -> pure Kon+        "kor" -> pure Kor+        "kua" -> pure Kua+        "kur" -> pure Kur+        "lao" -> pure Lao+        "lat" -> pure Lat+        "lav" -> pure Lav+        "lim" -> pure Lim+        "lin" -> pure Lin+        "lit" -> pure Lit+        "ltz" -> pure Ltz+        "lub" -> pure Lub+        "lug" -> pure Lug+        "mah" -> pure Mah+        "mal" -> pure Mal+        "mar" -> pure Mar+        "mkd" -> pure Mkd+        "mlg" -> pure Mlg+        "mlt" -> pure Mlt+        "mon" -> pure Mon+        "mri" -> pure Mri+        "msa" -> pure Msa+        "mya" -> pure Mya+        "nau" -> pure Nau+        "nav" -> pure Nav+        "nbl" -> pure Nbl+        "nde" -> pure Nde+        "ndo" -> pure Ndo+        "nep" -> pure Nep+        "nld" -> pure Nld+        "nno" -> pure Nno+        "nob" -> pure Nob+        "nor" -> pure Nor+        "nya" -> pure Nya+        "oss" -> pure OSs+        "oci" -> pure Oci+        "oji" -> pure Oji+        "ori" -> pure Ori+        "orj" -> pure Orj+        "orm" -> pure Orm+        "pan" -> pure Pan+        "pli" -> pure Pli+        "pol" -> pure Pol+        "por" -> pure Por+        "pus" -> pure Pus+        "qaa" -> pure Qaa+        "qpc" -> pure Qpc+        "que" -> pure Que+        "roh" -> pure Roh+        "ron" -> pure Ron+        "run" -> pure Run+        "rus" -> pure Rus+        "sag" -> pure Sag+        "san" -> pure San+        "sin" -> pure Sin+        "slk" -> pure Slk+        "slv" -> pure Slv+        "sme" -> pure Sme+        "smo" -> pure Smo+        "sna" -> pure Sna+        "snd" -> pure Snd+        "som" -> pure Som+        "sot" -> pure Sot+        "spa" -> pure Spa+        "sqi" -> pure Sqi+        "srb" -> pure Srb+        "srd" -> pure Srd+        "ssw" -> pure Ssw+        "sun" -> pure Sun+        "swa" -> pure Swa+        "swe" -> pure Swe+        "tah" -> pure Tah+        "tam" -> pure Tam+        "tat" -> pure Tat+        "tel" -> pure Tel+        "tgk" -> pure Tgk+        "tgl" -> pure Tgl+        "tha" -> pure Tha+        "tir" -> pure Tir+        "tng" -> pure Tng+        "ton" -> pure Ton+        "tsn" -> pure Tsn+        "tso" -> pure Tso+        "tuk" -> pure Tuk+        "tur" -> pure Tur+        "twi" -> pure Twi+        "uig" -> pure Uig+        "ukr" -> pure Ukr+        "urd" -> pure Urd+        "uzb" -> pure Uzb+        "ven" -> pure Ven+        "vie" -> pure Vie+        "vol" -> pure Vol+        "wln" -> pure Wln+        "wol" -> pure Wol+        "xho" -> pure Xho+        "yid" -> pure Yid+        "yor" -> pure Yor+        "zha" -> pure Zha+        "zho" -> pure Zho+        "zul" -> pure Zul+        e -> fromTextError $ "Failure parsing LanguageCode from value: '" <> e+           <> "'. Accepted values: aar, abk, afr, aka, amh, ara, arg, asm, ava, ave, aym, aze, bak, bam, bel, ben, bih, bis, bod, bos, bre, bul, cat, ces, cha, che, chu, chv, cor, cos, cre, cym, dan, deu, div, dzo, ell, eng, enm, epo, est, eus, ewe, fao, fas, fij, fin, fra, frm, fry, ful, ger, gla, gle, glg, glv, grn, guj, hat, hau, heb, her, hin, hmo, hrv, hun, hye, ipk, ibo, ido, iii, iku, ile, ina, ind, isl, ita, jav, jpn, kal, kan, kas, kat, kau, kaz, khm, kik, kin, kir, kom, kon, kor, kua, kur, lao, lat, lav, lim, lin, lit, ltz, lub, lug, mah, mal, mar, mkd, mlg, mlt, mon, mri, msa, mya, nau, nav, nbl, nde, ndo, nep, nld, nno, nob, nor, nya, oss, oci, oji, ori, orj, orm, pan, pli, pol, por, pus, qaa, qpc, que, roh, ron, run, rus, sag, san, sin, slk, slv, sme, smo, sna, snd, som, sot, spa, sqi, srb, srd, ssw, sun, swa, swe, tah, tam, tat, tel, tgk, tgl, tha, tir, tng, ton, tsn, tso, tuk, tur, twi, uig, ukr, urd, uzb, ven, vie, vol, wln, wol, xho, yid, yor, zha, zho, zul"++instance ToText LanguageCode where+    toText = \case+        Aar -> "AAR"+        Abk -> "ABK"+        Afr -> "AFR"+        Aka -> "AKA"+        Amh -> "AMH"+        Ara -> "ARA"+        Arg -> "ARG"+        Asm -> "ASM"+        Ava -> "AVA"+        Ave -> "AVE"+        Aym -> "AYM"+        Aze -> "AZE"+        Bak -> "BAK"+        Bam -> "BAM"+        Bel -> "BEL"+        Ben -> "BEN"+        Bih -> "BIH"+        Bis -> "BIS"+        Bod -> "BOD"+        Bos -> "BOS"+        Bre -> "BRE"+        Bul -> "BUL"+        Cat -> "CAT"+        Ces -> "CES"+        Cha -> "CHA"+        Che -> "CHE"+        Chu -> "CHU"+        Chv -> "CHV"+        Cor -> "COR"+        Cos -> "COS"+        Cre -> "CRE"+        Cym -> "CYM"+        Dan -> "DAN"+        Deu -> "DEU"+        Div -> "DIV"+        Dzo -> "DZO"+        Ell -> "ELL"+        Eng -> "ENG"+        Enm -> "ENM"+        Epo -> "EPO"+        Est -> "EST"+        Eus -> "EUS"+        Ewe -> "EWE"+        Fao -> "FAO"+        Fas -> "FAS"+        Fij -> "FIJ"+        Fin -> "FIN"+        Fra -> "FRA"+        Frm -> "FRM"+        Fry -> "FRY"+        Ful -> "FUL"+        Ger -> "GER"+        Gla -> "GLA"+        Gle -> "GLE"+        Glg -> "GLG"+        Glv -> "GLV"+        Grn -> "GRN"+        Guj -> "GUJ"+        Hat -> "HAT"+        Hau -> "HAU"+        Heb -> "HEB"+        Her -> "HER"+        Hin -> "HIN"+        Hmo -> "HMO"+        Hrv -> "HRV"+        Hun -> "HUN"+        Hye -> "HYE"+        IPk -> "IPK"+        Ibo -> "IBO"+        Ido -> "IDO"+        Iii -> "III"+        Iku -> "IKU"+        Ile -> "ILE"+        Ina -> "INA"+        Ind -> "IND"+        Isl -> "ISL"+        Ita -> "ITA"+        Jav -> "JAV"+        Jpn -> "JPN"+        Kal -> "KAL"+        Kan -> "KAN"+        Kas -> "KAS"+        Kat -> "KAT"+        Kau -> "KAU"+        Kaz -> "KAZ"+        Khm -> "KHM"+        Kik -> "KIK"+        Kin -> "KIN"+        Kir -> "KIR"+        Kom -> "KOM"+        Kon -> "KON"+        Kor -> "KOR"+        Kua -> "KUA"+        Kur -> "KUR"+        Lao -> "LAO"+        Lat -> "LAT"+        Lav -> "LAV"+        Lim -> "LIM"+        Lin -> "LIN"+        Lit -> "LIT"+        Ltz -> "LTZ"+        Lub -> "LUB"+        Lug -> "LUG"+        Mah -> "MAH"+        Mal -> "MAL"+        Mar -> "MAR"+        Mkd -> "MKD"+        Mlg -> "MLG"+        Mlt -> "MLT"+        Mon -> "MON"+        Mri -> "MRI"+        Msa -> "MSA"+        Mya -> "MYA"+        Nau -> "NAU"+        Nav -> "NAV"+        Nbl -> "NBL"+        Nde -> "NDE"+        Ndo -> "NDO"+        Nep -> "NEP"+        Nld -> "NLD"+        Nno -> "NNO"+        Nob -> "NOB"+        Nor -> "NOR"+        Nya -> "NYA"+        OSs -> "OSS"+        Oci -> "OCI"+        Oji -> "OJI"+        Ori -> "ORI"+        Orj -> "ORJ"+        Orm -> "ORM"+        Pan -> "PAN"+        Pli -> "PLI"+        Pol -> "POL"+        Por -> "POR"+        Pus -> "PUS"+        Qaa -> "QAA"+        Qpc -> "QPC"+        Que -> "QUE"+        Roh -> "ROH"+        Ron -> "RON"+        Run -> "RUN"+        Rus -> "RUS"+        Sag -> "SAG"+        San -> "SAN"+        Sin -> "SIN"+        Slk -> "SLK"+        Slv -> "SLV"+        Sme -> "SME"+        Smo -> "SMO"+        Sna -> "SNA"+        Snd -> "SND"+        Som -> "SOM"+        Sot -> "SOT"+        Spa -> "SPA"+        Sqi -> "SQI"+        Srb -> "SRB"+        Srd -> "SRD"+        Ssw -> "SSW"+        Sun -> "SUN"+        Swa -> "SWA"+        Swe -> "SWE"+        Tah -> "TAH"+        Tam -> "TAM"+        Tat -> "TAT"+        Tel -> "TEL"+        Tgk -> "TGK"+        Tgl -> "TGL"+        Tha -> "THA"+        Tir -> "TIR"+        Tng -> "TNG"+        Ton -> "TON"+        Tsn -> "TSN"+        Tso -> "TSO"+        Tuk -> "TUK"+        Tur -> "TUR"+        Twi -> "TWI"+        Uig -> "UIG"+        Ukr -> "UKR"+        Urd -> "URD"+        Uzb -> "UZB"+        Ven -> "VEN"+        Vie -> "VIE"+        Vol -> "VOL"+        Wln -> "WLN"+        Wol -> "WOL"+        Xho -> "XHO"+        Yid -> "YID"+        Yor -> "YOR"+        Zha -> "ZHA"+        Zho -> "ZHO"+        Zul -> "ZUL"++instance Hashable     LanguageCode+instance NFData       LanguageCode+instance ToByteString LanguageCode+instance ToQuery      LanguageCode+instance ToHeader     LanguageCode++instance ToJSON LanguageCode where+    toJSON = toJSONText++instance FromJSON LanguageCode where+    parseJSON = parseJSONText "LanguageCode"++-- | Selects between the DVB and ATSC buffer models for Dolby Digital audio.+data M2tsAudioBufferModel+  = Atsc+  | Dvb+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText M2tsAudioBufferModel where+    parser = takeLowerText >>= \case+        "atsc" -> pure Atsc+        "dvb" -> pure Dvb+        e -> fromTextError $ "Failure parsing M2tsAudioBufferModel from value: '" <> e+           <> "'. Accepted values: atsc, dvb"++instance ToText M2tsAudioBufferModel where+    toText = \case+        Atsc -> "ATSC"+        Dvb -> "DVB"++instance Hashable     M2tsAudioBufferModel+instance NFData       M2tsAudioBufferModel+instance ToByteString M2tsAudioBufferModel+instance ToQuery      M2tsAudioBufferModel+instance ToHeader     M2tsAudioBufferModel++instance ToJSON M2tsAudioBufferModel where+    toJSON = toJSONText++instance FromJSON M2tsAudioBufferModel where+    parseJSON = parseJSONText "M2tsAudioBufferModel"++-- | Controls what buffer model to use for accurate interleaving. If set to MULTIPLEX, use multiplex  buffer model. If set to NONE, this can lead to lower latency, but low-memory devices may not be able to play back the stream without interruptions.+data M2tsBufferModel+  = MBMMultiplex+  | MBMNone+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText M2tsBufferModel where+    parser = takeLowerText >>= \case+        "multiplex" -> pure MBMMultiplex+        "none" -> pure MBMNone+        e -> fromTextError $ "Failure parsing M2tsBufferModel from value: '" <> e+           <> "'. Accepted values: multiplex, none"++instance ToText M2tsBufferModel where+    toText = \case+        MBMMultiplex -> "MULTIPLEX"+        MBMNone -> "NONE"++instance Hashable     M2tsBufferModel+instance NFData       M2tsBufferModel+instance ToByteString M2tsBufferModel+instance ToQuery      M2tsBufferModel+instance ToHeader     M2tsBufferModel++instance ToJSON M2tsBufferModel where+    toJSON = toJSONText++instance FromJSON M2tsBufferModel where+    parseJSON = parseJSONText "M2tsBufferModel"++-- | When set to VIDEO_AND_FIXED_INTERVALS, audio EBP markers will be added to partitions 3 and 4. The interval between these additional markers will be fixed, and will be slightly shorter than the video EBP marker interval. When set to VIDEO_INTERVAL, these additional markers will not be inserted. Only applicable when EBP segmentation markers are is selected (segmentationMarkers is EBP or EBP_LEGACY).+data M2tsEbpAudioInterval+  = VideoAndFixedIntervals+  | VideoInterval+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText M2tsEbpAudioInterval where+    parser = takeLowerText >>= \case+        "video_and_fixed_intervals" -> pure VideoAndFixedIntervals+        "video_interval" -> pure VideoInterval+        e -> fromTextError $ "Failure parsing M2tsEbpAudioInterval from value: '" <> e+           <> "'. Accepted values: video_and_fixed_intervals, video_interval"++instance ToText M2tsEbpAudioInterval where+    toText = \case+        VideoAndFixedIntervals -> "VIDEO_AND_FIXED_INTERVALS"+        VideoInterval -> "VIDEO_INTERVAL"++instance Hashable     M2tsEbpAudioInterval+instance NFData       M2tsEbpAudioInterval+instance ToByteString M2tsEbpAudioInterval+instance ToQuery      M2tsEbpAudioInterval+instance ToHeader     M2tsEbpAudioInterval++instance ToJSON M2tsEbpAudioInterval where+    toJSON = toJSONText++instance FromJSON M2tsEbpAudioInterval where+    parseJSON = parseJSONText "M2tsEbpAudioInterval"++-- | Selects which PIDs to place EBP markers on. They can either be placed only on the video PID, or on both the video PID and all audio PIDs. Only applicable when EBP segmentation markers are is selected (segmentationMarkers is EBP or EBP_LEGACY).+data M2tsEbpPlacement+  = VideoAndAudioPids+  | VideoPid+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText M2tsEbpPlacement where+    parser = takeLowerText >>= \case+        "video_and_audio_pids" -> pure VideoAndAudioPids+        "video_pid" -> pure VideoPid+        e -> fromTextError $ "Failure parsing M2tsEbpPlacement from value: '" <> e+           <> "'. Accepted values: video_and_audio_pids, video_pid"++instance ToText M2tsEbpPlacement where+    toText = \case+        VideoAndAudioPids -> "VIDEO_AND_AUDIO_PIDS"+        VideoPid -> "VIDEO_PID"++instance Hashable     M2tsEbpPlacement+instance NFData       M2tsEbpPlacement+instance ToByteString M2tsEbpPlacement+instance ToQuery      M2tsEbpPlacement+instance ToHeader     M2tsEbpPlacement++instance ToJSON M2tsEbpPlacement where+    toJSON = toJSONText++instance FromJSON M2tsEbpPlacement where+    parseJSON = parseJSONText "M2tsEbpPlacement"++-- | Controls whether to include the ES Rate field in the PES header.+data M2tsEsRateInPes+  = MERIPExclude+  | MERIPInclude+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText M2tsEsRateInPes where+    parser = takeLowerText >>= \case+        "exclude" -> pure MERIPExclude+        "include" -> pure MERIPInclude+        e -> fromTextError $ "Failure parsing M2tsEsRateInPes from value: '" <> e+           <> "'. Accepted values: exclude, include"++instance ToText M2tsEsRateInPes where+    toText = \case+        MERIPExclude -> "EXCLUDE"+        MERIPInclude -> "INCLUDE"++instance Hashable     M2tsEsRateInPes+instance NFData       M2tsEsRateInPes+instance ToByteString M2tsEsRateInPes+instance ToQuery      M2tsEsRateInPes+instance ToHeader     M2tsEsRateInPes++instance ToJSON M2tsEsRateInPes where+    toJSON = toJSONText++instance FromJSON M2tsEsRateInPes where+    parseJSON = parseJSONText "M2tsEsRateInPes"++-- | If INSERT, Nielsen inaudible tones for media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the output.+data M2tsNielsenId3+  = MNIInsert+  | MNINone+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText M2tsNielsenId3 where+    parser = takeLowerText >>= \case+        "insert" -> pure MNIInsert+        "none" -> pure MNINone+        e -> fromTextError $ "Failure parsing M2tsNielsenId3 from value: '" <> e+           <> "'. Accepted values: insert, none"++instance ToText M2tsNielsenId3 where+    toText = \case+        MNIInsert -> "INSERT"+        MNINone -> "NONE"++instance Hashable     M2tsNielsenId3+instance NFData       M2tsNielsenId3+instance ToByteString M2tsNielsenId3+instance ToQuery      M2tsNielsenId3+instance ToHeader     M2tsNielsenId3++instance ToJSON M2tsNielsenId3 where+    toJSON = toJSONText++instance FromJSON M2tsNielsenId3 where+    parseJSON = parseJSONText "M2tsNielsenId3"++-- | When set to PCR_EVERY_PES_PACKET, a Program Clock Reference value is inserted for every Packetized Elementary Stream (PES) header. This is effective only when the PCR PID is the same as the video or audio elementary stream.+data M2tsPcrControl+  = ConfiguredPcrPeriod+  | PcrEveryPesPacket+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText M2tsPcrControl where+    parser = takeLowerText >>= \case+        "configured_pcr_period" -> pure ConfiguredPcrPeriod+        "pcr_every_pes_packet" -> pure PcrEveryPesPacket+        e -> fromTextError $ "Failure parsing M2tsPcrControl from value: '" <> e+           <> "'. Accepted values: configured_pcr_period, pcr_every_pes_packet"++instance ToText M2tsPcrControl where+    toText = \case+        ConfiguredPcrPeriod -> "CONFIGURED_PCR_PERIOD"+        PcrEveryPesPacket -> "PCR_EVERY_PES_PACKET"++instance Hashable     M2tsPcrControl+instance NFData       M2tsPcrControl+instance ToByteString M2tsPcrControl+instance ToQuery      M2tsPcrControl+instance ToHeader     M2tsPcrControl++instance ToJSON M2tsPcrControl where+    toJSON = toJSONText++instance FromJSON M2tsPcrControl where+    parseJSON = parseJSONText "M2tsPcrControl"++-- | When set to CBR, inserts null packets into transport stream to fill specified bitrate. When set to VBR, the bitrate setting acts as the maximum bitrate, but the output will not be padded up to that bitrate.+data M2tsRateMode+  = MRMCbr+  | MRMVbr+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText M2tsRateMode where+    parser = takeLowerText >>= \case+        "cbr" -> pure MRMCbr+        "vbr" -> pure MRMVbr+        e -> fromTextError $ "Failure parsing M2tsRateMode from value: '" <> e+           <> "'. Accepted values: cbr, vbr"++instance ToText M2tsRateMode where+    toText = \case+        MRMCbr -> "CBR"+        MRMVbr -> "VBR"++instance Hashable     M2tsRateMode+instance NFData       M2tsRateMode+instance ToByteString M2tsRateMode+instance ToQuery      M2tsRateMode+instance ToHeader     M2tsRateMode++instance ToJSON M2tsRateMode where+    toJSON = toJSONText++instance FromJSON M2tsRateMode where+    parseJSON = parseJSONText "M2tsRateMode"++-- | Enables SCTE-35 passthrough (scte35Source) to pass any SCTE-35 signals from input to output.+data M2tsScte35Source+  = MSSNone+  | MSSPassthrough+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText M2tsScte35Source where+    parser = takeLowerText >>= \case+        "none" -> pure MSSNone+        "passthrough" -> pure MSSPassthrough+        e -> fromTextError $ "Failure parsing M2tsScte35Source from value: '" <> e+           <> "'. Accepted values: none, passthrough"++instance ToText M2tsScte35Source where+    toText = \case+        MSSNone -> "NONE"+        MSSPassthrough -> "PASSTHROUGH"++instance Hashable     M2tsScte35Source+instance NFData       M2tsScte35Source+instance ToByteString M2tsScte35Source+instance ToQuery      M2tsScte35Source+instance ToHeader     M2tsScte35Source++instance ToJSON M2tsScte35Source where+    toJSON = toJSONText++instance FromJSON M2tsScte35Source where+    parseJSON = parseJSONText "M2tsScte35Source"++-- | Inserts segmentation markers at each segmentation_time period. rai_segstart sets the Random Access Indicator bit in the adaptation field. rai_adapt sets the RAI bit and adds the current timecode in the private data bytes. psi_segstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point information to the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebp_legacy adds Encoder Boundary Point information to the adaptation field using a legacy proprietary format.+data M2tsSegmentationMarkers+  = MSMEbp+  | MSMEbpLegacy+  | MSMNone+  | MSMPsiSegstart+  | MSMRaiAdapt+  | MSMRaiSegstart+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText M2tsSegmentationMarkers where+    parser = takeLowerText >>= \case+        "ebp" -> pure MSMEbp+        "ebp_legacy" -> pure MSMEbpLegacy+        "none" -> pure MSMNone+        "psi_segstart" -> pure MSMPsiSegstart+        "rai_adapt" -> pure MSMRaiAdapt+        "rai_segstart" -> pure MSMRaiSegstart+        e -> fromTextError $ "Failure parsing M2tsSegmentationMarkers from value: '" <> e+           <> "'. Accepted values: ebp, ebp_legacy, none, psi_segstart, rai_adapt, rai_segstart"++instance ToText M2tsSegmentationMarkers where+    toText = \case+        MSMEbp -> "EBP"+        MSMEbpLegacy -> "EBP_LEGACY"+        MSMNone -> "NONE"+        MSMPsiSegstart -> "PSI_SEGSTART"+        MSMRaiAdapt -> "RAI_ADAPT"+        MSMRaiSegstart -> "RAI_SEGSTART"++instance Hashable     M2tsSegmentationMarkers+instance NFData       M2tsSegmentationMarkers+instance ToByteString M2tsSegmentationMarkers+instance ToQuery      M2tsSegmentationMarkers+instance ToHeader     M2tsSegmentationMarkers++instance ToJSON M2tsSegmentationMarkers where+    toJSON = toJSONText++instance FromJSON M2tsSegmentationMarkers where+    parseJSON = parseJSONText "M2tsSegmentationMarkers"++-- | The segmentation style parameter controls how segmentation markers are inserted into the transport stream. With avails, it is possible that segments may be truncated, which can influence where future segmentation markers are inserted. When a segmentation style of "reset_cadence" is selected and a segment is truncated due to an avail, we will reset the segmentation cadence. This means the subsequent segment will have a duration of of $segmentation_time seconds. When a segmentation style of "maintain_cadence" is selected and a segment is truncated due to an avail, we will not reset the segmentation cadence. This means the subsequent segment will likely be truncated as well. However, all segments after that will have a duration of $segmentation_time seconds. Note that EBP lookahead is a slight exception to this rule.+data M2tsSegmentationStyle+  = MaintainCadence+  | ResetCadence+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText M2tsSegmentationStyle where+    parser = takeLowerText >>= \case+        "maintain_cadence" -> pure MaintainCadence+        "reset_cadence" -> pure ResetCadence+        e -> fromTextError $ "Failure parsing M2tsSegmentationStyle from value: '" <> e+           <> "'. Accepted values: maintain_cadence, reset_cadence"++instance ToText M2tsSegmentationStyle where+    toText = \case+        MaintainCadence -> "MAINTAIN_CADENCE"+        ResetCadence -> "RESET_CADENCE"++instance Hashable     M2tsSegmentationStyle+instance NFData       M2tsSegmentationStyle+instance ToByteString M2tsSegmentationStyle+instance ToQuery      M2tsSegmentationStyle+instance ToHeader     M2tsSegmentationStyle++instance ToJSON M2tsSegmentationStyle where+    toJSON = toJSONText++instance FromJSON M2tsSegmentationStyle where+    parseJSON = parseJSONText "M2tsSegmentationStyle"++-- | If INSERT, Nielsen inaudible tones for media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the output.+data M3u8NielsenId3+  = M3uInsert+  | M3uNone+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText M3u8NielsenId3 where+    parser = takeLowerText >>= \case+        "insert" -> pure M3uInsert+        "none" -> pure M3uNone+        e -> fromTextError $ "Failure parsing M3u8NielsenId3 from value: '" <> e+           <> "'. Accepted values: insert, none"++instance ToText M3u8NielsenId3 where+    toText = \case+        M3uInsert -> "INSERT"+        M3uNone -> "NONE"++instance Hashable     M3u8NielsenId3+instance NFData       M3u8NielsenId3+instance ToByteString M3u8NielsenId3+instance ToQuery      M3u8NielsenId3+instance ToHeader     M3u8NielsenId3++instance ToJSON M3u8NielsenId3 where+    toJSON = toJSONText++instance FromJSON M3u8NielsenId3 where+    parseJSON = parseJSONText "M3u8NielsenId3"++-- | When set to PCR_EVERY_PES_PACKET a Program Clock Reference value is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only when the PCR PID is the same as the video or audio elementary stream.+data M3u8PcrControl+  = MPCConfiguredPcrPeriod+  | MPCPcrEveryPesPacket+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText M3u8PcrControl where+    parser = takeLowerText >>= \case+        "configured_pcr_period" -> pure MPCConfiguredPcrPeriod+        "pcr_every_pes_packet" -> pure MPCPcrEveryPesPacket+        e -> fromTextError $ "Failure parsing M3u8PcrControl from value: '" <> e+           <> "'. Accepted values: configured_pcr_period, pcr_every_pes_packet"++instance ToText M3u8PcrControl where+    toText = \case+        MPCConfiguredPcrPeriod -> "CONFIGURED_PCR_PERIOD"+        MPCPcrEveryPesPacket -> "PCR_EVERY_PES_PACKET"++instance Hashable     M3u8PcrControl+instance NFData       M3u8PcrControl+instance ToByteString M3u8PcrControl+instance ToQuery      M3u8PcrControl+instance ToHeader     M3u8PcrControl++instance ToJSON M3u8PcrControl where+    toJSON = toJSONText++instance FromJSON M3u8PcrControl where+    parseJSON = parseJSONText "M3u8PcrControl"++-- | Enables SCTE-35 passthrough (scte35Source) to pass any SCTE-35 signals from input to output.+data M3u8Scte35Source+  = MNone+  | MPassthrough+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText M3u8Scte35Source where+    parser = takeLowerText >>= \case+        "none" -> pure MNone+        "passthrough" -> pure MPassthrough+        e -> fromTextError $ "Failure parsing M3u8Scte35Source from value: '" <> e+           <> "'. Accepted values: none, passthrough"++instance ToText M3u8Scte35Source where+    toText = \case+        MNone -> "NONE"+        MPassthrough -> "PASSTHROUGH"++instance Hashable     M3u8Scte35Source+instance NFData       M3u8Scte35Source+instance ToByteString M3u8Scte35Source+instance ToQuery      M3u8Scte35Source+instance ToHeader     M3u8Scte35Source++instance ToJSON M3u8Scte35Source where+    toJSON = toJSONText++instance FromJSON M3u8Scte35Source where+    parseJSON = parseJSONText "M3u8Scte35Source"++-- | When enabled, include 'clap' atom if appropriate for the video output settings.+data MovClapAtom+  = MExclude+  | MInclude+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText MovClapAtom where+    parser = takeLowerText >>= \case+        "exclude" -> pure MExclude+        "include" -> pure MInclude+        e -> fromTextError $ "Failure parsing MovClapAtom from value: '" <> e+           <> "'. Accepted values: exclude, include"++instance ToText MovClapAtom where+    toText = \case+        MExclude -> "EXCLUDE"+        MInclude -> "INCLUDE"++instance Hashable     MovClapAtom+instance NFData       MovClapAtom+instance ToByteString MovClapAtom+instance ToQuery      MovClapAtom+instance ToHeader     MovClapAtom++instance ToJSON MovClapAtom where+    toJSON = toJSONText++instance FromJSON MovClapAtom where+    parseJSON = parseJSONText "MovClapAtom"++-- | When enabled, file composition times will start at zero, composition times in the 'ctts' (composition time to sample) box for B-frames will be negative, and a 'cslg' (composition shift least greatest) box will be included per 14496-1 amendment 1. This improves compatibility with Apple players and tools.+data MovCslgAtom+  = MCAExclude+  | MCAInclude+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText MovCslgAtom where+    parser = takeLowerText >>= \case+        "exclude" -> pure MCAExclude+        "include" -> pure MCAInclude+        e -> fromTextError $ "Failure parsing MovCslgAtom from value: '" <> e+           <> "'. Accepted values: exclude, include"++instance ToText MovCslgAtom where+    toText = \case+        MCAExclude -> "EXCLUDE"+        MCAInclude -> "INCLUDE"++instance Hashable     MovCslgAtom+instance NFData       MovCslgAtom+instance ToByteString MovCslgAtom+instance ToQuery      MovCslgAtom+instance ToHeader     MovCslgAtom++instance ToJSON MovCslgAtom where+    toJSON = toJSONText++instance FromJSON MovCslgAtom where+    parseJSON = parseJSONText "MovCslgAtom"++-- | When set to XDCAM, writes MPEG2 video streams into the QuickTime file using XDCAM fourcc codes. This increases compatibility with Apple editors and players, but may decrease compatibility with other players. Only applicable when the video codec is MPEG2.+data MovMpeg2FourCCControl+  = Mpeg+  | Xdcam+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText MovMpeg2FourCCControl where+    parser = takeLowerText >>= \case+        "mpeg" -> pure Mpeg+        "xdcam" -> pure Xdcam+        e -> fromTextError $ "Failure parsing MovMpeg2FourCCControl from value: '" <> e+           <> "'. Accepted values: mpeg, xdcam"++instance ToText MovMpeg2FourCCControl where+    toText = \case+        Mpeg -> "MPEG"+        Xdcam -> "XDCAM"++instance Hashable     MovMpeg2FourCCControl+instance NFData       MovMpeg2FourCCControl+instance ToByteString MovMpeg2FourCCControl+instance ToQuery      MovMpeg2FourCCControl+instance ToHeader     MovMpeg2FourCCControl++instance ToJSON MovMpeg2FourCCControl where+    toJSON = toJSONText++instance FromJSON MovMpeg2FourCCControl where+    parseJSON = parseJSONText "MovMpeg2FourCCControl"++-- | If set to OMNEON, inserts Omneon-compatible padding+data MovPaddingControl+  = MPCNone+  | MPCOmneon+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText MovPaddingControl where+    parser = takeLowerText >>= \case+        "none" -> pure MPCNone+        "omneon" -> pure MPCOmneon+        e -> fromTextError $ "Failure parsing MovPaddingControl from value: '" <> e+           <> "'. Accepted values: none, omneon"++instance ToText MovPaddingControl where+    toText = \case+        MPCNone -> "NONE"+        MPCOmneon -> "OMNEON"++instance Hashable     MovPaddingControl+instance NFData       MovPaddingControl+instance ToByteString MovPaddingControl+instance ToQuery      MovPaddingControl+instance ToHeader     MovPaddingControl++instance ToJSON MovPaddingControl where+    toJSON = toJSONText++instance FromJSON MovPaddingControl where+    parseJSON = parseJSONText "MovPaddingControl"++-- | A value of 'external' creates separate media files and the wrapper file (.mov) contains references to these media files. A value of 'self_contained' creates only a wrapper (.mov) file and this file contains all of the media.+data MovReference+  = External+  | SelfContained+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText MovReference where+    parser = takeLowerText >>= \case+        "external" -> pure External+        "self_contained" -> pure SelfContained+        e -> fromTextError $ "Failure parsing MovReference from value: '" <> e+           <> "'. Accepted values: external, self_contained"++instance ToText MovReference where+    toText = \case+        External -> "EXTERNAL"+        SelfContained -> "SELF_CONTAINED"++instance Hashable     MovReference+instance NFData       MovReference+instance ToByteString MovReference+instance ToQuery      MovReference+instance ToHeader     MovReference++instance ToJSON MovReference where+    toJSON = toJSONText++instance FromJSON MovReference where+    parseJSON = parseJSONText "MovReference"++-- | When enabled, file composition times will start at zero, composition times in the 'ctts' (composition time to sample) box for B-frames will be negative, and a 'cslg' (composition shift least greatest) box will be included per 14496-1 amendment 1. This improves compatibility with Apple players and tools.+data Mp4CslgAtom+  = Mp4Exclude+  | Mp4Include+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Mp4CslgAtom where+    parser = takeLowerText >>= \case+        "exclude" -> pure Mp4Exclude+        "include" -> pure Mp4Include+        e -> fromTextError $ "Failure parsing Mp4CslgAtom from value: '" <> e+           <> "'. Accepted values: exclude, include"++instance ToText Mp4CslgAtom where+    toText = \case+        Mp4Exclude -> "EXCLUDE"+        Mp4Include -> "INCLUDE"++instance Hashable     Mp4CslgAtom+instance NFData       Mp4CslgAtom+instance ToByteString Mp4CslgAtom+instance ToQuery      Mp4CslgAtom+instance ToHeader     Mp4CslgAtom++instance ToJSON Mp4CslgAtom where+    toJSON = toJSONText++instance FromJSON Mp4CslgAtom where+    parseJSON = parseJSONText "Mp4CslgAtom"++-- | Inserts a free-space box immediately after the moov box.+data Mp4FreeSpaceBox+  = MFSBExclude+  | MFSBInclude+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Mp4FreeSpaceBox where+    parser = takeLowerText >>= \case+        "exclude" -> pure MFSBExclude+        "include" -> pure MFSBInclude+        e -> fromTextError $ "Failure parsing Mp4FreeSpaceBox from value: '" <> e+           <> "'. Accepted values: exclude, include"++instance ToText Mp4FreeSpaceBox where+    toText = \case+        MFSBExclude -> "EXCLUDE"+        MFSBInclude -> "INCLUDE"++instance Hashable     Mp4FreeSpaceBox+instance NFData       Mp4FreeSpaceBox+instance ToByteString Mp4FreeSpaceBox+instance ToQuery      Mp4FreeSpaceBox+instance ToHeader     Mp4FreeSpaceBox++instance ToJSON Mp4FreeSpaceBox where+    toJSON = toJSONText++instance FromJSON Mp4FreeSpaceBox where+    parseJSON = parseJSONText "Mp4FreeSpaceBox"++-- | If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning of the archive as required for progressive downloading. Otherwise it is placed normally at the end.+data Mp4MoovPlacement+  = MMPNormal+  | MMPProgressiveDownload+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Mp4MoovPlacement where+    parser = takeLowerText >>= \case+        "normal" -> pure MMPNormal+        "progressive_download" -> pure MMPProgressiveDownload+        e -> fromTextError $ "Failure parsing Mp4MoovPlacement from value: '" <> e+           <> "'. Accepted values: normal, progressive_download"++instance ToText Mp4MoovPlacement where+    toText = \case+        MMPNormal -> "NORMAL"+        MMPProgressiveDownload -> "PROGRESSIVE_DOWNLOAD"++instance Hashable     Mp4MoovPlacement+instance NFData       Mp4MoovPlacement+instance ToByteString Mp4MoovPlacement+instance ToQuery      Mp4MoovPlacement+instance ToHeader     Mp4MoovPlacement++instance ToJSON Mp4MoovPlacement where+    toJSON = toJSONText++instance FromJSON Mp4MoovPlacement where+    parseJSON = parseJSONText "Mp4MoovPlacement"++-- | Adaptive quantization. Allows intra-frame quantizers to vary to improve visual quality.+data Mpeg2AdaptiveQuantization+  = MAQHigh+  | MAQLow+  | MAQMedium+  | MAQOff+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Mpeg2AdaptiveQuantization where+    parser = takeLowerText >>= \case+        "high" -> pure MAQHigh+        "low" -> pure MAQLow+        "medium" -> pure MAQMedium+        "off" -> pure MAQOff+        e -> fromTextError $ "Failure parsing Mpeg2AdaptiveQuantization from value: '" <> e+           <> "'. Accepted values: high, low, medium, off"++instance ToText Mpeg2AdaptiveQuantization where+    toText = \case+        MAQHigh -> "HIGH"+        MAQLow -> "LOW"+        MAQMedium -> "MEDIUM"+        MAQOff -> "OFF"++instance Hashable     Mpeg2AdaptiveQuantization+instance NFData       Mpeg2AdaptiveQuantization+instance ToByteString Mpeg2AdaptiveQuantization+instance ToQuery      Mpeg2AdaptiveQuantization+instance ToHeader     Mpeg2AdaptiveQuantization++instance ToJSON Mpeg2AdaptiveQuantization where+    toJSON = toJSONText++instance FromJSON Mpeg2AdaptiveQuantization where+    parseJSON = parseJSONText "Mpeg2AdaptiveQuantization"++-- | Use Level (Mpeg2CodecLevel) to set the MPEG-2 level for the video output.+data Mpeg2CodecLevel+  = MCLAuto+  | MCLHIGH1440+  | MCLHigh+  | MCLLow+  | MCLMain+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Mpeg2CodecLevel where+    parser = takeLowerText >>= \case+        "auto" -> pure MCLAuto+        "high1440" -> pure MCLHIGH1440+        "high" -> pure MCLHigh+        "low" -> pure MCLLow+        "main" -> pure MCLMain+        e -> fromTextError $ "Failure parsing Mpeg2CodecLevel from value: '" <> e+           <> "'. Accepted values: auto, high1440, high, low, main"++instance ToText Mpeg2CodecLevel where+    toText = \case+        MCLAuto -> "AUTO"+        MCLHIGH1440 -> "HIGH1440"+        MCLHigh -> "HIGH"+        MCLLow -> "LOW"+        MCLMain -> "MAIN"++instance Hashable     Mpeg2CodecLevel+instance NFData       Mpeg2CodecLevel+instance ToByteString Mpeg2CodecLevel+instance ToQuery      Mpeg2CodecLevel+instance ToHeader     Mpeg2CodecLevel++instance ToJSON Mpeg2CodecLevel where+    toJSON = toJSONText++instance FromJSON Mpeg2CodecLevel where+    parseJSON = parseJSONText "Mpeg2CodecLevel"++-- | Use Profile (Mpeg2CodecProfile) to set the MPEG-2 profile for the video output.+data Mpeg2CodecProfile+  = Main+  | Profile422+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Mpeg2CodecProfile where+    parser = takeLowerText >>= \case+        "main" -> pure Main+        "profile_422" -> pure Profile422+        e -> fromTextError $ "Failure parsing Mpeg2CodecProfile from value: '" <> e+           <> "'. Accepted values: main, profile_422"++instance ToText Mpeg2CodecProfile where+    toText = \case+        Main -> "MAIN"+        Profile422 -> "PROFILE_422"++instance Hashable     Mpeg2CodecProfile+instance NFData       Mpeg2CodecProfile+instance ToByteString Mpeg2CodecProfile+instance ToQuery      Mpeg2CodecProfile+instance ToHeader     Mpeg2CodecProfile++instance ToJSON Mpeg2CodecProfile where+    toJSON = toJSONText++instance FromJSON Mpeg2CodecProfile where+    parseJSON = parseJSONText "Mpeg2CodecProfile"++-- | Using the API, set FramerateControl to INITIALIZE_FROM_SOURCE if you want the service to use the framerate from the input. Using the console, do this by choosing INITIALIZE_FROM_SOURCE for Framerate.+data Mpeg2FramerateControl+  = MFCInitializeFromSource+  | MFCSpecified+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Mpeg2FramerateControl where+    parser = takeLowerText >>= \case+        "initialize_from_source" -> pure MFCInitializeFromSource+        "specified" -> pure MFCSpecified+        e -> fromTextError $ "Failure parsing Mpeg2FramerateControl from value: '" <> e+           <> "'. Accepted values: initialize_from_source, specified"++instance ToText Mpeg2FramerateControl where+    toText = \case+        MFCInitializeFromSource -> "INITIALIZE_FROM_SOURCE"+        MFCSpecified -> "SPECIFIED"++instance Hashable     Mpeg2FramerateControl+instance NFData       Mpeg2FramerateControl+instance ToByteString Mpeg2FramerateControl+instance ToQuery      Mpeg2FramerateControl+instance ToHeader     Mpeg2FramerateControl++instance ToJSON Mpeg2FramerateControl where+    toJSON = toJSONText++instance FromJSON Mpeg2FramerateControl where+    parseJSON = parseJSONText "Mpeg2FramerateControl"++-- | When set to INTERPOLATE, produces smoother motion during framerate conversion.+data Mpeg2FramerateConversionAlgorithm+  = MFCADuplicateDrop+  | MFCAInterpolate+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Mpeg2FramerateConversionAlgorithm where+    parser = takeLowerText >>= \case+        "duplicate_drop" -> pure MFCADuplicateDrop+        "interpolate" -> pure MFCAInterpolate+        e -> fromTextError $ "Failure parsing Mpeg2FramerateConversionAlgorithm from value: '" <> e+           <> "'. Accepted values: duplicate_drop, interpolate"++instance ToText Mpeg2FramerateConversionAlgorithm where+    toText = \case+        MFCADuplicateDrop -> "DUPLICATE_DROP"+        MFCAInterpolate -> "INTERPOLATE"++instance Hashable     Mpeg2FramerateConversionAlgorithm+instance NFData       Mpeg2FramerateConversionAlgorithm+instance ToByteString Mpeg2FramerateConversionAlgorithm+instance ToQuery      Mpeg2FramerateConversionAlgorithm+instance ToHeader     Mpeg2FramerateConversionAlgorithm++instance ToJSON Mpeg2FramerateConversionAlgorithm where+    toJSON = toJSONText++instance FromJSON Mpeg2FramerateConversionAlgorithm where+    parseJSON = parseJSONText "Mpeg2FramerateConversionAlgorithm"++-- | Indicates if the GOP Size in MPEG2 is specified in frames or seconds. If seconds the system will convert the GOP Size into a frame count at run time.+data Mpeg2GopSizeUnits+  = MGSUFrames+  | MGSUSeconds+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Mpeg2GopSizeUnits where+    parser = takeLowerText >>= \case+        "frames" -> pure MGSUFrames+        "seconds" -> pure MGSUSeconds+        e -> fromTextError $ "Failure parsing Mpeg2GopSizeUnits from value: '" <> e+           <> "'. Accepted values: frames, seconds"++instance ToText Mpeg2GopSizeUnits where+    toText = \case+        MGSUFrames -> "FRAMES"+        MGSUSeconds -> "SECONDS"++instance Hashable     Mpeg2GopSizeUnits+instance NFData       Mpeg2GopSizeUnits+instance ToByteString Mpeg2GopSizeUnits+instance ToQuery      Mpeg2GopSizeUnits+instance ToHeader     Mpeg2GopSizeUnits++instance ToJSON Mpeg2GopSizeUnits where+    toJSON = toJSONText++instance FromJSON Mpeg2GopSizeUnits where+    parseJSON = parseJSONText "Mpeg2GopSizeUnits"++-- | Use Interlace mode (InterlaceMode) to choose the scan line type for the output. * Top Field First (TOP_FIELD) and Bottom Field First (BOTTOM_FIELD) produce interlaced output with the entire output having the same field polarity (top or bottom first). * Follow, Default Top (FOLLOw_TOP_FIELD) and Follow, Default Bottom (FOLLOW_BOTTOM_FIELD) use the same  field polarity as the source. Therefore, behavior depends on the input scan type. - If the source is interlaced, the output will be interlaced with the same polarity as the source (it will follow the source). The output could therefore be a mix of "top field first" and "bottom field first". - If the source is progressive, the output will be interlaced with "top field first" or "bottom field first" polarity, depending on which of the Follow options you chose.+data Mpeg2InterlaceMode+  = MIMBottomField+  | MIMFollowBottomField+  | MIMFollowTopField+  | MIMProgressive+  | MIMTopField+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Mpeg2InterlaceMode where+    parser = takeLowerText >>= \case+        "bottom_field" -> pure MIMBottomField+        "follow_bottom_field" -> pure MIMFollowBottomField+        "follow_top_field" -> pure MIMFollowTopField+        "progressive" -> pure MIMProgressive+        "top_field" -> pure MIMTopField+        e -> fromTextError $ "Failure parsing Mpeg2InterlaceMode from value: '" <> e+           <> "'. Accepted values: bottom_field, follow_bottom_field, follow_top_field, progressive, top_field"++instance ToText Mpeg2InterlaceMode where+    toText = \case+        MIMBottomField -> "BOTTOM_FIELD"+        MIMFollowBottomField -> "FOLLOW_BOTTOM_FIELD"+        MIMFollowTopField -> "FOLLOW_TOP_FIELD"+        MIMProgressive -> "PROGRESSIVE"+        MIMTopField -> "TOP_FIELD"++instance Hashable     Mpeg2InterlaceMode+instance NFData       Mpeg2InterlaceMode+instance ToByteString Mpeg2InterlaceMode+instance ToQuery      Mpeg2InterlaceMode+instance ToHeader     Mpeg2InterlaceMode++instance ToJSON Mpeg2InterlaceMode where+    toJSON = toJSONText++instance FromJSON Mpeg2InterlaceMode where+    parseJSON = parseJSONText "Mpeg2InterlaceMode"++-- | Use Intra DC precision (Mpeg2IntraDcPrecision) to set quantization precision for intra-block DC coefficients. If you choose the value auto, the service will automatically select the precision based on the per-frame compression ratio.+data Mpeg2IntraDcPrecision+  = MIDPAuto+  | MIDPIntraDcPrecision10+  | MIDPIntraDcPrecision11+  | MIDPIntraDcPrecision8+  | MIDPIntraDcPrecision9+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Mpeg2IntraDcPrecision where+    parser = takeLowerText >>= \case+        "auto" -> pure MIDPAuto+        "intra_dc_precision_10" -> pure MIDPIntraDcPrecision10+        "intra_dc_precision_11" -> pure MIDPIntraDcPrecision11+        "intra_dc_precision_8" -> pure MIDPIntraDcPrecision8+        "intra_dc_precision_9" -> pure MIDPIntraDcPrecision9+        e -> fromTextError $ "Failure parsing Mpeg2IntraDcPrecision from value: '" <> e+           <> "'. Accepted values: auto, intra_dc_precision_10, intra_dc_precision_11, intra_dc_precision_8, intra_dc_precision_9"++instance ToText Mpeg2IntraDcPrecision where+    toText = \case+        MIDPAuto -> "AUTO"+        MIDPIntraDcPrecision10 -> "INTRA_DC_PRECISION_10"+        MIDPIntraDcPrecision11 -> "INTRA_DC_PRECISION_11"+        MIDPIntraDcPrecision8 -> "INTRA_DC_PRECISION_8"+        MIDPIntraDcPrecision9 -> "INTRA_DC_PRECISION_9"++instance Hashable     Mpeg2IntraDcPrecision+instance NFData       Mpeg2IntraDcPrecision+instance ToByteString Mpeg2IntraDcPrecision+instance ToQuery      Mpeg2IntraDcPrecision+instance ToHeader     Mpeg2IntraDcPrecision++instance ToJSON Mpeg2IntraDcPrecision where+    toJSON = toJSONText++instance FromJSON Mpeg2IntraDcPrecision where+    parseJSON = parseJSONText "Mpeg2IntraDcPrecision"++-- | Using the API, enable ParFollowSource if you want the service to use the pixel aspect ratio from the input. Using the console, do this by choosing Follow source for Pixel aspect ratio.+data Mpeg2ParControl+  = MPCInitializeFromSource+  | MPCSpecified+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Mpeg2ParControl where+    parser = takeLowerText >>= \case+        "initialize_from_source" -> pure MPCInitializeFromSource+        "specified" -> pure MPCSpecified+        e -> fromTextError $ "Failure parsing Mpeg2ParControl from value: '" <> e+           <> "'. Accepted values: initialize_from_source, specified"++instance ToText Mpeg2ParControl where+    toText = \case+        MPCInitializeFromSource -> "INITIALIZE_FROM_SOURCE"+        MPCSpecified -> "SPECIFIED"++instance Hashable     Mpeg2ParControl+instance NFData       Mpeg2ParControl+instance ToByteString Mpeg2ParControl+instance ToQuery      Mpeg2ParControl+instance ToHeader     Mpeg2ParControl++instance ToJSON Mpeg2ParControl where+    toJSON = toJSONText++instance FromJSON Mpeg2ParControl where+    parseJSON = parseJSONText "Mpeg2ParControl"++-- | Use Quality tuning level (Mpeg2QualityTuningLevel) to specifiy whether to use single-pass or multipass video encoding.+data Mpeg2QualityTuningLevel+  = MQTLMultiPass+  | MQTLSinglePass+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Mpeg2QualityTuningLevel where+    parser = takeLowerText >>= \case+        "multi_pass" -> pure MQTLMultiPass+        "single_pass" -> pure MQTLSinglePass+        e -> fromTextError $ "Failure parsing Mpeg2QualityTuningLevel from value: '" <> e+           <> "'. Accepted values: multi_pass, single_pass"++instance ToText Mpeg2QualityTuningLevel where+    toText = \case+        MQTLMultiPass -> "MULTI_PASS"+        MQTLSinglePass -> "SINGLE_PASS"++instance Hashable     Mpeg2QualityTuningLevel+instance NFData       Mpeg2QualityTuningLevel+instance ToByteString Mpeg2QualityTuningLevel+instance ToQuery      Mpeg2QualityTuningLevel+instance ToHeader     Mpeg2QualityTuningLevel++instance ToJSON Mpeg2QualityTuningLevel where+    toJSON = toJSONText++instance FromJSON Mpeg2QualityTuningLevel where+    parseJSON = parseJSONText "Mpeg2QualityTuningLevel"++-- | Use Rate control mode (Mpeg2RateControlMode) to specifiy whether the bitrate is variable (vbr) or constant (cbr).+data Mpeg2RateControlMode+  = MRCMCbr+  | MRCMVbr+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Mpeg2RateControlMode where+    parser = takeLowerText >>= \case+        "cbr" -> pure MRCMCbr+        "vbr" -> pure MRCMVbr+        e -> fromTextError $ "Failure parsing Mpeg2RateControlMode from value: '" <> e+           <> "'. Accepted values: cbr, vbr"++instance ToText Mpeg2RateControlMode where+    toText = \case+        MRCMCbr -> "CBR"+        MRCMVbr -> "VBR"++instance Hashable     Mpeg2RateControlMode+instance NFData       Mpeg2RateControlMode+instance ToByteString Mpeg2RateControlMode+instance ToQuery      Mpeg2RateControlMode+instance ToHeader     Mpeg2RateControlMode++instance ToJSON Mpeg2RateControlMode where+    toJSON = toJSONText++instance FromJSON Mpeg2RateControlMode where+    parseJSON = parseJSONText "Mpeg2RateControlMode"++-- | Scene change detection (inserts I-frames on scene changes).+data Mpeg2SceneChangeDetect+  = MSCDDisabled+  | MSCDEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Mpeg2SceneChangeDetect where+    parser = takeLowerText >>= \case+        "disabled" -> pure MSCDDisabled+        "enabled" -> pure MSCDEnabled+        e -> fromTextError $ "Failure parsing Mpeg2SceneChangeDetect from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText Mpeg2SceneChangeDetect where+    toText = \case+        MSCDDisabled -> "DISABLED"+        MSCDEnabled -> "ENABLED"++instance Hashable     Mpeg2SceneChangeDetect+instance NFData       Mpeg2SceneChangeDetect+instance ToByteString Mpeg2SceneChangeDetect+instance ToQuery      Mpeg2SceneChangeDetect+instance ToHeader     Mpeg2SceneChangeDetect++instance ToJSON Mpeg2SceneChangeDetect where+    toJSON = toJSONText++instance FromJSON Mpeg2SceneChangeDetect where+    parseJSON = parseJSONText "Mpeg2SceneChangeDetect"++-- | Enables Slow PAL rate conversion. 23.976fps and 24fps input is relabeled as 25fps, and audio is sped up correspondingly.+data Mpeg2SlowPal+  = MSPDisabled+  | MSPEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Mpeg2SlowPal where+    parser = takeLowerText >>= \case+        "disabled" -> pure MSPDisabled+        "enabled" -> pure MSPEnabled+        e -> fromTextError $ "Failure parsing Mpeg2SlowPal from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText Mpeg2SlowPal where+    toText = \case+        MSPDisabled -> "DISABLED"+        MSPEnabled -> "ENABLED"++instance Hashable     Mpeg2SlowPal+instance NFData       Mpeg2SlowPal+instance ToByteString Mpeg2SlowPal+instance ToQuery      Mpeg2SlowPal+instance ToHeader     Mpeg2SlowPal++instance ToJSON Mpeg2SlowPal where+    toJSON = toJSONText++instance FromJSON Mpeg2SlowPal where+    parseJSON = parseJSONText "Mpeg2SlowPal"++-- | Adjust quantization within each frame based on spatial variation of content complexity.+data Mpeg2SpatialAdaptiveQuantization+  = MSAQDisabled+  | MSAQEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Mpeg2SpatialAdaptiveQuantization where+    parser = takeLowerText >>= \case+        "disabled" -> pure MSAQDisabled+        "enabled" -> pure MSAQEnabled+        e -> fromTextError $ "Failure parsing Mpeg2SpatialAdaptiveQuantization from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText Mpeg2SpatialAdaptiveQuantization where+    toText = \case+        MSAQDisabled -> "DISABLED"+        MSAQEnabled -> "ENABLED"++instance Hashable     Mpeg2SpatialAdaptiveQuantization+instance NFData       Mpeg2SpatialAdaptiveQuantization+instance ToByteString Mpeg2SpatialAdaptiveQuantization+instance ToQuery      Mpeg2SpatialAdaptiveQuantization+instance ToHeader     Mpeg2SpatialAdaptiveQuantization++instance ToJSON Mpeg2SpatialAdaptiveQuantization where+    toJSON = toJSONText++instance FromJSON Mpeg2SpatialAdaptiveQuantization where+    parseJSON = parseJSONText "Mpeg2SpatialAdaptiveQuantization"++-- | Produces a Type D-10 compatible bitstream (SMPTE 356M-2001).+data Mpeg2Syntax+  = MSD10+  | MSDefault+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Mpeg2Syntax where+    parser = takeLowerText >>= \case+        "d_10" -> pure MSD10+        "default" -> pure MSDefault+        e -> fromTextError $ "Failure parsing Mpeg2Syntax from value: '" <> e+           <> "'. Accepted values: d_10, default"++instance ToText Mpeg2Syntax where+    toText = \case+        MSD10 -> "D_10"+        MSDefault -> "DEFAULT"++instance Hashable     Mpeg2Syntax+instance NFData       Mpeg2Syntax+instance ToByteString Mpeg2Syntax+instance ToQuery      Mpeg2Syntax+instance ToHeader     Mpeg2Syntax++instance ToJSON Mpeg2Syntax where+    toJSON = toJSONText++instance FromJSON Mpeg2Syntax where+    parseJSON = parseJSONText "Mpeg2Syntax"++-- | Only use Telecine (Mpeg2Telecine) when you set Framerate (Framerate) to 29.970. Set Telecine (Mpeg2Telecine) to Hard (hard) to produce a 29.97i output from a 23.976 input. Set it to Soft (soft) to produce 23.976 output and leave converstion to the player.+data Mpeg2Telecine+  = MTHard+  | MTNone+  | MTSoft+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Mpeg2Telecine where+    parser = takeLowerText >>= \case+        "hard" -> pure MTHard+        "none" -> pure MTNone+        "soft" -> pure MTSoft+        e -> fromTextError $ "Failure parsing Mpeg2Telecine from value: '" <> e+           <> "'. Accepted values: hard, none, soft"++instance ToText Mpeg2Telecine where+    toText = \case+        MTHard -> "HARD"+        MTNone -> "NONE"+        MTSoft -> "SOFT"++instance Hashable     Mpeg2Telecine+instance NFData       Mpeg2Telecine+instance ToByteString Mpeg2Telecine+instance ToQuery      Mpeg2Telecine+instance ToHeader     Mpeg2Telecine++instance ToJSON Mpeg2Telecine where+    toJSON = toJSONText++instance FromJSON Mpeg2Telecine where+    parseJSON = parseJSONText "Mpeg2Telecine"++-- | Adjust quantization within each frame based on temporal variation of content complexity.+data Mpeg2TemporalAdaptiveQuantization+  = MTAQDisabled+  | MTAQEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Mpeg2TemporalAdaptiveQuantization where+    parser = takeLowerText >>= \case+        "disabled" -> pure MTAQDisabled+        "enabled" -> pure MTAQEnabled+        e -> fromTextError $ "Failure parsing Mpeg2TemporalAdaptiveQuantization from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText Mpeg2TemporalAdaptiveQuantization where+    toText = \case+        MTAQDisabled -> "DISABLED"+        MTAQEnabled -> "ENABLED"++instance Hashable     Mpeg2TemporalAdaptiveQuantization+instance NFData       Mpeg2TemporalAdaptiveQuantization+instance ToByteString Mpeg2TemporalAdaptiveQuantization+instance ToQuery      Mpeg2TemporalAdaptiveQuantization+instance ToHeader     Mpeg2TemporalAdaptiveQuantization++instance ToJSON Mpeg2TemporalAdaptiveQuantization where+    toJSON = toJSONText++instance FromJSON Mpeg2TemporalAdaptiveQuantization where+    parseJSON = parseJSONText "Mpeg2TemporalAdaptiveQuantization"++-- | COMBINE_DUPLICATE_STREAMS combines identical audio encoding settings across a Microsoft Smooth output group into a single audio stream.+data MsSmoothAudioDeduplication+  = CombineDuplicateStreams+  | None+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText MsSmoothAudioDeduplication where+    parser = takeLowerText >>= \case+        "combine_duplicate_streams" -> pure CombineDuplicateStreams+        "none" -> pure None+        e -> fromTextError $ "Failure parsing MsSmoothAudioDeduplication from value: '" <> e+           <> "'. Accepted values: combine_duplicate_streams, none"++instance ToText MsSmoothAudioDeduplication where+    toText = \case+        CombineDuplicateStreams -> "COMBINE_DUPLICATE_STREAMS"+        None -> "NONE"++instance Hashable     MsSmoothAudioDeduplication+instance NFData       MsSmoothAudioDeduplication+instance ToByteString MsSmoothAudioDeduplication+instance ToQuery      MsSmoothAudioDeduplication+instance ToHeader     MsSmoothAudioDeduplication++instance ToJSON MsSmoothAudioDeduplication where+    toJSON = toJSONText++instance FromJSON MsSmoothAudioDeduplication where+    parseJSON = parseJSONText "MsSmoothAudioDeduplication"++-- | Use Manifest encoding (MsSmoothManifestEncoding) to specify the encoding format for the server and client manifest. Valid options are utf8 and utf16.+data MsSmoothManifestEncoding+  = UTF16+  | UTF8+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText MsSmoothManifestEncoding where+    parser = takeLowerText >>= \case+        "utf16" -> pure UTF16+        "utf8" -> pure UTF8+        e -> fromTextError $ "Failure parsing MsSmoothManifestEncoding from value: '" <> e+           <> "'. Accepted values: utf16, utf8"++instance ToText MsSmoothManifestEncoding where+    toText = \case+        UTF16 -> "UTF16"+        UTF8 -> "UTF8"++instance Hashable     MsSmoothManifestEncoding+instance NFData       MsSmoothManifestEncoding+instance ToByteString MsSmoothManifestEncoding+instance ToQuery      MsSmoothManifestEncoding+instance ToHeader     MsSmoothManifestEncoding++instance ToJSON MsSmoothManifestEncoding where+    toJSON = toJSONText++instance FromJSON MsSmoothManifestEncoding where+    parseJSON = parseJSONText "MsSmoothManifestEncoding"++-- | Use Noise reducer filter (NoiseReducerFilter) to select one of the following spatial image filtering functions. To use this setting, you must also enable Noise reducer (NoiseReducer). * Bilateral is an edge preserving noise reduction filter * Mean (softest), Gaussian, Lanczos, and Sharpen (sharpest) are convolution filters * Conserve is a min/max noise reduction filter * Spatial is frequency-domain filter based on JND principles.+data NoiseReducerFilter+  = Bilateral+  | Conserve+  | Gaussian+  | Lanczos+  | Mean+  | Sharpen+  | Spatial+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText NoiseReducerFilter where+    parser = takeLowerText >>= \case+        "bilateral" -> pure Bilateral+        "conserve" -> pure Conserve+        "gaussian" -> pure Gaussian+        "lanczos" -> pure Lanczos+        "mean" -> pure Mean+        "sharpen" -> pure Sharpen+        "spatial" -> pure Spatial+        e -> fromTextError $ "Failure parsing NoiseReducerFilter from value: '" <> e+           <> "'. Accepted values: bilateral, conserve, gaussian, lanczos, mean, sharpen, spatial"++instance ToText NoiseReducerFilter where+    toText = \case+        Bilateral -> "BILATERAL"+        Conserve -> "CONSERVE"+        Gaussian -> "GAUSSIAN"+        Lanczos -> "LANCZOS"+        Mean -> "MEAN"+        Sharpen -> "SHARPEN"+        Spatial -> "SPATIAL"++instance Hashable     NoiseReducerFilter+instance NFData       NoiseReducerFilter+instance ToByteString NoiseReducerFilter+instance ToQuery      NoiseReducerFilter+instance ToHeader     NoiseReducerFilter++instance ToJSON NoiseReducerFilter where+    toJSON = toJSONText++instance FromJSON NoiseReducerFilter where+    parseJSON = parseJSONText "NoiseReducerFilter"++-- | When you request lists of resources, you can optionally specify whether they are sorted in ASCENDING or DESCENDING order. Default varies by resource.+data Order+  = Ascending+  | Descending+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Order where+    parser = takeLowerText >>= \case+        "ascending" -> pure Ascending+        "descending" -> pure Descending+        e -> fromTextError $ "Failure parsing Order from value: '" <> e+           <> "'. Accepted values: ascending, descending"++instance ToText Order where+    toText = \case+        Ascending -> "ASCENDING"+        Descending -> "DESCENDING"++instance Hashable     Order+instance NFData       Order+instance ToByteString Order+instance ToQuery      Order+instance ToHeader     Order++instance ToJSON Order where+    toJSON = toJSONText++-- | Type of output group (File group, Apple HLS, DASH ISO, Microsoft Smooth Streaming)+data OutputGroupType+  = DashIsoGroupSettings+  | FileGroupSettings+  | HlsGroupSettings+  | MsSmoothGroupSettings+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText OutputGroupType where+    parser = takeLowerText >>= \case+        "dash_iso_group_settings" -> pure DashIsoGroupSettings+        "file_group_settings" -> pure FileGroupSettings+        "hls_group_settings" -> pure HlsGroupSettings+        "ms_smooth_group_settings" -> pure MsSmoothGroupSettings+        e -> fromTextError $ "Failure parsing OutputGroupType from value: '" <> e+           <> "'. Accepted values: dash_iso_group_settings, file_group_settings, hls_group_settings, ms_smooth_group_settings"++instance ToText OutputGroupType where+    toText = \case+        DashIsoGroupSettings -> "DASH_ISO_GROUP_SETTINGS"+        FileGroupSettings -> "FILE_GROUP_SETTINGS"+        HlsGroupSettings -> "HLS_GROUP_SETTINGS"+        MsSmoothGroupSettings -> "MS_SMOOTH_GROUP_SETTINGS"++instance Hashable     OutputGroupType+instance NFData       OutputGroupType+instance ToByteString OutputGroupType+instance ToQuery      OutputGroupType+instance ToHeader     OutputGroupType++instance ToJSON OutputGroupType where+    toJSON = toJSONText++instance FromJSON OutputGroupType where+    parseJSON = parseJSONText "OutputGroupType"++-- | Selects method of inserting SDT information into output stream.  "Follow input SDT" copies SDT information from input stream to  output stream. "Follow input SDT if present" copies SDT information from  input stream to output stream if SDT information is present in the input, otherwise it will fall back on the user-defined values. Enter "SDT  Manually" means user will enter the SDT information. "No SDT" means output  stream will not contain SDT information.+data OutputSdt+  = SdtFollow+  | SdtFollowIfPresent+  | SdtManual+  | SdtNone+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText OutputSdt where+    parser = takeLowerText >>= \case+        "sdt_follow" -> pure SdtFollow+        "sdt_follow_if_present" -> pure SdtFollowIfPresent+        "sdt_manual" -> pure SdtManual+        "sdt_none" -> pure SdtNone+        e -> fromTextError $ "Failure parsing OutputSdt from value: '" <> e+           <> "'. Accepted values: sdt_follow, sdt_follow_if_present, sdt_manual, sdt_none"++instance ToText OutputSdt where+    toText = \case+        SdtFollow -> "SDT_FOLLOW"+        SdtFollowIfPresent -> "SDT_FOLLOW_IF_PRESENT"+        SdtManual -> "SDT_MANUAL"+        SdtNone -> "SDT_NONE"++instance Hashable     OutputSdt+instance NFData       OutputSdt+instance ToByteString OutputSdt+instance ToQuery      OutputSdt+instance ToHeader     OutputSdt++instance ToJSON OutputSdt where+    toJSON = toJSONText++instance FromJSON OutputSdt where+    parseJSON = parseJSONText "OutputSdt"++-- | Optional. When you request a list of presets, you can choose to list them alphabetically by NAME or chronologically by CREATION_DATE. If you don't specify, the service will list them by name.+data PresetListBy+  = PLBCreationDate+  | PLBName+  | PLBSystem+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText PresetListBy where+    parser = takeLowerText >>= \case+        "creation_date" -> pure PLBCreationDate+        "name" -> pure PLBName+        "system" -> pure PLBSystem+        e -> fromTextError $ "Failure parsing PresetListBy from value: '" <> e+           <> "'. Accepted values: creation_date, name, system"++instance ToText PresetListBy where+    toText = \case+        PLBCreationDate -> "CREATION_DATE"+        PLBName -> "NAME"+        PLBSystem -> "SYSTEM"++instance Hashable     PresetListBy+instance NFData       PresetListBy+instance ToByteString PresetListBy+instance ToQuery      PresetListBy+instance ToHeader     PresetListBy++instance ToJSON PresetListBy where+    toJSON = toJSONText++-- | Use Profile (ProResCodecProfile) to specifiy the type of Apple ProRes codec to use for this output.+data ProresCodecProfile+  = AppleProres422+  | AppleProres422Hq+  | AppleProres422LT+  | AppleProres422Proxy+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ProresCodecProfile where+    parser = takeLowerText >>= \case+        "apple_prores_422" -> pure AppleProres422+        "apple_prores_422_hq" -> pure AppleProres422Hq+        "apple_prores_422_lt" -> pure AppleProres422LT+        "apple_prores_422_proxy" -> pure AppleProres422Proxy+        e -> fromTextError $ "Failure parsing ProresCodecProfile from value: '" <> e+           <> "'. Accepted values: apple_prores_422, apple_prores_422_hq, apple_prores_422_lt, apple_prores_422_proxy"++instance ToText ProresCodecProfile where+    toText = \case+        AppleProres422 -> "APPLE_PRORES_422"+        AppleProres422Hq -> "APPLE_PRORES_422_HQ"+        AppleProres422LT -> "APPLE_PRORES_422_LT"+        AppleProres422Proxy -> "APPLE_PRORES_422_PROXY"++instance Hashable     ProresCodecProfile+instance NFData       ProresCodecProfile+instance ToByteString ProresCodecProfile+instance ToQuery      ProresCodecProfile+instance ToHeader     ProresCodecProfile++instance ToJSON ProresCodecProfile where+    toJSON = toJSONText++instance FromJSON ProresCodecProfile where+    parseJSON = parseJSONText "ProresCodecProfile"++-- | Using the API, set FramerateControl to INITIALIZE_FROM_SOURCE if you want the service to use the framerate from the input. Using the console, do this by choosing INITIALIZE_FROM_SOURCE for Framerate.+data ProresFramerateControl+  = PFCInitializeFromSource+  | PFCSpecified+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ProresFramerateControl where+    parser = takeLowerText >>= \case+        "initialize_from_source" -> pure PFCInitializeFromSource+        "specified" -> pure PFCSpecified+        e -> fromTextError $ "Failure parsing ProresFramerateControl from value: '" <> e+           <> "'. Accepted values: initialize_from_source, specified"++instance ToText ProresFramerateControl where+    toText = \case+        PFCInitializeFromSource -> "INITIALIZE_FROM_SOURCE"+        PFCSpecified -> "SPECIFIED"++instance Hashable     ProresFramerateControl+instance NFData       ProresFramerateControl+instance ToByteString ProresFramerateControl+instance ToQuery      ProresFramerateControl+instance ToHeader     ProresFramerateControl++instance ToJSON ProresFramerateControl where+    toJSON = toJSONText++instance FromJSON ProresFramerateControl where+    parseJSON = parseJSONText "ProresFramerateControl"++-- | When set to INTERPOLATE, produces smoother motion during framerate conversion.+data ProresFramerateConversionAlgorithm+  = PFCADuplicateDrop+  | PFCAInterpolate+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ProresFramerateConversionAlgorithm where+    parser = takeLowerText >>= \case+        "duplicate_drop" -> pure PFCADuplicateDrop+        "interpolate" -> pure PFCAInterpolate+        e -> fromTextError $ "Failure parsing ProresFramerateConversionAlgorithm from value: '" <> e+           <> "'. Accepted values: duplicate_drop, interpolate"++instance ToText ProresFramerateConversionAlgorithm where+    toText = \case+        PFCADuplicateDrop -> "DUPLICATE_DROP"+        PFCAInterpolate -> "INTERPOLATE"++instance Hashable     ProresFramerateConversionAlgorithm+instance NFData       ProresFramerateConversionAlgorithm+instance ToByteString ProresFramerateConversionAlgorithm+instance ToQuery      ProresFramerateConversionAlgorithm+instance ToHeader     ProresFramerateConversionAlgorithm++instance ToJSON ProresFramerateConversionAlgorithm where+    toJSON = toJSONText++instance FromJSON ProresFramerateConversionAlgorithm where+    parseJSON = parseJSONText "ProresFramerateConversionAlgorithm"++-- | Use Interlace mode (InterlaceMode) to choose the scan line type for the output. * Top Field First (TOP_FIELD) and Bottom Field First (BOTTOM_FIELD) produce interlaced output with the entire output having the same field polarity (top or bottom first). * Follow, Default Top (FOLLOw_TOP_FIELD) and Follow, Default Bottom (FOLLOW_BOTTOM_FIELD) use the same  field polarity as the source. Therefore, behavior depends on the input scan type. - If the source is interlaced, the output will be interlaced with the same polarity as the source (it will follow the source). The output could therefore be a mix of "top field first" and "bottom field first". - If the source is progressive, the output will be interlaced with "top field first" or "bottom field first" polarity, depending on which of the Follow options you chose.+data ProresInterlaceMode+  = PIMBottomField+  | PIMFollowBottomField+  | PIMFollowTopField+  | PIMProgressive+  | PIMTopField+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ProresInterlaceMode where+    parser = takeLowerText >>= \case+        "bottom_field" -> pure PIMBottomField+        "follow_bottom_field" -> pure PIMFollowBottomField+        "follow_top_field" -> pure PIMFollowTopField+        "progressive" -> pure PIMProgressive+        "top_field" -> pure PIMTopField+        e -> fromTextError $ "Failure parsing ProresInterlaceMode from value: '" <> e+           <> "'. Accepted values: bottom_field, follow_bottom_field, follow_top_field, progressive, top_field"++instance ToText ProresInterlaceMode where+    toText = \case+        PIMBottomField -> "BOTTOM_FIELD"+        PIMFollowBottomField -> "FOLLOW_BOTTOM_FIELD"+        PIMFollowTopField -> "FOLLOW_TOP_FIELD"+        PIMProgressive -> "PROGRESSIVE"+        PIMTopField -> "TOP_FIELD"++instance Hashable     ProresInterlaceMode+instance NFData       ProresInterlaceMode+instance ToByteString ProresInterlaceMode+instance ToQuery      ProresInterlaceMode+instance ToHeader     ProresInterlaceMode++instance ToJSON ProresInterlaceMode where+    toJSON = toJSONText++instance FromJSON ProresInterlaceMode where+    parseJSON = parseJSONText "ProresInterlaceMode"++-- | Use (ProresParControl) to specify how the service determines the pixel aspect ratio. Set to Follow source (INITIALIZE_FROM_SOURCE) to use the pixel aspect ratio from the input.  To specify a different pixel aspect ratio: Using the console, choose it from the dropdown menu. Using the API, set ProresParControl to (SPECIFIED) and provide  for (ParNumerator) and (ParDenominator).+data ProresParControl+  = PPCInitializeFromSource+  | PPCSpecified+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ProresParControl where+    parser = takeLowerText >>= \case+        "initialize_from_source" -> pure PPCInitializeFromSource+        "specified" -> pure PPCSpecified+        e -> fromTextError $ "Failure parsing ProresParControl from value: '" <> e+           <> "'. Accepted values: initialize_from_source, specified"++instance ToText ProresParControl where+    toText = \case+        PPCInitializeFromSource -> "INITIALIZE_FROM_SOURCE"+        PPCSpecified -> "SPECIFIED"++instance Hashable     ProresParControl+instance NFData       ProresParControl+instance ToByteString ProresParControl+instance ToQuery      ProresParControl+instance ToHeader     ProresParControl++instance ToJSON ProresParControl where+    toJSON = toJSONText++instance FromJSON ProresParControl where+    parseJSON = parseJSONText "ProresParControl"++-- | Enables Slow PAL rate conversion. 23.976fps and 24fps input is relabeled as 25fps, and audio is sped up correspondingly.+data ProresSlowPal+  = PSPDisabled+  | PSPEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ProresSlowPal where+    parser = takeLowerText >>= \case+        "disabled" -> pure PSPDisabled+        "enabled" -> pure PSPEnabled+        e -> fromTextError $ "Failure parsing ProresSlowPal from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText ProresSlowPal where+    toText = \case+        PSPDisabled -> "DISABLED"+        PSPEnabled -> "ENABLED"++instance Hashable     ProresSlowPal+instance NFData       ProresSlowPal+instance ToByteString ProresSlowPal+instance ToQuery      ProresSlowPal+instance ToHeader     ProresSlowPal++instance ToJSON ProresSlowPal where+    toJSON = toJSONText++instance FromJSON ProresSlowPal where+    parseJSON = parseJSONText "ProresSlowPal"++-- | Only use Telecine (ProresTelecine) when you set Framerate (Framerate) to 29.970. Set Telecine (ProresTelecine) to Hard (hard) to produce a 29.97i output from a 23.976 input. Set it to Soft (soft) to produce 23.976 output and leave converstion to the player.+data ProresTelecine+  = PTHard+  | PTNone+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ProresTelecine where+    parser = takeLowerText >>= \case+        "hard" -> pure PTHard+        "none" -> pure PTNone+        e -> fromTextError $ "Failure parsing ProresTelecine from value: '" <> e+           <> "'. Accepted values: hard, none"++instance ToText ProresTelecine where+    toText = \case+        PTHard -> "HARD"+        PTNone -> "NONE"++instance Hashable     ProresTelecine+instance NFData       ProresTelecine+instance ToByteString ProresTelecine+instance ToQuery      ProresTelecine+instance ToHeader     ProresTelecine++instance ToJSON ProresTelecine where+    toJSON = toJSONText++instance FromJSON ProresTelecine where+    parseJSON = parseJSONText "ProresTelecine"++-- | Optional. When you request a list of queues, you can choose to list them alphabetically by NAME or chronologically by CREATION_DATE. If you don't specify, the service will list them by creation date.+data QueueListBy+  = CreationDate+  | Name+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText QueueListBy where+    parser = takeLowerText >>= \case+        "creation_date" -> pure CreationDate+        "name" -> pure Name+        e -> fromTextError $ "Failure parsing QueueListBy from value: '" <> e+           <> "'. Accepted values: creation_date, name"++instance ToText QueueListBy where+    toText = \case+        CreationDate -> "CREATION_DATE"+        Name -> "NAME"++instance Hashable     QueueListBy+instance NFData       QueueListBy+instance ToByteString QueueListBy+instance ToQuery      QueueListBy+instance ToHeader     QueueListBy++instance ToJSON QueueListBy where+    toJSON = toJSONText++-- | Queues can be ACTIVE or PAUSED. If you pause a queue, jobs in that queue will not begin. Jobs running when a queue is paused continue to run until they finish or error out.+data QueueStatus+  = Active+  | Paused+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText QueueStatus where+    parser = takeLowerText >>= \case+        "active" -> pure Active+        "paused" -> pure Paused+        e -> fromTextError $ "Failure parsing QueueStatus from value: '" <> e+           <> "'. Accepted values: active, paused"++instance ToText QueueStatus where+    toText = \case+        Active -> "ACTIVE"+        Paused -> "PAUSED"++instance Hashable     QueueStatus+instance NFData       QueueStatus+instance ToByteString QueueStatus+instance ToQuery      QueueStatus+instance ToHeader     QueueStatus++instance ToJSON QueueStatus where+    toJSON = toJSONText++instance FromJSON QueueStatus where+    parseJSON = parseJSONText "QueueStatus"++-- | Use Respond to AFD (RespondToAfd) to specify how the service changes the video itself in response to AFD values in the input. * Choose Respond to clip the input video frame according to the AFD value, input display aspect ratio, and output display aspect ratio. * Choose Passthrough to include the input AFD values. Do not choose this when AfdSignaling is set to (NONE). A preferred implementation of this workflow is to set RespondToAfd to (NONE) and set AfdSignaling to (AUTO). * Choose None to remove all input AFD values from this output.+data RespondToAfd+  = RTANone+  | RTAPassthrough+  | RTARespond+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText RespondToAfd where+    parser = takeLowerText >>= \case+        "none" -> pure RTANone+        "passthrough" -> pure RTAPassthrough+        "respond" -> pure RTARespond+        e -> fromTextError $ "Failure parsing RespondToAfd from value: '" <> e+           <> "'. Accepted values: none, passthrough, respond"++instance ToText RespondToAfd where+    toText = \case+        RTANone -> "NONE"+        RTAPassthrough -> "PASSTHROUGH"+        RTARespond -> "RESPOND"++instance Hashable     RespondToAfd+instance NFData       RespondToAfd+instance ToByteString RespondToAfd+instance ToQuery      RespondToAfd+instance ToHeader     RespondToAfd++instance ToJSON RespondToAfd where+    toJSON = toJSONText++instance FromJSON RespondToAfd where+    parseJSON = parseJSONText "RespondToAfd"++-- | Applies only if your input aspect ratio is different from your output aspect ratio. Enable Stretch to output (StretchToOutput) to have the service stretch your video image to fit. Leave this setting disabled to allow the service to letterbox your video instead. This setting overrides any positioning value you specify elsewhere in the job.+data ScalingBehavior+  = SBDefault+  | SBStretchToOutput+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ScalingBehavior where+    parser = takeLowerText >>= \case+        "default" -> pure SBDefault+        "stretch_to_output" -> pure SBStretchToOutput+        e -> fromTextError $ "Failure parsing ScalingBehavior from value: '" <> e+           <> "'. Accepted values: default, stretch_to_output"++instance ToText ScalingBehavior where+    toText = \case+        SBDefault -> "DEFAULT"+        SBStretchToOutput -> "STRETCH_TO_OUTPUT"++instance Hashable     ScalingBehavior+instance NFData       ScalingBehavior+instance ToByteString ScalingBehavior+instance ToQuery      ScalingBehavior+instance ToHeader     ScalingBehavior++instance ToJSON ScalingBehavior where+    toJSON = toJSONText++instance FromJSON ScalingBehavior where+    parseJSON = parseJSONText "ScalingBehavior"++-- | Set Framerate (SccDestinationFramerate) to make sure that the captions and the video are synchronized in the output. Specify a framerate that matches the framerate of the associated video. If the video framerate is 29.97, choose 29.97 dropframe (FRAMERATE_29_97_DROPFRAME) only if the video has video_insertion=true and drop_frame_timecode=true; otherwise, choose 29.97 non-dropframe (FRAMERATE_29_97_NON_DROPFRAME).+data SccDestinationFramerate+  = Framerate2397+  | Framerate24+  | Framerate2997Dropframe+  | Framerate2997NonDropframe+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText SccDestinationFramerate where+    parser = takeLowerText >>= \case+        "framerate_23_97" -> pure Framerate2397+        "framerate_24" -> pure Framerate24+        "framerate_29_97_dropframe" -> pure Framerate2997Dropframe+        "framerate_29_97_non_dropframe" -> pure Framerate2997NonDropframe+        e -> fromTextError $ "Failure parsing SccDestinationFramerate from value: '" <> e+           <> "'. Accepted values: framerate_23_97, framerate_24, framerate_29_97_dropframe, framerate_29_97_non_dropframe"++instance ToText SccDestinationFramerate where+    toText = \case+        Framerate2397 -> "FRAMERATE_23_97"+        Framerate24 -> "FRAMERATE_24"+        Framerate2997Dropframe -> "FRAMERATE_29_97_DROPFRAME"+        Framerate2997NonDropframe -> "FRAMERATE_29_97_NON_DROPFRAME"++instance Hashable     SccDestinationFramerate+instance NFData       SccDestinationFramerate+instance ToByteString SccDestinationFramerate+instance ToQuery      SccDestinationFramerate+instance ToHeader     SccDestinationFramerate++instance ToJSON SccDestinationFramerate where+    toJSON = toJSONText++instance FromJSON SccDestinationFramerate where+    parseJSON = parseJSONText "SccDestinationFramerate"++-- | Use Position (Position) under under Timecode burn-in (TimecodeBurnIn) to specify the location the burned-in timecode on output video.+data TimecodeBurninPosition+  = BottomCenter+  | BottomLeft+  | BottomRight+  | MiddleCenter+  | MiddleLeft+  | MiddleRight+  | TopCenter+  | TopLeft+  | TopRight+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText TimecodeBurninPosition where+    parser = takeLowerText >>= \case+        "bottom_center" -> pure BottomCenter+        "bottom_left" -> pure BottomLeft+        "bottom_right" -> pure BottomRight+        "middle_center" -> pure MiddleCenter+        "middle_left" -> pure MiddleLeft+        "middle_right" -> pure MiddleRight+        "top_center" -> pure TopCenter+        "top_left" -> pure TopLeft+        "top_right" -> pure TopRight+        e -> fromTextError $ "Failure parsing TimecodeBurninPosition from value: '" <> e+           <> "'. Accepted values: bottom_center, bottom_left, bottom_right, middle_center, middle_left, middle_right, top_center, top_left, top_right"++instance ToText TimecodeBurninPosition where+    toText = \case+        BottomCenter -> "BOTTOM_CENTER"+        BottomLeft -> "BOTTOM_LEFT"+        BottomRight -> "BOTTOM_RIGHT"+        MiddleCenter -> "MIDDLE_CENTER"+        MiddleLeft -> "MIDDLE_LEFT"+        MiddleRight -> "MIDDLE_RIGHT"+        TopCenter -> "TOP_CENTER"+        TopLeft -> "TOP_LEFT"+        TopRight -> "TOP_RIGHT"++instance Hashable     TimecodeBurninPosition+instance NFData       TimecodeBurninPosition+instance ToByteString TimecodeBurninPosition+instance ToQuery      TimecodeBurninPosition+instance ToHeader     TimecodeBurninPosition++instance ToJSON TimecodeBurninPosition where+    toJSON = toJSONText++instance FromJSON TimecodeBurninPosition where+    parseJSON = parseJSONText "TimecodeBurninPosition"++-- | Use Timecode source (TimecodeSource) to set how timecodes are handled within this input. To make sure that your video, audio, captions, and markers are synchronized and that time-based features, such as image inserter, work correctly, choose the Timecode source option that matches your assets. All timecodes are in a 24-hour format with frame number (HH:MM:SS:FF). * Embedded (EMBEDDED) - Use the timecode that is in the input video. If no embedded timecode is in the source, the service will use Start at 0 (ZEROBASED) instead. * Start at 0 (ZEROBASED) - Set the timecode of the initial frame to 00:00:00:00. * Specified Start (SPECIFIEDSTART) - Set the timecode of the initial frame to a value other than zero. You use Start timecode (Start) to provide this value.+data TimecodeSource+  = TSEmbedded+  | TSSpecifiedstart+  | TSZerobased+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText TimecodeSource where+    parser = takeLowerText >>= \case+        "embedded" -> pure TSEmbedded+        "specifiedstart" -> pure TSSpecifiedstart+        "zerobased" -> pure TSZerobased+        e -> fromTextError $ "Failure parsing TimecodeSource from value: '" <> e+           <> "'. Accepted values: embedded, specifiedstart, zerobased"++instance ToText TimecodeSource where+    toText = \case+        TSEmbedded -> "EMBEDDED"+        TSSpecifiedstart -> "SPECIFIEDSTART"+        TSZerobased -> "ZEROBASED"++instance Hashable     TimecodeSource+instance NFData       TimecodeSource+instance ToByteString TimecodeSource+instance ToQuery      TimecodeSource+instance ToHeader     TimecodeSource++instance ToJSON TimecodeSource where+    toJSON = toJSONText++instance FromJSON TimecodeSource where+    parseJSON = parseJSONText "TimecodeSource"++-- | If PASSTHROUGH, inserts ID3 timed metadata from the timed_metadata REST command into this output.+data TimedMetadata+  = TMNone+  | TMPassthrough+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText TimedMetadata where+    parser = takeLowerText >>= \case+        "none" -> pure TMNone+        "passthrough" -> pure TMPassthrough+        e -> fromTextError $ "Failure parsing TimedMetadata from value: '" <> e+           <> "'. Accepted values: none, passthrough"++instance ToText TimedMetadata where+    toText = \case+        TMNone -> "NONE"+        TMPassthrough -> "PASSTHROUGH"++instance Hashable     TimedMetadata+instance NFData       TimedMetadata+instance ToByteString TimedMetadata+instance ToQuery      TimedMetadata+instance ToHeader     TimedMetadata++instance ToJSON TimedMetadata where+    toJSON = toJSONText++instance FromJSON TimedMetadata where+    parseJSON = parseJSONText "TimedMetadata"++-- | Pass through style and position information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or TTML output.+data TtmlStylePassthrough+  = TSPDisabled+  | TSPEnabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText TtmlStylePassthrough where+    parser = takeLowerText >>= \case+        "disabled" -> pure TSPDisabled+        "enabled" -> pure TSPEnabled+        e -> fromTextError $ "Failure parsing TtmlStylePassthrough from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText TtmlStylePassthrough where+    toText = \case+        TSPDisabled -> "DISABLED"+        TSPEnabled -> "ENABLED"++instance Hashable     TtmlStylePassthrough+instance NFData       TtmlStylePassthrough+instance ToByteString TtmlStylePassthrough+instance ToQuery      TtmlStylePassthrough+instance ToHeader     TtmlStylePassthrough++instance ToJSON TtmlStylePassthrough where+    toJSON = toJSONText++instance FromJSON TtmlStylePassthrough where+    parseJSON = parseJSONText "TtmlStylePassthrough"++data Type+  = Custom+  | System+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Type where+    parser = takeLowerText >>= \case+        "custom" -> pure Custom+        "system" -> pure System+        e -> fromTextError $ "Failure parsing Type from value: '" <> e+           <> "'. Accepted values: custom, system"++instance ToText Type where+    toText = \case+        Custom -> "CUSTOM"+        System -> "SYSTEM"++instance Hashable     Type+instance NFData       Type+instance ToByteString Type+instance ToQuery      Type+instance ToHeader     Type++instance FromJSON Type where+    parseJSON = parseJSONText "Type"++-- | Type of video codec+data VideoCodec+  = FrameCapture+  | H264+  | H265+  | MPEG2+  | Prores+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText VideoCodec where+    parser = takeLowerText >>= \case+        "frame_capture" -> pure FrameCapture+        "h_264" -> pure H264+        "h_265" -> pure H265+        "mpeg2" -> pure MPEG2+        "prores" -> pure Prores+        e -> fromTextError $ "Failure parsing VideoCodec from value: '" <> e+           <> "'. Accepted values: frame_capture, h_264, h_265, mpeg2, prores"++instance ToText VideoCodec where+    toText = \case+        FrameCapture -> "FRAME_CAPTURE"+        H264 -> "H_264"+        H265 -> "H_265"+        MPEG2 -> "MPEG2"+        Prores -> "PRORES"++instance Hashable     VideoCodec+instance NFData       VideoCodec+instance ToByteString VideoCodec+instance ToQuery      VideoCodec+instance ToHeader     VideoCodec++instance ToJSON VideoCodec where+    toJSON = toJSONText++instance FromJSON VideoCodec where+    parseJSON = parseJSONText "VideoCodec"++-- | Enable Timecode insertion to include timecode information in this output. Do this in the API by setting (VideoTimecodeInsertion) to (PIC_TIMING_SEI). To get timecodes to appear correctly in your output, also set up the timecode configuration for your job in the input settings. Only enable Timecode insertion when the input framerate is identical to output framerate. Disable this setting to remove the timecode from the output. Default is disabled.+data VideoTimecodeInsertion+  = VTIDisabled+  | VTIPicTimingSei+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText VideoTimecodeInsertion where+    parser = takeLowerText >>= \case+        "disabled" -> pure VTIDisabled+        "pic_timing_sei" -> pure VTIPicTimingSei+        e -> fromTextError $ "Failure parsing VideoTimecodeInsertion from value: '" <> e+           <> "'. Accepted values: disabled, pic_timing_sei"++instance ToText VideoTimecodeInsertion where+    toText = \case+        VTIDisabled -> "DISABLED"+        VTIPicTimingSei -> "PIC_TIMING_SEI"++instance Hashable     VideoTimecodeInsertion+instance NFData       VideoTimecodeInsertion+instance ToByteString VideoTimecodeInsertion+instance ToQuery      VideoTimecodeInsertion+instance ToHeader     VideoTimecodeInsertion++instance ToJSON VideoTimecodeInsertion where+    toJSON = toJSONText++instance FromJSON VideoTimecodeInsertion where+    parseJSON = parseJSONText "VideoTimecodeInsertion"
+ gen/Network/AWS/MediaConvert/UpdateJobTemplate.hs view
@@ -0,0 +1,172 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.MediaConvert.UpdateJobTemplate+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modify one of your existing job templates.+module Network.AWS.MediaConvert.UpdateJobTemplate+    (+    -- * Creating a Request+      updateJobTemplate+    , UpdateJobTemplate+    -- * Request Lenses+    , ujtSettings+    , ujtCategory+    , ujtQueue+    , ujtDescription+    , ujtName++    -- * Destructuring the Response+    , updateJobTemplateResponse+    , UpdateJobTemplateResponse+    -- * Response Lenses+    , ujtrsJobTemplate+    , ujtrsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.MediaConvert.Types+import Network.AWS.MediaConvert.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'updateJobTemplate' smart constructor.+data UpdateJobTemplate = UpdateJobTemplate'+  { _ujtSettings    :: !(Maybe JobTemplateSettings)+  , _ujtCategory    :: !(Maybe Text)+  , _ujtQueue       :: !(Maybe Text)+  , _ujtDescription :: !(Maybe Text)+  , _ujtName        :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateJobTemplate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ujtSettings' - Undocumented member.+--+-- * 'ujtCategory' - The new category for the job template, if you are changing it.+--+-- * 'ujtQueue' - The new queue for the job template, if you are changing it.+--+-- * 'ujtDescription' - The new description for the job template, if you are changing it.+--+-- * 'ujtName' - The name of the job template you are modifying+updateJobTemplate+    :: Text -- ^ 'ujtName'+    -> UpdateJobTemplate+updateJobTemplate pName_ =+  UpdateJobTemplate'+    { _ujtSettings = Nothing+    , _ujtCategory = Nothing+    , _ujtQueue = Nothing+    , _ujtDescription = Nothing+    , _ujtName = pName_+    }+++-- | Undocumented member.+ujtSettings :: Lens' UpdateJobTemplate (Maybe JobTemplateSettings)+ujtSettings = lens _ujtSettings (\ s a -> s{_ujtSettings = a})++-- | The new category for the job template, if you are changing it.+ujtCategory :: Lens' UpdateJobTemplate (Maybe Text)+ujtCategory = lens _ujtCategory (\ s a -> s{_ujtCategory = a})++-- | The new queue for the job template, if you are changing it.+ujtQueue :: Lens' UpdateJobTemplate (Maybe Text)+ujtQueue = lens _ujtQueue (\ s a -> s{_ujtQueue = a})++-- | The new description for the job template, if you are changing it.+ujtDescription :: Lens' UpdateJobTemplate (Maybe Text)+ujtDescription = lens _ujtDescription (\ s a -> s{_ujtDescription = a})++-- | The name of the job template you are modifying+ujtName :: Lens' UpdateJobTemplate Text+ujtName = lens _ujtName (\ s a -> s{_ujtName = a})++instance AWSRequest UpdateJobTemplate where+        type Rs UpdateJobTemplate = UpdateJobTemplateResponse+        request = putJSON mediaConvert+        response+          = receiveJSON+              (\ s h x ->+                 UpdateJobTemplateResponse' <$>+                   (x .?> "jobTemplate") <*> (pure (fromEnum s)))++instance Hashable UpdateJobTemplate where++instance NFData UpdateJobTemplate where++instance ToHeaders UpdateJobTemplate where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UpdateJobTemplate where+        toJSON UpdateJobTemplate'{..}+          = object+              (catMaybes+                 [("settings" .=) <$> _ujtSettings,+                  ("category" .=) <$> _ujtCategory,+                  ("queue" .=) <$> _ujtQueue,+                  ("description" .=) <$> _ujtDescription])++instance ToPath UpdateJobTemplate where+        toPath UpdateJobTemplate'{..}+          = mconcat+              ["/2017-08-29/jobTemplates/", toBS _ujtName]++instance ToQuery UpdateJobTemplate where+        toQuery = const mempty++-- | /See:/ 'updateJobTemplateResponse' smart constructor.+data UpdateJobTemplateResponse = UpdateJobTemplateResponse'+  { _ujtrsJobTemplate    :: !(Maybe JobTemplate)+  , _ujtrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateJobTemplateResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ujtrsJobTemplate' - Undocumented member.+--+-- * 'ujtrsResponseStatus' - -- | The response status code.+updateJobTemplateResponse+    :: Int -- ^ 'ujtrsResponseStatus'+    -> UpdateJobTemplateResponse+updateJobTemplateResponse pResponseStatus_ =+  UpdateJobTemplateResponse'+    {_ujtrsJobTemplate = Nothing, _ujtrsResponseStatus = pResponseStatus_}+++-- | Undocumented member.+ujtrsJobTemplate :: Lens' UpdateJobTemplateResponse (Maybe JobTemplate)+ujtrsJobTemplate = lens _ujtrsJobTemplate (\ s a -> s{_ujtrsJobTemplate = a})++-- | -- | The response status code.+ujtrsResponseStatus :: Lens' UpdateJobTemplateResponse Int+ujtrsResponseStatus = lens _ujtrsResponseStatus (\ s a -> s{_ujtrsResponseStatus = a})++instance NFData UpdateJobTemplateResponse where
+ gen/Network/AWS/MediaConvert/UpdatePreset.hs view
@@ -0,0 +1,161 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.MediaConvert.UpdatePreset+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modify one of your existing presets.+module Network.AWS.MediaConvert.UpdatePreset+    (+    -- * Creating a Request+      updatePreset+    , UpdatePreset+    -- * Request Lenses+    , upSettings+    , upCategory+    , upDescription+    , upName++    -- * Destructuring the Response+    , updatePresetResponse+    , UpdatePresetResponse+    -- * Response Lenses+    , uprsPreset+    , uprsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.MediaConvert.Types+import Network.AWS.MediaConvert.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'updatePreset' smart constructor.+data UpdatePreset = UpdatePreset'+  { _upSettings    :: !(Maybe PresetSettings)+  , _upCategory    :: !(Maybe Text)+  , _upDescription :: !(Maybe Text)+  , _upName        :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdatePreset' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'upSettings' - Undocumented member.+--+-- * 'upCategory' - The new category for the preset, if you are changing it.+--+-- * 'upDescription' - The new description for the preset, if you are changing it.+--+-- * 'upName' - The name of the preset you are modifying.+updatePreset+    :: Text -- ^ 'upName'+    -> UpdatePreset+updatePreset pName_ =+  UpdatePreset'+    { _upSettings = Nothing+    , _upCategory = Nothing+    , _upDescription = Nothing+    , _upName = pName_+    }+++-- | Undocumented member.+upSettings :: Lens' UpdatePreset (Maybe PresetSettings)+upSettings = lens _upSettings (\ s a -> s{_upSettings = a})++-- | The new category for the preset, if you are changing it.+upCategory :: Lens' UpdatePreset (Maybe Text)+upCategory = lens _upCategory (\ s a -> s{_upCategory = a})++-- | The new description for the preset, if you are changing it.+upDescription :: Lens' UpdatePreset (Maybe Text)+upDescription = lens _upDescription (\ s a -> s{_upDescription = a})++-- | The name of the preset you are modifying.+upName :: Lens' UpdatePreset Text+upName = lens _upName (\ s a -> s{_upName = a})++instance AWSRequest UpdatePreset where+        type Rs UpdatePreset = UpdatePresetResponse+        request = putJSON mediaConvert+        response+          = receiveJSON+              (\ s h x ->+                 UpdatePresetResponse' <$>+                   (x .?> "preset") <*> (pure (fromEnum s)))++instance Hashable UpdatePreset where++instance NFData UpdatePreset where++instance ToHeaders UpdatePreset where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UpdatePreset where+        toJSON UpdatePreset'{..}+          = object+              (catMaybes+                 [("settings" .=) <$> _upSettings,+                  ("category" .=) <$> _upCategory,+                  ("description" .=) <$> _upDescription])++instance ToPath UpdatePreset where+        toPath UpdatePreset'{..}+          = mconcat ["/2017-08-29/presets/", toBS _upName]++instance ToQuery UpdatePreset where+        toQuery = const mempty++-- | /See:/ 'updatePresetResponse' smart constructor.+data UpdatePresetResponse = UpdatePresetResponse'+  { _uprsPreset         :: !(Maybe Preset)+  , _uprsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdatePresetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uprsPreset' - Undocumented member.+--+-- * 'uprsResponseStatus' - -- | The response status code.+updatePresetResponse+    :: Int -- ^ 'uprsResponseStatus'+    -> UpdatePresetResponse+updatePresetResponse pResponseStatus_ =+  UpdatePresetResponse'+    {_uprsPreset = Nothing, _uprsResponseStatus = pResponseStatus_}+++-- | Undocumented member.+uprsPreset :: Lens' UpdatePresetResponse (Maybe Preset)+uprsPreset = lens _uprsPreset (\ s a -> s{_uprsPreset = a})++-- | -- | The response status code.+uprsResponseStatus :: Lens' UpdatePresetResponse Int+uprsResponseStatus = lens _uprsResponseStatus (\ s a -> s{_uprsResponseStatus = a})++instance NFData UpdatePresetResponse where
+ gen/Network/AWS/MediaConvert/UpdateQueue.hs view
@@ -0,0 +1,147 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.MediaConvert.UpdateQueue+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modify one of your existing queues.+module Network.AWS.MediaConvert.UpdateQueue+    (+    -- * Creating a Request+      updateQueue+    , UpdateQueue+    -- * Request Lenses+    , uqStatus+    , uqDescription+    , uqName++    -- * Destructuring the Response+    , updateQueueResponse+    , UpdateQueueResponse+    -- * Response Lenses+    , uqrsQueue+    , uqrsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.MediaConvert.Types+import Network.AWS.MediaConvert.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'updateQueue' smart constructor.+data UpdateQueue = UpdateQueue'+  { _uqStatus      :: !(Maybe QueueStatus)+  , _uqDescription :: !(Maybe Text)+  , _uqName        :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateQueue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uqStatus' - Undocumented member.+--+-- * 'uqDescription' - The new description for the queue, if you are changing it.+--+-- * 'uqName' - The name of the queue you are modifying.+updateQueue+    :: Text -- ^ 'uqName'+    -> UpdateQueue+updateQueue pName_ =+  UpdateQueue' {_uqStatus = Nothing, _uqDescription = Nothing, _uqName = pName_}+++-- | Undocumented member.+uqStatus :: Lens' UpdateQueue (Maybe QueueStatus)+uqStatus = lens _uqStatus (\ s a -> s{_uqStatus = a})++-- | The new description for the queue, if you are changing it.+uqDescription :: Lens' UpdateQueue (Maybe Text)+uqDescription = lens _uqDescription (\ s a -> s{_uqDescription = a})++-- | The name of the queue you are modifying.+uqName :: Lens' UpdateQueue Text+uqName = lens _uqName (\ s a -> s{_uqName = a})++instance AWSRequest UpdateQueue where+        type Rs UpdateQueue = UpdateQueueResponse+        request = putJSON mediaConvert+        response+          = receiveJSON+              (\ s h x ->+                 UpdateQueueResponse' <$>+                   (x .?> "queue") <*> (pure (fromEnum s)))++instance Hashable UpdateQueue where++instance NFData UpdateQueue where++instance ToHeaders UpdateQueue where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UpdateQueue where+        toJSON UpdateQueue'{..}+          = object+              (catMaybes+                 [("status" .=) <$> _uqStatus,+                  ("description" .=) <$> _uqDescription])++instance ToPath UpdateQueue where+        toPath UpdateQueue'{..}+          = mconcat ["/2017-08-29/queues/", toBS _uqName]++instance ToQuery UpdateQueue where+        toQuery = const mempty++-- | /See:/ 'updateQueueResponse' smart constructor.+data UpdateQueueResponse = UpdateQueueResponse'+  { _uqrsQueue          :: !(Maybe Queue)+  , _uqrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateQueueResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uqrsQueue' - Undocumented member.+--+-- * 'uqrsResponseStatus' - -- | The response status code.+updateQueueResponse+    :: Int -- ^ 'uqrsResponseStatus'+    -> UpdateQueueResponse+updateQueueResponse pResponseStatus_ =+  UpdateQueueResponse'+    {_uqrsQueue = Nothing, _uqrsResponseStatus = pResponseStatus_}+++-- | Undocumented member.+uqrsQueue :: Lens' UpdateQueueResponse (Maybe Queue)+uqrsQueue = lens _uqrsQueue (\ s a -> s{_uqrsQueue = a})++-- | -- | The response status code.+uqrsResponseStatus :: Lens' UpdateQueueResponse Int+uqrsResponseStatus = lens _uqrsResponseStatus (\ s a -> s{_uqrsResponseStatus = a})++instance NFData UpdateQueueResponse where
+ gen/Network/AWS/MediaConvert/Waiters.hs view
@@ -0,0 +1,21 @@+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TypeFamilies      #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.MediaConvert.Waiters+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.MediaConvert.Waiters where++import Network.AWS.Lens+import Network.AWS.MediaConvert.Types+import Network.AWS.Prelude+import Network.AWS.Waiter
+ src/.gitkeep view
+ test/Main.hs view
@@ -0,0 +1,21 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Main+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Main (main) where++import Test.Tasty+import Test.AWS.MediaConvert+import Test.AWS.MediaConvert.Internal++main :: IO ()+main = defaultMain $ testGroup "MediaConvert"+    [ testGroup "tests"    tests+    , testGroup "fixtures" fixtures+    ]
+ test/Test/AWS/Gen/MediaConvert.hs view
@@ -0,0 +1,399 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-orphans        #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Test.AWS.Gen.MediaConvert+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Test.AWS.Gen.MediaConvert where++import Data.Proxy+import Network.AWS.MediaConvert+import Test.AWS.Fixture+import Test.AWS.MediaConvert.Internal+import Test.AWS.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"+--         [ requestDeletePreset $+--             deletePreset+--+--         , requestUpdatePreset $+--             updatePreset+--+--         , requestListQueues $+--             listQueues+--+--         , requestDeleteQueue $+--             deleteQueue+--+--         , requestUpdateQueue $+--             updateQueue+--+--         , requestGetPreset $+--             getPreset+--+--         , requestCreateJob $+--             createJob+--+--         , requestListJobs $+--             listJobs+--+--         , requestGetJob $+--             getJob+--+--         , requestCreatePreset $+--             createPreset+--+--         , requestListPresets $+--             listPresets+--+--         , requestGetQueue $+--             getQueue+--+--         , requestDescribeEndpoints $+--             describeEndpoints+--+--         , requestCreateQueue $+--             createQueue+--+--         , requestCreateJobTemplate $+--             createJobTemplate+--+--         , requestDeleteJobTemplate $+--             deleteJobTemplate+--+--         , requestUpdateJobTemplate $+--             updateJobTemplate+--+--         , requestListJobTemplates $+--             listJobTemplates+--+--         , requestGetJobTemplate $+--             getJobTemplate+--+--         , requestCancelJob $+--             cancelJob+--+--           ]++--     , testGroup "response"+--         [ responseDeletePreset $+--             deletePresetResponse+--+--         , responseUpdatePreset $+--             updatePresetResponse+--+--         , responseListQueues $+--             listQueuesResponse+--+--         , responseDeleteQueue $+--             deleteQueueResponse+--+--         , responseUpdateQueue $+--             updateQueueResponse+--+--         , responseGetPreset $+--             getPresetResponse+--+--         , responseCreateJob $+--             createJobResponse+--+--         , responseListJobs $+--             listJobsResponse+--+--         , responseGetJob $+--             getJobResponse+--+--         , responseCreatePreset $+--             createPresetResponse+--+--         , responseListPresets $+--             listPresetsResponse+--+--         , responseGetQueue $+--             getQueueResponse+--+--         , responseDescribeEndpoints $+--             describeEndpointsResponse+--+--         , responseCreateQueue $+--             createQueueResponse+--+--         , responseCreateJobTemplate $+--             createJobTemplateResponse+--+--         , responseDeleteJobTemplate $+--             deleteJobTemplateResponse+--+--         , responseUpdateJobTemplate $+--             updateJobTemplateResponse+--+--         , responseListJobTemplates $+--             listJobTemplatesResponse+--+--         , responseGetJobTemplate $+--             getJobTemplateResponse+--+--         , responseCancelJob $+--             cancelJobResponse+--+--           ]+--     ]++-- Requests++requestDeletePreset :: DeletePreset -> TestTree+requestDeletePreset = req+    "DeletePreset"+    "fixture/DeletePreset.yaml"++requestUpdatePreset :: UpdatePreset -> TestTree+requestUpdatePreset = req+    "UpdatePreset"+    "fixture/UpdatePreset.yaml"++requestListQueues :: ListQueues -> TestTree+requestListQueues = req+    "ListQueues"+    "fixture/ListQueues.yaml"++requestDeleteQueue :: DeleteQueue -> TestTree+requestDeleteQueue = req+    "DeleteQueue"+    "fixture/DeleteQueue.yaml"++requestUpdateQueue :: UpdateQueue -> TestTree+requestUpdateQueue = req+    "UpdateQueue"+    "fixture/UpdateQueue.yaml"++requestGetPreset :: GetPreset -> TestTree+requestGetPreset = req+    "GetPreset"+    "fixture/GetPreset.yaml"++requestCreateJob :: CreateJob -> TestTree+requestCreateJob = req+    "CreateJob"+    "fixture/CreateJob.yaml"++requestListJobs :: ListJobs -> TestTree+requestListJobs = req+    "ListJobs"+    "fixture/ListJobs.yaml"++requestGetJob :: GetJob -> TestTree+requestGetJob = req+    "GetJob"+    "fixture/GetJob.yaml"++requestCreatePreset :: CreatePreset -> TestTree+requestCreatePreset = req+    "CreatePreset"+    "fixture/CreatePreset.yaml"++requestListPresets :: ListPresets -> TestTree+requestListPresets = req+    "ListPresets"+    "fixture/ListPresets.yaml"++requestGetQueue :: GetQueue -> TestTree+requestGetQueue = req+    "GetQueue"+    "fixture/GetQueue.yaml"++requestDescribeEndpoints :: DescribeEndpoints -> TestTree+requestDescribeEndpoints = req+    "DescribeEndpoints"+    "fixture/DescribeEndpoints.yaml"++requestCreateQueue :: CreateQueue -> TestTree+requestCreateQueue = req+    "CreateQueue"+    "fixture/CreateQueue.yaml"++requestCreateJobTemplate :: CreateJobTemplate -> TestTree+requestCreateJobTemplate = req+    "CreateJobTemplate"+    "fixture/CreateJobTemplate.yaml"++requestDeleteJobTemplate :: DeleteJobTemplate -> TestTree+requestDeleteJobTemplate = req+    "DeleteJobTemplate"+    "fixture/DeleteJobTemplate.yaml"++requestUpdateJobTemplate :: UpdateJobTemplate -> TestTree+requestUpdateJobTemplate = req+    "UpdateJobTemplate"+    "fixture/UpdateJobTemplate.yaml"++requestListJobTemplates :: ListJobTemplates -> TestTree+requestListJobTemplates = req+    "ListJobTemplates"+    "fixture/ListJobTemplates.yaml"++requestGetJobTemplate :: GetJobTemplate -> TestTree+requestGetJobTemplate = req+    "GetJobTemplate"+    "fixture/GetJobTemplate.yaml"++requestCancelJob :: CancelJob -> TestTree+requestCancelJob = req+    "CancelJob"+    "fixture/CancelJob.yaml"++-- Responses++responseDeletePreset :: DeletePresetResponse -> TestTree+responseDeletePreset = res+    "DeletePresetResponse"+    "fixture/DeletePresetResponse.proto"+    mediaConvert+    (Proxy :: Proxy DeletePreset)++responseUpdatePreset :: UpdatePresetResponse -> TestTree+responseUpdatePreset = res+    "UpdatePresetResponse"+    "fixture/UpdatePresetResponse.proto"+    mediaConvert+    (Proxy :: Proxy UpdatePreset)++responseListQueues :: ListQueuesResponse -> TestTree+responseListQueues = res+    "ListQueuesResponse"+    "fixture/ListQueuesResponse.proto"+    mediaConvert+    (Proxy :: Proxy ListQueues)++responseDeleteQueue :: DeleteQueueResponse -> TestTree+responseDeleteQueue = res+    "DeleteQueueResponse"+    "fixture/DeleteQueueResponse.proto"+    mediaConvert+    (Proxy :: Proxy DeleteQueue)++responseUpdateQueue :: UpdateQueueResponse -> TestTree+responseUpdateQueue = res+    "UpdateQueueResponse"+    "fixture/UpdateQueueResponse.proto"+    mediaConvert+    (Proxy :: Proxy UpdateQueue)++responseGetPreset :: GetPresetResponse -> TestTree+responseGetPreset = res+    "GetPresetResponse"+    "fixture/GetPresetResponse.proto"+    mediaConvert+    (Proxy :: Proxy GetPreset)++responseCreateJob :: CreateJobResponse -> TestTree+responseCreateJob = res+    "CreateJobResponse"+    "fixture/CreateJobResponse.proto"+    mediaConvert+    (Proxy :: Proxy CreateJob)++responseListJobs :: ListJobsResponse -> TestTree+responseListJobs = res+    "ListJobsResponse"+    "fixture/ListJobsResponse.proto"+    mediaConvert+    (Proxy :: Proxy ListJobs)++responseGetJob :: GetJobResponse -> TestTree+responseGetJob = res+    "GetJobResponse"+    "fixture/GetJobResponse.proto"+    mediaConvert+    (Proxy :: Proxy GetJob)++responseCreatePreset :: CreatePresetResponse -> TestTree+responseCreatePreset = res+    "CreatePresetResponse"+    "fixture/CreatePresetResponse.proto"+    mediaConvert+    (Proxy :: Proxy CreatePreset)++responseListPresets :: ListPresetsResponse -> TestTree+responseListPresets = res+    "ListPresetsResponse"+    "fixture/ListPresetsResponse.proto"+    mediaConvert+    (Proxy :: Proxy ListPresets)++responseGetQueue :: GetQueueResponse -> TestTree+responseGetQueue = res+    "GetQueueResponse"+    "fixture/GetQueueResponse.proto"+    mediaConvert+    (Proxy :: Proxy GetQueue)++responseDescribeEndpoints :: DescribeEndpointsResponse -> TestTree+responseDescribeEndpoints = res+    "DescribeEndpointsResponse"+    "fixture/DescribeEndpointsResponse.proto"+    mediaConvert+    (Proxy :: Proxy DescribeEndpoints)++responseCreateQueue :: CreateQueueResponse -> TestTree+responseCreateQueue = res+    "CreateQueueResponse"+    "fixture/CreateQueueResponse.proto"+    mediaConvert+    (Proxy :: Proxy CreateQueue)++responseCreateJobTemplate :: CreateJobTemplateResponse -> TestTree+responseCreateJobTemplate = res+    "CreateJobTemplateResponse"+    "fixture/CreateJobTemplateResponse.proto"+    mediaConvert+    (Proxy :: Proxy CreateJobTemplate)++responseDeleteJobTemplate :: DeleteJobTemplateResponse -> TestTree+responseDeleteJobTemplate = res+    "DeleteJobTemplateResponse"+    "fixture/DeleteJobTemplateResponse.proto"+    mediaConvert+    (Proxy :: Proxy DeleteJobTemplate)++responseUpdateJobTemplate :: UpdateJobTemplateResponse -> TestTree+responseUpdateJobTemplate = res+    "UpdateJobTemplateResponse"+    "fixture/UpdateJobTemplateResponse.proto"+    mediaConvert+    (Proxy :: Proxy UpdateJobTemplate)++responseListJobTemplates :: ListJobTemplatesResponse -> TestTree+responseListJobTemplates = res+    "ListJobTemplatesResponse"+    "fixture/ListJobTemplatesResponse.proto"+    mediaConvert+    (Proxy :: Proxy ListJobTemplates)++responseGetJobTemplate :: GetJobTemplateResponse -> TestTree+responseGetJobTemplate = res+    "GetJobTemplateResponse"+    "fixture/GetJobTemplateResponse.proto"+    mediaConvert+    (Proxy :: Proxy GetJobTemplate)++responseCancelJob :: CancelJobResponse -> TestTree+responseCancelJob = res+    "CancelJobResponse"+    "fixture/CancelJobResponse.proto"+    mediaConvert+    (Proxy :: Proxy CancelJob)
+ test/Test/AWS/MediaConvert.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.AWS.MediaConvert+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Test.AWS.MediaConvert+    ( tests+    , fixtures+    ) where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/AWS/MediaConvert/Internal.hs view
@@ -0,0 +1,9 @@+-- |+-- Module      : Test.AWS.MediaConvert.Internal+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Test.AWS.MediaConvert.Internal where