packages feed

amazonka-mediapackage-vod (empty) → 2.0

raw patch · 93 files changed

+9273/−0 lines, 93 filesdep +amazonka-coredep +amazonka-mediapackage-voddep +amazonka-test

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

Files

+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+    means each individual or legal entity that creates, contributes to+    the creation of, or owns Covered Software.++1.2. "Contributor Version"+    means the combination of the Contributions of others (if any) used+    by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+    means Covered Software of a particular Contributor.++1.4. "Covered Software"+    means Source Code Form to which the initial Contributor has attached+    the notice in Exhibit A, the Executable Form of such Source Code+    Form, and Modifications of such Source Code Form, in each case+    including portions thereof.++1.5. "Incompatible With Secondary Licenses"+    means++    (a) that the initial Contributor has attached the notice described+        in Exhibit B to the Covered Software; or++    (b) that the Covered Software was made available under the terms of+        version 1.1 or earlier of the License, but not also under the+        terms of a Secondary License.++1.6. "Executable Form"+    means any form of the work other than Source Code Form.++1.7. "Larger Work"+    means a work that combines Covered Software with other material, in+    a separate file or files, that is not Covered Software.++1.8. "License"+    means this document.++1.9. "Licensable"+    means having the right to grant, to the maximum extent possible,+    whether at the time of the initial grant or subsequently, any and+    all of the rights conveyed by this License.++1.10. "Modifications"+    means any of the following:++    (a) any file in Source Code Form that results from an addition to,+        deletion from, or modification of the contents of Covered+        Software; or++    (b) any new file in Source Code Form that contains any Covered+        Software.++1.11. "Patent Claims" of a Contributor+    means any patent claim(s), including without limitation, method,+    process, and apparatus claims, in any patent Licensable by such+    Contributor that would be infringed, but for the grant of the+    License, by the making, using, selling, offering for sale, having+    made, import, or transfer of either its Contributions or its+    Contributor Version.++1.12. "Secondary License"+    means either the GNU General Public License, Version 2.0, the GNU+    Lesser General Public License, Version 2.1, the GNU Affero General+    Public License, Version 3.0, or any later versions of those+    licenses.++1.13. "Source Code Form"+    means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+    means an individual or a legal entity exercising rights under this+    License. For legal entities, "You" includes any entity that+    controls, is controlled by, or is under common control with You. For+    purposes of this definition, "control" means (a) the power, direct+    or indirect, to cause the direction or management of such entity,+    whether by contract or otherwise, or (b) ownership of more than+    fifty percent (50%) of the outstanding shares or beneficial+    ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+    Licensable by such Contributor to use, reproduce, make available,+    modify, display, perform, distribute, and otherwise exploit its+    Contributions, either on an unmodified basis, with Modifications, or+    as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+    for sale, have made, import, and otherwise transfer either its+    Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+    or++(b) for infringements caused by: (i) Your and any other third party's+    modifications of Covered Software, or (ii) the combination of its+    Contributions with other software (except as part of its Contributor+    Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+    its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+    Form, as described in Section 3.1, and You must inform recipients of+    the Executable Form how they can obtain a copy of such Source Code+    Form by reasonable means in a timely manner, at a charge no more+    than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+    License, or sublicense it under different terms, provided that the+    license for the Executable Form does not attempt to limit or alter+    the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+*                                                                      *+*  6. Disclaimer of Warranty                                           *+*  -------------------------                                           *+*                                                                      *+*  Covered Software is provided under this License on an "as is"       *+*  basis, without warranty of any kind, either expressed, implied, or  *+*  statutory, including, without limitation, warranties that the       *+*  Covered Software is free of defects, merchantable, fit for a        *+*  particular purpose or non-infringing. The entire risk as to the     *+*  quality and performance of the Covered Software is with You.        *+*  Should any Covered Software prove defective in any respect, You     *+*  (not any Contributor) assume the cost of any necessary servicing,   *+*  repair, or correction. This disclaimer of warranty constitutes an   *+*  essential part of this License. No use of any Covered Software is   *+*  authorized under this License except under this disclaimer.         *+*                                                                      *+************************************************************************++************************************************************************+*                                                                      *+*  7. Limitation of Liability                                          *+*  --------------------------                                          *+*                                                                      *+*  Under no circumstances and under no legal theory, whether tort      *+*  (including negligence), contract, or otherwise, shall any           *+*  Contributor, or anyone who distributes Covered Software as          *+*  permitted above, be liable to You for any direct, indirect,         *+*  special, incidental, or consequential damages of any character      *+*  including, without limitation, damages for lost profits, loss of    *+*  goodwill, work stoppage, computer failure or malfunction, or any    *+*  and all other commercial damages or losses, even if such party      *+*  shall have been informed of the possibility of such damages. This   *+*  limitation of liability shall not apply to liability for death or   *+*  personal injury resulting from such party's negligence to the       *+*  extent applicable law prohibits such limitation. Some               *+*  jurisdictions do not allow the exclusion or limitation of           *+*  incidental or consequential damages, so this exclusion and          *+*  limitation may not apply to You.                                    *+*                                                                      *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++  This Source Code Form is subject to the terms of the Mozilla Public+  License, v. 2.0. If a copy of the MPL was not distributed with this+  file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,44 @@+# Amazon Elemental MediaPackage VOD SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2018-11-07@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-mediapackage-vod)+and the [AWS API Reference](https://aws.amazon.com/documentation/).++The types from this library are intended to be used with [amazonka](http://hackage.haskell.org/package/amazonka),+which provides mechanisms for specifying AuthN/AuthZ information, sending requests,+and receiving responses.++Lenses are used for constructing and manipulating types,+due to the depth of nesting of AWS types and transparency regarding+de/serialisation into more palatable Haskell values.+The provided lenses should be compatible with any of the major lens libraries+[lens](http://hackage.haskell.org/package/lens) or [lens-family-core](http://hackage.haskell.org/package/lens-family-core).++See [Amazonka.MediaPackageVOD](http://hackage.haskell.org/package/amazonka-mediapackage-vod/docs/Amazonka-MediaPackageVOD.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-mediapackage-vod` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).++Parts of the code are derived from AWS service descriptions, licensed under Apache 2.0.+Source files subject to this contain an additional licensing clause in their header.
+ amazonka-mediapackage-vod.cabal view
@@ -0,0 +1,130 @@+cabal-version:      2.2+name:               amazonka-mediapackage-vod+version:            2.0+synopsis:           Amazon Elemental MediaPackage VOD SDK.+homepage:           https://github.com/brendanhay/amazonka+bug-reports:        https://github.com/brendanhay/amazonka/issues+license:            MPL-2.0+license-file:       LICENSE+author:             Brendan Hay+maintainer:+  Brendan Hay <brendan.g.hay+amazonka@gmail.com>, Jack Kelly <jack@jackkelly.name>++copyright:          Copyright (c) 2013-2023 Brendan Hay+category:           AWS+build-type:         Simple+extra-source-files:+  fixture/*.proto+  fixture/*.yaml+  README.md+  src/.gitkeep++description:+  Derived from API version @2018-11-07@ of the AWS service descriptions, licensed under Apache 2.0.+  .+  The types from this library are intended to be used with <http://hackage.haskell.org/package/amazonka amazonka>,+  which provides mechanisms for specifying AuthN/AuthZ information, sending requests, and receiving responses.+  .+  It is recommended to use generic lenses or optics from packages such as <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify optional fields and deconstruct responses.+  .+  Generated lenses can be found in "Amazonka.MediaPackageVOD.Lens" and are+  suitable for use with a lens package such as <http://hackage.haskell.org/package/lens lens> or <http://hackage.haskell.org/package/lens-family-core lens-family-core>.+  .+  See "Amazonka.MediaPackageVOD" and the <https://aws.amazon.com/documentation/ AWS documentation> to get started.++source-repository head+  type:     git+  location: git://github.com/brendanhay/amazonka.git+  subdir:   amazonka-mediapackage-vod++library+  default-language: Haskell2010+  hs-source-dirs:   src gen+  ghc-options:+    -Wall -fwarn-incomplete-uni-patterns+    -fwarn-incomplete-record-updates -funbox-strict-fields++  exposed-modules:+    Amazonka.MediaPackageVOD+    Amazonka.MediaPackageVOD.ConfigureLogs+    Amazonka.MediaPackageVOD.CreateAsset+    Amazonka.MediaPackageVOD.CreatePackagingConfiguration+    Amazonka.MediaPackageVOD.CreatePackagingGroup+    Amazonka.MediaPackageVOD.DeleteAsset+    Amazonka.MediaPackageVOD.DeletePackagingConfiguration+    Amazonka.MediaPackageVOD.DeletePackagingGroup+    Amazonka.MediaPackageVOD.DescribeAsset+    Amazonka.MediaPackageVOD.DescribePackagingConfiguration+    Amazonka.MediaPackageVOD.DescribePackagingGroup+    Amazonka.MediaPackageVOD.Lens+    Amazonka.MediaPackageVOD.ListAssets+    Amazonka.MediaPackageVOD.ListPackagingConfigurations+    Amazonka.MediaPackageVOD.ListPackagingGroups+    Amazonka.MediaPackageVOD.ListTagsForResource+    Amazonka.MediaPackageVOD.TagResource+    Amazonka.MediaPackageVOD.Types+    Amazonka.MediaPackageVOD.Types.AdMarkers+    Amazonka.MediaPackageVOD.Types.AssetShallow+    Amazonka.MediaPackageVOD.Types.Authorization+    Amazonka.MediaPackageVOD.Types.CmafEncryption+    Amazonka.MediaPackageVOD.Types.CmafPackage+    Amazonka.MediaPackageVOD.Types.DashEncryption+    Amazonka.MediaPackageVOD.Types.DashManifest+    Amazonka.MediaPackageVOD.Types.DashPackage+    Amazonka.MediaPackageVOD.Types.EgressAccessLogs+    Amazonka.MediaPackageVOD.Types.EgressEndpoint+    Amazonka.MediaPackageVOD.Types.EncryptionContractConfiguration+    Amazonka.MediaPackageVOD.Types.EncryptionMethod+    Amazonka.MediaPackageVOD.Types.HlsEncryption+    Amazonka.MediaPackageVOD.Types.HlsManifest+    Amazonka.MediaPackageVOD.Types.HlsPackage+    Amazonka.MediaPackageVOD.Types.ManifestLayout+    Amazonka.MediaPackageVOD.Types.MssEncryption+    Amazonka.MediaPackageVOD.Types.MssManifest+    Amazonka.MediaPackageVOD.Types.MssPackage+    Amazonka.MediaPackageVOD.Types.PackagingConfiguration+    Amazonka.MediaPackageVOD.Types.PackagingGroup+    Amazonka.MediaPackageVOD.Types.PeriodTriggersElement+    Amazonka.MediaPackageVOD.Types.PresetSpeke20Audio+    Amazonka.MediaPackageVOD.Types.PresetSpeke20Video+    Amazonka.MediaPackageVOD.Types.Profile+    Amazonka.MediaPackageVOD.Types.ScteMarkersSource+    Amazonka.MediaPackageVOD.Types.SegmentTemplateFormat+    Amazonka.MediaPackageVOD.Types.SpekeKeyProvider+    Amazonka.MediaPackageVOD.Types.StreamOrder+    Amazonka.MediaPackageVOD.Types.StreamSelection+    Amazonka.MediaPackageVOD.UntagResource+    Amazonka.MediaPackageVOD.UpdatePackagingGroup+    Amazonka.MediaPackageVOD.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-mediapackage-vod-test+  type:             exitcode-stdio-1.0+  default-language: Haskell2010+  hs-source-dirs:   test+  main-is:          Main.hs+  ghc-options:      -Wall -threaded++  -- This section is encoded by the template and any modules added by+  -- hand outside these namespaces will not correctly be added to the+  -- distribution package.+  other-modules:+    Test.Amazonka.Gen.MediaPackageVOD+    Test.Amazonka.MediaPackageVOD+    Test.Amazonka.MediaPackageVOD.Internal++  build-depends:+    , amazonka-core              >=2.0 && <2.1+    , amazonka-mediapackage-vod+    , amazonka-test              >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/ConfigureLogs.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediapackage-vod/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediapackage-vod.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/ConfigureLogsResponse.proto view
+ fixture/CreateAsset.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediapackage-vod/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediapackage-vod.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/CreateAssetResponse.proto view
+ fixture/CreatePackagingConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediapackage-vod/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediapackage-vod.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/CreatePackagingConfigurationResponse.proto view
+ fixture/CreatePackagingGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediapackage-vod/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediapackage-vod.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/CreatePackagingGroupResponse.proto view
+ fixture/DeleteAsset.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediapackage-vod/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediapackage-vod.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/DeleteAssetResponse.proto view
+ fixture/DeletePackagingConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediapackage-vod/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediapackage-vod.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/DeletePackagingConfigurationResponse.proto view
+ fixture/DeletePackagingGroup.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediapackage-vod/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediapackage-vod.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/DeletePackagingGroupResponse.proto view
+ fixture/DescribeAsset.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediapackage-vod/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediapackage-vod.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/DescribeAssetResponse.proto view
+ fixture/DescribePackagingConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediapackage-vod/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediapackage-vod.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/DescribePackagingConfigurationResponse.proto view
+ fixture/DescribePackagingGroup.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediapackage-vod/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediapackage-vod.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/DescribePackagingGroupResponse.proto view
+ fixture/ListAssets.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediapackage-vod/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediapackage-vod.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/ListAssetsResponse.proto view
+ fixture/ListPackagingConfigurations.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediapackage-vod/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediapackage-vod.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/ListPackagingConfigurationsResponse.proto view
+ fixture/ListPackagingGroups.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediapackage-vod/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediapackage-vod.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/ListPackagingGroupsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediapackage-vod/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediapackage-vod.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListTagsForResourceResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediapackage-vod/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediapackage-vod.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/TagResourceResponse.proto view
+ fixture/UntagResource.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediapackage-vod/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediapackage-vod.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UntagResourceResponse.proto view
+ fixture/UpdatePackagingGroup.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediapackage-vod/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediapackage-vod.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/UpdatePackagingGroupResponse.proto view
+ gen/Amazonka/MediaPackageVOD.hs view
@@ -0,0 +1,308 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.MediaPackageVOD+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Derived from API version @2018-11-07@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- AWS Elemental MediaPackage VOD+module Amazonka.MediaPackageVOD+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** ForbiddenException+    _ForbiddenException,++    -- ** InternalServerErrorException+    _InternalServerErrorException,++    -- ** NotFoundException+    _NotFoundException,++    -- ** ServiceUnavailableException+    _ServiceUnavailableException,++    -- ** TooManyRequestsException+    _TooManyRequestsException,++    -- ** UnprocessableEntityException+    _UnprocessableEntityException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** ConfigureLogs+    ConfigureLogs (ConfigureLogs'),+    newConfigureLogs,+    ConfigureLogsResponse (ConfigureLogsResponse'),+    newConfigureLogsResponse,++    -- ** CreateAsset+    CreateAsset (CreateAsset'),+    newCreateAsset,+    CreateAssetResponse (CreateAssetResponse'),+    newCreateAssetResponse,++    -- ** CreatePackagingConfiguration+    CreatePackagingConfiguration (CreatePackagingConfiguration'),+    newCreatePackagingConfiguration,+    CreatePackagingConfigurationResponse (CreatePackagingConfigurationResponse'),+    newCreatePackagingConfigurationResponse,++    -- ** CreatePackagingGroup+    CreatePackagingGroup (CreatePackagingGroup'),+    newCreatePackagingGroup,+    CreatePackagingGroupResponse (CreatePackagingGroupResponse'),+    newCreatePackagingGroupResponse,++    -- ** DeleteAsset+    DeleteAsset (DeleteAsset'),+    newDeleteAsset,+    DeleteAssetResponse (DeleteAssetResponse'),+    newDeleteAssetResponse,++    -- ** DeletePackagingConfiguration+    DeletePackagingConfiguration (DeletePackagingConfiguration'),+    newDeletePackagingConfiguration,+    DeletePackagingConfigurationResponse (DeletePackagingConfigurationResponse'),+    newDeletePackagingConfigurationResponse,++    -- ** DeletePackagingGroup+    DeletePackagingGroup (DeletePackagingGroup'),+    newDeletePackagingGroup,+    DeletePackagingGroupResponse (DeletePackagingGroupResponse'),+    newDeletePackagingGroupResponse,++    -- ** DescribeAsset+    DescribeAsset (DescribeAsset'),+    newDescribeAsset,+    DescribeAssetResponse (DescribeAssetResponse'),+    newDescribeAssetResponse,++    -- ** DescribePackagingConfiguration+    DescribePackagingConfiguration (DescribePackagingConfiguration'),+    newDescribePackagingConfiguration,+    DescribePackagingConfigurationResponse (DescribePackagingConfigurationResponse'),+    newDescribePackagingConfigurationResponse,++    -- ** DescribePackagingGroup+    DescribePackagingGroup (DescribePackagingGroup'),+    newDescribePackagingGroup,+    DescribePackagingGroupResponse (DescribePackagingGroupResponse'),+    newDescribePackagingGroupResponse,++    -- ** ListAssets (Paginated)+    ListAssets (ListAssets'),+    newListAssets,+    ListAssetsResponse (ListAssetsResponse'),+    newListAssetsResponse,++    -- ** ListPackagingConfigurations (Paginated)+    ListPackagingConfigurations (ListPackagingConfigurations'),+    newListPackagingConfigurations,+    ListPackagingConfigurationsResponse (ListPackagingConfigurationsResponse'),+    newListPackagingConfigurationsResponse,++    -- ** ListPackagingGroups (Paginated)+    ListPackagingGroups (ListPackagingGroups'),+    newListPackagingGroups,+    ListPackagingGroupsResponse (ListPackagingGroupsResponse'),+    newListPackagingGroupsResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdatePackagingGroup+    UpdatePackagingGroup (UpdatePackagingGroup'),+    newUpdatePackagingGroup,+    UpdatePackagingGroupResponse (UpdatePackagingGroupResponse'),+    newUpdatePackagingGroupResponse,++    -- * Types++    -- ** AdMarkers+    AdMarkers (..),++    -- ** EncryptionMethod+    EncryptionMethod (..),++    -- ** ManifestLayout+    ManifestLayout (..),++    -- ** PeriodTriggersElement+    PeriodTriggersElement (..),++    -- ** PresetSpeke20Audio+    PresetSpeke20Audio (..),++    -- ** PresetSpeke20Video+    PresetSpeke20Video (..),++    -- ** Profile+    Profile (..),++    -- ** ScteMarkersSource+    ScteMarkersSource (..),++    -- ** SegmentTemplateFormat+    SegmentTemplateFormat (..),++    -- ** StreamOrder+    StreamOrder (..),++    -- ** AssetShallow+    AssetShallow (AssetShallow'),+    newAssetShallow,++    -- ** Authorization+    Authorization (Authorization'),+    newAuthorization,++    -- ** CmafEncryption+    CmafEncryption (CmafEncryption'),+    newCmafEncryption,++    -- ** CmafPackage+    CmafPackage (CmafPackage'),+    newCmafPackage,++    -- ** DashEncryption+    DashEncryption (DashEncryption'),+    newDashEncryption,++    -- ** DashManifest+    DashManifest (DashManifest'),+    newDashManifest,++    -- ** DashPackage+    DashPackage (DashPackage'),+    newDashPackage,++    -- ** EgressAccessLogs+    EgressAccessLogs (EgressAccessLogs'),+    newEgressAccessLogs,++    -- ** EgressEndpoint+    EgressEndpoint (EgressEndpoint'),+    newEgressEndpoint,++    -- ** EncryptionContractConfiguration+    EncryptionContractConfiguration (EncryptionContractConfiguration'),+    newEncryptionContractConfiguration,++    -- ** HlsEncryption+    HlsEncryption (HlsEncryption'),+    newHlsEncryption,++    -- ** HlsManifest+    HlsManifest (HlsManifest'),+    newHlsManifest,++    -- ** HlsPackage+    HlsPackage (HlsPackage'),+    newHlsPackage,++    -- ** MssEncryption+    MssEncryption (MssEncryption'),+    newMssEncryption,++    -- ** MssManifest+    MssManifest (MssManifest'),+    newMssManifest,++    -- ** MssPackage+    MssPackage (MssPackage'),+    newMssPackage,++    -- ** PackagingConfiguration+    PackagingConfiguration (PackagingConfiguration'),+    newPackagingConfiguration,++    -- ** PackagingGroup+    PackagingGroup (PackagingGroup'),+    newPackagingGroup,++    -- ** SpekeKeyProvider+    SpekeKeyProvider (SpekeKeyProvider'),+    newSpekeKeyProvider,++    -- ** StreamSelection+    StreamSelection (StreamSelection'),+    newStreamSelection,+  )+where++import Amazonka.MediaPackageVOD.ConfigureLogs+import Amazonka.MediaPackageVOD.CreateAsset+import Amazonka.MediaPackageVOD.CreatePackagingConfiguration+import Amazonka.MediaPackageVOD.CreatePackagingGroup+import Amazonka.MediaPackageVOD.DeleteAsset+import Amazonka.MediaPackageVOD.DeletePackagingConfiguration+import Amazonka.MediaPackageVOD.DeletePackagingGroup+import Amazonka.MediaPackageVOD.DescribeAsset+import Amazonka.MediaPackageVOD.DescribePackagingConfiguration+import Amazonka.MediaPackageVOD.DescribePackagingGroup+import Amazonka.MediaPackageVOD.Lens+import Amazonka.MediaPackageVOD.ListAssets+import Amazonka.MediaPackageVOD.ListPackagingConfigurations+import Amazonka.MediaPackageVOD.ListPackagingGroups+import Amazonka.MediaPackageVOD.ListTagsForResource+import Amazonka.MediaPackageVOD.TagResource+import Amazonka.MediaPackageVOD.Types+import Amazonka.MediaPackageVOD.UntagResource+import Amazonka.MediaPackageVOD.UpdatePackagingGroup+import Amazonka.MediaPackageVOD.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 'MediaPackageVOD'.++-- $operations+-- Some AWS operations return results that are incomplete and require subsequent+-- requests in order to obtain the entire result set. The process of sending+-- subsequent requests to continue where a previous request left off is called+-- pagination. For example, the 'ListObjects' operation of Amazon S3 returns up to+-- 1000 objects at a time, and you must send subsequent requests with the+-- appropriate Marker in order to retrieve the next page of results.+--+-- Operations that have an 'AWSPager' instance can transparently perform subsequent+-- requests, correctly setting Markers and other request facets to iterate through+-- the entire result set of a truncated API operation. Operations which support+-- this have an additional note in the documentation.+--+-- Many operations have the ability to filter results on the server side. See the+-- individual operation parameters for details.++-- $waiters+-- Waiters poll by repeatedly sending a request until some remote success condition+-- configured by the 'Wait' specification is fulfilled. The 'Wait' specification+-- determines how many attempts should be made, in addition to delay and retry strategies.
+ gen/Amazonka/MediaPackageVOD/ConfigureLogs.hs view
@@ -0,0 +1,244 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.ConfigureLogs+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Changes the packaging group\'s properities to configure log subscription+module Amazonka.MediaPackageVOD.ConfigureLogs+  ( -- * Creating a Request+    ConfigureLogs (..),+    newConfigureLogs,++    -- * Request Lenses+    configureLogs_egressAccessLogs,+    configureLogs_id,++    -- * Destructuring the Response+    ConfigureLogsResponse (..),+    newConfigureLogsResponse,++    -- * Response Lenses+    configureLogsResponse_arn,+    configureLogsResponse_authorization,+    configureLogsResponse_domainName,+    configureLogsResponse_egressAccessLogs,+    configureLogsResponse_id,+    configureLogsResponse_tags,+    configureLogsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The option to configure log subscription.+--+-- /See:/ 'newConfigureLogs' smart constructor.+data ConfigureLogs = ConfigureLogs'+  { egressAccessLogs :: Prelude.Maybe EgressAccessLogs,+    -- | The ID of a MediaPackage VOD PackagingGroup resource.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConfigureLogs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'egressAccessLogs', 'configureLogs_egressAccessLogs' - Undocumented member.+--+-- 'id', 'configureLogs_id' - The ID of a MediaPackage VOD PackagingGroup resource.+newConfigureLogs ::+  -- | 'id'+  Prelude.Text ->+  ConfigureLogs+newConfigureLogs pId_ =+  ConfigureLogs'+    { egressAccessLogs = Prelude.Nothing,+      id = pId_+    }++-- | Undocumented member.+configureLogs_egressAccessLogs :: Lens.Lens' ConfigureLogs (Prelude.Maybe EgressAccessLogs)+configureLogs_egressAccessLogs = Lens.lens (\ConfigureLogs' {egressAccessLogs} -> egressAccessLogs) (\s@ConfigureLogs' {} a -> s {egressAccessLogs = a} :: ConfigureLogs)++-- | The ID of a MediaPackage VOD PackagingGroup resource.+configureLogs_id :: Lens.Lens' ConfigureLogs Prelude.Text+configureLogs_id = Lens.lens (\ConfigureLogs' {id} -> id) (\s@ConfigureLogs' {} a -> s {id = a} :: ConfigureLogs)++instance Core.AWSRequest ConfigureLogs where+  type+    AWSResponse ConfigureLogs =+      ConfigureLogsResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ConfigureLogsResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "authorization")+            Prelude.<*> (x Data..?> "domainName")+            Prelude.<*> (x Data..?> "egressAccessLogs")+            Prelude.<*> (x Data..?> "id")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ConfigureLogs where+  hashWithSalt _salt ConfigureLogs' {..} =+    _salt+      `Prelude.hashWithSalt` egressAccessLogs+      `Prelude.hashWithSalt` id++instance Prelude.NFData ConfigureLogs where+  rnf ConfigureLogs' {..} =+    Prelude.rnf egressAccessLogs+      `Prelude.seq` Prelude.rnf id++instance Data.ToHeaders ConfigureLogs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ConfigureLogs where+  toJSON ConfigureLogs' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("egressAccessLogs" Data..=)+              Prelude.<$> egressAccessLogs+          ]+      )++instance Data.ToPath ConfigureLogs where+  toPath ConfigureLogs' {..} =+    Prelude.mconcat+      [ "/packaging_groups/",+        Data.toBS id,+        "/configure_logs"+      ]++instance Data.ToQuery ConfigureLogs where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newConfigureLogsResponse' smart constructor.+data ConfigureLogsResponse = ConfigureLogsResponse'+  { -- | The ARN of the PackagingGroup.+    arn :: Prelude.Maybe Prelude.Text,+    authorization :: Prelude.Maybe Authorization,+    -- | The fully qualified domain name for Assets in the PackagingGroup.+    domainName :: Prelude.Maybe Prelude.Text,+    egressAccessLogs :: Prelude.Maybe EgressAccessLogs,+    -- | The ID of the PackagingGroup.+    id :: Prelude.Maybe Prelude.Text,+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConfigureLogsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'configureLogsResponse_arn' - The ARN of the PackagingGroup.+--+-- 'authorization', 'configureLogsResponse_authorization' - Undocumented member.+--+-- 'domainName', 'configureLogsResponse_domainName' - The fully qualified domain name for Assets in the PackagingGroup.+--+-- 'egressAccessLogs', 'configureLogsResponse_egressAccessLogs' - Undocumented member.+--+-- 'id', 'configureLogsResponse_id' - The ID of the PackagingGroup.+--+-- 'tags', 'configureLogsResponse_tags' - Undocumented member.+--+-- 'httpStatus', 'configureLogsResponse_httpStatus' - The response's http status code.+newConfigureLogsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ConfigureLogsResponse+newConfigureLogsResponse pHttpStatus_ =+  ConfigureLogsResponse'+    { arn = Prelude.Nothing,+      authorization = Prelude.Nothing,+      domainName = Prelude.Nothing,+      egressAccessLogs = Prelude.Nothing,+      id = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the PackagingGroup.+configureLogsResponse_arn :: Lens.Lens' ConfigureLogsResponse (Prelude.Maybe Prelude.Text)+configureLogsResponse_arn = Lens.lens (\ConfigureLogsResponse' {arn} -> arn) (\s@ConfigureLogsResponse' {} a -> s {arn = a} :: ConfigureLogsResponse)++-- | Undocumented member.+configureLogsResponse_authorization :: Lens.Lens' ConfigureLogsResponse (Prelude.Maybe Authorization)+configureLogsResponse_authorization = Lens.lens (\ConfigureLogsResponse' {authorization} -> authorization) (\s@ConfigureLogsResponse' {} a -> s {authorization = a} :: ConfigureLogsResponse)++-- | The fully qualified domain name for Assets in the PackagingGroup.+configureLogsResponse_domainName :: Lens.Lens' ConfigureLogsResponse (Prelude.Maybe Prelude.Text)+configureLogsResponse_domainName = Lens.lens (\ConfigureLogsResponse' {domainName} -> domainName) (\s@ConfigureLogsResponse' {} a -> s {domainName = a} :: ConfigureLogsResponse)++-- | Undocumented member.+configureLogsResponse_egressAccessLogs :: Lens.Lens' ConfigureLogsResponse (Prelude.Maybe EgressAccessLogs)+configureLogsResponse_egressAccessLogs = Lens.lens (\ConfigureLogsResponse' {egressAccessLogs} -> egressAccessLogs) (\s@ConfigureLogsResponse' {} a -> s {egressAccessLogs = a} :: ConfigureLogsResponse)++-- | The ID of the PackagingGroup.+configureLogsResponse_id :: Lens.Lens' ConfigureLogsResponse (Prelude.Maybe Prelude.Text)+configureLogsResponse_id = Lens.lens (\ConfigureLogsResponse' {id} -> id) (\s@ConfigureLogsResponse' {} a -> s {id = a} :: ConfigureLogsResponse)++-- | Undocumented member.+configureLogsResponse_tags :: Lens.Lens' ConfigureLogsResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+configureLogsResponse_tags = Lens.lens (\ConfigureLogsResponse' {tags} -> tags) (\s@ConfigureLogsResponse' {} a -> s {tags = a} :: ConfigureLogsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+configureLogsResponse_httpStatus :: Lens.Lens' ConfigureLogsResponse Prelude.Int+configureLogsResponse_httpStatus = Lens.lens (\ConfigureLogsResponse' {httpStatus} -> httpStatus) (\s@ConfigureLogsResponse' {} a -> s {httpStatus = a} :: ConfigureLogsResponse)++instance Prelude.NFData ConfigureLogsResponse where+  rnf ConfigureLogsResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf authorization+      `Prelude.seq` Prelude.rnf domainName+      `Prelude.seq` Prelude.rnf egressAccessLogs+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaPackageVOD/CreateAsset.hs view
@@ -0,0 +1,342 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.CreateAsset+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new MediaPackage VOD Asset resource.+module Amazonka.MediaPackageVOD.CreateAsset+  ( -- * Creating a Request+    CreateAsset (..),+    newCreateAsset,++    -- * Request Lenses+    createAsset_resourceId,+    createAsset_tags,+    createAsset_sourceArn,+    createAsset_id,+    createAsset_packagingGroupId,+    createAsset_sourceRoleArn,++    -- * Destructuring the Response+    CreateAssetResponse (..),+    newCreateAssetResponse,++    -- * Response Lenses+    createAssetResponse_arn,+    createAssetResponse_createdAt,+    createAssetResponse_egressEndpoints,+    createAssetResponse_id,+    createAssetResponse_packagingGroupId,+    createAssetResponse_resourceId,+    createAssetResponse_sourceArn,+    createAssetResponse_sourceRoleArn,+    createAssetResponse_tags,+    createAssetResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | A new MediaPackage VOD Asset configuration.+--+-- /See:/ 'newCreateAsset' smart constructor.+data CreateAsset = CreateAsset'+  { -- | The resource ID to include in SPEKE key requests.+    resourceId :: Prelude.Maybe Prelude.Text,+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | ARN of the source object in S3.+    sourceArn :: Prelude.Text,+    -- | The unique identifier for the Asset.+    id :: Prelude.Text,+    -- | The ID of the PackagingGroup for the Asset.+    packagingGroupId :: Prelude.Text,+    -- | The IAM role ARN used to access the source S3 bucket.+    sourceRoleArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateAsset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceId', 'createAsset_resourceId' - The resource ID to include in SPEKE key requests.+--+-- 'tags', 'createAsset_tags' - Undocumented member.+--+-- 'sourceArn', 'createAsset_sourceArn' - ARN of the source object in S3.+--+-- 'id', 'createAsset_id' - The unique identifier for the Asset.+--+-- 'packagingGroupId', 'createAsset_packagingGroupId' - The ID of the PackagingGroup for the Asset.+--+-- 'sourceRoleArn', 'createAsset_sourceRoleArn' - The IAM role ARN used to access the source S3 bucket.+newCreateAsset ::+  -- | 'sourceArn'+  Prelude.Text ->+  -- | 'id'+  Prelude.Text ->+  -- | 'packagingGroupId'+  Prelude.Text ->+  -- | 'sourceRoleArn'+  Prelude.Text ->+  CreateAsset+newCreateAsset+  pSourceArn_+  pId_+  pPackagingGroupId_+  pSourceRoleArn_ =+    CreateAsset'+      { resourceId = Prelude.Nothing,+        tags = Prelude.Nothing,+        sourceArn = pSourceArn_,+        id = pId_,+        packagingGroupId = pPackagingGroupId_,+        sourceRoleArn = pSourceRoleArn_+      }++-- | The resource ID to include in SPEKE key requests.+createAsset_resourceId :: Lens.Lens' CreateAsset (Prelude.Maybe Prelude.Text)+createAsset_resourceId = Lens.lens (\CreateAsset' {resourceId} -> resourceId) (\s@CreateAsset' {} a -> s {resourceId = a} :: CreateAsset)++-- | Undocumented member.+createAsset_tags :: Lens.Lens' CreateAsset (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createAsset_tags = Lens.lens (\CreateAsset' {tags} -> tags) (\s@CreateAsset' {} a -> s {tags = a} :: CreateAsset) Prelude.. Lens.mapping Lens.coerced++-- | ARN of the source object in S3.+createAsset_sourceArn :: Lens.Lens' CreateAsset Prelude.Text+createAsset_sourceArn = Lens.lens (\CreateAsset' {sourceArn} -> sourceArn) (\s@CreateAsset' {} a -> s {sourceArn = a} :: CreateAsset)++-- | The unique identifier for the Asset.+createAsset_id :: Lens.Lens' CreateAsset Prelude.Text+createAsset_id = Lens.lens (\CreateAsset' {id} -> id) (\s@CreateAsset' {} a -> s {id = a} :: CreateAsset)++-- | The ID of the PackagingGroup for the Asset.+createAsset_packagingGroupId :: Lens.Lens' CreateAsset Prelude.Text+createAsset_packagingGroupId = Lens.lens (\CreateAsset' {packagingGroupId} -> packagingGroupId) (\s@CreateAsset' {} a -> s {packagingGroupId = a} :: CreateAsset)++-- | The IAM role ARN used to access the source S3 bucket.+createAsset_sourceRoleArn :: Lens.Lens' CreateAsset Prelude.Text+createAsset_sourceRoleArn = Lens.lens (\CreateAsset' {sourceRoleArn} -> sourceRoleArn) (\s@CreateAsset' {} a -> s {sourceRoleArn = a} :: CreateAsset)++instance Core.AWSRequest CreateAsset where+  type AWSResponse CreateAsset = CreateAssetResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateAssetResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "createdAt")+            Prelude.<*> ( x+                            Data..?> "egressEndpoints"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "id")+            Prelude.<*> (x Data..?> "packagingGroupId")+            Prelude.<*> (x Data..?> "resourceId")+            Prelude.<*> (x Data..?> "sourceArn")+            Prelude.<*> (x Data..?> "sourceRoleArn")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateAsset where+  hashWithSalt _salt CreateAsset' {..} =+    _salt+      `Prelude.hashWithSalt` resourceId+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` sourceArn+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` packagingGroupId+      `Prelude.hashWithSalt` sourceRoleArn++instance Prelude.NFData CreateAsset where+  rnf CreateAsset' {..} =+    Prelude.rnf resourceId+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf sourceArn+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf packagingGroupId+      `Prelude.seq` Prelude.rnf sourceRoleArn++instance Data.ToHeaders CreateAsset where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateAsset where+  toJSON CreateAsset' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("resourceId" Data..=) Prelude.<$> resourceId,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("sourceArn" Data..= sourceArn),+            Prelude.Just ("id" Data..= id),+            Prelude.Just+              ("packagingGroupId" Data..= packagingGroupId),+            Prelude.Just+              ("sourceRoleArn" Data..= sourceRoleArn)+          ]+      )++instance Data.ToPath CreateAsset where+  toPath = Prelude.const "/assets"++instance Data.ToQuery CreateAsset where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateAssetResponse' smart constructor.+data CreateAssetResponse = CreateAssetResponse'+  { -- | The ARN of the Asset.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The time the Asset was initially submitted for Ingest.+    createdAt :: Prelude.Maybe Prelude.Text,+    -- | The list of egress endpoints available for the Asset.+    egressEndpoints :: Prelude.Maybe [EgressEndpoint],+    -- | The unique identifier for the Asset.+    id :: Prelude.Maybe Prelude.Text,+    -- | The ID of the PackagingGroup for the Asset.+    packagingGroupId :: Prelude.Maybe Prelude.Text,+    -- | The resource ID to include in SPEKE key requests.+    resourceId :: Prelude.Maybe Prelude.Text,+    -- | ARN of the source object in S3.+    sourceArn :: Prelude.Maybe Prelude.Text,+    -- | The IAM role_arn used to access the source S3 bucket.+    sourceRoleArn :: Prelude.Maybe Prelude.Text,+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateAssetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'createAssetResponse_arn' - The ARN of the Asset.+--+-- 'createdAt', 'createAssetResponse_createdAt' - The time the Asset was initially submitted for Ingest.+--+-- 'egressEndpoints', 'createAssetResponse_egressEndpoints' - The list of egress endpoints available for the Asset.+--+-- 'id', 'createAssetResponse_id' - The unique identifier for the Asset.+--+-- 'packagingGroupId', 'createAssetResponse_packagingGroupId' - The ID of the PackagingGroup for the Asset.+--+-- 'resourceId', 'createAssetResponse_resourceId' - The resource ID to include in SPEKE key requests.+--+-- 'sourceArn', 'createAssetResponse_sourceArn' - ARN of the source object in S3.+--+-- 'sourceRoleArn', 'createAssetResponse_sourceRoleArn' - The IAM role_arn used to access the source S3 bucket.+--+-- 'tags', 'createAssetResponse_tags' - Undocumented member.+--+-- 'httpStatus', 'createAssetResponse_httpStatus' - The response's http status code.+newCreateAssetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateAssetResponse+newCreateAssetResponse pHttpStatus_ =+  CreateAssetResponse'+    { arn = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      egressEndpoints = Prelude.Nothing,+      id = Prelude.Nothing,+      packagingGroupId = Prelude.Nothing,+      resourceId = Prelude.Nothing,+      sourceArn = Prelude.Nothing,+      sourceRoleArn = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the Asset.+createAssetResponse_arn :: Lens.Lens' CreateAssetResponse (Prelude.Maybe Prelude.Text)+createAssetResponse_arn = Lens.lens (\CreateAssetResponse' {arn} -> arn) (\s@CreateAssetResponse' {} a -> s {arn = a} :: CreateAssetResponse)++-- | The time the Asset was initially submitted for Ingest.+createAssetResponse_createdAt :: Lens.Lens' CreateAssetResponse (Prelude.Maybe Prelude.Text)+createAssetResponse_createdAt = Lens.lens (\CreateAssetResponse' {createdAt} -> createdAt) (\s@CreateAssetResponse' {} a -> s {createdAt = a} :: CreateAssetResponse)++-- | The list of egress endpoints available for the Asset.+createAssetResponse_egressEndpoints :: Lens.Lens' CreateAssetResponse (Prelude.Maybe [EgressEndpoint])+createAssetResponse_egressEndpoints = Lens.lens (\CreateAssetResponse' {egressEndpoints} -> egressEndpoints) (\s@CreateAssetResponse' {} a -> s {egressEndpoints = a} :: CreateAssetResponse) Prelude.. Lens.mapping Lens.coerced++-- | The unique identifier for the Asset.+createAssetResponse_id :: Lens.Lens' CreateAssetResponse (Prelude.Maybe Prelude.Text)+createAssetResponse_id = Lens.lens (\CreateAssetResponse' {id} -> id) (\s@CreateAssetResponse' {} a -> s {id = a} :: CreateAssetResponse)++-- | The ID of the PackagingGroup for the Asset.+createAssetResponse_packagingGroupId :: Lens.Lens' CreateAssetResponse (Prelude.Maybe Prelude.Text)+createAssetResponse_packagingGroupId = Lens.lens (\CreateAssetResponse' {packagingGroupId} -> packagingGroupId) (\s@CreateAssetResponse' {} a -> s {packagingGroupId = a} :: CreateAssetResponse)++-- | The resource ID to include in SPEKE key requests.+createAssetResponse_resourceId :: Lens.Lens' CreateAssetResponse (Prelude.Maybe Prelude.Text)+createAssetResponse_resourceId = Lens.lens (\CreateAssetResponse' {resourceId} -> resourceId) (\s@CreateAssetResponse' {} a -> s {resourceId = a} :: CreateAssetResponse)++-- | ARN of the source object in S3.+createAssetResponse_sourceArn :: Lens.Lens' CreateAssetResponse (Prelude.Maybe Prelude.Text)+createAssetResponse_sourceArn = Lens.lens (\CreateAssetResponse' {sourceArn} -> sourceArn) (\s@CreateAssetResponse' {} a -> s {sourceArn = a} :: CreateAssetResponse)++-- | The IAM role_arn used to access the source S3 bucket.+createAssetResponse_sourceRoleArn :: Lens.Lens' CreateAssetResponse (Prelude.Maybe Prelude.Text)+createAssetResponse_sourceRoleArn = Lens.lens (\CreateAssetResponse' {sourceRoleArn} -> sourceRoleArn) (\s@CreateAssetResponse' {} a -> s {sourceRoleArn = a} :: CreateAssetResponse)++-- | Undocumented member.+createAssetResponse_tags :: Lens.Lens' CreateAssetResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createAssetResponse_tags = Lens.lens (\CreateAssetResponse' {tags} -> tags) (\s@CreateAssetResponse' {} a -> s {tags = a} :: CreateAssetResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+createAssetResponse_httpStatus :: Lens.Lens' CreateAssetResponse Prelude.Int+createAssetResponse_httpStatus = Lens.lens (\CreateAssetResponse' {httpStatus} -> httpStatus) (\s@CreateAssetResponse' {} a -> s {httpStatus = a} :: CreateAssetResponse)++instance Prelude.NFData CreateAssetResponse where+  rnf CreateAssetResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf egressEndpoints+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf packagingGroupId+      `Prelude.seq` Prelude.rnf resourceId+      `Prelude.seq` Prelude.rnf sourceArn+      `Prelude.seq` Prelude.rnf sourceRoleArn+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaPackageVOD/CreatePackagingConfiguration.hs view
@@ -0,0 +1,335 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.CreatePackagingConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new MediaPackage VOD PackagingConfiguration resource.+module Amazonka.MediaPackageVOD.CreatePackagingConfiguration+  ( -- * Creating a Request+    CreatePackagingConfiguration (..),+    newCreatePackagingConfiguration,++    -- * Request Lenses+    createPackagingConfiguration_cmafPackage,+    createPackagingConfiguration_dashPackage,+    createPackagingConfiguration_hlsPackage,+    createPackagingConfiguration_mssPackage,+    createPackagingConfiguration_tags,+    createPackagingConfiguration_id,+    createPackagingConfiguration_packagingGroupId,++    -- * Destructuring the Response+    CreatePackagingConfigurationResponse (..),+    newCreatePackagingConfigurationResponse,++    -- * Response Lenses+    createPackagingConfigurationResponse_arn,+    createPackagingConfigurationResponse_cmafPackage,+    createPackagingConfigurationResponse_dashPackage,+    createPackagingConfigurationResponse_hlsPackage,+    createPackagingConfigurationResponse_id,+    createPackagingConfigurationResponse_mssPackage,+    createPackagingConfigurationResponse_packagingGroupId,+    createPackagingConfigurationResponse_tags,+    createPackagingConfigurationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | A new MediaPackage VOD PackagingConfiguration resource configuration.+--+-- /See:/ 'newCreatePackagingConfiguration' smart constructor.+data CreatePackagingConfiguration = CreatePackagingConfiguration'+  { cmafPackage :: Prelude.Maybe CmafPackage,+    dashPackage :: Prelude.Maybe DashPackage,+    hlsPackage :: Prelude.Maybe HlsPackage,+    mssPackage :: Prelude.Maybe MssPackage,+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The ID of the PackagingConfiguration.+    id :: Prelude.Text,+    -- | The ID of a PackagingGroup.+    packagingGroupId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreatePackagingConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cmafPackage', 'createPackagingConfiguration_cmafPackage' - Undocumented member.+--+-- 'dashPackage', 'createPackagingConfiguration_dashPackage' - Undocumented member.+--+-- 'hlsPackage', 'createPackagingConfiguration_hlsPackage' - Undocumented member.+--+-- 'mssPackage', 'createPackagingConfiguration_mssPackage' - Undocumented member.+--+-- 'tags', 'createPackagingConfiguration_tags' - Undocumented member.+--+-- 'id', 'createPackagingConfiguration_id' - The ID of the PackagingConfiguration.+--+-- 'packagingGroupId', 'createPackagingConfiguration_packagingGroupId' - The ID of a PackagingGroup.+newCreatePackagingConfiguration ::+  -- | 'id'+  Prelude.Text ->+  -- | 'packagingGroupId'+  Prelude.Text ->+  CreatePackagingConfiguration+newCreatePackagingConfiguration+  pId_+  pPackagingGroupId_ =+    CreatePackagingConfiguration'+      { cmafPackage =+          Prelude.Nothing,+        dashPackage = Prelude.Nothing,+        hlsPackage = Prelude.Nothing,+        mssPackage = Prelude.Nothing,+        tags = Prelude.Nothing,+        id = pId_,+        packagingGroupId = pPackagingGroupId_+      }++-- | Undocumented member.+createPackagingConfiguration_cmafPackage :: Lens.Lens' CreatePackagingConfiguration (Prelude.Maybe CmafPackage)+createPackagingConfiguration_cmafPackage = Lens.lens (\CreatePackagingConfiguration' {cmafPackage} -> cmafPackage) (\s@CreatePackagingConfiguration' {} a -> s {cmafPackage = a} :: CreatePackagingConfiguration)++-- | Undocumented member.+createPackagingConfiguration_dashPackage :: Lens.Lens' CreatePackagingConfiguration (Prelude.Maybe DashPackage)+createPackagingConfiguration_dashPackage = Lens.lens (\CreatePackagingConfiguration' {dashPackage} -> dashPackage) (\s@CreatePackagingConfiguration' {} a -> s {dashPackage = a} :: CreatePackagingConfiguration)++-- | Undocumented member.+createPackagingConfiguration_hlsPackage :: Lens.Lens' CreatePackagingConfiguration (Prelude.Maybe HlsPackage)+createPackagingConfiguration_hlsPackage = Lens.lens (\CreatePackagingConfiguration' {hlsPackage} -> hlsPackage) (\s@CreatePackagingConfiguration' {} a -> s {hlsPackage = a} :: CreatePackagingConfiguration)++-- | Undocumented member.+createPackagingConfiguration_mssPackage :: Lens.Lens' CreatePackagingConfiguration (Prelude.Maybe MssPackage)+createPackagingConfiguration_mssPackage = Lens.lens (\CreatePackagingConfiguration' {mssPackage} -> mssPackage) (\s@CreatePackagingConfiguration' {} a -> s {mssPackage = a} :: CreatePackagingConfiguration)++-- | Undocumented member.+createPackagingConfiguration_tags :: Lens.Lens' CreatePackagingConfiguration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createPackagingConfiguration_tags = Lens.lens (\CreatePackagingConfiguration' {tags} -> tags) (\s@CreatePackagingConfiguration' {} a -> s {tags = a} :: CreatePackagingConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the PackagingConfiguration.+createPackagingConfiguration_id :: Lens.Lens' CreatePackagingConfiguration Prelude.Text+createPackagingConfiguration_id = Lens.lens (\CreatePackagingConfiguration' {id} -> id) (\s@CreatePackagingConfiguration' {} a -> s {id = a} :: CreatePackagingConfiguration)++-- | The ID of a PackagingGroup.+createPackagingConfiguration_packagingGroupId :: Lens.Lens' CreatePackagingConfiguration Prelude.Text+createPackagingConfiguration_packagingGroupId = Lens.lens (\CreatePackagingConfiguration' {packagingGroupId} -> packagingGroupId) (\s@CreatePackagingConfiguration' {} a -> s {packagingGroupId = a} :: CreatePackagingConfiguration)++instance Core.AWSRequest CreatePackagingConfiguration where+  type+    AWSResponse CreatePackagingConfiguration =+      CreatePackagingConfigurationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreatePackagingConfigurationResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "cmafPackage")+            Prelude.<*> (x Data..?> "dashPackage")+            Prelude.<*> (x Data..?> "hlsPackage")+            Prelude.<*> (x Data..?> "id")+            Prelude.<*> (x Data..?> "mssPackage")+            Prelude.<*> (x Data..?> "packagingGroupId")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    CreatePackagingConfiguration+  where+  hashWithSalt _salt CreatePackagingConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` cmafPackage+      `Prelude.hashWithSalt` dashPackage+      `Prelude.hashWithSalt` hlsPackage+      `Prelude.hashWithSalt` mssPackage+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` packagingGroupId++instance Prelude.NFData CreatePackagingConfiguration where+  rnf CreatePackagingConfiguration' {..} =+    Prelude.rnf cmafPackage+      `Prelude.seq` Prelude.rnf dashPackage+      `Prelude.seq` Prelude.rnf hlsPackage+      `Prelude.seq` Prelude.rnf mssPackage+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf packagingGroupId++instance Data.ToHeaders CreatePackagingConfiguration where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreatePackagingConfiguration where+  toJSON CreatePackagingConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("cmafPackage" Data..=) Prelude.<$> cmafPackage,+            ("dashPackage" Data..=) Prelude.<$> dashPackage,+            ("hlsPackage" Data..=) Prelude.<$> hlsPackage,+            ("mssPackage" Data..=) Prelude.<$> mssPackage,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("id" Data..= id),+            Prelude.Just+              ("packagingGroupId" Data..= packagingGroupId)+          ]+      )++instance Data.ToPath CreatePackagingConfiguration where+  toPath = Prelude.const "/packaging_configurations"++instance Data.ToQuery CreatePackagingConfiguration where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreatePackagingConfigurationResponse' smart constructor.+data CreatePackagingConfigurationResponse = CreatePackagingConfigurationResponse'+  { -- | The ARN of the PackagingConfiguration.+    arn :: Prelude.Maybe Prelude.Text,+    cmafPackage :: Prelude.Maybe CmafPackage,+    dashPackage :: Prelude.Maybe DashPackage,+    hlsPackage :: Prelude.Maybe HlsPackage,+    -- | The ID of the PackagingConfiguration.+    id :: Prelude.Maybe Prelude.Text,+    mssPackage :: Prelude.Maybe MssPackage,+    -- | The ID of a PackagingGroup.+    packagingGroupId :: Prelude.Maybe Prelude.Text,+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreatePackagingConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'createPackagingConfigurationResponse_arn' - The ARN of the PackagingConfiguration.+--+-- 'cmafPackage', 'createPackagingConfigurationResponse_cmafPackage' - Undocumented member.+--+-- 'dashPackage', 'createPackagingConfigurationResponse_dashPackage' - Undocumented member.+--+-- 'hlsPackage', 'createPackagingConfigurationResponse_hlsPackage' - Undocumented member.+--+-- 'id', 'createPackagingConfigurationResponse_id' - The ID of the PackagingConfiguration.+--+-- 'mssPackage', 'createPackagingConfigurationResponse_mssPackage' - Undocumented member.+--+-- 'packagingGroupId', 'createPackagingConfigurationResponse_packagingGroupId' - The ID of a PackagingGroup.+--+-- 'tags', 'createPackagingConfigurationResponse_tags' - Undocumented member.+--+-- 'httpStatus', 'createPackagingConfigurationResponse_httpStatus' - The response's http status code.+newCreatePackagingConfigurationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreatePackagingConfigurationResponse+newCreatePackagingConfigurationResponse pHttpStatus_ =+  CreatePackagingConfigurationResponse'+    { arn =+        Prelude.Nothing,+      cmafPackage = Prelude.Nothing,+      dashPackage = Prelude.Nothing,+      hlsPackage = Prelude.Nothing,+      id = Prelude.Nothing,+      mssPackage = Prelude.Nothing,+      packagingGroupId = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the PackagingConfiguration.+createPackagingConfigurationResponse_arn :: Lens.Lens' CreatePackagingConfigurationResponse (Prelude.Maybe Prelude.Text)+createPackagingConfigurationResponse_arn = Lens.lens (\CreatePackagingConfigurationResponse' {arn} -> arn) (\s@CreatePackagingConfigurationResponse' {} a -> s {arn = a} :: CreatePackagingConfigurationResponse)++-- | Undocumented member.+createPackagingConfigurationResponse_cmafPackage :: Lens.Lens' CreatePackagingConfigurationResponse (Prelude.Maybe CmafPackage)+createPackagingConfigurationResponse_cmafPackage = Lens.lens (\CreatePackagingConfigurationResponse' {cmafPackage} -> cmafPackage) (\s@CreatePackagingConfigurationResponse' {} a -> s {cmafPackage = a} :: CreatePackagingConfigurationResponse)++-- | Undocumented member.+createPackagingConfigurationResponse_dashPackage :: Lens.Lens' CreatePackagingConfigurationResponse (Prelude.Maybe DashPackage)+createPackagingConfigurationResponse_dashPackage = Lens.lens (\CreatePackagingConfigurationResponse' {dashPackage} -> dashPackage) (\s@CreatePackagingConfigurationResponse' {} a -> s {dashPackage = a} :: CreatePackagingConfigurationResponse)++-- | Undocumented member.+createPackagingConfigurationResponse_hlsPackage :: Lens.Lens' CreatePackagingConfigurationResponse (Prelude.Maybe HlsPackage)+createPackagingConfigurationResponse_hlsPackage = Lens.lens (\CreatePackagingConfigurationResponse' {hlsPackage} -> hlsPackage) (\s@CreatePackagingConfigurationResponse' {} a -> s {hlsPackage = a} :: CreatePackagingConfigurationResponse)++-- | The ID of the PackagingConfiguration.+createPackagingConfigurationResponse_id :: Lens.Lens' CreatePackagingConfigurationResponse (Prelude.Maybe Prelude.Text)+createPackagingConfigurationResponse_id = Lens.lens (\CreatePackagingConfigurationResponse' {id} -> id) (\s@CreatePackagingConfigurationResponse' {} a -> s {id = a} :: CreatePackagingConfigurationResponse)++-- | Undocumented member.+createPackagingConfigurationResponse_mssPackage :: Lens.Lens' CreatePackagingConfigurationResponse (Prelude.Maybe MssPackage)+createPackagingConfigurationResponse_mssPackage = Lens.lens (\CreatePackagingConfigurationResponse' {mssPackage} -> mssPackage) (\s@CreatePackagingConfigurationResponse' {} a -> s {mssPackage = a} :: CreatePackagingConfigurationResponse)++-- | The ID of a PackagingGroup.+createPackagingConfigurationResponse_packagingGroupId :: Lens.Lens' CreatePackagingConfigurationResponse (Prelude.Maybe Prelude.Text)+createPackagingConfigurationResponse_packagingGroupId = Lens.lens (\CreatePackagingConfigurationResponse' {packagingGroupId} -> packagingGroupId) (\s@CreatePackagingConfigurationResponse' {} a -> s {packagingGroupId = a} :: CreatePackagingConfigurationResponse)++-- | Undocumented member.+createPackagingConfigurationResponse_tags :: Lens.Lens' CreatePackagingConfigurationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createPackagingConfigurationResponse_tags = Lens.lens (\CreatePackagingConfigurationResponse' {tags} -> tags) (\s@CreatePackagingConfigurationResponse' {} a -> s {tags = a} :: CreatePackagingConfigurationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+createPackagingConfigurationResponse_httpStatus :: Lens.Lens' CreatePackagingConfigurationResponse Prelude.Int+createPackagingConfigurationResponse_httpStatus = Lens.lens (\CreatePackagingConfigurationResponse' {httpStatus} -> httpStatus) (\s@CreatePackagingConfigurationResponse' {} a -> s {httpStatus = a} :: CreatePackagingConfigurationResponse)++instance+  Prelude.NFData+    CreatePackagingConfigurationResponse+  where+  rnf CreatePackagingConfigurationResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf cmafPackage+      `Prelude.seq` Prelude.rnf dashPackage+      `Prelude.seq` Prelude.rnf hlsPackage+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf mssPackage+      `Prelude.seq` Prelude.rnf packagingGroupId+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaPackageVOD/CreatePackagingGroup.hs view
@@ -0,0 +1,266 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.CreatePackagingGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new MediaPackage VOD PackagingGroup resource.+module Amazonka.MediaPackageVOD.CreatePackagingGroup+  ( -- * Creating a Request+    CreatePackagingGroup (..),+    newCreatePackagingGroup,++    -- * Request Lenses+    createPackagingGroup_authorization,+    createPackagingGroup_egressAccessLogs,+    createPackagingGroup_tags,+    createPackagingGroup_id,++    -- * Destructuring the Response+    CreatePackagingGroupResponse (..),+    newCreatePackagingGroupResponse,++    -- * Response Lenses+    createPackagingGroupResponse_arn,+    createPackagingGroupResponse_authorization,+    createPackagingGroupResponse_domainName,+    createPackagingGroupResponse_egressAccessLogs,+    createPackagingGroupResponse_id,+    createPackagingGroupResponse_tags,+    createPackagingGroupResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | A new MediaPackage VOD PackagingGroup resource configuration.+--+-- /See:/ 'newCreatePackagingGroup' smart constructor.+data CreatePackagingGroup = CreatePackagingGroup'+  { authorization :: Prelude.Maybe Authorization,+    egressAccessLogs :: Prelude.Maybe EgressAccessLogs,+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The ID of the PackagingGroup.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreatePackagingGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'authorization', 'createPackagingGroup_authorization' - Undocumented member.+--+-- 'egressAccessLogs', 'createPackagingGroup_egressAccessLogs' - Undocumented member.+--+-- 'tags', 'createPackagingGroup_tags' - Undocumented member.+--+-- 'id', 'createPackagingGroup_id' - The ID of the PackagingGroup.+newCreatePackagingGroup ::+  -- | 'id'+  Prelude.Text ->+  CreatePackagingGroup+newCreatePackagingGroup pId_ =+  CreatePackagingGroup'+    { authorization =+        Prelude.Nothing,+      egressAccessLogs = Prelude.Nothing,+      tags = Prelude.Nothing,+      id = pId_+    }++-- | Undocumented member.+createPackagingGroup_authorization :: Lens.Lens' CreatePackagingGroup (Prelude.Maybe Authorization)+createPackagingGroup_authorization = Lens.lens (\CreatePackagingGroup' {authorization} -> authorization) (\s@CreatePackagingGroup' {} a -> s {authorization = a} :: CreatePackagingGroup)++-- | Undocumented member.+createPackagingGroup_egressAccessLogs :: Lens.Lens' CreatePackagingGroup (Prelude.Maybe EgressAccessLogs)+createPackagingGroup_egressAccessLogs = Lens.lens (\CreatePackagingGroup' {egressAccessLogs} -> egressAccessLogs) (\s@CreatePackagingGroup' {} a -> s {egressAccessLogs = a} :: CreatePackagingGroup)++-- | Undocumented member.+createPackagingGroup_tags :: Lens.Lens' CreatePackagingGroup (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createPackagingGroup_tags = Lens.lens (\CreatePackagingGroup' {tags} -> tags) (\s@CreatePackagingGroup' {} a -> s {tags = a} :: CreatePackagingGroup) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the PackagingGroup.+createPackagingGroup_id :: Lens.Lens' CreatePackagingGroup Prelude.Text+createPackagingGroup_id = Lens.lens (\CreatePackagingGroup' {id} -> id) (\s@CreatePackagingGroup' {} a -> s {id = a} :: CreatePackagingGroup)++instance Core.AWSRequest CreatePackagingGroup where+  type+    AWSResponse CreatePackagingGroup =+      CreatePackagingGroupResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreatePackagingGroupResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "authorization")+            Prelude.<*> (x Data..?> "domainName")+            Prelude.<*> (x Data..?> "egressAccessLogs")+            Prelude.<*> (x Data..?> "id")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreatePackagingGroup where+  hashWithSalt _salt CreatePackagingGroup' {..} =+    _salt+      `Prelude.hashWithSalt` authorization+      `Prelude.hashWithSalt` egressAccessLogs+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` id++instance Prelude.NFData CreatePackagingGroup where+  rnf CreatePackagingGroup' {..} =+    Prelude.rnf authorization+      `Prelude.seq` Prelude.rnf egressAccessLogs+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf id++instance Data.ToHeaders CreatePackagingGroup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreatePackagingGroup where+  toJSON CreatePackagingGroup' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("authorization" Data..=) Prelude.<$> authorization,+            ("egressAccessLogs" Data..=)+              Prelude.<$> egressAccessLogs,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("id" Data..= id)+          ]+      )++instance Data.ToPath CreatePackagingGroup where+  toPath = Prelude.const "/packaging_groups"++instance Data.ToQuery CreatePackagingGroup where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreatePackagingGroupResponse' smart constructor.+data CreatePackagingGroupResponse = CreatePackagingGroupResponse'+  { -- | The ARN of the PackagingGroup.+    arn :: Prelude.Maybe Prelude.Text,+    authorization :: Prelude.Maybe Authorization,+    -- | The fully qualified domain name for Assets in the PackagingGroup.+    domainName :: Prelude.Maybe Prelude.Text,+    egressAccessLogs :: Prelude.Maybe EgressAccessLogs,+    -- | The ID of the PackagingGroup.+    id :: Prelude.Maybe Prelude.Text,+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreatePackagingGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'createPackagingGroupResponse_arn' - The ARN of the PackagingGroup.+--+-- 'authorization', 'createPackagingGroupResponse_authorization' - Undocumented member.+--+-- 'domainName', 'createPackagingGroupResponse_domainName' - The fully qualified domain name for Assets in the PackagingGroup.+--+-- 'egressAccessLogs', 'createPackagingGroupResponse_egressAccessLogs' - Undocumented member.+--+-- 'id', 'createPackagingGroupResponse_id' - The ID of the PackagingGroup.+--+-- 'tags', 'createPackagingGroupResponse_tags' - Undocumented member.+--+-- 'httpStatus', 'createPackagingGroupResponse_httpStatus' - The response's http status code.+newCreatePackagingGroupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreatePackagingGroupResponse+newCreatePackagingGroupResponse pHttpStatus_ =+  CreatePackagingGroupResponse'+    { arn =+        Prelude.Nothing,+      authorization = Prelude.Nothing,+      domainName = Prelude.Nothing,+      egressAccessLogs = Prelude.Nothing,+      id = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the PackagingGroup.+createPackagingGroupResponse_arn :: Lens.Lens' CreatePackagingGroupResponse (Prelude.Maybe Prelude.Text)+createPackagingGroupResponse_arn = Lens.lens (\CreatePackagingGroupResponse' {arn} -> arn) (\s@CreatePackagingGroupResponse' {} a -> s {arn = a} :: CreatePackagingGroupResponse)++-- | Undocumented member.+createPackagingGroupResponse_authorization :: Lens.Lens' CreatePackagingGroupResponse (Prelude.Maybe Authorization)+createPackagingGroupResponse_authorization = Lens.lens (\CreatePackagingGroupResponse' {authorization} -> authorization) (\s@CreatePackagingGroupResponse' {} a -> s {authorization = a} :: CreatePackagingGroupResponse)++-- | The fully qualified domain name for Assets in the PackagingGroup.+createPackagingGroupResponse_domainName :: Lens.Lens' CreatePackagingGroupResponse (Prelude.Maybe Prelude.Text)+createPackagingGroupResponse_domainName = Lens.lens (\CreatePackagingGroupResponse' {domainName} -> domainName) (\s@CreatePackagingGroupResponse' {} a -> s {domainName = a} :: CreatePackagingGroupResponse)++-- | Undocumented member.+createPackagingGroupResponse_egressAccessLogs :: Lens.Lens' CreatePackagingGroupResponse (Prelude.Maybe EgressAccessLogs)+createPackagingGroupResponse_egressAccessLogs = Lens.lens (\CreatePackagingGroupResponse' {egressAccessLogs} -> egressAccessLogs) (\s@CreatePackagingGroupResponse' {} a -> s {egressAccessLogs = a} :: CreatePackagingGroupResponse)++-- | The ID of the PackagingGroup.+createPackagingGroupResponse_id :: Lens.Lens' CreatePackagingGroupResponse (Prelude.Maybe Prelude.Text)+createPackagingGroupResponse_id = Lens.lens (\CreatePackagingGroupResponse' {id} -> id) (\s@CreatePackagingGroupResponse' {} a -> s {id = a} :: CreatePackagingGroupResponse)++-- | Undocumented member.+createPackagingGroupResponse_tags :: Lens.Lens' CreatePackagingGroupResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createPackagingGroupResponse_tags = Lens.lens (\CreatePackagingGroupResponse' {tags} -> tags) (\s@CreatePackagingGroupResponse' {} a -> s {tags = a} :: CreatePackagingGroupResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+createPackagingGroupResponse_httpStatus :: Lens.Lens' CreatePackagingGroupResponse Prelude.Int+createPackagingGroupResponse_httpStatus = Lens.lens (\CreatePackagingGroupResponse' {httpStatus} -> httpStatus) (\s@CreatePackagingGroupResponse' {} a -> s {httpStatus = a} :: CreatePackagingGroupResponse)++instance Prelude.NFData CreatePackagingGroupResponse where+  rnf CreatePackagingGroupResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf authorization+      `Prelude.seq` Prelude.rnf domainName+      `Prelude.seq` Prelude.rnf egressAccessLogs+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaPackageVOD/DeleteAsset.hs view
@@ -0,0 +1,139 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.DeleteAsset+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an existing MediaPackage VOD Asset resource.+module Amazonka.MediaPackageVOD.DeleteAsset+  ( -- * Creating a Request+    DeleteAsset (..),+    newDeleteAsset,++    -- * Request Lenses+    deleteAsset_id,++    -- * Destructuring the Response+    DeleteAssetResponse (..),+    newDeleteAssetResponse,++    -- * Response Lenses+    deleteAssetResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteAsset' smart constructor.+data DeleteAsset = DeleteAsset'+  { -- | The ID of the MediaPackage VOD Asset resource to delete.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAsset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'deleteAsset_id' - The ID of the MediaPackage VOD Asset resource to delete.+newDeleteAsset ::+  -- | 'id'+  Prelude.Text ->+  DeleteAsset+newDeleteAsset pId_ = DeleteAsset' {id = pId_}++-- | The ID of the MediaPackage VOD Asset resource to delete.+deleteAsset_id :: Lens.Lens' DeleteAsset Prelude.Text+deleteAsset_id = Lens.lens (\DeleteAsset' {id} -> id) (\s@DeleteAsset' {} a -> s {id = a} :: DeleteAsset)++instance Core.AWSRequest DeleteAsset where+  type AWSResponse DeleteAsset = DeleteAssetResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteAssetResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteAsset where+  hashWithSalt _salt DeleteAsset' {..} =+    _salt `Prelude.hashWithSalt` id++instance Prelude.NFData DeleteAsset where+  rnf DeleteAsset' {..} = Prelude.rnf id++instance Data.ToHeaders DeleteAsset where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteAsset where+  toPath DeleteAsset' {..} =+    Prelude.mconcat ["/assets/", Data.toBS id]++instance Data.ToQuery DeleteAsset where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteAssetResponse' smart constructor.+data DeleteAssetResponse = DeleteAssetResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAssetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'deleteAssetResponse_httpStatus' - The response's http status code.+newDeleteAssetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteAssetResponse+newDeleteAssetResponse pHttpStatus_ =+  DeleteAssetResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteAssetResponse_httpStatus :: Lens.Lens' DeleteAssetResponse Prelude.Int+deleteAssetResponse_httpStatus = Lens.lens (\DeleteAssetResponse' {httpStatus} -> httpStatus) (\s@DeleteAssetResponse' {} a -> s {httpStatus = a} :: DeleteAssetResponse)++instance Prelude.NFData DeleteAssetResponse where+  rnf DeleteAssetResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/MediaPackageVOD/DeletePackagingConfiguration.hs view
@@ -0,0 +1,157 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.DeletePackagingConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a MediaPackage VOD PackagingConfiguration resource.+module Amazonka.MediaPackageVOD.DeletePackagingConfiguration+  ( -- * Creating a Request+    DeletePackagingConfiguration (..),+    newDeletePackagingConfiguration,++    -- * Request Lenses+    deletePackagingConfiguration_id,++    -- * Destructuring the Response+    DeletePackagingConfigurationResponse (..),+    newDeletePackagingConfigurationResponse,++    -- * Response Lenses+    deletePackagingConfigurationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeletePackagingConfiguration' smart constructor.+data DeletePackagingConfiguration = DeletePackagingConfiguration'+  { -- | The ID of the MediaPackage VOD PackagingConfiguration resource to+    -- delete.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeletePackagingConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'deletePackagingConfiguration_id' - The ID of the MediaPackage VOD PackagingConfiguration resource to+-- delete.+newDeletePackagingConfiguration ::+  -- | 'id'+  Prelude.Text ->+  DeletePackagingConfiguration+newDeletePackagingConfiguration pId_ =+  DeletePackagingConfiguration' {id = pId_}++-- | The ID of the MediaPackage VOD PackagingConfiguration resource to+-- delete.+deletePackagingConfiguration_id :: Lens.Lens' DeletePackagingConfiguration Prelude.Text+deletePackagingConfiguration_id = Lens.lens (\DeletePackagingConfiguration' {id} -> id) (\s@DeletePackagingConfiguration' {} a -> s {id = a} :: DeletePackagingConfiguration)++instance Core.AWSRequest DeletePackagingConfiguration where+  type+    AWSResponse DeletePackagingConfiguration =+      DeletePackagingConfigurationResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeletePackagingConfigurationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DeletePackagingConfiguration+  where+  hashWithSalt _salt DeletePackagingConfiguration' {..} =+    _salt `Prelude.hashWithSalt` id++instance Prelude.NFData DeletePackagingConfiguration where+  rnf DeletePackagingConfiguration' {..} =+    Prelude.rnf id++instance Data.ToHeaders DeletePackagingConfiguration where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeletePackagingConfiguration where+  toPath DeletePackagingConfiguration' {..} =+    Prelude.mconcat+      ["/packaging_configurations/", Data.toBS id]++instance Data.ToQuery DeletePackagingConfiguration where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeletePackagingConfigurationResponse' smart constructor.+data DeletePackagingConfigurationResponse = DeletePackagingConfigurationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeletePackagingConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'deletePackagingConfigurationResponse_httpStatus' - The response's http status code.+newDeletePackagingConfigurationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeletePackagingConfigurationResponse+newDeletePackagingConfigurationResponse pHttpStatus_ =+  DeletePackagingConfigurationResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deletePackagingConfigurationResponse_httpStatus :: Lens.Lens' DeletePackagingConfigurationResponse Prelude.Int+deletePackagingConfigurationResponse_httpStatus = Lens.lens (\DeletePackagingConfigurationResponse' {httpStatus} -> httpStatus) (\s@DeletePackagingConfigurationResponse' {} a -> s {httpStatus = a} :: DeletePackagingConfigurationResponse)++instance+  Prelude.NFData+    DeletePackagingConfigurationResponse+  where+  rnf DeletePackagingConfigurationResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MediaPackageVOD/DeletePackagingGroup.hs view
@@ -0,0 +1,147 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.DeletePackagingGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a MediaPackage VOD PackagingGroup resource.+module Amazonka.MediaPackageVOD.DeletePackagingGroup+  ( -- * Creating a Request+    DeletePackagingGroup (..),+    newDeletePackagingGroup,++    -- * Request Lenses+    deletePackagingGroup_id,++    -- * Destructuring the Response+    DeletePackagingGroupResponse (..),+    newDeletePackagingGroupResponse,++    -- * Response Lenses+    deletePackagingGroupResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeletePackagingGroup' smart constructor.+data DeletePackagingGroup = DeletePackagingGroup'+  { -- | The ID of the MediaPackage VOD PackagingGroup resource to delete.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeletePackagingGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'deletePackagingGroup_id' - The ID of the MediaPackage VOD PackagingGroup resource to delete.+newDeletePackagingGroup ::+  -- | 'id'+  Prelude.Text ->+  DeletePackagingGroup+newDeletePackagingGroup pId_ =+  DeletePackagingGroup' {id = pId_}++-- | The ID of the MediaPackage VOD PackagingGroup resource to delete.+deletePackagingGroup_id :: Lens.Lens' DeletePackagingGroup Prelude.Text+deletePackagingGroup_id = Lens.lens (\DeletePackagingGroup' {id} -> id) (\s@DeletePackagingGroup' {} a -> s {id = a} :: DeletePackagingGroup)++instance Core.AWSRequest DeletePackagingGroup where+  type+    AWSResponse DeletePackagingGroup =+      DeletePackagingGroupResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeletePackagingGroupResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeletePackagingGroup where+  hashWithSalt _salt DeletePackagingGroup' {..} =+    _salt `Prelude.hashWithSalt` id++instance Prelude.NFData DeletePackagingGroup where+  rnf DeletePackagingGroup' {..} = Prelude.rnf id++instance Data.ToHeaders DeletePackagingGroup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeletePackagingGroup where+  toPath DeletePackagingGroup' {..} =+    Prelude.mconcat+      ["/packaging_groups/", Data.toBS id]++instance Data.ToQuery DeletePackagingGroup where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeletePackagingGroupResponse' smart constructor.+data DeletePackagingGroupResponse = DeletePackagingGroupResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeletePackagingGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'deletePackagingGroupResponse_httpStatus' - The response's http status code.+newDeletePackagingGroupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeletePackagingGroupResponse+newDeletePackagingGroupResponse pHttpStatus_ =+  DeletePackagingGroupResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deletePackagingGroupResponse_httpStatus :: Lens.Lens' DeletePackagingGroupResponse Prelude.Int+deletePackagingGroupResponse_httpStatus = Lens.lens (\DeletePackagingGroupResponse' {httpStatus} -> httpStatus) (\s@DeletePackagingGroupResponse' {} a -> s {httpStatus = a} :: DeletePackagingGroupResponse)++instance Prelude.NFData DeletePackagingGroupResponse where+  rnf DeletePackagingGroupResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MediaPackageVOD/DescribeAsset.hs view
@@ -0,0 +1,254 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.DescribeAsset+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a description of a MediaPackage VOD Asset resource.+module Amazonka.MediaPackageVOD.DescribeAsset+  ( -- * Creating a Request+    DescribeAsset (..),+    newDescribeAsset,++    -- * Request Lenses+    describeAsset_id,++    -- * Destructuring the Response+    DescribeAssetResponse (..),+    newDescribeAssetResponse,++    -- * Response Lenses+    describeAssetResponse_arn,+    describeAssetResponse_createdAt,+    describeAssetResponse_egressEndpoints,+    describeAssetResponse_id,+    describeAssetResponse_packagingGroupId,+    describeAssetResponse_resourceId,+    describeAssetResponse_sourceArn,+    describeAssetResponse_sourceRoleArn,+    describeAssetResponse_tags,+    describeAssetResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeAsset' smart constructor.+data DescribeAsset = DescribeAsset'+  { -- | The ID of an MediaPackage VOD Asset resource.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAsset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'describeAsset_id' - The ID of an MediaPackage VOD Asset resource.+newDescribeAsset ::+  -- | 'id'+  Prelude.Text ->+  DescribeAsset+newDescribeAsset pId_ = DescribeAsset' {id = pId_}++-- | The ID of an MediaPackage VOD Asset resource.+describeAsset_id :: Lens.Lens' DescribeAsset Prelude.Text+describeAsset_id = Lens.lens (\DescribeAsset' {id} -> id) (\s@DescribeAsset' {} a -> s {id = a} :: DescribeAsset)++instance Core.AWSRequest DescribeAsset where+  type+    AWSResponse DescribeAsset =+      DescribeAssetResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeAssetResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "createdAt")+            Prelude.<*> ( x+                            Data..?> "egressEndpoints"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "id")+            Prelude.<*> (x Data..?> "packagingGroupId")+            Prelude.<*> (x Data..?> "resourceId")+            Prelude.<*> (x Data..?> "sourceArn")+            Prelude.<*> (x Data..?> "sourceRoleArn")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeAsset where+  hashWithSalt _salt DescribeAsset' {..} =+    _salt `Prelude.hashWithSalt` id++instance Prelude.NFData DescribeAsset where+  rnf DescribeAsset' {..} = Prelude.rnf id++instance Data.ToHeaders DescribeAsset where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeAsset where+  toPath DescribeAsset' {..} =+    Prelude.mconcat ["/assets/", Data.toBS id]++instance Data.ToQuery DescribeAsset where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeAssetResponse' smart constructor.+data DescribeAssetResponse = DescribeAssetResponse'+  { -- | The ARN of the Asset.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The time the Asset was initially submitted for Ingest.+    createdAt :: Prelude.Maybe Prelude.Text,+    -- | The list of egress endpoints available for the Asset.+    egressEndpoints :: Prelude.Maybe [EgressEndpoint],+    -- | The unique identifier for the Asset.+    id :: Prelude.Maybe Prelude.Text,+    -- | The ID of the PackagingGroup for the Asset.+    packagingGroupId :: Prelude.Maybe Prelude.Text,+    -- | The resource ID to include in SPEKE key requests.+    resourceId :: Prelude.Maybe Prelude.Text,+    -- | ARN of the source object in S3.+    sourceArn :: Prelude.Maybe Prelude.Text,+    -- | The IAM role_arn used to access the source S3 bucket.+    sourceRoleArn :: Prelude.Maybe Prelude.Text,+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAssetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'describeAssetResponse_arn' - The ARN of the Asset.+--+-- 'createdAt', 'describeAssetResponse_createdAt' - The time the Asset was initially submitted for Ingest.+--+-- 'egressEndpoints', 'describeAssetResponse_egressEndpoints' - The list of egress endpoints available for the Asset.+--+-- 'id', 'describeAssetResponse_id' - The unique identifier for the Asset.+--+-- 'packagingGroupId', 'describeAssetResponse_packagingGroupId' - The ID of the PackagingGroup for the Asset.+--+-- 'resourceId', 'describeAssetResponse_resourceId' - The resource ID to include in SPEKE key requests.+--+-- 'sourceArn', 'describeAssetResponse_sourceArn' - ARN of the source object in S3.+--+-- 'sourceRoleArn', 'describeAssetResponse_sourceRoleArn' - The IAM role_arn used to access the source S3 bucket.+--+-- 'tags', 'describeAssetResponse_tags' - Undocumented member.+--+-- 'httpStatus', 'describeAssetResponse_httpStatus' - The response's http status code.+newDescribeAssetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeAssetResponse+newDescribeAssetResponse pHttpStatus_ =+  DescribeAssetResponse'+    { arn = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      egressEndpoints = Prelude.Nothing,+      id = Prelude.Nothing,+      packagingGroupId = Prelude.Nothing,+      resourceId = Prelude.Nothing,+      sourceArn = Prelude.Nothing,+      sourceRoleArn = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the Asset.+describeAssetResponse_arn :: Lens.Lens' DescribeAssetResponse (Prelude.Maybe Prelude.Text)+describeAssetResponse_arn = Lens.lens (\DescribeAssetResponse' {arn} -> arn) (\s@DescribeAssetResponse' {} a -> s {arn = a} :: DescribeAssetResponse)++-- | The time the Asset was initially submitted for Ingest.+describeAssetResponse_createdAt :: Lens.Lens' DescribeAssetResponse (Prelude.Maybe Prelude.Text)+describeAssetResponse_createdAt = Lens.lens (\DescribeAssetResponse' {createdAt} -> createdAt) (\s@DescribeAssetResponse' {} a -> s {createdAt = a} :: DescribeAssetResponse)++-- | The list of egress endpoints available for the Asset.+describeAssetResponse_egressEndpoints :: Lens.Lens' DescribeAssetResponse (Prelude.Maybe [EgressEndpoint])+describeAssetResponse_egressEndpoints = Lens.lens (\DescribeAssetResponse' {egressEndpoints} -> egressEndpoints) (\s@DescribeAssetResponse' {} a -> s {egressEndpoints = a} :: DescribeAssetResponse) Prelude.. Lens.mapping Lens.coerced++-- | The unique identifier for the Asset.+describeAssetResponse_id :: Lens.Lens' DescribeAssetResponse (Prelude.Maybe Prelude.Text)+describeAssetResponse_id = Lens.lens (\DescribeAssetResponse' {id} -> id) (\s@DescribeAssetResponse' {} a -> s {id = a} :: DescribeAssetResponse)++-- | The ID of the PackagingGroup for the Asset.+describeAssetResponse_packagingGroupId :: Lens.Lens' DescribeAssetResponse (Prelude.Maybe Prelude.Text)+describeAssetResponse_packagingGroupId = Lens.lens (\DescribeAssetResponse' {packagingGroupId} -> packagingGroupId) (\s@DescribeAssetResponse' {} a -> s {packagingGroupId = a} :: DescribeAssetResponse)++-- | The resource ID to include in SPEKE key requests.+describeAssetResponse_resourceId :: Lens.Lens' DescribeAssetResponse (Prelude.Maybe Prelude.Text)+describeAssetResponse_resourceId = Lens.lens (\DescribeAssetResponse' {resourceId} -> resourceId) (\s@DescribeAssetResponse' {} a -> s {resourceId = a} :: DescribeAssetResponse)++-- | ARN of the source object in S3.+describeAssetResponse_sourceArn :: Lens.Lens' DescribeAssetResponse (Prelude.Maybe Prelude.Text)+describeAssetResponse_sourceArn = Lens.lens (\DescribeAssetResponse' {sourceArn} -> sourceArn) (\s@DescribeAssetResponse' {} a -> s {sourceArn = a} :: DescribeAssetResponse)++-- | The IAM role_arn used to access the source S3 bucket.+describeAssetResponse_sourceRoleArn :: Lens.Lens' DescribeAssetResponse (Prelude.Maybe Prelude.Text)+describeAssetResponse_sourceRoleArn = Lens.lens (\DescribeAssetResponse' {sourceRoleArn} -> sourceRoleArn) (\s@DescribeAssetResponse' {} a -> s {sourceRoleArn = a} :: DescribeAssetResponse)++-- | Undocumented member.+describeAssetResponse_tags :: Lens.Lens' DescribeAssetResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+describeAssetResponse_tags = Lens.lens (\DescribeAssetResponse' {tags} -> tags) (\s@DescribeAssetResponse' {} a -> s {tags = a} :: DescribeAssetResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeAssetResponse_httpStatus :: Lens.Lens' DescribeAssetResponse Prelude.Int+describeAssetResponse_httpStatus = Lens.lens (\DescribeAssetResponse' {httpStatus} -> httpStatus) (\s@DescribeAssetResponse' {} a -> s {httpStatus = a} :: DescribeAssetResponse)++instance Prelude.NFData DescribeAssetResponse where+  rnf DescribeAssetResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf egressEndpoints+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf packagingGroupId+      `Prelude.seq` Prelude.rnf resourceId+      `Prelude.seq` Prelude.rnf sourceArn+      `Prelude.seq` Prelude.rnf sourceRoleArn+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaPackageVOD/DescribePackagingConfiguration.hs view
@@ -0,0 +1,258 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.DescribePackagingConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a description of a MediaPackage VOD PackagingConfiguration+-- resource.+module Amazonka.MediaPackageVOD.DescribePackagingConfiguration+  ( -- * Creating a Request+    DescribePackagingConfiguration (..),+    newDescribePackagingConfiguration,++    -- * Request Lenses+    describePackagingConfiguration_id,++    -- * Destructuring the Response+    DescribePackagingConfigurationResponse (..),+    newDescribePackagingConfigurationResponse,++    -- * Response Lenses+    describePackagingConfigurationResponse_arn,+    describePackagingConfigurationResponse_cmafPackage,+    describePackagingConfigurationResponse_dashPackage,+    describePackagingConfigurationResponse_hlsPackage,+    describePackagingConfigurationResponse_id,+    describePackagingConfigurationResponse_mssPackage,+    describePackagingConfigurationResponse_packagingGroupId,+    describePackagingConfigurationResponse_tags,+    describePackagingConfigurationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribePackagingConfiguration' smart constructor.+data DescribePackagingConfiguration = DescribePackagingConfiguration'+  { -- | The ID of a MediaPackage VOD PackagingConfiguration resource.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribePackagingConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'describePackagingConfiguration_id' - The ID of a MediaPackage VOD PackagingConfiguration resource.+newDescribePackagingConfiguration ::+  -- | 'id'+  Prelude.Text ->+  DescribePackagingConfiguration+newDescribePackagingConfiguration pId_ =+  DescribePackagingConfiguration' {id = pId_}++-- | The ID of a MediaPackage VOD PackagingConfiguration resource.+describePackagingConfiguration_id :: Lens.Lens' DescribePackagingConfiguration Prelude.Text+describePackagingConfiguration_id = Lens.lens (\DescribePackagingConfiguration' {id} -> id) (\s@DescribePackagingConfiguration' {} a -> s {id = a} :: DescribePackagingConfiguration)++instance+  Core.AWSRequest+    DescribePackagingConfiguration+  where+  type+    AWSResponse DescribePackagingConfiguration =+      DescribePackagingConfigurationResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribePackagingConfigurationResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "cmafPackage")+            Prelude.<*> (x Data..?> "dashPackage")+            Prelude.<*> (x Data..?> "hlsPackage")+            Prelude.<*> (x Data..?> "id")+            Prelude.<*> (x Data..?> "mssPackage")+            Prelude.<*> (x Data..?> "packagingGroupId")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DescribePackagingConfiguration+  where+  hashWithSalt+    _salt+    DescribePackagingConfiguration' {..} =+      _salt `Prelude.hashWithSalt` id++instance+  Prelude.NFData+    DescribePackagingConfiguration+  where+  rnf DescribePackagingConfiguration' {..} =+    Prelude.rnf id++instance+  Data.ToHeaders+    DescribePackagingConfiguration+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribePackagingConfiguration where+  toPath DescribePackagingConfiguration' {..} =+    Prelude.mconcat+      ["/packaging_configurations/", Data.toBS id]++instance Data.ToQuery DescribePackagingConfiguration where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribePackagingConfigurationResponse' smart constructor.+data DescribePackagingConfigurationResponse = DescribePackagingConfigurationResponse'+  { -- | The ARN of the PackagingConfiguration.+    arn :: Prelude.Maybe Prelude.Text,+    cmafPackage :: Prelude.Maybe CmafPackage,+    dashPackage :: Prelude.Maybe DashPackage,+    hlsPackage :: Prelude.Maybe HlsPackage,+    -- | The ID of the PackagingConfiguration.+    id :: Prelude.Maybe Prelude.Text,+    mssPackage :: Prelude.Maybe MssPackage,+    -- | The ID of a PackagingGroup.+    packagingGroupId :: Prelude.Maybe Prelude.Text,+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribePackagingConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'describePackagingConfigurationResponse_arn' - The ARN of the PackagingConfiguration.+--+-- 'cmafPackage', 'describePackagingConfigurationResponse_cmafPackage' - Undocumented member.+--+-- 'dashPackage', 'describePackagingConfigurationResponse_dashPackage' - Undocumented member.+--+-- 'hlsPackage', 'describePackagingConfigurationResponse_hlsPackage' - Undocumented member.+--+-- 'id', 'describePackagingConfigurationResponse_id' - The ID of the PackagingConfiguration.+--+-- 'mssPackage', 'describePackagingConfigurationResponse_mssPackage' - Undocumented member.+--+-- 'packagingGroupId', 'describePackagingConfigurationResponse_packagingGroupId' - The ID of a PackagingGroup.+--+-- 'tags', 'describePackagingConfigurationResponse_tags' - Undocumented member.+--+-- 'httpStatus', 'describePackagingConfigurationResponse_httpStatus' - The response's http status code.+newDescribePackagingConfigurationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribePackagingConfigurationResponse+newDescribePackagingConfigurationResponse+  pHttpStatus_ =+    DescribePackagingConfigurationResponse'+      { arn =+          Prelude.Nothing,+        cmafPackage = Prelude.Nothing,+        dashPackage = Prelude.Nothing,+        hlsPackage = Prelude.Nothing,+        id = Prelude.Nothing,+        mssPackage = Prelude.Nothing,+        packagingGroupId = Prelude.Nothing,+        tags = Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The ARN of the PackagingConfiguration.+describePackagingConfigurationResponse_arn :: Lens.Lens' DescribePackagingConfigurationResponse (Prelude.Maybe Prelude.Text)+describePackagingConfigurationResponse_arn = Lens.lens (\DescribePackagingConfigurationResponse' {arn} -> arn) (\s@DescribePackagingConfigurationResponse' {} a -> s {arn = a} :: DescribePackagingConfigurationResponse)++-- | Undocumented member.+describePackagingConfigurationResponse_cmafPackage :: Lens.Lens' DescribePackagingConfigurationResponse (Prelude.Maybe CmafPackage)+describePackagingConfigurationResponse_cmafPackage = Lens.lens (\DescribePackagingConfigurationResponse' {cmafPackage} -> cmafPackage) (\s@DescribePackagingConfigurationResponse' {} a -> s {cmafPackage = a} :: DescribePackagingConfigurationResponse)++-- | Undocumented member.+describePackagingConfigurationResponse_dashPackage :: Lens.Lens' DescribePackagingConfigurationResponse (Prelude.Maybe DashPackage)+describePackagingConfigurationResponse_dashPackage = Lens.lens (\DescribePackagingConfigurationResponse' {dashPackage} -> dashPackage) (\s@DescribePackagingConfigurationResponse' {} a -> s {dashPackage = a} :: DescribePackagingConfigurationResponse)++-- | Undocumented member.+describePackagingConfigurationResponse_hlsPackage :: Lens.Lens' DescribePackagingConfigurationResponse (Prelude.Maybe HlsPackage)+describePackagingConfigurationResponse_hlsPackage = Lens.lens (\DescribePackagingConfigurationResponse' {hlsPackage} -> hlsPackage) (\s@DescribePackagingConfigurationResponse' {} a -> s {hlsPackage = a} :: DescribePackagingConfigurationResponse)++-- | The ID of the PackagingConfiguration.+describePackagingConfigurationResponse_id :: Lens.Lens' DescribePackagingConfigurationResponse (Prelude.Maybe Prelude.Text)+describePackagingConfigurationResponse_id = Lens.lens (\DescribePackagingConfigurationResponse' {id} -> id) (\s@DescribePackagingConfigurationResponse' {} a -> s {id = a} :: DescribePackagingConfigurationResponse)++-- | Undocumented member.+describePackagingConfigurationResponse_mssPackage :: Lens.Lens' DescribePackagingConfigurationResponse (Prelude.Maybe MssPackage)+describePackagingConfigurationResponse_mssPackage = Lens.lens (\DescribePackagingConfigurationResponse' {mssPackage} -> mssPackage) (\s@DescribePackagingConfigurationResponse' {} a -> s {mssPackage = a} :: DescribePackagingConfigurationResponse)++-- | The ID of a PackagingGroup.+describePackagingConfigurationResponse_packagingGroupId :: Lens.Lens' DescribePackagingConfigurationResponse (Prelude.Maybe Prelude.Text)+describePackagingConfigurationResponse_packagingGroupId = Lens.lens (\DescribePackagingConfigurationResponse' {packagingGroupId} -> packagingGroupId) (\s@DescribePackagingConfigurationResponse' {} a -> s {packagingGroupId = a} :: DescribePackagingConfigurationResponse)++-- | Undocumented member.+describePackagingConfigurationResponse_tags :: Lens.Lens' DescribePackagingConfigurationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+describePackagingConfigurationResponse_tags = Lens.lens (\DescribePackagingConfigurationResponse' {tags} -> tags) (\s@DescribePackagingConfigurationResponse' {} a -> s {tags = a} :: DescribePackagingConfigurationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describePackagingConfigurationResponse_httpStatus :: Lens.Lens' DescribePackagingConfigurationResponse Prelude.Int+describePackagingConfigurationResponse_httpStatus = Lens.lens (\DescribePackagingConfigurationResponse' {httpStatus} -> httpStatus) (\s@DescribePackagingConfigurationResponse' {} a -> s {httpStatus = a} :: DescribePackagingConfigurationResponse)++instance+  Prelude.NFData+    DescribePackagingConfigurationResponse+  where+  rnf DescribePackagingConfigurationResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf cmafPackage+      `Prelude.seq` Prelude.rnf dashPackage+      `Prelude.seq` Prelude.rnf hlsPackage+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf mssPackage+      `Prelude.seq` Prelude.rnf packagingGroupId+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaPackageVOD/DescribePackagingGroup.hs view
@@ -0,0 +1,231 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.DescribePackagingGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a description of a MediaPackage VOD PackagingGroup resource.+module Amazonka.MediaPackageVOD.DescribePackagingGroup+  ( -- * Creating a Request+    DescribePackagingGroup (..),+    newDescribePackagingGroup,++    -- * Request Lenses+    describePackagingGroup_id,++    -- * Destructuring the Response+    DescribePackagingGroupResponse (..),+    newDescribePackagingGroupResponse,++    -- * Response Lenses+    describePackagingGroupResponse_approximateAssetCount,+    describePackagingGroupResponse_arn,+    describePackagingGroupResponse_authorization,+    describePackagingGroupResponse_domainName,+    describePackagingGroupResponse_egressAccessLogs,+    describePackagingGroupResponse_id,+    describePackagingGroupResponse_tags,+    describePackagingGroupResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribePackagingGroup' smart constructor.+data DescribePackagingGroup = DescribePackagingGroup'+  { -- | The ID of a MediaPackage VOD PackagingGroup resource.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribePackagingGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'describePackagingGroup_id' - The ID of a MediaPackage VOD PackagingGroup resource.+newDescribePackagingGroup ::+  -- | 'id'+  Prelude.Text ->+  DescribePackagingGroup+newDescribePackagingGroup pId_ =+  DescribePackagingGroup' {id = pId_}++-- | The ID of a MediaPackage VOD PackagingGroup resource.+describePackagingGroup_id :: Lens.Lens' DescribePackagingGroup Prelude.Text+describePackagingGroup_id = Lens.lens (\DescribePackagingGroup' {id} -> id) (\s@DescribePackagingGroup' {} a -> s {id = a} :: DescribePackagingGroup)++instance Core.AWSRequest DescribePackagingGroup where+  type+    AWSResponse DescribePackagingGroup =+      DescribePackagingGroupResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribePackagingGroupResponse'+            Prelude.<$> (x Data..?> "approximateAssetCount")+            Prelude.<*> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "authorization")+            Prelude.<*> (x Data..?> "domainName")+            Prelude.<*> (x Data..?> "egressAccessLogs")+            Prelude.<*> (x Data..?> "id")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribePackagingGroup where+  hashWithSalt _salt DescribePackagingGroup' {..} =+    _salt `Prelude.hashWithSalt` id++instance Prelude.NFData DescribePackagingGroup where+  rnf DescribePackagingGroup' {..} = Prelude.rnf id++instance Data.ToHeaders DescribePackagingGroup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribePackagingGroup where+  toPath DescribePackagingGroup' {..} =+    Prelude.mconcat+      ["/packaging_groups/", Data.toBS id]++instance Data.ToQuery DescribePackagingGroup where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribePackagingGroupResponse' smart constructor.+data DescribePackagingGroupResponse = DescribePackagingGroupResponse'+  { -- | The approximate asset count of the PackagingGroup.+    approximateAssetCount :: Prelude.Maybe Prelude.Int,+    -- | The ARN of the PackagingGroup.+    arn :: Prelude.Maybe Prelude.Text,+    authorization :: Prelude.Maybe Authorization,+    -- | The fully qualified domain name for Assets in the PackagingGroup.+    domainName :: Prelude.Maybe Prelude.Text,+    egressAccessLogs :: Prelude.Maybe EgressAccessLogs,+    -- | The ID of the PackagingGroup.+    id :: Prelude.Maybe Prelude.Text,+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribePackagingGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'approximateAssetCount', 'describePackagingGroupResponse_approximateAssetCount' - The approximate asset count of the PackagingGroup.+--+-- 'arn', 'describePackagingGroupResponse_arn' - The ARN of the PackagingGroup.+--+-- 'authorization', 'describePackagingGroupResponse_authorization' - Undocumented member.+--+-- 'domainName', 'describePackagingGroupResponse_domainName' - The fully qualified domain name for Assets in the PackagingGroup.+--+-- 'egressAccessLogs', 'describePackagingGroupResponse_egressAccessLogs' - Undocumented member.+--+-- 'id', 'describePackagingGroupResponse_id' - The ID of the PackagingGroup.+--+-- 'tags', 'describePackagingGroupResponse_tags' - Undocumented member.+--+-- 'httpStatus', 'describePackagingGroupResponse_httpStatus' - The response's http status code.+newDescribePackagingGroupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribePackagingGroupResponse+newDescribePackagingGroupResponse pHttpStatus_ =+  DescribePackagingGroupResponse'+    { approximateAssetCount =+        Prelude.Nothing,+      arn = Prelude.Nothing,+      authorization = Prelude.Nothing,+      domainName = Prelude.Nothing,+      egressAccessLogs = Prelude.Nothing,+      id = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The approximate asset count of the PackagingGroup.+describePackagingGroupResponse_approximateAssetCount :: Lens.Lens' DescribePackagingGroupResponse (Prelude.Maybe Prelude.Int)+describePackagingGroupResponse_approximateAssetCount = Lens.lens (\DescribePackagingGroupResponse' {approximateAssetCount} -> approximateAssetCount) (\s@DescribePackagingGroupResponse' {} a -> s {approximateAssetCount = a} :: DescribePackagingGroupResponse)++-- | The ARN of the PackagingGroup.+describePackagingGroupResponse_arn :: Lens.Lens' DescribePackagingGroupResponse (Prelude.Maybe Prelude.Text)+describePackagingGroupResponse_arn = Lens.lens (\DescribePackagingGroupResponse' {arn} -> arn) (\s@DescribePackagingGroupResponse' {} a -> s {arn = a} :: DescribePackagingGroupResponse)++-- | Undocumented member.+describePackagingGroupResponse_authorization :: Lens.Lens' DescribePackagingGroupResponse (Prelude.Maybe Authorization)+describePackagingGroupResponse_authorization = Lens.lens (\DescribePackagingGroupResponse' {authorization} -> authorization) (\s@DescribePackagingGroupResponse' {} a -> s {authorization = a} :: DescribePackagingGroupResponse)++-- | The fully qualified domain name for Assets in the PackagingGroup.+describePackagingGroupResponse_domainName :: Lens.Lens' DescribePackagingGroupResponse (Prelude.Maybe Prelude.Text)+describePackagingGroupResponse_domainName = Lens.lens (\DescribePackagingGroupResponse' {domainName} -> domainName) (\s@DescribePackagingGroupResponse' {} a -> s {domainName = a} :: DescribePackagingGroupResponse)++-- | Undocumented member.+describePackagingGroupResponse_egressAccessLogs :: Lens.Lens' DescribePackagingGroupResponse (Prelude.Maybe EgressAccessLogs)+describePackagingGroupResponse_egressAccessLogs = Lens.lens (\DescribePackagingGroupResponse' {egressAccessLogs} -> egressAccessLogs) (\s@DescribePackagingGroupResponse' {} a -> s {egressAccessLogs = a} :: DescribePackagingGroupResponse)++-- | The ID of the PackagingGroup.+describePackagingGroupResponse_id :: Lens.Lens' DescribePackagingGroupResponse (Prelude.Maybe Prelude.Text)+describePackagingGroupResponse_id = Lens.lens (\DescribePackagingGroupResponse' {id} -> id) (\s@DescribePackagingGroupResponse' {} a -> s {id = a} :: DescribePackagingGroupResponse)++-- | Undocumented member.+describePackagingGroupResponse_tags :: Lens.Lens' DescribePackagingGroupResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+describePackagingGroupResponse_tags = Lens.lens (\DescribePackagingGroupResponse' {tags} -> tags) (\s@DescribePackagingGroupResponse' {} a -> s {tags = a} :: DescribePackagingGroupResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describePackagingGroupResponse_httpStatus :: Lens.Lens' DescribePackagingGroupResponse Prelude.Int+describePackagingGroupResponse_httpStatus = Lens.lens (\DescribePackagingGroupResponse' {httpStatus} -> httpStatus) (\s@DescribePackagingGroupResponse' {} a -> s {httpStatus = a} :: DescribePackagingGroupResponse)++instance+  Prelude.NFData+    DescribePackagingGroupResponse+  where+  rnf DescribePackagingGroupResponse' {..} =+    Prelude.rnf approximateAssetCount+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf authorization+      `Prelude.seq` Prelude.rnf domainName+      `Prelude.seq` Prelude.rnf egressAccessLogs+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaPackageVOD/Lens.hs view
@@ -0,0 +1,331 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Lens+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Lens+  ( -- * Operations++    -- ** ConfigureLogs+    configureLogs_egressAccessLogs,+    configureLogs_id,+    configureLogsResponse_arn,+    configureLogsResponse_authorization,+    configureLogsResponse_domainName,+    configureLogsResponse_egressAccessLogs,+    configureLogsResponse_id,+    configureLogsResponse_tags,+    configureLogsResponse_httpStatus,++    -- ** CreateAsset+    createAsset_resourceId,+    createAsset_tags,+    createAsset_sourceArn,+    createAsset_id,+    createAsset_packagingGroupId,+    createAsset_sourceRoleArn,+    createAssetResponse_arn,+    createAssetResponse_createdAt,+    createAssetResponse_egressEndpoints,+    createAssetResponse_id,+    createAssetResponse_packagingGroupId,+    createAssetResponse_resourceId,+    createAssetResponse_sourceArn,+    createAssetResponse_sourceRoleArn,+    createAssetResponse_tags,+    createAssetResponse_httpStatus,++    -- ** CreatePackagingConfiguration+    createPackagingConfiguration_cmafPackage,+    createPackagingConfiguration_dashPackage,+    createPackagingConfiguration_hlsPackage,+    createPackagingConfiguration_mssPackage,+    createPackagingConfiguration_tags,+    createPackagingConfiguration_id,+    createPackagingConfiguration_packagingGroupId,+    createPackagingConfigurationResponse_arn,+    createPackagingConfigurationResponse_cmafPackage,+    createPackagingConfigurationResponse_dashPackage,+    createPackagingConfigurationResponse_hlsPackage,+    createPackagingConfigurationResponse_id,+    createPackagingConfigurationResponse_mssPackage,+    createPackagingConfigurationResponse_packagingGroupId,+    createPackagingConfigurationResponse_tags,+    createPackagingConfigurationResponse_httpStatus,++    -- ** CreatePackagingGroup+    createPackagingGroup_authorization,+    createPackagingGroup_egressAccessLogs,+    createPackagingGroup_tags,+    createPackagingGroup_id,+    createPackagingGroupResponse_arn,+    createPackagingGroupResponse_authorization,+    createPackagingGroupResponse_domainName,+    createPackagingGroupResponse_egressAccessLogs,+    createPackagingGroupResponse_id,+    createPackagingGroupResponse_tags,+    createPackagingGroupResponse_httpStatus,++    -- ** DeleteAsset+    deleteAsset_id,+    deleteAssetResponse_httpStatus,++    -- ** DeletePackagingConfiguration+    deletePackagingConfiguration_id,+    deletePackagingConfigurationResponse_httpStatus,++    -- ** DeletePackagingGroup+    deletePackagingGroup_id,+    deletePackagingGroupResponse_httpStatus,++    -- ** DescribeAsset+    describeAsset_id,+    describeAssetResponse_arn,+    describeAssetResponse_createdAt,+    describeAssetResponse_egressEndpoints,+    describeAssetResponse_id,+    describeAssetResponse_packagingGroupId,+    describeAssetResponse_resourceId,+    describeAssetResponse_sourceArn,+    describeAssetResponse_sourceRoleArn,+    describeAssetResponse_tags,+    describeAssetResponse_httpStatus,++    -- ** DescribePackagingConfiguration+    describePackagingConfiguration_id,+    describePackagingConfigurationResponse_arn,+    describePackagingConfigurationResponse_cmafPackage,+    describePackagingConfigurationResponse_dashPackage,+    describePackagingConfigurationResponse_hlsPackage,+    describePackagingConfigurationResponse_id,+    describePackagingConfigurationResponse_mssPackage,+    describePackagingConfigurationResponse_packagingGroupId,+    describePackagingConfigurationResponse_tags,+    describePackagingConfigurationResponse_httpStatus,++    -- ** DescribePackagingGroup+    describePackagingGroup_id,+    describePackagingGroupResponse_approximateAssetCount,+    describePackagingGroupResponse_arn,+    describePackagingGroupResponse_authorization,+    describePackagingGroupResponse_domainName,+    describePackagingGroupResponse_egressAccessLogs,+    describePackagingGroupResponse_id,+    describePackagingGroupResponse_tags,+    describePackagingGroupResponse_httpStatus,++    -- ** ListAssets+    listAssets_maxResults,+    listAssets_nextToken,+    listAssets_packagingGroupId,+    listAssetsResponse_assets,+    listAssetsResponse_nextToken,+    listAssetsResponse_httpStatus,++    -- ** ListPackagingConfigurations+    listPackagingConfigurations_maxResults,+    listPackagingConfigurations_nextToken,+    listPackagingConfigurations_packagingGroupId,+    listPackagingConfigurationsResponse_nextToken,+    listPackagingConfigurationsResponse_packagingConfigurations,+    listPackagingConfigurationsResponse_httpStatus,++    -- ** ListPackagingGroups+    listPackagingGroups_maxResults,+    listPackagingGroups_nextToken,+    listPackagingGroupsResponse_nextToken,+    listPackagingGroupsResponse_packagingGroups,+    listPackagingGroupsResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_resourceArn,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** TagResource+    tagResource_resourceArn,+    tagResource_tags,++    -- ** UntagResource+    untagResource_tagKeys,+    untagResource_resourceArn,++    -- ** UpdatePackagingGroup+    updatePackagingGroup_authorization,+    updatePackagingGroup_id,+    updatePackagingGroupResponse_approximateAssetCount,+    updatePackagingGroupResponse_arn,+    updatePackagingGroupResponse_authorization,+    updatePackagingGroupResponse_domainName,+    updatePackagingGroupResponse_egressAccessLogs,+    updatePackagingGroupResponse_id,+    updatePackagingGroupResponse_tags,+    updatePackagingGroupResponse_httpStatus,++    -- * Types++    -- ** AssetShallow+    assetShallow_arn,+    assetShallow_createdAt,+    assetShallow_id,+    assetShallow_packagingGroupId,+    assetShallow_resourceId,+    assetShallow_sourceArn,+    assetShallow_sourceRoleArn,+    assetShallow_tags,++    -- ** Authorization+    authorization_secretsRoleArn,+    authorization_cdnIdentifierSecret,++    -- ** CmafEncryption+    cmafEncryption_constantInitializationVector,+    cmafEncryption_spekeKeyProvider,++    -- ** CmafPackage+    cmafPackage_encryption,+    cmafPackage_includeEncoderConfigurationInSegments,+    cmafPackage_segmentDurationSeconds,+    cmafPackage_hlsManifests,++    -- ** DashEncryption+    dashEncryption_spekeKeyProvider,++    -- ** DashManifest+    dashManifest_manifestLayout,+    dashManifest_manifestName,+    dashManifest_minBufferTimeSeconds,+    dashManifest_profile,+    dashManifest_scteMarkersSource,+    dashManifest_streamSelection,++    -- ** DashPackage+    dashPackage_encryption,+    dashPackage_includeEncoderConfigurationInSegments,+    dashPackage_includeIframeOnlyStream,+    dashPackage_periodTriggers,+    dashPackage_segmentDurationSeconds,+    dashPackage_segmentTemplateFormat,+    dashPackage_dashManifests,++    -- ** EgressAccessLogs+    egressAccessLogs_logGroupName,++    -- ** EgressEndpoint+    egressEndpoint_packagingConfigurationId,+    egressEndpoint_status,+    egressEndpoint_url,++    -- ** EncryptionContractConfiguration+    encryptionContractConfiguration_presetSpeke20Audio,+    encryptionContractConfiguration_presetSpeke20Video,++    -- ** HlsEncryption+    hlsEncryption_constantInitializationVector,+    hlsEncryption_encryptionMethod,+    hlsEncryption_spekeKeyProvider,++    -- ** HlsManifest+    hlsManifest_adMarkers,+    hlsManifest_includeIframeOnlyStream,+    hlsManifest_manifestName,+    hlsManifest_programDateTimeIntervalSeconds,+    hlsManifest_repeatExtXKey,+    hlsManifest_streamSelection,++    -- ** HlsPackage+    hlsPackage_encryption,+    hlsPackage_includeDvbSubtitles,+    hlsPackage_segmentDurationSeconds,+    hlsPackage_useAudioRenditionGroup,+    hlsPackage_hlsManifests,++    -- ** MssEncryption+    mssEncryption_spekeKeyProvider,++    -- ** MssManifest+    mssManifest_manifestName,+    mssManifest_streamSelection,++    -- ** MssPackage+    mssPackage_encryption,+    mssPackage_segmentDurationSeconds,+    mssPackage_mssManifests,++    -- ** PackagingConfiguration+    packagingConfiguration_arn,+    packagingConfiguration_cmafPackage,+    packagingConfiguration_dashPackage,+    packagingConfiguration_hlsPackage,+    packagingConfiguration_id,+    packagingConfiguration_mssPackage,+    packagingConfiguration_packagingGroupId,+    packagingConfiguration_tags,++    -- ** PackagingGroup+    packagingGroup_approximateAssetCount,+    packagingGroup_arn,+    packagingGroup_authorization,+    packagingGroup_domainName,+    packagingGroup_egressAccessLogs,+    packagingGroup_id,+    packagingGroup_tags,++    -- ** SpekeKeyProvider+    spekeKeyProvider_encryptionContractConfiguration,+    spekeKeyProvider_systemIds,+    spekeKeyProvider_url,+    spekeKeyProvider_roleArn,++    -- ** StreamSelection+    streamSelection_maxVideoBitsPerSecond,+    streamSelection_minVideoBitsPerSecond,+    streamSelection_streamOrder,+  )+where++import Amazonka.MediaPackageVOD.ConfigureLogs+import Amazonka.MediaPackageVOD.CreateAsset+import Amazonka.MediaPackageVOD.CreatePackagingConfiguration+import Amazonka.MediaPackageVOD.CreatePackagingGroup+import Amazonka.MediaPackageVOD.DeleteAsset+import Amazonka.MediaPackageVOD.DeletePackagingConfiguration+import Amazonka.MediaPackageVOD.DeletePackagingGroup+import Amazonka.MediaPackageVOD.DescribeAsset+import Amazonka.MediaPackageVOD.DescribePackagingConfiguration+import Amazonka.MediaPackageVOD.DescribePackagingGroup+import Amazonka.MediaPackageVOD.ListAssets+import Amazonka.MediaPackageVOD.ListPackagingConfigurations+import Amazonka.MediaPackageVOD.ListPackagingGroups+import Amazonka.MediaPackageVOD.ListTagsForResource+import Amazonka.MediaPackageVOD.TagResource+import Amazonka.MediaPackageVOD.Types.AssetShallow+import Amazonka.MediaPackageVOD.Types.Authorization+import Amazonka.MediaPackageVOD.Types.CmafEncryption+import Amazonka.MediaPackageVOD.Types.CmafPackage+import Amazonka.MediaPackageVOD.Types.DashEncryption+import Amazonka.MediaPackageVOD.Types.DashManifest+import Amazonka.MediaPackageVOD.Types.DashPackage+import Amazonka.MediaPackageVOD.Types.EgressAccessLogs+import Amazonka.MediaPackageVOD.Types.EgressEndpoint+import Amazonka.MediaPackageVOD.Types.EncryptionContractConfiguration+import Amazonka.MediaPackageVOD.Types.HlsEncryption+import Amazonka.MediaPackageVOD.Types.HlsManifest+import Amazonka.MediaPackageVOD.Types.HlsPackage+import Amazonka.MediaPackageVOD.Types.MssEncryption+import Amazonka.MediaPackageVOD.Types.MssManifest+import Amazonka.MediaPackageVOD.Types.MssPackage+import Amazonka.MediaPackageVOD.Types.PackagingConfiguration+import Amazonka.MediaPackageVOD.Types.PackagingGroup+import Amazonka.MediaPackageVOD.Types.SpekeKeyProvider+import Amazonka.MediaPackageVOD.Types.StreamSelection+import Amazonka.MediaPackageVOD.UntagResource+import Amazonka.MediaPackageVOD.UpdatePackagingGroup
+ gen/Amazonka/MediaPackageVOD/ListAssets.hs view
@@ -0,0 +1,224 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.ListAssets+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a collection of MediaPackage VOD Asset resources.+--+-- This operation returns paginated results.+module Amazonka.MediaPackageVOD.ListAssets+  ( -- * Creating a Request+    ListAssets (..),+    newListAssets,++    -- * Request Lenses+    listAssets_maxResults,+    listAssets_nextToken,+    listAssets_packagingGroupId,++    -- * Destructuring the Response+    ListAssetsResponse (..),+    newListAssetsResponse,++    -- * Response Lenses+    listAssetsResponse_assets,+    listAssetsResponse_nextToken,+    listAssetsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAssets' smart constructor.+data ListAssets = ListAssets'+  { -- | Upper bound on number of records to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A token used to resume pagination from the end of a previous request.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Returns Assets associated with the specified PackagingGroup.+    packagingGroupId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAssets' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listAssets_maxResults' - Upper bound on number of records to return.+--+-- 'nextToken', 'listAssets_nextToken' - A token used to resume pagination from the end of a previous request.+--+-- 'packagingGroupId', 'listAssets_packagingGroupId' - Returns Assets associated with the specified PackagingGroup.+newListAssets ::+  ListAssets+newListAssets =+  ListAssets'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      packagingGroupId = Prelude.Nothing+    }++-- | Upper bound on number of records to return.+listAssets_maxResults :: Lens.Lens' ListAssets (Prelude.Maybe Prelude.Natural)+listAssets_maxResults = Lens.lens (\ListAssets' {maxResults} -> maxResults) (\s@ListAssets' {} a -> s {maxResults = a} :: ListAssets)++-- | A token used to resume pagination from the end of a previous request.+listAssets_nextToken :: Lens.Lens' ListAssets (Prelude.Maybe Prelude.Text)+listAssets_nextToken = Lens.lens (\ListAssets' {nextToken} -> nextToken) (\s@ListAssets' {} a -> s {nextToken = a} :: ListAssets)++-- | Returns Assets associated with the specified PackagingGroup.+listAssets_packagingGroupId :: Lens.Lens' ListAssets (Prelude.Maybe Prelude.Text)+listAssets_packagingGroupId = Lens.lens (\ListAssets' {packagingGroupId} -> packagingGroupId) (\s@ListAssets' {} a -> s {packagingGroupId = a} :: ListAssets)++instance Core.AWSPager ListAssets where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listAssetsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listAssetsResponse_assets+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listAssets_nextToken+          Lens..~ rs+          Lens.^? listAssetsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListAssets where+  type AWSResponse ListAssets = ListAssetsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListAssetsResponse'+            Prelude.<$> (x Data..?> "assets" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListAssets where+  hashWithSalt _salt ListAssets' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` packagingGroupId++instance Prelude.NFData ListAssets where+  rnf ListAssets' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf packagingGroupId++instance Data.ToHeaders ListAssets where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListAssets where+  toPath = Prelude.const "/assets"++instance Data.ToQuery ListAssets where+  toQuery ListAssets' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken,+        "packagingGroupId" Data.=: packagingGroupId+      ]++-- | /See:/ 'newListAssetsResponse' smart constructor.+data ListAssetsResponse = ListAssetsResponse'+  { -- | A list of MediaPackage VOD Asset resources.+    assets :: Prelude.Maybe [AssetShallow],+    -- | A token that can be used to resume pagination from the end of the+    -- collection.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAssetsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'assets', 'listAssetsResponse_assets' - A list of MediaPackage VOD Asset resources.+--+-- 'nextToken', 'listAssetsResponse_nextToken' - A token that can be used to resume pagination from the end of the+-- collection.+--+-- 'httpStatus', 'listAssetsResponse_httpStatus' - The response's http status code.+newListAssetsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListAssetsResponse+newListAssetsResponse pHttpStatus_ =+  ListAssetsResponse'+    { assets = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of MediaPackage VOD Asset resources.+listAssetsResponse_assets :: Lens.Lens' ListAssetsResponse (Prelude.Maybe [AssetShallow])+listAssetsResponse_assets = Lens.lens (\ListAssetsResponse' {assets} -> assets) (\s@ListAssetsResponse' {} a -> s {assets = a} :: ListAssetsResponse) Prelude.. Lens.mapping Lens.coerced++-- | A token that can be used to resume pagination from the end of the+-- collection.+listAssetsResponse_nextToken :: Lens.Lens' ListAssetsResponse (Prelude.Maybe Prelude.Text)+listAssetsResponse_nextToken = Lens.lens (\ListAssetsResponse' {nextToken} -> nextToken) (\s@ListAssetsResponse' {} a -> s {nextToken = a} :: ListAssetsResponse)++-- | The response's http status code.+listAssetsResponse_httpStatus :: Lens.Lens' ListAssetsResponse Prelude.Int+listAssetsResponse_httpStatus = Lens.lens (\ListAssetsResponse' {httpStatus} -> httpStatus) (\s@ListAssetsResponse' {} a -> s {httpStatus = a} :: ListAssetsResponse)++instance Prelude.NFData ListAssetsResponse where+  rnf ListAssetsResponse' {..} =+    Prelude.rnf assets+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaPackageVOD/ListPackagingConfigurations.hs view
@@ -0,0 +1,239 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.ListPackagingConfigurations+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a collection of MediaPackage VOD PackagingConfiguration+-- resources.+--+-- This operation returns paginated results.+module Amazonka.MediaPackageVOD.ListPackagingConfigurations+  ( -- * Creating a Request+    ListPackagingConfigurations (..),+    newListPackagingConfigurations,++    -- * Request Lenses+    listPackagingConfigurations_maxResults,+    listPackagingConfigurations_nextToken,+    listPackagingConfigurations_packagingGroupId,++    -- * Destructuring the Response+    ListPackagingConfigurationsResponse (..),+    newListPackagingConfigurationsResponse,++    -- * Response Lenses+    listPackagingConfigurationsResponse_nextToken,+    listPackagingConfigurationsResponse_packagingConfigurations,+    listPackagingConfigurationsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListPackagingConfigurations' smart constructor.+data ListPackagingConfigurations = ListPackagingConfigurations'+  { -- | Upper bound on number of records to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A token used to resume pagination from the end of a previous request.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Returns MediaPackage VOD PackagingConfigurations associated with the+    -- specified PackagingGroup.+    packagingGroupId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListPackagingConfigurations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listPackagingConfigurations_maxResults' - Upper bound on number of records to return.+--+-- 'nextToken', 'listPackagingConfigurations_nextToken' - A token used to resume pagination from the end of a previous request.+--+-- 'packagingGroupId', 'listPackagingConfigurations_packagingGroupId' - Returns MediaPackage VOD PackagingConfigurations associated with the+-- specified PackagingGroup.+newListPackagingConfigurations ::+  ListPackagingConfigurations+newListPackagingConfigurations =+  ListPackagingConfigurations'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      packagingGroupId = Prelude.Nothing+    }++-- | Upper bound on number of records to return.+listPackagingConfigurations_maxResults :: Lens.Lens' ListPackagingConfigurations (Prelude.Maybe Prelude.Natural)+listPackagingConfigurations_maxResults = Lens.lens (\ListPackagingConfigurations' {maxResults} -> maxResults) (\s@ListPackagingConfigurations' {} a -> s {maxResults = a} :: ListPackagingConfigurations)++-- | A token used to resume pagination from the end of a previous request.+listPackagingConfigurations_nextToken :: Lens.Lens' ListPackagingConfigurations (Prelude.Maybe Prelude.Text)+listPackagingConfigurations_nextToken = Lens.lens (\ListPackagingConfigurations' {nextToken} -> nextToken) (\s@ListPackagingConfigurations' {} a -> s {nextToken = a} :: ListPackagingConfigurations)++-- | Returns MediaPackage VOD PackagingConfigurations associated with the+-- specified PackagingGroup.+listPackagingConfigurations_packagingGroupId :: Lens.Lens' ListPackagingConfigurations (Prelude.Maybe Prelude.Text)+listPackagingConfigurations_packagingGroupId = Lens.lens (\ListPackagingConfigurations' {packagingGroupId} -> packagingGroupId) (\s@ListPackagingConfigurations' {} a -> s {packagingGroupId = a} :: ListPackagingConfigurations)++instance Core.AWSPager ListPackagingConfigurations where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listPackagingConfigurationsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listPackagingConfigurationsResponse_packagingConfigurations+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listPackagingConfigurations_nextToken+          Lens..~ rs+          Lens.^? listPackagingConfigurationsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListPackagingConfigurations where+  type+    AWSResponse ListPackagingConfigurations =+      ListPackagingConfigurationsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListPackagingConfigurationsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> ( x+                            Data..?> "packagingConfigurations"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListPackagingConfigurations where+  hashWithSalt _salt ListPackagingConfigurations' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` packagingGroupId++instance Prelude.NFData ListPackagingConfigurations where+  rnf ListPackagingConfigurations' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf packagingGroupId++instance Data.ToHeaders ListPackagingConfigurations where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListPackagingConfigurations where+  toPath = Prelude.const "/packaging_configurations"++instance Data.ToQuery ListPackagingConfigurations where+  toQuery ListPackagingConfigurations' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken,+        "packagingGroupId" Data.=: packagingGroupId+      ]++-- | /See:/ 'newListPackagingConfigurationsResponse' smart constructor.+data ListPackagingConfigurationsResponse = ListPackagingConfigurationsResponse'+  { -- | A token that can be used to resume pagination from the end of the+    -- collection.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of MediaPackage VOD PackagingConfiguration resources.+    packagingConfigurations :: Prelude.Maybe [PackagingConfiguration],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListPackagingConfigurationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listPackagingConfigurationsResponse_nextToken' - A token that can be used to resume pagination from the end of the+-- collection.+--+-- 'packagingConfigurations', 'listPackagingConfigurationsResponse_packagingConfigurations' - A list of MediaPackage VOD PackagingConfiguration resources.+--+-- 'httpStatus', 'listPackagingConfigurationsResponse_httpStatus' - The response's http status code.+newListPackagingConfigurationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListPackagingConfigurationsResponse+newListPackagingConfigurationsResponse pHttpStatus_ =+  ListPackagingConfigurationsResponse'+    { nextToken =+        Prelude.Nothing,+      packagingConfigurations =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A token that can be used to resume pagination from the end of the+-- collection.+listPackagingConfigurationsResponse_nextToken :: Lens.Lens' ListPackagingConfigurationsResponse (Prelude.Maybe Prelude.Text)+listPackagingConfigurationsResponse_nextToken = Lens.lens (\ListPackagingConfigurationsResponse' {nextToken} -> nextToken) (\s@ListPackagingConfigurationsResponse' {} a -> s {nextToken = a} :: ListPackagingConfigurationsResponse)++-- | A list of MediaPackage VOD PackagingConfiguration resources.+listPackagingConfigurationsResponse_packagingConfigurations :: Lens.Lens' ListPackagingConfigurationsResponse (Prelude.Maybe [PackagingConfiguration])+listPackagingConfigurationsResponse_packagingConfigurations = Lens.lens (\ListPackagingConfigurationsResponse' {packagingConfigurations} -> packagingConfigurations) (\s@ListPackagingConfigurationsResponse' {} a -> s {packagingConfigurations = a} :: ListPackagingConfigurationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listPackagingConfigurationsResponse_httpStatus :: Lens.Lens' ListPackagingConfigurationsResponse Prelude.Int+listPackagingConfigurationsResponse_httpStatus = Lens.lens (\ListPackagingConfigurationsResponse' {httpStatus} -> httpStatus) (\s@ListPackagingConfigurationsResponse' {} a -> s {httpStatus = a} :: ListPackagingConfigurationsResponse)++instance+  Prelude.NFData+    ListPackagingConfigurationsResponse+  where+  rnf ListPackagingConfigurationsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf packagingConfigurations+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaPackageVOD/ListPackagingGroups.hs view
@@ -0,0 +1,217 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.ListPackagingGroups+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a collection of MediaPackage VOD PackagingGroup resources.+--+-- This operation returns paginated results.+module Amazonka.MediaPackageVOD.ListPackagingGroups+  ( -- * Creating a Request+    ListPackagingGroups (..),+    newListPackagingGroups,++    -- * Request Lenses+    listPackagingGroups_maxResults,+    listPackagingGroups_nextToken,++    -- * Destructuring the Response+    ListPackagingGroupsResponse (..),+    newListPackagingGroupsResponse,++    -- * Response Lenses+    listPackagingGroupsResponse_nextToken,+    listPackagingGroupsResponse_packagingGroups,+    listPackagingGroupsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListPackagingGroups' smart constructor.+data ListPackagingGroups = ListPackagingGroups'+  { -- | Upper bound on number of records to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A token used to resume pagination from the end of a previous request.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListPackagingGroups' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listPackagingGroups_maxResults' - Upper bound on number of records to return.+--+-- 'nextToken', 'listPackagingGroups_nextToken' - A token used to resume pagination from the end of a previous request.+newListPackagingGroups ::+  ListPackagingGroups+newListPackagingGroups =+  ListPackagingGroups'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | Upper bound on number of records to return.+listPackagingGroups_maxResults :: Lens.Lens' ListPackagingGroups (Prelude.Maybe Prelude.Natural)+listPackagingGroups_maxResults = Lens.lens (\ListPackagingGroups' {maxResults} -> maxResults) (\s@ListPackagingGroups' {} a -> s {maxResults = a} :: ListPackagingGroups)++-- | A token used to resume pagination from the end of a previous request.+listPackagingGroups_nextToken :: Lens.Lens' ListPackagingGroups (Prelude.Maybe Prelude.Text)+listPackagingGroups_nextToken = Lens.lens (\ListPackagingGroups' {nextToken} -> nextToken) (\s@ListPackagingGroups' {} a -> s {nextToken = a} :: ListPackagingGroups)++instance Core.AWSPager ListPackagingGroups where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listPackagingGroupsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listPackagingGroupsResponse_packagingGroups+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listPackagingGroups_nextToken+          Lens..~ rs+          Lens.^? listPackagingGroupsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListPackagingGroups where+  type+    AWSResponse ListPackagingGroups =+      ListPackagingGroupsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListPackagingGroupsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> ( x+                            Data..?> "packagingGroups"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListPackagingGroups where+  hashWithSalt _salt ListPackagingGroups' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListPackagingGroups where+  rnf ListPackagingGroups' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListPackagingGroups where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListPackagingGroups where+  toPath = Prelude.const "/packaging_groups"++instance Data.ToQuery ListPackagingGroups where+  toQuery ListPackagingGroups' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListPackagingGroupsResponse' smart constructor.+data ListPackagingGroupsResponse = ListPackagingGroupsResponse'+  { -- | A token that can be used to resume pagination from the end of the+    -- collection.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of MediaPackage VOD PackagingGroup resources.+    packagingGroups :: Prelude.Maybe [PackagingGroup],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListPackagingGroupsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listPackagingGroupsResponse_nextToken' - A token that can be used to resume pagination from the end of the+-- collection.+--+-- 'packagingGroups', 'listPackagingGroupsResponse_packagingGroups' - A list of MediaPackage VOD PackagingGroup resources.+--+-- 'httpStatus', 'listPackagingGroupsResponse_httpStatus' - The response's http status code.+newListPackagingGroupsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListPackagingGroupsResponse+newListPackagingGroupsResponse pHttpStatus_ =+  ListPackagingGroupsResponse'+    { nextToken =+        Prelude.Nothing,+      packagingGroups = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A token that can be used to resume pagination from the end of the+-- collection.+listPackagingGroupsResponse_nextToken :: Lens.Lens' ListPackagingGroupsResponse (Prelude.Maybe Prelude.Text)+listPackagingGroupsResponse_nextToken = Lens.lens (\ListPackagingGroupsResponse' {nextToken} -> nextToken) (\s@ListPackagingGroupsResponse' {} a -> s {nextToken = a} :: ListPackagingGroupsResponse)++-- | A list of MediaPackage VOD PackagingGroup resources.+listPackagingGroupsResponse_packagingGroups :: Lens.Lens' ListPackagingGroupsResponse (Prelude.Maybe [PackagingGroup])+listPackagingGroupsResponse_packagingGroups = Lens.lens (\ListPackagingGroupsResponse' {packagingGroups} -> packagingGroups) (\s@ListPackagingGroupsResponse' {} a -> s {packagingGroups = a} :: ListPackagingGroupsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listPackagingGroupsResponse_httpStatus :: Lens.Lens' ListPackagingGroupsResponse Prelude.Int+listPackagingGroupsResponse_httpStatus = Lens.lens (\ListPackagingGroupsResponse' {httpStatus} -> httpStatus) (\s@ListPackagingGroupsResponse' {} a -> s {httpStatus = a} :: ListPackagingGroupsResponse)++instance Prelude.NFData ListPackagingGroupsResponse where+  rnf ListPackagingGroupsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf packagingGroups+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaPackageVOD/ListTagsForResource.hs view
@@ -0,0 +1,162 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.ListTagsForResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of the tags assigned to the specified resource.+module Amazonka.MediaPackageVOD.ListTagsForResource+  ( -- * Creating a Request+    ListTagsForResource (..),+    newListTagsForResource,++    -- * Request Lenses+    listTagsForResource_resourceArn,++    -- * Destructuring the Response+    ListTagsForResourceResponse (..),+    newListTagsForResourceResponse,++    -- * Response Lenses+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+  { -- | The Amazon Resource Name (ARN) for the resource. You can get this from+    -- the response to any request to the resource.+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'listTagsForResource_resourceArn' - The Amazon Resource Name (ARN) for the resource. You can get this from+-- the response to any request to the resource.+newListTagsForResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceArn_ =+  ListTagsForResource' {resourceArn = pResourceArn_}++-- | The Amazon Resource Name (ARN) for the resource. You can get this from+-- the response to any request to the resource.+listTagsForResource_resourceArn :: Lens.Lens' ListTagsForResource Prelude.Text+listTagsForResource_resourceArn = Lens.lens (\ListTagsForResource' {resourceArn} -> resourceArn) (\s@ListTagsForResource' {} a -> s {resourceArn = a} :: ListTagsForResource)++instance Core.AWSRequest ListTagsForResource where+  type+    AWSResponse ListTagsForResource =+      ListTagsForResourceResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListTagsForResourceResponse'+            Prelude.<$> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListTagsForResource where+  hashWithSalt _salt ListTagsForResource' {..} =+    _salt `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData ListTagsForResource where+  rnf ListTagsForResource' {..} =+    Prelude.rnf resourceArn++instance Data.ToHeaders ListTagsForResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListTagsForResource where+  toPath ListTagsForResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery ListTagsForResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+  { -- | A collection of tags associated with a resource+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'listTagsForResourceResponse_tags' - A collection of tags associated with a resource+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A collection of tags associated with a resource+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)++instance Prelude.NFData ListTagsForResourceResponse where+  rnf ListTagsForResourceResponse' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaPackageVOD/TagResource.hs view
@@ -0,0 +1,146 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.TagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds tags to the specified resource. You can specify one or more tags to+-- add.+module Amazonka.MediaPackageVOD.TagResource+  ( -- * Creating a Request+    TagResource (..),+    newTagResource,++    -- * Request Lenses+    tagResource_resourceArn,+    tagResource_tags,++    -- * Destructuring the Response+    TagResourceResponse (..),+    newTagResourceResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+  { -- | The Amazon Resource Name (ARN) for the resource. You can get this from+    -- the response to any request to the resource.+    resourceArn :: Prelude.Text,+    -- | A collection of tags associated with a resource+    tags :: Prelude.HashMap Prelude.Text Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'tagResource_resourceArn' - The Amazon Resource Name (ARN) for the resource. You can get this from+-- the response to any request to the resource.+--+-- 'tags', 'tagResource_tags' - A collection of tags associated with a resource+newTagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  TagResource+newTagResource pResourceArn_ =+  TagResource'+    { resourceArn = pResourceArn_,+      tags = Prelude.mempty+    }++-- | The Amazon Resource Name (ARN) for the resource. You can get this from+-- the response to any request to the resource.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | A collection of tags associated with a resource+tagResource_tags :: Lens.Lens' TagResource (Prelude.HashMap Prelude.Text Prelude.Text)+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.coerced++instance Core.AWSRequest TagResource where+  type AWSResponse TagResource = TagResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response = Response.receiveNull TagResourceResponse'++instance Prelude.Hashable TagResource where+  hashWithSalt _salt TagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` tags++instance Prelude.NFData TagResource where+  rnf TagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders TagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON TagResource where+  toJSON TagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("tags" Data..= tags)]+      )++instance Data.ToPath TagResource where+  toPath TagResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery TagResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newTagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newTagResourceResponse ::+  TagResourceResponse+newTagResourceResponse = TagResourceResponse'++instance Prelude.NFData TagResourceResponse where+  rnf _ = ()
+ gen/Amazonka/MediaPackageVOD/Types.hs view
@@ -0,0 +1,369 @@+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _ForbiddenException,+    _InternalServerErrorException,+    _NotFoundException,+    _ServiceUnavailableException,+    _TooManyRequestsException,+    _UnprocessableEntityException,++    -- * AdMarkers+    AdMarkers (..),++    -- * EncryptionMethod+    EncryptionMethod (..),++    -- * ManifestLayout+    ManifestLayout (..),++    -- * PeriodTriggersElement+    PeriodTriggersElement (..),++    -- * PresetSpeke20Audio+    PresetSpeke20Audio (..),++    -- * PresetSpeke20Video+    PresetSpeke20Video (..),++    -- * Profile+    Profile (..),++    -- * ScteMarkersSource+    ScteMarkersSource (..),++    -- * SegmentTemplateFormat+    SegmentTemplateFormat (..),++    -- * StreamOrder+    StreamOrder (..),++    -- * AssetShallow+    AssetShallow (..),+    newAssetShallow,+    assetShallow_arn,+    assetShallow_createdAt,+    assetShallow_id,+    assetShallow_packagingGroupId,+    assetShallow_resourceId,+    assetShallow_sourceArn,+    assetShallow_sourceRoleArn,+    assetShallow_tags,++    -- * Authorization+    Authorization (..),+    newAuthorization,+    authorization_secretsRoleArn,+    authorization_cdnIdentifierSecret,++    -- * CmafEncryption+    CmafEncryption (..),+    newCmafEncryption,+    cmafEncryption_constantInitializationVector,+    cmafEncryption_spekeKeyProvider,++    -- * CmafPackage+    CmafPackage (..),+    newCmafPackage,+    cmafPackage_encryption,+    cmafPackage_includeEncoderConfigurationInSegments,+    cmafPackage_segmentDurationSeconds,+    cmafPackage_hlsManifests,++    -- * DashEncryption+    DashEncryption (..),+    newDashEncryption,+    dashEncryption_spekeKeyProvider,++    -- * DashManifest+    DashManifest (..),+    newDashManifest,+    dashManifest_manifestLayout,+    dashManifest_manifestName,+    dashManifest_minBufferTimeSeconds,+    dashManifest_profile,+    dashManifest_scteMarkersSource,+    dashManifest_streamSelection,++    -- * DashPackage+    DashPackage (..),+    newDashPackage,+    dashPackage_encryption,+    dashPackage_includeEncoderConfigurationInSegments,+    dashPackage_includeIframeOnlyStream,+    dashPackage_periodTriggers,+    dashPackage_segmentDurationSeconds,+    dashPackage_segmentTemplateFormat,+    dashPackage_dashManifests,++    -- * EgressAccessLogs+    EgressAccessLogs (..),+    newEgressAccessLogs,+    egressAccessLogs_logGroupName,++    -- * EgressEndpoint+    EgressEndpoint (..),+    newEgressEndpoint,+    egressEndpoint_packagingConfigurationId,+    egressEndpoint_status,+    egressEndpoint_url,++    -- * EncryptionContractConfiguration+    EncryptionContractConfiguration (..),+    newEncryptionContractConfiguration,+    encryptionContractConfiguration_presetSpeke20Audio,+    encryptionContractConfiguration_presetSpeke20Video,++    -- * HlsEncryption+    HlsEncryption (..),+    newHlsEncryption,+    hlsEncryption_constantInitializationVector,+    hlsEncryption_encryptionMethod,+    hlsEncryption_spekeKeyProvider,++    -- * HlsManifest+    HlsManifest (..),+    newHlsManifest,+    hlsManifest_adMarkers,+    hlsManifest_includeIframeOnlyStream,+    hlsManifest_manifestName,+    hlsManifest_programDateTimeIntervalSeconds,+    hlsManifest_repeatExtXKey,+    hlsManifest_streamSelection,++    -- * HlsPackage+    HlsPackage (..),+    newHlsPackage,+    hlsPackage_encryption,+    hlsPackage_includeDvbSubtitles,+    hlsPackage_segmentDurationSeconds,+    hlsPackage_useAudioRenditionGroup,+    hlsPackage_hlsManifests,++    -- * MssEncryption+    MssEncryption (..),+    newMssEncryption,+    mssEncryption_spekeKeyProvider,++    -- * MssManifest+    MssManifest (..),+    newMssManifest,+    mssManifest_manifestName,+    mssManifest_streamSelection,++    -- * MssPackage+    MssPackage (..),+    newMssPackage,+    mssPackage_encryption,+    mssPackage_segmentDurationSeconds,+    mssPackage_mssManifests,++    -- * PackagingConfiguration+    PackagingConfiguration (..),+    newPackagingConfiguration,+    packagingConfiguration_arn,+    packagingConfiguration_cmafPackage,+    packagingConfiguration_dashPackage,+    packagingConfiguration_hlsPackage,+    packagingConfiguration_id,+    packagingConfiguration_mssPackage,+    packagingConfiguration_packagingGroupId,+    packagingConfiguration_tags,++    -- * PackagingGroup+    PackagingGroup (..),+    newPackagingGroup,+    packagingGroup_approximateAssetCount,+    packagingGroup_arn,+    packagingGroup_authorization,+    packagingGroup_domainName,+    packagingGroup_egressAccessLogs,+    packagingGroup_id,+    packagingGroup_tags,++    -- * SpekeKeyProvider+    SpekeKeyProvider (..),+    newSpekeKeyProvider,+    spekeKeyProvider_encryptionContractConfiguration,+    spekeKeyProvider_systemIds,+    spekeKeyProvider_url,+    spekeKeyProvider_roleArn,++    -- * StreamSelection+    StreamSelection (..),+    newStreamSelection,+    streamSelection_maxVideoBitsPerSecond,+    streamSelection_minVideoBitsPerSecond,+    streamSelection_streamOrder,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.MediaPackageVOD.Types.AdMarkers+import Amazonka.MediaPackageVOD.Types.AssetShallow+import Amazonka.MediaPackageVOD.Types.Authorization+import Amazonka.MediaPackageVOD.Types.CmafEncryption+import Amazonka.MediaPackageVOD.Types.CmafPackage+import Amazonka.MediaPackageVOD.Types.DashEncryption+import Amazonka.MediaPackageVOD.Types.DashManifest+import Amazonka.MediaPackageVOD.Types.DashPackage+import Amazonka.MediaPackageVOD.Types.EgressAccessLogs+import Amazonka.MediaPackageVOD.Types.EgressEndpoint+import Amazonka.MediaPackageVOD.Types.EncryptionContractConfiguration+import Amazonka.MediaPackageVOD.Types.EncryptionMethod+import Amazonka.MediaPackageVOD.Types.HlsEncryption+import Amazonka.MediaPackageVOD.Types.HlsManifest+import Amazonka.MediaPackageVOD.Types.HlsPackage+import Amazonka.MediaPackageVOD.Types.ManifestLayout+import Amazonka.MediaPackageVOD.Types.MssEncryption+import Amazonka.MediaPackageVOD.Types.MssManifest+import Amazonka.MediaPackageVOD.Types.MssPackage+import Amazonka.MediaPackageVOD.Types.PackagingConfiguration+import Amazonka.MediaPackageVOD.Types.PackagingGroup+import Amazonka.MediaPackageVOD.Types.PeriodTriggersElement+import Amazonka.MediaPackageVOD.Types.PresetSpeke20Audio+import Amazonka.MediaPackageVOD.Types.PresetSpeke20Video+import Amazonka.MediaPackageVOD.Types.Profile+import Amazonka.MediaPackageVOD.Types.ScteMarkersSource+import Amazonka.MediaPackageVOD.Types.SegmentTemplateFormat+import Amazonka.MediaPackageVOD.Types.SpekeKeyProvider+import Amazonka.MediaPackageVOD.Types.StreamOrder+import Amazonka.MediaPackageVOD.Types.StreamSelection+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2018-11-07@ of the Amazon Elemental MediaPackage VOD SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "MediaPackageVOD",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "mediapackage-vod",+      Core.signingName = "mediapackage-vod",+      Core.version = "2018-11-07",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "MediaPackageVOD",+      Core.retry = retry+    }+  where+    retry =+      Core.Exponential+        { Core.base = 5.0e-2,+          Core.growth = 2,+          Core.attempts = 5,+          Core.check = check+        }+    check e+      | Lens.has (Core.hasStatus 502) e =+          Prelude.Just "bad_gateway"+      | Lens.has (Core.hasStatus 504) e =+          Prelude.Just "gateway_timeout"+      | Lens.has (Core.hasStatus 500) e =+          Prelude.Just "general_server_error"+      | Lens.has (Core.hasStatus 509) e =+          Prelude.Just "limit_exceeded"+      | Lens.has+          ( Core.hasCode "RequestThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "request_throttled_exception"+      | Lens.has (Core.hasStatus 503) e =+          Prelude.Just "service_unavailable"+      | Lens.has+          ( Core.hasCode "ThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttled_exception"+      | Lens.has+          ( Core.hasCode "Throttling"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling"+      | Lens.has+          ( Core.hasCode "ThrottlingException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling_exception"+      | Lens.has+          ( Core.hasCode+              "ProvisionedThroughputExceededException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throughput_exceeded"+      | Lens.has (Core.hasStatus 429) e =+          Prelude.Just "too_many_requests"+      | Prelude.otherwise = Prelude.Nothing++-- | The client is not authorized to access the requested resource.+_ForbiddenException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ForbiddenException =+  Core._MatchServiceError+    defaultService+    "ForbiddenException"+    Prelude.. Core.hasStatus 403++-- | An unexpected error occurred.+_InternalServerErrorException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerErrorException =+  Core._MatchServiceError+    defaultService+    "InternalServerErrorException"+    Prelude.. Core.hasStatus 500++-- | The requested resource does not exist.+_NotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_NotFoundException =+  Core._MatchServiceError+    defaultService+    "NotFoundException"+    Prelude.. Core.hasStatus 404++-- | An unexpected error occurred.+_ServiceUnavailableException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceUnavailableException =+  Core._MatchServiceError+    defaultService+    "ServiceUnavailableException"+    Prelude.. Core.hasStatus 503++-- | The client has exceeded their resource or throttling limits.+_TooManyRequestsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_TooManyRequestsException =+  Core._MatchServiceError+    defaultService+    "TooManyRequestsException"+    Prelude.. Core.hasStatus 429++-- | The parameters sent in the request are not valid.+_UnprocessableEntityException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_UnprocessableEntityException =+  Core._MatchServiceError+    defaultService+    "UnprocessableEntityException"+    Prelude.. Core.hasStatus 422
+ gen/Amazonka/MediaPackageVOD/Types/AdMarkers.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.AdMarkers+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.AdMarkers+  ( AdMarkers+      ( ..,+        AdMarkers_NONE,+        AdMarkers_PASSTHROUGH,+        AdMarkers_SCTE35_ENHANCED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AdMarkers = AdMarkers'+  { fromAdMarkers ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern AdMarkers_NONE :: AdMarkers+pattern AdMarkers_NONE = AdMarkers' "NONE"++pattern AdMarkers_PASSTHROUGH :: AdMarkers+pattern AdMarkers_PASSTHROUGH = AdMarkers' "PASSTHROUGH"++pattern AdMarkers_SCTE35_ENHANCED :: AdMarkers+pattern AdMarkers_SCTE35_ENHANCED = AdMarkers' "SCTE35_ENHANCED"++{-# COMPLETE+  AdMarkers_NONE,+  AdMarkers_PASSTHROUGH,+  AdMarkers_SCTE35_ENHANCED,+  AdMarkers'+  #-}
+ gen/Amazonka/MediaPackageVOD/Types/AssetShallow.hs view
@@ -0,0 +1,155 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.AssetShallow+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.AssetShallow where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A MediaPackage VOD Asset resource.+--+-- /See:/ 'newAssetShallow' smart constructor.+data AssetShallow = AssetShallow'+  { -- | The ARN of the Asset.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The time the Asset was initially submitted for Ingest.+    createdAt :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the Asset.+    id :: Prelude.Maybe Prelude.Text,+    -- | The ID of the PackagingGroup for the Asset.+    packagingGroupId :: Prelude.Maybe Prelude.Text,+    -- | The resource ID to include in SPEKE key requests.+    resourceId :: Prelude.Maybe Prelude.Text,+    -- | ARN of the source object in S3.+    sourceArn :: Prelude.Maybe Prelude.Text,+    -- | The IAM role ARN used to access the source S3 bucket.+    sourceRoleArn :: Prelude.Maybe Prelude.Text,+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssetShallow' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'assetShallow_arn' - The ARN of the Asset.+--+-- 'createdAt', 'assetShallow_createdAt' - The time the Asset was initially submitted for Ingest.+--+-- 'id', 'assetShallow_id' - The unique identifier for the Asset.+--+-- 'packagingGroupId', 'assetShallow_packagingGroupId' - The ID of the PackagingGroup for the Asset.+--+-- 'resourceId', 'assetShallow_resourceId' - The resource ID to include in SPEKE key requests.+--+-- 'sourceArn', 'assetShallow_sourceArn' - ARN of the source object in S3.+--+-- 'sourceRoleArn', 'assetShallow_sourceRoleArn' - The IAM role ARN used to access the source S3 bucket.+--+-- 'tags', 'assetShallow_tags' - Undocumented member.+newAssetShallow ::+  AssetShallow+newAssetShallow =+  AssetShallow'+    { arn = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      id = Prelude.Nothing,+      packagingGroupId = Prelude.Nothing,+      resourceId = Prelude.Nothing,+      sourceArn = Prelude.Nothing,+      sourceRoleArn = Prelude.Nothing,+      tags = Prelude.Nothing+    }++-- | The ARN of the Asset.+assetShallow_arn :: Lens.Lens' AssetShallow (Prelude.Maybe Prelude.Text)+assetShallow_arn = Lens.lens (\AssetShallow' {arn} -> arn) (\s@AssetShallow' {} a -> s {arn = a} :: AssetShallow)++-- | The time the Asset was initially submitted for Ingest.+assetShallow_createdAt :: Lens.Lens' AssetShallow (Prelude.Maybe Prelude.Text)+assetShallow_createdAt = Lens.lens (\AssetShallow' {createdAt} -> createdAt) (\s@AssetShallow' {} a -> s {createdAt = a} :: AssetShallow)++-- | The unique identifier for the Asset.+assetShallow_id :: Lens.Lens' AssetShallow (Prelude.Maybe Prelude.Text)+assetShallow_id = Lens.lens (\AssetShallow' {id} -> id) (\s@AssetShallow' {} a -> s {id = a} :: AssetShallow)++-- | The ID of the PackagingGroup for the Asset.+assetShallow_packagingGroupId :: Lens.Lens' AssetShallow (Prelude.Maybe Prelude.Text)+assetShallow_packagingGroupId = Lens.lens (\AssetShallow' {packagingGroupId} -> packagingGroupId) (\s@AssetShallow' {} a -> s {packagingGroupId = a} :: AssetShallow)++-- | The resource ID to include in SPEKE key requests.+assetShallow_resourceId :: Lens.Lens' AssetShallow (Prelude.Maybe Prelude.Text)+assetShallow_resourceId = Lens.lens (\AssetShallow' {resourceId} -> resourceId) (\s@AssetShallow' {} a -> s {resourceId = a} :: AssetShallow)++-- | ARN of the source object in S3.+assetShallow_sourceArn :: Lens.Lens' AssetShallow (Prelude.Maybe Prelude.Text)+assetShallow_sourceArn = Lens.lens (\AssetShallow' {sourceArn} -> sourceArn) (\s@AssetShallow' {} a -> s {sourceArn = a} :: AssetShallow)++-- | The IAM role ARN used to access the source S3 bucket.+assetShallow_sourceRoleArn :: Lens.Lens' AssetShallow (Prelude.Maybe Prelude.Text)+assetShallow_sourceRoleArn = Lens.lens (\AssetShallow' {sourceRoleArn} -> sourceRoleArn) (\s@AssetShallow' {} a -> s {sourceRoleArn = a} :: AssetShallow)++-- | Undocumented member.+assetShallow_tags :: Lens.Lens' AssetShallow (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+assetShallow_tags = Lens.lens (\AssetShallow' {tags} -> tags) (\s@AssetShallow' {} a -> s {tags = a} :: AssetShallow) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON AssetShallow where+  parseJSON =+    Data.withObject+      "AssetShallow"+      ( \x ->+          AssetShallow'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "createdAt")+            Prelude.<*> (x Data..:? "id")+            Prelude.<*> (x Data..:? "packagingGroupId")+            Prelude.<*> (x Data..:? "resourceId")+            Prelude.<*> (x Data..:? "sourceArn")+            Prelude.<*> (x Data..:? "sourceRoleArn")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable AssetShallow where+  hashWithSalt _salt AssetShallow' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` packagingGroupId+      `Prelude.hashWithSalt` resourceId+      `Prelude.hashWithSalt` sourceArn+      `Prelude.hashWithSalt` sourceRoleArn+      `Prelude.hashWithSalt` tags++instance Prelude.NFData AssetShallow where+  rnf AssetShallow' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf packagingGroupId+      `Prelude.seq` Prelude.rnf resourceId+      `Prelude.seq` Prelude.rnf sourceArn+      `Prelude.seq` Prelude.rnf sourceRoleArn+      `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/MediaPackageVOD/Types/Authorization.hs view
@@ -0,0 +1,107 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.Authorization+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.Authorization where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | CDN Authorization credentials+--+-- /See:/ 'newAuthorization' smart constructor.+data Authorization = Authorization'+  { -- | The Amazon Resource Name (ARN) for the IAM role that allows MediaPackage+    -- to communicate with AWS Secrets Manager.+    secretsRoleArn :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) for the secret in AWS Secrets Manager+    -- that is used for CDN authorization.+    cdnIdentifierSecret :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Authorization' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'secretsRoleArn', 'authorization_secretsRoleArn' - The Amazon Resource Name (ARN) for the IAM role that allows MediaPackage+-- to communicate with AWS Secrets Manager.+--+-- 'cdnIdentifierSecret', 'authorization_cdnIdentifierSecret' - The Amazon Resource Name (ARN) for the secret in AWS Secrets Manager+-- that is used for CDN authorization.+newAuthorization ::+  -- | 'secretsRoleArn'+  Prelude.Text ->+  -- | 'cdnIdentifierSecret'+  Prelude.Text ->+  Authorization+newAuthorization+  pSecretsRoleArn_+  pCdnIdentifierSecret_ =+    Authorization'+      { secretsRoleArn = pSecretsRoleArn_,+        cdnIdentifierSecret = pCdnIdentifierSecret_+      }++-- | The Amazon Resource Name (ARN) for the IAM role that allows MediaPackage+-- to communicate with AWS Secrets Manager.+authorization_secretsRoleArn :: Lens.Lens' Authorization Prelude.Text+authorization_secretsRoleArn = Lens.lens (\Authorization' {secretsRoleArn} -> secretsRoleArn) (\s@Authorization' {} a -> s {secretsRoleArn = a} :: Authorization)++-- | The Amazon Resource Name (ARN) for the secret in AWS Secrets Manager+-- that is used for CDN authorization.+authorization_cdnIdentifierSecret :: Lens.Lens' Authorization Prelude.Text+authorization_cdnIdentifierSecret = Lens.lens (\Authorization' {cdnIdentifierSecret} -> cdnIdentifierSecret) (\s@Authorization' {} a -> s {cdnIdentifierSecret = a} :: Authorization)++instance Data.FromJSON Authorization where+  parseJSON =+    Data.withObject+      "Authorization"+      ( \x ->+          Authorization'+            Prelude.<$> (x Data..: "secretsRoleArn")+            Prelude.<*> (x Data..: "cdnIdentifierSecret")+      )++instance Prelude.Hashable Authorization where+  hashWithSalt _salt Authorization' {..} =+    _salt+      `Prelude.hashWithSalt` secretsRoleArn+      `Prelude.hashWithSalt` cdnIdentifierSecret++instance Prelude.NFData Authorization where+  rnf Authorization' {..} =+    Prelude.rnf secretsRoleArn+      `Prelude.seq` Prelude.rnf cdnIdentifierSecret++instance Data.ToJSON Authorization where+  toJSON Authorization' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("secretsRoleArn" Data..= secretsRoleArn),+            Prelude.Just+              ("cdnIdentifierSecret" Data..= cdnIdentifierSecret)+          ]+      )
+ gen/Amazonka/MediaPackageVOD/Types/CmafEncryption.hs view
@@ -0,0 +1,107 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.CmafEncryption+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.CmafEncryption where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types.SpekeKeyProvider+import qualified Amazonka.Prelude as Prelude++-- | A CMAF encryption configuration.+--+-- /See:/ 'newCmafEncryption' smart constructor.+data CmafEncryption = CmafEncryption'+  { -- | An optional 128-bit, 16-byte hex value represented by a 32-character+    -- string, used in conjunction with the key for encrypting blocks. If you+    -- don\'t specify a value, then MediaPackage creates the constant+    -- initialization vector (IV).+    constantInitializationVector :: Prelude.Maybe Prelude.Text,+    spekeKeyProvider :: SpekeKeyProvider+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CmafEncryption' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'constantInitializationVector', 'cmafEncryption_constantInitializationVector' - An optional 128-bit, 16-byte hex value represented by a 32-character+-- string, used in conjunction with the key for encrypting blocks. If you+-- don\'t specify a value, then MediaPackage creates the constant+-- initialization vector (IV).+--+-- 'spekeKeyProvider', 'cmafEncryption_spekeKeyProvider' - Undocumented member.+newCmafEncryption ::+  -- | 'spekeKeyProvider'+  SpekeKeyProvider ->+  CmafEncryption+newCmafEncryption pSpekeKeyProvider_ =+  CmafEncryption'+    { constantInitializationVector =+        Prelude.Nothing,+      spekeKeyProvider = pSpekeKeyProvider_+    }++-- | An optional 128-bit, 16-byte hex value represented by a 32-character+-- string, used in conjunction with the key for encrypting blocks. If you+-- don\'t specify a value, then MediaPackage creates the constant+-- initialization vector (IV).+cmafEncryption_constantInitializationVector :: Lens.Lens' CmafEncryption (Prelude.Maybe Prelude.Text)+cmafEncryption_constantInitializationVector = Lens.lens (\CmafEncryption' {constantInitializationVector} -> constantInitializationVector) (\s@CmafEncryption' {} a -> s {constantInitializationVector = a} :: CmafEncryption)++-- | Undocumented member.+cmafEncryption_spekeKeyProvider :: Lens.Lens' CmafEncryption SpekeKeyProvider+cmafEncryption_spekeKeyProvider = Lens.lens (\CmafEncryption' {spekeKeyProvider} -> spekeKeyProvider) (\s@CmafEncryption' {} a -> s {spekeKeyProvider = a} :: CmafEncryption)++instance Data.FromJSON CmafEncryption where+  parseJSON =+    Data.withObject+      "CmafEncryption"+      ( \x ->+          CmafEncryption'+            Prelude.<$> (x Data..:? "constantInitializationVector")+            Prelude.<*> (x Data..: "spekeKeyProvider")+      )++instance Prelude.Hashable CmafEncryption where+  hashWithSalt _salt CmafEncryption' {..} =+    _salt+      `Prelude.hashWithSalt` constantInitializationVector+      `Prelude.hashWithSalt` spekeKeyProvider++instance Prelude.NFData CmafEncryption where+  rnf CmafEncryption' {..} =+    Prelude.rnf constantInitializationVector+      `Prelude.seq` Prelude.rnf spekeKeyProvider++instance Data.ToJSON CmafEncryption where+  toJSON CmafEncryption' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("constantInitializationVector" Data..=)+              Prelude.<$> constantInitializationVector,+            Prelude.Just+              ("spekeKeyProvider" Data..= spekeKeyProvider)+          ]+      )
+ gen/Amazonka/MediaPackageVOD/Types/CmafPackage.hs view
@@ -0,0 +1,138 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.CmafPackage+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.CmafPackage where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types.CmafEncryption+import Amazonka.MediaPackageVOD.Types.HlsManifest+import qualified Amazonka.Prelude as Prelude++-- | A CMAF packaging configuration.+--+-- /See:/ 'newCmafPackage' smart constructor.+data CmafPackage = CmafPackage'+  { encryption :: Prelude.Maybe CmafEncryption,+    -- | When includeEncoderConfigurationInSegments is set to true, MediaPackage+    -- places your encoder\'s Sequence Parameter Set (SPS), Picture Parameter+    -- Set (PPS), and Video Parameter Set (VPS) metadata in every video segment+    -- instead of in the init fragment. This lets you use different+    -- SPS\/PPS\/VPS settings for your assets during content playback.+    includeEncoderConfigurationInSegments :: Prelude.Maybe Prelude.Bool,+    -- | Duration (in seconds) of each fragment. Actual fragments will be rounded+    -- to the nearest multiple of the source fragment duration.+    segmentDurationSeconds :: Prelude.Maybe Prelude.Int,+    -- | A list of HLS manifest configurations.+    hlsManifests :: [HlsManifest]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CmafPackage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'encryption', 'cmafPackage_encryption' - Undocumented member.+--+-- 'includeEncoderConfigurationInSegments', 'cmafPackage_includeEncoderConfigurationInSegments' - When includeEncoderConfigurationInSegments is set to true, MediaPackage+-- places your encoder\'s Sequence Parameter Set (SPS), Picture Parameter+-- Set (PPS), and Video Parameter Set (VPS) metadata in every video segment+-- instead of in the init fragment. This lets you use different+-- SPS\/PPS\/VPS settings for your assets during content playback.+--+-- 'segmentDurationSeconds', 'cmafPackage_segmentDurationSeconds' - Duration (in seconds) of each fragment. Actual fragments will be rounded+-- to the nearest multiple of the source fragment duration.+--+-- 'hlsManifests', 'cmafPackage_hlsManifests' - A list of HLS manifest configurations.+newCmafPackage ::+  CmafPackage+newCmafPackage =+  CmafPackage'+    { encryption = Prelude.Nothing,+      includeEncoderConfigurationInSegments =+        Prelude.Nothing,+      segmentDurationSeconds = Prelude.Nothing,+      hlsManifests = Prelude.mempty+    }++-- | Undocumented member.+cmafPackage_encryption :: Lens.Lens' CmafPackage (Prelude.Maybe CmafEncryption)+cmafPackage_encryption = Lens.lens (\CmafPackage' {encryption} -> encryption) (\s@CmafPackage' {} a -> s {encryption = a} :: CmafPackage)++-- | When includeEncoderConfigurationInSegments is set to true, MediaPackage+-- places your encoder\'s Sequence Parameter Set (SPS), Picture Parameter+-- Set (PPS), and Video Parameter Set (VPS) metadata in every video segment+-- instead of in the init fragment. This lets you use different+-- SPS\/PPS\/VPS settings for your assets during content playback.+cmafPackage_includeEncoderConfigurationInSegments :: Lens.Lens' CmafPackage (Prelude.Maybe Prelude.Bool)+cmafPackage_includeEncoderConfigurationInSegments = Lens.lens (\CmafPackage' {includeEncoderConfigurationInSegments} -> includeEncoderConfigurationInSegments) (\s@CmafPackage' {} a -> s {includeEncoderConfigurationInSegments = a} :: CmafPackage)++-- | Duration (in seconds) of each fragment. Actual fragments will be rounded+-- to the nearest multiple of the source fragment duration.+cmafPackage_segmentDurationSeconds :: Lens.Lens' CmafPackage (Prelude.Maybe Prelude.Int)+cmafPackage_segmentDurationSeconds = Lens.lens (\CmafPackage' {segmentDurationSeconds} -> segmentDurationSeconds) (\s@CmafPackage' {} a -> s {segmentDurationSeconds = a} :: CmafPackage)++-- | A list of HLS manifest configurations.+cmafPackage_hlsManifests :: Lens.Lens' CmafPackage [HlsManifest]+cmafPackage_hlsManifests = Lens.lens (\CmafPackage' {hlsManifests} -> hlsManifests) (\s@CmafPackage' {} a -> s {hlsManifests = a} :: CmafPackage) Prelude.. Lens.coerced++instance Data.FromJSON CmafPackage where+  parseJSON =+    Data.withObject+      "CmafPackage"+      ( \x ->+          CmafPackage'+            Prelude.<$> (x Data..:? "encryption")+            Prelude.<*> (x Data..:? "includeEncoderConfigurationInSegments")+            Prelude.<*> (x Data..:? "segmentDurationSeconds")+            Prelude.<*> (x Data..:? "hlsManifests" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable CmafPackage where+  hashWithSalt _salt CmafPackage' {..} =+    _salt+      `Prelude.hashWithSalt` encryption+      `Prelude.hashWithSalt` includeEncoderConfigurationInSegments+      `Prelude.hashWithSalt` segmentDurationSeconds+      `Prelude.hashWithSalt` hlsManifests++instance Prelude.NFData CmafPackage where+  rnf CmafPackage' {..} =+    Prelude.rnf encryption+      `Prelude.seq` Prelude.rnf includeEncoderConfigurationInSegments+      `Prelude.seq` Prelude.rnf segmentDurationSeconds+      `Prelude.seq` Prelude.rnf hlsManifests++instance Data.ToJSON CmafPackage where+  toJSON CmafPackage' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("encryption" Data..=) Prelude.<$> encryption,+            ("includeEncoderConfigurationInSegments" Data..=)+              Prelude.<$> includeEncoderConfigurationInSegments,+            ("segmentDurationSeconds" Data..=)+              Prelude.<$> segmentDurationSeconds,+            Prelude.Just ("hlsManifests" Data..= hlsManifests)+          ]+      )
+ gen/Amazonka/MediaPackageVOD/Types/DashEncryption.hs view
@@ -0,0 +1,83 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.DashEncryption+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.DashEncryption where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types.SpekeKeyProvider+import qualified Amazonka.Prelude as Prelude++-- | A Dynamic Adaptive Streaming over HTTP (DASH) encryption configuration.+--+-- /See:/ 'newDashEncryption' smart constructor.+data DashEncryption = DashEncryption'+  { spekeKeyProvider :: SpekeKeyProvider+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DashEncryption' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'spekeKeyProvider', 'dashEncryption_spekeKeyProvider' - Undocumented member.+newDashEncryption ::+  -- | 'spekeKeyProvider'+  SpekeKeyProvider ->+  DashEncryption+newDashEncryption pSpekeKeyProvider_ =+  DashEncryption'+    { spekeKeyProvider =+        pSpekeKeyProvider_+    }++-- | Undocumented member.+dashEncryption_spekeKeyProvider :: Lens.Lens' DashEncryption SpekeKeyProvider+dashEncryption_spekeKeyProvider = Lens.lens (\DashEncryption' {spekeKeyProvider} -> spekeKeyProvider) (\s@DashEncryption' {} a -> s {spekeKeyProvider = a} :: DashEncryption)++instance Data.FromJSON DashEncryption where+  parseJSON =+    Data.withObject+      "DashEncryption"+      ( \x ->+          DashEncryption'+            Prelude.<$> (x Data..: "spekeKeyProvider")+      )++instance Prelude.Hashable DashEncryption where+  hashWithSalt _salt DashEncryption' {..} =+    _salt `Prelude.hashWithSalt` spekeKeyProvider++instance Prelude.NFData DashEncryption where+  rnf DashEncryption' {..} =+    Prelude.rnf spekeKeyProvider++instance Data.ToJSON DashEncryption where+  toJSON DashEncryption' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("spekeKeyProvider" Data..= spekeKeyProvider)+          ]+      )
+ gen/Amazonka/MediaPackageVOD/Types/DashManifest.hs view
@@ -0,0 +1,188 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.DashManifest+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.DashManifest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types.ManifestLayout+import Amazonka.MediaPackageVOD.Types.Profile+import Amazonka.MediaPackageVOD.Types.ScteMarkersSource+import Amazonka.MediaPackageVOD.Types.StreamSelection+import qualified Amazonka.Prelude as Prelude++-- | A DASH manifest configuration.+--+-- /See:/ 'newDashManifest' smart constructor.+data DashManifest = DashManifest'+  { -- | Determines the position of some tags in the Media Presentation+    -- Description (MPD). When set to FULL, elements like SegmentTemplate and+    -- ContentProtection are included in each Representation. When set to+    -- COMPACT, duplicate elements are combined and presented at the+    -- AdaptationSet level.+    manifestLayout :: Prelude.Maybe ManifestLayout,+    -- | An optional string to include in the name of the manifest.+    manifestName :: Prelude.Maybe Prelude.Text,+    -- | Minimum duration (in seconds) that a player will buffer media before+    -- starting the presentation.+    minBufferTimeSeconds :: Prelude.Maybe Prelude.Int,+    -- | The Dynamic Adaptive Streaming over HTTP (DASH) profile type. When set+    -- to \"HBBTV_1_5\", HbbTV 1.5 compliant output is enabled.+    profile :: Prelude.Maybe Profile,+    -- | The source of scte markers used. When set to SEGMENTS, the scte markers+    -- are sourced from the segments of the ingested content. When set to+    -- MANIFEST, the scte markers are sourced from the manifest of the ingested+    -- content. The MANIFEST value is compatible with source HLS playlists+    -- using the SCTE-35 Enhanced syntax (#EXT-OATCLS-SCTE35 tags). SCTE-35+    -- Elemental and SCTE-35 Daterange syntaxes are not supported with this+    -- option.+    scteMarkersSource :: Prelude.Maybe ScteMarkersSource,+    streamSelection :: Prelude.Maybe StreamSelection+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DashManifest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'manifestLayout', 'dashManifest_manifestLayout' - Determines the position of some tags in the Media Presentation+-- Description (MPD). When set to FULL, elements like SegmentTemplate and+-- ContentProtection are included in each Representation. When set to+-- COMPACT, duplicate elements are combined and presented at the+-- AdaptationSet level.+--+-- 'manifestName', 'dashManifest_manifestName' - An optional string to include in the name of the manifest.+--+-- 'minBufferTimeSeconds', 'dashManifest_minBufferTimeSeconds' - Minimum duration (in seconds) that a player will buffer media before+-- starting the presentation.+--+-- 'profile', 'dashManifest_profile' - The Dynamic Adaptive Streaming over HTTP (DASH) profile type. When set+-- to \"HBBTV_1_5\", HbbTV 1.5 compliant output is enabled.+--+-- 'scteMarkersSource', 'dashManifest_scteMarkersSource' - The source of scte markers used. When set to SEGMENTS, the scte markers+-- are sourced from the segments of the ingested content. When set to+-- MANIFEST, the scte markers are sourced from the manifest of the ingested+-- content. The MANIFEST value is compatible with source HLS playlists+-- using the SCTE-35 Enhanced syntax (#EXT-OATCLS-SCTE35 tags). SCTE-35+-- Elemental and SCTE-35 Daterange syntaxes are not supported with this+-- option.+--+-- 'streamSelection', 'dashManifest_streamSelection' - Undocumented member.+newDashManifest ::+  DashManifest+newDashManifest =+  DashManifest'+    { manifestLayout = Prelude.Nothing,+      manifestName = Prelude.Nothing,+      minBufferTimeSeconds = Prelude.Nothing,+      profile = Prelude.Nothing,+      scteMarkersSource = Prelude.Nothing,+      streamSelection = Prelude.Nothing+    }++-- | Determines the position of some tags in the Media Presentation+-- Description (MPD). When set to FULL, elements like SegmentTemplate and+-- ContentProtection are included in each Representation. When set to+-- COMPACT, duplicate elements are combined and presented at the+-- AdaptationSet level.+dashManifest_manifestLayout :: Lens.Lens' DashManifest (Prelude.Maybe ManifestLayout)+dashManifest_manifestLayout = Lens.lens (\DashManifest' {manifestLayout} -> manifestLayout) (\s@DashManifest' {} a -> s {manifestLayout = a} :: DashManifest)++-- | An optional string to include in the name of the manifest.+dashManifest_manifestName :: Lens.Lens' DashManifest (Prelude.Maybe Prelude.Text)+dashManifest_manifestName = Lens.lens (\DashManifest' {manifestName} -> manifestName) (\s@DashManifest' {} a -> s {manifestName = a} :: DashManifest)++-- | Minimum duration (in seconds) that a player will buffer media before+-- starting the presentation.+dashManifest_minBufferTimeSeconds :: Lens.Lens' DashManifest (Prelude.Maybe Prelude.Int)+dashManifest_minBufferTimeSeconds = Lens.lens (\DashManifest' {minBufferTimeSeconds} -> minBufferTimeSeconds) (\s@DashManifest' {} a -> s {minBufferTimeSeconds = a} :: DashManifest)++-- | The Dynamic Adaptive Streaming over HTTP (DASH) profile type. When set+-- to \"HBBTV_1_5\", HbbTV 1.5 compliant output is enabled.+dashManifest_profile :: Lens.Lens' DashManifest (Prelude.Maybe Profile)+dashManifest_profile = Lens.lens (\DashManifest' {profile} -> profile) (\s@DashManifest' {} a -> s {profile = a} :: DashManifest)++-- | The source of scte markers used. When set to SEGMENTS, the scte markers+-- are sourced from the segments of the ingested content. When set to+-- MANIFEST, the scte markers are sourced from the manifest of the ingested+-- content. The MANIFEST value is compatible with source HLS playlists+-- using the SCTE-35 Enhanced syntax (#EXT-OATCLS-SCTE35 tags). SCTE-35+-- Elemental and SCTE-35 Daterange syntaxes are not supported with this+-- option.+dashManifest_scteMarkersSource :: Lens.Lens' DashManifest (Prelude.Maybe ScteMarkersSource)+dashManifest_scteMarkersSource = Lens.lens (\DashManifest' {scteMarkersSource} -> scteMarkersSource) (\s@DashManifest' {} a -> s {scteMarkersSource = a} :: DashManifest)++-- | Undocumented member.+dashManifest_streamSelection :: Lens.Lens' DashManifest (Prelude.Maybe StreamSelection)+dashManifest_streamSelection = Lens.lens (\DashManifest' {streamSelection} -> streamSelection) (\s@DashManifest' {} a -> s {streamSelection = a} :: DashManifest)++instance Data.FromJSON DashManifest where+  parseJSON =+    Data.withObject+      "DashManifest"+      ( \x ->+          DashManifest'+            Prelude.<$> (x Data..:? "manifestLayout")+            Prelude.<*> (x Data..:? "manifestName")+            Prelude.<*> (x Data..:? "minBufferTimeSeconds")+            Prelude.<*> (x Data..:? "profile")+            Prelude.<*> (x Data..:? "scteMarkersSource")+            Prelude.<*> (x Data..:? "streamSelection")+      )++instance Prelude.Hashable DashManifest where+  hashWithSalt _salt DashManifest' {..} =+    _salt+      `Prelude.hashWithSalt` manifestLayout+      `Prelude.hashWithSalt` manifestName+      `Prelude.hashWithSalt` minBufferTimeSeconds+      `Prelude.hashWithSalt` profile+      `Prelude.hashWithSalt` scteMarkersSource+      `Prelude.hashWithSalt` streamSelection++instance Prelude.NFData DashManifest where+  rnf DashManifest' {..} =+    Prelude.rnf manifestLayout+      `Prelude.seq` Prelude.rnf manifestName+      `Prelude.seq` Prelude.rnf minBufferTimeSeconds+      `Prelude.seq` Prelude.rnf profile+      `Prelude.seq` Prelude.rnf scteMarkersSource+      `Prelude.seq` Prelude.rnf streamSelection++instance Data.ToJSON DashManifest where+  toJSON DashManifest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("manifestLayout" Data..=)+              Prelude.<$> manifestLayout,+            ("manifestName" Data..=) Prelude.<$> manifestName,+            ("minBufferTimeSeconds" Data..=)+              Prelude.<$> minBufferTimeSeconds,+            ("profile" Data..=) Prelude.<$> profile,+            ("scteMarkersSource" Data..=)+              Prelude.<$> scteMarkersSource,+            ("streamSelection" Data..=)+              Prelude.<$> streamSelection+          ]+      )
+ gen/Amazonka/MediaPackageVOD/Types/DashPackage.hs view
@@ -0,0 +1,213 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.DashPackage+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.DashPackage where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types.DashEncryption+import Amazonka.MediaPackageVOD.Types.DashManifest+import Amazonka.MediaPackageVOD.Types.PeriodTriggersElement+import Amazonka.MediaPackageVOD.Types.SegmentTemplateFormat+import qualified Amazonka.Prelude as Prelude++-- | A Dynamic Adaptive Streaming over HTTP (DASH) packaging configuration.+--+-- /See:/ 'newDashPackage' smart constructor.+data DashPackage = DashPackage'+  { encryption :: Prelude.Maybe DashEncryption,+    -- | When includeEncoderConfigurationInSegments is set to true, MediaPackage+    -- places your encoder\'s Sequence Parameter Set (SPS), Picture Parameter+    -- Set (PPS), and Video Parameter Set (VPS) metadata in every video segment+    -- instead of in the init fragment. This lets you use different+    -- SPS\/PPS\/VPS settings for your assets during content playback.+    includeEncoderConfigurationInSegments :: Prelude.Maybe Prelude.Bool,+    -- | When enabled, an I-Frame only stream will be included in the output.+    includeIframeOnlyStream :: Prelude.Maybe Prelude.Bool,+    -- | A list of triggers that controls when the outgoing Dynamic Adaptive+    -- Streaming over HTTP (DASH) Media Presentation Description (MPD) will be+    -- partitioned into multiple periods. If empty, the content will not be+    -- partitioned into more than one period. If the list contains \"ADS\", new+    -- periods will be created where the Asset contains SCTE-35 ad markers.+    periodTriggers :: Prelude.Maybe [PeriodTriggersElement],+    -- | Duration (in seconds) of each segment. Actual segments will be rounded+    -- to the nearest multiple of the source segment duration.+    segmentDurationSeconds :: Prelude.Maybe Prelude.Int,+    -- | Determines the type of SegmentTemplate included in the Media+    -- Presentation Description (MPD). When set to NUMBER_WITH_TIMELINE, a full+    -- timeline is presented in each SegmentTemplate, with $Number$ media URLs.+    -- When set to TIME_WITH_TIMELINE, a full timeline is presented in each+    -- SegmentTemplate, with $Time$ media URLs. When set to+    -- NUMBER_WITH_DURATION, only a duration is included in each+    -- SegmentTemplate, with $Number$ media URLs.+    segmentTemplateFormat :: Prelude.Maybe SegmentTemplateFormat,+    -- | A list of DASH manifest configurations.+    dashManifests :: [DashManifest]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DashPackage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'encryption', 'dashPackage_encryption' - Undocumented member.+--+-- 'includeEncoderConfigurationInSegments', 'dashPackage_includeEncoderConfigurationInSegments' - When includeEncoderConfigurationInSegments is set to true, MediaPackage+-- places your encoder\'s Sequence Parameter Set (SPS), Picture Parameter+-- Set (PPS), and Video Parameter Set (VPS) metadata in every video segment+-- instead of in the init fragment. This lets you use different+-- SPS\/PPS\/VPS settings for your assets during content playback.+--+-- 'includeIframeOnlyStream', 'dashPackage_includeIframeOnlyStream' - When enabled, an I-Frame only stream will be included in the output.+--+-- 'periodTriggers', 'dashPackage_periodTriggers' - A list of triggers that controls when the outgoing Dynamic Adaptive+-- Streaming over HTTP (DASH) Media Presentation Description (MPD) will be+-- partitioned into multiple periods. If empty, the content will not be+-- partitioned into more than one period. If the list contains \"ADS\", new+-- periods will be created where the Asset contains SCTE-35 ad markers.+--+-- 'segmentDurationSeconds', 'dashPackage_segmentDurationSeconds' - Duration (in seconds) of each segment. Actual segments will be rounded+-- to the nearest multiple of the source segment duration.+--+-- 'segmentTemplateFormat', 'dashPackage_segmentTemplateFormat' - Determines the type of SegmentTemplate included in the Media+-- Presentation Description (MPD). When set to NUMBER_WITH_TIMELINE, a full+-- timeline is presented in each SegmentTemplate, with $Number$ media URLs.+-- When set to TIME_WITH_TIMELINE, a full timeline is presented in each+-- SegmentTemplate, with $Time$ media URLs. When set to+-- NUMBER_WITH_DURATION, only a duration is included in each+-- SegmentTemplate, with $Number$ media URLs.+--+-- 'dashManifests', 'dashPackage_dashManifests' - A list of DASH manifest configurations.+newDashPackage ::+  DashPackage+newDashPackage =+  DashPackage'+    { encryption = Prelude.Nothing,+      includeEncoderConfigurationInSegments =+        Prelude.Nothing,+      includeIframeOnlyStream = Prelude.Nothing,+      periodTriggers = Prelude.Nothing,+      segmentDurationSeconds = Prelude.Nothing,+      segmentTemplateFormat = Prelude.Nothing,+      dashManifests = Prelude.mempty+    }++-- | Undocumented member.+dashPackage_encryption :: Lens.Lens' DashPackage (Prelude.Maybe DashEncryption)+dashPackage_encryption = Lens.lens (\DashPackage' {encryption} -> encryption) (\s@DashPackage' {} a -> s {encryption = a} :: DashPackage)++-- | When includeEncoderConfigurationInSegments is set to true, MediaPackage+-- places your encoder\'s Sequence Parameter Set (SPS), Picture Parameter+-- Set (PPS), and Video Parameter Set (VPS) metadata in every video segment+-- instead of in the init fragment. This lets you use different+-- SPS\/PPS\/VPS settings for your assets during content playback.+dashPackage_includeEncoderConfigurationInSegments :: Lens.Lens' DashPackage (Prelude.Maybe Prelude.Bool)+dashPackage_includeEncoderConfigurationInSegments = Lens.lens (\DashPackage' {includeEncoderConfigurationInSegments} -> includeEncoderConfigurationInSegments) (\s@DashPackage' {} a -> s {includeEncoderConfigurationInSegments = a} :: DashPackage)++-- | When enabled, an I-Frame only stream will be included in the output.+dashPackage_includeIframeOnlyStream :: Lens.Lens' DashPackage (Prelude.Maybe Prelude.Bool)+dashPackage_includeIframeOnlyStream = Lens.lens (\DashPackage' {includeIframeOnlyStream} -> includeIframeOnlyStream) (\s@DashPackage' {} a -> s {includeIframeOnlyStream = a} :: DashPackage)++-- | A list of triggers that controls when the outgoing Dynamic Adaptive+-- Streaming over HTTP (DASH) Media Presentation Description (MPD) will be+-- partitioned into multiple periods. If empty, the content will not be+-- partitioned into more than one period. If the list contains \"ADS\", new+-- periods will be created where the Asset contains SCTE-35 ad markers.+dashPackage_periodTriggers :: Lens.Lens' DashPackage (Prelude.Maybe [PeriodTriggersElement])+dashPackage_periodTriggers = Lens.lens (\DashPackage' {periodTriggers} -> periodTriggers) (\s@DashPackage' {} a -> s {periodTriggers = a} :: DashPackage) Prelude.. Lens.mapping Lens.coerced++-- | Duration (in seconds) of each segment. Actual segments will be rounded+-- to the nearest multiple of the source segment duration.+dashPackage_segmentDurationSeconds :: Lens.Lens' DashPackage (Prelude.Maybe Prelude.Int)+dashPackage_segmentDurationSeconds = Lens.lens (\DashPackage' {segmentDurationSeconds} -> segmentDurationSeconds) (\s@DashPackage' {} a -> s {segmentDurationSeconds = a} :: DashPackage)++-- | Determines the type of SegmentTemplate included in the Media+-- Presentation Description (MPD). When set to NUMBER_WITH_TIMELINE, a full+-- timeline is presented in each SegmentTemplate, with $Number$ media URLs.+-- When set to TIME_WITH_TIMELINE, a full timeline is presented in each+-- SegmentTemplate, with $Time$ media URLs. When set to+-- NUMBER_WITH_DURATION, only a duration is included in each+-- SegmentTemplate, with $Number$ media URLs.+dashPackage_segmentTemplateFormat :: Lens.Lens' DashPackage (Prelude.Maybe SegmentTemplateFormat)+dashPackage_segmentTemplateFormat = Lens.lens (\DashPackage' {segmentTemplateFormat} -> segmentTemplateFormat) (\s@DashPackage' {} a -> s {segmentTemplateFormat = a} :: DashPackage)++-- | A list of DASH manifest configurations.+dashPackage_dashManifests :: Lens.Lens' DashPackage [DashManifest]+dashPackage_dashManifests = Lens.lens (\DashPackage' {dashManifests} -> dashManifests) (\s@DashPackage' {} a -> s {dashManifests = a} :: DashPackage) Prelude.. Lens.coerced++instance Data.FromJSON DashPackage where+  parseJSON =+    Data.withObject+      "DashPackage"+      ( \x ->+          DashPackage'+            Prelude.<$> (x Data..:? "encryption")+            Prelude.<*> (x Data..:? "includeEncoderConfigurationInSegments")+            Prelude.<*> (x Data..:? "includeIframeOnlyStream")+            Prelude.<*> (x Data..:? "periodTriggers" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "segmentDurationSeconds")+            Prelude.<*> (x Data..:? "segmentTemplateFormat")+            Prelude.<*> (x Data..:? "dashManifests" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable DashPackage where+  hashWithSalt _salt DashPackage' {..} =+    _salt+      `Prelude.hashWithSalt` encryption+      `Prelude.hashWithSalt` includeEncoderConfigurationInSegments+      `Prelude.hashWithSalt` includeIframeOnlyStream+      `Prelude.hashWithSalt` periodTriggers+      `Prelude.hashWithSalt` segmentDurationSeconds+      `Prelude.hashWithSalt` segmentTemplateFormat+      `Prelude.hashWithSalt` dashManifests++instance Prelude.NFData DashPackage where+  rnf DashPackage' {..} =+    Prelude.rnf encryption+      `Prelude.seq` Prelude.rnf includeEncoderConfigurationInSegments+      `Prelude.seq` Prelude.rnf includeIframeOnlyStream+      `Prelude.seq` Prelude.rnf periodTriggers+      `Prelude.seq` Prelude.rnf segmentDurationSeconds+      `Prelude.seq` Prelude.rnf segmentTemplateFormat+      `Prelude.seq` Prelude.rnf dashManifests++instance Data.ToJSON DashPackage where+  toJSON DashPackage' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("encryption" Data..=) Prelude.<$> encryption,+            ("includeEncoderConfigurationInSegments" Data..=)+              Prelude.<$> includeEncoderConfigurationInSegments,+            ("includeIframeOnlyStream" Data..=)+              Prelude.<$> includeIframeOnlyStream,+            ("periodTriggers" Data..=)+              Prelude.<$> periodTriggers,+            ("segmentDurationSeconds" Data..=)+              Prelude.<$> segmentDurationSeconds,+            ("segmentTemplateFormat" Data..=)+              Prelude.<$> segmentTemplateFormat,+            Prelude.Just+              ("dashManifests" Data..= dashManifests)+          ]+      )
+ gen/Amazonka/MediaPackageVOD/Types/EgressAccessLogs.hs view
@@ -0,0 +1,75 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.EgressAccessLogs+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.EgressAccessLogs where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Configure egress access logging.+--+-- /See:/ 'newEgressAccessLogs' smart constructor.+data EgressAccessLogs = EgressAccessLogs'+  { -- | Customize the log group name.+    logGroupName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EgressAccessLogs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'logGroupName', 'egressAccessLogs_logGroupName' - Customize the log group name.+newEgressAccessLogs ::+  EgressAccessLogs+newEgressAccessLogs =+  EgressAccessLogs' {logGroupName = Prelude.Nothing}++-- | Customize the log group name.+egressAccessLogs_logGroupName :: Lens.Lens' EgressAccessLogs (Prelude.Maybe Prelude.Text)+egressAccessLogs_logGroupName = Lens.lens (\EgressAccessLogs' {logGroupName} -> logGroupName) (\s@EgressAccessLogs' {} a -> s {logGroupName = a} :: EgressAccessLogs)++instance Data.FromJSON EgressAccessLogs where+  parseJSON =+    Data.withObject+      "EgressAccessLogs"+      ( \x ->+          EgressAccessLogs'+            Prelude.<$> (x Data..:? "logGroupName")+      )++instance Prelude.Hashable EgressAccessLogs where+  hashWithSalt _salt EgressAccessLogs' {..} =+    _salt `Prelude.hashWithSalt` logGroupName++instance Prelude.NFData EgressAccessLogs where+  rnf EgressAccessLogs' {..} = Prelude.rnf logGroupName++instance Data.ToJSON EgressAccessLogs where+  toJSON EgressAccessLogs' {..} =+    Data.object+      ( Prelude.catMaybes+          [("logGroupName" Data..=) Prelude.<$> logGroupName]+      )
+ gen/Amazonka/MediaPackageVOD/Types/EgressEndpoint.hs view
@@ -0,0 +1,107 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.EgressEndpoint+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.EgressEndpoint where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The endpoint URL used to access an Asset using one+-- PackagingConfiguration.+--+-- /See:/ 'newEgressEndpoint' smart constructor.+data EgressEndpoint = EgressEndpoint'+  { -- | The ID of the PackagingConfiguration being applied to the Asset.+    packagingConfigurationId :: Prelude.Maybe Prelude.Text,+    -- | The current processing status of the asset used for the packaging+    -- configuration. The status can be either QUEUED, PROCESSING, PLAYABLE, or+    -- FAILED. Status information won\'t be available for most assets ingested+    -- before 2021-09-30.+    status :: Prelude.Maybe Prelude.Text,+    -- | The URL of the parent manifest for the repackaged Asset.+    url :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EgressEndpoint' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'packagingConfigurationId', 'egressEndpoint_packagingConfigurationId' - The ID of the PackagingConfiguration being applied to the Asset.+--+-- 'status', 'egressEndpoint_status' - The current processing status of the asset used for the packaging+-- configuration. The status can be either QUEUED, PROCESSING, PLAYABLE, or+-- FAILED. Status information won\'t be available for most assets ingested+-- before 2021-09-30.+--+-- 'url', 'egressEndpoint_url' - The URL of the parent manifest for the repackaged Asset.+newEgressEndpoint ::+  EgressEndpoint+newEgressEndpoint =+  EgressEndpoint'+    { packagingConfigurationId =+        Prelude.Nothing,+      status = Prelude.Nothing,+      url = Prelude.Nothing+    }++-- | The ID of the PackagingConfiguration being applied to the Asset.+egressEndpoint_packagingConfigurationId :: Lens.Lens' EgressEndpoint (Prelude.Maybe Prelude.Text)+egressEndpoint_packagingConfigurationId = Lens.lens (\EgressEndpoint' {packagingConfigurationId} -> packagingConfigurationId) (\s@EgressEndpoint' {} a -> s {packagingConfigurationId = a} :: EgressEndpoint)++-- | The current processing status of the asset used for the packaging+-- configuration. The status can be either QUEUED, PROCESSING, PLAYABLE, or+-- FAILED. Status information won\'t be available for most assets ingested+-- before 2021-09-30.+egressEndpoint_status :: Lens.Lens' EgressEndpoint (Prelude.Maybe Prelude.Text)+egressEndpoint_status = Lens.lens (\EgressEndpoint' {status} -> status) (\s@EgressEndpoint' {} a -> s {status = a} :: EgressEndpoint)++-- | The URL of the parent manifest for the repackaged Asset.+egressEndpoint_url :: Lens.Lens' EgressEndpoint (Prelude.Maybe Prelude.Text)+egressEndpoint_url = Lens.lens (\EgressEndpoint' {url} -> url) (\s@EgressEndpoint' {} a -> s {url = a} :: EgressEndpoint)++instance Data.FromJSON EgressEndpoint where+  parseJSON =+    Data.withObject+      "EgressEndpoint"+      ( \x ->+          EgressEndpoint'+            Prelude.<$> (x Data..:? "packagingConfigurationId")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..:? "url")+      )++instance Prelude.Hashable EgressEndpoint where+  hashWithSalt _salt EgressEndpoint' {..} =+    _salt+      `Prelude.hashWithSalt` packagingConfigurationId+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` url++instance Prelude.NFData EgressEndpoint where+  rnf EgressEndpoint' {..} =+    Prelude.rnf packagingConfigurationId+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf url
+ gen/Amazonka/MediaPackageVOD/Types/EncryptionContractConfiguration.hs view
@@ -0,0 +1,124 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.EncryptionContractConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.EncryptionContractConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types.PresetSpeke20Audio+import Amazonka.MediaPackageVOD.Types.PresetSpeke20Video+import qualified Amazonka.Prelude as Prelude++-- | Use encryptionContractConfiguration to configure one or more content+-- encryption keys for your endpoints that use SPEKE 2.0. The encryption+-- contract defines which content keys are used to encrypt the audio and+-- video tracks in your stream. To configure the encryption contract,+-- specify which audio and video encryption presets to use. Note the+-- following considerations when using encryptionContractConfiguration:+-- encryptionContractConfiguration can be used for DASH endpoints that use+-- SPEKE 2.0. SPEKE 2.0 relies on the CPIX 2.3 specification. You must+-- disable key rotation for this endpoint by setting+-- keyRotationIntervalSeconds to 0.+--+-- /See:/ 'newEncryptionContractConfiguration' smart constructor.+data EncryptionContractConfiguration = EncryptionContractConfiguration'+  { -- | A collection of audio encryption presets.+    presetSpeke20Audio :: PresetSpeke20Audio,+    -- | A collection of video encryption presets.+    presetSpeke20Video :: PresetSpeke20Video+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EncryptionContractConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'presetSpeke20Audio', 'encryptionContractConfiguration_presetSpeke20Audio' - A collection of audio encryption presets.+--+-- 'presetSpeke20Video', 'encryptionContractConfiguration_presetSpeke20Video' - A collection of video encryption presets.+newEncryptionContractConfiguration ::+  -- | 'presetSpeke20Audio'+  PresetSpeke20Audio ->+  -- | 'presetSpeke20Video'+  PresetSpeke20Video ->+  EncryptionContractConfiguration+newEncryptionContractConfiguration+  pPresetSpeke20Audio_+  pPresetSpeke20Video_ =+    EncryptionContractConfiguration'+      { presetSpeke20Audio =+          pPresetSpeke20Audio_,+        presetSpeke20Video = pPresetSpeke20Video_+      }++-- | A collection of audio encryption presets.+encryptionContractConfiguration_presetSpeke20Audio :: Lens.Lens' EncryptionContractConfiguration PresetSpeke20Audio+encryptionContractConfiguration_presetSpeke20Audio = Lens.lens (\EncryptionContractConfiguration' {presetSpeke20Audio} -> presetSpeke20Audio) (\s@EncryptionContractConfiguration' {} a -> s {presetSpeke20Audio = a} :: EncryptionContractConfiguration)++-- | A collection of video encryption presets.+encryptionContractConfiguration_presetSpeke20Video :: Lens.Lens' EncryptionContractConfiguration PresetSpeke20Video+encryptionContractConfiguration_presetSpeke20Video = Lens.lens (\EncryptionContractConfiguration' {presetSpeke20Video} -> presetSpeke20Video) (\s@EncryptionContractConfiguration' {} a -> s {presetSpeke20Video = a} :: EncryptionContractConfiguration)++instance+  Data.FromJSON+    EncryptionContractConfiguration+  where+  parseJSON =+    Data.withObject+      "EncryptionContractConfiguration"+      ( \x ->+          EncryptionContractConfiguration'+            Prelude.<$> (x Data..: "presetSpeke20Audio")+            Prelude.<*> (x Data..: "presetSpeke20Video")+      )++instance+  Prelude.Hashable+    EncryptionContractConfiguration+  where+  hashWithSalt+    _salt+    EncryptionContractConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` presetSpeke20Audio+        `Prelude.hashWithSalt` presetSpeke20Video++instance+  Prelude.NFData+    EncryptionContractConfiguration+  where+  rnf EncryptionContractConfiguration' {..} =+    Prelude.rnf presetSpeke20Audio+      `Prelude.seq` Prelude.rnf presetSpeke20Video++instance Data.ToJSON EncryptionContractConfiguration where+  toJSON EncryptionContractConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("presetSpeke20Audio" Data..= presetSpeke20Audio),+            Prelude.Just+              ("presetSpeke20Video" Data..= presetSpeke20Video)+          ]+      )
+ gen/Amazonka/MediaPackageVOD/Types/EncryptionMethod.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.EncryptionMethod+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.EncryptionMethod+  ( EncryptionMethod+      ( ..,+        EncryptionMethod_AES_128,+        EncryptionMethod_SAMPLE_AES+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EncryptionMethod = EncryptionMethod'+  { fromEncryptionMethod ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern EncryptionMethod_AES_128 :: EncryptionMethod+pattern EncryptionMethod_AES_128 = EncryptionMethod' "AES_128"++pattern EncryptionMethod_SAMPLE_AES :: EncryptionMethod+pattern EncryptionMethod_SAMPLE_AES = EncryptionMethod' "SAMPLE_AES"++{-# COMPLETE+  EncryptionMethod_AES_128,+  EncryptionMethod_SAMPLE_AES,+  EncryptionMethod'+  #-}
+ gen/Amazonka/MediaPackageVOD/Types/HlsEncryption.hs view
@@ -0,0 +1,116 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.HlsEncryption+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.HlsEncryption where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types.EncryptionMethod+import Amazonka.MediaPackageVOD.Types.SpekeKeyProvider+import qualified Amazonka.Prelude as Prelude++-- | An HTTP Live Streaming (HLS) encryption configuration.+--+-- /See:/ 'newHlsEncryption' smart constructor.+data HlsEncryption = HlsEncryption'+  { -- | A constant initialization vector for encryption (optional). When not+    -- specified the initialization vector will be periodically rotated.+    constantInitializationVector :: Prelude.Maybe Prelude.Text,+    -- | The encryption method to use.+    encryptionMethod :: Prelude.Maybe EncryptionMethod,+    spekeKeyProvider :: SpekeKeyProvider+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HlsEncryption' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'constantInitializationVector', 'hlsEncryption_constantInitializationVector' - A constant initialization vector for encryption (optional). When not+-- specified the initialization vector will be periodically rotated.+--+-- 'encryptionMethod', 'hlsEncryption_encryptionMethod' - The encryption method to use.+--+-- 'spekeKeyProvider', 'hlsEncryption_spekeKeyProvider' - Undocumented member.+newHlsEncryption ::+  -- | 'spekeKeyProvider'+  SpekeKeyProvider ->+  HlsEncryption+newHlsEncryption pSpekeKeyProvider_ =+  HlsEncryption'+    { constantInitializationVector =+        Prelude.Nothing,+      encryptionMethod = Prelude.Nothing,+      spekeKeyProvider = pSpekeKeyProvider_+    }++-- | A constant initialization vector for encryption (optional). When not+-- specified the initialization vector will be periodically rotated.+hlsEncryption_constantInitializationVector :: Lens.Lens' HlsEncryption (Prelude.Maybe Prelude.Text)+hlsEncryption_constantInitializationVector = Lens.lens (\HlsEncryption' {constantInitializationVector} -> constantInitializationVector) (\s@HlsEncryption' {} a -> s {constantInitializationVector = a} :: HlsEncryption)++-- | The encryption method to use.+hlsEncryption_encryptionMethod :: Lens.Lens' HlsEncryption (Prelude.Maybe EncryptionMethod)+hlsEncryption_encryptionMethod = Lens.lens (\HlsEncryption' {encryptionMethod} -> encryptionMethod) (\s@HlsEncryption' {} a -> s {encryptionMethod = a} :: HlsEncryption)++-- | Undocumented member.+hlsEncryption_spekeKeyProvider :: Lens.Lens' HlsEncryption SpekeKeyProvider+hlsEncryption_spekeKeyProvider = Lens.lens (\HlsEncryption' {spekeKeyProvider} -> spekeKeyProvider) (\s@HlsEncryption' {} a -> s {spekeKeyProvider = a} :: HlsEncryption)++instance Data.FromJSON HlsEncryption where+  parseJSON =+    Data.withObject+      "HlsEncryption"+      ( \x ->+          HlsEncryption'+            Prelude.<$> (x Data..:? "constantInitializationVector")+            Prelude.<*> (x Data..:? "encryptionMethod")+            Prelude.<*> (x Data..: "spekeKeyProvider")+      )++instance Prelude.Hashable HlsEncryption where+  hashWithSalt _salt HlsEncryption' {..} =+    _salt+      `Prelude.hashWithSalt` constantInitializationVector+      `Prelude.hashWithSalt` encryptionMethod+      `Prelude.hashWithSalt` spekeKeyProvider++instance Prelude.NFData HlsEncryption where+  rnf HlsEncryption' {..} =+    Prelude.rnf constantInitializationVector+      `Prelude.seq` Prelude.rnf encryptionMethod+      `Prelude.seq` Prelude.rnf spekeKeyProvider++instance Data.ToJSON HlsEncryption where+  toJSON HlsEncryption' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("constantInitializationVector" Data..=)+              Prelude.<$> constantInitializationVector,+            ("encryptionMethod" Data..=)+              Prelude.<$> encryptionMethod,+            Prelude.Just+              ("spekeKeyProvider" Data..= spekeKeyProvider)+          ]+      )
+ gen/Amazonka/MediaPackageVOD/Types/HlsManifest.hs view
@@ -0,0 +1,188 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.HlsManifest+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.HlsManifest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types.AdMarkers+import Amazonka.MediaPackageVOD.Types.StreamSelection+import qualified Amazonka.Prelude as Prelude++-- | An HTTP Live Streaming (HLS) manifest configuration.+--+-- /See:/ 'newHlsManifest' smart constructor.+data HlsManifest = HlsManifest'+  { -- | This setting controls how ad markers are included in the packaged+    -- OriginEndpoint. \"NONE\" will omit all SCTE-35 ad markers from the+    -- output. \"PASSTHROUGH\" causes the manifest to contain a copy of the+    -- SCTE-35 ad markers (comments) taken directly from the input HTTP Live+    -- Streaming (HLS) manifest. \"SCTE35_ENHANCED\" generates ad markers and+    -- blackout tags based on SCTE-35 messages in the input source.+    adMarkers :: Prelude.Maybe AdMarkers,+    -- | When enabled, an I-Frame only stream will be included in the output.+    includeIframeOnlyStream :: Prelude.Maybe Prelude.Bool,+    -- | An optional string to include in the name of the manifest.+    manifestName :: Prelude.Maybe Prelude.Text,+    -- | The interval (in seconds) between each EXT-X-PROGRAM-DATE-TIME tag+    -- inserted into manifests. Additionally, when an interval is specified+    -- ID3Timed Metadata messages will be generated every 5 seconds using the+    -- ingest time of the content. If the interval is not specified, or set to+    -- 0, then no EXT-X-PROGRAM-DATE-TIME tags will be inserted into manifests+    -- and no ID3Timed Metadata messages will be generated. Note that+    -- irrespective of this parameter, if any ID3 Timed Metadata is found in+    -- HTTP Live Streaming (HLS) input, it will be passed through to HLS+    -- output.+    programDateTimeIntervalSeconds :: Prelude.Maybe Prelude.Int,+    -- | When enabled, the EXT-X-KEY tag will be repeated in output manifests.+    repeatExtXKey :: Prelude.Maybe Prelude.Bool,+    streamSelection :: Prelude.Maybe StreamSelection+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HlsManifest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'adMarkers', 'hlsManifest_adMarkers' - This setting controls how ad markers are included in the packaged+-- OriginEndpoint. \"NONE\" will omit all SCTE-35 ad markers from the+-- output. \"PASSTHROUGH\" causes the manifest to contain a copy of the+-- SCTE-35 ad markers (comments) taken directly from the input HTTP Live+-- Streaming (HLS) manifest. \"SCTE35_ENHANCED\" generates ad markers and+-- blackout tags based on SCTE-35 messages in the input source.+--+-- 'includeIframeOnlyStream', 'hlsManifest_includeIframeOnlyStream' - When enabled, an I-Frame only stream will be included in the output.+--+-- 'manifestName', 'hlsManifest_manifestName' - An optional string to include in the name of the manifest.+--+-- 'programDateTimeIntervalSeconds', 'hlsManifest_programDateTimeIntervalSeconds' - The interval (in seconds) between each EXT-X-PROGRAM-DATE-TIME tag+-- inserted into manifests. Additionally, when an interval is specified+-- ID3Timed Metadata messages will be generated every 5 seconds using the+-- ingest time of the content. If the interval is not specified, or set to+-- 0, then no EXT-X-PROGRAM-DATE-TIME tags will be inserted into manifests+-- and no ID3Timed Metadata messages will be generated. Note that+-- irrespective of this parameter, if any ID3 Timed Metadata is found in+-- HTTP Live Streaming (HLS) input, it will be passed through to HLS+-- output.+--+-- 'repeatExtXKey', 'hlsManifest_repeatExtXKey' - When enabled, the EXT-X-KEY tag will be repeated in output manifests.+--+-- 'streamSelection', 'hlsManifest_streamSelection' - Undocumented member.+newHlsManifest ::+  HlsManifest+newHlsManifest =+  HlsManifest'+    { adMarkers = Prelude.Nothing,+      includeIframeOnlyStream = Prelude.Nothing,+      manifestName = Prelude.Nothing,+      programDateTimeIntervalSeconds = Prelude.Nothing,+      repeatExtXKey = Prelude.Nothing,+      streamSelection = Prelude.Nothing+    }++-- | This setting controls how ad markers are included in the packaged+-- OriginEndpoint. \"NONE\" will omit all SCTE-35 ad markers from the+-- output. \"PASSTHROUGH\" causes the manifest to contain a copy of the+-- SCTE-35 ad markers (comments) taken directly from the input HTTP Live+-- Streaming (HLS) manifest. \"SCTE35_ENHANCED\" generates ad markers and+-- blackout tags based on SCTE-35 messages in the input source.+hlsManifest_adMarkers :: Lens.Lens' HlsManifest (Prelude.Maybe AdMarkers)+hlsManifest_adMarkers = Lens.lens (\HlsManifest' {adMarkers} -> adMarkers) (\s@HlsManifest' {} a -> s {adMarkers = a} :: HlsManifest)++-- | When enabled, an I-Frame only stream will be included in the output.+hlsManifest_includeIframeOnlyStream :: Lens.Lens' HlsManifest (Prelude.Maybe Prelude.Bool)+hlsManifest_includeIframeOnlyStream = Lens.lens (\HlsManifest' {includeIframeOnlyStream} -> includeIframeOnlyStream) (\s@HlsManifest' {} a -> s {includeIframeOnlyStream = a} :: HlsManifest)++-- | An optional string to include in the name of the manifest.+hlsManifest_manifestName :: Lens.Lens' HlsManifest (Prelude.Maybe Prelude.Text)+hlsManifest_manifestName = Lens.lens (\HlsManifest' {manifestName} -> manifestName) (\s@HlsManifest' {} a -> s {manifestName = a} :: HlsManifest)++-- | The interval (in seconds) between each EXT-X-PROGRAM-DATE-TIME tag+-- inserted into manifests. Additionally, when an interval is specified+-- ID3Timed Metadata messages will be generated every 5 seconds using the+-- ingest time of the content. If the interval is not specified, or set to+-- 0, then no EXT-X-PROGRAM-DATE-TIME tags will be inserted into manifests+-- and no ID3Timed Metadata messages will be generated. Note that+-- irrespective of this parameter, if any ID3 Timed Metadata is found in+-- HTTP Live Streaming (HLS) input, it will be passed through to HLS+-- output.+hlsManifest_programDateTimeIntervalSeconds :: Lens.Lens' HlsManifest (Prelude.Maybe Prelude.Int)+hlsManifest_programDateTimeIntervalSeconds = Lens.lens (\HlsManifest' {programDateTimeIntervalSeconds} -> programDateTimeIntervalSeconds) (\s@HlsManifest' {} a -> s {programDateTimeIntervalSeconds = a} :: HlsManifest)++-- | When enabled, the EXT-X-KEY tag will be repeated in output manifests.+hlsManifest_repeatExtXKey :: Lens.Lens' HlsManifest (Prelude.Maybe Prelude.Bool)+hlsManifest_repeatExtXKey = Lens.lens (\HlsManifest' {repeatExtXKey} -> repeatExtXKey) (\s@HlsManifest' {} a -> s {repeatExtXKey = a} :: HlsManifest)++-- | Undocumented member.+hlsManifest_streamSelection :: Lens.Lens' HlsManifest (Prelude.Maybe StreamSelection)+hlsManifest_streamSelection = Lens.lens (\HlsManifest' {streamSelection} -> streamSelection) (\s@HlsManifest' {} a -> s {streamSelection = a} :: HlsManifest)++instance Data.FromJSON HlsManifest where+  parseJSON =+    Data.withObject+      "HlsManifest"+      ( \x ->+          HlsManifest'+            Prelude.<$> (x Data..:? "adMarkers")+            Prelude.<*> (x Data..:? "includeIframeOnlyStream")+            Prelude.<*> (x Data..:? "manifestName")+            Prelude.<*> (x Data..:? "programDateTimeIntervalSeconds")+            Prelude.<*> (x Data..:? "repeatExtXKey")+            Prelude.<*> (x Data..:? "streamSelection")+      )++instance Prelude.Hashable HlsManifest where+  hashWithSalt _salt HlsManifest' {..} =+    _salt+      `Prelude.hashWithSalt` adMarkers+      `Prelude.hashWithSalt` includeIframeOnlyStream+      `Prelude.hashWithSalt` manifestName+      `Prelude.hashWithSalt` programDateTimeIntervalSeconds+      `Prelude.hashWithSalt` repeatExtXKey+      `Prelude.hashWithSalt` streamSelection++instance Prelude.NFData HlsManifest where+  rnf HlsManifest' {..} =+    Prelude.rnf adMarkers+      `Prelude.seq` Prelude.rnf includeIframeOnlyStream+      `Prelude.seq` Prelude.rnf manifestName+      `Prelude.seq` Prelude.rnf programDateTimeIntervalSeconds+      `Prelude.seq` Prelude.rnf repeatExtXKey+      `Prelude.seq` Prelude.rnf streamSelection++instance Data.ToJSON HlsManifest where+  toJSON HlsManifest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("adMarkers" Data..=) Prelude.<$> adMarkers,+            ("includeIframeOnlyStream" Data..=)+              Prelude.<$> includeIframeOnlyStream,+            ("manifestName" Data..=) Prelude.<$> manifestName,+            ("programDateTimeIntervalSeconds" Data..=)+              Prelude.<$> programDateTimeIntervalSeconds,+            ("repeatExtXKey" Data..=) Prelude.<$> repeatExtXKey,+            ("streamSelection" Data..=)+              Prelude.<$> streamSelection+          ]+      )
+ gen/Amazonka/MediaPackageVOD/Types/HlsPackage.hs view
@@ -0,0 +1,145 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.HlsPackage+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.HlsPackage where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types.HlsEncryption+import Amazonka.MediaPackageVOD.Types.HlsManifest+import qualified Amazonka.Prelude as Prelude++-- | An HTTP Live Streaming (HLS) packaging configuration.+--+-- /See:/ 'newHlsPackage' smart constructor.+data HlsPackage = HlsPackage'+  { encryption :: Prelude.Maybe HlsEncryption,+    -- | When enabled, MediaPackage passes through digital video broadcasting+    -- (DVB) subtitles into the output.+    includeDvbSubtitles :: Prelude.Maybe Prelude.Bool,+    -- | Duration (in seconds) of each fragment. Actual fragments will be rounded+    -- to the nearest multiple of the source fragment duration.+    segmentDurationSeconds :: Prelude.Maybe Prelude.Int,+    -- | When enabled, audio streams will be placed in rendition groups in the+    -- output.+    useAudioRenditionGroup :: Prelude.Maybe Prelude.Bool,+    -- | A list of HLS manifest configurations.+    hlsManifests :: [HlsManifest]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HlsPackage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'encryption', 'hlsPackage_encryption' - Undocumented member.+--+-- 'includeDvbSubtitles', 'hlsPackage_includeDvbSubtitles' - When enabled, MediaPackage passes through digital video broadcasting+-- (DVB) subtitles into the output.+--+-- 'segmentDurationSeconds', 'hlsPackage_segmentDurationSeconds' - Duration (in seconds) of each fragment. Actual fragments will be rounded+-- to the nearest multiple of the source fragment duration.+--+-- 'useAudioRenditionGroup', 'hlsPackage_useAudioRenditionGroup' - When enabled, audio streams will be placed in rendition groups in the+-- output.+--+-- 'hlsManifests', 'hlsPackage_hlsManifests' - A list of HLS manifest configurations.+newHlsPackage ::+  HlsPackage+newHlsPackage =+  HlsPackage'+    { encryption = Prelude.Nothing,+      includeDvbSubtitles = Prelude.Nothing,+      segmentDurationSeconds = Prelude.Nothing,+      useAudioRenditionGroup = Prelude.Nothing,+      hlsManifests = Prelude.mempty+    }++-- | Undocumented member.+hlsPackage_encryption :: Lens.Lens' HlsPackage (Prelude.Maybe HlsEncryption)+hlsPackage_encryption = Lens.lens (\HlsPackage' {encryption} -> encryption) (\s@HlsPackage' {} a -> s {encryption = a} :: HlsPackage)++-- | When enabled, MediaPackage passes through digital video broadcasting+-- (DVB) subtitles into the output.+hlsPackage_includeDvbSubtitles :: Lens.Lens' HlsPackage (Prelude.Maybe Prelude.Bool)+hlsPackage_includeDvbSubtitles = Lens.lens (\HlsPackage' {includeDvbSubtitles} -> includeDvbSubtitles) (\s@HlsPackage' {} a -> s {includeDvbSubtitles = a} :: HlsPackage)++-- | Duration (in seconds) of each fragment. Actual fragments will be rounded+-- to the nearest multiple of the source fragment duration.+hlsPackage_segmentDurationSeconds :: Lens.Lens' HlsPackage (Prelude.Maybe Prelude.Int)+hlsPackage_segmentDurationSeconds = Lens.lens (\HlsPackage' {segmentDurationSeconds} -> segmentDurationSeconds) (\s@HlsPackage' {} a -> s {segmentDurationSeconds = a} :: HlsPackage)++-- | When enabled, audio streams will be placed in rendition groups in the+-- output.+hlsPackage_useAudioRenditionGroup :: Lens.Lens' HlsPackage (Prelude.Maybe Prelude.Bool)+hlsPackage_useAudioRenditionGroup = Lens.lens (\HlsPackage' {useAudioRenditionGroup} -> useAudioRenditionGroup) (\s@HlsPackage' {} a -> s {useAudioRenditionGroup = a} :: HlsPackage)++-- | A list of HLS manifest configurations.+hlsPackage_hlsManifests :: Lens.Lens' HlsPackage [HlsManifest]+hlsPackage_hlsManifests = Lens.lens (\HlsPackage' {hlsManifests} -> hlsManifests) (\s@HlsPackage' {} a -> s {hlsManifests = a} :: HlsPackage) Prelude.. Lens.coerced++instance Data.FromJSON HlsPackage where+  parseJSON =+    Data.withObject+      "HlsPackage"+      ( \x ->+          HlsPackage'+            Prelude.<$> (x Data..:? "encryption")+            Prelude.<*> (x Data..:? "includeDvbSubtitles")+            Prelude.<*> (x Data..:? "segmentDurationSeconds")+            Prelude.<*> (x Data..:? "useAudioRenditionGroup")+            Prelude.<*> (x Data..:? "hlsManifests" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable HlsPackage where+  hashWithSalt _salt HlsPackage' {..} =+    _salt+      `Prelude.hashWithSalt` encryption+      `Prelude.hashWithSalt` includeDvbSubtitles+      `Prelude.hashWithSalt` segmentDurationSeconds+      `Prelude.hashWithSalt` useAudioRenditionGroup+      `Prelude.hashWithSalt` hlsManifests++instance Prelude.NFData HlsPackage where+  rnf HlsPackage' {..} =+    Prelude.rnf encryption+      `Prelude.seq` Prelude.rnf includeDvbSubtitles+      `Prelude.seq` Prelude.rnf segmentDurationSeconds+      `Prelude.seq` Prelude.rnf useAudioRenditionGroup+      `Prelude.seq` Prelude.rnf hlsManifests++instance Data.ToJSON HlsPackage where+  toJSON HlsPackage' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("encryption" Data..=) Prelude.<$> encryption,+            ("includeDvbSubtitles" Data..=)+              Prelude.<$> includeDvbSubtitles,+            ("segmentDurationSeconds" Data..=)+              Prelude.<$> segmentDurationSeconds,+            ("useAudioRenditionGroup" Data..=)+              Prelude.<$> useAudioRenditionGroup,+            Prelude.Just ("hlsManifests" Data..= hlsManifests)+          ]+      )
+ gen/Amazonka/MediaPackageVOD/Types/ManifestLayout.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.ManifestLayout+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.ManifestLayout+  ( ManifestLayout+      ( ..,+        ManifestLayout_COMPACT,+        ManifestLayout_FULL+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ManifestLayout = ManifestLayout'+  { fromManifestLayout ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern ManifestLayout_COMPACT :: ManifestLayout+pattern ManifestLayout_COMPACT = ManifestLayout' "COMPACT"++pattern ManifestLayout_FULL :: ManifestLayout+pattern ManifestLayout_FULL = ManifestLayout' "FULL"++{-# COMPLETE+  ManifestLayout_COMPACT,+  ManifestLayout_FULL,+  ManifestLayout'+  #-}
+ gen/Amazonka/MediaPackageVOD/Types/MssEncryption.hs view
@@ -0,0 +1,82 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.MssEncryption+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.MssEncryption where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types.SpekeKeyProvider+import qualified Amazonka.Prelude as Prelude++-- | A Microsoft Smooth Streaming (MSS) encryption configuration.+--+-- /See:/ 'newMssEncryption' smart constructor.+data MssEncryption = MssEncryption'+  { spekeKeyProvider :: SpekeKeyProvider+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MssEncryption' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'spekeKeyProvider', 'mssEncryption_spekeKeyProvider' - Undocumented member.+newMssEncryption ::+  -- | 'spekeKeyProvider'+  SpekeKeyProvider ->+  MssEncryption+newMssEncryption pSpekeKeyProvider_ =+  MssEncryption'+    { spekeKeyProvider =+        pSpekeKeyProvider_+    }++-- | Undocumented member.+mssEncryption_spekeKeyProvider :: Lens.Lens' MssEncryption SpekeKeyProvider+mssEncryption_spekeKeyProvider = Lens.lens (\MssEncryption' {spekeKeyProvider} -> spekeKeyProvider) (\s@MssEncryption' {} a -> s {spekeKeyProvider = a} :: MssEncryption)++instance Data.FromJSON MssEncryption where+  parseJSON =+    Data.withObject+      "MssEncryption"+      ( \x ->+          MssEncryption'+            Prelude.<$> (x Data..: "spekeKeyProvider")+      )++instance Prelude.Hashable MssEncryption where+  hashWithSalt _salt MssEncryption' {..} =+    _salt `Prelude.hashWithSalt` spekeKeyProvider++instance Prelude.NFData MssEncryption where+  rnf MssEncryption' {..} = Prelude.rnf spekeKeyProvider++instance Data.ToJSON MssEncryption where+  toJSON MssEncryption' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("spekeKeyProvider" Data..= spekeKeyProvider)+          ]+      )
+ gen/Amazonka/MediaPackageVOD/Types/MssManifest.hs view
@@ -0,0 +1,94 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.MssManifest+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.MssManifest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types.StreamSelection+import qualified Amazonka.Prelude as Prelude++-- | A Microsoft Smooth Streaming (MSS) manifest configuration.+--+-- /See:/ 'newMssManifest' smart constructor.+data MssManifest = MssManifest'+  { -- | An optional string to include in the name of the manifest.+    manifestName :: Prelude.Maybe Prelude.Text,+    streamSelection :: Prelude.Maybe StreamSelection+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MssManifest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'manifestName', 'mssManifest_manifestName' - An optional string to include in the name of the manifest.+--+-- 'streamSelection', 'mssManifest_streamSelection' - Undocumented member.+newMssManifest ::+  MssManifest+newMssManifest =+  MssManifest'+    { manifestName = Prelude.Nothing,+      streamSelection = Prelude.Nothing+    }++-- | An optional string to include in the name of the manifest.+mssManifest_manifestName :: Lens.Lens' MssManifest (Prelude.Maybe Prelude.Text)+mssManifest_manifestName = Lens.lens (\MssManifest' {manifestName} -> manifestName) (\s@MssManifest' {} a -> s {manifestName = a} :: MssManifest)++-- | Undocumented member.+mssManifest_streamSelection :: Lens.Lens' MssManifest (Prelude.Maybe StreamSelection)+mssManifest_streamSelection = Lens.lens (\MssManifest' {streamSelection} -> streamSelection) (\s@MssManifest' {} a -> s {streamSelection = a} :: MssManifest)++instance Data.FromJSON MssManifest where+  parseJSON =+    Data.withObject+      "MssManifest"+      ( \x ->+          MssManifest'+            Prelude.<$> (x Data..:? "manifestName")+            Prelude.<*> (x Data..:? "streamSelection")+      )++instance Prelude.Hashable MssManifest where+  hashWithSalt _salt MssManifest' {..} =+    _salt+      `Prelude.hashWithSalt` manifestName+      `Prelude.hashWithSalt` streamSelection++instance Prelude.NFData MssManifest where+  rnf MssManifest' {..} =+    Prelude.rnf manifestName+      `Prelude.seq` Prelude.rnf streamSelection++instance Data.ToJSON MssManifest where+  toJSON MssManifest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("manifestName" Data..=) Prelude.<$> manifestName,+            ("streamSelection" Data..=)+              Prelude.<$> streamSelection+          ]+      )
+ gen/Amazonka/MediaPackageVOD/Types/MssPackage.hs view
@@ -0,0 +1,108 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.MssPackage+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.MssPackage where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types.MssEncryption+import Amazonka.MediaPackageVOD.Types.MssManifest+import qualified Amazonka.Prelude as Prelude++-- | A Microsoft Smooth Streaming (MSS) PackagingConfiguration.+--+-- /See:/ 'newMssPackage' smart constructor.+data MssPackage = MssPackage'+  { encryption :: Prelude.Maybe MssEncryption,+    -- | The duration (in seconds) of each segment.+    segmentDurationSeconds :: Prelude.Maybe Prelude.Int,+    -- | A list of MSS manifest configurations.+    mssManifests :: [MssManifest]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MssPackage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'encryption', 'mssPackage_encryption' - Undocumented member.+--+-- 'segmentDurationSeconds', 'mssPackage_segmentDurationSeconds' - The duration (in seconds) of each segment.+--+-- 'mssManifests', 'mssPackage_mssManifests' - A list of MSS manifest configurations.+newMssPackage ::+  MssPackage+newMssPackage =+  MssPackage'+    { encryption = Prelude.Nothing,+      segmentDurationSeconds = Prelude.Nothing,+      mssManifests = Prelude.mempty+    }++-- | Undocumented member.+mssPackage_encryption :: Lens.Lens' MssPackage (Prelude.Maybe MssEncryption)+mssPackage_encryption = Lens.lens (\MssPackage' {encryption} -> encryption) (\s@MssPackage' {} a -> s {encryption = a} :: MssPackage)++-- | The duration (in seconds) of each segment.+mssPackage_segmentDurationSeconds :: Lens.Lens' MssPackage (Prelude.Maybe Prelude.Int)+mssPackage_segmentDurationSeconds = Lens.lens (\MssPackage' {segmentDurationSeconds} -> segmentDurationSeconds) (\s@MssPackage' {} a -> s {segmentDurationSeconds = a} :: MssPackage)++-- | A list of MSS manifest configurations.+mssPackage_mssManifests :: Lens.Lens' MssPackage [MssManifest]+mssPackage_mssManifests = Lens.lens (\MssPackage' {mssManifests} -> mssManifests) (\s@MssPackage' {} a -> s {mssManifests = a} :: MssPackage) Prelude.. Lens.coerced++instance Data.FromJSON MssPackage where+  parseJSON =+    Data.withObject+      "MssPackage"+      ( \x ->+          MssPackage'+            Prelude.<$> (x Data..:? "encryption")+            Prelude.<*> (x Data..:? "segmentDurationSeconds")+            Prelude.<*> (x Data..:? "mssManifests" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable MssPackage where+  hashWithSalt _salt MssPackage' {..} =+    _salt+      `Prelude.hashWithSalt` encryption+      `Prelude.hashWithSalt` segmentDurationSeconds+      `Prelude.hashWithSalt` mssManifests++instance Prelude.NFData MssPackage where+  rnf MssPackage' {..} =+    Prelude.rnf encryption+      `Prelude.seq` Prelude.rnf segmentDurationSeconds+      `Prelude.seq` Prelude.rnf mssManifests++instance Data.ToJSON MssPackage where+  toJSON MssPackage' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("encryption" Data..=) Prelude.<$> encryption,+            ("segmentDurationSeconds" Data..=)+              Prelude.<$> segmentDurationSeconds,+            Prelude.Just ("mssManifests" Data..= mssManifests)+          ]+      )
+ gen/Amazonka/MediaPackageVOD/Types/PackagingConfiguration.hs view
@@ -0,0 +1,155 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.PackagingConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.PackagingConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types.CmafPackage+import Amazonka.MediaPackageVOD.Types.DashPackage+import Amazonka.MediaPackageVOD.Types.HlsPackage+import Amazonka.MediaPackageVOD.Types.MssPackage+import qualified Amazonka.Prelude as Prelude++-- | A MediaPackage VOD PackagingConfiguration resource.+--+-- /See:/ 'newPackagingConfiguration' smart constructor.+data PackagingConfiguration = PackagingConfiguration'+  { -- | The ARN of the PackagingConfiguration.+    arn :: Prelude.Maybe Prelude.Text,+    cmafPackage :: Prelude.Maybe CmafPackage,+    dashPackage :: Prelude.Maybe DashPackage,+    hlsPackage :: Prelude.Maybe HlsPackage,+    -- | The ID of the PackagingConfiguration.+    id :: Prelude.Maybe Prelude.Text,+    mssPackage :: Prelude.Maybe MssPackage,+    -- | The ID of a PackagingGroup.+    packagingGroupId :: Prelude.Maybe Prelude.Text,+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PackagingConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'packagingConfiguration_arn' - The ARN of the PackagingConfiguration.+--+-- 'cmafPackage', 'packagingConfiguration_cmafPackage' - Undocumented member.+--+-- 'dashPackage', 'packagingConfiguration_dashPackage' - Undocumented member.+--+-- 'hlsPackage', 'packagingConfiguration_hlsPackage' - Undocumented member.+--+-- 'id', 'packagingConfiguration_id' - The ID of the PackagingConfiguration.+--+-- 'mssPackage', 'packagingConfiguration_mssPackage' - Undocumented member.+--+-- 'packagingGroupId', 'packagingConfiguration_packagingGroupId' - The ID of a PackagingGroup.+--+-- 'tags', 'packagingConfiguration_tags' - Undocumented member.+newPackagingConfiguration ::+  PackagingConfiguration+newPackagingConfiguration =+  PackagingConfiguration'+    { arn = Prelude.Nothing,+      cmafPackage = Prelude.Nothing,+      dashPackage = Prelude.Nothing,+      hlsPackage = Prelude.Nothing,+      id = Prelude.Nothing,+      mssPackage = Prelude.Nothing,+      packagingGroupId = Prelude.Nothing,+      tags = Prelude.Nothing+    }++-- | The ARN of the PackagingConfiguration.+packagingConfiguration_arn :: Lens.Lens' PackagingConfiguration (Prelude.Maybe Prelude.Text)+packagingConfiguration_arn = Lens.lens (\PackagingConfiguration' {arn} -> arn) (\s@PackagingConfiguration' {} a -> s {arn = a} :: PackagingConfiguration)++-- | Undocumented member.+packagingConfiguration_cmafPackage :: Lens.Lens' PackagingConfiguration (Prelude.Maybe CmafPackage)+packagingConfiguration_cmafPackage = Lens.lens (\PackagingConfiguration' {cmafPackage} -> cmafPackage) (\s@PackagingConfiguration' {} a -> s {cmafPackage = a} :: PackagingConfiguration)++-- | Undocumented member.+packagingConfiguration_dashPackage :: Lens.Lens' PackagingConfiguration (Prelude.Maybe DashPackage)+packagingConfiguration_dashPackage = Lens.lens (\PackagingConfiguration' {dashPackage} -> dashPackage) (\s@PackagingConfiguration' {} a -> s {dashPackage = a} :: PackagingConfiguration)++-- | Undocumented member.+packagingConfiguration_hlsPackage :: Lens.Lens' PackagingConfiguration (Prelude.Maybe HlsPackage)+packagingConfiguration_hlsPackage = Lens.lens (\PackagingConfiguration' {hlsPackage} -> hlsPackage) (\s@PackagingConfiguration' {} a -> s {hlsPackage = a} :: PackagingConfiguration)++-- | The ID of the PackagingConfiguration.+packagingConfiguration_id :: Lens.Lens' PackagingConfiguration (Prelude.Maybe Prelude.Text)+packagingConfiguration_id = Lens.lens (\PackagingConfiguration' {id} -> id) (\s@PackagingConfiguration' {} a -> s {id = a} :: PackagingConfiguration)++-- | Undocumented member.+packagingConfiguration_mssPackage :: Lens.Lens' PackagingConfiguration (Prelude.Maybe MssPackage)+packagingConfiguration_mssPackage = Lens.lens (\PackagingConfiguration' {mssPackage} -> mssPackage) (\s@PackagingConfiguration' {} a -> s {mssPackage = a} :: PackagingConfiguration)++-- | The ID of a PackagingGroup.+packagingConfiguration_packagingGroupId :: Lens.Lens' PackagingConfiguration (Prelude.Maybe Prelude.Text)+packagingConfiguration_packagingGroupId = Lens.lens (\PackagingConfiguration' {packagingGroupId} -> packagingGroupId) (\s@PackagingConfiguration' {} a -> s {packagingGroupId = a} :: PackagingConfiguration)++-- | Undocumented member.+packagingConfiguration_tags :: Lens.Lens' PackagingConfiguration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+packagingConfiguration_tags = Lens.lens (\PackagingConfiguration' {tags} -> tags) (\s@PackagingConfiguration' {} a -> s {tags = a} :: PackagingConfiguration) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON PackagingConfiguration where+  parseJSON =+    Data.withObject+      "PackagingConfiguration"+      ( \x ->+          PackagingConfiguration'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "cmafPackage")+            Prelude.<*> (x Data..:? "dashPackage")+            Prelude.<*> (x Data..:? "hlsPackage")+            Prelude.<*> (x Data..:? "id")+            Prelude.<*> (x Data..:? "mssPackage")+            Prelude.<*> (x Data..:? "packagingGroupId")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable PackagingConfiguration where+  hashWithSalt _salt PackagingConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` cmafPackage+      `Prelude.hashWithSalt` dashPackage+      `Prelude.hashWithSalt` hlsPackage+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` mssPackage+      `Prelude.hashWithSalt` packagingGroupId+      `Prelude.hashWithSalt` tags++instance Prelude.NFData PackagingConfiguration where+  rnf PackagingConfiguration' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf cmafPackage+      `Prelude.seq` Prelude.rnf dashPackage+      `Prelude.seq` Prelude.rnf hlsPackage+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf mssPackage+      `Prelude.seq` Prelude.rnf packagingGroupId+      `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/MediaPackageVOD/Types/PackagingGroup.hs view
@@ -0,0 +1,144 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.PackagingGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.PackagingGroup where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types.Authorization+import Amazonka.MediaPackageVOD.Types.EgressAccessLogs+import qualified Amazonka.Prelude as Prelude++-- | A MediaPackage VOD PackagingGroup resource.+--+-- /See:/ 'newPackagingGroup' smart constructor.+data PackagingGroup = PackagingGroup'+  { -- | The approximate asset count of the PackagingGroup.+    approximateAssetCount :: Prelude.Maybe Prelude.Int,+    -- | The ARN of the PackagingGroup.+    arn :: Prelude.Maybe Prelude.Text,+    authorization :: Prelude.Maybe Authorization,+    -- | The fully qualified domain name for Assets in the PackagingGroup.+    domainName :: Prelude.Maybe Prelude.Text,+    egressAccessLogs :: Prelude.Maybe EgressAccessLogs,+    -- | The ID of the PackagingGroup.+    id :: Prelude.Maybe Prelude.Text,+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PackagingGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'approximateAssetCount', 'packagingGroup_approximateAssetCount' - The approximate asset count of the PackagingGroup.+--+-- 'arn', 'packagingGroup_arn' - The ARN of the PackagingGroup.+--+-- 'authorization', 'packagingGroup_authorization' - Undocumented member.+--+-- 'domainName', 'packagingGroup_domainName' - The fully qualified domain name for Assets in the PackagingGroup.+--+-- 'egressAccessLogs', 'packagingGroup_egressAccessLogs' - Undocumented member.+--+-- 'id', 'packagingGroup_id' - The ID of the PackagingGroup.+--+-- 'tags', 'packagingGroup_tags' - Undocumented member.+newPackagingGroup ::+  PackagingGroup+newPackagingGroup =+  PackagingGroup'+    { approximateAssetCount =+        Prelude.Nothing,+      arn = Prelude.Nothing,+      authorization = Prelude.Nothing,+      domainName = Prelude.Nothing,+      egressAccessLogs = Prelude.Nothing,+      id = Prelude.Nothing,+      tags = Prelude.Nothing+    }++-- | The approximate asset count of the PackagingGroup.+packagingGroup_approximateAssetCount :: Lens.Lens' PackagingGroup (Prelude.Maybe Prelude.Int)+packagingGroup_approximateAssetCount = Lens.lens (\PackagingGroup' {approximateAssetCount} -> approximateAssetCount) (\s@PackagingGroup' {} a -> s {approximateAssetCount = a} :: PackagingGroup)++-- | The ARN of the PackagingGroup.+packagingGroup_arn :: Lens.Lens' PackagingGroup (Prelude.Maybe Prelude.Text)+packagingGroup_arn = Lens.lens (\PackagingGroup' {arn} -> arn) (\s@PackagingGroup' {} a -> s {arn = a} :: PackagingGroup)++-- | Undocumented member.+packagingGroup_authorization :: Lens.Lens' PackagingGroup (Prelude.Maybe Authorization)+packagingGroup_authorization = Lens.lens (\PackagingGroup' {authorization} -> authorization) (\s@PackagingGroup' {} a -> s {authorization = a} :: PackagingGroup)++-- | The fully qualified domain name for Assets in the PackagingGroup.+packagingGroup_domainName :: Lens.Lens' PackagingGroup (Prelude.Maybe Prelude.Text)+packagingGroup_domainName = Lens.lens (\PackagingGroup' {domainName} -> domainName) (\s@PackagingGroup' {} a -> s {domainName = a} :: PackagingGroup)++-- | Undocumented member.+packagingGroup_egressAccessLogs :: Lens.Lens' PackagingGroup (Prelude.Maybe EgressAccessLogs)+packagingGroup_egressAccessLogs = Lens.lens (\PackagingGroup' {egressAccessLogs} -> egressAccessLogs) (\s@PackagingGroup' {} a -> s {egressAccessLogs = a} :: PackagingGroup)++-- | The ID of the PackagingGroup.+packagingGroup_id :: Lens.Lens' PackagingGroup (Prelude.Maybe Prelude.Text)+packagingGroup_id = Lens.lens (\PackagingGroup' {id} -> id) (\s@PackagingGroup' {} a -> s {id = a} :: PackagingGroup)++-- | Undocumented member.+packagingGroup_tags :: Lens.Lens' PackagingGroup (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+packagingGroup_tags = Lens.lens (\PackagingGroup' {tags} -> tags) (\s@PackagingGroup' {} a -> s {tags = a} :: PackagingGroup) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON PackagingGroup where+  parseJSON =+    Data.withObject+      "PackagingGroup"+      ( \x ->+          PackagingGroup'+            Prelude.<$> (x Data..:? "approximateAssetCount")+            Prelude.<*> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "authorization")+            Prelude.<*> (x Data..:? "domainName")+            Prelude.<*> (x Data..:? "egressAccessLogs")+            Prelude.<*> (x Data..:? "id")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable PackagingGroup where+  hashWithSalt _salt PackagingGroup' {..} =+    _salt+      `Prelude.hashWithSalt` approximateAssetCount+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` authorization+      `Prelude.hashWithSalt` domainName+      `Prelude.hashWithSalt` egressAccessLogs+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` tags++instance Prelude.NFData PackagingGroup where+  rnf PackagingGroup' {..} =+    Prelude.rnf approximateAssetCount+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf authorization+      `Prelude.seq` Prelude.rnf domainName+      `Prelude.seq` Prelude.rnf egressAccessLogs+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/MediaPackageVOD/Types/PeriodTriggersElement.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.PeriodTriggersElement+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.PeriodTriggersElement+  ( PeriodTriggersElement+      ( ..,+        PeriodTriggersElement_ADS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PeriodTriggersElement = PeriodTriggersElement'+  { fromPeriodTriggersElement ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern PeriodTriggersElement_ADS :: PeriodTriggersElement+pattern PeriodTriggersElement_ADS = PeriodTriggersElement' "ADS"++{-# COMPLETE+  PeriodTriggersElement_ADS,+  PeriodTriggersElement'+  #-}
+ gen/Amazonka/MediaPackageVOD/Types/PresetSpeke20Audio.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.PresetSpeke20Audio+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.PresetSpeke20Audio+  ( PresetSpeke20Audio+      ( ..,+        PresetSpeke20Audio_PRESET_AUDIO_1,+        PresetSpeke20Audio_PRESET_AUDIO_2,+        PresetSpeke20Audio_PRESET_AUDIO_3,+        PresetSpeke20Audio_SHARED,+        PresetSpeke20Audio_UNENCRYPTED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PresetSpeke20Audio = PresetSpeke20Audio'+  { fromPresetSpeke20Audio ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern PresetSpeke20Audio_PRESET_AUDIO_1 :: PresetSpeke20Audio+pattern PresetSpeke20Audio_PRESET_AUDIO_1 = PresetSpeke20Audio' "PRESET-AUDIO-1"++pattern PresetSpeke20Audio_PRESET_AUDIO_2 :: PresetSpeke20Audio+pattern PresetSpeke20Audio_PRESET_AUDIO_2 = PresetSpeke20Audio' "PRESET-AUDIO-2"++pattern PresetSpeke20Audio_PRESET_AUDIO_3 :: PresetSpeke20Audio+pattern PresetSpeke20Audio_PRESET_AUDIO_3 = PresetSpeke20Audio' "PRESET-AUDIO-3"++pattern PresetSpeke20Audio_SHARED :: PresetSpeke20Audio+pattern PresetSpeke20Audio_SHARED = PresetSpeke20Audio' "SHARED"++pattern PresetSpeke20Audio_UNENCRYPTED :: PresetSpeke20Audio+pattern PresetSpeke20Audio_UNENCRYPTED = PresetSpeke20Audio' "UNENCRYPTED"++{-# COMPLETE+  PresetSpeke20Audio_PRESET_AUDIO_1,+  PresetSpeke20Audio_PRESET_AUDIO_2,+  PresetSpeke20Audio_PRESET_AUDIO_3,+  PresetSpeke20Audio_SHARED,+  PresetSpeke20Audio_UNENCRYPTED,+  PresetSpeke20Audio'+  #-}
+ gen/Amazonka/MediaPackageVOD/Types/PresetSpeke20Video.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.PresetSpeke20Video+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.PresetSpeke20Video+  ( PresetSpeke20Video+      ( ..,+        PresetSpeke20Video_PRESET_VIDEO_1,+        PresetSpeke20Video_PRESET_VIDEO_2,+        PresetSpeke20Video_PRESET_VIDEO_3,+        PresetSpeke20Video_PRESET_VIDEO_4,+        PresetSpeke20Video_PRESET_VIDEO_5,+        PresetSpeke20Video_PRESET_VIDEO_6,+        PresetSpeke20Video_PRESET_VIDEO_7,+        PresetSpeke20Video_PRESET_VIDEO_8,+        PresetSpeke20Video_SHARED,+        PresetSpeke20Video_UNENCRYPTED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PresetSpeke20Video = PresetSpeke20Video'+  { fromPresetSpeke20Video ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern PresetSpeke20Video_PRESET_VIDEO_1 :: PresetSpeke20Video+pattern PresetSpeke20Video_PRESET_VIDEO_1 = PresetSpeke20Video' "PRESET-VIDEO-1"++pattern PresetSpeke20Video_PRESET_VIDEO_2 :: PresetSpeke20Video+pattern PresetSpeke20Video_PRESET_VIDEO_2 = PresetSpeke20Video' "PRESET-VIDEO-2"++pattern PresetSpeke20Video_PRESET_VIDEO_3 :: PresetSpeke20Video+pattern PresetSpeke20Video_PRESET_VIDEO_3 = PresetSpeke20Video' "PRESET-VIDEO-3"++pattern PresetSpeke20Video_PRESET_VIDEO_4 :: PresetSpeke20Video+pattern PresetSpeke20Video_PRESET_VIDEO_4 = PresetSpeke20Video' "PRESET-VIDEO-4"++pattern PresetSpeke20Video_PRESET_VIDEO_5 :: PresetSpeke20Video+pattern PresetSpeke20Video_PRESET_VIDEO_5 = PresetSpeke20Video' "PRESET-VIDEO-5"++pattern PresetSpeke20Video_PRESET_VIDEO_6 :: PresetSpeke20Video+pattern PresetSpeke20Video_PRESET_VIDEO_6 = PresetSpeke20Video' "PRESET-VIDEO-6"++pattern PresetSpeke20Video_PRESET_VIDEO_7 :: PresetSpeke20Video+pattern PresetSpeke20Video_PRESET_VIDEO_7 = PresetSpeke20Video' "PRESET-VIDEO-7"++pattern PresetSpeke20Video_PRESET_VIDEO_8 :: PresetSpeke20Video+pattern PresetSpeke20Video_PRESET_VIDEO_8 = PresetSpeke20Video' "PRESET-VIDEO-8"++pattern PresetSpeke20Video_SHARED :: PresetSpeke20Video+pattern PresetSpeke20Video_SHARED = PresetSpeke20Video' "SHARED"++pattern PresetSpeke20Video_UNENCRYPTED :: PresetSpeke20Video+pattern PresetSpeke20Video_UNENCRYPTED = PresetSpeke20Video' "UNENCRYPTED"++{-# COMPLETE+  PresetSpeke20Video_PRESET_VIDEO_1,+  PresetSpeke20Video_PRESET_VIDEO_2,+  PresetSpeke20Video_PRESET_VIDEO_3,+  PresetSpeke20Video_PRESET_VIDEO_4,+  PresetSpeke20Video_PRESET_VIDEO_5,+  PresetSpeke20Video_PRESET_VIDEO_6,+  PresetSpeke20Video_PRESET_VIDEO_7,+  PresetSpeke20Video_PRESET_VIDEO_8,+  PresetSpeke20Video_SHARED,+  PresetSpeke20Video_UNENCRYPTED,+  PresetSpeke20Video'+  #-}
+ gen/Amazonka/MediaPackageVOD/Types/Profile.hs view
@@ -0,0 +1,68 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.Profile+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.Profile+  ( Profile+      ( ..,+        Profile_HBBTV_1_5,+        Profile_NONE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Profile = Profile' {fromProfile :: Data.Text}+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern Profile_HBBTV_1_5 :: Profile+pattern Profile_HBBTV_1_5 = Profile' "HBBTV_1_5"++pattern Profile_NONE :: Profile+pattern Profile_NONE = Profile' "NONE"++{-# COMPLETE+  Profile_HBBTV_1_5,+  Profile_NONE,+  Profile'+  #-}
+ gen/Amazonka/MediaPackageVOD/Types/ScteMarkersSource.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.ScteMarkersSource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.ScteMarkersSource+  ( ScteMarkersSource+      ( ..,+        ScteMarkersSource_MANIFEST,+        ScteMarkersSource_SEGMENTS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ScteMarkersSource = ScteMarkersSource'+  { fromScteMarkersSource ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern ScteMarkersSource_MANIFEST :: ScteMarkersSource+pattern ScteMarkersSource_MANIFEST = ScteMarkersSource' "MANIFEST"++pattern ScteMarkersSource_SEGMENTS :: ScteMarkersSource+pattern ScteMarkersSource_SEGMENTS = ScteMarkersSource' "SEGMENTS"++{-# COMPLETE+  ScteMarkersSource_MANIFEST,+  ScteMarkersSource_SEGMENTS,+  ScteMarkersSource'+  #-}
+ gen/Amazonka/MediaPackageVOD/Types/SegmentTemplateFormat.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.SegmentTemplateFormat+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.SegmentTemplateFormat+  ( SegmentTemplateFormat+      ( ..,+        SegmentTemplateFormat_NUMBER_WITH_DURATION,+        SegmentTemplateFormat_NUMBER_WITH_TIMELINE,+        SegmentTemplateFormat_TIME_WITH_TIMELINE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SegmentTemplateFormat = SegmentTemplateFormat'+  { fromSegmentTemplateFormat ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern SegmentTemplateFormat_NUMBER_WITH_DURATION :: SegmentTemplateFormat+pattern SegmentTemplateFormat_NUMBER_WITH_DURATION = SegmentTemplateFormat' "NUMBER_WITH_DURATION"++pattern SegmentTemplateFormat_NUMBER_WITH_TIMELINE :: SegmentTemplateFormat+pattern SegmentTemplateFormat_NUMBER_WITH_TIMELINE = SegmentTemplateFormat' "NUMBER_WITH_TIMELINE"++pattern SegmentTemplateFormat_TIME_WITH_TIMELINE :: SegmentTemplateFormat+pattern SegmentTemplateFormat_TIME_WITH_TIMELINE = SegmentTemplateFormat' "TIME_WITH_TIMELINE"++{-# COMPLETE+  SegmentTemplateFormat_NUMBER_WITH_DURATION,+  SegmentTemplateFormat_NUMBER_WITH_TIMELINE,+  SegmentTemplateFormat_TIME_WITH_TIMELINE,+  SegmentTemplateFormat'+  #-}
+ gen/Amazonka/MediaPackageVOD/Types/SpekeKeyProvider.hs view
@@ -0,0 +1,129 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.SpekeKeyProvider+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.SpekeKeyProvider where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types.EncryptionContractConfiguration+import qualified Amazonka.Prelude as Prelude++-- | A configuration for accessing an external Secure Packager and Encoder+-- Key Exchange (SPEKE) service that will provide encryption keys.+--+-- /See:/ 'newSpekeKeyProvider' smart constructor.+data SpekeKeyProvider = SpekeKeyProvider'+  { encryptionContractConfiguration :: Prelude.Maybe EncryptionContractConfiguration,+    -- | The system IDs to include in key requests.+    systemIds :: [Prelude.Text],+    -- | The URL of the external key provider service.+    url :: Prelude.Text,+    -- | An Amazon Resource Name (ARN) of an IAM role that AWS Elemental+    -- MediaPackage will assume when accessing the key provider service.+    roleArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SpekeKeyProvider' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'encryptionContractConfiguration', 'spekeKeyProvider_encryptionContractConfiguration' - Undocumented member.+--+-- 'systemIds', 'spekeKeyProvider_systemIds' - The system IDs to include in key requests.+--+-- 'url', 'spekeKeyProvider_url' - The URL of the external key provider service.+--+-- 'roleArn', 'spekeKeyProvider_roleArn' - An Amazon Resource Name (ARN) of an IAM role that AWS Elemental+-- MediaPackage will assume when accessing the key provider service.+newSpekeKeyProvider ::+  -- | 'url'+  Prelude.Text ->+  -- | 'roleArn'+  Prelude.Text ->+  SpekeKeyProvider+newSpekeKeyProvider pUrl_ pRoleArn_ =+  SpekeKeyProvider'+    { encryptionContractConfiguration =+        Prelude.Nothing,+      systemIds = Prelude.mempty,+      url = pUrl_,+      roleArn = pRoleArn_+    }++-- | Undocumented member.+spekeKeyProvider_encryptionContractConfiguration :: Lens.Lens' SpekeKeyProvider (Prelude.Maybe EncryptionContractConfiguration)+spekeKeyProvider_encryptionContractConfiguration = Lens.lens (\SpekeKeyProvider' {encryptionContractConfiguration} -> encryptionContractConfiguration) (\s@SpekeKeyProvider' {} a -> s {encryptionContractConfiguration = a} :: SpekeKeyProvider)++-- | The system IDs to include in key requests.+spekeKeyProvider_systemIds :: Lens.Lens' SpekeKeyProvider [Prelude.Text]+spekeKeyProvider_systemIds = Lens.lens (\SpekeKeyProvider' {systemIds} -> systemIds) (\s@SpekeKeyProvider' {} a -> s {systemIds = a} :: SpekeKeyProvider) Prelude.. Lens.coerced++-- | The URL of the external key provider service.+spekeKeyProvider_url :: Lens.Lens' SpekeKeyProvider Prelude.Text+spekeKeyProvider_url = Lens.lens (\SpekeKeyProvider' {url} -> url) (\s@SpekeKeyProvider' {} a -> s {url = a} :: SpekeKeyProvider)++-- | An Amazon Resource Name (ARN) of an IAM role that AWS Elemental+-- MediaPackage will assume when accessing the key provider service.+spekeKeyProvider_roleArn :: Lens.Lens' SpekeKeyProvider Prelude.Text+spekeKeyProvider_roleArn = Lens.lens (\SpekeKeyProvider' {roleArn} -> roleArn) (\s@SpekeKeyProvider' {} a -> s {roleArn = a} :: SpekeKeyProvider)++instance Data.FromJSON SpekeKeyProvider where+  parseJSON =+    Data.withObject+      "SpekeKeyProvider"+      ( \x ->+          SpekeKeyProvider'+            Prelude.<$> (x Data..:? "encryptionContractConfiguration")+            Prelude.<*> (x Data..:? "systemIds" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "url")+            Prelude.<*> (x Data..: "roleArn")+      )++instance Prelude.Hashable SpekeKeyProvider where+  hashWithSalt _salt SpekeKeyProvider' {..} =+    _salt+      `Prelude.hashWithSalt` encryptionContractConfiguration+      `Prelude.hashWithSalt` systemIds+      `Prelude.hashWithSalt` url+      `Prelude.hashWithSalt` roleArn++instance Prelude.NFData SpekeKeyProvider where+  rnf SpekeKeyProvider' {..} =+    Prelude.rnf encryptionContractConfiguration+      `Prelude.seq` Prelude.rnf systemIds+      `Prelude.seq` Prelude.rnf url+      `Prelude.seq` Prelude.rnf roleArn++instance Data.ToJSON SpekeKeyProvider where+  toJSON SpekeKeyProvider' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("encryptionContractConfiguration" Data..=)+              Prelude.<$> encryptionContractConfiguration,+            Prelude.Just ("systemIds" Data..= systemIds),+            Prelude.Just ("url" Data..= url),+            Prelude.Just ("roleArn" Data..= roleArn)+          ]+      )
+ gen/Amazonka/MediaPackageVOD/Types/StreamOrder.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.StreamOrder+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.StreamOrder+  ( StreamOrder+      ( ..,+        StreamOrder_ORIGINAL,+        StreamOrder_VIDEO_BITRATE_ASCENDING,+        StreamOrder_VIDEO_BITRATE_DESCENDING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype StreamOrder = StreamOrder'+  { fromStreamOrder ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern StreamOrder_ORIGINAL :: StreamOrder+pattern StreamOrder_ORIGINAL = StreamOrder' "ORIGINAL"++pattern StreamOrder_VIDEO_BITRATE_ASCENDING :: StreamOrder+pattern StreamOrder_VIDEO_BITRATE_ASCENDING = StreamOrder' "VIDEO_BITRATE_ASCENDING"++pattern StreamOrder_VIDEO_BITRATE_DESCENDING :: StreamOrder+pattern StreamOrder_VIDEO_BITRATE_DESCENDING = StreamOrder' "VIDEO_BITRATE_DESCENDING"++{-# COMPLETE+  StreamOrder_ORIGINAL,+  StreamOrder_VIDEO_BITRATE_ASCENDING,+  StreamOrder_VIDEO_BITRATE_DESCENDING,+  StreamOrder'+  #-}
+ gen/Amazonka/MediaPackageVOD/Types/StreamSelection.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Types.StreamSelection+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Types.StreamSelection where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types.StreamOrder+import qualified Amazonka.Prelude as Prelude++-- | A StreamSelection configuration.+--+-- /See:/ 'newStreamSelection' smart constructor.+data StreamSelection = StreamSelection'+  { -- | The maximum video bitrate (bps) to include in output.+    maxVideoBitsPerSecond :: Prelude.Maybe Prelude.Int,+    -- | The minimum video bitrate (bps) to include in output.+    minVideoBitsPerSecond :: Prelude.Maybe Prelude.Int,+    -- | A directive that determines the order of streams in the output.+    streamOrder :: Prelude.Maybe StreamOrder+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StreamSelection' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxVideoBitsPerSecond', 'streamSelection_maxVideoBitsPerSecond' - The maximum video bitrate (bps) to include in output.+--+-- 'minVideoBitsPerSecond', 'streamSelection_minVideoBitsPerSecond' - The minimum video bitrate (bps) to include in output.+--+-- 'streamOrder', 'streamSelection_streamOrder' - A directive that determines the order of streams in the output.+newStreamSelection ::+  StreamSelection+newStreamSelection =+  StreamSelection'+    { maxVideoBitsPerSecond =+        Prelude.Nothing,+      minVideoBitsPerSecond = Prelude.Nothing,+      streamOrder = Prelude.Nothing+    }++-- | The maximum video bitrate (bps) to include in output.+streamSelection_maxVideoBitsPerSecond :: Lens.Lens' StreamSelection (Prelude.Maybe Prelude.Int)+streamSelection_maxVideoBitsPerSecond = Lens.lens (\StreamSelection' {maxVideoBitsPerSecond} -> maxVideoBitsPerSecond) (\s@StreamSelection' {} a -> s {maxVideoBitsPerSecond = a} :: StreamSelection)++-- | The minimum video bitrate (bps) to include in output.+streamSelection_minVideoBitsPerSecond :: Lens.Lens' StreamSelection (Prelude.Maybe Prelude.Int)+streamSelection_minVideoBitsPerSecond = Lens.lens (\StreamSelection' {minVideoBitsPerSecond} -> minVideoBitsPerSecond) (\s@StreamSelection' {} a -> s {minVideoBitsPerSecond = a} :: StreamSelection)++-- | A directive that determines the order of streams in the output.+streamSelection_streamOrder :: Lens.Lens' StreamSelection (Prelude.Maybe StreamOrder)+streamSelection_streamOrder = Lens.lens (\StreamSelection' {streamOrder} -> streamOrder) (\s@StreamSelection' {} a -> s {streamOrder = a} :: StreamSelection)++instance Data.FromJSON StreamSelection where+  parseJSON =+    Data.withObject+      "StreamSelection"+      ( \x ->+          StreamSelection'+            Prelude.<$> (x Data..:? "maxVideoBitsPerSecond")+            Prelude.<*> (x Data..:? "minVideoBitsPerSecond")+            Prelude.<*> (x Data..:? "streamOrder")+      )++instance Prelude.Hashable StreamSelection where+  hashWithSalt _salt StreamSelection' {..} =+    _salt+      `Prelude.hashWithSalt` maxVideoBitsPerSecond+      `Prelude.hashWithSalt` minVideoBitsPerSecond+      `Prelude.hashWithSalt` streamOrder++instance Prelude.NFData StreamSelection where+  rnf StreamSelection' {..} =+    Prelude.rnf maxVideoBitsPerSecond+      `Prelude.seq` Prelude.rnf minVideoBitsPerSecond+      `Prelude.seq` Prelude.rnf streamOrder++instance Data.ToJSON StreamSelection where+  toJSON StreamSelection' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxVideoBitsPerSecond" Data..=)+              Prelude.<$> maxVideoBitsPerSecond,+            ("minVideoBitsPerSecond" Data..=)+              Prelude.<$> minVideoBitsPerSecond,+            ("streamOrder" Data..=) Prelude.<$> streamOrder+          ]+      )
+ gen/Amazonka/MediaPackageVOD/UntagResource.hs view
@@ -0,0 +1,144 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.UntagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes tags from the specified resource. You can specify one or more+-- tags to remove.+module Amazonka.MediaPackageVOD.UntagResource+  ( -- * Creating a Request+    UntagResource (..),+    newUntagResource,++    -- * Request Lenses+    untagResource_tagKeys,+    untagResource_resourceArn,++    -- * Destructuring the Response+    UntagResourceResponse (..),+    newUntagResourceResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+  { -- | A comma-separated list of the tag keys to remove from the resource.+    tagKeys :: [Prelude.Text],+    -- | The Amazon Resource Name (ARN) for the resource. You can get this from+    -- the response to any request to the resource.+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tagKeys', 'untagResource_tagKeys' - A comma-separated list of the tag keys to remove from the resource.+--+-- 'resourceArn', 'untagResource_resourceArn' - The Amazon Resource Name (ARN) for the resource. You can get this from+-- the response to any request to the resource.+newUntagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  UntagResource+newUntagResource pResourceArn_ =+  UntagResource'+    { tagKeys = Prelude.mempty,+      resourceArn = pResourceArn_+    }++-- | A comma-separated list of the tag keys to remove from the resource.+untagResource_tagKeys :: Lens.Lens' UntagResource [Prelude.Text]+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++-- | The Amazon Resource Name (ARN) for the resource. You can get this from+-- the response to any request to the resource.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++instance Core.AWSRequest UntagResource where+  type+    AWSResponse UntagResource =+      UntagResourceResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull UntagResourceResponse'++instance Prelude.Hashable UntagResource where+  hashWithSalt _salt UntagResource' {..} =+    _salt+      `Prelude.hashWithSalt` tagKeys+      `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData UntagResource where+  rnf UntagResource' {..} =+    Prelude.rnf tagKeys+      `Prelude.seq` Prelude.rnf resourceArn++instance Data.ToHeaders UntagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath UntagResource where+  toPath UntagResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery UntagResource where+  toQuery UntagResource' {..} =+    Prelude.mconcat+      ["tagKeys" Data.=: Data.toQueryList "member" tagKeys]++-- | /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newUntagResourceResponse ::+  UntagResourceResponse+newUntagResourceResponse = UntagResourceResponse'++instance Prelude.NFData UntagResourceResponse where+  rnf _ = ()
+ gen/Amazonka/MediaPackageVOD/UpdatePackagingGroup.hs view
@@ -0,0 +1,256 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.UpdatePackagingGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a specific packaging group. You can\'t change the id attribute+-- or any other system-generated attributes.+module Amazonka.MediaPackageVOD.UpdatePackagingGroup+  ( -- * Creating a Request+    UpdatePackagingGroup (..),+    newUpdatePackagingGroup,++    -- * Request Lenses+    updatePackagingGroup_authorization,+    updatePackagingGroup_id,++    -- * Destructuring the Response+    UpdatePackagingGroupResponse (..),+    newUpdatePackagingGroupResponse,++    -- * Response Lenses+    updatePackagingGroupResponse_approximateAssetCount,+    updatePackagingGroupResponse_arn,+    updatePackagingGroupResponse_authorization,+    updatePackagingGroupResponse_domainName,+    updatePackagingGroupResponse_egressAccessLogs,+    updatePackagingGroupResponse_id,+    updatePackagingGroupResponse_tags,+    updatePackagingGroupResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | A MediaPackage VOD PackagingGroup resource configuration.+--+-- /See:/ 'newUpdatePackagingGroup' smart constructor.+data UpdatePackagingGroup = UpdatePackagingGroup'+  { authorization :: Prelude.Maybe Authorization,+    -- | The ID of a MediaPackage VOD PackagingGroup resource.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdatePackagingGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'authorization', 'updatePackagingGroup_authorization' - Undocumented member.+--+-- 'id', 'updatePackagingGroup_id' - The ID of a MediaPackage VOD PackagingGroup resource.+newUpdatePackagingGroup ::+  -- | 'id'+  Prelude.Text ->+  UpdatePackagingGroup+newUpdatePackagingGroup pId_ =+  UpdatePackagingGroup'+    { authorization =+        Prelude.Nothing,+      id = pId_+    }++-- | Undocumented member.+updatePackagingGroup_authorization :: Lens.Lens' UpdatePackagingGroup (Prelude.Maybe Authorization)+updatePackagingGroup_authorization = Lens.lens (\UpdatePackagingGroup' {authorization} -> authorization) (\s@UpdatePackagingGroup' {} a -> s {authorization = a} :: UpdatePackagingGroup)++-- | The ID of a MediaPackage VOD PackagingGroup resource.+updatePackagingGroup_id :: Lens.Lens' UpdatePackagingGroup Prelude.Text+updatePackagingGroup_id = Lens.lens (\UpdatePackagingGroup' {id} -> id) (\s@UpdatePackagingGroup' {} a -> s {id = a} :: UpdatePackagingGroup)++instance Core.AWSRequest UpdatePackagingGroup where+  type+    AWSResponse UpdatePackagingGroup =+      UpdatePackagingGroupResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdatePackagingGroupResponse'+            Prelude.<$> (x Data..?> "approximateAssetCount")+            Prelude.<*> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "authorization")+            Prelude.<*> (x Data..?> "domainName")+            Prelude.<*> (x Data..?> "egressAccessLogs")+            Prelude.<*> (x Data..?> "id")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdatePackagingGroup where+  hashWithSalt _salt UpdatePackagingGroup' {..} =+    _salt+      `Prelude.hashWithSalt` authorization+      `Prelude.hashWithSalt` id++instance Prelude.NFData UpdatePackagingGroup where+  rnf UpdatePackagingGroup' {..} =+    Prelude.rnf authorization+      `Prelude.seq` Prelude.rnf id++instance Data.ToHeaders UpdatePackagingGroup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdatePackagingGroup where+  toJSON UpdatePackagingGroup' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("authorization" Data..=)+              Prelude.<$> authorization+          ]+      )++instance Data.ToPath UpdatePackagingGroup where+  toPath UpdatePackagingGroup' {..} =+    Prelude.mconcat+      ["/packaging_groups/", Data.toBS id]++instance Data.ToQuery UpdatePackagingGroup where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdatePackagingGroupResponse' smart constructor.+data UpdatePackagingGroupResponse = UpdatePackagingGroupResponse'+  { -- | The approximate asset count of the PackagingGroup.+    approximateAssetCount :: Prelude.Maybe Prelude.Int,+    -- | The ARN of the PackagingGroup.+    arn :: Prelude.Maybe Prelude.Text,+    authorization :: Prelude.Maybe Authorization,+    -- | The fully qualified domain name for Assets in the PackagingGroup.+    domainName :: Prelude.Maybe Prelude.Text,+    egressAccessLogs :: Prelude.Maybe EgressAccessLogs,+    -- | The ID of the PackagingGroup.+    id :: Prelude.Maybe Prelude.Text,+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdatePackagingGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'approximateAssetCount', 'updatePackagingGroupResponse_approximateAssetCount' - The approximate asset count of the PackagingGroup.+--+-- 'arn', 'updatePackagingGroupResponse_arn' - The ARN of the PackagingGroup.+--+-- 'authorization', 'updatePackagingGroupResponse_authorization' - Undocumented member.+--+-- 'domainName', 'updatePackagingGroupResponse_domainName' - The fully qualified domain name for Assets in the PackagingGroup.+--+-- 'egressAccessLogs', 'updatePackagingGroupResponse_egressAccessLogs' - Undocumented member.+--+-- 'id', 'updatePackagingGroupResponse_id' - The ID of the PackagingGroup.+--+-- 'tags', 'updatePackagingGroupResponse_tags' - Undocumented member.+--+-- 'httpStatus', 'updatePackagingGroupResponse_httpStatus' - The response's http status code.+newUpdatePackagingGroupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdatePackagingGroupResponse+newUpdatePackagingGroupResponse pHttpStatus_ =+  UpdatePackagingGroupResponse'+    { approximateAssetCount =+        Prelude.Nothing,+      arn = Prelude.Nothing,+      authorization = Prelude.Nothing,+      domainName = Prelude.Nothing,+      egressAccessLogs = Prelude.Nothing,+      id = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The approximate asset count of the PackagingGroup.+updatePackagingGroupResponse_approximateAssetCount :: Lens.Lens' UpdatePackagingGroupResponse (Prelude.Maybe Prelude.Int)+updatePackagingGroupResponse_approximateAssetCount = Lens.lens (\UpdatePackagingGroupResponse' {approximateAssetCount} -> approximateAssetCount) (\s@UpdatePackagingGroupResponse' {} a -> s {approximateAssetCount = a} :: UpdatePackagingGroupResponse)++-- | The ARN of the PackagingGroup.+updatePackagingGroupResponse_arn :: Lens.Lens' UpdatePackagingGroupResponse (Prelude.Maybe Prelude.Text)+updatePackagingGroupResponse_arn = Lens.lens (\UpdatePackagingGroupResponse' {arn} -> arn) (\s@UpdatePackagingGroupResponse' {} a -> s {arn = a} :: UpdatePackagingGroupResponse)++-- | Undocumented member.+updatePackagingGroupResponse_authorization :: Lens.Lens' UpdatePackagingGroupResponse (Prelude.Maybe Authorization)+updatePackagingGroupResponse_authorization = Lens.lens (\UpdatePackagingGroupResponse' {authorization} -> authorization) (\s@UpdatePackagingGroupResponse' {} a -> s {authorization = a} :: UpdatePackagingGroupResponse)++-- | The fully qualified domain name for Assets in the PackagingGroup.+updatePackagingGroupResponse_domainName :: Lens.Lens' UpdatePackagingGroupResponse (Prelude.Maybe Prelude.Text)+updatePackagingGroupResponse_domainName = Lens.lens (\UpdatePackagingGroupResponse' {domainName} -> domainName) (\s@UpdatePackagingGroupResponse' {} a -> s {domainName = a} :: UpdatePackagingGroupResponse)++-- | Undocumented member.+updatePackagingGroupResponse_egressAccessLogs :: Lens.Lens' UpdatePackagingGroupResponse (Prelude.Maybe EgressAccessLogs)+updatePackagingGroupResponse_egressAccessLogs = Lens.lens (\UpdatePackagingGroupResponse' {egressAccessLogs} -> egressAccessLogs) (\s@UpdatePackagingGroupResponse' {} a -> s {egressAccessLogs = a} :: UpdatePackagingGroupResponse)++-- | The ID of the PackagingGroup.+updatePackagingGroupResponse_id :: Lens.Lens' UpdatePackagingGroupResponse (Prelude.Maybe Prelude.Text)+updatePackagingGroupResponse_id = Lens.lens (\UpdatePackagingGroupResponse' {id} -> id) (\s@UpdatePackagingGroupResponse' {} a -> s {id = a} :: UpdatePackagingGroupResponse)++-- | Undocumented member.+updatePackagingGroupResponse_tags :: Lens.Lens' UpdatePackagingGroupResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updatePackagingGroupResponse_tags = Lens.lens (\UpdatePackagingGroupResponse' {tags} -> tags) (\s@UpdatePackagingGroupResponse' {} a -> s {tags = a} :: UpdatePackagingGroupResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+updatePackagingGroupResponse_httpStatus :: Lens.Lens' UpdatePackagingGroupResponse Prelude.Int+updatePackagingGroupResponse_httpStatus = Lens.lens (\UpdatePackagingGroupResponse' {httpStatus} -> httpStatus) (\s@UpdatePackagingGroupResponse' {} a -> s {httpStatus = a} :: UpdatePackagingGroupResponse)++instance Prelude.NFData UpdatePackagingGroupResponse where+  rnf UpdatePackagingGroupResponse' {..} =+    Prelude.rnf approximateAssetCount+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf authorization+      `Prelude.seq` Prelude.rnf domainName+      `Prelude.seq` Prelude.rnf egressAccessLogs+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaPackageVOD/Waiters.hs view
@@ -0,0 +1,24 @@+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaPackageVOD.Waiters+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaPackageVOD.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaPackageVOD.Lens+import Amazonka.MediaPackageVOD.Types+import qualified Amazonka.Prelude as Prelude
+ src/.gitkeep view
+ test/Main.hs view
@@ -0,0 +1,23 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Main+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Main (main) where++import Test.Amazonka.MediaPackageVOD+import Test.Amazonka.MediaPackageVOD.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "MediaPackageVOD"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/Gen/MediaPackageVOD.hs view
@@ -0,0 +1,378 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Test.Amazonka.Gen.MediaPackageVOD+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Test.Amazonka.Gen.MediaPackageVOD where++import Amazonka.MediaPackageVOD+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.MediaPackageVOD.Internal+import Test.Amazonka.Prelude+import Test.Tasty++-- Auto-generated: the actual test selection needs to be manually placed into+-- the top-level so that real test data can be incrementally added.+--+-- This commented snippet is what the entire set should look like:++-- fixtures :: TestTree+-- fixtures =+--     [ testGroup "request"+--         [ requestConfigureLogs $+--             newConfigureLogs+--+--         , requestCreateAsset $+--             newCreateAsset+--+--         , requestCreatePackagingConfiguration $+--             newCreatePackagingConfiguration+--+--         , requestCreatePackagingGroup $+--             newCreatePackagingGroup+--+--         , requestDeleteAsset $+--             newDeleteAsset+--+--         , requestDeletePackagingConfiguration $+--             newDeletePackagingConfiguration+--+--         , requestDeletePackagingGroup $+--             newDeletePackagingGroup+--+--         , requestDescribeAsset $+--             newDescribeAsset+--+--         , requestDescribePackagingConfiguration $+--             newDescribePackagingConfiguration+--+--         , requestDescribePackagingGroup $+--             newDescribePackagingGroup+--+--         , requestListAssets $+--             newListAssets+--+--         , requestListPackagingConfigurations $+--             newListPackagingConfigurations+--+--         , requestListPackagingGroups $+--             newListPackagingGroups+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdatePackagingGroup $+--             newUpdatePackagingGroup+--+--           ]++--     , testGroup "response"+--         [ responseConfigureLogs $+--             newConfigureLogsResponse+--+--         , responseCreateAsset $+--             newCreateAssetResponse+--+--         , responseCreatePackagingConfiguration $+--             newCreatePackagingConfigurationResponse+--+--         , responseCreatePackagingGroup $+--             newCreatePackagingGroupResponse+--+--         , responseDeleteAsset $+--             newDeleteAssetResponse+--+--         , responseDeletePackagingConfiguration $+--             newDeletePackagingConfigurationResponse+--+--         , responseDeletePackagingGroup $+--             newDeletePackagingGroupResponse+--+--         , responseDescribeAsset $+--             newDescribeAssetResponse+--+--         , responseDescribePackagingConfiguration $+--             newDescribePackagingConfigurationResponse+--+--         , responseDescribePackagingGroup $+--             newDescribePackagingGroupResponse+--+--         , responseListAssets $+--             newListAssetsResponse+--+--         , responseListPackagingConfigurations $+--             newListPackagingConfigurationsResponse+--+--         , responseListPackagingGroups $+--             newListPackagingGroupsResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdatePackagingGroup $+--             newUpdatePackagingGroupResponse+--+--           ]+--     ]++-- Requests++requestConfigureLogs :: ConfigureLogs -> TestTree+requestConfigureLogs =+  req+    "ConfigureLogs"+    "fixture/ConfigureLogs.yaml"++requestCreateAsset :: CreateAsset -> TestTree+requestCreateAsset =+  req+    "CreateAsset"+    "fixture/CreateAsset.yaml"++requestCreatePackagingConfiguration :: CreatePackagingConfiguration -> TestTree+requestCreatePackagingConfiguration =+  req+    "CreatePackagingConfiguration"+    "fixture/CreatePackagingConfiguration.yaml"++requestCreatePackagingGroup :: CreatePackagingGroup -> TestTree+requestCreatePackagingGroup =+  req+    "CreatePackagingGroup"+    "fixture/CreatePackagingGroup.yaml"++requestDeleteAsset :: DeleteAsset -> TestTree+requestDeleteAsset =+  req+    "DeleteAsset"+    "fixture/DeleteAsset.yaml"++requestDeletePackagingConfiguration :: DeletePackagingConfiguration -> TestTree+requestDeletePackagingConfiguration =+  req+    "DeletePackagingConfiguration"+    "fixture/DeletePackagingConfiguration.yaml"++requestDeletePackagingGroup :: DeletePackagingGroup -> TestTree+requestDeletePackagingGroup =+  req+    "DeletePackagingGroup"+    "fixture/DeletePackagingGroup.yaml"++requestDescribeAsset :: DescribeAsset -> TestTree+requestDescribeAsset =+  req+    "DescribeAsset"+    "fixture/DescribeAsset.yaml"++requestDescribePackagingConfiguration :: DescribePackagingConfiguration -> TestTree+requestDescribePackagingConfiguration =+  req+    "DescribePackagingConfiguration"+    "fixture/DescribePackagingConfiguration.yaml"++requestDescribePackagingGroup :: DescribePackagingGroup -> TestTree+requestDescribePackagingGroup =+  req+    "DescribePackagingGroup"+    "fixture/DescribePackagingGroup.yaml"++requestListAssets :: ListAssets -> TestTree+requestListAssets =+  req+    "ListAssets"+    "fixture/ListAssets.yaml"++requestListPackagingConfigurations :: ListPackagingConfigurations -> TestTree+requestListPackagingConfigurations =+  req+    "ListPackagingConfigurations"+    "fixture/ListPackagingConfigurations.yaml"++requestListPackagingGroups :: ListPackagingGroups -> TestTree+requestListPackagingGroups =+  req+    "ListPackagingGroups"+    "fixture/ListPackagingGroups.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdatePackagingGroup :: UpdatePackagingGroup -> TestTree+requestUpdatePackagingGroup =+  req+    "UpdatePackagingGroup"+    "fixture/UpdatePackagingGroup.yaml"++-- Responses++responseConfigureLogs :: ConfigureLogsResponse -> TestTree+responseConfigureLogs =+  res+    "ConfigureLogsResponse"+    "fixture/ConfigureLogsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ConfigureLogs)++responseCreateAsset :: CreateAssetResponse -> TestTree+responseCreateAsset =+  res+    "CreateAssetResponse"+    "fixture/CreateAssetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateAsset)++responseCreatePackagingConfiguration :: CreatePackagingConfigurationResponse -> TestTree+responseCreatePackagingConfiguration =+  res+    "CreatePackagingConfigurationResponse"+    "fixture/CreatePackagingConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreatePackagingConfiguration)++responseCreatePackagingGroup :: CreatePackagingGroupResponse -> TestTree+responseCreatePackagingGroup =+  res+    "CreatePackagingGroupResponse"+    "fixture/CreatePackagingGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreatePackagingGroup)++responseDeleteAsset :: DeleteAssetResponse -> TestTree+responseDeleteAsset =+  res+    "DeleteAssetResponse"+    "fixture/DeleteAssetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteAsset)++responseDeletePackagingConfiguration :: DeletePackagingConfigurationResponse -> TestTree+responseDeletePackagingConfiguration =+  res+    "DeletePackagingConfigurationResponse"+    "fixture/DeletePackagingConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeletePackagingConfiguration)++responseDeletePackagingGroup :: DeletePackagingGroupResponse -> TestTree+responseDeletePackagingGroup =+  res+    "DeletePackagingGroupResponse"+    "fixture/DeletePackagingGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeletePackagingGroup)++responseDescribeAsset :: DescribeAssetResponse -> TestTree+responseDescribeAsset =+  res+    "DescribeAssetResponse"+    "fixture/DescribeAssetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeAsset)++responseDescribePackagingConfiguration :: DescribePackagingConfigurationResponse -> TestTree+responseDescribePackagingConfiguration =+  res+    "DescribePackagingConfigurationResponse"+    "fixture/DescribePackagingConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribePackagingConfiguration)++responseDescribePackagingGroup :: DescribePackagingGroupResponse -> TestTree+responseDescribePackagingGroup =+  res+    "DescribePackagingGroupResponse"+    "fixture/DescribePackagingGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribePackagingGroup)++responseListAssets :: ListAssetsResponse -> TestTree+responseListAssets =+  res+    "ListAssetsResponse"+    "fixture/ListAssetsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListAssets)++responseListPackagingConfigurations :: ListPackagingConfigurationsResponse -> TestTree+responseListPackagingConfigurations =+  res+    "ListPackagingConfigurationsResponse"+    "fixture/ListPackagingConfigurationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListPackagingConfigurations)++responseListPackagingGroups :: ListPackagingGroupsResponse -> TestTree+responseListPackagingGroups =+  res+    "ListPackagingGroupsResponse"+    "fixture/ListPackagingGroupsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListPackagingGroups)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseTagResource :: TagResourceResponse -> TestTree+responseTagResource =+  res+    "TagResourceResponse"+    "fixture/TagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy TagResource)++responseUntagResource :: UntagResourceResponse -> TestTree+responseUntagResource =+  res+    "UntagResourceResponse"+    "fixture/UntagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UntagResource)++responseUpdatePackagingGroup :: UpdatePackagingGroupResponse -> TestTree+responseUpdatePackagingGroup =+  res+    "UpdatePackagingGroupResponse"+    "fixture/UpdatePackagingGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdatePackagingGroup)
+ test/Test/Amazonka/MediaPackageVOD.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.MediaPackageVOD+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Test.Amazonka.MediaPackageVOD+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/MediaPackageVOD/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.MediaPackageVOD.Internal+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Test.Amazonka.MediaPackageVOD.Internal where