packages feed

amazonka-mediatailor (empty) → 2.0

raw patch · 188 files changed

+21196/−0 lines, 188 filesdep +amazonka-coredep +amazonka-mediatailordep +amazonka-test

Dependencies added: amazonka-core, amazonka-mediatailor, 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 MediaTailor SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2018-04-23@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-mediatailor)+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.MediaTailor](http://hackage.haskell.org/package/amazonka-mediatailor/docs/Amazonka-MediaTailor.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-mediatailor` 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-mediatailor.cabal view
@@ -0,0 +1,175 @@+cabal-version:      2.2+name:               amazonka-mediatailor+version:            2.0+synopsis:           Amazon MediaTailor 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-04-23@ 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.MediaTailor.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.MediaTailor" 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-mediatailor++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.MediaTailor+    Amazonka.MediaTailor.ConfigureLogsForPlaybackConfiguration+    Amazonka.MediaTailor.CreateChannel+    Amazonka.MediaTailor.CreateLiveSource+    Amazonka.MediaTailor.CreatePrefetchSchedule+    Amazonka.MediaTailor.CreateProgram+    Amazonka.MediaTailor.CreateSourceLocation+    Amazonka.MediaTailor.CreateVodSource+    Amazonka.MediaTailor.DeleteChannel+    Amazonka.MediaTailor.DeleteChannelPolicy+    Amazonka.MediaTailor.DeleteLiveSource+    Amazonka.MediaTailor.DeletePlaybackConfiguration+    Amazonka.MediaTailor.DeletePrefetchSchedule+    Amazonka.MediaTailor.DeleteProgram+    Amazonka.MediaTailor.DeleteSourceLocation+    Amazonka.MediaTailor.DeleteVodSource+    Amazonka.MediaTailor.DescribeChannel+    Amazonka.MediaTailor.DescribeLiveSource+    Amazonka.MediaTailor.DescribeProgram+    Amazonka.MediaTailor.DescribeSourceLocation+    Amazonka.MediaTailor.DescribeVodSource+    Amazonka.MediaTailor.GetChannelPolicy+    Amazonka.MediaTailor.GetChannelSchedule+    Amazonka.MediaTailor.GetPlaybackConfiguration+    Amazonka.MediaTailor.GetPrefetchSchedule+    Amazonka.MediaTailor.Lens+    Amazonka.MediaTailor.ListAlerts+    Amazonka.MediaTailor.ListChannels+    Amazonka.MediaTailor.ListLiveSources+    Amazonka.MediaTailor.ListPlaybackConfigurations+    Amazonka.MediaTailor.ListPrefetchSchedules+    Amazonka.MediaTailor.ListSourceLocations+    Amazonka.MediaTailor.ListTagsForResource+    Amazonka.MediaTailor.ListVodSources+    Amazonka.MediaTailor.PutChannelPolicy+    Amazonka.MediaTailor.PutPlaybackConfiguration+    Amazonka.MediaTailor.StartChannel+    Amazonka.MediaTailor.StopChannel+    Amazonka.MediaTailor.TagResource+    Amazonka.MediaTailor.Types+    Amazonka.MediaTailor.Types.AccessConfiguration+    Amazonka.MediaTailor.Types.AccessType+    Amazonka.MediaTailor.Types.AdBreak+    Amazonka.MediaTailor.Types.AdMarkerPassthrough+    Amazonka.MediaTailor.Types.Alert+    Amazonka.MediaTailor.Types.AvailMatchingCriteria+    Amazonka.MediaTailor.Types.AvailSuppression+    Amazonka.MediaTailor.Types.Bumper+    Amazonka.MediaTailor.Types.CdnConfiguration+    Amazonka.MediaTailor.Types.Channel+    Amazonka.MediaTailor.Types.ChannelState+    Amazonka.MediaTailor.Types.DashConfiguration+    Amazonka.MediaTailor.Types.DashConfigurationForPut+    Amazonka.MediaTailor.Types.DashPlaylistSettings+    Amazonka.MediaTailor.Types.DefaultSegmentDeliveryConfiguration+    Amazonka.MediaTailor.Types.HlsConfiguration+    Amazonka.MediaTailor.Types.HlsPlaylistSettings+    Amazonka.MediaTailor.Types.HttpConfiguration+    Amazonka.MediaTailor.Types.HttpPackageConfiguration+    Amazonka.MediaTailor.Types.LivePreRollConfiguration+    Amazonka.MediaTailor.Types.LiveSource+    Amazonka.MediaTailor.Types.LogConfiguration+    Amazonka.MediaTailor.Types.ManifestProcessingRules+    Amazonka.MediaTailor.Types.MessageType+    Amazonka.MediaTailor.Types.Mode+    Amazonka.MediaTailor.Types.Operator+    Amazonka.MediaTailor.Types.OriginManifestType+    Amazonka.MediaTailor.Types.PlaybackConfiguration+    Amazonka.MediaTailor.Types.PlaybackMode+    Amazonka.MediaTailor.Types.PrefetchConsumption+    Amazonka.MediaTailor.Types.PrefetchRetrieval+    Amazonka.MediaTailor.Types.PrefetchSchedule+    Amazonka.MediaTailor.Types.RelativePosition+    Amazonka.MediaTailor.Types.RequestOutputItem+    Amazonka.MediaTailor.Types.ResponseOutputItem+    Amazonka.MediaTailor.Types.ScheduleAdBreak+    Amazonka.MediaTailor.Types.ScheduleConfiguration+    Amazonka.MediaTailor.Types.ScheduleEntry+    Amazonka.MediaTailor.Types.ScheduleEntryType+    Amazonka.MediaTailor.Types.SecretsManagerAccessTokenConfiguration+    Amazonka.MediaTailor.Types.SegmentationDescriptor+    Amazonka.MediaTailor.Types.SegmentDeliveryConfiguration+    Amazonka.MediaTailor.Types.SlateSource+    Amazonka.MediaTailor.Types.SourceLocation+    Amazonka.MediaTailor.Types.SpliceInsertMessage+    Amazonka.MediaTailor.Types.Tier+    Amazonka.MediaTailor.Types.TimeSignalMessage+    Amazonka.MediaTailor.Types.Transition+    Amazonka.MediaTailor.Types.Type+    Amazonka.MediaTailor.Types.VodSource+    Amazonka.MediaTailor.UntagResource+    Amazonka.MediaTailor.UpdateChannel+    Amazonka.MediaTailor.UpdateLiveSource+    Amazonka.MediaTailor.UpdateSourceLocation+    Amazonka.MediaTailor.UpdateVodSource+    Amazonka.MediaTailor.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-mediatailor-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.MediaTailor+    Test.Amazonka.MediaTailor+    Test.Amazonka.MediaTailor.Internal++  build-depends:+    , amazonka-core         >=2.0 && <2.1+    , amazonka-mediatailor+    , amazonka-test         >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/ConfigureLogsForPlaybackConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/ConfigureLogsForPlaybackConfigurationResponse.proto view
+ fixture/CreateChannel.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/CreateChannelResponse.proto view
+ fixture/CreateLiveSource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/CreateLiveSourceResponse.proto view
+ fixture/CreatePrefetchSchedule.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/CreatePrefetchScheduleResponse.proto view
+ fixture/CreateProgram.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/CreateProgramResponse.proto view
+ fixture/CreateSourceLocation.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/CreateSourceLocationResponse.proto view
+ fixture/CreateVodSource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/CreateVodSourceResponse.proto view
+ fixture/DeleteChannel.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/DeleteChannelPolicy.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/DeleteChannelPolicyResponse.proto view
+ fixture/DeleteChannelResponse.proto view
+ fixture/DeleteLiveSource.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/DeleteLiveSourceResponse.proto view
+ fixture/DeletePlaybackConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/DeletePlaybackConfigurationResponse.proto view
+ fixture/DeletePrefetchSchedule.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/DeletePrefetchScheduleResponse.proto view
+ fixture/DeleteProgram.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/DeleteProgramResponse.proto view
+ fixture/DeleteSourceLocation.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/DeleteSourceLocationResponse.proto view
+ fixture/DeleteVodSource.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/DeleteVodSourceResponse.proto view
+ fixture/DescribeChannel.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/DescribeChannelResponse.proto view
+ fixture/DescribeLiveSource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/DescribeLiveSourceResponse.proto view
+ fixture/DescribeProgram.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/DescribeProgramResponse.proto view
+ fixture/DescribeSourceLocation.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/DescribeSourceLocationResponse.proto view
+ fixture/DescribeVodSource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/DescribeVodSourceResponse.proto view
+ fixture/GetChannelPolicy.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/GetChannelPolicyResponse.proto view
+ fixture/GetChannelSchedule.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/GetChannelScheduleResponse.proto view
+ fixture/GetPlaybackConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/GetPlaybackConfigurationResponse.proto view
+ fixture/GetPrefetchSchedule.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/GetPrefetchScheduleResponse.proto view
+ fixture/ListAlerts.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/ListAlertsResponse.proto view
+ fixture/ListChannels.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/ListChannelsResponse.proto view
+ fixture/ListLiveSources.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/ListLiveSourcesResponse.proto view
+ fixture/ListPlaybackConfigurations.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/ListPlaybackConfigurationsResponse.proto view
+ fixture/ListPrefetchSchedules.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/ListPrefetchSchedulesResponse.proto view
+ fixture/ListSourceLocations.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/ListSourceLocationsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/ListVodSources.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/ListVodSourcesResponse.proto view
+ fixture/PutChannelPolicy.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/PutChannelPolicyResponse.proto view
+ fixture/PutPlaybackConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/PutPlaybackConfigurationResponse.proto view
+ fixture/StartChannel.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/StartChannelResponse.proto view
+ fixture/StopChannel.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/StopChannelResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/UpdateChannel.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/UpdateChannelResponse.proto view
+ fixture/UpdateLiveSource.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/UpdateLiveSourceResponse.proto view
+ fixture/UpdateSourceLocation.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/UpdateSourceLocationResponse.proto view
+ fixture/UpdateVodSource.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/api.mediatailor/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  api.mediatailor.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/UpdateVodSourceResponse.proto view
+ gen/Amazonka/MediaTailor.hs view
@@ -0,0 +1,558 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.MediaTailor+-- 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-04-23@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Use the AWS Elemental MediaTailor SDKs and CLI to configure scalable ad+-- insertion and linear channels. With MediaTailor, you can assemble+-- existing content into a linear stream and serve targeted ads to viewers+-- while maintaining broadcast quality in over-the-top (OTT) video+-- applications. For information about using the service, including+-- detailed information about the settings covered in this guide, see the+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/ AWS Elemental MediaTailor User Guide>.+--+-- Through the SDKs and the CLI you manage AWS Elemental MediaTailor+-- configurations and channels the same as you do through the console. For+-- example, you specify ad insertion behavior and mapping information for+-- the origin server and the ad decision server (ADS).+module Amazonka.MediaTailor+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** BadRequestException+    _BadRequestException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** ConfigureLogsForPlaybackConfiguration+    ConfigureLogsForPlaybackConfiguration (ConfigureLogsForPlaybackConfiguration'),+    newConfigureLogsForPlaybackConfiguration,+    ConfigureLogsForPlaybackConfigurationResponse (ConfigureLogsForPlaybackConfigurationResponse'),+    newConfigureLogsForPlaybackConfigurationResponse,++    -- ** CreateChannel+    CreateChannel (CreateChannel'),+    newCreateChannel,+    CreateChannelResponse (CreateChannelResponse'),+    newCreateChannelResponse,++    -- ** CreateLiveSource+    CreateLiveSource (CreateLiveSource'),+    newCreateLiveSource,+    CreateLiveSourceResponse (CreateLiveSourceResponse'),+    newCreateLiveSourceResponse,++    -- ** CreatePrefetchSchedule+    CreatePrefetchSchedule (CreatePrefetchSchedule'),+    newCreatePrefetchSchedule,+    CreatePrefetchScheduleResponse (CreatePrefetchScheduleResponse'),+    newCreatePrefetchScheduleResponse,++    -- ** CreateProgram+    CreateProgram (CreateProgram'),+    newCreateProgram,+    CreateProgramResponse (CreateProgramResponse'),+    newCreateProgramResponse,++    -- ** CreateSourceLocation+    CreateSourceLocation (CreateSourceLocation'),+    newCreateSourceLocation,+    CreateSourceLocationResponse (CreateSourceLocationResponse'),+    newCreateSourceLocationResponse,++    -- ** CreateVodSource+    CreateVodSource (CreateVodSource'),+    newCreateVodSource,+    CreateVodSourceResponse (CreateVodSourceResponse'),+    newCreateVodSourceResponse,++    -- ** DeleteChannel+    DeleteChannel (DeleteChannel'),+    newDeleteChannel,+    DeleteChannelResponse (DeleteChannelResponse'),+    newDeleteChannelResponse,++    -- ** DeleteChannelPolicy+    DeleteChannelPolicy (DeleteChannelPolicy'),+    newDeleteChannelPolicy,+    DeleteChannelPolicyResponse (DeleteChannelPolicyResponse'),+    newDeleteChannelPolicyResponse,++    -- ** DeleteLiveSource+    DeleteLiveSource (DeleteLiveSource'),+    newDeleteLiveSource,+    DeleteLiveSourceResponse (DeleteLiveSourceResponse'),+    newDeleteLiveSourceResponse,++    -- ** DeletePlaybackConfiguration+    DeletePlaybackConfiguration (DeletePlaybackConfiguration'),+    newDeletePlaybackConfiguration,+    DeletePlaybackConfigurationResponse (DeletePlaybackConfigurationResponse'),+    newDeletePlaybackConfigurationResponse,++    -- ** DeletePrefetchSchedule+    DeletePrefetchSchedule (DeletePrefetchSchedule'),+    newDeletePrefetchSchedule,+    DeletePrefetchScheduleResponse (DeletePrefetchScheduleResponse'),+    newDeletePrefetchScheduleResponse,++    -- ** DeleteProgram+    DeleteProgram (DeleteProgram'),+    newDeleteProgram,+    DeleteProgramResponse (DeleteProgramResponse'),+    newDeleteProgramResponse,++    -- ** DeleteSourceLocation+    DeleteSourceLocation (DeleteSourceLocation'),+    newDeleteSourceLocation,+    DeleteSourceLocationResponse (DeleteSourceLocationResponse'),+    newDeleteSourceLocationResponse,++    -- ** DeleteVodSource+    DeleteVodSource (DeleteVodSource'),+    newDeleteVodSource,+    DeleteVodSourceResponse (DeleteVodSourceResponse'),+    newDeleteVodSourceResponse,++    -- ** DescribeChannel+    DescribeChannel (DescribeChannel'),+    newDescribeChannel,+    DescribeChannelResponse (DescribeChannelResponse'),+    newDescribeChannelResponse,++    -- ** DescribeLiveSource+    DescribeLiveSource (DescribeLiveSource'),+    newDescribeLiveSource,+    DescribeLiveSourceResponse (DescribeLiveSourceResponse'),+    newDescribeLiveSourceResponse,++    -- ** DescribeProgram+    DescribeProgram (DescribeProgram'),+    newDescribeProgram,+    DescribeProgramResponse (DescribeProgramResponse'),+    newDescribeProgramResponse,++    -- ** DescribeSourceLocation+    DescribeSourceLocation (DescribeSourceLocation'),+    newDescribeSourceLocation,+    DescribeSourceLocationResponse (DescribeSourceLocationResponse'),+    newDescribeSourceLocationResponse,++    -- ** DescribeVodSource+    DescribeVodSource (DescribeVodSource'),+    newDescribeVodSource,+    DescribeVodSourceResponse (DescribeVodSourceResponse'),+    newDescribeVodSourceResponse,++    -- ** GetChannelPolicy+    GetChannelPolicy (GetChannelPolicy'),+    newGetChannelPolicy,+    GetChannelPolicyResponse (GetChannelPolicyResponse'),+    newGetChannelPolicyResponse,++    -- ** GetChannelSchedule (Paginated)+    GetChannelSchedule (GetChannelSchedule'),+    newGetChannelSchedule,+    GetChannelScheduleResponse (GetChannelScheduleResponse'),+    newGetChannelScheduleResponse,++    -- ** GetPlaybackConfiguration+    GetPlaybackConfiguration (GetPlaybackConfiguration'),+    newGetPlaybackConfiguration,+    GetPlaybackConfigurationResponse (GetPlaybackConfigurationResponse'),+    newGetPlaybackConfigurationResponse,++    -- ** GetPrefetchSchedule+    GetPrefetchSchedule (GetPrefetchSchedule'),+    newGetPrefetchSchedule,+    GetPrefetchScheduleResponse (GetPrefetchScheduleResponse'),+    newGetPrefetchScheduleResponse,++    -- ** ListAlerts (Paginated)+    ListAlerts (ListAlerts'),+    newListAlerts,+    ListAlertsResponse (ListAlertsResponse'),+    newListAlertsResponse,++    -- ** ListChannels (Paginated)+    ListChannels (ListChannels'),+    newListChannels,+    ListChannelsResponse (ListChannelsResponse'),+    newListChannelsResponse,++    -- ** ListLiveSources (Paginated)+    ListLiveSources (ListLiveSources'),+    newListLiveSources,+    ListLiveSourcesResponse (ListLiveSourcesResponse'),+    newListLiveSourcesResponse,++    -- ** ListPlaybackConfigurations (Paginated)+    ListPlaybackConfigurations (ListPlaybackConfigurations'),+    newListPlaybackConfigurations,+    ListPlaybackConfigurationsResponse (ListPlaybackConfigurationsResponse'),+    newListPlaybackConfigurationsResponse,++    -- ** ListPrefetchSchedules (Paginated)+    ListPrefetchSchedules (ListPrefetchSchedules'),+    newListPrefetchSchedules,+    ListPrefetchSchedulesResponse (ListPrefetchSchedulesResponse'),+    newListPrefetchSchedulesResponse,++    -- ** ListSourceLocations (Paginated)+    ListSourceLocations (ListSourceLocations'),+    newListSourceLocations,+    ListSourceLocationsResponse (ListSourceLocationsResponse'),+    newListSourceLocationsResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** ListVodSources (Paginated)+    ListVodSources (ListVodSources'),+    newListVodSources,+    ListVodSourcesResponse (ListVodSourcesResponse'),+    newListVodSourcesResponse,++    -- ** PutChannelPolicy+    PutChannelPolicy (PutChannelPolicy'),+    newPutChannelPolicy,+    PutChannelPolicyResponse (PutChannelPolicyResponse'),+    newPutChannelPolicyResponse,++    -- ** PutPlaybackConfiguration+    PutPlaybackConfiguration (PutPlaybackConfiguration'),+    newPutPlaybackConfiguration,+    PutPlaybackConfigurationResponse (PutPlaybackConfigurationResponse'),+    newPutPlaybackConfigurationResponse,++    -- ** StartChannel+    StartChannel (StartChannel'),+    newStartChannel,+    StartChannelResponse (StartChannelResponse'),+    newStartChannelResponse,++    -- ** StopChannel+    StopChannel (StopChannel'),+    newStopChannel,+    StopChannelResponse (StopChannelResponse'),+    newStopChannelResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateChannel+    UpdateChannel (UpdateChannel'),+    newUpdateChannel,+    UpdateChannelResponse (UpdateChannelResponse'),+    newUpdateChannelResponse,++    -- ** UpdateLiveSource+    UpdateLiveSource (UpdateLiveSource'),+    newUpdateLiveSource,+    UpdateLiveSourceResponse (UpdateLiveSourceResponse'),+    newUpdateLiveSourceResponse,++    -- ** UpdateSourceLocation+    UpdateSourceLocation (UpdateSourceLocation'),+    newUpdateSourceLocation,+    UpdateSourceLocationResponse (UpdateSourceLocationResponse'),+    newUpdateSourceLocationResponse,++    -- ** UpdateVodSource+    UpdateVodSource (UpdateVodSource'),+    newUpdateVodSource,+    UpdateVodSourceResponse (UpdateVodSourceResponse'),+    newUpdateVodSourceResponse,++    -- * Types++    -- ** AccessType+    AccessType (..),++    -- ** ChannelState+    ChannelState (..),++    -- ** MessageType+    MessageType (..),++    -- ** Mode+    Mode (..),++    -- ** Operator+    Operator (..),++    -- ** OriginManifestType+    OriginManifestType (..),++    -- ** PlaybackMode+    PlaybackMode (..),++    -- ** RelativePosition+    RelativePosition (..),++    -- ** ScheduleEntryType+    ScheduleEntryType (..),++    -- ** Tier+    Tier (..),++    -- ** Type+    Type (..),++    -- ** AccessConfiguration+    AccessConfiguration (AccessConfiguration'),+    newAccessConfiguration,++    -- ** AdBreak+    AdBreak (AdBreak'),+    newAdBreak,++    -- ** AdMarkerPassthrough+    AdMarkerPassthrough (AdMarkerPassthrough'),+    newAdMarkerPassthrough,++    -- ** Alert+    Alert (Alert'),+    newAlert,++    -- ** AvailMatchingCriteria+    AvailMatchingCriteria (AvailMatchingCriteria'),+    newAvailMatchingCriteria,++    -- ** AvailSuppression+    AvailSuppression (AvailSuppression'),+    newAvailSuppression,++    -- ** Bumper+    Bumper (Bumper'),+    newBumper,++    -- ** CdnConfiguration+    CdnConfiguration (CdnConfiguration'),+    newCdnConfiguration,++    -- ** Channel+    Channel (Channel'),+    newChannel,++    -- ** DashConfiguration+    DashConfiguration (DashConfiguration'),+    newDashConfiguration,++    -- ** DashConfigurationForPut+    DashConfigurationForPut (DashConfigurationForPut'),+    newDashConfigurationForPut,++    -- ** DashPlaylistSettings+    DashPlaylistSettings (DashPlaylistSettings'),+    newDashPlaylistSettings,++    -- ** DefaultSegmentDeliveryConfiguration+    DefaultSegmentDeliveryConfiguration (DefaultSegmentDeliveryConfiguration'),+    newDefaultSegmentDeliveryConfiguration,++    -- ** HlsConfiguration+    HlsConfiguration (HlsConfiguration'),+    newHlsConfiguration,++    -- ** HlsPlaylistSettings+    HlsPlaylistSettings (HlsPlaylistSettings'),+    newHlsPlaylistSettings,++    -- ** HttpConfiguration+    HttpConfiguration (HttpConfiguration'),+    newHttpConfiguration,++    -- ** HttpPackageConfiguration+    HttpPackageConfiguration (HttpPackageConfiguration'),+    newHttpPackageConfiguration,++    -- ** LivePreRollConfiguration+    LivePreRollConfiguration (LivePreRollConfiguration'),+    newLivePreRollConfiguration,++    -- ** LiveSource+    LiveSource (LiveSource'),+    newLiveSource,++    -- ** LogConfiguration+    LogConfiguration (LogConfiguration'),+    newLogConfiguration,++    -- ** ManifestProcessingRules+    ManifestProcessingRules (ManifestProcessingRules'),+    newManifestProcessingRules,++    -- ** PlaybackConfiguration+    PlaybackConfiguration (PlaybackConfiguration'),+    newPlaybackConfiguration,++    -- ** PrefetchConsumption+    PrefetchConsumption (PrefetchConsumption'),+    newPrefetchConsumption,++    -- ** PrefetchRetrieval+    PrefetchRetrieval (PrefetchRetrieval'),+    newPrefetchRetrieval,++    -- ** PrefetchSchedule+    PrefetchSchedule (PrefetchSchedule'),+    newPrefetchSchedule,++    -- ** RequestOutputItem+    RequestOutputItem (RequestOutputItem'),+    newRequestOutputItem,++    -- ** ResponseOutputItem+    ResponseOutputItem (ResponseOutputItem'),+    newResponseOutputItem,++    -- ** ScheduleAdBreak+    ScheduleAdBreak (ScheduleAdBreak'),+    newScheduleAdBreak,++    -- ** ScheduleConfiguration+    ScheduleConfiguration (ScheduleConfiguration'),+    newScheduleConfiguration,++    -- ** ScheduleEntry+    ScheduleEntry (ScheduleEntry'),+    newScheduleEntry,++    -- ** SecretsManagerAccessTokenConfiguration+    SecretsManagerAccessTokenConfiguration (SecretsManagerAccessTokenConfiguration'),+    newSecretsManagerAccessTokenConfiguration,++    -- ** SegmentDeliveryConfiguration+    SegmentDeliveryConfiguration (SegmentDeliveryConfiguration'),+    newSegmentDeliveryConfiguration,++    -- ** SegmentationDescriptor+    SegmentationDescriptor (SegmentationDescriptor'),+    newSegmentationDescriptor,++    -- ** SlateSource+    SlateSource (SlateSource'),+    newSlateSource,++    -- ** SourceLocation+    SourceLocation (SourceLocation'),+    newSourceLocation,++    -- ** SpliceInsertMessage+    SpliceInsertMessage (SpliceInsertMessage'),+    newSpliceInsertMessage,++    -- ** TimeSignalMessage+    TimeSignalMessage (TimeSignalMessage'),+    newTimeSignalMessage,++    -- ** Transition+    Transition (Transition'),+    newTransition,++    -- ** VodSource+    VodSource (VodSource'),+    newVodSource,+  )+where++import Amazonka.MediaTailor.ConfigureLogsForPlaybackConfiguration+import Amazonka.MediaTailor.CreateChannel+import Amazonka.MediaTailor.CreateLiveSource+import Amazonka.MediaTailor.CreatePrefetchSchedule+import Amazonka.MediaTailor.CreateProgram+import Amazonka.MediaTailor.CreateSourceLocation+import Amazonka.MediaTailor.CreateVodSource+import Amazonka.MediaTailor.DeleteChannel+import Amazonka.MediaTailor.DeleteChannelPolicy+import Amazonka.MediaTailor.DeleteLiveSource+import Amazonka.MediaTailor.DeletePlaybackConfiguration+import Amazonka.MediaTailor.DeletePrefetchSchedule+import Amazonka.MediaTailor.DeleteProgram+import Amazonka.MediaTailor.DeleteSourceLocation+import Amazonka.MediaTailor.DeleteVodSource+import Amazonka.MediaTailor.DescribeChannel+import Amazonka.MediaTailor.DescribeLiveSource+import Amazonka.MediaTailor.DescribeProgram+import Amazonka.MediaTailor.DescribeSourceLocation+import Amazonka.MediaTailor.DescribeVodSource+import Amazonka.MediaTailor.GetChannelPolicy+import Amazonka.MediaTailor.GetChannelSchedule+import Amazonka.MediaTailor.GetPlaybackConfiguration+import Amazonka.MediaTailor.GetPrefetchSchedule+import Amazonka.MediaTailor.Lens+import Amazonka.MediaTailor.ListAlerts+import Amazonka.MediaTailor.ListChannels+import Amazonka.MediaTailor.ListLiveSources+import Amazonka.MediaTailor.ListPlaybackConfigurations+import Amazonka.MediaTailor.ListPrefetchSchedules+import Amazonka.MediaTailor.ListSourceLocations+import Amazonka.MediaTailor.ListTagsForResource+import Amazonka.MediaTailor.ListVodSources+import Amazonka.MediaTailor.PutChannelPolicy+import Amazonka.MediaTailor.PutPlaybackConfiguration+import Amazonka.MediaTailor.StartChannel+import Amazonka.MediaTailor.StopChannel+import Amazonka.MediaTailor.TagResource+import Amazonka.MediaTailor.Types+import Amazonka.MediaTailor.UntagResource+import Amazonka.MediaTailor.UpdateChannel+import Amazonka.MediaTailor.UpdateLiveSource+import Amazonka.MediaTailor.UpdateSourceLocation+import Amazonka.MediaTailor.UpdateVodSource+import Amazonka.MediaTailor.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 'MediaTailor'.++-- $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/MediaTailor/ConfigureLogsForPlaybackConfiguration.hs view
@@ -0,0 +1,268 @@+{-# 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.MediaTailor.ConfigureLogsForPlaybackConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Amazon CloudWatch log settings for a playback configuration.+module Amazonka.MediaTailor.ConfigureLogsForPlaybackConfiguration+  ( -- * Creating a Request+    ConfigureLogsForPlaybackConfiguration (..),+    newConfigureLogsForPlaybackConfiguration,++    -- * Request Lenses+    configureLogsForPlaybackConfiguration_percentEnabled,+    configureLogsForPlaybackConfiguration_playbackConfigurationName,++    -- * Destructuring the Response+    ConfigureLogsForPlaybackConfigurationResponse (..),+    newConfigureLogsForPlaybackConfigurationResponse,++    -- * Response Lenses+    configureLogsForPlaybackConfigurationResponse_playbackConfigurationName,+    configureLogsForPlaybackConfigurationResponse_httpStatus,+    configureLogsForPlaybackConfigurationResponse_percentEnabled,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Configures Amazon CloudWatch log settings for a playback configuration.+--+-- /See:/ 'newConfigureLogsForPlaybackConfiguration' smart constructor.+data ConfigureLogsForPlaybackConfiguration = ConfigureLogsForPlaybackConfiguration'+  { -- | The percentage of session logs that MediaTailor sends to your Cloudwatch+    -- Logs account. For example, if your playback configuration has 1000+    -- sessions and percentEnabled is set to @60@, MediaTailor sends logs for+    -- 600 of the sessions to CloudWatch Logs. MediaTailor decides at random+    -- which of the playback configuration sessions to send logs for. If you+    -- want to view logs for a specific session, you can use the+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/debug-log-mode.html debug log mode>.+    --+    -- Valid values: @0@ - @100@+    percentEnabled :: Prelude.Int,+    -- | The name of the playback configuration.+    playbackConfigurationName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConfigureLogsForPlaybackConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'percentEnabled', 'configureLogsForPlaybackConfiguration_percentEnabled' - The percentage of session logs that MediaTailor sends to your Cloudwatch+-- Logs account. For example, if your playback configuration has 1000+-- sessions and percentEnabled is set to @60@, MediaTailor sends logs for+-- 600 of the sessions to CloudWatch Logs. MediaTailor decides at random+-- which of the playback configuration sessions to send logs for. If you+-- want to view logs for a specific session, you can use the+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/debug-log-mode.html debug log mode>.+--+-- Valid values: @0@ - @100@+--+-- 'playbackConfigurationName', 'configureLogsForPlaybackConfiguration_playbackConfigurationName' - The name of the playback configuration.+newConfigureLogsForPlaybackConfiguration ::+  -- | 'percentEnabled'+  Prelude.Int ->+  -- | 'playbackConfigurationName'+  Prelude.Text ->+  ConfigureLogsForPlaybackConfiguration+newConfigureLogsForPlaybackConfiguration+  pPercentEnabled_+  pPlaybackConfigurationName_ =+    ConfigureLogsForPlaybackConfiguration'+      { percentEnabled =+          pPercentEnabled_,+        playbackConfigurationName =+          pPlaybackConfigurationName_+      }++-- | The percentage of session logs that MediaTailor sends to your Cloudwatch+-- Logs account. For example, if your playback configuration has 1000+-- sessions and percentEnabled is set to @60@, MediaTailor sends logs for+-- 600 of the sessions to CloudWatch Logs. MediaTailor decides at random+-- which of the playback configuration sessions to send logs for. If you+-- want to view logs for a specific session, you can use the+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/debug-log-mode.html debug log mode>.+--+-- Valid values: @0@ - @100@+configureLogsForPlaybackConfiguration_percentEnabled :: Lens.Lens' ConfigureLogsForPlaybackConfiguration Prelude.Int+configureLogsForPlaybackConfiguration_percentEnabled = Lens.lens (\ConfigureLogsForPlaybackConfiguration' {percentEnabled} -> percentEnabled) (\s@ConfigureLogsForPlaybackConfiguration' {} a -> s {percentEnabled = a} :: ConfigureLogsForPlaybackConfiguration)++-- | The name of the playback configuration.+configureLogsForPlaybackConfiguration_playbackConfigurationName :: Lens.Lens' ConfigureLogsForPlaybackConfiguration Prelude.Text+configureLogsForPlaybackConfiguration_playbackConfigurationName = Lens.lens (\ConfigureLogsForPlaybackConfiguration' {playbackConfigurationName} -> playbackConfigurationName) (\s@ConfigureLogsForPlaybackConfiguration' {} a -> s {playbackConfigurationName = a} :: ConfigureLogsForPlaybackConfiguration)++instance+  Core.AWSRequest+    ConfigureLogsForPlaybackConfiguration+  where+  type+    AWSResponse+      ConfigureLogsForPlaybackConfiguration =+      ConfigureLogsForPlaybackConfigurationResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ConfigureLogsForPlaybackConfigurationResponse'+            Prelude.<$> (x Data..?> "PlaybackConfigurationName")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "PercentEnabled")+      )++instance+  Prelude.Hashable+    ConfigureLogsForPlaybackConfiguration+  where+  hashWithSalt+    _salt+    ConfigureLogsForPlaybackConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` percentEnabled+        `Prelude.hashWithSalt` playbackConfigurationName++instance+  Prelude.NFData+    ConfigureLogsForPlaybackConfiguration+  where+  rnf ConfigureLogsForPlaybackConfiguration' {..} =+    Prelude.rnf percentEnabled+      `Prelude.seq` Prelude.rnf playbackConfigurationName++instance+  Data.ToHeaders+    ConfigureLogsForPlaybackConfiguration+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    ConfigureLogsForPlaybackConfiguration+  where+  toJSON ConfigureLogsForPlaybackConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("PercentEnabled" Data..= percentEnabled),+            Prelude.Just+              ( "PlaybackConfigurationName"+                  Data..= playbackConfigurationName+              )+          ]+      )++instance+  Data.ToPath+    ConfigureLogsForPlaybackConfiguration+  where+  toPath =+    Prelude.const+      "/configureLogs/playbackConfiguration"++instance+  Data.ToQuery+    ConfigureLogsForPlaybackConfiguration+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newConfigureLogsForPlaybackConfigurationResponse' smart constructor.+data ConfigureLogsForPlaybackConfigurationResponse = ConfigureLogsForPlaybackConfigurationResponse'+  { -- | The name of the playback configuration.+    playbackConfigurationName :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The percentage of session logs that MediaTailor sends to your Cloudwatch+    -- Logs account.+    percentEnabled :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConfigureLogsForPlaybackConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'playbackConfigurationName', 'configureLogsForPlaybackConfigurationResponse_playbackConfigurationName' - The name of the playback configuration.+--+-- 'httpStatus', 'configureLogsForPlaybackConfigurationResponse_httpStatus' - The response's http status code.+--+-- 'percentEnabled', 'configureLogsForPlaybackConfigurationResponse_percentEnabled' - The percentage of session logs that MediaTailor sends to your Cloudwatch+-- Logs account.+newConfigureLogsForPlaybackConfigurationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'percentEnabled'+  Prelude.Int ->+  ConfigureLogsForPlaybackConfigurationResponse+newConfigureLogsForPlaybackConfigurationResponse+  pHttpStatus_+  pPercentEnabled_ =+    ConfigureLogsForPlaybackConfigurationResponse'+      { playbackConfigurationName =+          Prelude.Nothing,+        httpStatus = pHttpStatus_,+        percentEnabled =+          pPercentEnabled_+      }++-- | The name of the playback configuration.+configureLogsForPlaybackConfigurationResponse_playbackConfigurationName :: Lens.Lens' ConfigureLogsForPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)+configureLogsForPlaybackConfigurationResponse_playbackConfigurationName = Lens.lens (\ConfigureLogsForPlaybackConfigurationResponse' {playbackConfigurationName} -> playbackConfigurationName) (\s@ConfigureLogsForPlaybackConfigurationResponse' {} a -> s {playbackConfigurationName = a} :: ConfigureLogsForPlaybackConfigurationResponse)++-- | The response's http status code.+configureLogsForPlaybackConfigurationResponse_httpStatus :: Lens.Lens' ConfigureLogsForPlaybackConfigurationResponse Prelude.Int+configureLogsForPlaybackConfigurationResponse_httpStatus = Lens.lens (\ConfigureLogsForPlaybackConfigurationResponse' {httpStatus} -> httpStatus) (\s@ConfigureLogsForPlaybackConfigurationResponse' {} a -> s {httpStatus = a} :: ConfigureLogsForPlaybackConfigurationResponse)++-- | The percentage of session logs that MediaTailor sends to your Cloudwatch+-- Logs account.+configureLogsForPlaybackConfigurationResponse_percentEnabled :: Lens.Lens' ConfigureLogsForPlaybackConfigurationResponse Prelude.Int+configureLogsForPlaybackConfigurationResponse_percentEnabled = Lens.lens (\ConfigureLogsForPlaybackConfigurationResponse' {percentEnabled} -> percentEnabled) (\s@ConfigureLogsForPlaybackConfigurationResponse' {} a -> s {percentEnabled = a} :: ConfigureLogsForPlaybackConfigurationResponse)++instance+  Prelude.NFData+    ConfigureLogsForPlaybackConfigurationResponse+  where+  rnf+    ConfigureLogsForPlaybackConfigurationResponse' {..} =+      Prelude.rnf playbackConfigurationName+        `Prelude.seq` Prelude.rnf httpStatus+        `Prelude.seq` Prelude.rnf percentEnabled
+ gen/Amazonka/MediaTailor/CreateChannel.hs view
@@ -0,0 +1,397 @@+{-# 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.MediaTailor.CreateChannel+-- 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 channel. For information about MediaTailor channels, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/channel-assembly-channels.html Working with channels>+-- in the /MediaTailor User Guide/.+module Amazonka.MediaTailor.CreateChannel+  ( -- * Creating a Request+    CreateChannel (..),+    newCreateChannel,++    -- * Request Lenses+    createChannel_fillerSlate,+    createChannel_tags,+    createChannel_tier,+    createChannel_channelName,+    createChannel_outputs,+    createChannel_playbackMode,++    -- * Destructuring the Response+    CreateChannelResponse (..),+    newCreateChannelResponse,++    -- * Response Lenses+    createChannelResponse_arn,+    createChannelResponse_channelName,+    createChannelResponse_channelState,+    createChannelResponse_creationTime,+    createChannelResponse_fillerSlate,+    createChannelResponse_lastModifiedTime,+    createChannelResponse_outputs,+    createChannelResponse_playbackMode,+    createChannelResponse_tags,+    createChannelResponse_tier,+    createChannelResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateChannel' smart constructor.+data CreateChannel = CreateChannel'+  { -- | The slate used to fill gaps between programs in the schedule. You must+    -- configure filler slate if your channel uses the @LINEAR@ @PlaybackMode@.+    -- MediaTailor doesn\'t support filler slate for channels using the @LOOP@+    -- @PlaybackMode@.+    fillerSlate :: Prelude.Maybe SlateSource,+    -- | The tags to assign to the channel. Tags are key-value pairs that you can+    -- associate with Amazon resources to help with organization, access+    -- control, and cost tracking. For more information, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The tier of the channel.+    tier :: Prelude.Maybe Tier,+    -- | The name of the channel.+    channelName :: Prelude.Text,+    -- | The channel\'s output properties.+    outputs :: [RequestOutputItem],+    -- | The type of playback mode to use for this channel.+    --+    -- @LINEAR@ - The programs in the schedule play once back-to-back in the+    -- schedule.+    --+    -- @LOOP@ - The programs in the schedule play back-to-back in an endless+    -- loop. When the last program in the schedule stops playing, playback+    -- loops back to the first program in the schedule.+    playbackMode :: PlaybackMode+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateChannel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fillerSlate', 'createChannel_fillerSlate' - The slate used to fill gaps between programs in the schedule. You must+-- configure filler slate if your channel uses the @LINEAR@ @PlaybackMode@.+-- MediaTailor doesn\'t support filler slate for channels using the @LOOP@+-- @PlaybackMode@.+--+-- 'tags', 'createChannel_tags' - The tags to assign to the channel. Tags are key-value pairs that you can+-- associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+--+-- 'tier', 'createChannel_tier' - The tier of the channel.+--+-- 'channelName', 'createChannel_channelName' - The name of the channel.+--+-- 'outputs', 'createChannel_outputs' - The channel\'s output properties.+--+-- 'playbackMode', 'createChannel_playbackMode' - The type of playback mode to use for this channel.+--+-- @LINEAR@ - The programs in the schedule play once back-to-back in the+-- schedule.+--+-- @LOOP@ - The programs in the schedule play back-to-back in an endless+-- loop. When the last program in the schedule stops playing, playback+-- loops back to the first program in the schedule.+newCreateChannel ::+  -- | 'channelName'+  Prelude.Text ->+  -- | 'playbackMode'+  PlaybackMode ->+  CreateChannel+newCreateChannel pChannelName_ pPlaybackMode_ =+  CreateChannel'+    { fillerSlate = Prelude.Nothing,+      tags = Prelude.Nothing,+      tier = Prelude.Nothing,+      channelName = pChannelName_,+      outputs = Prelude.mempty,+      playbackMode = pPlaybackMode_+    }++-- | The slate used to fill gaps between programs in the schedule. You must+-- configure filler slate if your channel uses the @LINEAR@ @PlaybackMode@.+-- MediaTailor doesn\'t support filler slate for channels using the @LOOP@+-- @PlaybackMode@.+createChannel_fillerSlate :: Lens.Lens' CreateChannel (Prelude.Maybe SlateSource)+createChannel_fillerSlate = Lens.lens (\CreateChannel' {fillerSlate} -> fillerSlate) (\s@CreateChannel' {} a -> s {fillerSlate = a} :: CreateChannel)++-- | The tags to assign to the channel. Tags are key-value pairs that you can+-- associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+createChannel_tags :: Lens.Lens' CreateChannel (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createChannel_tags = Lens.lens (\CreateChannel' {tags} -> tags) (\s@CreateChannel' {} a -> s {tags = a} :: CreateChannel) Prelude.. Lens.mapping Lens.coerced++-- | The tier of the channel.+createChannel_tier :: Lens.Lens' CreateChannel (Prelude.Maybe Tier)+createChannel_tier = Lens.lens (\CreateChannel' {tier} -> tier) (\s@CreateChannel' {} a -> s {tier = a} :: CreateChannel)++-- | The name of the channel.+createChannel_channelName :: Lens.Lens' CreateChannel Prelude.Text+createChannel_channelName = Lens.lens (\CreateChannel' {channelName} -> channelName) (\s@CreateChannel' {} a -> s {channelName = a} :: CreateChannel)++-- | The channel\'s output properties.+createChannel_outputs :: Lens.Lens' CreateChannel [RequestOutputItem]+createChannel_outputs = Lens.lens (\CreateChannel' {outputs} -> outputs) (\s@CreateChannel' {} a -> s {outputs = a} :: CreateChannel) Prelude.. Lens.coerced++-- | The type of playback mode to use for this channel.+--+-- @LINEAR@ - The programs in the schedule play once back-to-back in the+-- schedule.+--+-- @LOOP@ - The programs in the schedule play back-to-back in an endless+-- loop. When the last program in the schedule stops playing, playback+-- loops back to the first program in the schedule.+createChannel_playbackMode :: Lens.Lens' CreateChannel PlaybackMode+createChannel_playbackMode = Lens.lens (\CreateChannel' {playbackMode} -> playbackMode) (\s@CreateChannel' {} a -> s {playbackMode = a} :: CreateChannel)++instance Core.AWSRequest CreateChannel where+  type+    AWSResponse CreateChannel =+      CreateChannelResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateChannelResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "ChannelName")+            Prelude.<*> (x Data..?> "ChannelState")+            Prelude.<*> (x Data..?> "CreationTime")+            Prelude.<*> (x Data..?> "FillerSlate")+            Prelude.<*> (x Data..?> "LastModifiedTime")+            Prelude.<*> (x Data..?> "Outputs" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "PlaybackMode")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "Tier")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateChannel where+  hashWithSalt _salt CreateChannel' {..} =+    _salt+      `Prelude.hashWithSalt` fillerSlate+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` tier+      `Prelude.hashWithSalt` channelName+      `Prelude.hashWithSalt` outputs+      `Prelude.hashWithSalt` playbackMode++instance Prelude.NFData CreateChannel where+  rnf CreateChannel' {..} =+    Prelude.rnf fillerSlate+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf tier+      `Prelude.seq` Prelude.rnf channelName+      `Prelude.seq` Prelude.rnf outputs+      `Prelude.seq` Prelude.rnf playbackMode++instance Data.ToHeaders CreateChannel where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateChannel where+  toJSON CreateChannel' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("FillerSlate" Data..=) Prelude.<$> fillerSlate,+            ("tags" Data..=) Prelude.<$> tags,+            ("Tier" Data..=) Prelude.<$> tier,+            Prelude.Just ("Outputs" Data..= outputs),+            Prelude.Just ("PlaybackMode" Data..= playbackMode)+          ]+      )++instance Data.ToPath CreateChannel where+  toPath CreateChannel' {..} =+    Prelude.mconcat+      ["/channel/", Data.toBS channelName]++instance Data.ToQuery CreateChannel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateChannelResponse' smart constructor.+data CreateChannelResponse = CreateChannelResponse'+  { -- | The Amazon Resource Name (ARN) to assign to the channel.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The name to assign to the channel.+    channelName :: Prelude.Maybe Prelude.Text,+    -- | Indicates whether the channel is in a running state or not.+    channelState :: Prelude.Maybe ChannelState,+    -- | The timestamp of when the channel was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | Contains information about the slate used to fill gaps between programs+    -- in the schedule.+    fillerSlate :: Prelude.Maybe SlateSource,+    -- | The timestamp of when the channel was last modified.+    lastModifiedTime :: Prelude.Maybe Data.POSIX,+    -- | The output properties to assign to the channel.+    outputs :: Prelude.Maybe [ResponseOutputItem],+    -- | The playback mode to assign to the channel.+    playbackMode :: Prelude.Maybe Prelude.Text,+    -- | The tags to assign to the channel. Tags are key-value pairs that you can+    -- associate with Amazon resources to help with organization, access+    -- control, and cost tracking. For more information, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The tier of the channel.+    tier :: 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 'CreateChannelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createChannelResponse_arn' - The Amazon Resource Name (ARN) to assign to the channel.+--+-- 'channelName', 'createChannelResponse_channelName' - The name to assign to the channel.+--+-- 'channelState', 'createChannelResponse_channelState' - Indicates whether the channel is in a running state or not.+--+-- 'creationTime', 'createChannelResponse_creationTime' - The timestamp of when the channel was created.+--+-- 'fillerSlate', 'createChannelResponse_fillerSlate' - Contains information about the slate used to fill gaps between programs+-- in the schedule.+--+-- 'lastModifiedTime', 'createChannelResponse_lastModifiedTime' - The timestamp of when the channel was last modified.+--+-- 'outputs', 'createChannelResponse_outputs' - The output properties to assign to the channel.+--+-- 'playbackMode', 'createChannelResponse_playbackMode' - The playback mode to assign to the channel.+--+-- 'tags', 'createChannelResponse_tags' - The tags to assign to the channel. Tags are key-value pairs that you can+-- associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+--+-- 'tier', 'createChannelResponse_tier' - The tier of the channel.+--+-- 'httpStatus', 'createChannelResponse_httpStatus' - The response's http status code.+newCreateChannelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateChannelResponse+newCreateChannelResponse pHttpStatus_ =+  CreateChannelResponse'+    { arn = Prelude.Nothing,+      channelName = Prelude.Nothing,+      channelState = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      fillerSlate = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      outputs = Prelude.Nothing,+      playbackMode = Prelude.Nothing,+      tags = Prelude.Nothing,+      tier = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) to assign to the channel.+createChannelResponse_arn :: Lens.Lens' CreateChannelResponse (Prelude.Maybe Prelude.Text)+createChannelResponse_arn = Lens.lens (\CreateChannelResponse' {arn} -> arn) (\s@CreateChannelResponse' {} a -> s {arn = a} :: CreateChannelResponse)++-- | The name to assign to the channel.+createChannelResponse_channelName :: Lens.Lens' CreateChannelResponse (Prelude.Maybe Prelude.Text)+createChannelResponse_channelName = Lens.lens (\CreateChannelResponse' {channelName} -> channelName) (\s@CreateChannelResponse' {} a -> s {channelName = a} :: CreateChannelResponse)++-- | Indicates whether the channel is in a running state or not.+createChannelResponse_channelState :: Lens.Lens' CreateChannelResponse (Prelude.Maybe ChannelState)+createChannelResponse_channelState = Lens.lens (\CreateChannelResponse' {channelState} -> channelState) (\s@CreateChannelResponse' {} a -> s {channelState = a} :: CreateChannelResponse)++-- | The timestamp of when the channel was created.+createChannelResponse_creationTime :: Lens.Lens' CreateChannelResponse (Prelude.Maybe Prelude.UTCTime)+createChannelResponse_creationTime = Lens.lens (\CreateChannelResponse' {creationTime} -> creationTime) (\s@CreateChannelResponse' {} a -> s {creationTime = a} :: CreateChannelResponse) Prelude.. Lens.mapping Data._Time++-- | Contains information about the slate used to fill gaps between programs+-- in the schedule.+createChannelResponse_fillerSlate :: Lens.Lens' CreateChannelResponse (Prelude.Maybe SlateSource)+createChannelResponse_fillerSlate = Lens.lens (\CreateChannelResponse' {fillerSlate} -> fillerSlate) (\s@CreateChannelResponse' {} a -> s {fillerSlate = a} :: CreateChannelResponse)++-- | The timestamp of when the channel was last modified.+createChannelResponse_lastModifiedTime :: Lens.Lens' CreateChannelResponse (Prelude.Maybe Prelude.UTCTime)+createChannelResponse_lastModifiedTime = Lens.lens (\CreateChannelResponse' {lastModifiedTime} -> lastModifiedTime) (\s@CreateChannelResponse' {} a -> s {lastModifiedTime = a} :: CreateChannelResponse) Prelude.. Lens.mapping Data._Time++-- | The output properties to assign to the channel.+createChannelResponse_outputs :: Lens.Lens' CreateChannelResponse (Prelude.Maybe [ResponseOutputItem])+createChannelResponse_outputs = Lens.lens (\CreateChannelResponse' {outputs} -> outputs) (\s@CreateChannelResponse' {} a -> s {outputs = a} :: CreateChannelResponse) Prelude.. Lens.mapping Lens.coerced++-- | The playback mode to assign to the channel.+createChannelResponse_playbackMode :: Lens.Lens' CreateChannelResponse (Prelude.Maybe Prelude.Text)+createChannelResponse_playbackMode = Lens.lens (\CreateChannelResponse' {playbackMode} -> playbackMode) (\s@CreateChannelResponse' {} a -> s {playbackMode = a} :: CreateChannelResponse)++-- | The tags to assign to the channel. Tags are key-value pairs that you can+-- associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+createChannelResponse_tags :: Lens.Lens' CreateChannelResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createChannelResponse_tags = Lens.lens (\CreateChannelResponse' {tags} -> tags) (\s@CreateChannelResponse' {} a -> s {tags = a} :: CreateChannelResponse) Prelude.. Lens.mapping Lens.coerced++-- | The tier of the channel.+createChannelResponse_tier :: Lens.Lens' CreateChannelResponse (Prelude.Maybe Prelude.Text)+createChannelResponse_tier = Lens.lens (\CreateChannelResponse' {tier} -> tier) (\s@CreateChannelResponse' {} a -> s {tier = a} :: CreateChannelResponse)++-- | The response's http status code.+createChannelResponse_httpStatus :: Lens.Lens' CreateChannelResponse Prelude.Int+createChannelResponse_httpStatus = Lens.lens (\CreateChannelResponse' {httpStatus} -> httpStatus) (\s@CreateChannelResponse' {} a -> s {httpStatus = a} :: CreateChannelResponse)++instance Prelude.NFData CreateChannelResponse where+  rnf CreateChannelResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf channelName+      `Prelude.seq` Prelude.rnf channelState+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf fillerSlate+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf outputs+      `Prelude.seq` Prelude.rnf playbackMode+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf tier+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/CreateLiveSource.hs view
@@ -0,0 +1,311 @@+{-# 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.MediaTailor.CreateLiveSource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- The live source configuration.+module Amazonka.MediaTailor.CreateLiveSource+  ( -- * Creating a Request+    CreateLiveSource (..),+    newCreateLiveSource,++    -- * Request Lenses+    createLiveSource_tags,+    createLiveSource_httpPackageConfigurations,+    createLiveSource_liveSourceName,+    createLiveSource_sourceLocationName,++    -- * Destructuring the Response+    CreateLiveSourceResponse (..),+    newCreateLiveSourceResponse,++    -- * Response Lenses+    createLiveSourceResponse_arn,+    createLiveSourceResponse_creationTime,+    createLiveSourceResponse_httpPackageConfigurations,+    createLiveSourceResponse_lastModifiedTime,+    createLiveSourceResponse_liveSourceName,+    createLiveSourceResponse_sourceLocationName,+    createLiveSourceResponse_tags,+    createLiveSourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateLiveSource' smart constructor.+data CreateLiveSource = CreateLiveSource'+  { -- | The tags to assign to the live source. Tags are key-value pairs that you+    -- can associate with Amazon resources to help with organization, access+    -- control, and cost tracking. For more information, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | A list of HTTP package configuration parameters for this live source.+    httpPackageConfigurations :: [HttpPackageConfiguration],+    -- | The name of the live source.+    liveSourceName :: Prelude.Text,+    -- | The name of the source location.+    sourceLocationName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateLiveSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createLiveSource_tags' - The tags to assign to the live source. Tags are key-value pairs that you+-- can associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+--+-- 'httpPackageConfigurations', 'createLiveSource_httpPackageConfigurations' - A list of HTTP package configuration parameters for this live source.+--+-- 'liveSourceName', 'createLiveSource_liveSourceName' - The name of the live source.+--+-- 'sourceLocationName', 'createLiveSource_sourceLocationName' - The name of the source location.+newCreateLiveSource ::+  -- | 'liveSourceName'+  Prelude.Text ->+  -- | 'sourceLocationName'+  Prelude.Text ->+  CreateLiveSource+newCreateLiveSource+  pLiveSourceName_+  pSourceLocationName_ =+    CreateLiveSource'+      { tags = Prelude.Nothing,+        httpPackageConfigurations = Prelude.mempty,+        liveSourceName = pLiveSourceName_,+        sourceLocationName = pSourceLocationName_+      }++-- | The tags to assign to the live source. Tags are key-value pairs that you+-- can associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+createLiveSource_tags :: Lens.Lens' CreateLiveSource (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createLiveSource_tags = Lens.lens (\CreateLiveSource' {tags} -> tags) (\s@CreateLiveSource' {} a -> s {tags = a} :: CreateLiveSource) Prelude.. Lens.mapping Lens.coerced++-- | A list of HTTP package configuration parameters for this live source.+createLiveSource_httpPackageConfigurations :: Lens.Lens' CreateLiveSource [HttpPackageConfiguration]+createLiveSource_httpPackageConfigurations = Lens.lens (\CreateLiveSource' {httpPackageConfigurations} -> httpPackageConfigurations) (\s@CreateLiveSource' {} a -> s {httpPackageConfigurations = a} :: CreateLiveSource) Prelude.. Lens.coerced++-- | The name of the live source.+createLiveSource_liveSourceName :: Lens.Lens' CreateLiveSource Prelude.Text+createLiveSource_liveSourceName = Lens.lens (\CreateLiveSource' {liveSourceName} -> liveSourceName) (\s@CreateLiveSource' {} a -> s {liveSourceName = a} :: CreateLiveSource)++-- | The name of the source location.+createLiveSource_sourceLocationName :: Lens.Lens' CreateLiveSource Prelude.Text+createLiveSource_sourceLocationName = Lens.lens (\CreateLiveSource' {sourceLocationName} -> sourceLocationName) (\s@CreateLiveSource' {} a -> s {sourceLocationName = a} :: CreateLiveSource)++instance Core.AWSRequest CreateLiveSource where+  type+    AWSResponse CreateLiveSource =+      CreateLiveSourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateLiveSourceResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "CreationTime")+            Prelude.<*> ( x+                            Data..?> "HttpPackageConfigurations"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "LastModifiedTime")+            Prelude.<*> (x Data..?> "LiveSourceName")+            Prelude.<*> (x Data..?> "SourceLocationName")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateLiveSource where+  hashWithSalt _salt CreateLiveSource' {..} =+    _salt+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` httpPackageConfigurations+      `Prelude.hashWithSalt` liveSourceName+      `Prelude.hashWithSalt` sourceLocationName++instance Prelude.NFData CreateLiveSource where+  rnf CreateLiveSource' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpPackageConfigurations+      `Prelude.seq` Prelude.rnf liveSourceName+      `Prelude.seq` Prelude.rnf sourceLocationName++instance Data.ToHeaders CreateLiveSource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateLiveSource where+  toJSON CreateLiveSource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ( "HttpPackageConfigurations"+                  Data..= httpPackageConfigurations+              )+          ]+      )++instance Data.ToPath CreateLiveSource where+  toPath CreateLiveSource' {..} =+    Prelude.mconcat+      [ "/sourceLocation/",+        Data.toBS sourceLocationName,+        "/liveSource/",+        Data.toBS liveSourceName+      ]++instance Data.ToQuery CreateLiveSource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateLiveSourceResponse' smart constructor.+data CreateLiveSourceResponse = CreateLiveSourceResponse'+  { -- | The ARN to assign to the live source.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The time the live source was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | A list of HTTP package configuration parameters for this live source.+    httpPackageConfigurations :: Prelude.Maybe [HttpPackageConfiguration],+    -- | The time the live source was last modified.+    lastModifiedTime :: Prelude.Maybe Data.POSIX,+    -- | The name to assign to the live source.+    liveSourceName :: Prelude.Maybe Prelude.Text,+    -- | The name to assign to the source location of the live source.+    sourceLocationName :: Prelude.Maybe Prelude.Text,+    -- | The tags to assign to the live source. Tags are key-value pairs that you+    -- can associate with Amazon resources to help with organization, access+    -- control, and cost tracking. For more information, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+    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 'CreateLiveSourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createLiveSourceResponse_arn' - The ARN to assign to the live source.+--+-- 'creationTime', 'createLiveSourceResponse_creationTime' - The time the live source was created.+--+-- 'httpPackageConfigurations', 'createLiveSourceResponse_httpPackageConfigurations' - A list of HTTP package configuration parameters for this live source.+--+-- 'lastModifiedTime', 'createLiveSourceResponse_lastModifiedTime' - The time the live source was last modified.+--+-- 'liveSourceName', 'createLiveSourceResponse_liveSourceName' - The name to assign to the live source.+--+-- 'sourceLocationName', 'createLiveSourceResponse_sourceLocationName' - The name to assign to the source location of the live source.+--+-- 'tags', 'createLiveSourceResponse_tags' - The tags to assign to the live source. Tags are key-value pairs that you+-- can associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+--+-- 'httpStatus', 'createLiveSourceResponse_httpStatus' - The response's http status code.+newCreateLiveSourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateLiveSourceResponse+newCreateLiveSourceResponse pHttpStatus_ =+  CreateLiveSourceResponse'+    { arn = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      httpPackageConfigurations = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      liveSourceName = Prelude.Nothing,+      sourceLocationName = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN to assign to the live source.+createLiveSourceResponse_arn :: Lens.Lens' CreateLiveSourceResponse (Prelude.Maybe Prelude.Text)+createLiveSourceResponse_arn = Lens.lens (\CreateLiveSourceResponse' {arn} -> arn) (\s@CreateLiveSourceResponse' {} a -> s {arn = a} :: CreateLiveSourceResponse)++-- | The time the live source was created.+createLiveSourceResponse_creationTime :: Lens.Lens' CreateLiveSourceResponse (Prelude.Maybe Prelude.UTCTime)+createLiveSourceResponse_creationTime = Lens.lens (\CreateLiveSourceResponse' {creationTime} -> creationTime) (\s@CreateLiveSourceResponse' {} a -> s {creationTime = a} :: CreateLiveSourceResponse) Prelude.. Lens.mapping Data._Time++-- | A list of HTTP package configuration parameters for this live source.+createLiveSourceResponse_httpPackageConfigurations :: Lens.Lens' CreateLiveSourceResponse (Prelude.Maybe [HttpPackageConfiguration])+createLiveSourceResponse_httpPackageConfigurations = Lens.lens (\CreateLiveSourceResponse' {httpPackageConfigurations} -> httpPackageConfigurations) (\s@CreateLiveSourceResponse' {} a -> s {httpPackageConfigurations = a} :: CreateLiveSourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The time the live source was last modified.+createLiveSourceResponse_lastModifiedTime :: Lens.Lens' CreateLiveSourceResponse (Prelude.Maybe Prelude.UTCTime)+createLiveSourceResponse_lastModifiedTime = Lens.lens (\CreateLiveSourceResponse' {lastModifiedTime} -> lastModifiedTime) (\s@CreateLiveSourceResponse' {} a -> s {lastModifiedTime = a} :: CreateLiveSourceResponse) Prelude.. Lens.mapping Data._Time++-- | The name to assign to the live source.+createLiveSourceResponse_liveSourceName :: Lens.Lens' CreateLiveSourceResponse (Prelude.Maybe Prelude.Text)+createLiveSourceResponse_liveSourceName = Lens.lens (\CreateLiveSourceResponse' {liveSourceName} -> liveSourceName) (\s@CreateLiveSourceResponse' {} a -> s {liveSourceName = a} :: CreateLiveSourceResponse)++-- | The name to assign to the source location of the live source.+createLiveSourceResponse_sourceLocationName :: Lens.Lens' CreateLiveSourceResponse (Prelude.Maybe Prelude.Text)+createLiveSourceResponse_sourceLocationName = Lens.lens (\CreateLiveSourceResponse' {sourceLocationName} -> sourceLocationName) (\s@CreateLiveSourceResponse' {} a -> s {sourceLocationName = a} :: CreateLiveSourceResponse)++-- | The tags to assign to the live source. Tags are key-value pairs that you+-- can associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+createLiveSourceResponse_tags :: Lens.Lens' CreateLiveSourceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createLiveSourceResponse_tags = Lens.lens (\CreateLiveSourceResponse' {tags} -> tags) (\s@CreateLiveSourceResponse' {} a -> s {tags = a} :: CreateLiveSourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+createLiveSourceResponse_httpStatus :: Lens.Lens' CreateLiveSourceResponse Prelude.Int+createLiveSourceResponse_httpStatus = Lens.lens (\CreateLiveSourceResponse' {httpStatus} -> httpStatus) (\s@CreateLiveSourceResponse' {} a -> s {httpStatus = a} :: CreateLiveSourceResponse)++instance Prelude.NFData CreateLiveSourceResponse where+  rnf CreateLiveSourceResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf httpPackageConfigurations+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf liveSourceName+      `Prelude.seq` Prelude.rnf sourceLocationName+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/CreatePrefetchSchedule.hs view
@@ -0,0 +1,370 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaTailor.CreatePrefetchSchedule+-- 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 prefetch schedule for a playback configuration. A prefetch+-- schedule allows you to tell MediaTailor to fetch and prepare certain ads+-- before an ad break happens. For more information about ad prefetching,+-- see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/prefetching-ads.html Using ad prefetching>+-- in the /MediaTailor User Guide/.+module Amazonka.MediaTailor.CreatePrefetchSchedule+  ( -- * Creating a Request+    CreatePrefetchSchedule (..),+    newCreatePrefetchSchedule,++    -- * Request Lenses+    createPrefetchSchedule_streamId,+    createPrefetchSchedule_consumption,+    createPrefetchSchedule_name,+    createPrefetchSchedule_playbackConfigurationName,+    createPrefetchSchedule_retrieval,++    -- * Destructuring the Response+    CreatePrefetchScheduleResponse (..),+    newCreatePrefetchScheduleResponse,++    -- * Response Lenses+    createPrefetchScheduleResponse_arn,+    createPrefetchScheduleResponse_consumption,+    createPrefetchScheduleResponse_name,+    createPrefetchScheduleResponse_playbackConfigurationName,+    createPrefetchScheduleResponse_retrieval,+    createPrefetchScheduleResponse_streamId,+    createPrefetchScheduleResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreatePrefetchSchedule' smart constructor.+data CreatePrefetchSchedule = CreatePrefetchSchedule'+  { -- | An optional stream identifier that MediaTailor uses to prefetch ads for+    -- multiple streams that use the same playback configuration. If @StreamId@+    -- is specified, MediaTailor returns all of the prefetch schedules with an+    -- exact match on @StreamId@. If not specified, MediaTailor returns all of+    -- the prefetch schedules for the playback configuration, regardless of+    -- @StreamId@.+    streamId :: Prelude.Maybe Prelude.Text,+    -- | The configuration settings for MediaTailor\'s /consumption/ of the+    -- prefetched ads from the ad decision server. Each consumption+    -- configuration contains an end time and an optional start time that+    -- define the /consumption window/. Prefetch schedules automatically expire+    -- no earlier than seven days after the end time.+    consumption :: PrefetchConsumption,+    -- | The name to assign to the schedule request.+    name :: Prelude.Text,+    -- | The name to assign to the playback configuration.+    playbackConfigurationName :: Prelude.Text,+    -- | The configuration settings for retrieval of prefetched ads from the ad+    -- decision server. Only one set of prefetched ads will be retrieved and+    -- subsequently consumed for each ad break.+    retrieval :: PrefetchRetrieval+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreatePrefetchSchedule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'streamId', 'createPrefetchSchedule_streamId' - An optional stream identifier that MediaTailor uses to prefetch ads for+-- multiple streams that use the same playback configuration. If @StreamId@+-- is specified, MediaTailor returns all of the prefetch schedules with an+-- exact match on @StreamId@. If not specified, MediaTailor returns all of+-- the prefetch schedules for the playback configuration, regardless of+-- @StreamId@.+--+-- 'consumption', 'createPrefetchSchedule_consumption' - The configuration settings for MediaTailor\'s /consumption/ of the+-- prefetched ads from the ad decision server. Each consumption+-- configuration contains an end time and an optional start time that+-- define the /consumption window/. Prefetch schedules automatically expire+-- no earlier than seven days after the end time.+--+-- 'name', 'createPrefetchSchedule_name' - The name to assign to the schedule request.+--+-- 'playbackConfigurationName', 'createPrefetchSchedule_playbackConfigurationName' - The name to assign to the playback configuration.+--+-- 'retrieval', 'createPrefetchSchedule_retrieval' - The configuration settings for retrieval of prefetched ads from the ad+-- decision server. Only one set of prefetched ads will be retrieved and+-- subsequently consumed for each ad break.+newCreatePrefetchSchedule ::+  -- | 'consumption'+  PrefetchConsumption ->+  -- | 'name'+  Prelude.Text ->+  -- | 'playbackConfigurationName'+  Prelude.Text ->+  -- | 'retrieval'+  PrefetchRetrieval ->+  CreatePrefetchSchedule+newCreatePrefetchSchedule+  pConsumption_+  pName_+  pPlaybackConfigurationName_+  pRetrieval_ =+    CreatePrefetchSchedule'+      { streamId = Prelude.Nothing,+        consumption = pConsumption_,+        name = pName_,+        playbackConfigurationName =+          pPlaybackConfigurationName_,+        retrieval = pRetrieval_+      }++-- | An optional stream identifier that MediaTailor uses to prefetch ads for+-- multiple streams that use the same playback configuration. If @StreamId@+-- is specified, MediaTailor returns all of the prefetch schedules with an+-- exact match on @StreamId@. If not specified, MediaTailor returns all of+-- the prefetch schedules for the playback configuration, regardless of+-- @StreamId@.+createPrefetchSchedule_streamId :: Lens.Lens' CreatePrefetchSchedule (Prelude.Maybe Prelude.Text)+createPrefetchSchedule_streamId = Lens.lens (\CreatePrefetchSchedule' {streamId} -> streamId) (\s@CreatePrefetchSchedule' {} a -> s {streamId = a} :: CreatePrefetchSchedule)++-- | The configuration settings for MediaTailor\'s /consumption/ of the+-- prefetched ads from the ad decision server. Each consumption+-- configuration contains an end time and an optional start time that+-- define the /consumption window/. Prefetch schedules automatically expire+-- no earlier than seven days after the end time.+createPrefetchSchedule_consumption :: Lens.Lens' CreatePrefetchSchedule PrefetchConsumption+createPrefetchSchedule_consumption = Lens.lens (\CreatePrefetchSchedule' {consumption} -> consumption) (\s@CreatePrefetchSchedule' {} a -> s {consumption = a} :: CreatePrefetchSchedule)++-- | The name to assign to the schedule request.+createPrefetchSchedule_name :: Lens.Lens' CreatePrefetchSchedule Prelude.Text+createPrefetchSchedule_name = Lens.lens (\CreatePrefetchSchedule' {name} -> name) (\s@CreatePrefetchSchedule' {} a -> s {name = a} :: CreatePrefetchSchedule)++-- | The name to assign to the playback configuration.+createPrefetchSchedule_playbackConfigurationName :: Lens.Lens' CreatePrefetchSchedule Prelude.Text+createPrefetchSchedule_playbackConfigurationName = Lens.lens (\CreatePrefetchSchedule' {playbackConfigurationName} -> playbackConfigurationName) (\s@CreatePrefetchSchedule' {} a -> s {playbackConfigurationName = a} :: CreatePrefetchSchedule)++-- | The configuration settings for retrieval of prefetched ads from the ad+-- decision server. Only one set of prefetched ads will be retrieved and+-- subsequently consumed for each ad break.+createPrefetchSchedule_retrieval :: Lens.Lens' CreatePrefetchSchedule PrefetchRetrieval+createPrefetchSchedule_retrieval = Lens.lens (\CreatePrefetchSchedule' {retrieval} -> retrieval) (\s@CreatePrefetchSchedule' {} a -> s {retrieval = a} :: CreatePrefetchSchedule)++instance Core.AWSRequest CreatePrefetchSchedule where+  type+    AWSResponse CreatePrefetchSchedule =+      CreatePrefetchScheduleResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreatePrefetchScheduleResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "Consumption")+            Prelude.<*> (x Data..?> "Name")+            Prelude.<*> (x Data..?> "PlaybackConfigurationName")+            Prelude.<*> (x Data..?> "Retrieval")+            Prelude.<*> (x Data..?> "StreamId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreatePrefetchSchedule where+  hashWithSalt _salt CreatePrefetchSchedule' {..} =+    _salt+      `Prelude.hashWithSalt` streamId+      `Prelude.hashWithSalt` consumption+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` playbackConfigurationName+      `Prelude.hashWithSalt` retrieval++instance Prelude.NFData CreatePrefetchSchedule where+  rnf CreatePrefetchSchedule' {..} =+    Prelude.rnf streamId+      `Prelude.seq` Prelude.rnf consumption+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf playbackConfigurationName+      `Prelude.seq` Prelude.rnf retrieval++instance Data.ToHeaders CreatePrefetchSchedule where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreatePrefetchSchedule where+  toJSON CreatePrefetchSchedule' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("StreamId" Data..=) Prelude.<$> streamId,+            Prelude.Just ("Consumption" Data..= consumption),+            Prelude.Just ("Retrieval" Data..= retrieval)+          ]+      )++instance Data.ToPath CreatePrefetchSchedule where+  toPath CreatePrefetchSchedule' {..} =+    Prelude.mconcat+      [ "/prefetchSchedule/",+        Data.toBS playbackConfigurationName,+        "/",+        Data.toBS name+      ]++instance Data.ToQuery CreatePrefetchSchedule where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreatePrefetchScheduleResponse' smart constructor.+data CreatePrefetchScheduleResponse = CreatePrefetchScheduleResponse'+  { -- | The ARN to assign to the prefetch schedule.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The configuration settings for MediaTailor\'s /consumption/ of the+    -- prefetched ads from the ad decision server. Each consumption+    -- configuration contains an end time and an optional start time that+    -- define the /consumption window/. Prefetch schedules automatically expire+    -- no earlier than seven days after the end time.+    consumption :: Prelude.Maybe PrefetchConsumption,+    -- | The name to assign to the prefetch schedule.+    name :: Prelude.Maybe Prelude.Text,+    -- | The name to assign to the playback configuration.+    playbackConfigurationName :: Prelude.Maybe Prelude.Text,+    -- | The configuration settings for retrieval of prefetched ads from the ad+    -- decision server. Only one set of prefetched ads will be retrieved and+    -- subsequently consumed for each ad break.+    retrieval :: Prelude.Maybe PrefetchRetrieval,+    -- | An optional stream identifier that MediaTailor uses to prefetch ads for+    -- multiple streams that use the same playback configuration. If @StreamId@+    -- is specified, MediaTailor returns all of the prefetch schedules with an+    -- exact match on @StreamId@. If not specified, MediaTailor returns all of+    -- the prefetch schedules for the playback configuration, regardless of+    -- @StreamId@.+    streamId :: 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 'CreatePrefetchScheduleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createPrefetchScheduleResponse_arn' - The ARN to assign to the prefetch schedule.+--+-- 'consumption', 'createPrefetchScheduleResponse_consumption' - The configuration settings for MediaTailor\'s /consumption/ of the+-- prefetched ads from the ad decision server. Each consumption+-- configuration contains an end time and an optional start time that+-- define the /consumption window/. Prefetch schedules automatically expire+-- no earlier than seven days after the end time.+--+-- 'name', 'createPrefetchScheduleResponse_name' - The name to assign to the prefetch schedule.+--+-- 'playbackConfigurationName', 'createPrefetchScheduleResponse_playbackConfigurationName' - The name to assign to the playback configuration.+--+-- 'retrieval', 'createPrefetchScheduleResponse_retrieval' - The configuration settings for retrieval of prefetched ads from the ad+-- decision server. Only one set of prefetched ads will be retrieved and+-- subsequently consumed for each ad break.+--+-- 'streamId', 'createPrefetchScheduleResponse_streamId' - An optional stream identifier that MediaTailor uses to prefetch ads for+-- multiple streams that use the same playback configuration. If @StreamId@+-- is specified, MediaTailor returns all of the prefetch schedules with an+-- exact match on @StreamId@. If not specified, MediaTailor returns all of+-- the prefetch schedules for the playback configuration, regardless of+-- @StreamId@.+--+-- 'httpStatus', 'createPrefetchScheduleResponse_httpStatus' - The response's http status code.+newCreatePrefetchScheduleResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreatePrefetchScheduleResponse+newCreatePrefetchScheduleResponse pHttpStatus_ =+  CreatePrefetchScheduleResponse'+    { arn =+        Prelude.Nothing,+      consumption = Prelude.Nothing,+      name = Prelude.Nothing,+      playbackConfigurationName = Prelude.Nothing,+      retrieval = Prelude.Nothing,+      streamId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN to assign to the prefetch schedule.+createPrefetchScheduleResponse_arn :: Lens.Lens' CreatePrefetchScheduleResponse (Prelude.Maybe Prelude.Text)+createPrefetchScheduleResponse_arn = Lens.lens (\CreatePrefetchScheduleResponse' {arn} -> arn) (\s@CreatePrefetchScheduleResponse' {} a -> s {arn = a} :: CreatePrefetchScheduleResponse)++-- | The configuration settings for MediaTailor\'s /consumption/ of the+-- prefetched ads from the ad decision server. Each consumption+-- configuration contains an end time and an optional start time that+-- define the /consumption window/. Prefetch schedules automatically expire+-- no earlier than seven days after the end time.+createPrefetchScheduleResponse_consumption :: Lens.Lens' CreatePrefetchScheduleResponse (Prelude.Maybe PrefetchConsumption)+createPrefetchScheduleResponse_consumption = Lens.lens (\CreatePrefetchScheduleResponse' {consumption} -> consumption) (\s@CreatePrefetchScheduleResponse' {} a -> s {consumption = a} :: CreatePrefetchScheduleResponse)++-- | The name to assign to the prefetch schedule.+createPrefetchScheduleResponse_name :: Lens.Lens' CreatePrefetchScheduleResponse (Prelude.Maybe Prelude.Text)+createPrefetchScheduleResponse_name = Lens.lens (\CreatePrefetchScheduleResponse' {name} -> name) (\s@CreatePrefetchScheduleResponse' {} a -> s {name = a} :: CreatePrefetchScheduleResponse)++-- | The name to assign to the playback configuration.+createPrefetchScheduleResponse_playbackConfigurationName :: Lens.Lens' CreatePrefetchScheduleResponse (Prelude.Maybe Prelude.Text)+createPrefetchScheduleResponse_playbackConfigurationName = Lens.lens (\CreatePrefetchScheduleResponse' {playbackConfigurationName} -> playbackConfigurationName) (\s@CreatePrefetchScheduleResponse' {} a -> s {playbackConfigurationName = a} :: CreatePrefetchScheduleResponse)++-- | The configuration settings for retrieval of prefetched ads from the ad+-- decision server. Only one set of prefetched ads will be retrieved and+-- subsequently consumed for each ad break.+createPrefetchScheduleResponse_retrieval :: Lens.Lens' CreatePrefetchScheduleResponse (Prelude.Maybe PrefetchRetrieval)+createPrefetchScheduleResponse_retrieval = Lens.lens (\CreatePrefetchScheduleResponse' {retrieval} -> retrieval) (\s@CreatePrefetchScheduleResponse' {} a -> s {retrieval = a} :: CreatePrefetchScheduleResponse)++-- | An optional stream identifier that MediaTailor uses to prefetch ads for+-- multiple streams that use the same playback configuration. If @StreamId@+-- is specified, MediaTailor returns all of the prefetch schedules with an+-- exact match on @StreamId@. If not specified, MediaTailor returns all of+-- the prefetch schedules for the playback configuration, regardless of+-- @StreamId@.+createPrefetchScheduleResponse_streamId :: Lens.Lens' CreatePrefetchScheduleResponse (Prelude.Maybe Prelude.Text)+createPrefetchScheduleResponse_streamId = Lens.lens (\CreatePrefetchScheduleResponse' {streamId} -> streamId) (\s@CreatePrefetchScheduleResponse' {} a -> s {streamId = a} :: CreatePrefetchScheduleResponse)++-- | The response's http status code.+createPrefetchScheduleResponse_httpStatus :: Lens.Lens' CreatePrefetchScheduleResponse Prelude.Int+createPrefetchScheduleResponse_httpStatus = Lens.lens (\CreatePrefetchScheduleResponse' {httpStatus} -> httpStatus) (\s@CreatePrefetchScheduleResponse' {} a -> s {httpStatus = a} :: CreatePrefetchScheduleResponse)++instance+  Prelude.NFData+    CreatePrefetchScheduleResponse+  where+  rnf CreatePrefetchScheduleResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf consumption+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf playbackConfigurationName+      `Prelude.seq` Prelude.rnf retrieval+      `Prelude.seq` Prelude.rnf streamId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/CreateProgram.hs view
@@ -0,0 +1,363 @@+{-# 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.MediaTailor.CreateProgram+-- 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 program within a channel. For information about programs, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/channel-assembly-programs.html Working with programs>+-- in the /MediaTailor User Guide/.+module Amazonka.MediaTailor.CreateProgram+  ( -- * Creating a Request+    CreateProgram (..),+    newCreateProgram,++    -- * Request Lenses+    createProgram_adBreaks,+    createProgram_liveSourceName,+    createProgram_vodSourceName,+    createProgram_channelName,+    createProgram_programName,+    createProgram_scheduleConfiguration,+    createProgram_sourceLocationName,++    -- * Destructuring the Response+    CreateProgramResponse (..),+    newCreateProgramResponse,++    -- * Response Lenses+    createProgramResponse_adBreaks,+    createProgramResponse_arn,+    createProgramResponse_channelName,+    createProgramResponse_creationTime,+    createProgramResponse_liveSourceName,+    createProgramResponse_programName,+    createProgramResponse_scheduledStartTime,+    createProgramResponse_sourceLocationName,+    createProgramResponse_vodSourceName,+    createProgramResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateProgram' smart constructor.+data CreateProgram = CreateProgram'+  { -- | The ad break configuration settings.+    adBreaks :: Prelude.Maybe [AdBreak],+    -- | The name of the LiveSource for this Program.+    liveSourceName :: Prelude.Maybe Prelude.Text,+    -- | The name that\'s used to refer to a VOD source.+    vodSourceName :: Prelude.Maybe Prelude.Text,+    -- | The name of the channel for this Program.+    channelName :: Prelude.Text,+    -- | The name of the Program.+    programName :: Prelude.Text,+    -- | The schedule configuration settings.+    scheduleConfiguration :: ScheduleConfiguration,+    -- | The name of the source location.+    sourceLocationName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateProgram' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'adBreaks', 'createProgram_adBreaks' - The ad break configuration settings.+--+-- 'liveSourceName', 'createProgram_liveSourceName' - The name of the LiveSource for this Program.+--+-- 'vodSourceName', 'createProgram_vodSourceName' - The name that\'s used to refer to a VOD source.+--+-- 'channelName', 'createProgram_channelName' - The name of the channel for this Program.+--+-- 'programName', 'createProgram_programName' - The name of the Program.+--+-- 'scheduleConfiguration', 'createProgram_scheduleConfiguration' - The schedule configuration settings.+--+-- 'sourceLocationName', 'createProgram_sourceLocationName' - The name of the source location.+newCreateProgram ::+  -- | 'channelName'+  Prelude.Text ->+  -- | 'programName'+  Prelude.Text ->+  -- | 'scheduleConfiguration'+  ScheduleConfiguration ->+  -- | 'sourceLocationName'+  Prelude.Text ->+  CreateProgram+newCreateProgram+  pChannelName_+  pProgramName_+  pScheduleConfiguration_+  pSourceLocationName_ =+    CreateProgram'+      { adBreaks = Prelude.Nothing,+        liveSourceName = Prelude.Nothing,+        vodSourceName = Prelude.Nothing,+        channelName = pChannelName_,+        programName = pProgramName_,+        scheduleConfiguration = pScheduleConfiguration_,+        sourceLocationName = pSourceLocationName_+      }++-- | The ad break configuration settings.+createProgram_adBreaks :: Lens.Lens' CreateProgram (Prelude.Maybe [AdBreak])+createProgram_adBreaks = Lens.lens (\CreateProgram' {adBreaks} -> adBreaks) (\s@CreateProgram' {} a -> s {adBreaks = a} :: CreateProgram) Prelude.. Lens.mapping Lens.coerced++-- | The name of the LiveSource for this Program.+createProgram_liveSourceName :: Lens.Lens' CreateProgram (Prelude.Maybe Prelude.Text)+createProgram_liveSourceName = Lens.lens (\CreateProgram' {liveSourceName} -> liveSourceName) (\s@CreateProgram' {} a -> s {liveSourceName = a} :: CreateProgram)++-- | The name that\'s used to refer to a VOD source.+createProgram_vodSourceName :: Lens.Lens' CreateProgram (Prelude.Maybe Prelude.Text)+createProgram_vodSourceName = Lens.lens (\CreateProgram' {vodSourceName} -> vodSourceName) (\s@CreateProgram' {} a -> s {vodSourceName = a} :: CreateProgram)++-- | The name of the channel for this Program.+createProgram_channelName :: Lens.Lens' CreateProgram Prelude.Text+createProgram_channelName = Lens.lens (\CreateProgram' {channelName} -> channelName) (\s@CreateProgram' {} a -> s {channelName = a} :: CreateProgram)++-- | The name of the Program.+createProgram_programName :: Lens.Lens' CreateProgram Prelude.Text+createProgram_programName = Lens.lens (\CreateProgram' {programName} -> programName) (\s@CreateProgram' {} a -> s {programName = a} :: CreateProgram)++-- | The schedule configuration settings.+createProgram_scheduleConfiguration :: Lens.Lens' CreateProgram ScheduleConfiguration+createProgram_scheduleConfiguration = Lens.lens (\CreateProgram' {scheduleConfiguration} -> scheduleConfiguration) (\s@CreateProgram' {} a -> s {scheduleConfiguration = a} :: CreateProgram)++-- | The name of the source location.+createProgram_sourceLocationName :: Lens.Lens' CreateProgram Prelude.Text+createProgram_sourceLocationName = Lens.lens (\CreateProgram' {sourceLocationName} -> sourceLocationName) (\s@CreateProgram' {} a -> s {sourceLocationName = a} :: CreateProgram)++instance Core.AWSRequest CreateProgram where+  type+    AWSResponse CreateProgram =+      CreateProgramResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateProgramResponse'+            Prelude.<$> (x Data..?> "AdBreaks" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "ChannelName")+            Prelude.<*> (x Data..?> "CreationTime")+            Prelude.<*> (x Data..?> "LiveSourceName")+            Prelude.<*> (x Data..?> "ProgramName")+            Prelude.<*> (x Data..?> "ScheduledStartTime")+            Prelude.<*> (x Data..?> "SourceLocationName")+            Prelude.<*> (x Data..?> "VodSourceName")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateProgram where+  hashWithSalt _salt CreateProgram' {..} =+    _salt+      `Prelude.hashWithSalt` adBreaks+      `Prelude.hashWithSalt` liveSourceName+      `Prelude.hashWithSalt` vodSourceName+      `Prelude.hashWithSalt` channelName+      `Prelude.hashWithSalt` programName+      `Prelude.hashWithSalt` scheduleConfiguration+      `Prelude.hashWithSalt` sourceLocationName++instance Prelude.NFData CreateProgram where+  rnf CreateProgram' {..} =+    Prelude.rnf adBreaks+      `Prelude.seq` Prelude.rnf liveSourceName+      `Prelude.seq` Prelude.rnf vodSourceName+      `Prelude.seq` Prelude.rnf channelName+      `Prelude.seq` Prelude.rnf programName+      `Prelude.seq` Prelude.rnf scheduleConfiguration+      `Prelude.seq` Prelude.rnf sourceLocationName++instance Data.ToHeaders CreateProgram where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateProgram where+  toJSON CreateProgram' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AdBreaks" Data..=) Prelude.<$> adBreaks,+            ("LiveSourceName" Data..=)+              Prelude.<$> liveSourceName,+            ("VodSourceName" Data..=) Prelude.<$> vodSourceName,+            Prelude.Just+              ( "ScheduleConfiguration"+                  Data..= scheduleConfiguration+              ),+            Prelude.Just+              ("SourceLocationName" Data..= sourceLocationName)+          ]+      )++instance Data.ToPath CreateProgram where+  toPath CreateProgram' {..} =+    Prelude.mconcat+      [ "/channel/",+        Data.toBS channelName,+        "/program/",+        Data.toBS programName+      ]++instance Data.ToQuery CreateProgram where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateProgramResponse' smart constructor.+data CreateProgramResponse = CreateProgramResponse'+  { -- | The ad break configuration settings.+    adBreaks :: Prelude.Maybe [AdBreak],+    -- | The ARN to assign to the program.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The name to assign to the channel for this program.+    channelName :: Prelude.Maybe Prelude.Text,+    -- | The time the program was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the LiveSource for this Program.+    liveSourceName :: Prelude.Maybe Prelude.Text,+    -- | The name to assign to this program.+    programName :: Prelude.Maybe Prelude.Text,+    -- | The scheduled start time for this Program.+    scheduledStartTime :: Prelude.Maybe Data.POSIX,+    -- | The name to assign to the source location for this program.+    sourceLocationName :: Prelude.Maybe Prelude.Text,+    -- | The name that\'s used to refer to a VOD source.+    vodSourceName :: 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 'CreateProgramResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'adBreaks', 'createProgramResponse_adBreaks' - The ad break configuration settings.+--+-- 'arn', 'createProgramResponse_arn' - The ARN to assign to the program.+--+-- 'channelName', 'createProgramResponse_channelName' - The name to assign to the channel for this program.+--+-- 'creationTime', 'createProgramResponse_creationTime' - The time the program was created.+--+-- 'liveSourceName', 'createProgramResponse_liveSourceName' - The name of the LiveSource for this Program.+--+-- 'programName', 'createProgramResponse_programName' - The name to assign to this program.+--+-- 'scheduledStartTime', 'createProgramResponse_scheduledStartTime' - The scheduled start time for this Program.+--+-- 'sourceLocationName', 'createProgramResponse_sourceLocationName' - The name to assign to the source location for this program.+--+-- 'vodSourceName', 'createProgramResponse_vodSourceName' - The name that\'s used to refer to a VOD source.+--+-- 'httpStatus', 'createProgramResponse_httpStatus' - The response's http status code.+newCreateProgramResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateProgramResponse+newCreateProgramResponse pHttpStatus_ =+  CreateProgramResponse'+    { adBreaks = Prelude.Nothing,+      arn = Prelude.Nothing,+      channelName = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      liveSourceName = Prelude.Nothing,+      programName = Prelude.Nothing,+      scheduledStartTime = Prelude.Nothing,+      sourceLocationName = Prelude.Nothing,+      vodSourceName = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ad break configuration settings.+createProgramResponse_adBreaks :: Lens.Lens' CreateProgramResponse (Prelude.Maybe [AdBreak])+createProgramResponse_adBreaks = Lens.lens (\CreateProgramResponse' {adBreaks} -> adBreaks) (\s@CreateProgramResponse' {} a -> s {adBreaks = a} :: CreateProgramResponse) Prelude.. Lens.mapping Lens.coerced++-- | The ARN to assign to the program.+createProgramResponse_arn :: Lens.Lens' CreateProgramResponse (Prelude.Maybe Prelude.Text)+createProgramResponse_arn = Lens.lens (\CreateProgramResponse' {arn} -> arn) (\s@CreateProgramResponse' {} a -> s {arn = a} :: CreateProgramResponse)++-- | The name to assign to the channel for this program.+createProgramResponse_channelName :: Lens.Lens' CreateProgramResponse (Prelude.Maybe Prelude.Text)+createProgramResponse_channelName = Lens.lens (\CreateProgramResponse' {channelName} -> channelName) (\s@CreateProgramResponse' {} a -> s {channelName = a} :: CreateProgramResponse)++-- | The time the program was created.+createProgramResponse_creationTime :: Lens.Lens' CreateProgramResponse (Prelude.Maybe Prelude.UTCTime)+createProgramResponse_creationTime = Lens.lens (\CreateProgramResponse' {creationTime} -> creationTime) (\s@CreateProgramResponse' {} a -> s {creationTime = a} :: CreateProgramResponse) Prelude.. Lens.mapping Data._Time++-- | The name of the LiveSource for this Program.+createProgramResponse_liveSourceName :: Lens.Lens' CreateProgramResponse (Prelude.Maybe Prelude.Text)+createProgramResponse_liveSourceName = Lens.lens (\CreateProgramResponse' {liveSourceName} -> liveSourceName) (\s@CreateProgramResponse' {} a -> s {liveSourceName = a} :: CreateProgramResponse)++-- | The name to assign to this program.+createProgramResponse_programName :: Lens.Lens' CreateProgramResponse (Prelude.Maybe Prelude.Text)+createProgramResponse_programName = Lens.lens (\CreateProgramResponse' {programName} -> programName) (\s@CreateProgramResponse' {} a -> s {programName = a} :: CreateProgramResponse)++-- | The scheduled start time for this Program.+createProgramResponse_scheduledStartTime :: Lens.Lens' CreateProgramResponse (Prelude.Maybe Prelude.UTCTime)+createProgramResponse_scheduledStartTime = Lens.lens (\CreateProgramResponse' {scheduledStartTime} -> scheduledStartTime) (\s@CreateProgramResponse' {} a -> s {scheduledStartTime = a} :: CreateProgramResponse) Prelude.. Lens.mapping Data._Time++-- | The name to assign to the source location for this program.+createProgramResponse_sourceLocationName :: Lens.Lens' CreateProgramResponse (Prelude.Maybe Prelude.Text)+createProgramResponse_sourceLocationName = Lens.lens (\CreateProgramResponse' {sourceLocationName} -> sourceLocationName) (\s@CreateProgramResponse' {} a -> s {sourceLocationName = a} :: CreateProgramResponse)++-- | The name that\'s used to refer to a VOD source.+createProgramResponse_vodSourceName :: Lens.Lens' CreateProgramResponse (Prelude.Maybe Prelude.Text)+createProgramResponse_vodSourceName = Lens.lens (\CreateProgramResponse' {vodSourceName} -> vodSourceName) (\s@CreateProgramResponse' {} a -> s {vodSourceName = a} :: CreateProgramResponse)++-- | The response's http status code.+createProgramResponse_httpStatus :: Lens.Lens' CreateProgramResponse Prelude.Int+createProgramResponse_httpStatus = Lens.lens (\CreateProgramResponse' {httpStatus} -> httpStatus) (\s@CreateProgramResponse' {} a -> s {httpStatus = a} :: CreateProgramResponse)++instance Prelude.NFData CreateProgramResponse where+  rnf CreateProgramResponse' {..} =+    Prelude.rnf adBreaks+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf channelName+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf liveSourceName+      `Prelude.seq` Prelude.rnf programName+      `Prelude.seq` Prelude.rnf scheduledStartTime+      `Prelude.seq` Prelude.rnf sourceLocationName+      `Prelude.seq` Prelude.rnf vodSourceName+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/CreateSourceLocation.hs view
@@ -0,0 +1,382 @@+{-# 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.MediaTailor.CreateSourceLocation+-- 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 source location. A source location is a container for sources.+-- For more information about source locations, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/channel-assembly-source-locations.html Working with source locations>+-- in the /MediaTailor User Guide/.+module Amazonka.MediaTailor.CreateSourceLocation+  ( -- * Creating a Request+    CreateSourceLocation (..),+    newCreateSourceLocation,++    -- * Request Lenses+    createSourceLocation_accessConfiguration,+    createSourceLocation_defaultSegmentDeliveryConfiguration,+    createSourceLocation_segmentDeliveryConfigurations,+    createSourceLocation_tags,+    createSourceLocation_httpConfiguration,+    createSourceLocation_sourceLocationName,++    -- * Destructuring the Response+    CreateSourceLocationResponse (..),+    newCreateSourceLocationResponse,++    -- * Response Lenses+    createSourceLocationResponse_accessConfiguration,+    createSourceLocationResponse_arn,+    createSourceLocationResponse_creationTime,+    createSourceLocationResponse_defaultSegmentDeliveryConfiguration,+    createSourceLocationResponse_httpConfiguration,+    createSourceLocationResponse_lastModifiedTime,+    createSourceLocationResponse_segmentDeliveryConfigurations,+    createSourceLocationResponse_sourceLocationName,+    createSourceLocationResponse_tags,+    createSourceLocationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateSourceLocation' smart constructor.+data CreateSourceLocation = CreateSourceLocation'+  { -- | Access configuration parameters. Configures the type of authentication+    -- used to access content from your source location.+    accessConfiguration :: Prelude.Maybe AccessConfiguration,+    -- | The optional configuration for the server that serves segments.+    defaultSegmentDeliveryConfiguration :: Prelude.Maybe DefaultSegmentDeliveryConfiguration,+    -- | A list of the segment delivery configurations associated with this+    -- resource.+    segmentDeliveryConfigurations :: Prelude.Maybe [SegmentDeliveryConfiguration],+    -- | The tags to assign to the source location. Tags are key-value pairs that+    -- you can associate with Amazon resources to help with organization,+    -- access control, and cost tracking. For more information, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The source\'s HTTP package configurations.+    httpConfiguration :: HttpConfiguration,+    -- | The name associated with the source location.+    sourceLocationName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSourceLocation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessConfiguration', 'createSourceLocation_accessConfiguration' - Access configuration parameters. Configures the type of authentication+-- used to access content from your source location.+--+-- 'defaultSegmentDeliveryConfiguration', 'createSourceLocation_defaultSegmentDeliveryConfiguration' - The optional configuration for the server that serves segments.+--+-- 'segmentDeliveryConfigurations', 'createSourceLocation_segmentDeliveryConfigurations' - A list of the segment delivery configurations associated with this+-- resource.+--+-- 'tags', 'createSourceLocation_tags' - The tags to assign to the source location. Tags are key-value pairs that+-- you can associate with Amazon resources to help with organization,+-- access control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+--+-- 'httpConfiguration', 'createSourceLocation_httpConfiguration' - The source\'s HTTP package configurations.+--+-- 'sourceLocationName', 'createSourceLocation_sourceLocationName' - The name associated with the source location.+newCreateSourceLocation ::+  -- | 'httpConfiguration'+  HttpConfiguration ->+  -- | 'sourceLocationName'+  Prelude.Text ->+  CreateSourceLocation+newCreateSourceLocation+  pHttpConfiguration_+  pSourceLocationName_ =+    CreateSourceLocation'+      { accessConfiguration =+          Prelude.Nothing,+        defaultSegmentDeliveryConfiguration =+          Prelude.Nothing,+        segmentDeliveryConfigurations = Prelude.Nothing,+        tags = Prelude.Nothing,+        httpConfiguration = pHttpConfiguration_,+        sourceLocationName = pSourceLocationName_+      }++-- | Access configuration parameters. Configures the type of authentication+-- used to access content from your source location.+createSourceLocation_accessConfiguration :: Lens.Lens' CreateSourceLocation (Prelude.Maybe AccessConfiguration)+createSourceLocation_accessConfiguration = Lens.lens (\CreateSourceLocation' {accessConfiguration} -> accessConfiguration) (\s@CreateSourceLocation' {} a -> s {accessConfiguration = a} :: CreateSourceLocation)++-- | The optional configuration for the server that serves segments.+createSourceLocation_defaultSegmentDeliveryConfiguration :: Lens.Lens' CreateSourceLocation (Prelude.Maybe DefaultSegmentDeliveryConfiguration)+createSourceLocation_defaultSegmentDeliveryConfiguration = Lens.lens (\CreateSourceLocation' {defaultSegmentDeliveryConfiguration} -> defaultSegmentDeliveryConfiguration) (\s@CreateSourceLocation' {} a -> s {defaultSegmentDeliveryConfiguration = a} :: CreateSourceLocation)++-- | A list of the segment delivery configurations associated with this+-- resource.+createSourceLocation_segmentDeliveryConfigurations :: Lens.Lens' CreateSourceLocation (Prelude.Maybe [SegmentDeliveryConfiguration])+createSourceLocation_segmentDeliveryConfigurations = Lens.lens (\CreateSourceLocation' {segmentDeliveryConfigurations} -> segmentDeliveryConfigurations) (\s@CreateSourceLocation' {} a -> s {segmentDeliveryConfigurations = a} :: CreateSourceLocation) Prelude.. Lens.mapping Lens.coerced++-- | The tags to assign to the source location. Tags are key-value pairs that+-- you can associate with Amazon resources to help with organization,+-- access control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+createSourceLocation_tags :: Lens.Lens' CreateSourceLocation (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createSourceLocation_tags = Lens.lens (\CreateSourceLocation' {tags} -> tags) (\s@CreateSourceLocation' {} a -> s {tags = a} :: CreateSourceLocation) Prelude.. Lens.mapping Lens.coerced++-- | The source\'s HTTP package configurations.+createSourceLocation_httpConfiguration :: Lens.Lens' CreateSourceLocation HttpConfiguration+createSourceLocation_httpConfiguration = Lens.lens (\CreateSourceLocation' {httpConfiguration} -> httpConfiguration) (\s@CreateSourceLocation' {} a -> s {httpConfiguration = a} :: CreateSourceLocation)++-- | The name associated with the source location.+createSourceLocation_sourceLocationName :: Lens.Lens' CreateSourceLocation Prelude.Text+createSourceLocation_sourceLocationName = Lens.lens (\CreateSourceLocation' {sourceLocationName} -> sourceLocationName) (\s@CreateSourceLocation' {} a -> s {sourceLocationName = a} :: CreateSourceLocation)++instance Core.AWSRequest CreateSourceLocation where+  type+    AWSResponse CreateSourceLocation =+      CreateSourceLocationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateSourceLocationResponse'+            Prelude.<$> (x Data..?> "AccessConfiguration")+            Prelude.<*> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "CreationTime")+            Prelude.<*> (x Data..?> "DefaultSegmentDeliveryConfiguration")+            Prelude.<*> (x Data..?> "HttpConfiguration")+            Prelude.<*> (x Data..?> "LastModifiedTime")+            Prelude.<*> ( x+                            Data..?> "SegmentDeliveryConfigurations"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "SourceLocationName")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateSourceLocation where+  hashWithSalt _salt CreateSourceLocation' {..} =+    _salt+      `Prelude.hashWithSalt` accessConfiguration+      `Prelude.hashWithSalt` defaultSegmentDeliveryConfiguration+      `Prelude.hashWithSalt` segmentDeliveryConfigurations+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` httpConfiguration+      `Prelude.hashWithSalt` sourceLocationName++instance Prelude.NFData CreateSourceLocation where+  rnf CreateSourceLocation' {..} =+    Prelude.rnf accessConfiguration+      `Prelude.seq` Prelude.rnf defaultSegmentDeliveryConfiguration+      `Prelude.seq` Prelude.rnf segmentDeliveryConfigurations+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpConfiguration+      `Prelude.seq` Prelude.rnf sourceLocationName++instance Data.ToHeaders CreateSourceLocation where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateSourceLocation where+  toJSON CreateSourceLocation' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AccessConfiguration" Data..=)+              Prelude.<$> accessConfiguration,+            ("DefaultSegmentDeliveryConfiguration" Data..=)+              Prelude.<$> defaultSegmentDeliveryConfiguration,+            ("SegmentDeliveryConfigurations" Data..=)+              Prelude.<$> segmentDeliveryConfigurations,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ("HttpConfiguration" Data..= httpConfiguration)+          ]+      )++instance Data.ToPath CreateSourceLocation where+  toPath CreateSourceLocation' {..} =+    Prelude.mconcat+      ["/sourceLocation/", Data.toBS sourceLocationName]++instance Data.ToQuery CreateSourceLocation where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateSourceLocationResponse' smart constructor.+data CreateSourceLocationResponse = CreateSourceLocationResponse'+  { -- | Access configuration parameters. Configures the type of authentication+    -- used to access content from your source location.+    accessConfiguration :: Prelude.Maybe AccessConfiguration,+    -- | The ARN to assign to the source location.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The time the source location was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The optional configuration for the server that serves segments.+    defaultSegmentDeliveryConfiguration :: Prelude.Maybe DefaultSegmentDeliveryConfiguration,+    -- | The source\'s HTTP package configurations.+    httpConfiguration :: Prelude.Maybe HttpConfiguration,+    -- | The time the source location was last modified.+    lastModifiedTime :: Prelude.Maybe Data.POSIX,+    -- | The segment delivery configurations for the source location. For+    -- information about MediaTailor configurations, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/configurations.html Working with configurations in AWS Elemental MediaTailor>.+    segmentDeliveryConfigurations :: Prelude.Maybe [SegmentDeliveryConfiguration],+    -- | The name to assign to the source location.+    sourceLocationName :: Prelude.Maybe Prelude.Text,+    -- | The tags to assign to the source location. Tags are key-value pairs that+    -- you can associate with Amazon resources to help with organization,+    -- access control, and cost tracking. For more information, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+    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 'CreateSourceLocationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessConfiguration', 'createSourceLocationResponse_accessConfiguration' - Access configuration parameters. Configures the type of authentication+-- used to access content from your source location.+--+-- 'arn', 'createSourceLocationResponse_arn' - The ARN to assign to the source location.+--+-- 'creationTime', 'createSourceLocationResponse_creationTime' - The time the source location was created.+--+-- 'defaultSegmentDeliveryConfiguration', 'createSourceLocationResponse_defaultSegmentDeliveryConfiguration' - The optional configuration for the server that serves segments.+--+-- 'httpConfiguration', 'createSourceLocationResponse_httpConfiguration' - The source\'s HTTP package configurations.+--+-- 'lastModifiedTime', 'createSourceLocationResponse_lastModifiedTime' - The time the source location was last modified.+--+-- 'segmentDeliveryConfigurations', 'createSourceLocationResponse_segmentDeliveryConfigurations' - The segment delivery configurations for the source location. For+-- information about MediaTailor configurations, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/configurations.html Working with configurations in AWS Elemental MediaTailor>.+--+-- 'sourceLocationName', 'createSourceLocationResponse_sourceLocationName' - The name to assign to the source location.+--+-- 'tags', 'createSourceLocationResponse_tags' - The tags to assign to the source location. Tags are key-value pairs that+-- you can associate with Amazon resources to help with organization,+-- access control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+--+-- 'httpStatus', 'createSourceLocationResponse_httpStatus' - The response's http status code.+newCreateSourceLocationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateSourceLocationResponse+newCreateSourceLocationResponse pHttpStatus_ =+  CreateSourceLocationResponse'+    { accessConfiguration =+        Prelude.Nothing,+      arn = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      defaultSegmentDeliveryConfiguration =+        Prelude.Nothing,+      httpConfiguration = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      segmentDeliveryConfigurations =+        Prelude.Nothing,+      sourceLocationName = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Access configuration parameters. Configures the type of authentication+-- used to access content from your source location.+createSourceLocationResponse_accessConfiguration :: Lens.Lens' CreateSourceLocationResponse (Prelude.Maybe AccessConfiguration)+createSourceLocationResponse_accessConfiguration = Lens.lens (\CreateSourceLocationResponse' {accessConfiguration} -> accessConfiguration) (\s@CreateSourceLocationResponse' {} a -> s {accessConfiguration = a} :: CreateSourceLocationResponse)++-- | The ARN to assign to the source location.+createSourceLocationResponse_arn :: Lens.Lens' CreateSourceLocationResponse (Prelude.Maybe Prelude.Text)+createSourceLocationResponse_arn = Lens.lens (\CreateSourceLocationResponse' {arn} -> arn) (\s@CreateSourceLocationResponse' {} a -> s {arn = a} :: CreateSourceLocationResponse)++-- | The time the source location was created.+createSourceLocationResponse_creationTime :: Lens.Lens' CreateSourceLocationResponse (Prelude.Maybe Prelude.UTCTime)+createSourceLocationResponse_creationTime = Lens.lens (\CreateSourceLocationResponse' {creationTime} -> creationTime) (\s@CreateSourceLocationResponse' {} a -> s {creationTime = a} :: CreateSourceLocationResponse) Prelude.. Lens.mapping Data._Time++-- | The optional configuration for the server that serves segments.+createSourceLocationResponse_defaultSegmentDeliveryConfiguration :: Lens.Lens' CreateSourceLocationResponse (Prelude.Maybe DefaultSegmentDeliveryConfiguration)+createSourceLocationResponse_defaultSegmentDeliveryConfiguration = Lens.lens (\CreateSourceLocationResponse' {defaultSegmentDeliveryConfiguration} -> defaultSegmentDeliveryConfiguration) (\s@CreateSourceLocationResponse' {} a -> s {defaultSegmentDeliveryConfiguration = a} :: CreateSourceLocationResponse)++-- | The source\'s HTTP package configurations.+createSourceLocationResponse_httpConfiguration :: Lens.Lens' CreateSourceLocationResponse (Prelude.Maybe HttpConfiguration)+createSourceLocationResponse_httpConfiguration = Lens.lens (\CreateSourceLocationResponse' {httpConfiguration} -> httpConfiguration) (\s@CreateSourceLocationResponse' {} a -> s {httpConfiguration = a} :: CreateSourceLocationResponse)++-- | The time the source location was last modified.+createSourceLocationResponse_lastModifiedTime :: Lens.Lens' CreateSourceLocationResponse (Prelude.Maybe Prelude.UTCTime)+createSourceLocationResponse_lastModifiedTime = Lens.lens (\CreateSourceLocationResponse' {lastModifiedTime} -> lastModifiedTime) (\s@CreateSourceLocationResponse' {} a -> s {lastModifiedTime = a} :: CreateSourceLocationResponse) Prelude.. Lens.mapping Data._Time++-- | The segment delivery configurations for the source location. For+-- information about MediaTailor configurations, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/configurations.html Working with configurations in AWS Elemental MediaTailor>.+createSourceLocationResponse_segmentDeliveryConfigurations :: Lens.Lens' CreateSourceLocationResponse (Prelude.Maybe [SegmentDeliveryConfiguration])+createSourceLocationResponse_segmentDeliveryConfigurations = Lens.lens (\CreateSourceLocationResponse' {segmentDeliveryConfigurations} -> segmentDeliveryConfigurations) (\s@CreateSourceLocationResponse' {} a -> s {segmentDeliveryConfigurations = a} :: CreateSourceLocationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The name to assign to the source location.+createSourceLocationResponse_sourceLocationName :: Lens.Lens' CreateSourceLocationResponse (Prelude.Maybe Prelude.Text)+createSourceLocationResponse_sourceLocationName = Lens.lens (\CreateSourceLocationResponse' {sourceLocationName} -> sourceLocationName) (\s@CreateSourceLocationResponse' {} a -> s {sourceLocationName = a} :: CreateSourceLocationResponse)++-- | The tags to assign to the source location. Tags are key-value pairs that+-- you can associate with Amazon resources to help with organization,+-- access control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+createSourceLocationResponse_tags :: Lens.Lens' CreateSourceLocationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createSourceLocationResponse_tags = Lens.lens (\CreateSourceLocationResponse' {tags} -> tags) (\s@CreateSourceLocationResponse' {} a -> s {tags = a} :: CreateSourceLocationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+createSourceLocationResponse_httpStatus :: Lens.Lens' CreateSourceLocationResponse Prelude.Int+createSourceLocationResponse_httpStatus = Lens.lens (\CreateSourceLocationResponse' {httpStatus} -> httpStatus) (\s@CreateSourceLocationResponse' {} a -> s {httpStatus = a} :: CreateSourceLocationResponse)++instance Prelude.NFData CreateSourceLocationResponse where+  rnf CreateSourceLocationResponse' {..} =+    Prelude.rnf accessConfiguration+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf defaultSegmentDeliveryConfiguration+      `Prelude.seq` Prelude.rnf httpConfiguration+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf segmentDeliveryConfigurations+      `Prelude.seq` Prelude.rnf sourceLocationName+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/CreateVodSource.hs view
@@ -0,0 +1,311 @@+{-# 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.MediaTailor.CreateVodSource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- The VOD source configuration parameters.+module Amazonka.MediaTailor.CreateVodSource+  ( -- * Creating a Request+    CreateVodSource (..),+    newCreateVodSource,++    -- * Request Lenses+    createVodSource_tags,+    createVodSource_httpPackageConfigurations,+    createVodSource_sourceLocationName,+    createVodSource_vodSourceName,++    -- * Destructuring the Response+    CreateVodSourceResponse (..),+    newCreateVodSourceResponse,++    -- * Response Lenses+    createVodSourceResponse_arn,+    createVodSourceResponse_creationTime,+    createVodSourceResponse_httpPackageConfigurations,+    createVodSourceResponse_lastModifiedTime,+    createVodSourceResponse_sourceLocationName,+    createVodSourceResponse_tags,+    createVodSourceResponse_vodSourceName,+    createVodSourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateVodSource' smart constructor.+data CreateVodSource = CreateVodSource'+  { -- | The tags to assign to the VOD source. Tags are key-value pairs that you+    -- can associate with Amazon resources to help with organization, access+    -- control, and cost tracking. For more information, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | A list of HTTP package configuration parameters for this VOD source.+    httpPackageConfigurations :: [HttpPackageConfiguration],+    -- | The name of the source location for this VOD source.+    sourceLocationName :: Prelude.Text,+    -- | The name associated with the VOD source.>+    vodSourceName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateVodSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createVodSource_tags' - The tags to assign to the VOD source. Tags are key-value pairs that you+-- can associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+--+-- 'httpPackageConfigurations', 'createVodSource_httpPackageConfigurations' - A list of HTTP package configuration parameters for this VOD source.+--+-- 'sourceLocationName', 'createVodSource_sourceLocationName' - The name of the source location for this VOD source.+--+-- 'vodSourceName', 'createVodSource_vodSourceName' - The name associated with the VOD source.>+newCreateVodSource ::+  -- | 'sourceLocationName'+  Prelude.Text ->+  -- | 'vodSourceName'+  Prelude.Text ->+  CreateVodSource+newCreateVodSource+  pSourceLocationName_+  pVodSourceName_ =+    CreateVodSource'+      { tags = Prelude.Nothing,+        httpPackageConfigurations = Prelude.mempty,+        sourceLocationName = pSourceLocationName_,+        vodSourceName = pVodSourceName_+      }++-- | The tags to assign to the VOD source. Tags are key-value pairs that you+-- can associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+createVodSource_tags :: Lens.Lens' CreateVodSource (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createVodSource_tags = Lens.lens (\CreateVodSource' {tags} -> tags) (\s@CreateVodSource' {} a -> s {tags = a} :: CreateVodSource) Prelude.. Lens.mapping Lens.coerced++-- | A list of HTTP package configuration parameters for this VOD source.+createVodSource_httpPackageConfigurations :: Lens.Lens' CreateVodSource [HttpPackageConfiguration]+createVodSource_httpPackageConfigurations = Lens.lens (\CreateVodSource' {httpPackageConfigurations} -> httpPackageConfigurations) (\s@CreateVodSource' {} a -> s {httpPackageConfigurations = a} :: CreateVodSource) Prelude.. Lens.coerced++-- | The name of the source location for this VOD source.+createVodSource_sourceLocationName :: Lens.Lens' CreateVodSource Prelude.Text+createVodSource_sourceLocationName = Lens.lens (\CreateVodSource' {sourceLocationName} -> sourceLocationName) (\s@CreateVodSource' {} a -> s {sourceLocationName = a} :: CreateVodSource)++-- | The name associated with the VOD source.>+createVodSource_vodSourceName :: Lens.Lens' CreateVodSource Prelude.Text+createVodSource_vodSourceName = Lens.lens (\CreateVodSource' {vodSourceName} -> vodSourceName) (\s@CreateVodSource' {} a -> s {vodSourceName = a} :: CreateVodSource)++instance Core.AWSRequest CreateVodSource where+  type+    AWSResponse CreateVodSource =+      CreateVodSourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateVodSourceResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "CreationTime")+            Prelude.<*> ( x+                            Data..?> "HttpPackageConfigurations"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "LastModifiedTime")+            Prelude.<*> (x Data..?> "SourceLocationName")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "VodSourceName")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateVodSource where+  hashWithSalt _salt CreateVodSource' {..} =+    _salt+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` httpPackageConfigurations+      `Prelude.hashWithSalt` sourceLocationName+      `Prelude.hashWithSalt` vodSourceName++instance Prelude.NFData CreateVodSource where+  rnf CreateVodSource' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpPackageConfigurations+      `Prelude.seq` Prelude.rnf sourceLocationName+      `Prelude.seq` Prelude.rnf vodSourceName++instance Data.ToHeaders CreateVodSource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateVodSource where+  toJSON CreateVodSource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ( "HttpPackageConfigurations"+                  Data..= httpPackageConfigurations+              )+          ]+      )++instance Data.ToPath CreateVodSource where+  toPath CreateVodSource' {..} =+    Prelude.mconcat+      [ "/sourceLocation/",+        Data.toBS sourceLocationName,+        "/vodSource/",+        Data.toBS vodSourceName+      ]++instance Data.ToQuery CreateVodSource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateVodSourceResponse' smart constructor.+data CreateVodSourceResponse = CreateVodSourceResponse'+  { -- | The ARN to assign to this VOD source.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The time the VOD source was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | A list of HTTP package configuration parameters for this VOD source.+    httpPackageConfigurations :: Prelude.Maybe [HttpPackageConfiguration],+    -- | The time the VOD source was last modified.+    lastModifiedTime :: Prelude.Maybe Data.POSIX,+    -- | The name to assign to the source location for this VOD source.+    sourceLocationName :: Prelude.Maybe Prelude.Text,+    -- | The tags to assign to the VOD source. Tags are key-value pairs that you+    -- can associate with Amazon resources to help with organization, access+    -- control, and cost tracking. For more information, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name to assign to the VOD source.+    vodSourceName :: 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 'CreateVodSourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createVodSourceResponse_arn' - The ARN to assign to this VOD source.+--+-- 'creationTime', 'createVodSourceResponse_creationTime' - The time the VOD source was created.+--+-- 'httpPackageConfigurations', 'createVodSourceResponse_httpPackageConfigurations' - A list of HTTP package configuration parameters for this VOD source.+--+-- 'lastModifiedTime', 'createVodSourceResponse_lastModifiedTime' - The time the VOD source was last modified.+--+-- 'sourceLocationName', 'createVodSourceResponse_sourceLocationName' - The name to assign to the source location for this VOD source.+--+-- 'tags', 'createVodSourceResponse_tags' - The tags to assign to the VOD source. Tags are key-value pairs that you+-- can associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+--+-- 'vodSourceName', 'createVodSourceResponse_vodSourceName' - The name to assign to the VOD source.+--+-- 'httpStatus', 'createVodSourceResponse_httpStatus' - The response's http status code.+newCreateVodSourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateVodSourceResponse+newCreateVodSourceResponse pHttpStatus_ =+  CreateVodSourceResponse'+    { arn = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      httpPackageConfigurations = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      sourceLocationName = Prelude.Nothing,+      tags = Prelude.Nothing,+      vodSourceName = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN to assign to this VOD source.+createVodSourceResponse_arn :: Lens.Lens' CreateVodSourceResponse (Prelude.Maybe Prelude.Text)+createVodSourceResponse_arn = Lens.lens (\CreateVodSourceResponse' {arn} -> arn) (\s@CreateVodSourceResponse' {} a -> s {arn = a} :: CreateVodSourceResponse)++-- | The time the VOD source was created.+createVodSourceResponse_creationTime :: Lens.Lens' CreateVodSourceResponse (Prelude.Maybe Prelude.UTCTime)+createVodSourceResponse_creationTime = Lens.lens (\CreateVodSourceResponse' {creationTime} -> creationTime) (\s@CreateVodSourceResponse' {} a -> s {creationTime = a} :: CreateVodSourceResponse) Prelude.. Lens.mapping Data._Time++-- | A list of HTTP package configuration parameters for this VOD source.+createVodSourceResponse_httpPackageConfigurations :: Lens.Lens' CreateVodSourceResponse (Prelude.Maybe [HttpPackageConfiguration])+createVodSourceResponse_httpPackageConfigurations = Lens.lens (\CreateVodSourceResponse' {httpPackageConfigurations} -> httpPackageConfigurations) (\s@CreateVodSourceResponse' {} a -> s {httpPackageConfigurations = a} :: CreateVodSourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The time the VOD source was last modified.+createVodSourceResponse_lastModifiedTime :: Lens.Lens' CreateVodSourceResponse (Prelude.Maybe Prelude.UTCTime)+createVodSourceResponse_lastModifiedTime = Lens.lens (\CreateVodSourceResponse' {lastModifiedTime} -> lastModifiedTime) (\s@CreateVodSourceResponse' {} a -> s {lastModifiedTime = a} :: CreateVodSourceResponse) Prelude.. Lens.mapping Data._Time++-- | The name to assign to the source location for this VOD source.+createVodSourceResponse_sourceLocationName :: Lens.Lens' CreateVodSourceResponse (Prelude.Maybe Prelude.Text)+createVodSourceResponse_sourceLocationName = Lens.lens (\CreateVodSourceResponse' {sourceLocationName} -> sourceLocationName) (\s@CreateVodSourceResponse' {} a -> s {sourceLocationName = a} :: CreateVodSourceResponse)++-- | The tags to assign to the VOD source. Tags are key-value pairs that you+-- can associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+createVodSourceResponse_tags :: Lens.Lens' CreateVodSourceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createVodSourceResponse_tags = Lens.lens (\CreateVodSourceResponse' {tags} -> tags) (\s@CreateVodSourceResponse' {} a -> s {tags = a} :: CreateVodSourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The name to assign to the VOD source.+createVodSourceResponse_vodSourceName :: Lens.Lens' CreateVodSourceResponse (Prelude.Maybe Prelude.Text)+createVodSourceResponse_vodSourceName = Lens.lens (\CreateVodSourceResponse' {vodSourceName} -> vodSourceName) (\s@CreateVodSourceResponse' {} a -> s {vodSourceName = a} :: CreateVodSourceResponse)++-- | The response's http status code.+createVodSourceResponse_httpStatus :: Lens.Lens' CreateVodSourceResponse Prelude.Int+createVodSourceResponse_httpStatus = Lens.lens (\CreateVodSourceResponse' {httpStatus} -> httpStatus) (\s@CreateVodSourceResponse' {} a -> s {httpStatus = a} :: CreateVodSourceResponse)++instance Prelude.NFData CreateVodSourceResponse where+  rnf CreateVodSourceResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf httpPackageConfigurations+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf sourceLocationName+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf vodSourceName+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/DeleteChannel.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.MediaTailor.DeleteChannel+-- 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 channel. For information about MediaTailor channels, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/channel-assembly-channels.html Working with channels>+-- in the /MediaTailor User Guide/.+module Amazonka.MediaTailor.DeleteChannel+  ( -- * Creating a Request+    DeleteChannel (..),+    newDeleteChannel,++    -- * Request Lenses+    deleteChannel_channelName,++    -- * Destructuring the Response+    DeleteChannelResponse (..),+    newDeleteChannelResponse,++    -- * Response Lenses+    deleteChannelResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteChannel' smart constructor.+data DeleteChannel = DeleteChannel'+  { -- | The name of the channel.+    channelName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteChannel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channelName', 'deleteChannel_channelName' - The name of the channel.+newDeleteChannel ::+  -- | 'channelName'+  Prelude.Text ->+  DeleteChannel+newDeleteChannel pChannelName_ =+  DeleteChannel' {channelName = pChannelName_}++-- | The name of the channel.+deleteChannel_channelName :: Lens.Lens' DeleteChannel Prelude.Text+deleteChannel_channelName = Lens.lens (\DeleteChannel' {channelName} -> channelName) (\s@DeleteChannel' {} a -> s {channelName = a} :: DeleteChannel)++instance Core.AWSRequest DeleteChannel where+  type+    AWSResponse DeleteChannel =+      DeleteChannelResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteChannelResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteChannel where+  hashWithSalt _salt DeleteChannel' {..} =+    _salt `Prelude.hashWithSalt` channelName++instance Prelude.NFData DeleteChannel where+  rnf DeleteChannel' {..} = Prelude.rnf channelName++instance Data.ToHeaders DeleteChannel where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteChannel where+  toPath DeleteChannel' {..} =+    Prelude.mconcat+      ["/channel/", Data.toBS channelName]++instance Data.ToQuery DeleteChannel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteChannelResponse' smart constructor.+data DeleteChannelResponse = DeleteChannelResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteChannelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteChannelResponse_httpStatus' - The response's http status code.+newDeleteChannelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteChannelResponse+newDeleteChannelResponse pHttpStatus_ =+  DeleteChannelResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteChannelResponse_httpStatus :: Lens.Lens' DeleteChannelResponse Prelude.Int+deleteChannelResponse_httpStatus = Lens.lens (\DeleteChannelResponse' {httpStatus} -> httpStatus) (\s@DeleteChannelResponse' {} a -> s {httpStatus = a} :: DeleteChannelResponse)++instance Prelude.NFData DeleteChannelResponse where+  rnf DeleteChannelResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/DeleteChannelPolicy.hs view
@@ -0,0 +1,148 @@+{-# 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.MediaTailor.DeleteChannelPolicy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- The channel policy to delete.+module Amazonka.MediaTailor.DeleteChannelPolicy+  ( -- * Creating a Request+    DeleteChannelPolicy (..),+    newDeleteChannelPolicy,++    -- * Request Lenses+    deleteChannelPolicy_channelName,++    -- * Destructuring the Response+    DeleteChannelPolicyResponse (..),+    newDeleteChannelPolicyResponse,++    -- * Response Lenses+    deleteChannelPolicyResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteChannelPolicy' smart constructor.+data DeleteChannelPolicy = DeleteChannelPolicy'+  { -- | The name of the channel associated with this channel policy.+    channelName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteChannelPolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channelName', 'deleteChannelPolicy_channelName' - The name of the channel associated with this channel policy.+newDeleteChannelPolicy ::+  -- | 'channelName'+  Prelude.Text ->+  DeleteChannelPolicy+newDeleteChannelPolicy pChannelName_ =+  DeleteChannelPolicy' {channelName = pChannelName_}++-- | The name of the channel associated with this channel policy.+deleteChannelPolicy_channelName :: Lens.Lens' DeleteChannelPolicy Prelude.Text+deleteChannelPolicy_channelName = Lens.lens (\DeleteChannelPolicy' {channelName} -> channelName) (\s@DeleteChannelPolicy' {} a -> s {channelName = a} :: DeleteChannelPolicy)++instance Core.AWSRequest DeleteChannelPolicy where+  type+    AWSResponse DeleteChannelPolicy =+      DeleteChannelPolicyResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteChannelPolicyResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteChannelPolicy where+  hashWithSalt _salt DeleteChannelPolicy' {..} =+    _salt `Prelude.hashWithSalt` channelName++instance Prelude.NFData DeleteChannelPolicy where+  rnf DeleteChannelPolicy' {..} =+    Prelude.rnf channelName++instance Data.ToHeaders DeleteChannelPolicy where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteChannelPolicy where+  toPath DeleteChannelPolicy' {..} =+    Prelude.mconcat+      ["/channel/", Data.toBS channelName, "/policy"]++instance Data.ToQuery DeleteChannelPolicy where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteChannelPolicyResponse' smart constructor.+data DeleteChannelPolicyResponse = DeleteChannelPolicyResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteChannelPolicyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteChannelPolicyResponse_httpStatus' - The response's http status code.+newDeleteChannelPolicyResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteChannelPolicyResponse+newDeleteChannelPolicyResponse pHttpStatus_ =+  DeleteChannelPolicyResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteChannelPolicyResponse_httpStatus :: Lens.Lens' DeleteChannelPolicyResponse Prelude.Int+deleteChannelPolicyResponse_httpStatus = Lens.lens (\DeleteChannelPolicyResponse' {httpStatus} -> httpStatus) (\s@DeleteChannelPolicyResponse' {} a -> s {httpStatus = a} :: DeleteChannelPolicyResponse)++instance Prelude.NFData DeleteChannelPolicyResponse where+  rnf DeleteChannelPolicyResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/DeleteLiveSource.hs view
@@ -0,0 +1,172 @@+{-# 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.MediaTailor.DeleteLiveSource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- The live source to delete.+module Amazonka.MediaTailor.DeleteLiveSource+  ( -- * Creating a Request+    DeleteLiveSource (..),+    newDeleteLiveSource,++    -- * Request Lenses+    deleteLiveSource_liveSourceName,+    deleteLiveSource_sourceLocationName,++    -- * Destructuring the Response+    DeleteLiveSourceResponse (..),+    newDeleteLiveSourceResponse,++    -- * Response Lenses+    deleteLiveSourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteLiveSource' smart constructor.+data DeleteLiveSource = DeleteLiveSource'+  { -- | The name of the live source.+    liveSourceName :: Prelude.Text,+    -- | The name of the source location associated with this Live Source.+    sourceLocationName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteLiveSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'liveSourceName', 'deleteLiveSource_liveSourceName' - The name of the live source.+--+-- 'sourceLocationName', 'deleteLiveSource_sourceLocationName' - The name of the source location associated with this Live Source.+newDeleteLiveSource ::+  -- | 'liveSourceName'+  Prelude.Text ->+  -- | 'sourceLocationName'+  Prelude.Text ->+  DeleteLiveSource+newDeleteLiveSource+  pLiveSourceName_+  pSourceLocationName_ =+    DeleteLiveSource'+      { liveSourceName =+          pLiveSourceName_,+        sourceLocationName = pSourceLocationName_+      }++-- | The name of the live source.+deleteLiveSource_liveSourceName :: Lens.Lens' DeleteLiveSource Prelude.Text+deleteLiveSource_liveSourceName = Lens.lens (\DeleteLiveSource' {liveSourceName} -> liveSourceName) (\s@DeleteLiveSource' {} a -> s {liveSourceName = a} :: DeleteLiveSource)++-- | The name of the source location associated with this Live Source.+deleteLiveSource_sourceLocationName :: Lens.Lens' DeleteLiveSource Prelude.Text+deleteLiveSource_sourceLocationName = Lens.lens (\DeleteLiveSource' {sourceLocationName} -> sourceLocationName) (\s@DeleteLiveSource' {} a -> s {sourceLocationName = a} :: DeleteLiveSource)++instance Core.AWSRequest DeleteLiveSource where+  type+    AWSResponse DeleteLiveSource =+      DeleteLiveSourceResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteLiveSourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteLiveSource where+  hashWithSalt _salt DeleteLiveSource' {..} =+    _salt+      `Prelude.hashWithSalt` liveSourceName+      `Prelude.hashWithSalt` sourceLocationName++instance Prelude.NFData DeleteLiveSource where+  rnf DeleteLiveSource' {..} =+    Prelude.rnf liveSourceName+      `Prelude.seq` Prelude.rnf sourceLocationName++instance Data.ToHeaders DeleteLiveSource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteLiveSource where+  toPath DeleteLiveSource' {..} =+    Prelude.mconcat+      [ "/sourceLocation/",+        Data.toBS sourceLocationName,+        "/liveSource/",+        Data.toBS liveSourceName+      ]++instance Data.ToQuery DeleteLiveSource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteLiveSourceResponse' smart constructor.+data DeleteLiveSourceResponse = DeleteLiveSourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteLiveSourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteLiveSourceResponse_httpStatus' - The response's http status code.+newDeleteLiveSourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteLiveSourceResponse+newDeleteLiveSourceResponse pHttpStatus_ =+  DeleteLiveSourceResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteLiveSourceResponse_httpStatus :: Lens.Lens' DeleteLiveSourceResponse Prelude.Int+deleteLiveSourceResponse_httpStatus = Lens.lens (\DeleteLiveSourceResponse' {httpStatus} -> httpStatus) (\s@DeleteLiveSourceResponse' {} a -> s {httpStatus = a} :: DeleteLiveSourceResponse)++instance Prelude.NFData DeleteLiveSourceResponse where+  rnf DeleteLiveSourceResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/DeletePlaybackConfiguration.hs view
@@ -0,0 +1,153 @@+{-# 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.MediaTailor.DeletePlaybackConfiguration+-- 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 playback configuration. For information about MediaTailor+-- configurations, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/configurations.html Working with configurations in AWS Elemental MediaTailor>.+module Amazonka.MediaTailor.DeletePlaybackConfiguration+  ( -- * Creating a Request+    DeletePlaybackConfiguration (..),+    newDeletePlaybackConfiguration,++    -- * Request Lenses+    deletePlaybackConfiguration_name,++    -- * Destructuring the Response+    DeletePlaybackConfigurationResponse (..),+    newDeletePlaybackConfigurationResponse,++    -- * Response Lenses+    deletePlaybackConfigurationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeletePlaybackConfiguration' smart constructor.+data DeletePlaybackConfiguration = DeletePlaybackConfiguration'+  { -- | The name of the playback configuration.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeletePlaybackConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'deletePlaybackConfiguration_name' - The name of the playback configuration.+newDeletePlaybackConfiguration ::+  -- | 'name'+  Prelude.Text ->+  DeletePlaybackConfiguration+newDeletePlaybackConfiguration pName_ =+  DeletePlaybackConfiguration' {name = pName_}++-- | The name of the playback configuration.+deletePlaybackConfiguration_name :: Lens.Lens' DeletePlaybackConfiguration Prelude.Text+deletePlaybackConfiguration_name = Lens.lens (\DeletePlaybackConfiguration' {name} -> name) (\s@DeletePlaybackConfiguration' {} a -> s {name = a} :: DeletePlaybackConfiguration)++instance Core.AWSRequest DeletePlaybackConfiguration where+  type+    AWSResponse DeletePlaybackConfiguration =+      DeletePlaybackConfigurationResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeletePlaybackConfigurationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeletePlaybackConfiguration where+  hashWithSalt _salt DeletePlaybackConfiguration' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData DeletePlaybackConfiguration where+  rnf DeletePlaybackConfiguration' {..} =+    Prelude.rnf name++instance Data.ToHeaders DeletePlaybackConfiguration where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeletePlaybackConfiguration where+  toPath DeletePlaybackConfiguration' {..} =+    Prelude.mconcat+      ["/playbackConfiguration/", Data.toBS name]++instance Data.ToQuery DeletePlaybackConfiguration where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeletePlaybackConfigurationResponse' smart constructor.+data DeletePlaybackConfigurationResponse = DeletePlaybackConfigurationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeletePlaybackConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deletePlaybackConfigurationResponse_httpStatus' - The response's http status code.+newDeletePlaybackConfigurationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeletePlaybackConfigurationResponse+newDeletePlaybackConfigurationResponse pHttpStatus_ =+  DeletePlaybackConfigurationResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deletePlaybackConfigurationResponse_httpStatus :: Lens.Lens' DeletePlaybackConfigurationResponse Prelude.Int+deletePlaybackConfigurationResponse_httpStatus = Lens.lens (\DeletePlaybackConfigurationResponse' {httpStatus} -> httpStatus) (\s@DeletePlaybackConfigurationResponse' {} a -> s {httpStatus = a} :: DeletePlaybackConfigurationResponse)++instance+  Prelude.NFData+    DeletePlaybackConfigurationResponse+  where+  rnf DeletePlaybackConfigurationResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/DeletePrefetchSchedule.hs view
@@ -0,0 +1,183 @@+{-# 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.MediaTailor.DeletePrefetchSchedule+-- 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 prefetch schedule for a specific playback configuration. If+-- you call @DeletePrefetchSchedule@ on an expired prefetch schedule,+-- MediaTailor returns an HTTP 404 status code. For more information about+-- ad prefetching, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/prefetching-ads.html Using ad prefetching>+-- in the /MediaTailor User Guide/.+module Amazonka.MediaTailor.DeletePrefetchSchedule+  ( -- * Creating a Request+    DeletePrefetchSchedule (..),+    newDeletePrefetchSchedule,++    -- * Request Lenses+    deletePrefetchSchedule_name,+    deletePrefetchSchedule_playbackConfigurationName,++    -- * Destructuring the Response+    DeletePrefetchScheduleResponse (..),+    newDeletePrefetchScheduleResponse,++    -- * Response Lenses+    deletePrefetchScheduleResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeletePrefetchSchedule' smart constructor.+data DeletePrefetchSchedule = DeletePrefetchSchedule'+  { -- | The name of the prefetch schedule. If the action is successful, the+    -- service sends back an HTTP 204 response with an empty HTTP body.+    name :: Prelude.Text,+    -- | The name of the playback configuration for this prefetch schedule.+    playbackConfigurationName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeletePrefetchSchedule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'deletePrefetchSchedule_name' - The name of the prefetch schedule. If the action is successful, the+-- service sends back an HTTP 204 response with an empty HTTP body.+--+-- 'playbackConfigurationName', 'deletePrefetchSchedule_playbackConfigurationName' - The name of the playback configuration for this prefetch schedule.+newDeletePrefetchSchedule ::+  -- | 'name'+  Prelude.Text ->+  -- | 'playbackConfigurationName'+  Prelude.Text ->+  DeletePrefetchSchedule+newDeletePrefetchSchedule+  pName_+  pPlaybackConfigurationName_ =+    DeletePrefetchSchedule'+      { name = pName_,+        playbackConfigurationName =+          pPlaybackConfigurationName_+      }++-- | The name of the prefetch schedule. If the action is successful, the+-- service sends back an HTTP 204 response with an empty HTTP body.+deletePrefetchSchedule_name :: Lens.Lens' DeletePrefetchSchedule Prelude.Text+deletePrefetchSchedule_name = Lens.lens (\DeletePrefetchSchedule' {name} -> name) (\s@DeletePrefetchSchedule' {} a -> s {name = a} :: DeletePrefetchSchedule)++-- | The name of the playback configuration for this prefetch schedule.+deletePrefetchSchedule_playbackConfigurationName :: Lens.Lens' DeletePrefetchSchedule Prelude.Text+deletePrefetchSchedule_playbackConfigurationName = Lens.lens (\DeletePrefetchSchedule' {playbackConfigurationName} -> playbackConfigurationName) (\s@DeletePrefetchSchedule' {} a -> s {playbackConfigurationName = a} :: DeletePrefetchSchedule)++instance Core.AWSRequest DeletePrefetchSchedule where+  type+    AWSResponse DeletePrefetchSchedule =+      DeletePrefetchScheduleResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeletePrefetchScheduleResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeletePrefetchSchedule where+  hashWithSalt _salt DeletePrefetchSchedule' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` playbackConfigurationName++instance Prelude.NFData DeletePrefetchSchedule where+  rnf DeletePrefetchSchedule' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf playbackConfigurationName++instance Data.ToHeaders DeletePrefetchSchedule where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeletePrefetchSchedule where+  toPath DeletePrefetchSchedule' {..} =+    Prelude.mconcat+      [ "/prefetchSchedule/",+        Data.toBS playbackConfigurationName,+        "/",+        Data.toBS name+      ]++instance Data.ToQuery DeletePrefetchSchedule where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeletePrefetchScheduleResponse' smart constructor.+data DeletePrefetchScheduleResponse = DeletePrefetchScheduleResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeletePrefetchScheduleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deletePrefetchScheduleResponse_httpStatus' - The response's http status code.+newDeletePrefetchScheduleResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeletePrefetchScheduleResponse+newDeletePrefetchScheduleResponse pHttpStatus_ =+  DeletePrefetchScheduleResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deletePrefetchScheduleResponse_httpStatus :: Lens.Lens' DeletePrefetchScheduleResponse Prelude.Int+deletePrefetchScheduleResponse_httpStatus = Lens.lens (\DeletePrefetchScheduleResponse' {httpStatus} -> httpStatus) (\s@DeletePrefetchScheduleResponse' {} a -> s {httpStatus = a} :: DeletePrefetchScheduleResponse)++instance+  Prelude.NFData+    DeletePrefetchScheduleResponse+  where+  rnf DeletePrefetchScheduleResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/DeleteProgram.hs view
@@ -0,0 +1,168 @@+{-# 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.MediaTailor.DeleteProgram+-- 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 program within a channel. For information about programs, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/channel-assembly-programs.html Working with programs>+-- in the /MediaTailor User Guide/.+module Amazonka.MediaTailor.DeleteProgram+  ( -- * Creating a Request+    DeleteProgram (..),+    newDeleteProgram,++    -- * Request Lenses+    deleteProgram_channelName,+    deleteProgram_programName,++    -- * Destructuring the Response+    DeleteProgramResponse (..),+    newDeleteProgramResponse,++    -- * Response Lenses+    deleteProgramResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteProgram' smart constructor.+data DeleteProgram = DeleteProgram'+  { -- | The name of the channel.+    channelName :: Prelude.Text,+    -- | The name of the program.+    programName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteProgram' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channelName', 'deleteProgram_channelName' - The name of the channel.+--+-- 'programName', 'deleteProgram_programName' - The name of the program.+newDeleteProgram ::+  -- | 'channelName'+  Prelude.Text ->+  -- | 'programName'+  Prelude.Text ->+  DeleteProgram+newDeleteProgram pChannelName_ pProgramName_ =+  DeleteProgram'+    { channelName = pChannelName_,+      programName = pProgramName_+    }++-- | The name of the channel.+deleteProgram_channelName :: Lens.Lens' DeleteProgram Prelude.Text+deleteProgram_channelName = Lens.lens (\DeleteProgram' {channelName} -> channelName) (\s@DeleteProgram' {} a -> s {channelName = a} :: DeleteProgram)++-- | The name of the program.+deleteProgram_programName :: Lens.Lens' DeleteProgram Prelude.Text+deleteProgram_programName = Lens.lens (\DeleteProgram' {programName} -> programName) (\s@DeleteProgram' {} a -> s {programName = a} :: DeleteProgram)++instance Core.AWSRequest DeleteProgram where+  type+    AWSResponse DeleteProgram =+      DeleteProgramResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteProgramResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteProgram where+  hashWithSalt _salt DeleteProgram' {..} =+    _salt+      `Prelude.hashWithSalt` channelName+      `Prelude.hashWithSalt` programName++instance Prelude.NFData DeleteProgram where+  rnf DeleteProgram' {..} =+    Prelude.rnf channelName+      `Prelude.seq` Prelude.rnf programName++instance Data.ToHeaders DeleteProgram where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteProgram where+  toPath DeleteProgram' {..} =+    Prelude.mconcat+      [ "/channel/",+        Data.toBS channelName,+        "/program/",+        Data.toBS programName+      ]++instance Data.ToQuery DeleteProgram where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteProgramResponse' smart constructor.+data DeleteProgramResponse = DeleteProgramResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteProgramResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteProgramResponse_httpStatus' - The response's http status code.+newDeleteProgramResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteProgramResponse+newDeleteProgramResponse pHttpStatus_ =+  DeleteProgramResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteProgramResponse_httpStatus :: Lens.Lens' DeleteProgramResponse Prelude.Int+deleteProgramResponse_httpStatus = Lens.lens (\DeleteProgramResponse' {httpStatus} -> httpStatus) (\s@DeleteProgramResponse' {} a -> s {httpStatus = a} :: DeleteProgramResponse)++instance Prelude.NFData DeleteProgramResponse where+  rnf DeleteProgramResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/DeleteSourceLocation.hs view
@@ -0,0 +1,154 @@+{-# 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.MediaTailor.DeleteSourceLocation+-- 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 source location. A source location is a container for sources.+-- For more information about source locations, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/channel-assembly-source-locations.html Working with source locations>+-- in the /MediaTailor User Guide/.+module Amazonka.MediaTailor.DeleteSourceLocation+  ( -- * Creating a Request+    DeleteSourceLocation (..),+    newDeleteSourceLocation,++    -- * Request Lenses+    deleteSourceLocation_sourceLocationName,++    -- * Destructuring the Response+    DeleteSourceLocationResponse (..),+    newDeleteSourceLocationResponse,++    -- * Response Lenses+    deleteSourceLocationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteSourceLocation' smart constructor.+data DeleteSourceLocation = DeleteSourceLocation'+  { -- | The name of the source location.+    sourceLocationName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSourceLocation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sourceLocationName', 'deleteSourceLocation_sourceLocationName' - The name of the source location.+newDeleteSourceLocation ::+  -- | 'sourceLocationName'+  Prelude.Text ->+  DeleteSourceLocation+newDeleteSourceLocation pSourceLocationName_ =+  DeleteSourceLocation'+    { sourceLocationName =+        pSourceLocationName_+    }++-- | The name of the source location.+deleteSourceLocation_sourceLocationName :: Lens.Lens' DeleteSourceLocation Prelude.Text+deleteSourceLocation_sourceLocationName = Lens.lens (\DeleteSourceLocation' {sourceLocationName} -> sourceLocationName) (\s@DeleteSourceLocation' {} a -> s {sourceLocationName = a} :: DeleteSourceLocation)++instance Core.AWSRequest DeleteSourceLocation where+  type+    AWSResponse DeleteSourceLocation =+      DeleteSourceLocationResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteSourceLocationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteSourceLocation where+  hashWithSalt _salt DeleteSourceLocation' {..} =+    _salt `Prelude.hashWithSalt` sourceLocationName++instance Prelude.NFData DeleteSourceLocation where+  rnf DeleteSourceLocation' {..} =+    Prelude.rnf sourceLocationName++instance Data.ToHeaders DeleteSourceLocation where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteSourceLocation where+  toPath DeleteSourceLocation' {..} =+    Prelude.mconcat+      ["/sourceLocation/", Data.toBS sourceLocationName]++instance Data.ToQuery DeleteSourceLocation where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteSourceLocationResponse' smart constructor.+data DeleteSourceLocationResponse = DeleteSourceLocationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSourceLocationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteSourceLocationResponse_httpStatus' - The response's http status code.+newDeleteSourceLocationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteSourceLocationResponse+newDeleteSourceLocationResponse pHttpStatus_ =+  DeleteSourceLocationResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteSourceLocationResponse_httpStatus :: Lens.Lens' DeleteSourceLocationResponse Prelude.Int+deleteSourceLocationResponse_httpStatus = Lens.lens (\DeleteSourceLocationResponse' {httpStatus} -> httpStatus) (\s@DeleteSourceLocationResponse' {} a -> s {httpStatus = a} :: DeleteSourceLocationResponse)++instance Prelude.NFData DeleteSourceLocationResponse where+  rnf DeleteSourceLocationResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/DeleteVodSource.hs view
@@ -0,0 +1,169 @@+{-# 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.MediaTailor.DeleteVodSource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- The video on demand (VOD) source to delete.+module Amazonka.MediaTailor.DeleteVodSource+  ( -- * Creating a Request+    DeleteVodSource (..),+    newDeleteVodSource,++    -- * Request Lenses+    deleteVodSource_sourceLocationName,+    deleteVodSource_vodSourceName,++    -- * Destructuring the Response+    DeleteVodSourceResponse (..),+    newDeleteVodSourceResponse,++    -- * Response Lenses+    deleteVodSourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteVodSource' smart constructor.+data DeleteVodSource = DeleteVodSource'+  { -- | The name of the source location associated with this VOD Source.+    sourceLocationName :: Prelude.Text,+    -- | The name of the VOD source.+    vodSourceName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVodSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sourceLocationName', 'deleteVodSource_sourceLocationName' - The name of the source location associated with this VOD Source.+--+-- 'vodSourceName', 'deleteVodSource_vodSourceName' - The name of the VOD source.+newDeleteVodSource ::+  -- | 'sourceLocationName'+  Prelude.Text ->+  -- | 'vodSourceName'+  Prelude.Text ->+  DeleteVodSource+newDeleteVodSource+  pSourceLocationName_+  pVodSourceName_ =+    DeleteVodSource'+      { sourceLocationName =+          pSourceLocationName_,+        vodSourceName = pVodSourceName_+      }++-- | The name of the source location associated with this VOD Source.+deleteVodSource_sourceLocationName :: Lens.Lens' DeleteVodSource Prelude.Text+deleteVodSource_sourceLocationName = Lens.lens (\DeleteVodSource' {sourceLocationName} -> sourceLocationName) (\s@DeleteVodSource' {} a -> s {sourceLocationName = a} :: DeleteVodSource)++-- | The name of the VOD source.+deleteVodSource_vodSourceName :: Lens.Lens' DeleteVodSource Prelude.Text+deleteVodSource_vodSourceName = Lens.lens (\DeleteVodSource' {vodSourceName} -> vodSourceName) (\s@DeleteVodSource' {} a -> s {vodSourceName = a} :: DeleteVodSource)++instance Core.AWSRequest DeleteVodSource where+  type+    AWSResponse DeleteVodSource =+      DeleteVodSourceResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteVodSourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteVodSource where+  hashWithSalt _salt DeleteVodSource' {..} =+    _salt+      `Prelude.hashWithSalt` sourceLocationName+      `Prelude.hashWithSalt` vodSourceName++instance Prelude.NFData DeleteVodSource where+  rnf DeleteVodSource' {..} =+    Prelude.rnf sourceLocationName+      `Prelude.seq` Prelude.rnf vodSourceName++instance Data.ToHeaders DeleteVodSource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteVodSource where+  toPath DeleteVodSource' {..} =+    Prelude.mconcat+      [ "/sourceLocation/",+        Data.toBS sourceLocationName,+        "/vodSource/",+        Data.toBS vodSourceName+      ]++instance Data.ToQuery DeleteVodSource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteVodSourceResponse' smart constructor.+data DeleteVodSourceResponse = DeleteVodSourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVodSourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteVodSourceResponse_httpStatus' - The response's http status code.+newDeleteVodSourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteVodSourceResponse+newDeleteVodSourceResponse pHttpStatus_ =+  DeleteVodSourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteVodSourceResponse_httpStatus :: Lens.Lens' DeleteVodSourceResponse Prelude.Int+deleteVodSourceResponse_httpStatus = Lens.lens (\DeleteVodSourceResponse' {httpStatus} -> httpStatus) (\s@DeleteVodSourceResponse' {} a -> s {httpStatus = a} :: DeleteVodSourceResponse)++instance Prelude.NFData DeleteVodSourceResponse where+  rnf DeleteVodSourceResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/DescribeChannel.hs view
@@ -0,0 +1,280 @@+{-# 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.MediaTailor.DescribeChannel+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes a channel. For information about MediaTailor channels, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/channel-assembly-channels.html Working with channels>+-- in the /MediaTailor User Guide/.+module Amazonka.MediaTailor.DescribeChannel+  ( -- * Creating a Request+    DescribeChannel (..),+    newDescribeChannel,++    -- * Request Lenses+    describeChannel_channelName,++    -- * Destructuring the Response+    DescribeChannelResponse (..),+    newDescribeChannelResponse,++    -- * Response Lenses+    describeChannelResponse_arn,+    describeChannelResponse_channelName,+    describeChannelResponse_channelState,+    describeChannelResponse_creationTime,+    describeChannelResponse_fillerSlate,+    describeChannelResponse_lastModifiedTime,+    describeChannelResponse_outputs,+    describeChannelResponse_playbackMode,+    describeChannelResponse_tags,+    describeChannelResponse_tier,+    describeChannelResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeChannel' smart constructor.+data DescribeChannel = DescribeChannel'+  { -- | The name of the channel.+    channelName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeChannel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channelName', 'describeChannel_channelName' - The name of the channel.+newDescribeChannel ::+  -- | 'channelName'+  Prelude.Text ->+  DescribeChannel+newDescribeChannel pChannelName_ =+  DescribeChannel' {channelName = pChannelName_}++-- | The name of the channel.+describeChannel_channelName :: Lens.Lens' DescribeChannel Prelude.Text+describeChannel_channelName = Lens.lens (\DescribeChannel' {channelName} -> channelName) (\s@DescribeChannel' {} a -> s {channelName = a} :: DescribeChannel)++instance Core.AWSRequest DescribeChannel where+  type+    AWSResponse DescribeChannel =+      DescribeChannelResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeChannelResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "ChannelName")+            Prelude.<*> (x Data..?> "ChannelState")+            Prelude.<*> (x Data..?> "CreationTime")+            Prelude.<*> (x Data..?> "FillerSlate")+            Prelude.<*> (x Data..?> "LastModifiedTime")+            Prelude.<*> (x Data..?> "Outputs" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "PlaybackMode")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "Tier")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeChannel where+  hashWithSalt _salt DescribeChannel' {..} =+    _salt `Prelude.hashWithSalt` channelName++instance Prelude.NFData DescribeChannel where+  rnf DescribeChannel' {..} = Prelude.rnf channelName++instance Data.ToHeaders DescribeChannel where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeChannel where+  toPath DescribeChannel' {..} =+    Prelude.mconcat+      ["/channel/", Data.toBS channelName]++instance Data.ToQuery DescribeChannel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeChannelResponse' smart constructor.+data DescribeChannelResponse = DescribeChannelResponse'+  { -- | The ARN of the channel.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The name of the channel.+    channelName :: Prelude.Maybe Prelude.Text,+    -- | Indicates whether the channel is in a running state or not.+    channelState :: Prelude.Maybe ChannelState,+    -- | The timestamp of when the channel was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | Contains information about the slate used to fill gaps between programs+    -- in the schedule.+    fillerSlate :: Prelude.Maybe SlateSource,+    -- | The timestamp of when the channel was last modified.+    lastModifiedTime :: Prelude.Maybe Data.POSIX,+    -- | The channel\'s output properties.+    outputs :: Prelude.Maybe [ResponseOutputItem],+    -- | The channel\'s playback mode.+    playbackMode :: Prelude.Maybe Prelude.Text,+    -- | The tags assigned to the channel. Tags are key-value pairs that you can+    -- associate with Amazon resources to help with organization, access+    -- control, and cost tracking. For more information, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The channel\'s tier.+    tier :: 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 'DescribeChannelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeChannelResponse_arn' - The ARN of the channel.+--+-- 'channelName', 'describeChannelResponse_channelName' - The name of the channel.+--+-- 'channelState', 'describeChannelResponse_channelState' - Indicates whether the channel is in a running state or not.+--+-- 'creationTime', 'describeChannelResponse_creationTime' - The timestamp of when the channel was created.+--+-- 'fillerSlate', 'describeChannelResponse_fillerSlate' - Contains information about the slate used to fill gaps between programs+-- in the schedule.+--+-- 'lastModifiedTime', 'describeChannelResponse_lastModifiedTime' - The timestamp of when the channel was last modified.+--+-- 'outputs', 'describeChannelResponse_outputs' - The channel\'s output properties.+--+-- 'playbackMode', 'describeChannelResponse_playbackMode' - The channel\'s playback mode.+--+-- 'tags', 'describeChannelResponse_tags' - The tags assigned to the channel. Tags are key-value pairs that you can+-- associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+--+-- 'tier', 'describeChannelResponse_tier' - The channel\'s tier.+--+-- 'httpStatus', 'describeChannelResponse_httpStatus' - The response's http status code.+newDescribeChannelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeChannelResponse+newDescribeChannelResponse pHttpStatus_ =+  DescribeChannelResponse'+    { arn = Prelude.Nothing,+      channelName = Prelude.Nothing,+      channelState = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      fillerSlate = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      outputs = Prelude.Nothing,+      playbackMode = Prelude.Nothing,+      tags = Prelude.Nothing,+      tier = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the channel.+describeChannelResponse_arn :: Lens.Lens' DescribeChannelResponse (Prelude.Maybe Prelude.Text)+describeChannelResponse_arn = Lens.lens (\DescribeChannelResponse' {arn} -> arn) (\s@DescribeChannelResponse' {} a -> s {arn = a} :: DescribeChannelResponse)++-- | The name of the channel.+describeChannelResponse_channelName :: Lens.Lens' DescribeChannelResponse (Prelude.Maybe Prelude.Text)+describeChannelResponse_channelName = Lens.lens (\DescribeChannelResponse' {channelName} -> channelName) (\s@DescribeChannelResponse' {} a -> s {channelName = a} :: DescribeChannelResponse)++-- | Indicates whether the channel is in a running state or not.+describeChannelResponse_channelState :: Lens.Lens' DescribeChannelResponse (Prelude.Maybe ChannelState)+describeChannelResponse_channelState = Lens.lens (\DescribeChannelResponse' {channelState} -> channelState) (\s@DescribeChannelResponse' {} a -> s {channelState = a} :: DescribeChannelResponse)++-- | The timestamp of when the channel was created.+describeChannelResponse_creationTime :: Lens.Lens' DescribeChannelResponse (Prelude.Maybe Prelude.UTCTime)+describeChannelResponse_creationTime = Lens.lens (\DescribeChannelResponse' {creationTime} -> creationTime) (\s@DescribeChannelResponse' {} a -> s {creationTime = a} :: DescribeChannelResponse) Prelude.. Lens.mapping Data._Time++-- | Contains information about the slate used to fill gaps between programs+-- in the schedule.+describeChannelResponse_fillerSlate :: Lens.Lens' DescribeChannelResponse (Prelude.Maybe SlateSource)+describeChannelResponse_fillerSlate = Lens.lens (\DescribeChannelResponse' {fillerSlate} -> fillerSlate) (\s@DescribeChannelResponse' {} a -> s {fillerSlate = a} :: DescribeChannelResponse)++-- | The timestamp of when the channel was last modified.+describeChannelResponse_lastModifiedTime :: Lens.Lens' DescribeChannelResponse (Prelude.Maybe Prelude.UTCTime)+describeChannelResponse_lastModifiedTime = Lens.lens (\DescribeChannelResponse' {lastModifiedTime} -> lastModifiedTime) (\s@DescribeChannelResponse' {} a -> s {lastModifiedTime = a} :: DescribeChannelResponse) Prelude.. Lens.mapping Data._Time++-- | The channel\'s output properties.+describeChannelResponse_outputs :: Lens.Lens' DescribeChannelResponse (Prelude.Maybe [ResponseOutputItem])+describeChannelResponse_outputs = Lens.lens (\DescribeChannelResponse' {outputs} -> outputs) (\s@DescribeChannelResponse' {} a -> s {outputs = a} :: DescribeChannelResponse) Prelude.. Lens.mapping Lens.coerced++-- | The channel\'s playback mode.+describeChannelResponse_playbackMode :: Lens.Lens' DescribeChannelResponse (Prelude.Maybe Prelude.Text)+describeChannelResponse_playbackMode = Lens.lens (\DescribeChannelResponse' {playbackMode} -> playbackMode) (\s@DescribeChannelResponse' {} a -> s {playbackMode = a} :: DescribeChannelResponse)++-- | The tags assigned to the channel. Tags are key-value pairs that you can+-- associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+describeChannelResponse_tags :: Lens.Lens' DescribeChannelResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+describeChannelResponse_tags = Lens.lens (\DescribeChannelResponse' {tags} -> tags) (\s@DescribeChannelResponse' {} a -> s {tags = a} :: DescribeChannelResponse) Prelude.. Lens.mapping Lens.coerced++-- | The channel\'s tier.+describeChannelResponse_tier :: Lens.Lens' DescribeChannelResponse (Prelude.Maybe Prelude.Text)+describeChannelResponse_tier = Lens.lens (\DescribeChannelResponse' {tier} -> tier) (\s@DescribeChannelResponse' {} a -> s {tier = a} :: DescribeChannelResponse)++-- | The response's http status code.+describeChannelResponse_httpStatus :: Lens.Lens' DescribeChannelResponse Prelude.Int+describeChannelResponse_httpStatus = Lens.lens (\DescribeChannelResponse' {httpStatus} -> httpStatus) (\s@DescribeChannelResponse' {} a -> s {httpStatus = a} :: DescribeChannelResponse)++instance Prelude.NFData DescribeChannelResponse where+  rnf DescribeChannelResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf channelName+      `Prelude.seq` Prelude.rnf channelState+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf fillerSlate+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf outputs+      `Prelude.seq` Prelude.rnf playbackMode+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf tier+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/DescribeLiveSource.hs view
@@ -0,0 +1,267 @@+{-# 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.MediaTailor.DescribeLiveSource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- The live source to describe.+module Amazonka.MediaTailor.DescribeLiveSource+  ( -- * Creating a Request+    DescribeLiveSource (..),+    newDescribeLiveSource,++    -- * Request Lenses+    describeLiveSource_liveSourceName,+    describeLiveSource_sourceLocationName,++    -- * Destructuring the Response+    DescribeLiveSourceResponse (..),+    newDescribeLiveSourceResponse,++    -- * Response Lenses+    describeLiveSourceResponse_arn,+    describeLiveSourceResponse_creationTime,+    describeLiveSourceResponse_httpPackageConfigurations,+    describeLiveSourceResponse_lastModifiedTime,+    describeLiveSourceResponse_liveSourceName,+    describeLiveSourceResponse_sourceLocationName,+    describeLiveSourceResponse_tags,+    describeLiveSourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeLiveSource' smart constructor.+data DescribeLiveSource = DescribeLiveSource'+  { -- | The name of the live source.+    liveSourceName :: Prelude.Text,+    -- | The name of the source location associated with this Live Source.+    sourceLocationName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeLiveSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'liveSourceName', 'describeLiveSource_liveSourceName' - The name of the live source.+--+-- 'sourceLocationName', 'describeLiveSource_sourceLocationName' - The name of the source location associated with this Live Source.+newDescribeLiveSource ::+  -- | 'liveSourceName'+  Prelude.Text ->+  -- | 'sourceLocationName'+  Prelude.Text ->+  DescribeLiveSource+newDescribeLiveSource+  pLiveSourceName_+  pSourceLocationName_ =+    DescribeLiveSource'+      { liveSourceName =+          pLiveSourceName_,+        sourceLocationName = pSourceLocationName_+      }++-- | The name of the live source.+describeLiveSource_liveSourceName :: Lens.Lens' DescribeLiveSource Prelude.Text+describeLiveSource_liveSourceName = Lens.lens (\DescribeLiveSource' {liveSourceName} -> liveSourceName) (\s@DescribeLiveSource' {} a -> s {liveSourceName = a} :: DescribeLiveSource)++-- | The name of the source location associated with this Live Source.+describeLiveSource_sourceLocationName :: Lens.Lens' DescribeLiveSource Prelude.Text+describeLiveSource_sourceLocationName = Lens.lens (\DescribeLiveSource' {sourceLocationName} -> sourceLocationName) (\s@DescribeLiveSource' {} a -> s {sourceLocationName = a} :: DescribeLiveSource)++instance Core.AWSRequest DescribeLiveSource where+  type+    AWSResponse DescribeLiveSource =+      DescribeLiveSourceResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeLiveSourceResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "CreationTime")+            Prelude.<*> ( x+                            Data..?> "HttpPackageConfigurations"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "LastModifiedTime")+            Prelude.<*> (x Data..?> "LiveSourceName")+            Prelude.<*> (x Data..?> "SourceLocationName")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeLiveSource where+  hashWithSalt _salt DescribeLiveSource' {..} =+    _salt+      `Prelude.hashWithSalt` liveSourceName+      `Prelude.hashWithSalt` sourceLocationName++instance Prelude.NFData DescribeLiveSource where+  rnf DescribeLiveSource' {..} =+    Prelude.rnf liveSourceName+      `Prelude.seq` Prelude.rnf sourceLocationName++instance Data.ToHeaders DescribeLiveSource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeLiveSource where+  toPath DescribeLiveSource' {..} =+    Prelude.mconcat+      [ "/sourceLocation/",+        Data.toBS sourceLocationName,+        "/liveSource/",+        Data.toBS liveSourceName+      ]++instance Data.ToQuery DescribeLiveSource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeLiveSourceResponse' smart constructor.+data DescribeLiveSourceResponse = DescribeLiveSourceResponse'+  { -- | The ARN of the live source.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The timestamp that indicates when the live source was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The HTTP package configurations.+    httpPackageConfigurations :: Prelude.Maybe [HttpPackageConfiguration],+    -- | The timestamp that indicates when the live source was modified.+    lastModifiedTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the live source.+    liveSourceName :: Prelude.Maybe Prelude.Text,+    -- | The name of the source location associated with the live source.+    sourceLocationName :: Prelude.Maybe Prelude.Text,+    -- | The tags assigned to the live source. Tags are key-value pairs that you+    -- can associate with Amazon resources to help with organization, access+    -- control, and cost tracking. For more information, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+    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 'DescribeLiveSourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeLiveSourceResponse_arn' - The ARN of the live source.+--+-- 'creationTime', 'describeLiveSourceResponse_creationTime' - The timestamp that indicates when the live source was created.+--+-- 'httpPackageConfigurations', 'describeLiveSourceResponse_httpPackageConfigurations' - The HTTP package configurations.+--+-- 'lastModifiedTime', 'describeLiveSourceResponse_lastModifiedTime' - The timestamp that indicates when the live source was modified.+--+-- 'liveSourceName', 'describeLiveSourceResponse_liveSourceName' - The name of the live source.+--+-- 'sourceLocationName', 'describeLiveSourceResponse_sourceLocationName' - The name of the source location associated with the live source.+--+-- 'tags', 'describeLiveSourceResponse_tags' - The tags assigned to the live source. Tags are key-value pairs that you+-- can associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+--+-- 'httpStatus', 'describeLiveSourceResponse_httpStatus' - The response's http status code.+newDescribeLiveSourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeLiveSourceResponse+newDescribeLiveSourceResponse pHttpStatus_ =+  DescribeLiveSourceResponse'+    { arn = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      httpPackageConfigurations = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      liveSourceName = Prelude.Nothing,+      sourceLocationName = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the live source.+describeLiveSourceResponse_arn :: Lens.Lens' DescribeLiveSourceResponse (Prelude.Maybe Prelude.Text)+describeLiveSourceResponse_arn = Lens.lens (\DescribeLiveSourceResponse' {arn} -> arn) (\s@DescribeLiveSourceResponse' {} a -> s {arn = a} :: DescribeLiveSourceResponse)++-- | The timestamp that indicates when the live source was created.+describeLiveSourceResponse_creationTime :: Lens.Lens' DescribeLiveSourceResponse (Prelude.Maybe Prelude.UTCTime)+describeLiveSourceResponse_creationTime = Lens.lens (\DescribeLiveSourceResponse' {creationTime} -> creationTime) (\s@DescribeLiveSourceResponse' {} a -> s {creationTime = a} :: DescribeLiveSourceResponse) Prelude.. Lens.mapping Data._Time++-- | The HTTP package configurations.+describeLiveSourceResponse_httpPackageConfigurations :: Lens.Lens' DescribeLiveSourceResponse (Prelude.Maybe [HttpPackageConfiguration])+describeLiveSourceResponse_httpPackageConfigurations = Lens.lens (\DescribeLiveSourceResponse' {httpPackageConfigurations} -> httpPackageConfigurations) (\s@DescribeLiveSourceResponse' {} a -> s {httpPackageConfigurations = a} :: DescribeLiveSourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The timestamp that indicates when the live source was modified.+describeLiveSourceResponse_lastModifiedTime :: Lens.Lens' DescribeLiveSourceResponse (Prelude.Maybe Prelude.UTCTime)+describeLiveSourceResponse_lastModifiedTime = Lens.lens (\DescribeLiveSourceResponse' {lastModifiedTime} -> lastModifiedTime) (\s@DescribeLiveSourceResponse' {} a -> s {lastModifiedTime = a} :: DescribeLiveSourceResponse) Prelude.. Lens.mapping Data._Time++-- | The name of the live source.+describeLiveSourceResponse_liveSourceName :: Lens.Lens' DescribeLiveSourceResponse (Prelude.Maybe Prelude.Text)+describeLiveSourceResponse_liveSourceName = Lens.lens (\DescribeLiveSourceResponse' {liveSourceName} -> liveSourceName) (\s@DescribeLiveSourceResponse' {} a -> s {liveSourceName = a} :: DescribeLiveSourceResponse)++-- | The name of the source location associated with the live source.+describeLiveSourceResponse_sourceLocationName :: Lens.Lens' DescribeLiveSourceResponse (Prelude.Maybe Prelude.Text)+describeLiveSourceResponse_sourceLocationName = Lens.lens (\DescribeLiveSourceResponse' {sourceLocationName} -> sourceLocationName) (\s@DescribeLiveSourceResponse' {} a -> s {sourceLocationName = a} :: DescribeLiveSourceResponse)++-- | The tags assigned to the live source. Tags are key-value pairs that you+-- can associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+describeLiveSourceResponse_tags :: Lens.Lens' DescribeLiveSourceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+describeLiveSourceResponse_tags = Lens.lens (\DescribeLiveSourceResponse' {tags} -> tags) (\s@DescribeLiveSourceResponse' {} a -> s {tags = a} :: DescribeLiveSourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeLiveSourceResponse_httpStatus :: Lens.Lens' DescribeLiveSourceResponse Prelude.Int+describeLiveSourceResponse_httpStatus = Lens.lens (\DescribeLiveSourceResponse' {httpStatus} -> httpStatus) (\s@DescribeLiveSourceResponse' {} a -> s {httpStatus = a} :: DescribeLiveSourceResponse)++instance Prelude.NFData DescribeLiveSourceResponse where+  rnf DescribeLiveSourceResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf httpPackageConfigurations+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf liveSourceName+      `Prelude.seq` Prelude.rnf sourceLocationName+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/DescribeProgram.hs view
@@ -0,0 +1,286 @@+{-# 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.MediaTailor.DescribeProgram+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes a program within a channel. For information about programs,+-- see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/channel-assembly-programs.html Working with programs>+-- in the /MediaTailor User Guide/.+module Amazonka.MediaTailor.DescribeProgram+  ( -- * Creating a Request+    DescribeProgram (..),+    newDescribeProgram,++    -- * Request Lenses+    describeProgram_channelName,+    describeProgram_programName,++    -- * Destructuring the Response+    DescribeProgramResponse (..),+    newDescribeProgramResponse,++    -- * Response Lenses+    describeProgramResponse_adBreaks,+    describeProgramResponse_arn,+    describeProgramResponse_channelName,+    describeProgramResponse_creationTime,+    describeProgramResponse_liveSourceName,+    describeProgramResponse_programName,+    describeProgramResponse_scheduledStartTime,+    describeProgramResponse_sourceLocationName,+    describeProgramResponse_vodSourceName,+    describeProgramResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeProgram' smart constructor.+data DescribeProgram = DescribeProgram'+  { -- | The name of the channel associated with this Program.+    channelName :: Prelude.Text,+    -- | The name of the program.+    programName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeProgram' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channelName', 'describeProgram_channelName' - The name of the channel associated with this Program.+--+-- 'programName', 'describeProgram_programName' - The name of the program.+newDescribeProgram ::+  -- | 'channelName'+  Prelude.Text ->+  -- | 'programName'+  Prelude.Text ->+  DescribeProgram+newDescribeProgram pChannelName_ pProgramName_ =+  DescribeProgram'+    { channelName = pChannelName_,+      programName = pProgramName_+    }++-- | The name of the channel associated with this Program.+describeProgram_channelName :: Lens.Lens' DescribeProgram Prelude.Text+describeProgram_channelName = Lens.lens (\DescribeProgram' {channelName} -> channelName) (\s@DescribeProgram' {} a -> s {channelName = a} :: DescribeProgram)++-- | The name of the program.+describeProgram_programName :: Lens.Lens' DescribeProgram Prelude.Text+describeProgram_programName = Lens.lens (\DescribeProgram' {programName} -> programName) (\s@DescribeProgram' {} a -> s {programName = a} :: DescribeProgram)++instance Core.AWSRequest DescribeProgram where+  type+    AWSResponse DescribeProgram =+      DescribeProgramResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeProgramResponse'+            Prelude.<$> (x Data..?> "AdBreaks" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "ChannelName")+            Prelude.<*> (x Data..?> "CreationTime")+            Prelude.<*> (x Data..?> "LiveSourceName")+            Prelude.<*> (x Data..?> "ProgramName")+            Prelude.<*> (x Data..?> "ScheduledStartTime")+            Prelude.<*> (x Data..?> "SourceLocationName")+            Prelude.<*> (x Data..?> "VodSourceName")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeProgram where+  hashWithSalt _salt DescribeProgram' {..} =+    _salt+      `Prelude.hashWithSalt` channelName+      `Prelude.hashWithSalt` programName++instance Prelude.NFData DescribeProgram where+  rnf DescribeProgram' {..} =+    Prelude.rnf channelName+      `Prelude.seq` Prelude.rnf programName++instance Data.ToHeaders DescribeProgram where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeProgram where+  toPath DescribeProgram' {..} =+    Prelude.mconcat+      [ "/channel/",+        Data.toBS channelName,+        "/program/",+        Data.toBS programName+      ]++instance Data.ToQuery DescribeProgram where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeProgramResponse' smart constructor.+data DescribeProgramResponse = DescribeProgramResponse'+  { -- | The ad break configuration settings.+    adBreaks :: Prelude.Maybe [AdBreak],+    -- | The ARN of the program.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The name of the channel that the program belongs to.+    channelName :: Prelude.Maybe Prelude.Text,+    -- | The timestamp of when the program was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the LiveSource for this Program.+    liveSourceName :: Prelude.Maybe Prelude.Text,+    -- | The name of the program.+    programName :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the program is scheduled to start in ISO 8601+    -- format and Coordinated Universal Time (UTC). For example, the value+    -- 2021-03-27T17:48:16.751Z represents March 27, 2021 at 17:48:16.751 UTC.+    scheduledStartTime :: Prelude.Maybe Data.POSIX,+    -- | The source location name.+    sourceLocationName :: Prelude.Maybe Prelude.Text,+    -- | The name that\'s used to refer to a VOD source.+    vodSourceName :: 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 'DescribeProgramResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'adBreaks', 'describeProgramResponse_adBreaks' - The ad break configuration settings.+--+-- 'arn', 'describeProgramResponse_arn' - The ARN of the program.+--+-- 'channelName', 'describeProgramResponse_channelName' - The name of the channel that the program belongs to.+--+-- 'creationTime', 'describeProgramResponse_creationTime' - The timestamp of when the program was created.+--+-- 'liveSourceName', 'describeProgramResponse_liveSourceName' - The name of the LiveSource for this Program.+--+-- 'programName', 'describeProgramResponse_programName' - The name of the program.+--+-- 'scheduledStartTime', 'describeProgramResponse_scheduledStartTime' - The date and time that the program is scheduled to start in ISO 8601+-- format and Coordinated Universal Time (UTC). For example, the value+-- 2021-03-27T17:48:16.751Z represents March 27, 2021 at 17:48:16.751 UTC.+--+-- 'sourceLocationName', 'describeProgramResponse_sourceLocationName' - The source location name.+--+-- 'vodSourceName', 'describeProgramResponse_vodSourceName' - The name that\'s used to refer to a VOD source.+--+-- 'httpStatus', 'describeProgramResponse_httpStatus' - The response's http status code.+newDescribeProgramResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeProgramResponse+newDescribeProgramResponse pHttpStatus_ =+  DescribeProgramResponse'+    { adBreaks =+        Prelude.Nothing,+      arn = Prelude.Nothing,+      channelName = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      liveSourceName = Prelude.Nothing,+      programName = Prelude.Nothing,+      scheduledStartTime = Prelude.Nothing,+      sourceLocationName = Prelude.Nothing,+      vodSourceName = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ad break configuration settings.+describeProgramResponse_adBreaks :: Lens.Lens' DescribeProgramResponse (Prelude.Maybe [AdBreak])+describeProgramResponse_adBreaks = Lens.lens (\DescribeProgramResponse' {adBreaks} -> adBreaks) (\s@DescribeProgramResponse' {} a -> s {adBreaks = a} :: DescribeProgramResponse) Prelude.. Lens.mapping Lens.coerced++-- | The ARN of the program.+describeProgramResponse_arn :: Lens.Lens' DescribeProgramResponse (Prelude.Maybe Prelude.Text)+describeProgramResponse_arn = Lens.lens (\DescribeProgramResponse' {arn} -> arn) (\s@DescribeProgramResponse' {} a -> s {arn = a} :: DescribeProgramResponse)++-- | The name of the channel that the program belongs to.+describeProgramResponse_channelName :: Lens.Lens' DescribeProgramResponse (Prelude.Maybe Prelude.Text)+describeProgramResponse_channelName = Lens.lens (\DescribeProgramResponse' {channelName} -> channelName) (\s@DescribeProgramResponse' {} a -> s {channelName = a} :: DescribeProgramResponse)++-- | The timestamp of when the program was created.+describeProgramResponse_creationTime :: Lens.Lens' DescribeProgramResponse (Prelude.Maybe Prelude.UTCTime)+describeProgramResponse_creationTime = Lens.lens (\DescribeProgramResponse' {creationTime} -> creationTime) (\s@DescribeProgramResponse' {} a -> s {creationTime = a} :: DescribeProgramResponse) Prelude.. Lens.mapping Data._Time++-- | The name of the LiveSource for this Program.+describeProgramResponse_liveSourceName :: Lens.Lens' DescribeProgramResponse (Prelude.Maybe Prelude.Text)+describeProgramResponse_liveSourceName = Lens.lens (\DescribeProgramResponse' {liveSourceName} -> liveSourceName) (\s@DescribeProgramResponse' {} a -> s {liveSourceName = a} :: DescribeProgramResponse)++-- | The name of the program.+describeProgramResponse_programName :: Lens.Lens' DescribeProgramResponse (Prelude.Maybe Prelude.Text)+describeProgramResponse_programName = Lens.lens (\DescribeProgramResponse' {programName} -> programName) (\s@DescribeProgramResponse' {} a -> s {programName = a} :: DescribeProgramResponse)++-- | The date and time that the program is scheduled to start in ISO 8601+-- format and Coordinated Universal Time (UTC). For example, the value+-- 2021-03-27T17:48:16.751Z represents March 27, 2021 at 17:48:16.751 UTC.+describeProgramResponse_scheduledStartTime :: Lens.Lens' DescribeProgramResponse (Prelude.Maybe Prelude.UTCTime)+describeProgramResponse_scheduledStartTime = Lens.lens (\DescribeProgramResponse' {scheduledStartTime} -> scheduledStartTime) (\s@DescribeProgramResponse' {} a -> s {scheduledStartTime = a} :: DescribeProgramResponse) Prelude.. Lens.mapping Data._Time++-- | The source location name.+describeProgramResponse_sourceLocationName :: Lens.Lens' DescribeProgramResponse (Prelude.Maybe Prelude.Text)+describeProgramResponse_sourceLocationName = Lens.lens (\DescribeProgramResponse' {sourceLocationName} -> sourceLocationName) (\s@DescribeProgramResponse' {} a -> s {sourceLocationName = a} :: DescribeProgramResponse)++-- | The name that\'s used to refer to a VOD source.+describeProgramResponse_vodSourceName :: Lens.Lens' DescribeProgramResponse (Prelude.Maybe Prelude.Text)+describeProgramResponse_vodSourceName = Lens.lens (\DescribeProgramResponse' {vodSourceName} -> vodSourceName) (\s@DescribeProgramResponse' {} a -> s {vodSourceName = a} :: DescribeProgramResponse)++-- | The response's http status code.+describeProgramResponse_httpStatus :: Lens.Lens' DescribeProgramResponse Prelude.Int+describeProgramResponse_httpStatus = Lens.lens (\DescribeProgramResponse' {httpStatus} -> httpStatus) (\s@DescribeProgramResponse' {} a -> s {httpStatus = a} :: DescribeProgramResponse)++instance Prelude.NFData DescribeProgramResponse where+  rnf DescribeProgramResponse' {..} =+    Prelude.rnf adBreaks+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf channelName+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf liveSourceName+      `Prelude.seq` Prelude.rnf programName+      `Prelude.seq` Prelude.rnf scheduledStartTime+      `Prelude.seq` Prelude.rnf sourceLocationName+      `Prelude.seq` Prelude.rnf vodSourceName+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/DescribeSourceLocation.hs view
@@ -0,0 +1,282 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaTailor.DescribeSourceLocation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes a source location. A source location is a container for+-- sources. For more information about source locations, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/channel-assembly-source-locations.html Working with source locations>+-- in the /MediaTailor User Guide/.+module Amazonka.MediaTailor.DescribeSourceLocation+  ( -- * Creating a Request+    DescribeSourceLocation (..),+    newDescribeSourceLocation,++    -- * Request Lenses+    describeSourceLocation_sourceLocationName,++    -- * Destructuring the Response+    DescribeSourceLocationResponse (..),+    newDescribeSourceLocationResponse,++    -- * Response Lenses+    describeSourceLocationResponse_accessConfiguration,+    describeSourceLocationResponse_arn,+    describeSourceLocationResponse_creationTime,+    describeSourceLocationResponse_defaultSegmentDeliveryConfiguration,+    describeSourceLocationResponse_httpConfiguration,+    describeSourceLocationResponse_lastModifiedTime,+    describeSourceLocationResponse_segmentDeliveryConfigurations,+    describeSourceLocationResponse_sourceLocationName,+    describeSourceLocationResponse_tags,+    describeSourceLocationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeSourceLocation' smart constructor.+data DescribeSourceLocation = DescribeSourceLocation'+  { -- | The name of the source location.+    sourceLocationName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSourceLocation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sourceLocationName', 'describeSourceLocation_sourceLocationName' - The name of the source location.+newDescribeSourceLocation ::+  -- | 'sourceLocationName'+  Prelude.Text ->+  DescribeSourceLocation+newDescribeSourceLocation pSourceLocationName_ =+  DescribeSourceLocation'+    { sourceLocationName =+        pSourceLocationName_+    }++-- | The name of the source location.+describeSourceLocation_sourceLocationName :: Lens.Lens' DescribeSourceLocation Prelude.Text+describeSourceLocation_sourceLocationName = Lens.lens (\DescribeSourceLocation' {sourceLocationName} -> sourceLocationName) (\s@DescribeSourceLocation' {} a -> s {sourceLocationName = a} :: DescribeSourceLocation)++instance Core.AWSRequest DescribeSourceLocation where+  type+    AWSResponse DescribeSourceLocation =+      DescribeSourceLocationResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeSourceLocationResponse'+            Prelude.<$> (x Data..?> "AccessConfiguration")+            Prelude.<*> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "CreationTime")+            Prelude.<*> (x Data..?> "DefaultSegmentDeliveryConfiguration")+            Prelude.<*> (x Data..?> "HttpConfiguration")+            Prelude.<*> (x Data..?> "LastModifiedTime")+            Prelude.<*> ( x+                            Data..?> "SegmentDeliveryConfigurations"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "SourceLocationName")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeSourceLocation where+  hashWithSalt _salt DescribeSourceLocation' {..} =+    _salt `Prelude.hashWithSalt` sourceLocationName++instance Prelude.NFData DescribeSourceLocation where+  rnf DescribeSourceLocation' {..} =+    Prelude.rnf sourceLocationName++instance Data.ToHeaders DescribeSourceLocation where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeSourceLocation where+  toPath DescribeSourceLocation' {..} =+    Prelude.mconcat+      ["/sourceLocation/", Data.toBS sourceLocationName]++instance Data.ToQuery DescribeSourceLocation where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeSourceLocationResponse' smart constructor.+data DescribeSourceLocationResponse = DescribeSourceLocationResponse'+  { -- | The access configuration for the source location.+    accessConfiguration :: Prelude.Maybe AccessConfiguration,+    -- | The ARN of the source location.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The timestamp that indicates when the source location was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The default segment delivery configuration settings.+    defaultSegmentDeliveryConfiguration :: Prelude.Maybe DefaultSegmentDeliveryConfiguration,+    -- | The HTTP package configuration settings for the source location.+    httpConfiguration :: Prelude.Maybe HttpConfiguration,+    -- | The timestamp that indicates when the source location was last modified.+    lastModifiedTime :: Prelude.Maybe Data.POSIX,+    -- | A list of the segment delivery configurations associated with this+    -- resource.+    segmentDeliveryConfigurations :: Prelude.Maybe [SegmentDeliveryConfiguration],+    -- | The name of the source location.+    sourceLocationName :: Prelude.Maybe Prelude.Text,+    -- | The tags assigned to the source location. Tags are key-value pairs that+    -- you can associate with Amazon resources to help with organization,+    -- access control, and cost tracking. For more information, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+    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 'DescribeSourceLocationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessConfiguration', 'describeSourceLocationResponse_accessConfiguration' - The access configuration for the source location.+--+-- 'arn', 'describeSourceLocationResponse_arn' - The ARN of the source location.+--+-- 'creationTime', 'describeSourceLocationResponse_creationTime' - The timestamp that indicates when the source location was created.+--+-- 'defaultSegmentDeliveryConfiguration', 'describeSourceLocationResponse_defaultSegmentDeliveryConfiguration' - The default segment delivery configuration settings.+--+-- 'httpConfiguration', 'describeSourceLocationResponse_httpConfiguration' - The HTTP package configuration settings for the source location.+--+-- 'lastModifiedTime', 'describeSourceLocationResponse_lastModifiedTime' - The timestamp that indicates when the source location was last modified.+--+-- 'segmentDeliveryConfigurations', 'describeSourceLocationResponse_segmentDeliveryConfigurations' - A list of the segment delivery configurations associated with this+-- resource.+--+-- 'sourceLocationName', 'describeSourceLocationResponse_sourceLocationName' - The name of the source location.+--+-- 'tags', 'describeSourceLocationResponse_tags' - The tags assigned to the source location. Tags are key-value pairs that+-- you can associate with Amazon resources to help with organization,+-- access control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+--+-- 'httpStatus', 'describeSourceLocationResponse_httpStatus' - The response's http status code.+newDescribeSourceLocationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeSourceLocationResponse+newDescribeSourceLocationResponse pHttpStatus_ =+  DescribeSourceLocationResponse'+    { accessConfiguration =+        Prelude.Nothing,+      arn = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      defaultSegmentDeliveryConfiguration =+        Prelude.Nothing,+      httpConfiguration = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      segmentDeliveryConfigurations =+        Prelude.Nothing,+      sourceLocationName = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The access configuration for the source location.+describeSourceLocationResponse_accessConfiguration :: Lens.Lens' DescribeSourceLocationResponse (Prelude.Maybe AccessConfiguration)+describeSourceLocationResponse_accessConfiguration = Lens.lens (\DescribeSourceLocationResponse' {accessConfiguration} -> accessConfiguration) (\s@DescribeSourceLocationResponse' {} a -> s {accessConfiguration = a} :: DescribeSourceLocationResponse)++-- | The ARN of the source location.+describeSourceLocationResponse_arn :: Lens.Lens' DescribeSourceLocationResponse (Prelude.Maybe Prelude.Text)+describeSourceLocationResponse_arn = Lens.lens (\DescribeSourceLocationResponse' {arn} -> arn) (\s@DescribeSourceLocationResponse' {} a -> s {arn = a} :: DescribeSourceLocationResponse)++-- | The timestamp that indicates when the source location was created.+describeSourceLocationResponse_creationTime :: Lens.Lens' DescribeSourceLocationResponse (Prelude.Maybe Prelude.UTCTime)+describeSourceLocationResponse_creationTime = Lens.lens (\DescribeSourceLocationResponse' {creationTime} -> creationTime) (\s@DescribeSourceLocationResponse' {} a -> s {creationTime = a} :: DescribeSourceLocationResponse) Prelude.. Lens.mapping Data._Time++-- | The default segment delivery configuration settings.+describeSourceLocationResponse_defaultSegmentDeliveryConfiguration :: Lens.Lens' DescribeSourceLocationResponse (Prelude.Maybe DefaultSegmentDeliveryConfiguration)+describeSourceLocationResponse_defaultSegmentDeliveryConfiguration = Lens.lens (\DescribeSourceLocationResponse' {defaultSegmentDeliveryConfiguration} -> defaultSegmentDeliveryConfiguration) (\s@DescribeSourceLocationResponse' {} a -> s {defaultSegmentDeliveryConfiguration = a} :: DescribeSourceLocationResponse)++-- | The HTTP package configuration settings for the source location.+describeSourceLocationResponse_httpConfiguration :: Lens.Lens' DescribeSourceLocationResponse (Prelude.Maybe HttpConfiguration)+describeSourceLocationResponse_httpConfiguration = Lens.lens (\DescribeSourceLocationResponse' {httpConfiguration} -> httpConfiguration) (\s@DescribeSourceLocationResponse' {} a -> s {httpConfiguration = a} :: DescribeSourceLocationResponse)++-- | The timestamp that indicates when the source location was last modified.+describeSourceLocationResponse_lastModifiedTime :: Lens.Lens' DescribeSourceLocationResponse (Prelude.Maybe Prelude.UTCTime)+describeSourceLocationResponse_lastModifiedTime = Lens.lens (\DescribeSourceLocationResponse' {lastModifiedTime} -> lastModifiedTime) (\s@DescribeSourceLocationResponse' {} a -> s {lastModifiedTime = a} :: DescribeSourceLocationResponse) Prelude.. Lens.mapping Data._Time++-- | A list of the segment delivery configurations associated with this+-- resource.+describeSourceLocationResponse_segmentDeliveryConfigurations :: Lens.Lens' DescribeSourceLocationResponse (Prelude.Maybe [SegmentDeliveryConfiguration])+describeSourceLocationResponse_segmentDeliveryConfigurations = Lens.lens (\DescribeSourceLocationResponse' {segmentDeliveryConfigurations} -> segmentDeliveryConfigurations) (\s@DescribeSourceLocationResponse' {} a -> s {segmentDeliveryConfigurations = a} :: DescribeSourceLocationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The name of the source location.+describeSourceLocationResponse_sourceLocationName :: Lens.Lens' DescribeSourceLocationResponse (Prelude.Maybe Prelude.Text)+describeSourceLocationResponse_sourceLocationName = Lens.lens (\DescribeSourceLocationResponse' {sourceLocationName} -> sourceLocationName) (\s@DescribeSourceLocationResponse' {} a -> s {sourceLocationName = a} :: DescribeSourceLocationResponse)++-- | The tags assigned to the source location. Tags are key-value pairs that+-- you can associate with Amazon resources to help with organization,+-- access control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+describeSourceLocationResponse_tags :: Lens.Lens' DescribeSourceLocationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+describeSourceLocationResponse_tags = Lens.lens (\DescribeSourceLocationResponse' {tags} -> tags) (\s@DescribeSourceLocationResponse' {} a -> s {tags = a} :: DescribeSourceLocationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeSourceLocationResponse_httpStatus :: Lens.Lens' DescribeSourceLocationResponse Prelude.Int+describeSourceLocationResponse_httpStatus = Lens.lens (\DescribeSourceLocationResponse' {httpStatus} -> httpStatus) (\s@DescribeSourceLocationResponse' {} a -> s {httpStatus = a} :: DescribeSourceLocationResponse)++instance+  Prelude.NFData+    DescribeSourceLocationResponse+  where+  rnf DescribeSourceLocationResponse' {..} =+    Prelude.rnf accessConfiguration+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf defaultSegmentDeliveryConfiguration+      `Prelude.seq` Prelude.rnf httpConfiguration+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf segmentDeliveryConfigurations+      `Prelude.seq` Prelude.rnf sourceLocationName+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/DescribeVodSource.hs view
@@ -0,0 +1,268 @@+{-# 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.MediaTailor.DescribeVodSource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Provides details about a specific video on demand (VOD) source in a+-- specific source location.+module Amazonka.MediaTailor.DescribeVodSource+  ( -- * Creating a Request+    DescribeVodSource (..),+    newDescribeVodSource,++    -- * Request Lenses+    describeVodSource_sourceLocationName,+    describeVodSource_vodSourceName,++    -- * Destructuring the Response+    DescribeVodSourceResponse (..),+    newDescribeVodSourceResponse,++    -- * Response Lenses+    describeVodSourceResponse_arn,+    describeVodSourceResponse_creationTime,+    describeVodSourceResponse_httpPackageConfigurations,+    describeVodSourceResponse_lastModifiedTime,+    describeVodSourceResponse_sourceLocationName,+    describeVodSourceResponse_tags,+    describeVodSourceResponse_vodSourceName,+    describeVodSourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeVodSource' smart constructor.+data DescribeVodSource = DescribeVodSource'+  { -- | The name of the source location associated with this VOD Source.+    sourceLocationName :: Prelude.Text,+    -- | The name of the VOD Source.+    vodSourceName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeVodSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sourceLocationName', 'describeVodSource_sourceLocationName' - The name of the source location associated with this VOD Source.+--+-- 'vodSourceName', 'describeVodSource_vodSourceName' - The name of the VOD Source.+newDescribeVodSource ::+  -- | 'sourceLocationName'+  Prelude.Text ->+  -- | 'vodSourceName'+  Prelude.Text ->+  DescribeVodSource+newDescribeVodSource+  pSourceLocationName_+  pVodSourceName_ =+    DescribeVodSource'+      { sourceLocationName =+          pSourceLocationName_,+        vodSourceName = pVodSourceName_+      }++-- | The name of the source location associated with this VOD Source.+describeVodSource_sourceLocationName :: Lens.Lens' DescribeVodSource Prelude.Text+describeVodSource_sourceLocationName = Lens.lens (\DescribeVodSource' {sourceLocationName} -> sourceLocationName) (\s@DescribeVodSource' {} a -> s {sourceLocationName = a} :: DescribeVodSource)++-- | The name of the VOD Source.+describeVodSource_vodSourceName :: Lens.Lens' DescribeVodSource Prelude.Text+describeVodSource_vodSourceName = Lens.lens (\DescribeVodSource' {vodSourceName} -> vodSourceName) (\s@DescribeVodSource' {} a -> s {vodSourceName = a} :: DescribeVodSource)++instance Core.AWSRequest DescribeVodSource where+  type+    AWSResponse DescribeVodSource =+      DescribeVodSourceResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeVodSourceResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "CreationTime")+            Prelude.<*> ( x+                            Data..?> "HttpPackageConfigurations"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "LastModifiedTime")+            Prelude.<*> (x Data..?> "SourceLocationName")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "VodSourceName")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeVodSource where+  hashWithSalt _salt DescribeVodSource' {..} =+    _salt+      `Prelude.hashWithSalt` sourceLocationName+      `Prelude.hashWithSalt` vodSourceName++instance Prelude.NFData DescribeVodSource where+  rnf DescribeVodSource' {..} =+    Prelude.rnf sourceLocationName+      `Prelude.seq` Prelude.rnf vodSourceName++instance Data.ToHeaders DescribeVodSource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeVodSource where+  toPath DescribeVodSource' {..} =+    Prelude.mconcat+      [ "/sourceLocation/",+        Data.toBS sourceLocationName,+        "/vodSource/",+        Data.toBS vodSourceName+      ]++instance Data.ToQuery DescribeVodSource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeVodSourceResponse' smart constructor.+data DescribeVodSourceResponse = DescribeVodSourceResponse'+  { -- | The ARN of the VOD source.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The timestamp that indicates when the VOD source was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The HTTP package configurations.+    httpPackageConfigurations :: Prelude.Maybe [HttpPackageConfiguration],+    -- | The last modified time of the VOD source.+    lastModifiedTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the source location associated with the VOD source.+    sourceLocationName :: Prelude.Maybe Prelude.Text,+    -- | The tags assigned to the VOD source. Tags are key-value pairs that you+    -- can associate with Amazon resources to help with organization, access+    -- control, and cost tracking. For more information, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name of the VOD source.+    vodSourceName :: 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 'DescribeVodSourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeVodSourceResponse_arn' - The ARN of the VOD source.+--+-- 'creationTime', 'describeVodSourceResponse_creationTime' - The timestamp that indicates when the VOD source was created.+--+-- 'httpPackageConfigurations', 'describeVodSourceResponse_httpPackageConfigurations' - The HTTP package configurations.+--+-- 'lastModifiedTime', 'describeVodSourceResponse_lastModifiedTime' - The last modified time of the VOD source.+--+-- 'sourceLocationName', 'describeVodSourceResponse_sourceLocationName' - The name of the source location associated with the VOD source.+--+-- 'tags', 'describeVodSourceResponse_tags' - The tags assigned to the VOD source. Tags are key-value pairs that you+-- can associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+--+-- 'vodSourceName', 'describeVodSourceResponse_vodSourceName' - The name of the VOD source.+--+-- 'httpStatus', 'describeVodSourceResponse_httpStatus' - The response's http status code.+newDescribeVodSourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeVodSourceResponse+newDescribeVodSourceResponse pHttpStatus_ =+  DescribeVodSourceResponse'+    { arn = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      httpPackageConfigurations = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      sourceLocationName = Prelude.Nothing,+      tags = Prelude.Nothing,+      vodSourceName = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the VOD source.+describeVodSourceResponse_arn :: Lens.Lens' DescribeVodSourceResponse (Prelude.Maybe Prelude.Text)+describeVodSourceResponse_arn = Lens.lens (\DescribeVodSourceResponse' {arn} -> arn) (\s@DescribeVodSourceResponse' {} a -> s {arn = a} :: DescribeVodSourceResponse)++-- | The timestamp that indicates when the VOD source was created.+describeVodSourceResponse_creationTime :: Lens.Lens' DescribeVodSourceResponse (Prelude.Maybe Prelude.UTCTime)+describeVodSourceResponse_creationTime = Lens.lens (\DescribeVodSourceResponse' {creationTime} -> creationTime) (\s@DescribeVodSourceResponse' {} a -> s {creationTime = a} :: DescribeVodSourceResponse) Prelude.. Lens.mapping Data._Time++-- | The HTTP package configurations.+describeVodSourceResponse_httpPackageConfigurations :: Lens.Lens' DescribeVodSourceResponse (Prelude.Maybe [HttpPackageConfiguration])+describeVodSourceResponse_httpPackageConfigurations = Lens.lens (\DescribeVodSourceResponse' {httpPackageConfigurations} -> httpPackageConfigurations) (\s@DescribeVodSourceResponse' {} a -> s {httpPackageConfigurations = a} :: DescribeVodSourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The last modified time of the VOD source.+describeVodSourceResponse_lastModifiedTime :: Lens.Lens' DescribeVodSourceResponse (Prelude.Maybe Prelude.UTCTime)+describeVodSourceResponse_lastModifiedTime = Lens.lens (\DescribeVodSourceResponse' {lastModifiedTime} -> lastModifiedTime) (\s@DescribeVodSourceResponse' {} a -> s {lastModifiedTime = a} :: DescribeVodSourceResponse) Prelude.. Lens.mapping Data._Time++-- | The name of the source location associated with the VOD source.+describeVodSourceResponse_sourceLocationName :: Lens.Lens' DescribeVodSourceResponse (Prelude.Maybe Prelude.Text)+describeVodSourceResponse_sourceLocationName = Lens.lens (\DescribeVodSourceResponse' {sourceLocationName} -> sourceLocationName) (\s@DescribeVodSourceResponse' {} a -> s {sourceLocationName = a} :: DescribeVodSourceResponse)++-- | The tags assigned to the VOD source. Tags are key-value pairs that you+-- can associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+describeVodSourceResponse_tags :: Lens.Lens' DescribeVodSourceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+describeVodSourceResponse_tags = Lens.lens (\DescribeVodSourceResponse' {tags} -> tags) (\s@DescribeVodSourceResponse' {} a -> s {tags = a} :: DescribeVodSourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The name of the VOD source.+describeVodSourceResponse_vodSourceName :: Lens.Lens' DescribeVodSourceResponse (Prelude.Maybe Prelude.Text)+describeVodSourceResponse_vodSourceName = Lens.lens (\DescribeVodSourceResponse' {vodSourceName} -> vodSourceName) (\s@DescribeVodSourceResponse' {} a -> s {vodSourceName = a} :: DescribeVodSourceResponse)++-- | The response's http status code.+describeVodSourceResponse_httpStatus :: Lens.Lens' DescribeVodSourceResponse Prelude.Int+describeVodSourceResponse_httpStatus = Lens.lens (\DescribeVodSourceResponse' {httpStatus} -> httpStatus) (\s@DescribeVodSourceResponse' {} a -> s {httpStatus = a} :: DescribeVodSourceResponse)++instance Prelude.NFData DescribeVodSourceResponse where+  rnf DescribeVodSourceResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf httpPackageConfigurations+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf sourceLocationName+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf vodSourceName+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/GetChannelPolicy.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.MediaTailor.GetChannelPolicy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the channel\'s IAM policy. IAM policies are used to control+-- access to your channel.+module Amazonka.MediaTailor.GetChannelPolicy+  ( -- * Creating a Request+    GetChannelPolicy (..),+    newGetChannelPolicy,++    -- * Request Lenses+    getChannelPolicy_channelName,++    -- * Destructuring the Response+    GetChannelPolicyResponse (..),+    newGetChannelPolicyResponse,++    -- * Response Lenses+    getChannelPolicyResponse_policy,+    getChannelPolicyResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetChannelPolicy' smart constructor.+data GetChannelPolicy = GetChannelPolicy'+  { -- | The name of the channel associated with this Channel Policy.+    channelName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetChannelPolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channelName', 'getChannelPolicy_channelName' - The name of the channel associated with this Channel Policy.+newGetChannelPolicy ::+  -- | 'channelName'+  Prelude.Text ->+  GetChannelPolicy+newGetChannelPolicy pChannelName_ =+  GetChannelPolicy' {channelName = pChannelName_}++-- | The name of the channel associated with this Channel Policy.+getChannelPolicy_channelName :: Lens.Lens' GetChannelPolicy Prelude.Text+getChannelPolicy_channelName = Lens.lens (\GetChannelPolicy' {channelName} -> channelName) (\s@GetChannelPolicy' {} a -> s {channelName = a} :: GetChannelPolicy)++instance Core.AWSRequest GetChannelPolicy where+  type+    AWSResponse GetChannelPolicy =+      GetChannelPolicyResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetChannelPolicyResponse'+            Prelude.<$> (x Data..?> "Policy")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetChannelPolicy where+  hashWithSalt _salt GetChannelPolicy' {..} =+    _salt `Prelude.hashWithSalt` channelName++instance Prelude.NFData GetChannelPolicy where+  rnf GetChannelPolicy' {..} = Prelude.rnf channelName++instance Data.ToHeaders GetChannelPolicy where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetChannelPolicy where+  toPath GetChannelPolicy' {..} =+    Prelude.mconcat+      ["/channel/", Data.toBS channelName, "/policy"]++instance Data.ToQuery GetChannelPolicy where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetChannelPolicyResponse' smart constructor.+data GetChannelPolicyResponse = GetChannelPolicyResponse'+  { -- | The IAM policy for the channel. IAM policies are used to control access+    -- to your channel.+    policy :: 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 'GetChannelPolicyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'policy', 'getChannelPolicyResponse_policy' - The IAM policy for the channel. IAM policies are used to control access+-- to your channel.+--+-- 'httpStatus', 'getChannelPolicyResponse_httpStatus' - The response's http status code.+newGetChannelPolicyResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetChannelPolicyResponse+newGetChannelPolicyResponse pHttpStatus_ =+  GetChannelPolicyResponse'+    { policy = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The IAM policy for the channel. IAM policies are used to control access+-- to your channel.+getChannelPolicyResponse_policy :: Lens.Lens' GetChannelPolicyResponse (Prelude.Maybe Prelude.Text)+getChannelPolicyResponse_policy = Lens.lens (\GetChannelPolicyResponse' {policy} -> policy) (\s@GetChannelPolicyResponse' {} a -> s {policy = a} :: GetChannelPolicyResponse)++-- | The response's http status code.+getChannelPolicyResponse_httpStatus :: Lens.Lens' GetChannelPolicyResponse Prelude.Int+getChannelPolicyResponse_httpStatus = Lens.lens (\GetChannelPolicyResponse' {httpStatus} -> httpStatus) (\s@GetChannelPolicyResponse' {} a -> s {httpStatus = a} :: GetChannelPolicyResponse)++instance Prelude.NFData GetChannelPolicyResponse where+  rnf GetChannelPolicyResponse' {..} =+    Prelude.rnf policy+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/GetChannelSchedule.hs view
@@ -0,0 +1,286 @@+{-# 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.MediaTailor.GetChannelSchedule+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about your channel\'s schedule.+--+-- This operation returns paginated results.+module Amazonka.MediaTailor.GetChannelSchedule+  ( -- * Creating a Request+    GetChannelSchedule (..),+    newGetChannelSchedule,++    -- * Request Lenses+    getChannelSchedule_durationMinutes,+    getChannelSchedule_maxResults,+    getChannelSchedule_nextToken,+    getChannelSchedule_channelName,++    -- * Destructuring the Response+    GetChannelScheduleResponse (..),+    newGetChannelScheduleResponse,++    -- * Response Lenses+    getChannelScheduleResponse_items,+    getChannelScheduleResponse_nextToken,+    getChannelScheduleResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetChannelSchedule' smart constructor.+data GetChannelSchedule = GetChannelSchedule'+  { -- | The duration in minutes of the channel schedule.+    durationMinutes :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of channel schedules that you want MediaTailor to+    -- return in response to the current request. If there are more than+    -- @MaxResults@ channel schedules, use the value of @NextToken@ in the+    -- response to get the next page of results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | (Optional) If the playback configuration has more than @MaxResults@+    -- channel schedules, use @NextToken@ to get the second and subsequent+    -- pages of results.+    --+    -- For the first @GetChannelScheduleRequest@ request, omit this value.+    --+    -- For the second and subsequent requests, get the value of @NextToken@+    -- from the previous response and specify that value for @NextToken@ in the+    -- request.+    --+    -- If the previous response didn\'t include a @NextToken@ element, there+    -- are no more channel schedules to get.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the channel associated with this Channel Schedule.+    channelName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetChannelSchedule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'durationMinutes', 'getChannelSchedule_durationMinutes' - The duration in minutes of the channel schedule.+--+-- 'maxResults', 'getChannelSchedule_maxResults' - The maximum number of channel schedules that you want MediaTailor to+-- return in response to the current request. If there are more than+-- @MaxResults@ channel schedules, use the value of @NextToken@ in the+-- response to get the next page of results.+--+-- 'nextToken', 'getChannelSchedule_nextToken' - (Optional) If the playback configuration has more than @MaxResults@+-- channel schedules, use @NextToken@ to get the second and subsequent+-- pages of results.+--+-- For the first @GetChannelScheduleRequest@ request, omit this value.+--+-- For the second and subsequent requests, get the value of @NextToken@+-- from the previous response and specify that value for @NextToken@ in the+-- request.+--+-- If the previous response didn\'t include a @NextToken@ element, there+-- are no more channel schedules to get.+--+-- 'channelName', 'getChannelSchedule_channelName' - The name of the channel associated with this Channel Schedule.+newGetChannelSchedule ::+  -- | 'channelName'+  Prelude.Text ->+  GetChannelSchedule+newGetChannelSchedule pChannelName_ =+  GetChannelSchedule'+    { durationMinutes =+        Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      channelName = pChannelName_+    }++-- | The duration in minutes of the channel schedule.+getChannelSchedule_durationMinutes :: Lens.Lens' GetChannelSchedule (Prelude.Maybe Prelude.Text)+getChannelSchedule_durationMinutes = Lens.lens (\GetChannelSchedule' {durationMinutes} -> durationMinutes) (\s@GetChannelSchedule' {} a -> s {durationMinutes = a} :: GetChannelSchedule)++-- | The maximum number of channel schedules that you want MediaTailor to+-- return in response to the current request. If there are more than+-- @MaxResults@ channel schedules, use the value of @NextToken@ in the+-- response to get the next page of results.+getChannelSchedule_maxResults :: Lens.Lens' GetChannelSchedule (Prelude.Maybe Prelude.Natural)+getChannelSchedule_maxResults = Lens.lens (\GetChannelSchedule' {maxResults} -> maxResults) (\s@GetChannelSchedule' {} a -> s {maxResults = a} :: GetChannelSchedule)++-- | (Optional) If the playback configuration has more than @MaxResults@+-- channel schedules, use @NextToken@ to get the second and subsequent+-- pages of results.+--+-- For the first @GetChannelScheduleRequest@ request, omit this value.+--+-- For the second and subsequent requests, get the value of @NextToken@+-- from the previous response and specify that value for @NextToken@ in the+-- request.+--+-- If the previous response didn\'t include a @NextToken@ element, there+-- are no more channel schedules to get.+getChannelSchedule_nextToken :: Lens.Lens' GetChannelSchedule (Prelude.Maybe Prelude.Text)+getChannelSchedule_nextToken = Lens.lens (\GetChannelSchedule' {nextToken} -> nextToken) (\s@GetChannelSchedule' {} a -> s {nextToken = a} :: GetChannelSchedule)++-- | The name of the channel associated with this Channel Schedule.+getChannelSchedule_channelName :: Lens.Lens' GetChannelSchedule Prelude.Text+getChannelSchedule_channelName = Lens.lens (\GetChannelSchedule' {channelName} -> channelName) (\s@GetChannelSchedule' {} a -> s {channelName = a} :: GetChannelSchedule)++instance Core.AWSPager GetChannelSchedule where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? getChannelScheduleResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? getChannelScheduleResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& getChannelSchedule_nextToken+          Lens..~ rs+          Lens.^? getChannelScheduleResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest GetChannelSchedule where+  type+    AWSResponse GetChannelSchedule =+      GetChannelScheduleResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetChannelScheduleResponse'+            Prelude.<$> (x Data..?> "Items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetChannelSchedule where+  hashWithSalt _salt GetChannelSchedule' {..} =+    _salt+      `Prelude.hashWithSalt` durationMinutes+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` channelName++instance Prelude.NFData GetChannelSchedule where+  rnf GetChannelSchedule' {..} =+    Prelude.rnf durationMinutes+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf channelName++instance Data.ToHeaders GetChannelSchedule where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetChannelSchedule where+  toPath GetChannelSchedule' {..} =+    Prelude.mconcat+      ["/channel/", Data.toBS channelName, "/schedule"]++instance Data.ToQuery GetChannelSchedule where+  toQuery GetChannelSchedule' {..} =+    Prelude.mconcat+      [ "durationMinutes" Data.=: durationMinutes,+        "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newGetChannelScheduleResponse' smart constructor.+data GetChannelScheduleResponse = GetChannelScheduleResponse'+  { -- | A list of schedule entries for the channel.+    items :: Prelude.Maybe [ScheduleEntry],+    -- | Pagination token returned by the list request when results exceed the+    -- maximum allowed. Use the token to fetch the next page of results.+    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 'GetChannelScheduleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'getChannelScheduleResponse_items' - A list of schedule entries for the channel.+--+-- 'nextToken', 'getChannelScheduleResponse_nextToken' - Pagination token returned by the list request when results exceed the+-- maximum allowed. Use the token to fetch the next page of results.+--+-- 'httpStatus', 'getChannelScheduleResponse_httpStatus' - The response's http status code.+newGetChannelScheduleResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetChannelScheduleResponse+newGetChannelScheduleResponse pHttpStatus_ =+  GetChannelScheduleResponse'+    { items =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of schedule entries for the channel.+getChannelScheduleResponse_items :: Lens.Lens' GetChannelScheduleResponse (Prelude.Maybe [ScheduleEntry])+getChannelScheduleResponse_items = Lens.lens (\GetChannelScheduleResponse' {items} -> items) (\s@GetChannelScheduleResponse' {} a -> s {items = a} :: GetChannelScheduleResponse) Prelude.. Lens.mapping Lens.coerced++-- | Pagination token returned by the list request when results exceed the+-- maximum allowed. Use the token to fetch the next page of results.+getChannelScheduleResponse_nextToken :: Lens.Lens' GetChannelScheduleResponse (Prelude.Maybe Prelude.Text)+getChannelScheduleResponse_nextToken = Lens.lens (\GetChannelScheduleResponse' {nextToken} -> nextToken) (\s@GetChannelScheduleResponse' {} a -> s {nextToken = a} :: GetChannelScheduleResponse)++-- | The response's http status code.+getChannelScheduleResponse_httpStatus :: Lens.Lens' GetChannelScheduleResponse Prelude.Int+getChannelScheduleResponse_httpStatus = Lens.lens (\GetChannelScheduleResponse' {httpStatus} -> httpStatus) (\s@GetChannelScheduleResponse' {} a -> s {httpStatus = a} :: GetChannelScheduleResponse)++instance Prelude.NFData GetChannelScheduleResponse where+  rnf GetChannelScheduleResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/GetPlaybackConfiguration.hs view
@@ -0,0 +1,503 @@+{-# 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.MediaTailor.GetPlaybackConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a playback configuration. For information about MediaTailor+-- configurations, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/configurations.html Working with configurations in AWS Elemental MediaTailor>.+module Amazonka.MediaTailor.GetPlaybackConfiguration+  ( -- * Creating a Request+    GetPlaybackConfiguration (..),+    newGetPlaybackConfiguration,++    -- * Request Lenses+    getPlaybackConfiguration_name,++    -- * Destructuring the Response+    GetPlaybackConfigurationResponse (..),+    newGetPlaybackConfigurationResponse,++    -- * Response Lenses+    getPlaybackConfigurationResponse_adDecisionServerUrl,+    getPlaybackConfigurationResponse_availSuppression,+    getPlaybackConfigurationResponse_bumper,+    getPlaybackConfigurationResponse_cdnConfiguration,+    getPlaybackConfigurationResponse_configurationAliases,+    getPlaybackConfigurationResponse_dashConfiguration,+    getPlaybackConfigurationResponse_hlsConfiguration,+    getPlaybackConfigurationResponse_livePreRollConfiguration,+    getPlaybackConfigurationResponse_logConfiguration,+    getPlaybackConfigurationResponse_manifestProcessingRules,+    getPlaybackConfigurationResponse_name,+    getPlaybackConfigurationResponse_personalizationThresholdSeconds,+    getPlaybackConfigurationResponse_playbackConfigurationArn,+    getPlaybackConfigurationResponse_playbackEndpointPrefix,+    getPlaybackConfigurationResponse_sessionInitializationEndpointPrefix,+    getPlaybackConfigurationResponse_slateAdUrl,+    getPlaybackConfigurationResponse_tags,+    getPlaybackConfigurationResponse_transcodeProfileName,+    getPlaybackConfigurationResponse_videoContentSourceUrl,+    getPlaybackConfigurationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetPlaybackConfiguration' smart constructor.+data GetPlaybackConfiguration = GetPlaybackConfiguration'+  { -- | The identifier for the playback configuration.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetPlaybackConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'getPlaybackConfiguration_name' - The identifier for the playback configuration.+newGetPlaybackConfiguration ::+  -- | 'name'+  Prelude.Text ->+  GetPlaybackConfiguration+newGetPlaybackConfiguration pName_ =+  GetPlaybackConfiguration' {name = pName_}++-- | The identifier for the playback configuration.+getPlaybackConfiguration_name :: Lens.Lens' GetPlaybackConfiguration Prelude.Text+getPlaybackConfiguration_name = Lens.lens (\GetPlaybackConfiguration' {name} -> name) (\s@GetPlaybackConfiguration' {} a -> s {name = a} :: GetPlaybackConfiguration)++instance Core.AWSRequest GetPlaybackConfiguration where+  type+    AWSResponse GetPlaybackConfiguration =+      GetPlaybackConfigurationResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetPlaybackConfigurationResponse'+            Prelude.<$> (x Data..?> "AdDecisionServerUrl")+            Prelude.<*> (x Data..?> "AvailSuppression")+            Prelude.<*> (x Data..?> "Bumper")+            Prelude.<*> (x Data..?> "CdnConfiguration")+            Prelude.<*> ( x+                            Data..?> "ConfigurationAliases"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "DashConfiguration")+            Prelude.<*> (x Data..?> "HlsConfiguration")+            Prelude.<*> (x Data..?> "LivePreRollConfiguration")+            Prelude.<*> (x Data..?> "LogConfiguration")+            Prelude.<*> (x Data..?> "ManifestProcessingRules")+            Prelude.<*> (x Data..?> "Name")+            Prelude.<*> (x Data..?> "PersonalizationThresholdSeconds")+            Prelude.<*> (x Data..?> "PlaybackConfigurationArn")+            Prelude.<*> (x Data..?> "PlaybackEndpointPrefix")+            Prelude.<*> (x Data..?> "SessionInitializationEndpointPrefix")+            Prelude.<*> (x Data..?> "SlateAdUrl")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "TranscodeProfileName")+            Prelude.<*> (x Data..?> "VideoContentSourceUrl")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetPlaybackConfiguration where+  hashWithSalt _salt GetPlaybackConfiguration' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData GetPlaybackConfiguration where+  rnf GetPlaybackConfiguration' {..} = Prelude.rnf name++instance Data.ToHeaders GetPlaybackConfiguration where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetPlaybackConfiguration where+  toPath GetPlaybackConfiguration' {..} =+    Prelude.mconcat+      ["/playbackConfiguration/", Data.toBS name]++instance Data.ToQuery GetPlaybackConfiguration where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetPlaybackConfigurationResponse' smart constructor.+data GetPlaybackConfigurationResponse = GetPlaybackConfigurationResponse'+  { -- | The URL for the ad decision server (ADS). This includes the+    -- specification of static parameters and placeholders for dynamic+    -- parameters. AWS Elemental MediaTailor substitutes player-specific and+    -- session-specific parameters as needed when calling the ADS. Alternately,+    -- for testing, you can provide a static VAST URL. The maximum length is+    -- 25,000 characters.+    adDecisionServerUrl :: Prelude.Maybe Prelude.Text,+    -- | The configuration for avail suppression, also known as ad suppression.+    -- For more information about ad suppression, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Suppression>.+    availSuppression :: Prelude.Maybe AvailSuppression,+    -- | The configuration for bumpers. Bumpers are short audio or video clips+    -- that play at the start or before the end of an ad break. To learn more+    -- about bumpers, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/bumpers.html Bumpers>.+    bumper :: Prelude.Maybe Bumper,+    -- | The configuration for using a content delivery network (CDN), like+    -- Amazon CloudFront, for content and ad segment management.+    cdnConfiguration :: Prelude.Maybe CdnConfiguration,+    -- | The player parameters and aliases used as dynamic variables during+    -- session initialization. For more information, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/variables-domain.html Domain Variables>.+    configurationAliases :: Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | The configuration for DASH content.+    dashConfiguration :: Prelude.Maybe DashConfiguration,+    -- | The configuration for HLS content.+    hlsConfiguration :: Prelude.Maybe HlsConfiguration,+    -- | The configuration for pre-roll ad insertion.+    livePreRollConfiguration :: Prelude.Maybe LivePreRollConfiguration,+    -- | The Amazon CloudWatch log settings for a playback configuration.+    logConfiguration :: Prelude.Maybe LogConfiguration,+    -- | The configuration for manifest processing rules. Manifest processing+    -- rules enable customization of the personalized manifests created by+    -- MediaTailor.+    manifestProcessingRules :: Prelude.Maybe ManifestProcessingRules,+    -- | The identifier for the playback configuration.+    name :: Prelude.Maybe Prelude.Text,+    -- | Defines the maximum duration of underfilled ad time (in seconds) allowed+    -- in an ad break. If the duration of underfilled ad time exceeds the+    -- personalization threshold, then the personalization of the ad break is+    -- abandoned and the underlying content is shown. This feature applies to+    -- /ad replacement/ in live and VOD streams, rather than ad insertion,+    -- because it relies on an underlying content stream. For more information+    -- about ad break behavior, including ad replacement and insertion, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Behavior in AWS Elemental MediaTailor>.+    personalizationThresholdSeconds :: Prelude.Maybe Prelude.Natural,+    -- | The Amazon Resource Name (ARN) for the playback configuration.+    playbackConfigurationArn :: Prelude.Maybe Prelude.Text,+    -- | The URL that the player accesses to get a manifest from AWS Elemental+    -- MediaTailor. This session will use server-side reporting.+    playbackEndpointPrefix :: Prelude.Maybe Prelude.Text,+    -- | The URL that the player uses to initialize a session that uses+    -- client-side reporting.+    sessionInitializationEndpointPrefix :: Prelude.Maybe Prelude.Text,+    -- | The URL for a high-quality video asset to transcode and use to fill in+    -- time that\'s not used by ads. AWS Elemental MediaTailor shows the slate+    -- to fill in gaps in media content. Configuring the slate is optional for+    -- non-VPAID playback configurations. For VPAID, the slate is required+    -- because MediaTailor provides it in the slots designated for dynamic ad+    -- content. The slate must be a high-quality asset that contains both audio+    -- and video.+    slateAdUrl :: Prelude.Maybe Prelude.Text,+    -- | The tags assigned to the playback configuration. Tags are key-value+    -- pairs that you can associate with Amazon resources to help with+    -- organization, access control, and cost tracking. For more information,+    -- see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name that is used to associate this playback configuration with a+    -- custom transcode profile. This overrides the dynamic transcoding+    -- defaults of MediaTailor. Use this only if you have already set up custom+    -- profiles with the help of AWS Support.+    transcodeProfileName :: Prelude.Maybe Prelude.Text,+    -- | The URL prefix for the parent manifest for the stream, minus the asset+    -- ID. The maximum length is 512 characters.+    videoContentSourceUrl :: 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 'GetPlaybackConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'adDecisionServerUrl', 'getPlaybackConfigurationResponse_adDecisionServerUrl' - The URL for the ad decision server (ADS). This includes the+-- specification of static parameters and placeholders for dynamic+-- parameters. AWS Elemental MediaTailor substitutes player-specific and+-- session-specific parameters as needed when calling the ADS. Alternately,+-- for testing, you can provide a static VAST URL. The maximum length is+-- 25,000 characters.+--+-- 'availSuppression', 'getPlaybackConfigurationResponse_availSuppression' - The configuration for avail suppression, also known as ad suppression.+-- For more information about ad suppression, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Suppression>.+--+-- 'bumper', 'getPlaybackConfigurationResponse_bumper' - The configuration for bumpers. Bumpers are short audio or video clips+-- that play at the start or before the end of an ad break. To learn more+-- about bumpers, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/bumpers.html Bumpers>.+--+-- 'cdnConfiguration', 'getPlaybackConfigurationResponse_cdnConfiguration' - The configuration for using a content delivery network (CDN), like+-- Amazon CloudFront, for content and ad segment management.+--+-- 'configurationAliases', 'getPlaybackConfigurationResponse_configurationAliases' - The player parameters and aliases used as dynamic variables during+-- session initialization. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/variables-domain.html Domain Variables>.+--+-- 'dashConfiguration', 'getPlaybackConfigurationResponse_dashConfiguration' - The configuration for DASH content.+--+-- 'hlsConfiguration', 'getPlaybackConfigurationResponse_hlsConfiguration' - The configuration for HLS content.+--+-- 'livePreRollConfiguration', 'getPlaybackConfigurationResponse_livePreRollConfiguration' - The configuration for pre-roll ad insertion.+--+-- 'logConfiguration', 'getPlaybackConfigurationResponse_logConfiguration' - The Amazon CloudWatch log settings for a playback configuration.+--+-- 'manifestProcessingRules', 'getPlaybackConfigurationResponse_manifestProcessingRules' - The configuration for manifest processing rules. Manifest processing+-- rules enable customization of the personalized manifests created by+-- MediaTailor.+--+-- 'name', 'getPlaybackConfigurationResponse_name' - The identifier for the playback configuration.+--+-- 'personalizationThresholdSeconds', 'getPlaybackConfigurationResponse_personalizationThresholdSeconds' - Defines the maximum duration of underfilled ad time (in seconds) allowed+-- in an ad break. If the duration of underfilled ad time exceeds the+-- personalization threshold, then the personalization of the ad break is+-- abandoned and the underlying content is shown. This feature applies to+-- /ad replacement/ in live and VOD streams, rather than ad insertion,+-- because it relies on an underlying content stream. For more information+-- about ad break behavior, including ad replacement and insertion, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Behavior in AWS Elemental MediaTailor>.+--+-- 'playbackConfigurationArn', 'getPlaybackConfigurationResponse_playbackConfigurationArn' - The Amazon Resource Name (ARN) for the playback configuration.+--+-- 'playbackEndpointPrefix', 'getPlaybackConfigurationResponse_playbackEndpointPrefix' - The URL that the player accesses to get a manifest from AWS Elemental+-- MediaTailor. This session will use server-side reporting.+--+-- 'sessionInitializationEndpointPrefix', 'getPlaybackConfigurationResponse_sessionInitializationEndpointPrefix' - The URL that the player uses to initialize a session that uses+-- client-side reporting.+--+-- 'slateAdUrl', 'getPlaybackConfigurationResponse_slateAdUrl' - The URL for a high-quality video asset to transcode and use to fill in+-- time that\'s not used by ads. AWS Elemental MediaTailor shows the slate+-- to fill in gaps in media content. Configuring the slate is optional for+-- non-VPAID playback configurations. For VPAID, the slate is required+-- because MediaTailor provides it in the slots designated for dynamic ad+-- content. The slate must be a high-quality asset that contains both audio+-- and video.+--+-- 'tags', 'getPlaybackConfigurationResponse_tags' - The tags assigned to the playback configuration. Tags are key-value+-- pairs that you can associate with Amazon resources to help with+-- organization, access control, and cost tracking. For more information,+-- see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+--+-- 'transcodeProfileName', 'getPlaybackConfigurationResponse_transcodeProfileName' - The name that is used to associate this playback configuration with a+-- custom transcode profile. This overrides the dynamic transcoding+-- defaults of MediaTailor. Use this only if you have already set up custom+-- profiles with the help of AWS Support.+--+-- 'videoContentSourceUrl', 'getPlaybackConfigurationResponse_videoContentSourceUrl' - The URL prefix for the parent manifest for the stream, minus the asset+-- ID. The maximum length is 512 characters.+--+-- 'httpStatus', 'getPlaybackConfigurationResponse_httpStatus' - The response's http status code.+newGetPlaybackConfigurationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetPlaybackConfigurationResponse+newGetPlaybackConfigurationResponse pHttpStatus_ =+  GetPlaybackConfigurationResponse'+    { adDecisionServerUrl =+        Prelude.Nothing,+      availSuppression = Prelude.Nothing,+      bumper = Prelude.Nothing,+      cdnConfiguration = Prelude.Nothing,+      configurationAliases = Prelude.Nothing,+      dashConfiguration = Prelude.Nothing,+      hlsConfiguration = Prelude.Nothing,+      livePreRollConfiguration =+        Prelude.Nothing,+      logConfiguration = Prelude.Nothing,+      manifestProcessingRules = Prelude.Nothing,+      name = Prelude.Nothing,+      personalizationThresholdSeconds =+        Prelude.Nothing,+      playbackConfigurationArn =+        Prelude.Nothing,+      playbackEndpointPrefix = Prelude.Nothing,+      sessionInitializationEndpointPrefix =+        Prelude.Nothing,+      slateAdUrl = Prelude.Nothing,+      tags = Prelude.Nothing,+      transcodeProfileName = Prelude.Nothing,+      videoContentSourceUrl = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The URL for the ad decision server (ADS). This includes the+-- specification of static parameters and placeholders for dynamic+-- parameters. AWS Elemental MediaTailor substitutes player-specific and+-- session-specific parameters as needed when calling the ADS. Alternately,+-- for testing, you can provide a static VAST URL. The maximum length is+-- 25,000 characters.+getPlaybackConfigurationResponse_adDecisionServerUrl :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)+getPlaybackConfigurationResponse_adDecisionServerUrl = Lens.lens (\GetPlaybackConfigurationResponse' {adDecisionServerUrl} -> adDecisionServerUrl) (\s@GetPlaybackConfigurationResponse' {} a -> s {adDecisionServerUrl = a} :: GetPlaybackConfigurationResponse)++-- | The configuration for avail suppression, also known as ad suppression.+-- For more information about ad suppression, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Suppression>.+getPlaybackConfigurationResponse_availSuppression :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe AvailSuppression)+getPlaybackConfigurationResponse_availSuppression = Lens.lens (\GetPlaybackConfigurationResponse' {availSuppression} -> availSuppression) (\s@GetPlaybackConfigurationResponse' {} a -> s {availSuppression = a} :: GetPlaybackConfigurationResponse)++-- | The configuration for bumpers. Bumpers are short audio or video clips+-- that play at the start or before the end of an ad break. To learn more+-- about bumpers, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/bumpers.html Bumpers>.+getPlaybackConfigurationResponse_bumper :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe Bumper)+getPlaybackConfigurationResponse_bumper = Lens.lens (\GetPlaybackConfigurationResponse' {bumper} -> bumper) (\s@GetPlaybackConfigurationResponse' {} a -> s {bumper = a} :: GetPlaybackConfigurationResponse)++-- | The configuration for using a content delivery network (CDN), like+-- Amazon CloudFront, for content and ad segment management.+getPlaybackConfigurationResponse_cdnConfiguration :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe CdnConfiguration)+getPlaybackConfigurationResponse_cdnConfiguration = Lens.lens (\GetPlaybackConfigurationResponse' {cdnConfiguration} -> cdnConfiguration) (\s@GetPlaybackConfigurationResponse' {} a -> s {cdnConfiguration = a} :: GetPlaybackConfigurationResponse)++-- | The player parameters and aliases used as dynamic variables during+-- session initialization. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/variables-domain.html Domain Variables>.+getPlaybackConfigurationResponse_configurationAliases :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)))+getPlaybackConfigurationResponse_configurationAliases = Lens.lens (\GetPlaybackConfigurationResponse' {configurationAliases} -> configurationAliases) (\s@GetPlaybackConfigurationResponse' {} a -> s {configurationAliases = a} :: GetPlaybackConfigurationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The configuration for DASH content.+getPlaybackConfigurationResponse_dashConfiguration :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe DashConfiguration)+getPlaybackConfigurationResponse_dashConfiguration = Lens.lens (\GetPlaybackConfigurationResponse' {dashConfiguration} -> dashConfiguration) (\s@GetPlaybackConfigurationResponse' {} a -> s {dashConfiguration = a} :: GetPlaybackConfigurationResponse)++-- | The configuration for HLS content.+getPlaybackConfigurationResponse_hlsConfiguration :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe HlsConfiguration)+getPlaybackConfigurationResponse_hlsConfiguration = Lens.lens (\GetPlaybackConfigurationResponse' {hlsConfiguration} -> hlsConfiguration) (\s@GetPlaybackConfigurationResponse' {} a -> s {hlsConfiguration = a} :: GetPlaybackConfigurationResponse)++-- | The configuration for pre-roll ad insertion.+getPlaybackConfigurationResponse_livePreRollConfiguration :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe LivePreRollConfiguration)+getPlaybackConfigurationResponse_livePreRollConfiguration = Lens.lens (\GetPlaybackConfigurationResponse' {livePreRollConfiguration} -> livePreRollConfiguration) (\s@GetPlaybackConfigurationResponse' {} a -> s {livePreRollConfiguration = a} :: GetPlaybackConfigurationResponse)++-- | The Amazon CloudWatch log settings for a playback configuration.+getPlaybackConfigurationResponse_logConfiguration :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe LogConfiguration)+getPlaybackConfigurationResponse_logConfiguration = Lens.lens (\GetPlaybackConfigurationResponse' {logConfiguration} -> logConfiguration) (\s@GetPlaybackConfigurationResponse' {} a -> s {logConfiguration = a} :: GetPlaybackConfigurationResponse)++-- | The configuration for manifest processing rules. Manifest processing+-- rules enable customization of the personalized manifests created by+-- MediaTailor.+getPlaybackConfigurationResponse_manifestProcessingRules :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe ManifestProcessingRules)+getPlaybackConfigurationResponse_manifestProcessingRules = Lens.lens (\GetPlaybackConfigurationResponse' {manifestProcessingRules} -> manifestProcessingRules) (\s@GetPlaybackConfigurationResponse' {} a -> s {manifestProcessingRules = a} :: GetPlaybackConfigurationResponse)++-- | The identifier for the playback configuration.+getPlaybackConfigurationResponse_name :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)+getPlaybackConfigurationResponse_name = Lens.lens (\GetPlaybackConfigurationResponse' {name} -> name) (\s@GetPlaybackConfigurationResponse' {} a -> s {name = a} :: GetPlaybackConfigurationResponse)++-- | Defines the maximum duration of underfilled ad time (in seconds) allowed+-- in an ad break. If the duration of underfilled ad time exceeds the+-- personalization threshold, then the personalization of the ad break is+-- abandoned and the underlying content is shown. This feature applies to+-- /ad replacement/ in live and VOD streams, rather than ad insertion,+-- because it relies on an underlying content stream. For more information+-- about ad break behavior, including ad replacement and insertion, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Behavior in AWS Elemental MediaTailor>.+getPlaybackConfigurationResponse_personalizationThresholdSeconds :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe Prelude.Natural)+getPlaybackConfigurationResponse_personalizationThresholdSeconds = Lens.lens (\GetPlaybackConfigurationResponse' {personalizationThresholdSeconds} -> personalizationThresholdSeconds) (\s@GetPlaybackConfigurationResponse' {} a -> s {personalizationThresholdSeconds = a} :: GetPlaybackConfigurationResponse)++-- | The Amazon Resource Name (ARN) for the playback configuration.+getPlaybackConfigurationResponse_playbackConfigurationArn :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)+getPlaybackConfigurationResponse_playbackConfigurationArn = Lens.lens (\GetPlaybackConfigurationResponse' {playbackConfigurationArn} -> playbackConfigurationArn) (\s@GetPlaybackConfigurationResponse' {} a -> s {playbackConfigurationArn = a} :: GetPlaybackConfigurationResponse)++-- | The URL that the player accesses to get a manifest from AWS Elemental+-- MediaTailor. This session will use server-side reporting.+getPlaybackConfigurationResponse_playbackEndpointPrefix :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)+getPlaybackConfigurationResponse_playbackEndpointPrefix = Lens.lens (\GetPlaybackConfigurationResponse' {playbackEndpointPrefix} -> playbackEndpointPrefix) (\s@GetPlaybackConfigurationResponse' {} a -> s {playbackEndpointPrefix = a} :: GetPlaybackConfigurationResponse)++-- | The URL that the player uses to initialize a session that uses+-- client-side reporting.+getPlaybackConfigurationResponse_sessionInitializationEndpointPrefix :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)+getPlaybackConfigurationResponse_sessionInitializationEndpointPrefix = Lens.lens (\GetPlaybackConfigurationResponse' {sessionInitializationEndpointPrefix} -> sessionInitializationEndpointPrefix) (\s@GetPlaybackConfigurationResponse' {} a -> s {sessionInitializationEndpointPrefix = a} :: GetPlaybackConfigurationResponse)++-- | The URL for a high-quality video asset to transcode and use to fill in+-- time that\'s not used by ads. AWS Elemental MediaTailor shows the slate+-- to fill in gaps in media content. Configuring the slate is optional for+-- non-VPAID playback configurations. For VPAID, the slate is required+-- because MediaTailor provides it in the slots designated for dynamic ad+-- content. The slate must be a high-quality asset that contains both audio+-- and video.+getPlaybackConfigurationResponse_slateAdUrl :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)+getPlaybackConfigurationResponse_slateAdUrl = Lens.lens (\GetPlaybackConfigurationResponse' {slateAdUrl} -> slateAdUrl) (\s@GetPlaybackConfigurationResponse' {} a -> s {slateAdUrl = a} :: GetPlaybackConfigurationResponse)++-- | The tags assigned to the playback configuration. Tags are key-value+-- pairs that you can associate with Amazon resources to help with+-- organization, access control, and cost tracking. For more information,+-- see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+getPlaybackConfigurationResponse_tags :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getPlaybackConfigurationResponse_tags = Lens.lens (\GetPlaybackConfigurationResponse' {tags} -> tags) (\s@GetPlaybackConfigurationResponse' {} a -> s {tags = a} :: GetPlaybackConfigurationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The name that is used to associate this playback configuration with a+-- custom transcode profile. This overrides the dynamic transcoding+-- defaults of MediaTailor. Use this only if you have already set up custom+-- profiles with the help of AWS Support.+getPlaybackConfigurationResponse_transcodeProfileName :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)+getPlaybackConfigurationResponse_transcodeProfileName = Lens.lens (\GetPlaybackConfigurationResponse' {transcodeProfileName} -> transcodeProfileName) (\s@GetPlaybackConfigurationResponse' {} a -> s {transcodeProfileName = a} :: GetPlaybackConfigurationResponse)++-- | The URL prefix for the parent manifest for the stream, minus the asset+-- ID. The maximum length is 512 characters.+getPlaybackConfigurationResponse_videoContentSourceUrl :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)+getPlaybackConfigurationResponse_videoContentSourceUrl = Lens.lens (\GetPlaybackConfigurationResponse' {videoContentSourceUrl} -> videoContentSourceUrl) (\s@GetPlaybackConfigurationResponse' {} a -> s {videoContentSourceUrl = a} :: GetPlaybackConfigurationResponse)++-- | The response's http status code.+getPlaybackConfigurationResponse_httpStatus :: Lens.Lens' GetPlaybackConfigurationResponse Prelude.Int+getPlaybackConfigurationResponse_httpStatus = Lens.lens (\GetPlaybackConfigurationResponse' {httpStatus} -> httpStatus) (\s@GetPlaybackConfigurationResponse' {} a -> s {httpStatus = a} :: GetPlaybackConfigurationResponse)++instance+  Prelude.NFData+    GetPlaybackConfigurationResponse+  where+  rnf GetPlaybackConfigurationResponse' {..} =+    Prelude.rnf adDecisionServerUrl+      `Prelude.seq` Prelude.rnf availSuppression+      `Prelude.seq` Prelude.rnf bumper+      `Prelude.seq` Prelude.rnf cdnConfiguration+      `Prelude.seq` Prelude.rnf configurationAliases+      `Prelude.seq` Prelude.rnf dashConfiguration+      `Prelude.seq` Prelude.rnf hlsConfiguration+      `Prelude.seq` Prelude.rnf livePreRollConfiguration+      `Prelude.seq` Prelude.rnf logConfiguration+      `Prelude.seq` Prelude.rnf manifestProcessingRules+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf personalizationThresholdSeconds+      `Prelude.seq` Prelude.rnf playbackConfigurationArn+      `Prelude.seq` Prelude.rnf playbackEndpointPrefix+      `Prelude.seq` Prelude.rnf+        sessionInitializationEndpointPrefix+      `Prelude.seq` Prelude.rnf slateAdUrl+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf transcodeProfileName+      `Prelude.seq` Prelude.rnf+        videoContentSourceUrl+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/GetPrefetchSchedule.hs view
@@ -0,0 +1,287 @@+{-# 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.MediaTailor.GetPrefetchSchedule+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a prefetch schedule for a playback configuration. A prefetch+-- schedule allows you to tell MediaTailor to fetch and prepare certain ads+-- before an ad break happens. For more information about ad prefetching,+-- see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/prefetching-ads.html Using ad prefetching>+-- in the /MediaTailor User Guide/.+module Amazonka.MediaTailor.GetPrefetchSchedule+  ( -- * Creating a Request+    GetPrefetchSchedule (..),+    newGetPrefetchSchedule,++    -- * Request Lenses+    getPrefetchSchedule_name,+    getPrefetchSchedule_playbackConfigurationName,++    -- * Destructuring the Response+    GetPrefetchScheduleResponse (..),+    newGetPrefetchScheduleResponse,++    -- * Response Lenses+    getPrefetchScheduleResponse_arn,+    getPrefetchScheduleResponse_consumption,+    getPrefetchScheduleResponse_name,+    getPrefetchScheduleResponse_playbackConfigurationName,+    getPrefetchScheduleResponse_retrieval,+    getPrefetchScheduleResponse_streamId,+    getPrefetchScheduleResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetPrefetchSchedule' smart constructor.+data GetPrefetchSchedule = GetPrefetchSchedule'+  { -- | The name of the prefetch schedule. The name must be unique among all+    -- prefetch schedules that are associated with the specified playback+    -- configuration.+    name :: Prelude.Text,+    -- | Returns information about the prefetch schedule for a specific playback+    -- configuration. If you call @GetPrefetchSchedule@ on an expired prefetch+    -- schedule, MediaTailor returns an HTTP 404 status code.+    playbackConfigurationName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetPrefetchSchedule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'getPrefetchSchedule_name' - The name of the prefetch schedule. The name must be unique among all+-- prefetch schedules that are associated with the specified playback+-- configuration.+--+-- 'playbackConfigurationName', 'getPrefetchSchedule_playbackConfigurationName' - Returns information about the prefetch schedule for a specific playback+-- configuration. If you call @GetPrefetchSchedule@ on an expired prefetch+-- schedule, MediaTailor returns an HTTP 404 status code.+newGetPrefetchSchedule ::+  -- | 'name'+  Prelude.Text ->+  -- | 'playbackConfigurationName'+  Prelude.Text ->+  GetPrefetchSchedule+newGetPrefetchSchedule+  pName_+  pPlaybackConfigurationName_ =+    GetPrefetchSchedule'+      { name = pName_,+        playbackConfigurationName =+          pPlaybackConfigurationName_+      }++-- | The name of the prefetch schedule. The name must be unique among all+-- prefetch schedules that are associated with the specified playback+-- configuration.+getPrefetchSchedule_name :: Lens.Lens' GetPrefetchSchedule Prelude.Text+getPrefetchSchedule_name = Lens.lens (\GetPrefetchSchedule' {name} -> name) (\s@GetPrefetchSchedule' {} a -> s {name = a} :: GetPrefetchSchedule)++-- | Returns information about the prefetch schedule for a specific playback+-- configuration. If you call @GetPrefetchSchedule@ on an expired prefetch+-- schedule, MediaTailor returns an HTTP 404 status code.+getPrefetchSchedule_playbackConfigurationName :: Lens.Lens' GetPrefetchSchedule Prelude.Text+getPrefetchSchedule_playbackConfigurationName = Lens.lens (\GetPrefetchSchedule' {playbackConfigurationName} -> playbackConfigurationName) (\s@GetPrefetchSchedule' {} a -> s {playbackConfigurationName = a} :: GetPrefetchSchedule)++instance Core.AWSRequest GetPrefetchSchedule where+  type+    AWSResponse GetPrefetchSchedule =+      GetPrefetchScheduleResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetPrefetchScheduleResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "Consumption")+            Prelude.<*> (x Data..?> "Name")+            Prelude.<*> (x Data..?> "PlaybackConfigurationName")+            Prelude.<*> (x Data..?> "Retrieval")+            Prelude.<*> (x Data..?> "StreamId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetPrefetchSchedule where+  hashWithSalt _salt GetPrefetchSchedule' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` playbackConfigurationName++instance Prelude.NFData GetPrefetchSchedule where+  rnf GetPrefetchSchedule' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf playbackConfigurationName++instance Data.ToHeaders GetPrefetchSchedule where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetPrefetchSchedule where+  toPath GetPrefetchSchedule' {..} =+    Prelude.mconcat+      [ "/prefetchSchedule/",+        Data.toBS playbackConfigurationName,+        "/",+        Data.toBS name+      ]++instance Data.ToQuery GetPrefetchSchedule where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetPrefetchScheduleResponse' smart constructor.+data GetPrefetchScheduleResponse = GetPrefetchScheduleResponse'+  { -- | The Amazon Resource Name (ARN) of the prefetch schedule.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Consumption settings determine how, and when, MediaTailor places the+    -- prefetched ads into ad breaks. Ad consumption occurs within a span of+    -- time that you define, called a /consumption window/. You can designate+    -- which ad breaks that MediaTailor fills with prefetch ads by setting+    -- avail matching criteria.+    consumption :: Prelude.Maybe PrefetchConsumption,+    -- | The name of the prefetch schedule. The name must be unique among all+    -- prefetch schedules that are associated with the specified playback+    -- configuration.+    name :: Prelude.Maybe Prelude.Text,+    -- | The name of the playback configuration to create the prefetch schedule+    -- for.+    playbackConfigurationName :: Prelude.Maybe Prelude.Text,+    -- | A complex type that contains settings for prefetch retrieval from the ad+    -- decision server (ADS).+    retrieval :: Prelude.Maybe PrefetchRetrieval,+    -- | An optional stream identifier that you can specify in order to prefetch+    -- for multiple streams that use the same playback configuration.+    streamId :: 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 'GetPrefetchScheduleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getPrefetchScheduleResponse_arn' - The Amazon Resource Name (ARN) of the prefetch schedule.+--+-- 'consumption', 'getPrefetchScheduleResponse_consumption' - Consumption settings determine how, and when, MediaTailor places the+-- prefetched ads into ad breaks. Ad consumption occurs within a span of+-- time that you define, called a /consumption window/. You can designate+-- which ad breaks that MediaTailor fills with prefetch ads by setting+-- avail matching criteria.+--+-- 'name', 'getPrefetchScheduleResponse_name' - The name of the prefetch schedule. The name must be unique among all+-- prefetch schedules that are associated with the specified playback+-- configuration.+--+-- 'playbackConfigurationName', 'getPrefetchScheduleResponse_playbackConfigurationName' - The name of the playback configuration to create the prefetch schedule+-- for.+--+-- 'retrieval', 'getPrefetchScheduleResponse_retrieval' - A complex type that contains settings for prefetch retrieval from the ad+-- decision server (ADS).+--+-- 'streamId', 'getPrefetchScheduleResponse_streamId' - An optional stream identifier that you can specify in order to prefetch+-- for multiple streams that use the same playback configuration.+--+-- 'httpStatus', 'getPrefetchScheduleResponse_httpStatus' - The response's http status code.+newGetPrefetchScheduleResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetPrefetchScheduleResponse+newGetPrefetchScheduleResponse pHttpStatus_ =+  GetPrefetchScheduleResponse'+    { arn = Prelude.Nothing,+      consumption = Prelude.Nothing,+      name = Prelude.Nothing,+      playbackConfigurationName = Prelude.Nothing,+      retrieval = Prelude.Nothing,+      streamId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the prefetch schedule.+getPrefetchScheduleResponse_arn :: Lens.Lens' GetPrefetchScheduleResponse (Prelude.Maybe Prelude.Text)+getPrefetchScheduleResponse_arn = Lens.lens (\GetPrefetchScheduleResponse' {arn} -> arn) (\s@GetPrefetchScheduleResponse' {} a -> s {arn = a} :: GetPrefetchScheduleResponse)++-- | Consumption settings determine how, and when, MediaTailor places the+-- prefetched ads into ad breaks. Ad consumption occurs within a span of+-- time that you define, called a /consumption window/. You can designate+-- which ad breaks that MediaTailor fills with prefetch ads by setting+-- avail matching criteria.+getPrefetchScheduleResponse_consumption :: Lens.Lens' GetPrefetchScheduleResponse (Prelude.Maybe PrefetchConsumption)+getPrefetchScheduleResponse_consumption = Lens.lens (\GetPrefetchScheduleResponse' {consumption} -> consumption) (\s@GetPrefetchScheduleResponse' {} a -> s {consumption = a} :: GetPrefetchScheduleResponse)++-- | The name of the prefetch schedule. The name must be unique among all+-- prefetch schedules that are associated with the specified playback+-- configuration.+getPrefetchScheduleResponse_name :: Lens.Lens' GetPrefetchScheduleResponse (Prelude.Maybe Prelude.Text)+getPrefetchScheduleResponse_name = Lens.lens (\GetPrefetchScheduleResponse' {name} -> name) (\s@GetPrefetchScheduleResponse' {} a -> s {name = a} :: GetPrefetchScheduleResponse)++-- | The name of the playback configuration to create the prefetch schedule+-- for.+getPrefetchScheduleResponse_playbackConfigurationName :: Lens.Lens' GetPrefetchScheduleResponse (Prelude.Maybe Prelude.Text)+getPrefetchScheduleResponse_playbackConfigurationName = Lens.lens (\GetPrefetchScheduleResponse' {playbackConfigurationName} -> playbackConfigurationName) (\s@GetPrefetchScheduleResponse' {} a -> s {playbackConfigurationName = a} :: GetPrefetchScheduleResponse)++-- | A complex type that contains settings for prefetch retrieval from the ad+-- decision server (ADS).+getPrefetchScheduleResponse_retrieval :: Lens.Lens' GetPrefetchScheduleResponse (Prelude.Maybe PrefetchRetrieval)+getPrefetchScheduleResponse_retrieval = Lens.lens (\GetPrefetchScheduleResponse' {retrieval} -> retrieval) (\s@GetPrefetchScheduleResponse' {} a -> s {retrieval = a} :: GetPrefetchScheduleResponse)++-- | An optional stream identifier that you can specify in order to prefetch+-- for multiple streams that use the same playback configuration.+getPrefetchScheduleResponse_streamId :: Lens.Lens' GetPrefetchScheduleResponse (Prelude.Maybe Prelude.Text)+getPrefetchScheduleResponse_streamId = Lens.lens (\GetPrefetchScheduleResponse' {streamId} -> streamId) (\s@GetPrefetchScheduleResponse' {} a -> s {streamId = a} :: GetPrefetchScheduleResponse)++-- | The response's http status code.+getPrefetchScheduleResponse_httpStatus :: Lens.Lens' GetPrefetchScheduleResponse Prelude.Int+getPrefetchScheduleResponse_httpStatus = Lens.lens (\GetPrefetchScheduleResponse' {httpStatus} -> httpStatus) (\s@GetPrefetchScheduleResponse' {} a -> s {httpStatus = a} :: GetPrefetchScheduleResponse)++instance Prelude.NFData GetPrefetchScheduleResponse where+  rnf GetPrefetchScheduleResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf consumption+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf playbackConfigurationName+      `Prelude.seq` Prelude.rnf retrieval+      `Prelude.seq` Prelude.rnf streamId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/Lens.hs view
@@ -0,0 +1,762 @@+{-# 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.MediaTailor.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.MediaTailor.Lens+  ( -- * Operations++    -- ** ConfigureLogsForPlaybackConfiguration+    configureLogsForPlaybackConfiguration_percentEnabled,+    configureLogsForPlaybackConfiguration_playbackConfigurationName,+    configureLogsForPlaybackConfigurationResponse_playbackConfigurationName,+    configureLogsForPlaybackConfigurationResponse_httpStatus,+    configureLogsForPlaybackConfigurationResponse_percentEnabled,++    -- ** CreateChannel+    createChannel_fillerSlate,+    createChannel_tags,+    createChannel_tier,+    createChannel_channelName,+    createChannel_outputs,+    createChannel_playbackMode,+    createChannelResponse_arn,+    createChannelResponse_channelName,+    createChannelResponse_channelState,+    createChannelResponse_creationTime,+    createChannelResponse_fillerSlate,+    createChannelResponse_lastModifiedTime,+    createChannelResponse_outputs,+    createChannelResponse_playbackMode,+    createChannelResponse_tags,+    createChannelResponse_tier,+    createChannelResponse_httpStatus,++    -- ** CreateLiveSource+    createLiveSource_tags,+    createLiveSource_httpPackageConfigurations,+    createLiveSource_liveSourceName,+    createLiveSource_sourceLocationName,+    createLiveSourceResponse_arn,+    createLiveSourceResponse_creationTime,+    createLiveSourceResponse_httpPackageConfigurations,+    createLiveSourceResponse_lastModifiedTime,+    createLiveSourceResponse_liveSourceName,+    createLiveSourceResponse_sourceLocationName,+    createLiveSourceResponse_tags,+    createLiveSourceResponse_httpStatus,++    -- ** CreatePrefetchSchedule+    createPrefetchSchedule_streamId,+    createPrefetchSchedule_consumption,+    createPrefetchSchedule_name,+    createPrefetchSchedule_playbackConfigurationName,+    createPrefetchSchedule_retrieval,+    createPrefetchScheduleResponse_arn,+    createPrefetchScheduleResponse_consumption,+    createPrefetchScheduleResponse_name,+    createPrefetchScheduleResponse_playbackConfigurationName,+    createPrefetchScheduleResponse_retrieval,+    createPrefetchScheduleResponse_streamId,+    createPrefetchScheduleResponse_httpStatus,++    -- ** CreateProgram+    createProgram_adBreaks,+    createProgram_liveSourceName,+    createProgram_vodSourceName,+    createProgram_channelName,+    createProgram_programName,+    createProgram_scheduleConfiguration,+    createProgram_sourceLocationName,+    createProgramResponse_adBreaks,+    createProgramResponse_arn,+    createProgramResponse_channelName,+    createProgramResponse_creationTime,+    createProgramResponse_liveSourceName,+    createProgramResponse_programName,+    createProgramResponse_scheduledStartTime,+    createProgramResponse_sourceLocationName,+    createProgramResponse_vodSourceName,+    createProgramResponse_httpStatus,++    -- ** CreateSourceLocation+    createSourceLocation_accessConfiguration,+    createSourceLocation_defaultSegmentDeliveryConfiguration,+    createSourceLocation_segmentDeliveryConfigurations,+    createSourceLocation_tags,+    createSourceLocation_httpConfiguration,+    createSourceLocation_sourceLocationName,+    createSourceLocationResponse_accessConfiguration,+    createSourceLocationResponse_arn,+    createSourceLocationResponse_creationTime,+    createSourceLocationResponse_defaultSegmentDeliveryConfiguration,+    createSourceLocationResponse_httpConfiguration,+    createSourceLocationResponse_lastModifiedTime,+    createSourceLocationResponse_segmentDeliveryConfigurations,+    createSourceLocationResponse_sourceLocationName,+    createSourceLocationResponse_tags,+    createSourceLocationResponse_httpStatus,++    -- ** CreateVodSource+    createVodSource_tags,+    createVodSource_httpPackageConfigurations,+    createVodSource_sourceLocationName,+    createVodSource_vodSourceName,+    createVodSourceResponse_arn,+    createVodSourceResponse_creationTime,+    createVodSourceResponse_httpPackageConfigurations,+    createVodSourceResponse_lastModifiedTime,+    createVodSourceResponse_sourceLocationName,+    createVodSourceResponse_tags,+    createVodSourceResponse_vodSourceName,+    createVodSourceResponse_httpStatus,++    -- ** DeleteChannel+    deleteChannel_channelName,+    deleteChannelResponse_httpStatus,++    -- ** DeleteChannelPolicy+    deleteChannelPolicy_channelName,+    deleteChannelPolicyResponse_httpStatus,++    -- ** DeleteLiveSource+    deleteLiveSource_liveSourceName,+    deleteLiveSource_sourceLocationName,+    deleteLiveSourceResponse_httpStatus,++    -- ** DeletePlaybackConfiguration+    deletePlaybackConfiguration_name,+    deletePlaybackConfigurationResponse_httpStatus,++    -- ** DeletePrefetchSchedule+    deletePrefetchSchedule_name,+    deletePrefetchSchedule_playbackConfigurationName,+    deletePrefetchScheduleResponse_httpStatus,++    -- ** DeleteProgram+    deleteProgram_channelName,+    deleteProgram_programName,+    deleteProgramResponse_httpStatus,++    -- ** DeleteSourceLocation+    deleteSourceLocation_sourceLocationName,+    deleteSourceLocationResponse_httpStatus,++    -- ** DeleteVodSource+    deleteVodSource_sourceLocationName,+    deleteVodSource_vodSourceName,+    deleteVodSourceResponse_httpStatus,++    -- ** DescribeChannel+    describeChannel_channelName,+    describeChannelResponse_arn,+    describeChannelResponse_channelName,+    describeChannelResponse_channelState,+    describeChannelResponse_creationTime,+    describeChannelResponse_fillerSlate,+    describeChannelResponse_lastModifiedTime,+    describeChannelResponse_outputs,+    describeChannelResponse_playbackMode,+    describeChannelResponse_tags,+    describeChannelResponse_tier,+    describeChannelResponse_httpStatus,++    -- ** DescribeLiveSource+    describeLiveSource_liveSourceName,+    describeLiveSource_sourceLocationName,+    describeLiveSourceResponse_arn,+    describeLiveSourceResponse_creationTime,+    describeLiveSourceResponse_httpPackageConfigurations,+    describeLiveSourceResponse_lastModifiedTime,+    describeLiveSourceResponse_liveSourceName,+    describeLiveSourceResponse_sourceLocationName,+    describeLiveSourceResponse_tags,+    describeLiveSourceResponse_httpStatus,++    -- ** DescribeProgram+    describeProgram_channelName,+    describeProgram_programName,+    describeProgramResponse_adBreaks,+    describeProgramResponse_arn,+    describeProgramResponse_channelName,+    describeProgramResponse_creationTime,+    describeProgramResponse_liveSourceName,+    describeProgramResponse_programName,+    describeProgramResponse_scheduledStartTime,+    describeProgramResponse_sourceLocationName,+    describeProgramResponse_vodSourceName,+    describeProgramResponse_httpStatus,++    -- ** DescribeSourceLocation+    describeSourceLocation_sourceLocationName,+    describeSourceLocationResponse_accessConfiguration,+    describeSourceLocationResponse_arn,+    describeSourceLocationResponse_creationTime,+    describeSourceLocationResponse_defaultSegmentDeliveryConfiguration,+    describeSourceLocationResponse_httpConfiguration,+    describeSourceLocationResponse_lastModifiedTime,+    describeSourceLocationResponse_segmentDeliveryConfigurations,+    describeSourceLocationResponse_sourceLocationName,+    describeSourceLocationResponse_tags,+    describeSourceLocationResponse_httpStatus,++    -- ** DescribeVodSource+    describeVodSource_sourceLocationName,+    describeVodSource_vodSourceName,+    describeVodSourceResponse_arn,+    describeVodSourceResponse_creationTime,+    describeVodSourceResponse_httpPackageConfigurations,+    describeVodSourceResponse_lastModifiedTime,+    describeVodSourceResponse_sourceLocationName,+    describeVodSourceResponse_tags,+    describeVodSourceResponse_vodSourceName,+    describeVodSourceResponse_httpStatus,++    -- ** GetChannelPolicy+    getChannelPolicy_channelName,+    getChannelPolicyResponse_policy,+    getChannelPolicyResponse_httpStatus,++    -- ** GetChannelSchedule+    getChannelSchedule_durationMinutes,+    getChannelSchedule_maxResults,+    getChannelSchedule_nextToken,+    getChannelSchedule_channelName,+    getChannelScheduleResponse_items,+    getChannelScheduleResponse_nextToken,+    getChannelScheduleResponse_httpStatus,++    -- ** GetPlaybackConfiguration+    getPlaybackConfiguration_name,+    getPlaybackConfigurationResponse_adDecisionServerUrl,+    getPlaybackConfigurationResponse_availSuppression,+    getPlaybackConfigurationResponse_bumper,+    getPlaybackConfigurationResponse_cdnConfiguration,+    getPlaybackConfigurationResponse_configurationAliases,+    getPlaybackConfigurationResponse_dashConfiguration,+    getPlaybackConfigurationResponse_hlsConfiguration,+    getPlaybackConfigurationResponse_livePreRollConfiguration,+    getPlaybackConfigurationResponse_logConfiguration,+    getPlaybackConfigurationResponse_manifestProcessingRules,+    getPlaybackConfigurationResponse_name,+    getPlaybackConfigurationResponse_personalizationThresholdSeconds,+    getPlaybackConfigurationResponse_playbackConfigurationArn,+    getPlaybackConfigurationResponse_playbackEndpointPrefix,+    getPlaybackConfigurationResponse_sessionInitializationEndpointPrefix,+    getPlaybackConfigurationResponse_slateAdUrl,+    getPlaybackConfigurationResponse_tags,+    getPlaybackConfigurationResponse_transcodeProfileName,+    getPlaybackConfigurationResponse_videoContentSourceUrl,+    getPlaybackConfigurationResponse_httpStatus,++    -- ** GetPrefetchSchedule+    getPrefetchSchedule_name,+    getPrefetchSchedule_playbackConfigurationName,+    getPrefetchScheduleResponse_arn,+    getPrefetchScheduleResponse_consumption,+    getPrefetchScheduleResponse_name,+    getPrefetchScheduleResponse_playbackConfigurationName,+    getPrefetchScheduleResponse_retrieval,+    getPrefetchScheduleResponse_streamId,+    getPrefetchScheduleResponse_httpStatus,++    -- ** ListAlerts+    listAlerts_maxResults,+    listAlerts_nextToken,+    listAlerts_resourceArn,+    listAlertsResponse_items,+    listAlertsResponse_nextToken,+    listAlertsResponse_httpStatus,++    -- ** ListChannels+    listChannels_maxResults,+    listChannels_nextToken,+    listChannelsResponse_items,+    listChannelsResponse_nextToken,+    listChannelsResponse_httpStatus,++    -- ** ListLiveSources+    listLiveSources_maxResults,+    listLiveSources_nextToken,+    listLiveSources_sourceLocationName,+    listLiveSourcesResponse_items,+    listLiveSourcesResponse_nextToken,+    listLiveSourcesResponse_httpStatus,++    -- ** ListPlaybackConfigurations+    listPlaybackConfigurations_maxResults,+    listPlaybackConfigurations_nextToken,+    listPlaybackConfigurationsResponse_items,+    listPlaybackConfigurationsResponse_nextToken,+    listPlaybackConfigurationsResponse_httpStatus,++    -- ** ListPrefetchSchedules+    listPrefetchSchedules_maxResults,+    listPrefetchSchedules_nextToken,+    listPrefetchSchedules_streamId,+    listPrefetchSchedules_playbackConfigurationName,+    listPrefetchSchedulesResponse_items,+    listPrefetchSchedulesResponse_nextToken,+    listPrefetchSchedulesResponse_httpStatus,++    -- ** ListSourceLocations+    listSourceLocations_maxResults,+    listSourceLocations_nextToken,+    listSourceLocationsResponse_items,+    listSourceLocationsResponse_nextToken,+    listSourceLocationsResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_resourceArn,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** ListVodSources+    listVodSources_maxResults,+    listVodSources_nextToken,+    listVodSources_sourceLocationName,+    listVodSourcesResponse_items,+    listVodSourcesResponse_nextToken,+    listVodSourcesResponse_httpStatus,++    -- ** PutChannelPolicy+    putChannelPolicy_channelName,+    putChannelPolicy_policy,+    putChannelPolicyResponse_httpStatus,++    -- ** PutPlaybackConfiguration+    putPlaybackConfiguration_adDecisionServerUrl,+    putPlaybackConfiguration_availSuppression,+    putPlaybackConfiguration_bumper,+    putPlaybackConfiguration_cdnConfiguration,+    putPlaybackConfiguration_configurationAliases,+    putPlaybackConfiguration_dashConfiguration,+    putPlaybackConfiguration_livePreRollConfiguration,+    putPlaybackConfiguration_manifestProcessingRules,+    putPlaybackConfiguration_personalizationThresholdSeconds,+    putPlaybackConfiguration_slateAdUrl,+    putPlaybackConfiguration_tags,+    putPlaybackConfiguration_transcodeProfileName,+    putPlaybackConfiguration_videoContentSourceUrl,+    putPlaybackConfiguration_name,+    putPlaybackConfigurationResponse_adDecisionServerUrl,+    putPlaybackConfigurationResponse_availSuppression,+    putPlaybackConfigurationResponse_bumper,+    putPlaybackConfigurationResponse_cdnConfiguration,+    putPlaybackConfigurationResponse_configurationAliases,+    putPlaybackConfigurationResponse_dashConfiguration,+    putPlaybackConfigurationResponse_hlsConfiguration,+    putPlaybackConfigurationResponse_livePreRollConfiguration,+    putPlaybackConfigurationResponse_logConfiguration,+    putPlaybackConfigurationResponse_manifestProcessingRules,+    putPlaybackConfigurationResponse_name,+    putPlaybackConfigurationResponse_personalizationThresholdSeconds,+    putPlaybackConfigurationResponse_playbackConfigurationArn,+    putPlaybackConfigurationResponse_playbackEndpointPrefix,+    putPlaybackConfigurationResponse_sessionInitializationEndpointPrefix,+    putPlaybackConfigurationResponse_slateAdUrl,+    putPlaybackConfigurationResponse_tags,+    putPlaybackConfigurationResponse_transcodeProfileName,+    putPlaybackConfigurationResponse_videoContentSourceUrl,+    putPlaybackConfigurationResponse_httpStatus,++    -- ** StartChannel+    startChannel_channelName,+    startChannelResponse_httpStatus,++    -- ** StopChannel+    stopChannel_channelName,+    stopChannelResponse_httpStatus,++    -- ** TagResource+    tagResource_resourceArn,+    tagResource_tags,++    -- ** UntagResource+    untagResource_resourceArn,+    untagResource_tagKeys,++    -- ** UpdateChannel+    updateChannel_fillerSlate,+    updateChannel_channelName,+    updateChannel_outputs,+    updateChannelResponse_arn,+    updateChannelResponse_channelName,+    updateChannelResponse_channelState,+    updateChannelResponse_creationTime,+    updateChannelResponse_fillerSlate,+    updateChannelResponse_lastModifiedTime,+    updateChannelResponse_outputs,+    updateChannelResponse_playbackMode,+    updateChannelResponse_tags,+    updateChannelResponse_tier,+    updateChannelResponse_httpStatus,++    -- ** UpdateLiveSource+    updateLiveSource_httpPackageConfigurations,+    updateLiveSource_liveSourceName,+    updateLiveSource_sourceLocationName,+    updateLiveSourceResponse_arn,+    updateLiveSourceResponse_creationTime,+    updateLiveSourceResponse_httpPackageConfigurations,+    updateLiveSourceResponse_lastModifiedTime,+    updateLiveSourceResponse_liveSourceName,+    updateLiveSourceResponse_sourceLocationName,+    updateLiveSourceResponse_tags,+    updateLiveSourceResponse_httpStatus,++    -- ** UpdateSourceLocation+    updateSourceLocation_accessConfiguration,+    updateSourceLocation_defaultSegmentDeliveryConfiguration,+    updateSourceLocation_segmentDeliveryConfigurations,+    updateSourceLocation_httpConfiguration,+    updateSourceLocation_sourceLocationName,+    updateSourceLocationResponse_accessConfiguration,+    updateSourceLocationResponse_arn,+    updateSourceLocationResponse_creationTime,+    updateSourceLocationResponse_defaultSegmentDeliveryConfiguration,+    updateSourceLocationResponse_httpConfiguration,+    updateSourceLocationResponse_lastModifiedTime,+    updateSourceLocationResponse_segmentDeliveryConfigurations,+    updateSourceLocationResponse_sourceLocationName,+    updateSourceLocationResponse_tags,+    updateSourceLocationResponse_httpStatus,++    -- ** UpdateVodSource+    updateVodSource_httpPackageConfigurations,+    updateVodSource_sourceLocationName,+    updateVodSource_vodSourceName,+    updateVodSourceResponse_arn,+    updateVodSourceResponse_creationTime,+    updateVodSourceResponse_httpPackageConfigurations,+    updateVodSourceResponse_lastModifiedTime,+    updateVodSourceResponse_sourceLocationName,+    updateVodSourceResponse_tags,+    updateVodSourceResponse_vodSourceName,+    updateVodSourceResponse_httpStatus,++    -- * Types++    -- ** AccessConfiguration+    accessConfiguration_accessType,+    accessConfiguration_secretsManagerAccessTokenConfiguration,++    -- ** AdBreak+    adBreak_messageType,+    adBreak_offsetMillis,+    adBreak_slate,+    adBreak_spliceInsertMessage,+    adBreak_timeSignalMessage,++    -- ** AdMarkerPassthrough+    adMarkerPassthrough_enabled,++    -- ** Alert+    alert_alertCode,+    alert_alertMessage,+    alert_lastModifiedTime,+    alert_relatedResourceArns,+    alert_resourceArn,++    -- ** AvailMatchingCriteria+    availMatchingCriteria_dynamicVariable,+    availMatchingCriteria_operator,++    -- ** AvailSuppression+    availSuppression_mode,+    availSuppression_value,++    -- ** Bumper+    bumper_endUrl,+    bumper_startUrl,++    -- ** CdnConfiguration+    cdnConfiguration_adSegmentUrlPrefix,+    cdnConfiguration_contentSegmentUrlPrefix,++    -- ** Channel+    channel_creationTime,+    channel_fillerSlate,+    channel_lastModifiedTime,+    channel_tags,+    channel_arn,+    channel_channelName,+    channel_channelState,+    channel_outputs,+    channel_playbackMode,+    channel_tier,++    -- ** DashConfiguration+    dashConfiguration_manifestEndpointPrefix,+    dashConfiguration_mpdLocation,+    dashConfiguration_originManifestType,++    -- ** DashConfigurationForPut+    dashConfigurationForPut_mpdLocation,+    dashConfigurationForPut_originManifestType,++    -- ** DashPlaylistSettings+    dashPlaylistSettings_manifestWindowSeconds,+    dashPlaylistSettings_minBufferTimeSeconds,+    dashPlaylistSettings_minUpdatePeriodSeconds,+    dashPlaylistSettings_suggestedPresentationDelaySeconds,++    -- ** DefaultSegmentDeliveryConfiguration+    defaultSegmentDeliveryConfiguration_baseUrl,++    -- ** HlsConfiguration+    hlsConfiguration_manifestEndpointPrefix,++    -- ** HlsPlaylistSettings+    hlsPlaylistSettings_manifestWindowSeconds,++    -- ** HttpConfiguration+    httpConfiguration_baseUrl,++    -- ** HttpPackageConfiguration+    httpPackageConfiguration_path,+    httpPackageConfiguration_sourceGroup,+    httpPackageConfiguration_type,++    -- ** LivePreRollConfiguration+    livePreRollConfiguration_adDecisionServerUrl,+    livePreRollConfiguration_maxDurationSeconds,++    -- ** LiveSource+    liveSource_creationTime,+    liveSource_lastModifiedTime,+    liveSource_tags,+    liveSource_arn,+    liveSource_httpPackageConfigurations,+    liveSource_liveSourceName,+    liveSource_sourceLocationName,++    -- ** LogConfiguration+    logConfiguration_percentEnabled,++    -- ** ManifestProcessingRules+    manifestProcessingRules_adMarkerPassthrough,++    -- ** PlaybackConfiguration+    playbackConfiguration_adDecisionServerUrl,+    playbackConfiguration_availSuppression,+    playbackConfiguration_bumper,+    playbackConfiguration_cdnConfiguration,+    playbackConfiguration_configurationAliases,+    playbackConfiguration_dashConfiguration,+    playbackConfiguration_hlsConfiguration,+    playbackConfiguration_livePreRollConfiguration,+    playbackConfiguration_logConfiguration,+    playbackConfiguration_manifestProcessingRules,+    playbackConfiguration_name,+    playbackConfiguration_personalizationThresholdSeconds,+    playbackConfiguration_playbackConfigurationArn,+    playbackConfiguration_playbackEndpointPrefix,+    playbackConfiguration_sessionInitializationEndpointPrefix,+    playbackConfiguration_slateAdUrl,+    playbackConfiguration_tags,+    playbackConfiguration_transcodeProfileName,+    playbackConfiguration_videoContentSourceUrl,++    -- ** PrefetchConsumption+    prefetchConsumption_availMatchingCriteria,+    prefetchConsumption_startTime,+    prefetchConsumption_endTime,++    -- ** PrefetchRetrieval+    prefetchRetrieval_dynamicVariables,+    prefetchRetrieval_startTime,+    prefetchRetrieval_endTime,++    -- ** PrefetchSchedule+    prefetchSchedule_streamId,+    prefetchSchedule_arn,+    prefetchSchedule_consumption,+    prefetchSchedule_name,+    prefetchSchedule_playbackConfigurationName,+    prefetchSchedule_retrieval,++    -- ** RequestOutputItem+    requestOutputItem_dashPlaylistSettings,+    requestOutputItem_hlsPlaylistSettings,+    requestOutputItem_manifestName,+    requestOutputItem_sourceGroup,++    -- ** ResponseOutputItem+    responseOutputItem_dashPlaylistSettings,+    responseOutputItem_hlsPlaylistSettings,+    responseOutputItem_manifestName,+    responseOutputItem_playbackUrl,+    responseOutputItem_sourceGroup,++    -- ** ScheduleAdBreak+    scheduleAdBreak_approximateDurationSeconds,+    scheduleAdBreak_approximateStartTime,+    scheduleAdBreak_sourceLocationName,+    scheduleAdBreak_vodSourceName,++    -- ** ScheduleConfiguration+    scheduleConfiguration_transition,++    -- ** ScheduleEntry+    scheduleEntry_approximateDurationSeconds,+    scheduleEntry_approximateStartTime,+    scheduleEntry_liveSourceName,+    scheduleEntry_scheduleAdBreaks,+    scheduleEntry_scheduleEntryType,+    scheduleEntry_vodSourceName,+    scheduleEntry_arn,+    scheduleEntry_channelName,+    scheduleEntry_programName,+    scheduleEntry_sourceLocationName,++    -- ** SecretsManagerAccessTokenConfiguration+    secretsManagerAccessTokenConfiguration_headerName,+    secretsManagerAccessTokenConfiguration_secretArn,+    secretsManagerAccessTokenConfiguration_secretStringKey,++    -- ** SegmentDeliveryConfiguration+    segmentDeliveryConfiguration_baseUrl,+    segmentDeliveryConfiguration_name,++    -- ** SegmentationDescriptor+    segmentationDescriptor_segmentNum,+    segmentationDescriptor_segmentationEventId,+    segmentationDescriptor_segmentationTypeId,+    segmentationDescriptor_segmentationUpid,+    segmentationDescriptor_segmentationUpidType,+    segmentationDescriptor_segmentsExpected,+    segmentationDescriptor_subSegmentNum,+    segmentationDescriptor_subSegmentsExpected,++    -- ** SlateSource+    slateSource_sourceLocationName,+    slateSource_vodSourceName,++    -- ** SourceLocation+    sourceLocation_accessConfiguration,+    sourceLocation_creationTime,+    sourceLocation_defaultSegmentDeliveryConfiguration,+    sourceLocation_lastModifiedTime,+    sourceLocation_segmentDeliveryConfigurations,+    sourceLocation_tags,+    sourceLocation_arn,+    sourceLocation_httpConfiguration,+    sourceLocation_sourceLocationName,++    -- ** SpliceInsertMessage+    spliceInsertMessage_availNum,+    spliceInsertMessage_availsExpected,+    spliceInsertMessage_spliceEventId,+    spliceInsertMessage_uniqueProgramId,++    -- ** TimeSignalMessage+    timeSignalMessage_segmentationDescriptors,++    -- ** Transition+    transition_durationMillis,+    transition_relativeProgram,+    transition_scheduledStartTimeMillis,+    transition_relativePosition,+    transition_type,++    -- ** VodSource+    vodSource_creationTime,+    vodSource_lastModifiedTime,+    vodSource_tags,+    vodSource_arn,+    vodSource_httpPackageConfigurations,+    vodSource_sourceLocationName,+    vodSource_vodSourceName,+  )+where++import Amazonka.MediaTailor.ConfigureLogsForPlaybackConfiguration+import Amazonka.MediaTailor.CreateChannel+import Amazonka.MediaTailor.CreateLiveSource+import Amazonka.MediaTailor.CreatePrefetchSchedule+import Amazonka.MediaTailor.CreateProgram+import Amazonka.MediaTailor.CreateSourceLocation+import Amazonka.MediaTailor.CreateVodSource+import Amazonka.MediaTailor.DeleteChannel+import Amazonka.MediaTailor.DeleteChannelPolicy+import Amazonka.MediaTailor.DeleteLiveSource+import Amazonka.MediaTailor.DeletePlaybackConfiguration+import Amazonka.MediaTailor.DeletePrefetchSchedule+import Amazonka.MediaTailor.DeleteProgram+import Amazonka.MediaTailor.DeleteSourceLocation+import Amazonka.MediaTailor.DeleteVodSource+import Amazonka.MediaTailor.DescribeChannel+import Amazonka.MediaTailor.DescribeLiveSource+import Amazonka.MediaTailor.DescribeProgram+import Amazonka.MediaTailor.DescribeSourceLocation+import Amazonka.MediaTailor.DescribeVodSource+import Amazonka.MediaTailor.GetChannelPolicy+import Amazonka.MediaTailor.GetChannelSchedule+import Amazonka.MediaTailor.GetPlaybackConfiguration+import Amazonka.MediaTailor.GetPrefetchSchedule+import Amazonka.MediaTailor.ListAlerts+import Amazonka.MediaTailor.ListChannels+import Amazonka.MediaTailor.ListLiveSources+import Amazonka.MediaTailor.ListPlaybackConfigurations+import Amazonka.MediaTailor.ListPrefetchSchedules+import Amazonka.MediaTailor.ListSourceLocations+import Amazonka.MediaTailor.ListTagsForResource+import Amazonka.MediaTailor.ListVodSources+import Amazonka.MediaTailor.PutChannelPolicy+import Amazonka.MediaTailor.PutPlaybackConfiguration+import Amazonka.MediaTailor.StartChannel+import Amazonka.MediaTailor.StopChannel+import Amazonka.MediaTailor.TagResource+import Amazonka.MediaTailor.Types.AccessConfiguration+import Amazonka.MediaTailor.Types.AdBreak+import Amazonka.MediaTailor.Types.AdMarkerPassthrough+import Amazonka.MediaTailor.Types.Alert+import Amazonka.MediaTailor.Types.AvailMatchingCriteria+import Amazonka.MediaTailor.Types.AvailSuppression+import Amazonka.MediaTailor.Types.Bumper+import Amazonka.MediaTailor.Types.CdnConfiguration+import Amazonka.MediaTailor.Types.Channel+import Amazonka.MediaTailor.Types.DashConfiguration+import Amazonka.MediaTailor.Types.DashConfigurationForPut+import Amazonka.MediaTailor.Types.DashPlaylistSettings+import Amazonka.MediaTailor.Types.DefaultSegmentDeliveryConfiguration+import Amazonka.MediaTailor.Types.HlsConfiguration+import Amazonka.MediaTailor.Types.HlsPlaylistSettings+import Amazonka.MediaTailor.Types.HttpConfiguration+import Amazonka.MediaTailor.Types.HttpPackageConfiguration+import Amazonka.MediaTailor.Types.LivePreRollConfiguration+import Amazonka.MediaTailor.Types.LiveSource+import Amazonka.MediaTailor.Types.LogConfiguration+import Amazonka.MediaTailor.Types.ManifestProcessingRules+import Amazonka.MediaTailor.Types.PlaybackConfiguration+import Amazonka.MediaTailor.Types.PrefetchConsumption+import Amazonka.MediaTailor.Types.PrefetchRetrieval+import Amazonka.MediaTailor.Types.PrefetchSchedule+import Amazonka.MediaTailor.Types.RequestOutputItem+import Amazonka.MediaTailor.Types.ResponseOutputItem+import Amazonka.MediaTailor.Types.ScheduleAdBreak+import Amazonka.MediaTailor.Types.ScheduleConfiguration+import Amazonka.MediaTailor.Types.ScheduleEntry+import Amazonka.MediaTailor.Types.SecretsManagerAccessTokenConfiguration+import Amazonka.MediaTailor.Types.SegmentDeliveryConfiguration+import Amazonka.MediaTailor.Types.SegmentationDescriptor+import Amazonka.MediaTailor.Types.SlateSource+import Amazonka.MediaTailor.Types.SourceLocation+import Amazonka.MediaTailor.Types.SpliceInsertMessage+import Amazonka.MediaTailor.Types.TimeSignalMessage+import Amazonka.MediaTailor.Types.Transition+import Amazonka.MediaTailor.Types.VodSource+import Amazonka.MediaTailor.UntagResource+import Amazonka.MediaTailor.UpdateChannel+import Amazonka.MediaTailor.UpdateLiveSource+import Amazonka.MediaTailor.UpdateSourceLocation+import Amazonka.MediaTailor.UpdateVodSource
+ gen/Amazonka/MediaTailor/ListAlerts.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.MediaTailor.ListAlerts+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the alerts that are associated with a MediaTailor channel assembly+-- resource.+--+-- This operation returns paginated results.+module Amazonka.MediaTailor.ListAlerts+  ( -- * Creating a Request+    ListAlerts (..),+    newListAlerts,++    -- * Request Lenses+    listAlerts_maxResults,+    listAlerts_nextToken,+    listAlerts_resourceArn,++    -- * Destructuring the Response+    ListAlertsResponse (..),+    newListAlertsResponse,++    -- * Response Lenses+    listAlertsResponse_items,+    listAlertsResponse_nextToken,+    listAlertsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAlerts' smart constructor.+data ListAlerts = ListAlerts'+  { -- | The maximum number of alerts that you want MediaTailor to return in+    -- response to the current request. If there are more than @MaxResults@+    -- alerts, use the value of @NextToken@ in the response to get the next+    -- page of results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Pagination token returned by the list request when results exceed the+    -- maximum allowed. Use the token to fetch the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the resource.+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAlerts' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listAlerts_maxResults' - The maximum number of alerts that you want MediaTailor to return in+-- response to the current request. If there are more than @MaxResults@+-- alerts, use the value of @NextToken@ in the response to get the next+-- page of results.+--+-- 'nextToken', 'listAlerts_nextToken' - Pagination token returned by the list request when results exceed the+-- maximum allowed. Use the token to fetch the next page of results.+--+-- 'resourceArn', 'listAlerts_resourceArn' - The Amazon Resource Name (ARN) of the resource.+newListAlerts ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListAlerts+newListAlerts pResourceArn_ =+  ListAlerts'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      resourceArn = pResourceArn_+    }++-- | The maximum number of alerts that you want MediaTailor to return in+-- response to the current request. If there are more than @MaxResults@+-- alerts, use the value of @NextToken@ in the response to get the next+-- page of results.+listAlerts_maxResults :: Lens.Lens' ListAlerts (Prelude.Maybe Prelude.Natural)+listAlerts_maxResults = Lens.lens (\ListAlerts' {maxResults} -> maxResults) (\s@ListAlerts' {} a -> s {maxResults = a} :: ListAlerts)++-- | Pagination token returned by the list request when results exceed the+-- maximum allowed. Use the token to fetch the next page of results.+listAlerts_nextToken :: Lens.Lens' ListAlerts (Prelude.Maybe Prelude.Text)+listAlerts_nextToken = Lens.lens (\ListAlerts' {nextToken} -> nextToken) (\s@ListAlerts' {} a -> s {nextToken = a} :: ListAlerts)++-- | The Amazon Resource Name (ARN) of the resource.+listAlerts_resourceArn :: Lens.Lens' ListAlerts Prelude.Text+listAlerts_resourceArn = Lens.lens (\ListAlerts' {resourceArn} -> resourceArn) (\s@ListAlerts' {} a -> s {resourceArn = a} :: ListAlerts)++instance Core.AWSPager ListAlerts where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listAlertsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listAlertsResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listAlerts_nextToken+          Lens..~ rs+          Lens.^? listAlertsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListAlerts where+  type AWSResponse ListAlerts = ListAlertsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListAlertsResponse'+            Prelude.<$> (x Data..?> "Items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListAlerts where+  hashWithSalt _salt ListAlerts' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData ListAlerts where+  rnf ListAlerts' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf resourceArn++instance Data.ToHeaders ListAlerts where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListAlerts where+  toPath = Prelude.const "/alerts"++instance Data.ToQuery ListAlerts where+  toQuery ListAlerts' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken,+        "resourceArn" Data.=: resourceArn+      ]++-- | /See:/ 'newListAlertsResponse' smart constructor.+data ListAlertsResponse = ListAlertsResponse'+  { -- | A list of alerts that are associated with this resource.+    items :: Prelude.Maybe [Alert],+    -- | Pagination token returned by the list request when results exceed the+    -- maximum allowed. Use the token to fetch the next page of results.+    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 'ListAlertsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'listAlertsResponse_items' - A list of alerts that are associated with this resource.+--+-- 'nextToken', 'listAlertsResponse_nextToken' - Pagination token returned by the list request when results exceed the+-- maximum allowed. Use the token to fetch the next page of results.+--+-- 'httpStatus', 'listAlertsResponse_httpStatus' - The response's http status code.+newListAlertsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListAlertsResponse+newListAlertsResponse pHttpStatus_ =+  ListAlertsResponse'+    { items = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of alerts that are associated with this resource.+listAlertsResponse_items :: Lens.Lens' ListAlertsResponse (Prelude.Maybe [Alert])+listAlertsResponse_items = Lens.lens (\ListAlertsResponse' {items} -> items) (\s@ListAlertsResponse' {} a -> s {items = a} :: ListAlertsResponse) Prelude.. Lens.mapping Lens.coerced++-- | Pagination token returned by the list request when results exceed the+-- maximum allowed. Use the token to fetch the next page of results.+listAlertsResponse_nextToken :: Lens.Lens' ListAlertsResponse (Prelude.Maybe Prelude.Text)+listAlertsResponse_nextToken = Lens.lens (\ListAlertsResponse' {nextToken} -> nextToken) (\s@ListAlertsResponse' {} a -> s {nextToken = a} :: ListAlertsResponse)++-- | The response's http status code.+listAlertsResponse_httpStatus :: Lens.Lens' ListAlertsResponse Prelude.Int+listAlertsResponse_httpStatus = Lens.lens (\ListAlertsResponse' {httpStatus} -> httpStatus) (\s@ListAlertsResponse' {} a -> s {httpStatus = a} :: ListAlertsResponse)++instance Prelude.NFData ListAlertsResponse where+  rnf ListAlertsResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/ListChannels.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.MediaTailor.ListChannels+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about the channels that are associated with the+-- current AWS account.+--+-- This operation returns paginated results.+module Amazonka.MediaTailor.ListChannels+  ( -- * Creating a Request+    ListChannels (..),+    newListChannels,++    -- * Request Lenses+    listChannels_maxResults,+    listChannels_nextToken,++    -- * Destructuring the Response+    ListChannelsResponse (..),+    newListChannelsResponse,++    -- * Response Lenses+    listChannelsResponse_items,+    listChannelsResponse_nextToken,+    listChannelsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListChannels' smart constructor.+data ListChannels = ListChannels'+  { -- | The maximum number of channels that you want MediaTailor to return in+    -- response to the current request. If there are more than @MaxResults@+    -- channels, use the value of @NextToken@ in the response to get the next+    -- page of results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Pagination token returned by the list request when results exceed the+    -- maximum allowed. Use the token to fetch the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListChannels' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listChannels_maxResults' - The maximum number of channels that you want MediaTailor to return in+-- response to the current request. If there are more than @MaxResults@+-- channels, use the value of @NextToken@ in the response to get the next+-- page of results.+--+-- 'nextToken', 'listChannels_nextToken' - Pagination token returned by the list request when results exceed the+-- maximum allowed. Use the token to fetch the next page of results.+newListChannels ::+  ListChannels+newListChannels =+  ListChannels'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of channels that you want MediaTailor to return in+-- response to the current request. If there are more than @MaxResults@+-- channels, use the value of @NextToken@ in the response to get the next+-- page of results.+listChannels_maxResults :: Lens.Lens' ListChannels (Prelude.Maybe Prelude.Natural)+listChannels_maxResults = Lens.lens (\ListChannels' {maxResults} -> maxResults) (\s@ListChannels' {} a -> s {maxResults = a} :: ListChannels)++-- | Pagination token returned by the list request when results exceed the+-- maximum allowed. Use the token to fetch the next page of results.+listChannels_nextToken :: Lens.Lens' ListChannels (Prelude.Maybe Prelude.Text)+listChannels_nextToken = Lens.lens (\ListChannels' {nextToken} -> nextToken) (\s@ListChannels' {} a -> s {nextToken = a} :: ListChannels)++instance Core.AWSPager ListChannels where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listChannelsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listChannelsResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listChannels_nextToken+          Lens..~ rs+          Lens.^? listChannelsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListChannels where+  type AWSResponse ListChannels = ListChannelsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListChannelsResponse'+            Prelude.<$> (x Data..?> "Items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListChannels where+  hashWithSalt _salt ListChannels' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListChannels where+  rnf ListChannels' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListChannels where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListChannels where+  toPath = Prelude.const "/channels"++instance Data.ToQuery ListChannels where+  toQuery ListChannels' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListChannelsResponse' smart constructor.+data ListChannelsResponse = ListChannelsResponse'+  { -- | A list of channels that are associated with this account.+    items :: Prelude.Maybe [Channel],+    -- | Pagination token returned by the list request when results exceed the+    -- maximum allowed. Use the token to fetch the next page of results.+    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 'ListChannelsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'listChannelsResponse_items' - A list of channels that are associated with this account.+--+-- 'nextToken', 'listChannelsResponse_nextToken' - Pagination token returned by the list request when results exceed the+-- maximum allowed. Use the token to fetch the next page of results.+--+-- 'httpStatus', 'listChannelsResponse_httpStatus' - The response's http status code.+newListChannelsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListChannelsResponse+newListChannelsResponse pHttpStatus_ =+  ListChannelsResponse'+    { items = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of channels that are associated with this account.+listChannelsResponse_items :: Lens.Lens' ListChannelsResponse (Prelude.Maybe [Channel])+listChannelsResponse_items = Lens.lens (\ListChannelsResponse' {items} -> items) (\s@ListChannelsResponse' {} a -> s {items = a} :: ListChannelsResponse) Prelude.. Lens.mapping Lens.coerced++-- | Pagination token returned by the list request when results exceed the+-- maximum allowed. Use the token to fetch the next page of results.+listChannelsResponse_nextToken :: Lens.Lens' ListChannelsResponse (Prelude.Maybe Prelude.Text)+listChannelsResponse_nextToken = Lens.lens (\ListChannelsResponse' {nextToken} -> nextToken) (\s@ListChannelsResponse' {} a -> s {nextToken = a} :: ListChannelsResponse)++-- | The response's http status code.+listChannelsResponse_httpStatus :: Lens.Lens' ListChannelsResponse Prelude.Int+listChannelsResponse_httpStatus = Lens.lens (\ListChannelsResponse' {httpStatus} -> httpStatus) (\s@ListChannelsResponse' {} a -> s {httpStatus = a} :: ListChannelsResponse)++instance Prelude.NFData ListChannelsResponse where+  rnf ListChannelsResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/ListLiveSources.hs view
@@ -0,0 +1,245 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaTailor.ListLiveSources+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the live sources contained in a source location. A source+-- represents a piece of content.+--+-- This operation returns paginated results.+module Amazonka.MediaTailor.ListLiveSources+  ( -- * Creating a Request+    ListLiveSources (..),+    newListLiveSources,++    -- * Request Lenses+    listLiveSources_maxResults,+    listLiveSources_nextToken,+    listLiveSources_sourceLocationName,++    -- * Destructuring the Response+    ListLiveSourcesResponse (..),+    newListLiveSourcesResponse,++    -- * Response Lenses+    listLiveSourcesResponse_items,+    listLiveSourcesResponse_nextToken,+    listLiveSourcesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListLiveSources' smart constructor.+data ListLiveSources = ListLiveSources'+  { -- | The maximum number of live sources that you want MediaTailor to return+    -- in response to the current request. If there are more than @MaxResults@+    -- live sources, use the value of @NextToken@ in the response to get the+    -- next page of results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Pagination token returned by the list request when results exceed the+    -- maximum allowed. Use the token to fetch the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the source location associated with this Live Sources list.+    sourceLocationName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListLiveSources' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listLiveSources_maxResults' - The maximum number of live sources that you want MediaTailor to return+-- in response to the current request. If there are more than @MaxResults@+-- live sources, use the value of @NextToken@ in the response to get the+-- next page of results.+--+-- 'nextToken', 'listLiveSources_nextToken' - Pagination token returned by the list request when results exceed the+-- maximum allowed. Use the token to fetch the next page of results.+--+-- 'sourceLocationName', 'listLiveSources_sourceLocationName' - The name of the source location associated with this Live Sources list.+newListLiveSources ::+  -- | 'sourceLocationName'+  Prelude.Text ->+  ListLiveSources+newListLiveSources pSourceLocationName_ =+  ListLiveSources'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      sourceLocationName = pSourceLocationName_+    }++-- | The maximum number of live sources that you want MediaTailor to return+-- in response to the current request. If there are more than @MaxResults@+-- live sources, use the value of @NextToken@ in the response to get the+-- next page of results.+listLiveSources_maxResults :: Lens.Lens' ListLiveSources (Prelude.Maybe Prelude.Natural)+listLiveSources_maxResults = Lens.lens (\ListLiveSources' {maxResults} -> maxResults) (\s@ListLiveSources' {} a -> s {maxResults = a} :: ListLiveSources)++-- | Pagination token returned by the list request when results exceed the+-- maximum allowed. Use the token to fetch the next page of results.+listLiveSources_nextToken :: Lens.Lens' ListLiveSources (Prelude.Maybe Prelude.Text)+listLiveSources_nextToken = Lens.lens (\ListLiveSources' {nextToken} -> nextToken) (\s@ListLiveSources' {} a -> s {nextToken = a} :: ListLiveSources)++-- | The name of the source location associated with this Live Sources list.+listLiveSources_sourceLocationName :: Lens.Lens' ListLiveSources Prelude.Text+listLiveSources_sourceLocationName = Lens.lens (\ListLiveSources' {sourceLocationName} -> sourceLocationName) (\s@ListLiveSources' {} a -> s {sourceLocationName = a} :: ListLiveSources)++instance Core.AWSPager ListLiveSources where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listLiveSourcesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listLiveSourcesResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listLiveSources_nextToken+          Lens..~ rs+          Lens.^? listLiveSourcesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListLiveSources where+  type+    AWSResponse ListLiveSources =+      ListLiveSourcesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListLiveSourcesResponse'+            Prelude.<$> (x Data..?> "Items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListLiveSources where+  hashWithSalt _salt ListLiveSources' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` sourceLocationName++instance Prelude.NFData ListLiveSources where+  rnf ListLiveSources' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf sourceLocationName++instance Data.ToHeaders ListLiveSources where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListLiveSources where+  toPath ListLiveSources' {..} =+    Prelude.mconcat+      [ "/sourceLocation/",+        Data.toBS sourceLocationName,+        "/liveSources"+      ]++instance Data.ToQuery ListLiveSources where+  toQuery ListLiveSources' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListLiveSourcesResponse' smart constructor.+data ListLiveSourcesResponse = ListLiveSourcesResponse'+  { -- | Lists the live sources.+    items :: Prelude.Maybe [LiveSource],+    -- | Pagination token returned by the list request when results exceed the+    -- maximum allowed. Use the token to fetch the next page of results.+    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 'ListLiveSourcesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'listLiveSourcesResponse_items' - Lists the live sources.+--+-- 'nextToken', 'listLiveSourcesResponse_nextToken' - Pagination token returned by the list request when results exceed the+-- maximum allowed. Use the token to fetch the next page of results.+--+-- 'httpStatus', 'listLiveSourcesResponse_httpStatus' - The response's http status code.+newListLiveSourcesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListLiveSourcesResponse+newListLiveSourcesResponse pHttpStatus_ =+  ListLiveSourcesResponse'+    { items = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Lists the live sources.+listLiveSourcesResponse_items :: Lens.Lens' ListLiveSourcesResponse (Prelude.Maybe [LiveSource])+listLiveSourcesResponse_items = Lens.lens (\ListLiveSourcesResponse' {items} -> items) (\s@ListLiveSourcesResponse' {} a -> s {items = a} :: ListLiveSourcesResponse) Prelude.. Lens.mapping Lens.coerced++-- | Pagination token returned by the list request when results exceed the+-- maximum allowed. Use the token to fetch the next page of results.+listLiveSourcesResponse_nextToken :: Lens.Lens' ListLiveSourcesResponse (Prelude.Maybe Prelude.Text)+listLiveSourcesResponse_nextToken = Lens.lens (\ListLiveSourcesResponse' {nextToken} -> nextToken) (\s@ListLiveSourcesResponse' {} a -> s {nextToken = a} :: ListLiveSourcesResponse)++-- | The response's http status code.+listLiveSourcesResponse_httpStatus :: Lens.Lens' ListLiveSourcesResponse Prelude.Int+listLiveSourcesResponse_httpStatus = Lens.lens (\ListLiveSourcesResponse' {httpStatus} -> httpStatus) (\s@ListLiveSourcesResponse' {} a -> s {httpStatus = a} :: ListLiveSourcesResponse)++instance Prelude.NFData ListLiveSourcesResponse where+  rnf ListLiveSourcesResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/ListPlaybackConfigurations.hs view
@@ -0,0 +1,238 @@+{-# 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.MediaTailor.ListPlaybackConfigurations+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves existing playback configurations. For information about+-- MediaTailor configurations, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/configurations.html Working with Configurations in AWS Elemental MediaTailor>.+--+-- This operation returns paginated results.+module Amazonka.MediaTailor.ListPlaybackConfigurations+  ( -- * Creating a Request+    ListPlaybackConfigurations (..),+    newListPlaybackConfigurations,++    -- * Request Lenses+    listPlaybackConfigurations_maxResults,+    listPlaybackConfigurations_nextToken,++    -- * Destructuring the Response+    ListPlaybackConfigurationsResponse (..),+    newListPlaybackConfigurationsResponse,++    -- * Response Lenses+    listPlaybackConfigurationsResponse_items,+    listPlaybackConfigurationsResponse_nextToken,+    listPlaybackConfigurationsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListPlaybackConfigurations' smart constructor.+data ListPlaybackConfigurations = ListPlaybackConfigurations'+  { -- | The maximum number of playback configurations that you want MediaTailor+    -- to return in response to the current request. If there are more than+    -- @MaxResults@ playback configurations, use the value of @NextToken@ in+    -- the response to get the next page of results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Pagination token returned by the list request when results exceed the+    -- maximum allowed. Use the token to fetch the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListPlaybackConfigurations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listPlaybackConfigurations_maxResults' - The maximum number of playback configurations that you want MediaTailor+-- to return in response to the current request. If there are more than+-- @MaxResults@ playback configurations, use the value of @NextToken@ in+-- the response to get the next page of results.+--+-- 'nextToken', 'listPlaybackConfigurations_nextToken' - Pagination token returned by the list request when results exceed the+-- maximum allowed. Use the token to fetch the next page of results.+newListPlaybackConfigurations ::+  ListPlaybackConfigurations+newListPlaybackConfigurations =+  ListPlaybackConfigurations'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of playback configurations that you want MediaTailor+-- to return in response to the current request. If there are more than+-- @MaxResults@ playback configurations, use the value of @NextToken@ in+-- the response to get the next page of results.+listPlaybackConfigurations_maxResults :: Lens.Lens' ListPlaybackConfigurations (Prelude.Maybe Prelude.Natural)+listPlaybackConfigurations_maxResults = Lens.lens (\ListPlaybackConfigurations' {maxResults} -> maxResults) (\s@ListPlaybackConfigurations' {} a -> s {maxResults = a} :: ListPlaybackConfigurations)++-- | Pagination token returned by the list request when results exceed the+-- maximum allowed. Use the token to fetch the next page of results.+listPlaybackConfigurations_nextToken :: Lens.Lens' ListPlaybackConfigurations (Prelude.Maybe Prelude.Text)+listPlaybackConfigurations_nextToken = Lens.lens (\ListPlaybackConfigurations' {nextToken} -> nextToken) (\s@ListPlaybackConfigurations' {} a -> s {nextToken = a} :: ListPlaybackConfigurations)++instance Core.AWSPager ListPlaybackConfigurations where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listPlaybackConfigurationsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listPlaybackConfigurationsResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listPlaybackConfigurations_nextToken+          Lens..~ rs+          Lens.^? listPlaybackConfigurationsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListPlaybackConfigurations where+  type+    AWSResponse ListPlaybackConfigurations =+      ListPlaybackConfigurationsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListPlaybackConfigurationsResponse'+            Prelude.<$> (x Data..?> "Items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListPlaybackConfigurations where+  hashWithSalt _salt ListPlaybackConfigurations' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListPlaybackConfigurations where+  rnf ListPlaybackConfigurations' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListPlaybackConfigurations where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListPlaybackConfigurations where+  toPath = Prelude.const "/playbackConfigurations"++instance Data.ToQuery ListPlaybackConfigurations where+  toQuery ListPlaybackConfigurations' {..} =+    Prelude.mconcat+      [ "MaxResults" Data.=: maxResults,+        "NextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListPlaybackConfigurationsResponse' smart constructor.+data ListPlaybackConfigurationsResponse = ListPlaybackConfigurationsResponse'+  { -- | Array of playback configurations. This might be all the available+    -- configurations or a subset, depending on the settings that you provide+    -- and the total number of configurations stored.+    items :: Prelude.Maybe [PlaybackConfiguration],+    -- | Pagination token returned by the GET list request when results exceed+    -- the maximum allowed. Use the token to fetch the next page of results.+    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 'ListPlaybackConfigurationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'listPlaybackConfigurationsResponse_items' - Array of playback configurations. This might be all the available+-- configurations or a subset, depending on the settings that you provide+-- and the total number of configurations stored.+--+-- 'nextToken', 'listPlaybackConfigurationsResponse_nextToken' - Pagination token returned by the GET list request when results exceed+-- the maximum allowed. Use the token to fetch the next page of results.+--+-- 'httpStatus', 'listPlaybackConfigurationsResponse_httpStatus' - The response's http status code.+newListPlaybackConfigurationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListPlaybackConfigurationsResponse+newListPlaybackConfigurationsResponse pHttpStatus_ =+  ListPlaybackConfigurationsResponse'+    { items =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Array of playback configurations. This might be all the available+-- configurations or a subset, depending on the settings that you provide+-- and the total number of configurations stored.+listPlaybackConfigurationsResponse_items :: Lens.Lens' ListPlaybackConfigurationsResponse (Prelude.Maybe [PlaybackConfiguration])+listPlaybackConfigurationsResponse_items = Lens.lens (\ListPlaybackConfigurationsResponse' {items} -> items) (\s@ListPlaybackConfigurationsResponse' {} a -> s {items = a} :: ListPlaybackConfigurationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | Pagination token returned by the GET list request when results exceed+-- the maximum allowed. Use the token to fetch the next page of results.+listPlaybackConfigurationsResponse_nextToken :: Lens.Lens' ListPlaybackConfigurationsResponse (Prelude.Maybe Prelude.Text)+listPlaybackConfigurationsResponse_nextToken = Lens.lens (\ListPlaybackConfigurationsResponse' {nextToken} -> nextToken) (\s@ListPlaybackConfigurationsResponse' {} a -> s {nextToken = a} :: ListPlaybackConfigurationsResponse)++-- | The response's http status code.+listPlaybackConfigurationsResponse_httpStatus :: Lens.Lens' ListPlaybackConfigurationsResponse Prelude.Int+listPlaybackConfigurationsResponse_httpStatus = Lens.lens (\ListPlaybackConfigurationsResponse' {httpStatus} -> httpStatus) (\s@ListPlaybackConfigurationsResponse' {} a -> s {httpStatus = a} :: ListPlaybackConfigurationsResponse)++instance+  Prelude.NFData+    ListPlaybackConfigurationsResponse+  where+  rnf ListPlaybackConfigurationsResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/ListPrefetchSchedules.hs view
@@ -0,0 +1,303 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaTailor.ListPrefetchSchedules+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the prefetch schedules for a playback configuration.+--+-- This operation returns paginated results.+module Amazonka.MediaTailor.ListPrefetchSchedules+  ( -- * Creating a Request+    ListPrefetchSchedules (..),+    newListPrefetchSchedules,++    -- * Request Lenses+    listPrefetchSchedules_maxResults,+    listPrefetchSchedules_nextToken,+    listPrefetchSchedules_streamId,+    listPrefetchSchedules_playbackConfigurationName,++    -- * Destructuring the Response+    ListPrefetchSchedulesResponse (..),+    newListPrefetchSchedulesResponse,++    -- * Response Lenses+    listPrefetchSchedulesResponse_items,+    listPrefetchSchedulesResponse_nextToken,+    listPrefetchSchedulesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListPrefetchSchedules' smart constructor.+data ListPrefetchSchedules = ListPrefetchSchedules'+  { -- | The maximum number of prefetch schedules that you want MediaTailor to+    -- return in response to the current request. If there are more than+    -- @MaxResults@ prefetch schedules, use the value of @NextToken@ in the+    -- response to get the next page of results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | (Optional) If the playback configuration has more than @MaxResults@+    -- prefetch schedules, use @NextToken@ to get the second and subsequent+    -- pages of results.+    --+    -- For the first @ListPrefetchSchedulesRequest@ request, omit this value.+    --+    -- For the second and subsequent requests, get the value of @NextToken@+    -- from the previous response and specify that value for @NextToken@ in the+    -- request.+    --+    -- If the previous response didn\'t include a @NextToken@ element, there+    -- are no more prefetch schedules to get.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | An optional filtering parameter whereby MediaTailor filters the prefetch+    -- schedules to include only specific streams.+    streamId :: Prelude.Maybe Prelude.Text,+    -- | Retrieves the prefetch schedule(s) for a specific playback+    -- configuration.+    playbackConfigurationName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListPrefetchSchedules' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listPrefetchSchedules_maxResults' - The maximum number of prefetch schedules that you want MediaTailor to+-- return in response to the current request. If there are more than+-- @MaxResults@ prefetch schedules, use the value of @NextToken@ in the+-- response to get the next page of results.+--+-- 'nextToken', 'listPrefetchSchedules_nextToken' - (Optional) If the playback configuration has more than @MaxResults@+-- prefetch schedules, use @NextToken@ to get the second and subsequent+-- pages of results.+--+-- For the first @ListPrefetchSchedulesRequest@ request, omit this value.+--+-- For the second and subsequent requests, get the value of @NextToken@+-- from the previous response and specify that value for @NextToken@ in the+-- request.+--+-- If the previous response didn\'t include a @NextToken@ element, there+-- are no more prefetch schedules to get.+--+-- 'streamId', 'listPrefetchSchedules_streamId' - An optional filtering parameter whereby MediaTailor filters the prefetch+-- schedules to include only specific streams.+--+-- 'playbackConfigurationName', 'listPrefetchSchedules_playbackConfigurationName' - Retrieves the prefetch schedule(s) for a specific playback+-- configuration.+newListPrefetchSchedules ::+  -- | 'playbackConfigurationName'+  Prelude.Text ->+  ListPrefetchSchedules+newListPrefetchSchedules pPlaybackConfigurationName_ =+  ListPrefetchSchedules'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      streamId = Prelude.Nothing,+      playbackConfigurationName =+        pPlaybackConfigurationName_+    }++-- | The maximum number of prefetch schedules that you want MediaTailor to+-- return in response to the current request. If there are more than+-- @MaxResults@ prefetch schedules, use the value of @NextToken@ in the+-- response to get the next page of results.+listPrefetchSchedules_maxResults :: Lens.Lens' ListPrefetchSchedules (Prelude.Maybe Prelude.Natural)+listPrefetchSchedules_maxResults = Lens.lens (\ListPrefetchSchedules' {maxResults} -> maxResults) (\s@ListPrefetchSchedules' {} a -> s {maxResults = a} :: ListPrefetchSchedules)++-- | (Optional) If the playback configuration has more than @MaxResults@+-- prefetch schedules, use @NextToken@ to get the second and subsequent+-- pages of results.+--+-- For the first @ListPrefetchSchedulesRequest@ request, omit this value.+--+-- For the second and subsequent requests, get the value of @NextToken@+-- from the previous response and specify that value for @NextToken@ in the+-- request.+--+-- If the previous response didn\'t include a @NextToken@ element, there+-- are no more prefetch schedules to get.+listPrefetchSchedules_nextToken :: Lens.Lens' ListPrefetchSchedules (Prelude.Maybe Prelude.Text)+listPrefetchSchedules_nextToken = Lens.lens (\ListPrefetchSchedules' {nextToken} -> nextToken) (\s@ListPrefetchSchedules' {} a -> s {nextToken = a} :: ListPrefetchSchedules)++-- | An optional filtering parameter whereby MediaTailor filters the prefetch+-- schedules to include only specific streams.+listPrefetchSchedules_streamId :: Lens.Lens' ListPrefetchSchedules (Prelude.Maybe Prelude.Text)+listPrefetchSchedules_streamId = Lens.lens (\ListPrefetchSchedules' {streamId} -> streamId) (\s@ListPrefetchSchedules' {} a -> s {streamId = a} :: ListPrefetchSchedules)++-- | Retrieves the prefetch schedule(s) for a specific playback+-- configuration.+listPrefetchSchedules_playbackConfigurationName :: Lens.Lens' ListPrefetchSchedules Prelude.Text+listPrefetchSchedules_playbackConfigurationName = Lens.lens (\ListPrefetchSchedules' {playbackConfigurationName} -> playbackConfigurationName) (\s@ListPrefetchSchedules' {} a -> s {playbackConfigurationName = a} :: ListPrefetchSchedules)++instance Core.AWSPager ListPrefetchSchedules where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listPrefetchSchedulesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listPrefetchSchedulesResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listPrefetchSchedules_nextToken+          Lens..~ rs+          Lens.^? listPrefetchSchedulesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListPrefetchSchedules where+  type+    AWSResponse ListPrefetchSchedules =+      ListPrefetchSchedulesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListPrefetchSchedulesResponse'+            Prelude.<$> (x Data..?> "Items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListPrefetchSchedules where+  hashWithSalt _salt ListPrefetchSchedules' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` streamId+      `Prelude.hashWithSalt` playbackConfigurationName++instance Prelude.NFData ListPrefetchSchedules where+  rnf ListPrefetchSchedules' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf streamId+      `Prelude.seq` Prelude.rnf playbackConfigurationName++instance Data.ToHeaders ListPrefetchSchedules where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListPrefetchSchedules where+  toJSON ListPrefetchSchedules' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            ("StreamId" Data..=) Prelude.<$> streamId+          ]+      )++instance Data.ToPath ListPrefetchSchedules where+  toPath ListPrefetchSchedules' {..} =+    Prelude.mconcat+      [ "/prefetchSchedule/",+        Data.toBS playbackConfigurationName+      ]++instance Data.ToQuery ListPrefetchSchedules where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListPrefetchSchedulesResponse' smart constructor.+data ListPrefetchSchedulesResponse = ListPrefetchSchedulesResponse'+  { -- | Lists the prefetch schedules. An empty @Items@ list doesn\'t mean there+    -- aren\'t more items to fetch, just that that page was empty.+    items :: Prelude.Maybe [PrefetchSchedule],+    -- | Pagination token returned by the list request when results exceed the+    -- maximum allowed. Use the token to fetch the next page of results.+    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 'ListPrefetchSchedulesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'listPrefetchSchedulesResponse_items' - Lists the prefetch schedules. An empty @Items@ list doesn\'t mean there+-- aren\'t more items to fetch, just that that page was empty.+--+-- 'nextToken', 'listPrefetchSchedulesResponse_nextToken' - Pagination token returned by the list request when results exceed the+-- maximum allowed. Use the token to fetch the next page of results.+--+-- 'httpStatus', 'listPrefetchSchedulesResponse_httpStatus' - The response's http status code.+newListPrefetchSchedulesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListPrefetchSchedulesResponse+newListPrefetchSchedulesResponse pHttpStatus_ =+  ListPrefetchSchedulesResponse'+    { items =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Lists the prefetch schedules. An empty @Items@ list doesn\'t mean there+-- aren\'t more items to fetch, just that that page was empty.+listPrefetchSchedulesResponse_items :: Lens.Lens' ListPrefetchSchedulesResponse (Prelude.Maybe [PrefetchSchedule])+listPrefetchSchedulesResponse_items = Lens.lens (\ListPrefetchSchedulesResponse' {items} -> items) (\s@ListPrefetchSchedulesResponse' {} a -> s {items = a} :: ListPrefetchSchedulesResponse) Prelude.. Lens.mapping Lens.coerced++-- | Pagination token returned by the list request when results exceed the+-- maximum allowed. Use the token to fetch the next page of results.+listPrefetchSchedulesResponse_nextToken :: Lens.Lens' ListPrefetchSchedulesResponse (Prelude.Maybe Prelude.Text)+listPrefetchSchedulesResponse_nextToken = Lens.lens (\ListPrefetchSchedulesResponse' {nextToken} -> nextToken) (\s@ListPrefetchSchedulesResponse' {} a -> s {nextToken = a} :: ListPrefetchSchedulesResponse)++-- | The response's http status code.+listPrefetchSchedulesResponse_httpStatus :: Lens.Lens' ListPrefetchSchedulesResponse Prelude.Int+listPrefetchSchedulesResponse_httpStatus = Lens.lens (\ListPrefetchSchedulesResponse' {httpStatus} -> httpStatus) (\s@ListPrefetchSchedulesResponse' {} a -> s {httpStatus = a} :: ListPrefetchSchedulesResponse)++instance Prelude.NFData ListPrefetchSchedulesResponse where+  rnf ListPrefetchSchedulesResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/ListSourceLocations.hs view
@@ -0,0 +1,227 @@+{-# 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.MediaTailor.ListSourceLocations+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the source locations for a channel. A source location defines the+-- host server URL, and contains a list of sources.+--+-- This operation returns paginated results.+module Amazonka.MediaTailor.ListSourceLocations+  ( -- * Creating a Request+    ListSourceLocations (..),+    newListSourceLocations,++    -- * Request Lenses+    listSourceLocations_maxResults,+    listSourceLocations_nextToken,++    -- * Destructuring the Response+    ListSourceLocationsResponse (..),+    newListSourceLocationsResponse,++    -- * Response Lenses+    listSourceLocationsResponse_items,+    listSourceLocationsResponse_nextToken,+    listSourceLocationsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListSourceLocations' smart constructor.+data ListSourceLocations = ListSourceLocations'+  { -- | The maximum number of source locations that you want MediaTailor to+    -- return in response to the current request. If there are more than+    -- @MaxResults@ source locations, use the value of @NextToken@ in the+    -- response to get the next page of results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Pagination token returned by the list request when results exceed the+    -- maximum allowed. Use the token to fetch the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSourceLocations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listSourceLocations_maxResults' - The maximum number of source locations that you want MediaTailor to+-- return in response to the current request. If there are more than+-- @MaxResults@ source locations, use the value of @NextToken@ in the+-- response to get the next page of results.+--+-- 'nextToken', 'listSourceLocations_nextToken' - Pagination token returned by the list request when results exceed the+-- maximum allowed. Use the token to fetch the next page of results.+newListSourceLocations ::+  ListSourceLocations+newListSourceLocations =+  ListSourceLocations'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of source locations that you want MediaTailor to+-- return in response to the current request. If there are more than+-- @MaxResults@ source locations, use the value of @NextToken@ in the+-- response to get the next page of results.+listSourceLocations_maxResults :: Lens.Lens' ListSourceLocations (Prelude.Maybe Prelude.Natural)+listSourceLocations_maxResults = Lens.lens (\ListSourceLocations' {maxResults} -> maxResults) (\s@ListSourceLocations' {} a -> s {maxResults = a} :: ListSourceLocations)++-- | Pagination token returned by the list request when results exceed the+-- maximum allowed. Use the token to fetch the next page of results.+listSourceLocations_nextToken :: Lens.Lens' ListSourceLocations (Prelude.Maybe Prelude.Text)+listSourceLocations_nextToken = Lens.lens (\ListSourceLocations' {nextToken} -> nextToken) (\s@ListSourceLocations' {} a -> s {nextToken = a} :: ListSourceLocations)++instance Core.AWSPager ListSourceLocations where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listSourceLocationsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listSourceLocationsResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listSourceLocations_nextToken+          Lens..~ rs+          Lens.^? listSourceLocationsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListSourceLocations where+  type+    AWSResponse ListSourceLocations =+      ListSourceLocationsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListSourceLocationsResponse'+            Prelude.<$> (x Data..?> "Items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListSourceLocations where+  hashWithSalt _salt ListSourceLocations' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListSourceLocations where+  rnf ListSourceLocations' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListSourceLocations where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListSourceLocations where+  toPath = Prelude.const "/sourceLocations"++instance Data.ToQuery ListSourceLocations where+  toQuery ListSourceLocations' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListSourceLocationsResponse' smart constructor.+data ListSourceLocationsResponse = ListSourceLocationsResponse'+  { -- | A list of source locations.+    items :: Prelude.Maybe [SourceLocation],+    -- | Pagination token returned by the list request when results exceed the+    -- maximum allowed. Use the token to fetch the next page of results.+    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 'ListSourceLocationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'listSourceLocationsResponse_items' - A list of source locations.+--+-- 'nextToken', 'listSourceLocationsResponse_nextToken' - Pagination token returned by the list request when results exceed the+-- maximum allowed. Use the token to fetch the next page of results.+--+-- 'httpStatus', 'listSourceLocationsResponse_httpStatus' - The response's http status code.+newListSourceLocationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListSourceLocationsResponse+newListSourceLocationsResponse pHttpStatus_ =+  ListSourceLocationsResponse'+    { items =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of source locations.+listSourceLocationsResponse_items :: Lens.Lens' ListSourceLocationsResponse (Prelude.Maybe [SourceLocation])+listSourceLocationsResponse_items = Lens.lens (\ListSourceLocationsResponse' {items} -> items) (\s@ListSourceLocationsResponse' {} a -> s {items = a} :: ListSourceLocationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | Pagination token returned by the list request when results exceed the+-- maximum allowed. Use the token to fetch the next page of results.+listSourceLocationsResponse_nextToken :: Lens.Lens' ListSourceLocationsResponse (Prelude.Maybe Prelude.Text)+listSourceLocationsResponse_nextToken = Lens.lens (\ListSourceLocationsResponse' {nextToken} -> nextToken) (\s@ListSourceLocationsResponse' {} a -> s {nextToken = a} :: ListSourceLocationsResponse)++-- | The response's http status code.+listSourceLocationsResponse_httpStatus :: Lens.Lens' ListSourceLocationsResponse Prelude.Int+listSourceLocationsResponse_httpStatus = Lens.lens (\ListSourceLocationsResponse' {httpStatus} -> httpStatus) (\s@ListSourceLocationsResponse' {} a -> s {httpStatus = a} :: ListSourceLocationsResponse)++instance Prelude.NFData ListSourceLocationsResponse where+  rnf ListSourceLocationsResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/ListTagsForResource.hs view
@@ -0,0 +1,172 @@+{-# 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.MediaTailor.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)+--+-- A list of tags that are associated with this resource. Tags are+-- key-value pairs that you can associate with Amazon resources to help+-- with organization, access control, and cost tracking. For more+-- information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+module Amazonka.MediaTailor.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.MediaTailor.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) associated with this 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) associated with this resource.+newListTagsForResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceArn_ =+  ListTagsForResource' {resourceArn = pResourceArn_}++-- | The Amazon Resource Name (ARN) associated with this 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'+  { -- | The tags associated with this resource. Tags are key-value pairs that+    -- you can associate with Amazon resources to help with organization,+    -- access control, and cost tracking. For more information, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'listTagsForResourceResponse_tags' - The tags associated with this resource. Tags are key-value pairs that+-- you can associate with Amazon resources to help with organization,+-- access control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The tags associated with this resource. Tags are key-value pairs that+-- you can associate with Amazon resources to help with organization,+-- access control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+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/MediaTailor/ListVodSources.hs view
@@ -0,0 +1,245 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaTailor.ListVodSources+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the VOD sources contained in a source location. A source+-- represents a piece of content.+--+-- This operation returns paginated results.+module Amazonka.MediaTailor.ListVodSources+  ( -- * Creating a Request+    ListVodSources (..),+    newListVodSources,++    -- * Request Lenses+    listVodSources_maxResults,+    listVodSources_nextToken,+    listVodSources_sourceLocationName,++    -- * Destructuring the Response+    ListVodSourcesResponse (..),+    newListVodSourcesResponse,++    -- * Response Lenses+    listVodSourcesResponse_items,+    listVodSourcesResponse_nextToken,+    listVodSourcesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListVodSources' smart constructor.+data ListVodSources = ListVodSources'+  { -- | The maximum number of VOD sources that you want MediaTailor to return in+    -- response to the current request. If there are more than @MaxResults@ VOD+    -- sources, use the value of @NextToken@ in the response to get the next+    -- page of results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Pagination token returned by the list request when results exceed the+    -- maximum allowed. Use the token to fetch the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the source location associated with this VOD Source list.+    sourceLocationName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListVodSources' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listVodSources_maxResults' - The maximum number of VOD sources that you want MediaTailor to return in+-- response to the current request. If there are more than @MaxResults@ VOD+-- sources, use the value of @NextToken@ in the response to get the next+-- page of results.+--+-- 'nextToken', 'listVodSources_nextToken' - Pagination token returned by the list request when results exceed the+-- maximum allowed. Use the token to fetch the next page of results.+--+-- 'sourceLocationName', 'listVodSources_sourceLocationName' - The name of the source location associated with this VOD Source list.+newListVodSources ::+  -- | 'sourceLocationName'+  Prelude.Text ->+  ListVodSources+newListVodSources pSourceLocationName_ =+  ListVodSources'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      sourceLocationName = pSourceLocationName_+    }++-- | The maximum number of VOD sources that you want MediaTailor to return in+-- response to the current request. If there are more than @MaxResults@ VOD+-- sources, use the value of @NextToken@ in the response to get the next+-- page of results.+listVodSources_maxResults :: Lens.Lens' ListVodSources (Prelude.Maybe Prelude.Natural)+listVodSources_maxResults = Lens.lens (\ListVodSources' {maxResults} -> maxResults) (\s@ListVodSources' {} a -> s {maxResults = a} :: ListVodSources)++-- | Pagination token returned by the list request when results exceed the+-- maximum allowed. Use the token to fetch the next page of results.+listVodSources_nextToken :: Lens.Lens' ListVodSources (Prelude.Maybe Prelude.Text)+listVodSources_nextToken = Lens.lens (\ListVodSources' {nextToken} -> nextToken) (\s@ListVodSources' {} a -> s {nextToken = a} :: ListVodSources)++-- | The name of the source location associated with this VOD Source list.+listVodSources_sourceLocationName :: Lens.Lens' ListVodSources Prelude.Text+listVodSources_sourceLocationName = Lens.lens (\ListVodSources' {sourceLocationName} -> sourceLocationName) (\s@ListVodSources' {} a -> s {sourceLocationName = a} :: ListVodSources)++instance Core.AWSPager ListVodSources where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listVodSourcesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listVodSourcesResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listVodSources_nextToken+          Lens..~ rs+          Lens.^? listVodSourcesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListVodSources where+  type+    AWSResponse ListVodSources =+      ListVodSourcesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListVodSourcesResponse'+            Prelude.<$> (x Data..?> "Items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListVodSources where+  hashWithSalt _salt ListVodSources' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` sourceLocationName++instance Prelude.NFData ListVodSources where+  rnf ListVodSources' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf sourceLocationName++instance Data.ToHeaders ListVodSources where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListVodSources where+  toPath ListVodSources' {..} =+    Prelude.mconcat+      [ "/sourceLocation/",+        Data.toBS sourceLocationName,+        "/vodSources"+      ]++instance Data.ToQuery ListVodSources where+  toQuery ListVodSources' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListVodSourcesResponse' smart constructor.+data ListVodSourcesResponse = ListVodSourcesResponse'+  { -- | Lists the VOD sources.+    items :: Prelude.Maybe [VodSource],+    -- | Pagination token returned by the list request when results exceed the+    -- maximum allowed. Use the token to fetch the next page of results.+    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 'ListVodSourcesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'listVodSourcesResponse_items' - Lists the VOD sources.+--+-- 'nextToken', 'listVodSourcesResponse_nextToken' - Pagination token returned by the list request when results exceed the+-- maximum allowed. Use the token to fetch the next page of results.+--+-- 'httpStatus', 'listVodSourcesResponse_httpStatus' - The response's http status code.+newListVodSourcesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListVodSourcesResponse+newListVodSourcesResponse pHttpStatus_ =+  ListVodSourcesResponse'+    { items = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Lists the VOD sources.+listVodSourcesResponse_items :: Lens.Lens' ListVodSourcesResponse (Prelude.Maybe [VodSource])+listVodSourcesResponse_items = Lens.lens (\ListVodSourcesResponse' {items} -> items) (\s@ListVodSourcesResponse' {} a -> s {items = a} :: ListVodSourcesResponse) Prelude.. Lens.mapping Lens.coerced++-- | Pagination token returned by the list request when results exceed the+-- maximum allowed. Use the token to fetch the next page of results.+listVodSourcesResponse_nextToken :: Lens.Lens' ListVodSourcesResponse (Prelude.Maybe Prelude.Text)+listVodSourcesResponse_nextToken = Lens.lens (\ListVodSourcesResponse' {nextToken} -> nextToken) (\s@ListVodSourcesResponse' {} a -> s {nextToken = a} :: ListVodSourcesResponse)++-- | The response's http status code.+listVodSourcesResponse_httpStatus :: Lens.Lens' ListVodSourcesResponse Prelude.Int+listVodSourcesResponse_httpStatus = Lens.lens (\ListVodSourcesResponse' {httpStatus} -> httpStatus) (\s@ListVodSourcesResponse' {} a -> s {httpStatus = a} :: ListVodSourcesResponse)++instance Prelude.NFData ListVodSourcesResponse where+  rnf ListVodSourcesResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/PutChannelPolicy.hs view
@@ -0,0 +1,173 @@+{-# 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.MediaTailor.PutChannelPolicy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an IAM policy for the channel. IAM policies are used to control+-- access to your channel.+module Amazonka.MediaTailor.PutChannelPolicy+  ( -- * Creating a Request+    PutChannelPolicy (..),+    newPutChannelPolicy,++    -- * Request Lenses+    putChannelPolicy_channelName,+    putChannelPolicy_policy,++    -- * Destructuring the Response+    PutChannelPolicyResponse (..),+    newPutChannelPolicyResponse,++    -- * Response Lenses+    putChannelPolicyResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutChannelPolicy' smart constructor.+data PutChannelPolicy = PutChannelPolicy'+  { -- | The channel name associated with this Channel Policy.+    channelName :: Prelude.Text,+    -- | Adds an IAM role that determines the permissions of your channel.+    policy :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutChannelPolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channelName', 'putChannelPolicy_channelName' - The channel name associated with this Channel Policy.+--+-- 'policy', 'putChannelPolicy_policy' - Adds an IAM role that determines the permissions of your channel.+newPutChannelPolicy ::+  -- | 'channelName'+  Prelude.Text ->+  -- | 'policy'+  Prelude.Text ->+  PutChannelPolicy+newPutChannelPolicy pChannelName_ pPolicy_ =+  PutChannelPolicy'+    { channelName = pChannelName_,+      policy = pPolicy_+    }++-- | The channel name associated with this Channel Policy.+putChannelPolicy_channelName :: Lens.Lens' PutChannelPolicy Prelude.Text+putChannelPolicy_channelName = Lens.lens (\PutChannelPolicy' {channelName} -> channelName) (\s@PutChannelPolicy' {} a -> s {channelName = a} :: PutChannelPolicy)++-- | Adds an IAM role that determines the permissions of your channel.+putChannelPolicy_policy :: Lens.Lens' PutChannelPolicy Prelude.Text+putChannelPolicy_policy = Lens.lens (\PutChannelPolicy' {policy} -> policy) (\s@PutChannelPolicy' {} a -> s {policy = a} :: PutChannelPolicy)++instance Core.AWSRequest PutChannelPolicy where+  type+    AWSResponse PutChannelPolicy =+      PutChannelPolicyResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          PutChannelPolicyResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable PutChannelPolicy where+  hashWithSalt _salt PutChannelPolicy' {..} =+    _salt+      `Prelude.hashWithSalt` channelName+      `Prelude.hashWithSalt` policy++instance Prelude.NFData PutChannelPolicy where+  rnf PutChannelPolicy' {..} =+    Prelude.rnf channelName+      `Prelude.seq` Prelude.rnf policy++instance Data.ToHeaders PutChannelPolicy where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON PutChannelPolicy where+  toJSON PutChannelPolicy' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("Policy" Data..= policy)]+      )++instance Data.ToPath PutChannelPolicy where+  toPath PutChannelPolicy' {..} =+    Prelude.mconcat+      ["/channel/", Data.toBS channelName, "/policy"]++instance Data.ToQuery PutChannelPolicy where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutChannelPolicyResponse' smart constructor.+data PutChannelPolicyResponse = PutChannelPolicyResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutChannelPolicyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putChannelPolicyResponse_httpStatus' - The response's http status code.+newPutChannelPolicyResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  PutChannelPolicyResponse+newPutChannelPolicyResponse pHttpStatus_ =+  PutChannelPolicyResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+putChannelPolicyResponse_httpStatus :: Lens.Lens' PutChannelPolicyResponse Prelude.Int+putChannelPolicyResponse_httpStatus = Lens.lens (\PutChannelPolicyResponse' {httpStatus} -> httpStatus) (\s@PutChannelPolicyResponse' {} a -> s {httpStatus = a} :: PutChannelPolicyResponse)++instance Prelude.NFData PutChannelPolicyResponse where+  rnf PutChannelPolicyResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/PutPlaybackConfiguration.hs view
@@ -0,0 +1,801 @@+{-# 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.MediaTailor.PutPlaybackConfiguration+-- 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 playback configuration. For information about MediaTailor+-- configurations, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/configurations.html Working with configurations in AWS Elemental MediaTailor>.+module Amazonka.MediaTailor.PutPlaybackConfiguration+  ( -- * Creating a Request+    PutPlaybackConfiguration (..),+    newPutPlaybackConfiguration,++    -- * Request Lenses+    putPlaybackConfiguration_adDecisionServerUrl,+    putPlaybackConfiguration_availSuppression,+    putPlaybackConfiguration_bumper,+    putPlaybackConfiguration_cdnConfiguration,+    putPlaybackConfiguration_configurationAliases,+    putPlaybackConfiguration_dashConfiguration,+    putPlaybackConfiguration_livePreRollConfiguration,+    putPlaybackConfiguration_manifestProcessingRules,+    putPlaybackConfiguration_personalizationThresholdSeconds,+    putPlaybackConfiguration_slateAdUrl,+    putPlaybackConfiguration_tags,+    putPlaybackConfiguration_transcodeProfileName,+    putPlaybackConfiguration_videoContentSourceUrl,+    putPlaybackConfiguration_name,++    -- * Destructuring the Response+    PutPlaybackConfigurationResponse (..),+    newPutPlaybackConfigurationResponse,++    -- * Response Lenses+    putPlaybackConfigurationResponse_adDecisionServerUrl,+    putPlaybackConfigurationResponse_availSuppression,+    putPlaybackConfigurationResponse_bumper,+    putPlaybackConfigurationResponse_cdnConfiguration,+    putPlaybackConfigurationResponse_configurationAliases,+    putPlaybackConfigurationResponse_dashConfiguration,+    putPlaybackConfigurationResponse_hlsConfiguration,+    putPlaybackConfigurationResponse_livePreRollConfiguration,+    putPlaybackConfigurationResponse_logConfiguration,+    putPlaybackConfigurationResponse_manifestProcessingRules,+    putPlaybackConfigurationResponse_name,+    putPlaybackConfigurationResponse_personalizationThresholdSeconds,+    putPlaybackConfigurationResponse_playbackConfigurationArn,+    putPlaybackConfigurationResponse_playbackEndpointPrefix,+    putPlaybackConfigurationResponse_sessionInitializationEndpointPrefix,+    putPlaybackConfigurationResponse_slateAdUrl,+    putPlaybackConfigurationResponse_tags,+    putPlaybackConfigurationResponse_transcodeProfileName,+    putPlaybackConfigurationResponse_videoContentSourceUrl,+    putPlaybackConfigurationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutPlaybackConfiguration' smart constructor.+data PutPlaybackConfiguration = PutPlaybackConfiguration'+  { -- | The URL for the ad decision server (ADS). This includes the+    -- specification of static parameters and placeholders for dynamic+    -- parameters. AWS Elemental MediaTailor substitutes player-specific and+    -- session-specific parameters as needed when calling the ADS. Alternately,+    -- for testing you can provide a static VAST URL. The maximum length is+    -- 25,000 characters.+    adDecisionServerUrl :: Prelude.Maybe Prelude.Text,+    -- | The configuration for avail suppression, also known as ad suppression.+    -- For more information about ad suppression, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Suppression>.+    availSuppression :: Prelude.Maybe AvailSuppression,+    -- | The configuration for bumpers. Bumpers are short audio or video clips+    -- that play at the start or before the end of an ad break. To learn more+    -- about bumpers, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/bumpers.html Bumpers>.+    bumper :: Prelude.Maybe Bumper,+    -- | The configuration for using a content delivery network (CDN), like+    -- Amazon CloudFront, for content and ad segment management.+    cdnConfiguration :: Prelude.Maybe CdnConfiguration,+    -- | The player parameters and aliases used as dynamic variables during+    -- session initialization. For more information, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/variables-domain.html Domain Variables>.+    configurationAliases :: Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | The configuration for DASH content.+    dashConfiguration :: Prelude.Maybe DashConfigurationForPut,+    -- | The configuration for pre-roll ad insertion.+    livePreRollConfiguration :: Prelude.Maybe LivePreRollConfiguration,+    -- | The configuration for manifest processing rules. Manifest processing+    -- rules enable customization of the personalized manifests created by+    -- MediaTailor.+    manifestProcessingRules :: Prelude.Maybe ManifestProcessingRules,+    -- | Defines the maximum duration of underfilled ad time (in seconds) allowed+    -- in an ad break. If the duration of underfilled ad time exceeds the+    -- personalization threshold, then the personalization of the ad break is+    -- abandoned and the underlying content is shown. This feature applies to+    -- /ad replacement/ in live and VOD streams, rather than ad insertion,+    -- because it relies on an underlying content stream. For more information+    -- about ad break behavior, including ad replacement and insertion, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Behavior in AWS Elemental MediaTailor>.+    personalizationThresholdSeconds :: Prelude.Maybe Prelude.Natural,+    -- | The URL for a high-quality video asset to transcode and use to fill in+    -- time that\'s not used by ads. AWS Elemental MediaTailor shows the slate+    -- to fill in gaps in media content. Configuring the slate is optional for+    -- non-VPAID configurations. For VPAID, the slate is required because+    -- MediaTailor provides it in the slots that are designated for dynamic ad+    -- content. The slate must be a high-quality asset that contains both audio+    -- and video.+    slateAdUrl :: Prelude.Maybe Prelude.Text,+    -- | The tags to assign to the playback configuration. Tags are key-value+    -- pairs that you can associate with Amazon resources to help with+    -- organization, access control, and cost tracking. For more information,+    -- see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name that is used to associate this playback configuration with a+    -- custom transcode profile. This overrides the dynamic transcoding+    -- defaults of MediaTailor. Use this only if you have already set up custom+    -- profiles with the help of AWS Support.+    transcodeProfileName :: Prelude.Maybe Prelude.Text,+    -- | The URL prefix for the parent manifest for the stream, minus the asset+    -- ID. The maximum length is 512 characters.+    videoContentSourceUrl :: Prelude.Maybe Prelude.Text,+    -- | The identifier for the playback configuration.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutPlaybackConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'adDecisionServerUrl', 'putPlaybackConfiguration_adDecisionServerUrl' - The URL for the ad decision server (ADS). This includes the+-- specification of static parameters and placeholders for dynamic+-- parameters. AWS Elemental MediaTailor substitutes player-specific and+-- session-specific parameters as needed when calling the ADS. Alternately,+-- for testing you can provide a static VAST URL. The maximum length is+-- 25,000 characters.+--+-- 'availSuppression', 'putPlaybackConfiguration_availSuppression' - The configuration for avail suppression, also known as ad suppression.+-- For more information about ad suppression, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Suppression>.+--+-- 'bumper', 'putPlaybackConfiguration_bumper' - The configuration for bumpers. Bumpers are short audio or video clips+-- that play at the start or before the end of an ad break. To learn more+-- about bumpers, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/bumpers.html Bumpers>.+--+-- 'cdnConfiguration', 'putPlaybackConfiguration_cdnConfiguration' - The configuration for using a content delivery network (CDN), like+-- Amazon CloudFront, for content and ad segment management.+--+-- 'configurationAliases', 'putPlaybackConfiguration_configurationAliases' - The player parameters and aliases used as dynamic variables during+-- session initialization. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/variables-domain.html Domain Variables>.+--+-- 'dashConfiguration', 'putPlaybackConfiguration_dashConfiguration' - The configuration for DASH content.+--+-- 'livePreRollConfiguration', 'putPlaybackConfiguration_livePreRollConfiguration' - The configuration for pre-roll ad insertion.+--+-- 'manifestProcessingRules', 'putPlaybackConfiguration_manifestProcessingRules' - The configuration for manifest processing rules. Manifest processing+-- rules enable customization of the personalized manifests created by+-- MediaTailor.+--+-- 'personalizationThresholdSeconds', 'putPlaybackConfiguration_personalizationThresholdSeconds' - Defines the maximum duration of underfilled ad time (in seconds) allowed+-- in an ad break. If the duration of underfilled ad time exceeds the+-- personalization threshold, then the personalization of the ad break is+-- abandoned and the underlying content is shown. This feature applies to+-- /ad replacement/ in live and VOD streams, rather than ad insertion,+-- because it relies on an underlying content stream. For more information+-- about ad break behavior, including ad replacement and insertion, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Behavior in AWS Elemental MediaTailor>.+--+-- 'slateAdUrl', 'putPlaybackConfiguration_slateAdUrl' - The URL for a high-quality video asset to transcode and use to fill in+-- time that\'s not used by ads. AWS Elemental MediaTailor shows the slate+-- to fill in gaps in media content. Configuring the slate is optional for+-- non-VPAID configurations. For VPAID, the slate is required because+-- MediaTailor provides it in the slots that are designated for dynamic ad+-- content. The slate must be a high-quality asset that contains both audio+-- and video.+--+-- 'tags', 'putPlaybackConfiguration_tags' - The tags to assign to the playback configuration. Tags are key-value+-- pairs that you can associate with Amazon resources to help with+-- organization, access control, and cost tracking. For more information,+-- see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+--+-- 'transcodeProfileName', 'putPlaybackConfiguration_transcodeProfileName' - The name that is used to associate this playback configuration with a+-- custom transcode profile. This overrides the dynamic transcoding+-- defaults of MediaTailor. Use this only if you have already set up custom+-- profiles with the help of AWS Support.+--+-- 'videoContentSourceUrl', 'putPlaybackConfiguration_videoContentSourceUrl' - The URL prefix for the parent manifest for the stream, minus the asset+-- ID. The maximum length is 512 characters.+--+-- 'name', 'putPlaybackConfiguration_name' - The identifier for the playback configuration.+newPutPlaybackConfiguration ::+  -- | 'name'+  Prelude.Text ->+  PutPlaybackConfiguration+newPutPlaybackConfiguration pName_ =+  PutPlaybackConfiguration'+    { adDecisionServerUrl =+        Prelude.Nothing,+      availSuppression = Prelude.Nothing,+      bumper = Prelude.Nothing,+      cdnConfiguration = Prelude.Nothing,+      configurationAliases = Prelude.Nothing,+      dashConfiguration = Prelude.Nothing,+      livePreRollConfiguration = Prelude.Nothing,+      manifestProcessingRules = Prelude.Nothing,+      personalizationThresholdSeconds = Prelude.Nothing,+      slateAdUrl = Prelude.Nothing,+      tags = Prelude.Nothing,+      transcodeProfileName = Prelude.Nothing,+      videoContentSourceUrl = Prelude.Nothing,+      name = pName_+    }++-- | The URL for the ad decision server (ADS). This includes the+-- specification of static parameters and placeholders for dynamic+-- parameters. AWS Elemental MediaTailor substitutes player-specific and+-- session-specific parameters as needed when calling the ADS. Alternately,+-- for testing you can provide a static VAST URL. The maximum length is+-- 25,000 characters.+putPlaybackConfiguration_adDecisionServerUrl :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe Prelude.Text)+putPlaybackConfiguration_adDecisionServerUrl = Lens.lens (\PutPlaybackConfiguration' {adDecisionServerUrl} -> adDecisionServerUrl) (\s@PutPlaybackConfiguration' {} a -> s {adDecisionServerUrl = a} :: PutPlaybackConfiguration)++-- | The configuration for avail suppression, also known as ad suppression.+-- For more information about ad suppression, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Suppression>.+putPlaybackConfiguration_availSuppression :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe AvailSuppression)+putPlaybackConfiguration_availSuppression = Lens.lens (\PutPlaybackConfiguration' {availSuppression} -> availSuppression) (\s@PutPlaybackConfiguration' {} a -> s {availSuppression = a} :: PutPlaybackConfiguration)++-- | The configuration for bumpers. Bumpers are short audio or video clips+-- that play at the start or before the end of an ad break. To learn more+-- about bumpers, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/bumpers.html Bumpers>.+putPlaybackConfiguration_bumper :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe Bumper)+putPlaybackConfiguration_bumper = Lens.lens (\PutPlaybackConfiguration' {bumper} -> bumper) (\s@PutPlaybackConfiguration' {} a -> s {bumper = a} :: PutPlaybackConfiguration)++-- | The configuration for using a content delivery network (CDN), like+-- Amazon CloudFront, for content and ad segment management.+putPlaybackConfiguration_cdnConfiguration :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe CdnConfiguration)+putPlaybackConfiguration_cdnConfiguration = Lens.lens (\PutPlaybackConfiguration' {cdnConfiguration} -> cdnConfiguration) (\s@PutPlaybackConfiguration' {} a -> s {cdnConfiguration = a} :: PutPlaybackConfiguration)++-- | The player parameters and aliases used as dynamic variables during+-- session initialization. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/variables-domain.html Domain Variables>.+putPlaybackConfiguration_configurationAliases :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)))+putPlaybackConfiguration_configurationAliases = Lens.lens (\PutPlaybackConfiguration' {configurationAliases} -> configurationAliases) (\s@PutPlaybackConfiguration' {} a -> s {configurationAliases = a} :: PutPlaybackConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The configuration for DASH content.+putPlaybackConfiguration_dashConfiguration :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe DashConfigurationForPut)+putPlaybackConfiguration_dashConfiguration = Lens.lens (\PutPlaybackConfiguration' {dashConfiguration} -> dashConfiguration) (\s@PutPlaybackConfiguration' {} a -> s {dashConfiguration = a} :: PutPlaybackConfiguration)++-- | The configuration for pre-roll ad insertion.+putPlaybackConfiguration_livePreRollConfiguration :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe LivePreRollConfiguration)+putPlaybackConfiguration_livePreRollConfiguration = Lens.lens (\PutPlaybackConfiguration' {livePreRollConfiguration} -> livePreRollConfiguration) (\s@PutPlaybackConfiguration' {} a -> s {livePreRollConfiguration = a} :: PutPlaybackConfiguration)++-- | The configuration for manifest processing rules. Manifest processing+-- rules enable customization of the personalized manifests created by+-- MediaTailor.+putPlaybackConfiguration_manifestProcessingRules :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe ManifestProcessingRules)+putPlaybackConfiguration_manifestProcessingRules = Lens.lens (\PutPlaybackConfiguration' {manifestProcessingRules} -> manifestProcessingRules) (\s@PutPlaybackConfiguration' {} a -> s {manifestProcessingRules = a} :: PutPlaybackConfiguration)++-- | Defines the maximum duration of underfilled ad time (in seconds) allowed+-- in an ad break. If the duration of underfilled ad time exceeds the+-- personalization threshold, then the personalization of the ad break is+-- abandoned and the underlying content is shown. This feature applies to+-- /ad replacement/ in live and VOD streams, rather than ad insertion,+-- because it relies on an underlying content stream. For more information+-- about ad break behavior, including ad replacement and insertion, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Behavior in AWS Elemental MediaTailor>.+putPlaybackConfiguration_personalizationThresholdSeconds :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe Prelude.Natural)+putPlaybackConfiguration_personalizationThresholdSeconds = Lens.lens (\PutPlaybackConfiguration' {personalizationThresholdSeconds} -> personalizationThresholdSeconds) (\s@PutPlaybackConfiguration' {} a -> s {personalizationThresholdSeconds = a} :: PutPlaybackConfiguration)++-- | The URL for a high-quality video asset to transcode and use to fill in+-- time that\'s not used by ads. AWS Elemental MediaTailor shows the slate+-- to fill in gaps in media content. Configuring the slate is optional for+-- non-VPAID configurations. For VPAID, the slate is required because+-- MediaTailor provides it in the slots that are designated for dynamic ad+-- content. The slate must be a high-quality asset that contains both audio+-- and video.+putPlaybackConfiguration_slateAdUrl :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe Prelude.Text)+putPlaybackConfiguration_slateAdUrl = Lens.lens (\PutPlaybackConfiguration' {slateAdUrl} -> slateAdUrl) (\s@PutPlaybackConfiguration' {} a -> s {slateAdUrl = a} :: PutPlaybackConfiguration)++-- | The tags to assign to the playback configuration. Tags are key-value+-- pairs that you can associate with Amazon resources to help with+-- organization, access control, and cost tracking. For more information,+-- see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+putPlaybackConfiguration_tags :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+putPlaybackConfiguration_tags = Lens.lens (\PutPlaybackConfiguration' {tags} -> tags) (\s@PutPlaybackConfiguration' {} a -> s {tags = a} :: PutPlaybackConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The name that is used to associate this playback configuration with a+-- custom transcode profile. This overrides the dynamic transcoding+-- defaults of MediaTailor. Use this only if you have already set up custom+-- profiles with the help of AWS Support.+putPlaybackConfiguration_transcodeProfileName :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe Prelude.Text)+putPlaybackConfiguration_transcodeProfileName = Lens.lens (\PutPlaybackConfiguration' {transcodeProfileName} -> transcodeProfileName) (\s@PutPlaybackConfiguration' {} a -> s {transcodeProfileName = a} :: PutPlaybackConfiguration)++-- | The URL prefix for the parent manifest for the stream, minus the asset+-- ID. The maximum length is 512 characters.+putPlaybackConfiguration_videoContentSourceUrl :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe Prelude.Text)+putPlaybackConfiguration_videoContentSourceUrl = Lens.lens (\PutPlaybackConfiguration' {videoContentSourceUrl} -> videoContentSourceUrl) (\s@PutPlaybackConfiguration' {} a -> s {videoContentSourceUrl = a} :: PutPlaybackConfiguration)++-- | The identifier for the playback configuration.+putPlaybackConfiguration_name :: Lens.Lens' PutPlaybackConfiguration Prelude.Text+putPlaybackConfiguration_name = Lens.lens (\PutPlaybackConfiguration' {name} -> name) (\s@PutPlaybackConfiguration' {} a -> s {name = a} :: PutPlaybackConfiguration)++instance Core.AWSRequest PutPlaybackConfiguration where+  type+    AWSResponse PutPlaybackConfiguration =+      PutPlaybackConfigurationResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          PutPlaybackConfigurationResponse'+            Prelude.<$> (x Data..?> "AdDecisionServerUrl")+            Prelude.<*> (x Data..?> "AvailSuppression")+            Prelude.<*> (x Data..?> "Bumper")+            Prelude.<*> (x Data..?> "CdnConfiguration")+            Prelude.<*> ( x+                            Data..?> "ConfigurationAliases"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "DashConfiguration")+            Prelude.<*> (x Data..?> "HlsConfiguration")+            Prelude.<*> (x Data..?> "LivePreRollConfiguration")+            Prelude.<*> (x Data..?> "LogConfiguration")+            Prelude.<*> (x Data..?> "ManifestProcessingRules")+            Prelude.<*> (x Data..?> "Name")+            Prelude.<*> (x Data..?> "PersonalizationThresholdSeconds")+            Prelude.<*> (x Data..?> "PlaybackConfigurationArn")+            Prelude.<*> (x Data..?> "PlaybackEndpointPrefix")+            Prelude.<*> (x Data..?> "SessionInitializationEndpointPrefix")+            Prelude.<*> (x Data..?> "SlateAdUrl")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "TranscodeProfileName")+            Prelude.<*> (x Data..?> "VideoContentSourceUrl")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable PutPlaybackConfiguration where+  hashWithSalt _salt PutPlaybackConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` adDecisionServerUrl+      `Prelude.hashWithSalt` availSuppression+      `Prelude.hashWithSalt` bumper+      `Prelude.hashWithSalt` cdnConfiguration+      `Prelude.hashWithSalt` configurationAliases+      `Prelude.hashWithSalt` dashConfiguration+      `Prelude.hashWithSalt` livePreRollConfiguration+      `Prelude.hashWithSalt` manifestProcessingRules+      `Prelude.hashWithSalt` personalizationThresholdSeconds+      `Prelude.hashWithSalt` slateAdUrl+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` transcodeProfileName+      `Prelude.hashWithSalt` videoContentSourceUrl+      `Prelude.hashWithSalt` name++instance Prelude.NFData PutPlaybackConfiguration where+  rnf PutPlaybackConfiguration' {..} =+    Prelude.rnf adDecisionServerUrl+      `Prelude.seq` Prelude.rnf availSuppression+      `Prelude.seq` Prelude.rnf bumper+      `Prelude.seq` Prelude.rnf cdnConfiguration+      `Prelude.seq` Prelude.rnf configurationAliases+      `Prelude.seq` Prelude.rnf dashConfiguration+      `Prelude.seq` Prelude.rnf livePreRollConfiguration+      `Prelude.seq` Prelude.rnf manifestProcessingRules+      `Prelude.seq` Prelude.rnf personalizationThresholdSeconds+      `Prelude.seq` Prelude.rnf slateAdUrl+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf transcodeProfileName+      `Prelude.seq` Prelude.rnf videoContentSourceUrl+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders PutPlaybackConfiguration where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON PutPlaybackConfiguration where+  toJSON PutPlaybackConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AdDecisionServerUrl" Data..=)+              Prelude.<$> adDecisionServerUrl,+            ("AvailSuppression" Data..=)+              Prelude.<$> availSuppression,+            ("Bumper" Data..=) Prelude.<$> bumper,+            ("CdnConfiguration" Data..=)+              Prelude.<$> cdnConfiguration,+            ("ConfigurationAliases" Data..=)+              Prelude.<$> configurationAliases,+            ("DashConfiguration" Data..=)+              Prelude.<$> dashConfiguration,+            ("LivePreRollConfiguration" Data..=)+              Prelude.<$> livePreRollConfiguration,+            ("ManifestProcessingRules" Data..=)+              Prelude.<$> manifestProcessingRules,+            ("PersonalizationThresholdSeconds" Data..=)+              Prelude.<$> personalizationThresholdSeconds,+            ("SlateAdUrl" Data..=) Prelude.<$> slateAdUrl,+            ("tags" Data..=) Prelude.<$> tags,+            ("TranscodeProfileName" Data..=)+              Prelude.<$> transcodeProfileName,+            ("VideoContentSourceUrl" Data..=)+              Prelude.<$> videoContentSourceUrl,+            Prelude.Just ("Name" Data..= name)+          ]+      )++instance Data.ToPath PutPlaybackConfiguration where+  toPath = Prelude.const "/playbackConfiguration"++instance Data.ToQuery PutPlaybackConfiguration where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutPlaybackConfigurationResponse' smart constructor.+data PutPlaybackConfigurationResponse = PutPlaybackConfigurationResponse'+  { -- | The URL for the ad decision server (ADS). This includes the+    -- specification of static parameters and placeholders for dynamic+    -- parameters. AWS Elemental MediaTailor substitutes player-specific and+    -- session-specific parameters as needed when calling the ADS. Alternately,+    -- for testing you can provide a static VAST URL. The maximum length is+    -- 25,000 characters.+    adDecisionServerUrl :: Prelude.Maybe Prelude.Text,+    -- | The configuration for avail suppression, also known as ad suppression.+    -- For more information about ad suppression, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Suppression>.+    availSuppression :: Prelude.Maybe AvailSuppression,+    -- | The configuration for bumpers. Bumpers are short audio or video clips+    -- that play at the start or before the end of an ad break. To learn more+    -- about bumpers, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/bumpers.html Bumpers>.+    bumper :: Prelude.Maybe Bumper,+    -- | The configuration for using a content delivery network (CDN), like+    -- Amazon CloudFront, for content and ad segment management.+    cdnConfiguration :: Prelude.Maybe CdnConfiguration,+    -- | The player parameters and aliases used as dynamic variables during+    -- session initialization. For more information, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/variables-domain.html Domain Variables>.+    configurationAliases :: Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | The configuration for DASH content.+    dashConfiguration :: Prelude.Maybe DashConfiguration,+    -- | The configuration for HLS content.+    hlsConfiguration :: Prelude.Maybe HlsConfiguration,+    -- | The configuration for pre-roll ad insertion.+    livePreRollConfiguration :: Prelude.Maybe LivePreRollConfiguration,+    -- | The Amazon CloudWatch log settings for a playback configuration.+    logConfiguration :: Prelude.Maybe LogConfiguration,+    -- | The configuration for manifest processing rules. Manifest processing+    -- rules enable customization of the personalized manifests created by+    -- MediaTailor.+    manifestProcessingRules :: Prelude.Maybe ManifestProcessingRules,+    -- | The identifier for the playback configuration.+    name :: Prelude.Maybe Prelude.Text,+    -- | Defines the maximum duration of underfilled ad time (in seconds) allowed+    -- in an ad break. If the duration of underfilled ad time exceeds the+    -- personalization threshold, then the personalization of the ad break is+    -- abandoned and the underlying content is shown. This feature applies to+    -- /ad replacement/ in live and VOD streams, rather than ad insertion,+    -- because it relies on an underlying content stream. For more information+    -- about ad break behavior, including ad replacement and insertion, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Behavior in AWS Elemental MediaTailor>.+    personalizationThresholdSeconds :: Prelude.Maybe Prelude.Natural,+    -- | The Amazon Resource Name (ARN) associated with the playback+    -- configuration.+    playbackConfigurationArn :: Prelude.Maybe Prelude.Text,+    -- | The playback endpoint prefix associated with the playback configuration.+    playbackEndpointPrefix :: Prelude.Maybe Prelude.Text,+    -- | The session initialization endpoint prefix associated with the playback+    -- configuration.+    sessionInitializationEndpointPrefix :: Prelude.Maybe Prelude.Text,+    -- | The URL for a high-quality video asset to transcode and use to fill in+    -- time that\'s not used by ads. AWS Elemental MediaTailor shows the slate+    -- to fill in gaps in media content. Configuring the slate is optional for+    -- non-VPAID configurations. For VPAID, the slate is required because+    -- MediaTailor provides it in the slots that are designated for dynamic ad+    -- content. The slate must be a high-quality asset that contains both audio+    -- and video.+    slateAdUrl :: Prelude.Maybe Prelude.Text,+    -- | The tags to assign to the playback configuration. Tags are key-value+    -- pairs that you can associate with Amazon resources to help with+    -- organization, access control, and cost tracking. For more information,+    -- see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name that is used to associate this playback configuration with a+    -- custom transcode profile. This overrides the dynamic transcoding+    -- defaults of MediaTailor. Use this only if you have already set up custom+    -- profiles with the help of AWS Support.+    transcodeProfileName :: Prelude.Maybe Prelude.Text,+    -- | The URL prefix for the parent manifest for the stream, minus the asset+    -- ID. The maximum length is 512 characters.+    videoContentSourceUrl :: 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 'PutPlaybackConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'adDecisionServerUrl', 'putPlaybackConfigurationResponse_adDecisionServerUrl' - The URL for the ad decision server (ADS). This includes the+-- specification of static parameters and placeholders for dynamic+-- parameters. AWS Elemental MediaTailor substitutes player-specific and+-- session-specific parameters as needed when calling the ADS. Alternately,+-- for testing you can provide a static VAST URL. The maximum length is+-- 25,000 characters.+--+-- 'availSuppression', 'putPlaybackConfigurationResponse_availSuppression' - The configuration for avail suppression, also known as ad suppression.+-- For more information about ad suppression, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Suppression>.+--+-- 'bumper', 'putPlaybackConfigurationResponse_bumper' - The configuration for bumpers. Bumpers are short audio or video clips+-- that play at the start or before the end of an ad break. To learn more+-- about bumpers, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/bumpers.html Bumpers>.+--+-- 'cdnConfiguration', 'putPlaybackConfigurationResponse_cdnConfiguration' - The configuration for using a content delivery network (CDN), like+-- Amazon CloudFront, for content and ad segment management.+--+-- 'configurationAliases', 'putPlaybackConfigurationResponse_configurationAliases' - The player parameters and aliases used as dynamic variables during+-- session initialization. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/variables-domain.html Domain Variables>.+--+-- 'dashConfiguration', 'putPlaybackConfigurationResponse_dashConfiguration' - The configuration for DASH content.+--+-- 'hlsConfiguration', 'putPlaybackConfigurationResponse_hlsConfiguration' - The configuration for HLS content.+--+-- 'livePreRollConfiguration', 'putPlaybackConfigurationResponse_livePreRollConfiguration' - The configuration for pre-roll ad insertion.+--+-- 'logConfiguration', 'putPlaybackConfigurationResponse_logConfiguration' - The Amazon CloudWatch log settings for a playback configuration.+--+-- 'manifestProcessingRules', 'putPlaybackConfigurationResponse_manifestProcessingRules' - The configuration for manifest processing rules. Manifest processing+-- rules enable customization of the personalized manifests created by+-- MediaTailor.+--+-- 'name', 'putPlaybackConfigurationResponse_name' - The identifier for the playback configuration.+--+-- 'personalizationThresholdSeconds', 'putPlaybackConfigurationResponse_personalizationThresholdSeconds' - Defines the maximum duration of underfilled ad time (in seconds) allowed+-- in an ad break. If the duration of underfilled ad time exceeds the+-- personalization threshold, then the personalization of the ad break is+-- abandoned and the underlying content is shown. This feature applies to+-- /ad replacement/ in live and VOD streams, rather than ad insertion,+-- because it relies on an underlying content stream. For more information+-- about ad break behavior, including ad replacement and insertion, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Behavior in AWS Elemental MediaTailor>.+--+-- 'playbackConfigurationArn', 'putPlaybackConfigurationResponse_playbackConfigurationArn' - The Amazon Resource Name (ARN) associated with the playback+-- configuration.+--+-- 'playbackEndpointPrefix', 'putPlaybackConfigurationResponse_playbackEndpointPrefix' - The playback endpoint prefix associated with the playback configuration.+--+-- 'sessionInitializationEndpointPrefix', 'putPlaybackConfigurationResponse_sessionInitializationEndpointPrefix' - The session initialization endpoint prefix associated with the playback+-- configuration.+--+-- 'slateAdUrl', 'putPlaybackConfigurationResponse_slateAdUrl' - The URL for a high-quality video asset to transcode and use to fill in+-- time that\'s not used by ads. AWS Elemental MediaTailor shows the slate+-- to fill in gaps in media content. Configuring the slate is optional for+-- non-VPAID configurations. For VPAID, the slate is required because+-- MediaTailor provides it in the slots that are designated for dynamic ad+-- content. The slate must be a high-quality asset that contains both audio+-- and video.+--+-- 'tags', 'putPlaybackConfigurationResponse_tags' - The tags to assign to the playback configuration. Tags are key-value+-- pairs that you can associate with Amazon resources to help with+-- organization, access control, and cost tracking. For more information,+-- see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+--+-- 'transcodeProfileName', 'putPlaybackConfigurationResponse_transcodeProfileName' - The name that is used to associate this playback configuration with a+-- custom transcode profile. This overrides the dynamic transcoding+-- defaults of MediaTailor. Use this only if you have already set up custom+-- profiles with the help of AWS Support.+--+-- 'videoContentSourceUrl', 'putPlaybackConfigurationResponse_videoContentSourceUrl' - The URL prefix for the parent manifest for the stream, minus the asset+-- ID. The maximum length is 512 characters.+--+-- 'httpStatus', 'putPlaybackConfigurationResponse_httpStatus' - The response's http status code.+newPutPlaybackConfigurationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  PutPlaybackConfigurationResponse+newPutPlaybackConfigurationResponse pHttpStatus_ =+  PutPlaybackConfigurationResponse'+    { adDecisionServerUrl =+        Prelude.Nothing,+      availSuppression = Prelude.Nothing,+      bumper = Prelude.Nothing,+      cdnConfiguration = Prelude.Nothing,+      configurationAliases = Prelude.Nothing,+      dashConfiguration = Prelude.Nothing,+      hlsConfiguration = Prelude.Nothing,+      livePreRollConfiguration =+        Prelude.Nothing,+      logConfiguration = Prelude.Nothing,+      manifestProcessingRules = Prelude.Nothing,+      name = Prelude.Nothing,+      personalizationThresholdSeconds =+        Prelude.Nothing,+      playbackConfigurationArn =+        Prelude.Nothing,+      playbackEndpointPrefix = Prelude.Nothing,+      sessionInitializationEndpointPrefix =+        Prelude.Nothing,+      slateAdUrl = Prelude.Nothing,+      tags = Prelude.Nothing,+      transcodeProfileName = Prelude.Nothing,+      videoContentSourceUrl = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The URL for the ad decision server (ADS). This includes the+-- specification of static parameters and placeholders for dynamic+-- parameters. AWS Elemental MediaTailor substitutes player-specific and+-- session-specific parameters as needed when calling the ADS. Alternately,+-- for testing you can provide a static VAST URL. The maximum length is+-- 25,000 characters.+putPlaybackConfigurationResponse_adDecisionServerUrl :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)+putPlaybackConfigurationResponse_adDecisionServerUrl = Lens.lens (\PutPlaybackConfigurationResponse' {adDecisionServerUrl} -> adDecisionServerUrl) (\s@PutPlaybackConfigurationResponse' {} a -> s {adDecisionServerUrl = a} :: PutPlaybackConfigurationResponse)++-- | The configuration for avail suppression, also known as ad suppression.+-- For more information about ad suppression, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Suppression>.+putPlaybackConfigurationResponse_availSuppression :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe AvailSuppression)+putPlaybackConfigurationResponse_availSuppression = Lens.lens (\PutPlaybackConfigurationResponse' {availSuppression} -> availSuppression) (\s@PutPlaybackConfigurationResponse' {} a -> s {availSuppression = a} :: PutPlaybackConfigurationResponse)++-- | The configuration for bumpers. Bumpers are short audio or video clips+-- that play at the start or before the end of an ad break. To learn more+-- about bumpers, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/bumpers.html Bumpers>.+putPlaybackConfigurationResponse_bumper :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe Bumper)+putPlaybackConfigurationResponse_bumper = Lens.lens (\PutPlaybackConfigurationResponse' {bumper} -> bumper) (\s@PutPlaybackConfigurationResponse' {} a -> s {bumper = a} :: PutPlaybackConfigurationResponse)++-- | The configuration for using a content delivery network (CDN), like+-- Amazon CloudFront, for content and ad segment management.+putPlaybackConfigurationResponse_cdnConfiguration :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe CdnConfiguration)+putPlaybackConfigurationResponse_cdnConfiguration = Lens.lens (\PutPlaybackConfigurationResponse' {cdnConfiguration} -> cdnConfiguration) (\s@PutPlaybackConfigurationResponse' {} a -> s {cdnConfiguration = a} :: PutPlaybackConfigurationResponse)++-- | The player parameters and aliases used as dynamic variables during+-- session initialization. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/variables-domain.html Domain Variables>.+putPlaybackConfigurationResponse_configurationAliases :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)))+putPlaybackConfigurationResponse_configurationAliases = Lens.lens (\PutPlaybackConfigurationResponse' {configurationAliases} -> configurationAliases) (\s@PutPlaybackConfigurationResponse' {} a -> s {configurationAliases = a} :: PutPlaybackConfigurationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The configuration for DASH content.+putPlaybackConfigurationResponse_dashConfiguration :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe DashConfiguration)+putPlaybackConfigurationResponse_dashConfiguration = Lens.lens (\PutPlaybackConfigurationResponse' {dashConfiguration} -> dashConfiguration) (\s@PutPlaybackConfigurationResponse' {} a -> s {dashConfiguration = a} :: PutPlaybackConfigurationResponse)++-- | The configuration for HLS content.+putPlaybackConfigurationResponse_hlsConfiguration :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe HlsConfiguration)+putPlaybackConfigurationResponse_hlsConfiguration = Lens.lens (\PutPlaybackConfigurationResponse' {hlsConfiguration} -> hlsConfiguration) (\s@PutPlaybackConfigurationResponse' {} a -> s {hlsConfiguration = a} :: PutPlaybackConfigurationResponse)++-- | The configuration for pre-roll ad insertion.+putPlaybackConfigurationResponse_livePreRollConfiguration :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe LivePreRollConfiguration)+putPlaybackConfigurationResponse_livePreRollConfiguration = Lens.lens (\PutPlaybackConfigurationResponse' {livePreRollConfiguration} -> livePreRollConfiguration) (\s@PutPlaybackConfigurationResponse' {} a -> s {livePreRollConfiguration = a} :: PutPlaybackConfigurationResponse)++-- | The Amazon CloudWatch log settings for a playback configuration.+putPlaybackConfigurationResponse_logConfiguration :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe LogConfiguration)+putPlaybackConfigurationResponse_logConfiguration = Lens.lens (\PutPlaybackConfigurationResponse' {logConfiguration} -> logConfiguration) (\s@PutPlaybackConfigurationResponse' {} a -> s {logConfiguration = a} :: PutPlaybackConfigurationResponse)++-- | The configuration for manifest processing rules. Manifest processing+-- rules enable customization of the personalized manifests created by+-- MediaTailor.+putPlaybackConfigurationResponse_manifestProcessingRules :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe ManifestProcessingRules)+putPlaybackConfigurationResponse_manifestProcessingRules = Lens.lens (\PutPlaybackConfigurationResponse' {manifestProcessingRules} -> manifestProcessingRules) (\s@PutPlaybackConfigurationResponse' {} a -> s {manifestProcessingRules = a} :: PutPlaybackConfigurationResponse)++-- | The identifier for the playback configuration.+putPlaybackConfigurationResponse_name :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)+putPlaybackConfigurationResponse_name = Lens.lens (\PutPlaybackConfigurationResponse' {name} -> name) (\s@PutPlaybackConfigurationResponse' {} a -> s {name = a} :: PutPlaybackConfigurationResponse)++-- | Defines the maximum duration of underfilled ad time (in seconds) allowed+-- in an ad break. If the duration of underfilled ad time exceeds the+-- personalization threshold, then the personalization of the ad break is+-- abandoned and the underlying content is shown. This feature applies to+-- /ad replacement/ in live and VOD streams, rather than ad insertion,+-- because it relies on an underlying content stream. For more information+-- about ad break behavior, including ad replacement and insertion, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Behavior in AWS Elemental MediaTailor>.+putPlaybackConfigurationResponse_personalizationThresholdSeconds :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe Prelude.Natural)+putPlaybackConfigurationResponse_personalizationThresholdSeconds = Lens.lens (\PutPlaybackConfigurationResponse' {personalizationThresholdSeconds} -> personalizationThresholdSeconds) (\s@PutPlaybackConfigurationResponse' {} a -> s {personalizationThresholdSeconds = a} :: PutPlaybackConfigurationResponse)++-- | The Amazon Resource Name (ARN) associated with the playback+-- configuration.+putPlaybackConfigurationResponse_playbackConfigurationArn :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)+putPlaybackConfigurationResponse_playbackConfigurationArn = Lens.lens (\PutPlaybackConfigurationResponse' {playbackConfigurationArn} -> playbackConfigurationArn) (\s@PutPlaybackConfigurationResponse' {} a -> s {playbackConfigurationArn = a} :: PutPlaybackConfigurationResponse)++-- | The playback endpoint prefix associated with the playback configuration.+putPlaybackConfigurationResponse_playbackEndpointPrefix :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)+putPlaybackConfigurationResponse_playbackEndpointPrefix = Lens.lens (\PutPlaybackConfigurationResponse' {playbackEndpointPrefix} -> playbackEndpointPrefix) (\s@PutPlaybackConfigurationResponse' {} a -> s {playbackEndpointPrefix = a} :: PutPlaybackConfigurationResponse)++-- | The session initialization endpoint prefix associated with the playback+-- configuration.+putPlaybackConfigurationResponse_sessionInitializationEndpointPrefix :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)+putPlaybackConfigurationResponse_sessionInitializationEndpointPrefix = Lens.lens (\PutPlaybackConfigurationResponse' {sessionInitializationEndpointPrefix} -> sessionInitializationEndpointPrefix) (\s@PutPlaybackConfigurationResponse' {} a -> s {sessionInitializationEndpointPrefix = a} :: PutPlaybackConfigurationResponse)++-- | The URL for a high-quality video asset to transcode and use to fill in+-- time that\'s not used by ads. AWS Elemental MediaTailor shows the slate+-- to fill in gaps in media content. Configuring the slate is optional for+-- non-VPAID configurations. For VPAID, the slate is required because+-- MediaTailor provides it in the slots that are designated for dynamic ad+-- content. The slate must be a high-quality asset that contains both audio+-- and video.+putPlaybackConfigurationResponse_slateAdUrl :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)+putPlaybackConfigurationResponse_slateAdUrl = Lens.lens (\PutPlaybackConfigurationResponse' {slateAdUrl} -> slateAdUrl) (\s@PutPlaybackConfigurationResponse' {} a -> s {slateAdUrl = a} :: PutPlaybackConfigurationResponse)++-- | The tags to assign to the playback configuration. Tags are key-value+-- pairs that you can associate with Amazon resources to help with+-- organization, access control, and cost tracking. For more information,+-- see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+putPlaybackConfigurationResponse_tags :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+putPlaybackConfigurationResponse_tags = Lens.lens (\PutPlaybackConfigurationResponse' {tags} -> tags) (\s@PutPlaybackConfigurationResponse' {} a -> s {tags = a} :: PutPlaybackConfigurationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The name that is used to associate this playback configuration with a+-- custom transcode profile. This overrides the dynamic transcoding+-- defaults of MediaTailor. Use this only if you have already set up custom+-- profiles with the help of AWS Support.+putPlaybackConfigurationResponse_transcodeProfileName :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)+putPlaybackConfigurationResponse_transcodeProfileName = Lens.lens (\PutPlaybackConfigurationResponse' {transcodeProfileName} -> transcodeProfileName) (\s@PutPlaybackConfigurationResponse' {} a -> s {transcodeProfileName = a} :: PutPlaybackConfigurationResponse)++-- | The URL prefix for the parent manifest for the stream, minus the asset+-- ID. The maximum length is 512 characters.+putPlaybackConfigurationResponse_videoContentSourceUrl :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)+putPlaybackConfigurationResponse_videoContentSourceUrl = Lens.lens (\PutPlaybackConfigurationResponse' {videoContentSourceUrl} -> videoContentSourceUrl) (\s@PutPlaybackConfigurationResponse' {} a -> s {videoContentSourceUrl = a} :: PutPlaybackConfigurationResponse)++-- | The response's http status code.+putPlaybackConfigurationResponse_httpStatus :: Lens.Lens' PutPlaybackConfigurationResponse Prelude.Int+putPlaybackConfigurationResponse_httpStatus = Lens.lens (\PutPlaybackConfigurationResponse' {httpStatus} -> httpStatus) (\s@PutPlaybackConfigurationResponse' {} a -> s {httpStatus = a} :: PutPlaybackConfigurationResponse)++instance+  Prelude.NFData+    PutPlaybackConfigurationResponse+  where+  rnf PutPlaybackConfigurationResponse' {..} =+    Prelude.rnf adDecisionServerUrl+      `Prelude.seq` Prelude.rnf availSuppression+      `Prelude.seq` Prelude.rnf bumper+      `Prelude.seq` Prelude.rnf cdnConfiguration+      `Prelude.seq` Prelude.rnf configurationAliases+      `Prelude.seq` Prelude.rnf dashConfiguration+      `Prelude.seq` Prelude.rnf hlsConfiguration+      `Prelude.seq` Prelude.rnf livePreRollConfiguration+      `Prelude.seq` Prelude.rnf logConfiguration+      `Prelude.seq` Prelude.rnf manifestProcessingRules+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf personalizationThresholdSeconds+      `Prelude.seq` Prelude.rnf playbackConfigurationArn+      `Prelude.seq` Prelude.rnf playbackEndpointPrefix+      `Prelude.seq` Prelude.rnf+        sessionInitializationEndpointPrefix+      `Prelude.seq` Prelude.rnf slateAdUrl+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf transcodeProfileName+      `Prelude.seq` Prelude.rnf+        videoContentSourceUrl+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/StartChannel.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.MediaTailor.StartChannel+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Starts a channel. For information about MediaTailor channels, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/channel-assembly-channels.html Working with channels>+-- in the /MediaTailor User Guide/.+module Amazonka.MediaTailor.StartChannel+  ( -- * Creating a Request+    StartChannel (..),+    newStartChannel,++    -- * Request Lenses+    startChannel_channelName,++    -- * Destructuring the Response+    StartChannelResponse (..),+    newStartChannelResponse,++    -- * Response Lenses+    startChannelResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartChannel' smart constructor.+data StartChannel = StartChannel'+  { -- | The name of the channel.+    channelName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartChannel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channelName', 'startChannel_channelName' - The name of the channel.+newStartChannel ::+  -- | 'channelName'+  Prelude.Text ->+  StartChannel+newStartChannel pChannelName_ =+  StartChannel' {channelName = pChannelName_}++-- | The name of the channel.+startChannel_channelName :: Lens.Lens' StartChannel Prelude.Text+startChannel_channelName = Lens.lens (\StartChannel' {channelName} -> channelName) (\s@StartChannel' {} a -> s {channelName = a} :: StartChannel)++instance Core.AWSRequest StartChannel where+  type AWSResponse StartChannel = StartChannelResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          StartChannelResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable StartChannel where+  hashWithSalt _salt StartChannel' {..} =+    _salt `Prelude.hashWithSalt` channelName++instance Prelude.NFData StartChannel where+  rnf StartChannel' {..} = Prelude.rnf channelName++instance Data.ToHeaders StartChannel where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StartChannel where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath StartChannel where+  toPath StartChannel' {..} =+    Prelude.mconcat+      ["/channel/", Data.toBS channelName, "/start"]++instance Data.ToQuery StartChannel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartChannelResponse' smart constructor.+data StartChannelResponse = StartChannelResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartChannelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'startChannelResponse_httpStatus' - The response's http status code.+newStartChannelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StartChannelResponse+newStartChannelResponse pHttpStatus_ =+  StartChannelResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+startChannelResponse_httpStatus :: Lens.Lens' StartChannelResponse Prelude.Int+startChannelResponse_httpStatus = Lens.lens (\StartChannelResponse' {httpStatus} -> httpStatus) (\s@StartChannelResponse' {} a -> s {httpStatus = a} :: StartChannelResponse)++instance Prelude.NFData StartChannelResponse where+  rnf StartChannelResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/StopChannel.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.MediaTailor.StopChannel+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Stops a channel. For information about MediaTailor channels, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/channel-assembly-channels.html Working with channels>+-- in the /MediaTailor User Guide/.+module Amazonka.MediaTailor.StopChannel+  ( -- * Creating a Request+    StopChannel (..),+    newStopChannel,++    -- * Request Lenses+    stopChannel_channelName,++    -- * Destructuring the Response+    StopChannelResponse (..),+    newStopChannelResponse,++    -- * Response Lenses+    stopChannelResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStopChannel' smart constructor.+data StopChannel = StopChannel'+  { -- | The name of the channel.+    channelName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopChannel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channelName', 'stopChannel_channelName' - The name of the channel.+newStopChannel ::+  -- | 'channelName'+  Prelude.Text ->+  StopChannel+newStopChannel pChannelName_ =+  StopChannel' {channelName = pChannelName_}++-- | The name of the channel.+stopChannel_channelName :: Lens.Lens' StopChannel Prelude.Text+stopChannel_channelName = Lens.lens (\StopChannel' {channelName} -> channelName) (\s@StopChannel' {} a -> s {channelName = a} :: StopChannel)++instance Core.AWSRequest StopChannel where+  type AWSResponse StopChannel = StopChannelResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          StopChannelResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable StopChannel where+  hashWithSalt _salt StopChannel' {..} =+    _salt `Prelude.hashWithSalt` channelName++instance Prelude.NFData StopChannel where+  rnf StopChannel' {..} = Prelude.rnf channelName++instance Data.ToHeaders StopChannel where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StopChannel where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath StopChannel where+  toPath StopChannel' {..} =+    Prelude.mconcat+      ["/channel/", Data.toBS channelName, "/stop"]++instance Data.ToQuery StopChannel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStopChannelResponse' smart constructor.+data StopChannelResponse = StopChannelResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopChannelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'stopChannelResponse_httpStatus' - The response's http status code.+newStopChannelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StopChannelResponse+newStopChannelResponse pHttpStatus_ =+  StopChannelResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+stopChannelResponse_httpStatus :: Lens.Lens' StopChannelResponse Prelude.Int+stopChannelResponse_httpStatus = Lens.lens (\StopChannelResponse' {httpStatus} -> httpStatus) (\s@StopChannelResponse' {} a -> s {httpStatus = a} :: StopChannelResponse)++instance Prelude.NFData StopChannelResponse where+  rnf StopChannelResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/TagResource.hs view
@@ -0,0 +1,154 @@+{-# 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.MediaTailor.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)+--+-- The resource to tag. Tags are key-value pairs that you can associate+-- with Amazon resources to help with organization, access control, and+-- cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+module Amazonka.MediaTailor.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.MediaTailor.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) associated with the resource.+    resourceArn :: Prelude.Text,+    -- | The tags to assign to the resource. Tags are key-value pairs that you+    -- can associate with Amazon resources to help with organization, access+    -- control, and cost tracking. For more information, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+    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) associated with the resource.+--+-- 'tags', 'tagResource_tags' - The tags to assign to the resource. Tags are key-value pairs that you+-- can associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+newTagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  TagResource+newTagResource pResourceArn_ =+  TagResource'+    { resourceArn = pResourceArn_,+      tags = Prelude.mempty+    }++-- | The Amazon Resource Name (ARN) associated with the resource.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | The tags to assign to the resource. Tags are key-value pairs that you+-- can associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+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/MediaTailor/Types.hs view
@@ -0,0 +1,499 @@+{-# 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.MediaTailor.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.MediaTailor.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _BadRequestException,++    -- * AccessType+    AccessType (..),++    -- * ChannelState+    ChannelState (..),++    -- * MessageType+    MessageType (..),++    -- * Mode+    Mode (..),++    -- * Operator+    Operator (..),++    -- * OriginManifestType+    OriginManifestType (..),++    -- * PlaybackMode+    PlaybackMode (..),++    -- * RelativePosition+    RelativePosition (..),++    -- * ScheduleEntryType+    ScheduleEntryType (..),++    -- * Tier+    Tier (..),++    -- * Type+    Type (..),++    -- * AccessConfiguration+    AccessConfiguration (..),+    newAccessConfiguration,+    accessConfiguration_accessType,+    accessConfiguration_secretsManagerAccessTokenConfiguration,++    -- * AdBreak+    AdBreak (..),+    newAdBreak,+    adBreak_messageType,+    adBreak_offsetMillis,+    adBreak_slate,+    adBreak_spliceInsertMessage,+    adBreak_timeSignalMessage,++    -- * AdMarkerPassthrough+    AdMarkerPassthrough (..),+    newAdMarkerPassthrough,+    adMarkerPassthrough_enabled,++    -- * Alert+    Alert (..),+    newAlert,+    alert_alertCode,+    alert_alertMessage,+    alert_lastModifiedTime,+    alert_relatedResourceArns,+    alert_resourceArn,++    -- * AvailMatchingCriteria+    AvailMatchingCriteria (..),+    newAvailMatchingCriteria,+    availMatchingCriteria_dynamicVariable,+    availMatchingCriteria_operator,++    -- * AvailSuppression+    AvailSuppression (..),+    newAvailSuppression,+    availSuppression_mode,+    availSuppression_value,++    -- * Bumper+    Bumper (..),+    newBumper,+    bumper_endUrl,+    bumper_startUrl,++    -- * CdnConfiguration+    CdnConfiguration (..),+    newCdnConfiguration,+    cdnConfiguration_adSegmentUrlPrefix,+    cdnConfiguration_contentSegmentUrlPrefix,++    -- * Channel+    Channel (..),+    newChannel,+    channel_creationTime,+    channel_fillerSlate,+    channel_lastModifiedTime,+    channel_tags,+    channel_arn,+    channel_channelName,+    channel_channelState,+    channel_outputs,+    channel_playbackMode,+    channel_tier,++    -- * DashConfiguration+    DashConfiguration (..),+    newDashConfiguration,+    dashConfiguration_manifestEndpointPrefix,+    dashConfiguration_mpdLocation,+    dashConfiguration_originManifestType,++    -- * DashConfigurationForPut+    DashConfigurationForPut (..),+    newDashConfigurationForPut,+    dashConfigurationForPut_mpdLocation,+    dashConfigurationForPut_originManifestType,++    -- * DashPlaylistSettings+    DashPlaylistSettings (..),+    newDashPlaylistSettings,+    dashPlaylistSettings_manifestWindowSeconds,+    dashPlaylistSettings_minBufferTimeSeconds,+    dashPlaylistSettings_minUpdatePeriodSeconds,+    dashPlaylistSettings_suggestedPresentationDelaySeconds,++    -- * DefaultSegmentDeliveryConfiguration+    DefaultSegmentDeliveryConfiguration (..),+    newDefaultSegmentDeliveryConfiguration,+    defaultSegmentDeliveryConfiguration_baseUrl,++    -- * HlsConfiguration+    HlsConfiguration (..),+    newHlsConfiguration,+    hlsConfiguration_manifestEndpointPrefix,++    -- * HlsPlaylistSettings+    HlsPlaylistSettings (..),+    newHlsPlaylistSettings,+    hlsPlaylistSettings_manifestWindowSeconds,++    -- * HttpConfiguration+    HttpConfiguration (..),+    newHttpConfiguration,+    httpConfiguration_baseUrl,++    -- * HttpPackageConfiguration+    HttpPackageConfiguration (..),+    newHttpPackageConfiguration,+    httpPackageConfiguration_path,+    httpPackageConfiguration_sourceGroup,+    httpPackageConfiguration_type,++    -- * LivePreRollConfiguration+    LivePreRollConfiguration (..),+    newLivePreRollConfiguration,+    livePreRollConfiguration_adDecisionServerUrl,+    livePreRollConfiguration_maxDurationSeconds,++    -- * LiveSource+    LiveSource (..),+    newLiveSource,+    liveSource_creationTime,+    liveSource_lastModifiedTime,+    liveSource_tags,+    liveSource_arn,+    liveSource_httpPackageConfigurations,+    liveSource_liveSourceName,+    liveSource_sourceLocationName,++    -- * LogConfiguration+    LogConfiguration (..),+    newLogConfiguration,+    logConfiguration_percentEnabled,++    -- * ManifestProcessingRules+    ManifestProcessingRules (..),+    newManifestProcessingRules,+    manifestProcessingRules_adMarkerPassthrough,++    -- * PlaybackConfiguration+    PlaybackConfiguration (..),+    newPlaybackConfiguration,+    playbackConfiguration_adDecisionServerUrl,+    playbackConfiguration_availSuppression,+    playbackConfiguration_bumper,+    playbackConfiguration_cdnConfiguration,+    playbackConfiguration_configurationAliases,+    playbackConfiguration_dashConfiguration,+    playbackConfiguration_hlsConfiguration,+    playbackConfiguration_livePreRollConfiguration,+    playbackConfiguration_logConfiguration,+    playbackConfiguration_manifestProcessingRules,+    playbackConfiguration_name,+    playbackConfiguration_personalizationThresholdSeconds,+    playbackConfiguration_playbackConfigurationArn,+    playbackConfiguration_playbackEndpointPrefix,+    playbackConfiguration_sessionInitializationEndpointPrefix,+    playbackConfiguration_slateAdUrl,+    playbackConfiguration_tags,+    playbackConfiguration_transcodeProfileName,+    playbackConfiguration_videoContentSourceUrl,++    -- * PrefetchConsumption+    PrefetchConsumption (..),+    newPrefetchConsumption,+    prefetchConsumption_availMatchingCriteria,+    prefetchConsumption_startTime,+    prefetchConsumption_endTime,++    -- * PrefetchRetrieval+    PrefetchRetrieval (..),+    newPrefetchRetrieval,+    prefetchRetrieval_dynamicVariables,+    prefetchRetrieval_startTime,+    prefetchRetrieval_endTime,++    -- * PrefetchSchedule+    PrefetchSchedule (..),+    newPrefetchSchedule,+    prefetchSchedule_streamId,+    prefetchSchedule_arn,+    prefetchSchedule_consumption,+    prefetchSchedule_name,+    prefetchSchedule_playbackConfigurationName,+    prefetchSchedule_retrieval,++    -- * RequestOutputItem+    RequestOutputItem (..),+    newRequestOutputItem,+    requestOutputItem_dashPlaylistSettings,+    requestOutputItem_hlsPlaylistSettings,+    requestOutputItem_manifestName,+    requestOutputItem_sourceGroup,++    -- * ResponseOutputItem+    ResponseOutputItem (..),+    newResponseOutputItem,+    responseOutputItem_dashPlaylistSettings,+    responseOutputItem_hlsPlaylistSettings,+    responseOutputItem_manifestName,+    responseOutputItem_playbackUrl,+    responseOutputItem_sourceGroup,++    -- * ScheduleAdBreak+    ScheduleAdBreak (..),+    newScheduleAdBreak,+    scheduleAdBreak_approximateDurationSeconds,+    scheduleAdBreak_approximateStartTime,+    scheduleAdBreak_sourceLocationName,+    scheduleAdBreak_vodSourceName,++    -- * ScheduleConfiguration+    ScheduleConfiguration (..),+    newScheduleConfiguration,+    scheduleConfiguration_transition,++    -- * ScheduleEntry+    ScheduleEntry (..),+    newScheduleEntry,+    scheduleEntry_approximateDurationSeconds,+    scheduleEntry_approximateStartTime,+    scheduleEntry_liveSourceName,+    scheduleEntry_scheduleAdBreaks,+    scheduleEntry_scheduleEntryType,+    scheduleEntry_vodSourceName,+    scheduleEntry_arn,+    scheduleEntry_channelName,+    scheduleEntry_programName,+    scheduleEntry_sourceLocationName,++    -- * SecretsManagerAccessTokenConfiguration+    SecretsManagerAccessTokenConfiguration (..),+    newSecretsManagerAccessTokenConfiguration,+    secretsManagerAccessTokenConfiguration_headerName,+    secretsManagerAccessTokenConfiguration_secretArn,+    secretsManagerAccessTokenConfiguration_secretStringKey,++    -- * SegmentDeliveryConfiguration+    SegmentDeliveryConfiguration (..),+    newSegmentDeliveryConfiguration,+    segmentDeliveryConfiguration_baseUrl,+    segmentDeliveryConfiguration_name,++    -- * SegmentationDescriptor+    SegmentationDescriptor (..),+    newSegmentationDescriptor,+    segmentationDescriptor_segmentNum,+    segmentationDescriptor_segmentationEventId,+    segmentationDescriptor_segmentationTypeId,+    segmentationDescriptor_segmentationUpid,+    segmentationDescriptor_segmentationUpidType,+    segmentationDescriptor_segmentsExpected,+    segmentationDescriptor_subSegmentNum,+    segmentationDescriptor_subSegmentsExpected,++    -- * SlateSource+    SlateSource (..),+    newSlateSource,+    slateSource_sourceLocationName,+    slateSource_vodSourceName,++    -- * SourceLocation+    SourceLocation (..),+    newSourceLocation,+    sourceLocation_accessConfiguration,+    sourceLocation_creationTime,+    sourceLocation_defaultSegmentDeliveryConfiguration,+    sourceLocation_lastModifiedTime,+    sourceLocation_segmentDeliveryConfigurations,+    sourceLocation_tags,+    sourceLocation_arn,+    sourceLocation_httpConfiguration,+    sourceLocation_sourceLocationName,++    -- * SpliceInsertMessage+    SpliceInsertMessage (..),+    newSpliceInsertMessage,+    spliceInsertMessage_availNum,+    spliceInsertMessage_availsExpected,+    spliceInsertMessage_spliceEventId,+    spliceInsertMessage_uniqueProgramId,++    -- * TimeSignalMessage+    TimeSignalMessage (..),+    newTimeSignalMessage,+    timeSignalMessage_segmentationDescriptors,++    -- * Transition+    Transition (..),+    newTransition,+    transition_durationMillis,+    transition_relativeProgram,+    transition_scheduledStartTimeMillis,+    transition_relativePosition,+    transition_type,++    -- * VodSource+    VodSource (..),+    newVodSource,+    vodSource_creationTime,+    vodSource_lastModifiedTime,+    vodSource_tags,+    vodSource_arn,+    vodSource_httpPackageConfigurations,+    vodSource_sourceLocationName,+    vodSource_vodSourceName,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.MediaTailor.Types.AccessConfiguration+import Amazonka.MediaTailor.Types.AccessType+import Amazonka.MediaTailor.Types.AdBreak+import Amazonka.MediaTailor.Types.AdMarkerPassthrough+import Amazonka.MediaTailor.Types.Alert+import Amazonka.MediaTailor.Types.AvailMatchingCriteria+import Amazonka.MediaTailor.Types.AvailSuppression+import Amazonka.MediaTailor.Types.Bumper+import Amazonka.MediaTailor.Types.CdnConfiguration+import Amazonka.MediaTailor.Types.Channel+import Amazonka.MediaTailor.Types.ChannelState+import Amazonka.MediaTailor.Types.DashConfiguration+import Amazonka.MediaTailor.Types.DashConfigurationForPut+import Amazonka.MediaTailor.Types.DashPlaylistSettings+import Amazonka.MediaTailor.Types.DefaultSegmentDeliveryConfiguration+import Amazonka.MediaTailor.Types.HlsConfiguration+import Amazonka.MediaTailor.Types.HlsPlaylistSettings+import Amazonka.MediaTailor.Types.HttpConfiguration+import Amazonka.MediaTailor.Types.HttpPackageConfiguration+import Amazonka.MediaTailor.Types.LivePreRollConfiguration+import Amazonka.MediaTailor.Types.LiveSource+import Amazonka.MediaTailor.Types.LogConfiguration+import Amazonka.MediaTailor.Types.ManifestProcessingRules+import Amazonka.MediaTailor.Types.MessageType+import Amazonka.MediaTailor.Types.Mode+import Amazonka.MediaTailor.Types.Operator+import Amazonka.MediaTailor.Types.OriginManifestType+import Amazonka.MediaTailor.Types.PlaybackConfiguration+import Amazonka.MediaTailor.Types.PlaybackMode+import Amazonka.MediaTailor.Types.PrefetchConsumption+import Amazonka.MediaTailor.Types.PrefetchRetrieval+import Amazonka.MediaTailor.Types.PrefetchSchedule+import Amazonka.MediaTailor.Types.RelativePosition+import Amazonka.MediaTailor.Types.RequestOutputItem+import Amazonka.MediaTailor.Types.ResponseOutputItem+import Amazonka.MediaTailor.Types.ScheduleAdBreak+import Amazonka.MediaTailor.Types.ScheduleConfiguration+import Amazonka.MediaTailor.Types.ScheduleEntry+import Amazonka.MediaTailor.Types.ScheduleEntryType+import Amazonka.MediaTailor.Types.SecretsManagerAccessTokenConfiguration+import Amazonka.MediaTailor.Types.SegmentDeliveryConfiguration+import Amazonka.MediaTailor.Types.SegmentationDescriptor+import Amazonka.MediaTailor.Types.SlateSource+import Amazonka.MediaTailor.Types.SourceLocation+import Amazonka.MediaTailor.Types.SpliceInsertMessage+import Amazonka.MediaTailor.Types.Tier+import Amazonka.MediaTailor.Types.TimeSignalMessage+import Amazonka.MediaTailor.Types.Transition+import Amazonka.MediaTailor.Types.Type+import Amazonka.MediaTailor.Types.VodSource+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2018-04-23@ of the Amazon MediaTailor SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "MediaTailor",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "api.mediatailor",+      Core.signingName = "mediatailor",+      Core.version = "2018-04-23",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "MediaTailor",+      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++-- | A request contains unexpected data.+_BadRequestException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_BadRequestException =+  Core._MatchServiceError+    defaultService+    "BadRequestException"+    Prelude.. Core.hasStatus 400
+ gen/Amazonka/MediaTailor/Types/AccessConfiguration.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaTailor.Types.AccessConfiguration+-- Copyright   : (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.MediaTailor.Types.AccessConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types.AccessType+import Amazonka.MediaTailor.Types.SecretsManagerAccessTokenConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Access configuration parameters.+--+-- /See:/ 'newAccessConfiguration' smart constructor.+data AccessConfiguration = AccessConfiguration'+  { -- | The type of authentication used to access content from+    -- @HttpConfiguration::BaseUrl@ on your source location. Accepted value:+    -- @S3_SIGV4@.+    --+    -- @S3_SIGV4@ - AWS Signature Version 4 authentication for Amazon S3 hosted+    -- virtual-style access. If your source location base URL is an Amazon S3+    -- bucket, MediaTailor can use AWS Signature Version 4 (SigV4)+    -- authentication to access the bucket where your source content is stored.+    -- Your MediaTailor source location baseURL must follow the S3 virtual+    -- hosted-style request URL format. For example,+    -- https:\/\/bucket-name.s3.Region.amazonaws.com\/key-name.+    --+    -- Before you can use @S3_SIGV4@, you must meet these requirements:+    --+    -- • You must allow MediaTailor to access your S3 bucket by granting+    -- mediatailor.amazonaws.com principal access in IAM. For information about+    -- configuring access in IAM, see Access management in the IAM User Guide.+    --+    -- • The mediatailor.amazonaws.com service principal must have permissions+    -- to read all top level manifests referenced by the VodSource packaging+    -- configurations.+    --+    -- • The caller of the API must have s3:GetObject IAM permissions to read+    -- all top level manifests referenced by your MediaTailor VodSource+    -- packaging configurations.+    accessType :: Prelude.Maybe AccessType,+    -- | AWS Secrets Manager access token configuration parameters.+    secretsManagerAccessTokenConfiguration :: Prelude.Maybe SecretsManagerAccessTokenConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AccessConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessType', 'accessConfiguration_accessType' - The type of authentication used to access content from+-- @HttpConfiguration::BaseUrl@ on your source location. Accepted value:+-- @S3_SIGV4@.+--+-- @S3_SIGV4@ - AWS Signature Version 4 authentication for Amazon S3 hosted+-- virtual-style access. If your source location base URL is an Amazon S3+-- bucket, MediaTailor can use AWS Signature Version 4 (SigV4)+-- authentication to access the bucket where your source content is stored.+-- Your MediaTailor source location baseURL must follow the S3 virtual+-- hosted-style request URL format. For example,+-- https:\/\/bucket-name.s3.Region.amazonaws.com\/key-name.+--+-- Before you can use @S3_SIGV4@, you must meet these requirements:+--+-- • You must allow MediaTailor to access your S3 bucket by granting+-- mediatailor.amazonaws.com principal access in IAM. For information about+-- configuring access in IAM, see Access management in the IAM User Guide.+--+-- • The mediatailor.amazonaws.com service principal must have permissions+-- to read all top level manifests referenced by the VodSource packaging+-- configurations.+--+-- • The caller of the API must have s3:GetObject IAM permissions to read+-- all top level manifests referenced by your MediaTailor VodSource+-- packaging configurations.+--+-- 'secretsManagerAccessTokenConfiguration', 'accessConfiguration_secretsManagerAccessTokenConfiguration' - AWS Secrets Manager access token configuration parameters.+newAccessConfiguration ::+  AccessConfiguration+newAccessConfiguration =+  AccessConfiguration'+    { accessType = Prelude.Nothing,+      secretsManagerAccessTokenConfiguration =+        Prelude.Nothing+    }++-- | The type of authentication used to access content from+-- @HttpConfiguration::BaseUrl@ on your source location. Accepted value:+-- @S3_SIGV4@.+--+-- @S3_SIGV4@ - AWS Signature Version 4 authentication for Amazon S3 hosted+-- virtual-style access. If your source location base URL is an Amazon S3+-- bucket, MediaTailor can use AWS Signature Version 4 (SigV4)+-- authentication to access the bucket where your source content is stored.+-- Your MediaTailor source location baseURL must follow the S3 virtual+-- hosted-style request URL format. For example,+-- https:\/\/bucket-name.s3.Region.amazonaws.com\/key-name.+--+-- Before you can use @S3_SIGV4@, you must meet these requirements:+--+-- • You must allow MediaTailor to access your S3 bucket by granting+-- mediatailor.amazonaws.com principal access in IAM. For information about+-- configuring access in IAM, see Access management in the IAM User Guide.+--+-- • The mediatailor.amazonaws.com service principal must have permissions+-- to read all top level manifests referenced by the VodSource packaging+-- configurations.+--+-- • The caller of the API must have s3:GetObject IAM permissions to read+-- all top level manifests referenced by your MediaTailor VodSource+-- packaging configurations.+accessConfiguration_accessType :: Lens.Lens' AccessConfiguration (Prelude.Maybe AccessType)+accessConfiguration_accessType = Lens.lens (\AccessConfiguration' {accessType} -> accessType) (\s@AccessConfiguration' {} a -> s {accessType = a} :: AccessConfiguration)++-- | AWS Secrets Manager access token configuration parameters.+accessConfiguration_secretsManagerAccessTokenConfiguration :: Lens.Lens' AccessConfiguration (Prelude.Maybe SecretsManagerAccessTokenConfiguration)+accessConfiguration_secretsManagerAccessTokenConfiguration = Lens.lens (\AccessConfiguration' {secretsManagerAccessTokenConfiguration} -> secretsManagerAccessTokenConfiguration) (\s@AccessConfiguration' {} a -> s {secretsManagerAccessTokenConfiguration = a} :: AccessConfiguration)++instance Data.FromJSON AccessConfiguration where+  parseJSON =+    Data.withObject+      "AccessConfiguration"+      ( \x ->+          AccessConfiguration'+            Prelude.<$> (x Data..:? "AccessType")+            Prelude.<*> ( x+                            Data..:? "SecretsManagerAccessTokenConfiguration"+                        )+      )++instance Prelude.Hashable AccessConfiguration where+  hashWithSalt _salt AccessConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` accessType+      `Prelude.hashWithSalt` secretsManagerAccessTokenConfiguration++instance Prelude.NFData AccessConfiguration where+  rnf AccessConfiguration' {..} =+    Prelude.rnf accessType+      `Prelude.seq` Prelude.rnf secretsManagerAccessTokenConfiguration++instance Data.ToJSON AccessConfiguration where+  toJSON AccessConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AccessType" Data..=) Prelude.<$> accessType,+            ("SecretsManagerAccessTokenConfiguration" Data..=)+              Prelude.<$> secretsManagerAccessTokenConfiguration+          ]+      )
+ gen/Amazonka/MediaTailor/Types/AccessType.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.MediaTailor.Types.AccessType+-- Copyright   : (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.MediaTailor.Types.AccessType+  ( AccessType+      ( ..,+        AccessType_S3_SIGV4,+        AccessType_SECRETS_MANAGER_ACCESS_TOKEN+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AccessType = AccessType'+  { fromAccessType ::+      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 AccessType_S3_SIGV4 :: AccessType+pattern AccessType_S3_SIGV4 = AccessType' "S3_SIGV4"++pattern AccessType_SECRETS_MANAGER_ACCESS_TOKEN :: AccessType+pattern AccessType_SECRETS_MANAGER_ACCESS_TOKEN = AccessType' "SECRETS_MANAGER_ACCESS_TOKEN"++{-# COMPLETE+  AccessType_S3_SIGV4,+  AccessType_SECRETS_MANAGER_ACCESS_TOKEN,+  AccessType'+  #-}
+ gen/Amazonka/MediaTailor/Types/AdBreak.hs view
@@ -0,0 +1,174 @@+{-# 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.MediaTailor.Types.AdBreak+-- Copyright   : (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.MediaTailor.Types.AdBreak where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types.MessageType+import Amazonka.MediaTailor.Types.SlateSource+import Amazonka.MediaTailor.Types.SpliceInsertMessage+import Amazonka.MediaTailor.Types.TimeSignalMessage+import qualified Amazonka.Prelude as Prelude++-- | Ad break configuration parameters.+--+-- /See:/ 'newAdBreak' smart constructor.+data AdBreak = AdBreak'+  { -- | The SCTE-35 ad insertion type. Accepted value: @SPLICE_INSERT@,+    -- @TIME_SIGNAL@.+    messageType :: Prelude.Maybe MessageType,+    -- | How long (in milliseconds) after the beginning of the program that an ad+    -- starts. This value must fall within 100ms of a segment boundary,+    -- otherwise the ad break will be skipped.+    offsetMillis :: Prelude.Maybe Prelude.Integer,+    -- | Ad break slate configuration.+    slate :: Prelude.Maybe SlateSource,+    -- | This defines the SCTE-35 @splice_insert()@ message inserted around the+    -- ad. For information about using @splice_insert()@, see the SCTE-35+    -- specficiaiton, section 9.7.3.1.+    spliceInsertMessage :: Prelude.Maybe SpliceInsertMessage,+    -- | Defines the SCTE-35 @time_signal@ message inserted around the ad.+    --+    -- Programs on a channel\'s schedule can be configured with one or more ad+    -- breaks. You can attach a @splice_insert@ SCTE-35 message to the ad+    -- break. This message provides basic metadata about the ad break.+    --+    -- See section 9.7.4 of the 2022 SCTE-35 specification for more+    -- information.+    timeSignalMessage :: Prelude.Maybe TimeSignalMessage+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AdBreak' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'messageType', 'adBreak_messageType' - The SCTE-35 ad insertion type. Accepted value: @SPLICE_INSERT@,+-- @TIME_SIGNAL@.+--+-- 'offsetMillis', 'adBreak_offsetMillis' - How long (in milliseconds) after the beginning of the program that an ad+-- starts. This value must fall within 100ms of a segment boundary,+-- otherwise the ad break will be skipped.+--+-- 'slate', 'adBreak_slate' - Ad break slate configuration.+--+-- 'spliceInsertMessage', 'adBreak_spliceInsertMessage' - This defines the SCTE-35 @splice_insert()@ message inserted around the+-- ad. For information about using @splice_insert()@, see the SCTE-35+-- specficiaiton, section 9.7.3.1.+--+-- 'timeSignalMessage', 'adBreak_timeSignalMessage' - Defines the SCTE-35 @time_signal@ message inserted around the ad.+--+-- Programs on a channel\'s schedule can be configured with one or more ad+-- breaks. You can attach a @splice_insert@ SCTE-35 message to the ad+-- break. This message provides basic metadata about the ad break.+--+-- See section 9.7.4 of the 2022 SCTE-35 specification for more+-- information.+newAdBreak ::+  AdBreak+newAdBreak =+  AdBreak'+    { messageType = Prelude.Nothing,+      offsetMillis = Prelude.Nothing,+      slate = Prelude.Nothing,+      spliceInsertMessage = Prelude.Nothing,+      timeSignalMessage = Prelude.Nothing+    }++-- | The SCTE-35 ad insertion type. Accepted value: @SPLICE_INSERT@,+-- @TIME_SIGNAL@.+adBreak_messageType :: Lens.Lens' AdBreak (Prelude.Maybe MessageType)+adBreak_messageType = Lens.lens (\AdBreak' {messageType} -> messageType) (\s@AdBreak' {} a -> s {messageType = a} :: AdBreak)++-- | How long (in milliseconds) after the beginning of the program that an ad+-- starts. This value must fall within 100ms of a segment boundary,+-- otherwise the ad break will be skipped.+adBreak_offsetMillis :: Lens.Lens' AdBreak (Prelude.Maybe Prelude.Integer)+adBreak_offsetMillis = Lens.lens (\AdBreak' {offsetMillis} -> offsetMillis) (\s@AdBreak' {} a -> s {offsetMillis = a} :: AdBreak)++-- | Ad break slate configuration.+adBreak_slate :: Lens.Lens' AdBreak (Prelude.Maybe SlateSource)+adBreak_slate = Lens.lens (\AdBreak' {slate} -> slate) (\s@AdBreak' {} a -> s {slate = a} :: AdBreak)++-- | This defines the SCTE-35 @splice_insert()@ message inserted around the+-- ad. For information about using @splice_insert()@, see the SCTE-35+-- specficiaiton, section 9.7.3.1.+adBreak_spliceInsertMessage :: Lens.Lens' AdBreak (Prelude.Maybe SpliceInsertMessage)+adBreak_spliceInsertMessage = Lens.lens (\AdBreak' {spliceInsertMessage} -> spliceInsertMessage) (\s@AdBreak' {} a -> s {spliceInsertMessage = a} :: AdBreak)++-- | Defines the SCTE-35 @time_signal@ message inserted around the ad.+--+-- Programs on a channel\'s schedule can be configured with one or more ad+-- breaks. You can attach a @splice_insert@ SCTE-35 message to the ad+-- break. This message provides basic metadata about the ad break.+--+-- See section 9.7.4 of the 2022 SCTE-35 specification for more+-- information.+adBreak_timeSignalMessage :: Lens.Lens' AdBreak (Prelude.Maybe TimeSignalMessage)+adBreak_timeSignalMessage = Lens.lens (\AdBreak' {timeSignalMessage} -> timeSignalMessage) (\s@AdBreak' {} a -> s {timeSignalMessage = a} :: AdBreak)++instance Data.FromJSON AdBreak where+  parseJSON =+    Data.withObject+      "AdBreak"+      ( \x ->+          AdBreak'+            Prelude.<$> (x Data..:? "MessageType")+            Prelude.<*> (x Data..:? "OffsetMillis")+            Prelude.<*> (x Data..:? "Slate")+            Prelude.<*> (x Data..:? "SpliceInsertMessage")+            Prelude.<*> (x Data..:? "TimeSignalMessage")+      )++instance Prelude.Hashable AdBreak where+  hashWithSalt _salt AdBreak' {..} =+    _salt+      `Prelude.hashWithSalt` messageType+      `Prelude.hashWithSalt` offsetMillis+      `Prelude.hashWithSalt` slate+      `Prelude.hashWithSalt` spliceInsertMessage+      `Prelude.hashWithSalt` timeSignalMessage++instance Prelude.NFData AdBreak where+  rnf AdBreak' {..} =+    Prelude.rnf messageType+      `Prelude.seq` Prelude.rnf offsetMillis+      `Prelude.seq` Prelude.rnf slate+      `Prelude.seq` Prelude.rnf spliceInsertMessage+      `Prelude.seq` Prelude.rnf timeSignalMessage++instance Data.ToJSON AdBreak where+  toJSON AdBreak' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MessageType" Data..=) Prelude.<$> messageType,+            ("OffsetMillis" Data..=) Prelude.<$> offsetMillis,+            ("Slate" Data..=) Prelude.<$> slate,+            ("SpliceInsertMessage" Data..=)+              Prelude.<$> spliceInsertMessage,+            ("TimeSignalMessage" Data..=)+              Prelude.<$> timeSignalMessage+          ]+      )
+ gen/Amazonka/MediaTailor/Types/AdMarkerPassthrough.hs view
@@ -0,0 +1,81 @@+{-# 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.MediaTailor.Types.AdMarkerPassthrough+-- Copyright   : (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.MediaTailor.Types.AdMarkerPassthrough 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++-- | For HLS, when set to @true@, MediaTailor passes through @EXT-X-CUE-IN@,+-- @EXT-X-CUE-OUT@, and @EXT-X-SPLICEPOINT-SCTE35@ ad markers from the+-- origin manifest to the MediaTailor personalized manifest.+--+-- No logic is applied to these ad markers. For example, if @EXT-X-CUE-OUT@+-- has a value of @60@, but no ads are filled for that ad break,+-- MediaTailor will not set the value to @0@.+--+-- /See:/ 'newAdMarkerPassthrough' smart constructor.+data AdMarkerPassthrough = AdMarkerPassthrough'+  { -- | Enables ad marker passthrough for your configuration.+    enabled :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AdMarkerPassthrough' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'enabled', 'adMarkerPassthrough_enabled' - Enables ad marker passthrough for your configuration.+newAdMarkerPassthrough ::+  AdMarkerPassthrough+newAdMarkerPassthrough =+  AdMarkerPassthrough' {enabled = Prelude.Nothing}++-- | Enables ad marker passthrough for your configuration.+adMarkerPassthrough_enabled :: Lens.Lens' AdMarkerPassthrough (Prelude.Maybe Prelude.Bool)+adMarkerPassthrough_enabled = Lens.lens (\AdMarkerPassthrough' {enabled} -> enabled) (\s@AdMarkerPassthrough' {} a -> s {enabled = a} :: AdMarkerPassthrough)++instance Data.FromJSON AdMarkerPassthrough where+  parseJSON =+    Data.withObject+      "AdMarkerPassthrough"+      ( \x ->+          AdMarkerPassthrough'+            Prelude.<$> (x Data..:? "Enabled")+      )++instance Prelude.Hashable AdMarkerPassthrough where+  hashWithSalt _salt AdMarkerPassthrough' {..} =+    _salt `Prelude.hashWithSalt` enabled++instance Prelude.NFData AdMarkerPassthrough where+  rnf AdMarkerPassthrough' {..} = Prelude.rnf enabled++instance Data.ToJSON AdMarkerPassthrough where+  toJSON AdMarkerPassthrough' {..} =+    Data.object+      ( Prelude.catMaybes+          [("Enabled" Data..=) Prelude.<$> enabled]+      )
+ gen/Amazonka/MediaTailor/Types/Alert.hs view
@@ -0,0 +1,139 @@+{-# 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.MediaTailor.Types.Alert+-- Copyright   : (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.MediaTailor.Types.Alert 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++-- | Alert configuration parameters.+--+-- /See:/ 'newAlert' smart constructor.+data Alert = Alert'+  { -- | The code for the alert. For example, @NOT_PROCESSED@.+    alertCode :: Prelude.Text,+    -- | If an alert is generated for a resource, an explanation of the reason+    -- for the alert.+    alertMessage :: Prelude.Text,+    -- | The timestamp when the alert was last modified.+    lastModifiedTime :: Data.POSIX,+    -- | The Amazon Resource Names (ARNs) related to this alert.+    relatedResourceArns :: [Prelude.Text],+    -- | The Amazon Resource Name (ARN) of the resource.+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Alert' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'alertCode', 'alert_alertCode' - The code for the alert. For example, @NOT_PROCESSED@.+--+-- 'alertMessage', 'alert_alertMessage' - If an alert is generated for a resource, an explanation of the reason+-- for the alert.+--+-- 'lastModifiedTime', 'alert_lastModifiedTime' - The timestamp when the alert was last modified.+--+-- 'relatedResourceArns', 'alert_relatedResourceArns' - The Amazon Resource Names (ARNs) related to this alert.+--+-- 'resourceArn', 'alert_resourceArn' - The Amazon Resource Name (ARN) of the resource.+newAlert ::+  -- | 'alertCode'+  Prelude.Text ->+  -- | 'alertMessage'+  Prelude.Text ->+  -- | 'lastModifiedTime'+  Prelude.UTCTime ->+  -- | 'resourceArn'+  Prelude.Text ->+  Alert+newAlert+  pAlertCode_+  pAlertMessage_+  pLastModifiedTime_+  pResourceArn_ =+    Alert'+      { alertCode = pAlertCode_,+        alertMessage = pAlertMessage_,+        lastModifiedTime =+          Data._Time Lens.# pLastModifiedTime_,+        relatedResourceArns = Prelude.mempty,+        resourceArn = pResourceArn_+      }++-- | The code for the alert. For example, @NOT_PROCESSED@.+alert_alertCode :: Lens.Lens' Alert Prelude.Text+alert_alertCode = Lens.lens (\Alert' {alertCode} -> alertCode) (\s@Alert' {} a -> s {alertCode = a} :: Alert)++-- | If an alert is generated for a resource, an explanation of the reason+-- for the alert.+alert_alertMessage :: Lens.Lens' Alert Prelude.Text+alert_alertMessage = Lens.lens (\Alert' {alertMessage} -> alertMessage) (\s@Alert' {} a -> s {alertMessage = a} :: Alert)++-- | The timestamp when the alert was last modified.+alert_lastModifiedTime :: Lens.Lens' Alert Prelude.UTCTime+alert_lastModifiedTime = Lens.lens (\Alert' {lastModifiedTime} -> lastModifiedTime) (\s@Alert' {} a -> s {lastModifiedTime = a} :: Alert) Prelude.. Data._Time++-- | The Amazon Resource Names (ARNs) related to this alert.+alert_relatedResourceArns :: Lens.Lens' Alert [Prelude.Text]+alert_relatedResourceArns = Lens.lens (\Alert' {relatedResourceArns} -> relatedResourceArns) (\s@Alert' {} a -> s {relatedResourceArns = a} :: Alert) Prelude.. Lens.coerced++-- | The Amazon Resource Name (ARN) of the resource.+alert_resourceArn :: Lens.Lens' Alert Prelude.Text+alert_resourceArn = Lens.lens (\Alert' {resourceArn} -> resourceArn) (\s@Alert' {} a -> s {resourceArn = a} :: Alert)++instance Data.FromJSON Alert where+  parseJSON =+    Data.withObject+      "Alert"+      ( \x ->+          Alert'+            Prelude.<$> (x Data..: "AlertCode")+            Prelude.<*> (x Data..: "AlertMessage")+            Prelude.<*> (x Data..: "LastModifiedTime")+            Prelude.<*> ( x+                            Data..:? "RelatedResourceArns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "ResourceArn")+      )++instance Prelude.Hashable Alert where+  hashWithSalt _salt Alert' {..} =+    _salt+      `Prelude.hashWithSalt` alertCode+      `Prelude.hashWithSalt` alertMessage+      `Prelude.hashWithSalt` lastModifiedTime+      `Prelude.hashWithSalt` relatedResourceArns+      `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData Alert where+  rnf Alert' {..} =+    Prelude.rnf alertCode+      `Prelude.seq` Prelude.rnf alertMessage+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf relatedResourceArns+      `Prelude.seq` Prelude.rnf resourceArn
+ gen/Amazonka/MediaTailor/Types/AvailMatchingCriteria.hs view
@@ -0,0 +1,141 @@+{-# 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.MediaTailor.Types.AvailMatchingCriteria+-- Copyright   : (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.MediaTailor.Types.AvailMatchingCriteria where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types.Operator+import qualified Amazonka.Prelude as Prelude++-- | MediaTailor only places (consumes) prefetched ads if the ad break meets+-- the criteria defined by the dynamic variables. This gives you granular+-- control over which ad break to place the prefetched ads into.+--+-- As an example, let\'s say that you set @DynamicVariable@ to+-- @scte.event_id@ and @Operator@ to @EQUALS@, and your playback+-- configuration has an ADS URL of+-- @https:\/\/my.ads.server.com\/path?&podId=[scte.avail_num]&event=[scte.event_id]&duration=[session.avail_duration_secs]@.+-- And the prefetch request to the ADS contains these values+-- @https:\/\/my.ads.server.com\/path?&podId=3&event=my-awesome-event&duration=30@.+-- MediaTailor will only insert the prefetched ads into the ad break if has+-- a SCTE marker with an event id of @my-awesome-event@, since it must+-- match the event id that MediaTailor uses to query the ADS.+--+-- You can specify up to five @AvailMatchingCriteria@. If you specify+-- multiple @AvailMatchingCriteria@, MediaTailor combines them to match+-- using a logical @AND@. You can model logical @OR@ combinations by+-- creating multiple prefetch schedules.+--+-- /See:/ 'newAvailMatchingCriteria' smart constructor.+data AvailMatchingCriteria = AvailMatchingCriteria'+  { -- | The dynamic variable(s) that MediaTailor should use as avail matching+    -- criteria. MediaTailor only places the prefetched ads into the avail if+    -- the avail matches the criteria defined by the dynamic variable. For+    -- information about dynamic variables, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/variables.html Using dynamic ad variables>+    -- in the /MediaTailor User Guide/.+    --+    -- You can include up to 100 dynamic variables.+    dynamicVariable :: Prelude.Text,+    -- | For the @DynamicVariable@ specified in @AvailMatchingCriteria@, the+    -- Operator that is used for the comparison.+    operator :: Operator+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AvailMatchingCriteria' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dynamicVariable', 'availMatchingCriteria_dynamicVariable' - The dynamic variable(s) that MediaTailor should use as avail matching+-- criteria. MediaTailor only places the prefetched ads into the avail if+-- the avail matches the criteria defined by the dynamic variable. For+-- information about dynamic variables, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/variables.html Using dynamic ad variables>+-- in the /MediaTailor User Guide/.+--+-- You can include up to 100 dynamic variables.+--+-- 'operator', 'availMatchingCriteria_operator' - For the @DynamicVariable@ specified in @AvailMatchingCriteria@, the+-- Operator that is used for the comparison.+newAvailMatchingCriteria ::+  -- | 'dynamicVariable'+  Prelude.Text ->+  -- | 'operator'+  Operator ->+  AvailMatchingCriteria+newAvailMatchingCriteria pDynamicVariable_ pOperator_ =+  AvailMatchingCriteria'+    { dynamicVariable =+        pDynamicVariable_,+      operator = pOperator_+    }++-- | The dynamic variable(s) that MediaTailor should use as avail matching+-- criteria. MediaTailor only places the prefetched ads into the avail if+-- the avail matches the criteria defined by the dynamic variable. For+-- information about dynamic variables, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/variables.html Using dynamic ad variables>+-- in the /MediaTailor User Guide/.+--+-- You can include up to 100 dynamic variables.+availMatchingCriteria_dynamicVariable :: Lens.Lens' AvailMatchingCriteria Prelude.Text+availMatchingCriteria_dynamicVariable = Lens.lens (\AvailMatchingCriteria' {dynamicVariable} -> dynamicVariable) (\s@AvailMatchingCriteria' {} a -> s {dynamicVariable = a} :: AvailMatchingCriteria)++-- | For the @DynamicVariable@ specified in @AvailMatchingCriteria@, the+-- Operator that is used for the comparison.+availMatchingCriteria_operator :: Lens.Lens' AvailMatchingCriteria Operator+availMatchingCriteria_operator = Lens.lens (\AvailMatchingCriteria' {operator} -> operator) (\s@AvailMatchingCriteria' {} a -> s {operator = a} :: AvailMatchingCriteria)++instance Data.FromJSON AvailMatchingCriteria where+  parseJSON =+    Data.withObject+      "AvailMatchingCriteria"+      ( \x ->+          AvailMatchingCriteria'+            Prelude.<$> (x Data..: "DynamicVariable")+            Prelude.<*> (x Data..: "Operator")+      )++instance Prelude.Hashable AvailMatchingCriteria where+  hashWithSalt _salt AvailMatchingCriteria' {..} =+    _salt+      `Prelude.hashWithSalt` dynamicVariable+      `Prelude.hashWithSalt` operator++instance Prelude.NFData AvailMatchingCriteria where+  rnf AvailMatchingCriteria' {..} =+    Prelude.rnf dynamicVariable+      `Prelude.seq` Prelude.rnf operator++instance Data.ToJSON AvailMatchingCriteria where+  toJSON AvailMatchingCriteria' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("DynamicVariable" Data..= dynamicVariable),+            Prelude.Just ("Operator" Data..= operator)+          ]+      )
+ gen/Amazonka/MediaTailor/Types/AvailSuppression.hs view
@@ -0,0 +1,131 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaTailor.Types.AvailSuppression+-- Copyright   : (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.MediaTailor.Types.AvailSuppression where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types.Mode+import qualified Amazonka.Prelude as Prelude++-- | The configuration for avail suppression, also known as ad suppression.+-- For more information about ad suppression, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Suppression>.+--+-- /See:/ 'newAvailSuppression' smart constructor.+data AvailSuppression = AvailSuppression'+  { -- | Sets the ad suppression mode. By default, ad suppression is off and all+    -- ad breaks are filled with ads or slate. When Mode is set to+    -- @BEHIND_LIVE_EDGE@, ad suppression is active and MediaTailor won\'t fill+    -- ad breaks on or behind the ad suppression Value time in the manifest+    -- lookback window.+    mode :: Prelude.Maybe Mode,+    -- | A live edge offset time in HH:MM:SS. MediaTailor won\'t fill ad breaks+    -- on or behind this time in the manifest lookback window. If Value is set+    -- to 00:00:00, it is in sync with the live edge, and MediaTailor won\'t+    -- fill any ad breaks on or behind the live edge. If you set a Value time,+    -- MediaTailor won\'t fill any ad breaks on or behind this time in the+    -- manifest lookback window. For example, if you set 00:45:00, then+    -- MediaTailor will fill ad breaks that occur within 45 minutes behind the+    -- live edge, but won\'t fill ad breaks on or behind 45 minutes behind the+    -- live edge.+    value :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AvailSuppression' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'mode', 'availSuppression_mode' - Sets the ad suppression mode. By default, ad suppression is off and all+-- ad breaks are filled with ads or slate. When Mode is set to+-- @BEHIND_LIVE_EDGE@, ad suppression is active and MediaTailor won\'t fill+-- ad breaks on or behind the ad suppression Value time in the manifest+-- lookback window.+--+-- 'value', 'availSuppression_value' - A live edge offset time in HH:MM:SS. MediaTailor won\'t fill ad breaks+-- on or behind this time in the manifest lookback window. If Value is set+-- to 00:00:00, it is in sync with the live edge, and MediaTailor won\'t+-- fill any ad breaks on or behind the live edge. If you set a Value time,+-- MediaTailor won\'t fill any ad breaks on or behind this time in the+-- manifest lookback window. For example, if you set 00:45:00, then+-- MediaTailor will fill ad breaks that occur within 45 minutes behind the+-- live edge, but won\'t fill ad breaks on or behind 45 minutes behind the+-- live edge.+newAvailSuppression ::+  AvailSuppression+newAvailSuppression =+  AvailSuppression'+    { mode = Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | Sets the ad suppression mode. By default, ad suppression is off and all+-- ad breaks are filled with ads or slate. When Mode is set to+-- @BEHIND_LIVE_EDGE@, ad suppression is active and MediaTailor won\'t fill+-- ad breaks on or behind the ad suppression Value time in the manifest+-- lookback window.+availSuppression_mode :: Lens.Lens' AvailSuppression (Prelude.Maybe Mode)+availSuppression_mode = Lens.lens (\AvailSuppression' {mode} -> mode) (\s@AvailSuppression' {} a -> s {mode = a} :: AvailSuppression)++-- | A live edge offset time in HH:MM:SS. MediaTailor won\'t fill ad breaks+-- on or behind this time in the manifest lookback window. If Value is set+-- to 00:00:00, it is in sync with the live edge, and MediaTailor won\'t+-- fill any ad breaks on or behind the live edge. If you set a Value time,+-- MediaTailor won\'t fill any ad breaks on or behind this time in the+-- manifest lookback window. For example, if you set 00:45:00, then+-- MediaTailor will fill ad breaks that occur within 45 minutes behind the+-- live edge, but won\'t fill ad breaks on or behind 45 minutes behind the+-- live edge.+availSuppression_value :: Lens.Lens' AvailSuppression (Prelude.Maybe Prelude.Text)+availSuppression_value = Lens.lens (\AvailSuppression' {value} -> value) (\s@AvailSuppression' {} a -> s {value = a} :: AvailSuppression)++instance Data.FromJSON AvailSuppression where+  parseJSON =+    Data.withObject+      "AvailSuppression"+      ( \x ->+          AvailSuppression'+            Prelude.<$> (x Data..:? "Mode")+            Prelude.<*> (x Data..:? "Value")+      )++instance Prelude.Hashable AvailSuppression where+  hashWithSalt _salt AvailSuppression' {..} =+    _salt+      `Prelude.hashWithSalt` mode+      `Prelude.hashWithSalt` value++instance Prelude.NFData AvailSuppression where+  rnf AvailSuppression' {..} =+    Prelude.rnf mode `Prelude.seq` Prelude.rnf value++instance Data.ToJSON AvailSuppression where+  toJSON AvailSuppression' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Mode" Data..=) Prelude.<$> mode,+            ("Value" Data..=) Prelude.<$> value+          ]+      )
+ gen/Amazonka/MediaTailor/Types/Bumper.hs view
@@ -0,0 +1,96 @@+{-# 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.MediaTailor.Types.Bumper+-- Copyright   : (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.MediaTailor.Types.Bumper 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 configuration for bumpers. Bumpers are short audio or video clips+-- that play at the start or before the end of an ad break. To learn more+-- about bumpers, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/bumpers.html Bumpers>.+--+-- /See:/ 'newBumper' smart constructor.+data Bumper = Bumper'+  { -- | The URL for the end bumper asset.+    endUrl :: Prelude.Maybe Prelude.Text,+    -- | The URL for the start bumper asset.+    startUrl :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Bumper' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endUrl', 'bumper_endUrl' - The URL for the end bumper asset.+--+-- 'startUrl', 'bumper_startUrl' - The URL for the start bumper asset.+newBumper ::+  Bumper+newBumper =+  Bumper'+    { endUrl = Prelude.Nothing,+      startUrl = Prelude.Nothing+    }++-- | The URL for the end bumper asset.+bumper_endUrl :: Lens.Lens' Bumper (Prelude.Maybe Prelude.Text)+bumper_endUrl = Lens.lens (\Bumper' {endUrl} -> endUrl) (\s@Bumper' {} a -> s {endUrl = a} :: Bumper)++-- | The URL for the start bumper asset.+bumper_startUrl :: Lens.Lens' Bumper (Prelude.Maybe Prelude.Text)+bumper_startUrl = Lens.lens (\Bumper' {startUrl} -> startUrl) (\s@Bumper' {} a -> s {startUrl = a} :: Bumper)++instance Data.FromJSON Bumper where+  parseJSON =+    Data.withObject+      "Bumper"+      ( \x ->+          Bumper'+            Prelude.<$> (x Data..:? "EndUrl")+            Prelude.<*> (x Data..:? "StartUrl")+      )++instance Prelude.Hashable Bumper where+  hashWithSalt _salt Bumper' {..} =+    _salt+      `Prelude.hashWithSalt` endUrl+      `Prelude.hashWithSalt` startUrl++instance Prelude.NFData Bumper where+  rnf Bumper' {..} =+    Prelude.rnf endUrl+      `Prelude.seq` Prelude.rnf startUrl++instance Data.ToJSON Bumper where+  toJSON Bumper' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("EndUrl" Data..=) Prelude.<$> endUrl,+            ("StartUrl" Data..=) Prelude.<$> startUrl+          ]+      )
+ gen/Amazonka/MediaTailor/Types/CdnConfiguration.hs view
@@ -0,0 +1,130 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaTailor.Types.CdnConfiguration+-- Copyright   : (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.MediaTailor.Types.CdnConfiguration 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 configuration for using a content delivery network (CDN), like+-- Amazon CloudFront, for content and ad segment management.+--+-- /See:/ 'newCdnConfiguration' smart constructor.+data CdnConfiguration = CdnConfiguration'+  { -- | A non-default content delivery network (CDN) to serve ad segments. By+    -- default, AWS Elemental MediaTailor uses Amazon CloudFront with default+    -- cache settings as its CDN for ad segments. To set up an alternate CDN,+    -- create a rule in your CDN for the origin+    -- ads.mediatailor./\<region>/.amazonaws.com. Then specify the rule\'s name+    -- in this @AdSegmentUrlPrefix@. When AWS Elemental MediaTailor serves a+    -- manifest, it reports your CDN as the source for ad segments.+    adSegmentUrlPrefix :: Prelude.Maybe Prelude.Text,+    -- | A content delivery network (CDN) to cache content segments, so that+    -- content requests don’t always have to go to the origin server. First,+    -- create a rule in your CDN for the content segment origin server. Then+    -- specify the rule\'s name in this @ContentSegmentUrlPrefix@. When AWS+    -- Elemental MediaTailor serves a manifest, it reports your CDN as the+    -- source for content segments.+    contentSegmentUrlPrefix :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CdnConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'adSegmentUrlPrefix', 'cdnConfiguration_adSegmentUrlPrefix' - A non-default content delivery network (CDN) to serve ad segments. By+-- default, AWS Elemental MediaTailor uses Amazon CloudFront with default+-- cache settings as its CDN for ad segments. To set up an alternate CDN,+-- create a rule in your CDN for the origin+-- ads.mediatailor./\<region>/.amazonaws.com. Then specify the rule\'s name+-- in this @AdSegmentUrlPrefix@. When AWS Elemental MediaTailor serves a+-- manifest, it reports your CDN as the source for ad segments.+--+-- 'contentSegmentUrlPrefix', 'cdnConfiguration_contentSegmentUrlPrefix' - A content delivery network (CDN) to cache content segments, so that+-- content requests don’t always have to go to the origin server. First,+-- create a rule in your CDN for the content segment origin server. Then+-- specify the rule\'s name in this @ContentSegmentUrlPrefix@. When AWS+-- Elemental MediaTailor serves a manifest, it reports your CDN as the+-- source for content segments.+newCdnConfiguration ::+  CdnConfiguration+newCdnConfiguration =+  CdnConfiguration'+    { adSegmentUrlPrefix =+        Prelude.Nothing,+      contentSegmentUrlPrefix = Prelude.Nothing+    }++-- | A non-default content delivery network (CDN) to serve ad segments. By+-- default, AWS Elemental MediaTailor uses Amazon CloudFront with default+-- cache settings as its CDN for ad segments. To set up an alternate CDN,+-- create a rule in your CDN for the origin+-- ads.mediatailor./\<region>/.amazonaws.com. Then specify the rule\'s name+-- in this @AdSegmentUrlPrefix@. When AWS Elemental MediaTailor serves a+-- manifest, it reports your CDN as the source for ad segments.+cdnConfiguration_adSegmentUrlPrefix :: Lens.Lens' CdnConfiguration (Prelude.Maybe Prelude.Text)+cdnConfiguration_adSegmentUrlPrefix = Lens.lens (\CdnConfiguration' {adSegmentUrlPrefix} -> adSegmentUrlPrefix) (\s@CdnConfiguration' {} a -> s {adSegmentUrlPrefix = a} :: CdnConfiguration)++-- | A content delivery network (CDN) to cache content segments, so that+-- content requests don’t always have to go to the origin server. First,+-- create a rule in your CDN for the content segment origin server. Then+-- specify the rule\'s name in this @ContentSegmentUrlPrefix@. When AWS+-- Elemental MediaTailor serves a manifest, it reports your CDN as the+-- source for content segments.+cdnConfiguration_contentSegmentUrlPrefix :: Lens.Lens' CdnConfiguration (Prelude.Maybe Prelude.Text)+cdnConfiguration_contentSegmentUrlPrefix = Lens.lens (\CdnConfiguration' {contentSegmentUrlPrefix} -> contentSegmentUrlPrefix) (\s@CdnConfiguration' {} a -> s {contentSegmentUrlPrefix = a} :: CdnConfiguration)++instance Data.FromJSON CdnConfiguration where+  parseJSON =+    Data.withObject+      "CdnConfiguration"+      ( \x ->+          CdnConfiguration'+            Prelude.<$> (x Data..:? "AdSegmentUrlPrefix")+            Prelude.<*> (x Data..:? "ContentSegmentUrlPrefix")+      )++instance Prelude.Hashable CdnConfiguration where+  hashWithSalt _salt CdnConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` adSegmentUrlPrefix+      `Prelude.hashWithSalt` contentSegmentUrlPrefix++instance Prelude.NFData CdnConfiguration where+  rnf CdnConfiguration' {..} =+    Prelude.rnf adSegmentUrlPrefix+      `Prelude.seq` Prelude.rnf contentSegmentUrlPrefix++instance Data.ToJSON CdnConfiguration where+  toJSON CdnConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AdSegmentUrlPrefix" Data..=)+              Prelude.<$> adSegmentUrlPrefix,+            ("ContentSegmentUrlPrefix" Data..=)+              Prelude.<$> contentSegmentUrlPrefix+          ]+      )
+ gen/Amazonka/MediaTailor/Types/Channel.hs view
@@ -0,0 +1,239 @@+{-# 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.MediaTailor.Types.Channel+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaTailor.Types.Channel where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types.ResponseOutputItem+import Amazonka.MediaTailor.Types.SlateSource+import qualified Amazonka.Prelude as Prelude++-- | The configuration parameters for a channel. For information about+-- MediaTailor channels, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/channel-assembly-channels.html Working with channels>+-- in the /MediaTailor User Guide/.+--+-- /See:/ 'newChannel' smart constructor.+data Channel = Channel'+  { -- | The timestamp of when the channel was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The slate used to fill gaps between programs in the schedule. You must+    -- configure filler slate if your channel uses the @LINEAR@ @PlaybackMode@.+    -- MediaTailor doesn\'t support filler slate for channels using the @LOOP@+    -- @PlaybackMode@.+    fillerSlate :: Prelude.Maybe SlateSource,+    -- | The timestamp of when the channel was last modified.+    lastModifiedTime :: Prelude.Maybe Data.POSIX,+    -- | The tags to assign to the channel. Tags are key-value pairs that you can+    -- associate with Amazon resources to help with organization, access+    -- control, and cost tracking. For more information, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The ARN of the channel.+    arn :: Prelude.Text,+    -- | The name of the channel.+    channelName :: Prelude.Text,+    -- | Returns the state whether the channel is running or not.+    channelState :: Prelude.Text,+    -- | The channel\'s output properties.+    outputs :: [ResponseOutputItem],+    -- | The type of playback mode for this channel.+    --+    -- @LINEAR@ - Programs play back-to-back only once.+    --+    -- @LOOP@ - Programs play back-to-back in an endless loop. When the last+    -- program in the schedule plays, playback loops back to the first program+    -- in the schedule.+    playbackMode :: Prelude.Text,+    -- | The tier for this channel. STANDARD tier channels can contain live+    -- programs.+    tier :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Channel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationTime', 'channel_creationTime' - The timestamp of when the channel was created.+--+-- 'fillerSlate', 'channel_fillerSlate' - The slate used to fill gaps between programs in the schedule. You must+-- configure filler slate if your channel uses the @LINEAR@ @PlaybackMode@.+-- MediaTailor doesn\'t support filler slate for channels using the @LOOP@+-- @PlaybackMode@.+--+-- 'lastModifiedTime', 'channel_lastModifiedTime' - The timestamp of when the channel was last modified.+--+-- 'tags', 'channel_tags' - The tags to assign to the channel. Tags are key-value pairs that you can+-- associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+--+-- 'arn', 'channel_arn' - The ARN of the channel.+--+-- 'channelName', 'channel_channelName' - The name of the channel.+--+-- 'channelState', 'channel_channelState' - Returns the state whether the channel is running or not.+--+-- 'outputs', 'channel_outputs' - The channel\'s output properties.+--+-- 'playbackMode', 'channel_playbackMode' - The type of playback mode for this channel.+--+-- @LINEAR@ - Programs play back-to-back only once.+--+-- @LOOP@ - Programs play back-to-back in an endless loop. When the last+-- program in the schedule plays, playback loops back to the first program+-- in the schedule.+--+-- 'tier', 'channel_tier' - The tier for this channel. STANDARD tier channels can contain live+-- programs.+newChannel ::+  -- | 'arn'+  Prelude.Text ->+  -- | 'channelName'+  Prelude.Text ->+  -- | 'channelState'+  Prelude.Text ->+  -- | 'playbackMode'+  Prelude.Text ->+  -- | 'tier'+  Prelude.Text ->+  Channel+newChannel+  pArn_+  pChannelName_+  pChannelState_+  pPlaybackMode_+  pTier_ =+    Channel'+      { creationTime = Prelude.Nothing,+        fillerSlate = Prelude.Nothing,+        lastModifiedTime = Prelude.Nothing,+        tags = Prelude.Nothing,+        arn = pArn_,+        channelName = pChannelName_,+        channelState = pChannelState_,+        outputs = Prelude.mempty,+        playbackMode = pPlaybackMode_,+        tier = pTier_+      }++-- | The timestamp of when the channel was created.+channel_creationTime :: Lens.Lens' Channel (Prelude.Maybe Prelude.UTCTime)+channel_creationTime = Lens.lens (\Channel' {creationTime} -> creationTime) (\s@Channel' {} a -> s {creationTime = a} :: Channel) Prelude.. Lens.mapping Data._Time++-- | The slate used to fill gaps between programs in the schedule. You must+-- configure filler slate if your channel uses the @LINEAR@ @PlaybackMode@.+-- MediaTailor doesn\'t support filler slate for channels using the @LOOP@+-- @PlaybackMode@.+channel_fillerSlate :: Lens.Lens' Channel (Prelude.Maybe SlateSource)+channel_fillerSlate = Lens.lens (\Channel' {fillerSlate} -> fillerSlate) (\s@Channel' {} a -> s {fillerSlate = a} :: Channel)++-- | The timestamp of when the channel was last modified.+channel_lastModifiedTime :: Lens.Lens' Channel (Prelude.Maybe Prelude.UTCTime)+channel_lastModifiedTime = Lens.lens (\Channel' {lastModifiedTime} -> lastModifiedTime) (\s@Channel' {} a -> s {lastModifiedTime = a} :: Channel) Prelude.. Lens.mapping Data._Time++-- | The tags to assign to the channel. Tags are key-value pairs that you can+-- associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+channel_tags :: Lens.Lens' Channel (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+channel_tags = Lens.lens (\Channel' {tags} -> tags) (\s@Channel' {} a -> s {tags = a} :: Channel) Prelude.. Lens.mapping Lens.coerced++-- | The ARN of the channel.+channel_arn :: Lens.Lens' Channel Prelude.Text+channel_arn = Lens.lens (\Channel' {arn} -> arn) (\s@Channel' {} a -> s {arn = a} :: Channel)++-- | The name of the channel.+channel_channelName :: Lens.Lens' Channel Prelude.Text+channel_channelName = Lens.lens (\Channel' {channelName} -> channelName) (\s@Channel' {} a -> s {channelName = a} :: Channel)++-- | Returns the state whether the channel is running or not.+channel_channelState :: Lens.Lens' Channel Prelude.Text+channel_channelState = Lens.lens (\Channel' {channelState} -> channelState) (\s@Channel' {} a -> s {channelState = a} :: Channel)++-- | The channel\'s output properties.+channel_outputs :: Lens.Lens' Channel [ResponseOutputItem]+channel_outputs = Lens.lens (\Channel' {outputs} -> outputs) (\s@Channel' {} a -> s {outputs = a} :: Channel) Prelude.. Lens.coerced++-- | The type of playback mode for this channel.+--+-- @LINEAR@ - Programs play back-to-back only once.+--+-- @LOOP@ - Programs play back-to-back in an endless loop. When the last+-- program in the schedule plays, playback loops back to the first program+-- in the schedule.+channel_playbackMode :: Lens.Lens' Channel Prelude.Text+channel_playbackMode = Lens.lens (\Channel' {playbackMode} -> playbackMode) (\s@Channel' {} a -> s {playbackMode = a} :: Channel)++-- | The tier for this channel. STANDARD tier channels can contain live+-- programs.+channel_tier :: Lens.Lens' Channel Prelude.Text+channel_tier = Lens.lens (\Channel' {tier} -> tier) (\s@Channel' {} a -> s {tier = a} :: Channel)++instance Data.FromJSON Channel where+  parseJSON =+    Data.withObject+      "Channel"+      ( \x ->+          Channel'+            Prelude.<$> (x Data..:? "CreationTime")+            Prelude.<*> (x Data..:? "FillerSlate")+            Prelude.<*> (x Data..:? "LastModifiedTime")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "Arn")+            Prelude.<*> (x Data..: "ChannelName")+            Prelude.<*> (x Data..: "ChannelState")+            Prelude.<*> (x Data..:? "Outputs" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "PlaybackMode")+            Prelude.<*> (x Data..: "Tier")+      )++instance Prelude.Hashable Channel where+  hashWithSalt _salt Channel' {..} =+    _salt+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` fillerSlate+      `Prelude.hashWithSalt` lastModifiedTime+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` channelName+      `Prelude.hashWithSalt` channelState+      `Prelude.hashWithSalt` outputs+      `Prelude.hashWithSalt` playbackMode+      `Prelude.hashWithSalt` tier++instance Prelude.NFData Channel where+  rnf Channel' {..} =+    Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf fillerSlate+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf channelName+      `Prelude.seq` Prelude.rnf channelState+      `Prelude.seq` Prelude.rnf outputs+      `Prelude.seq` Prelude.rnf playbackMode+      `Prelude.seq` Prelude.rnf tier
+ gen/Amazonka/MediaTailor/Types/ChannelState.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.MediaTailor.Types.ChannelState+-- Copyright   : (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.MediaTailor.Types.ChannelState+  ( ChannelState+      ( ..,+        ChannelState_RUNNING,+        ChannelState_STOPPED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ChannelState = ChannelState'+  { fromChannelState ::+      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 ChannelState_RUNNING :: ChannelState+pattern ChannelState_RUNNING = ChannelState' "RUNNING"++pattern ChannelState_STOPPED :: ChannelState+pattern ChannelState_STOPPED = ChannelState' "STOPPED"++{-# COMPLETE+  ChannelState_RUNNING,+  ChannelState_STOPPED,+  ChannelState'+  #-}
+ gen/Amazonka/MediaTailor/Types/DashConfiguration.hs view
@@ -0,0 +1,137 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaTailor.Types.DashConfiguration+-- Copyright   : (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.MediaTailor.Types.DashConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types.OriginManifestType+import qualified Amazonka.Prelude as Prelude++-- | The configuration for DASH content.+--+-- /See:/ 'newDashConfiguration' smart constructor.+data DashConfiguration = DashConfiguration'+  { -- | The URL generated by MediaTailor to initiate a playback session. The+    -- session uses server-side reporting. This setting is ignored in PUT+    -- operations.+    manifestEndpointPrefix :: Prelude.Maybe Prelude.Text,+    -- | The setting that controls whether MediaTailor includes the Location tag+    -- in DASH manifests. MediaTailor populates the Location tag with the URL+    -- for manifest update requests, to be used by players that don\'t support+    -- sticky redirects. Disable this if you have CDN routing rules set up for+    -- accessing MediaTailor manifests, and you are either using client-side+    -- reporting or your players support sticky HTTP redirects. Valid values+    -- are @DISABLED@ and @EMT_DEFAULT@. The @EMT_DEFAULT@ setting enables the+    -- inclusion of the tag and is the default value.+    mpdLocation :: Prelude.Maybe Prelude.Text,+    -- | The setting that controls whether MediaTailor handles manifests from the+    -- origin server as multi-period manifests or single-period manifests. If+    -- your origin server produces single-period manifests, set this to+    -- @SINGLE_PERIOD@. The default setting is @MULTI_PERIOD@. For multi-period+    -- manifests, omit this setting or set it to @MULTI_PERIOD@.+    originManifestType :: Prelude.Maybe OriginManifestType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DashConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'manifestEndpointPrefix', 'dashConfiguration_manifestEndpointPrefix' - The URL generated by MediaTailor to initiate a playback session. The+-- session uses server-side reporting. This setting is ignored in PUT+-- operations.+--+-- 'mpdLocation', 'dashConfiguration_mpdLocation' - The setting that controls whether MediaTailor includes the Location tag+-- in DASH manifests. MediaTailor populates the Location tag with the URL+-- for manifest update requests, to be used by players that don\'t support+-- sticky redirects. Disable this if you have CDN routing rules set up for+-- accessing MediaTailor manifests, and you are either using client-side+-- reporting or your players support sticky HTTP redirects. Valid values+-- are @DISABLED@ and @EMT_DEFAULT@. The @EMT_DEFAULT@ setting enables the+-- inclusion of the tag and is the default value.+--+-- 'originManifestType', 'dashConfiguration_originManifestType' - The setting that controls whether MediaTailor handles manifests from the+-- origin server as multi-period manifests or single-period manifests. If+-- your origin server produces single-period manifests, set this to+-- @SINGLE_PERIOD@. The default setting is @MULTI_PERIOD@. For multi-period+-- manifests, omit this setting or set it to @MULTI_PERIOD@.+newDashConfiguration ::+  DashConfiguration+newDashConfiguration =+  DashConfiguration'+    { manifestEndpointPrefix =+        Prelude.Nothing,+      mpdLocation = Prelude.Nothing,+      originManifestType = Prelude.Nothing+    }++-- | The URL generated by MediaTailor to initiate a playback session. The+-- session uses server-side reporting. This setting is ignored in PUT+-- operations.+dashConfiguration_manifestEndpointPrefix :: Lens.Lens' DashConfiguration (Prelude.Maybe Prelude.Text)+dashConfiguration_manifestEndpointPrefix = Lens.lens (\DashConfiguration' {manifestEndpointPrefix} -> manifestEndpointPrefix) (\s@DashConfiguration' {} a -> s {manifestEndpointPrefix = a} :: DashConfiguration)++-- | The setting that controls whether MediaTailor includes the Location tag+-- in DASH manifests. MediaTailor populates the Location tag with the URL+-- for manifest update requests, to be used by players that don\'t support+-- sticky redirects. Disable this if you have CDN routing rules set up for+-- accessing MediaTailor manifests, and you are either using client-side+-- reporting or your players support sticky HTTP redirects. Valid values+-- are @DISABLED@ and @EMT_DEFAULT@. The @EMT_DEFAULT@ setting enables the+-- inclusion of the tag and is the default value.+dashConfiguration_mpdLocation :: Lens.Lens' DashConfiguration (Prelude.Maybe Prelude.Text)+dashConfiguration_mpdLocation = Lens.lens (\DashConfiguration' {mpdLocation} -> mpdLocation) (\s@DashConfiguration' {} a -> s {mpdLocation = a} :: DashConfiguration)++-- | The setting that controls whether MediaTailor handles manifests from the+-- origin server as multi-period manifests or single-period manifests. If+-- your origin server produces single-period manifests, set this to+-- @SINGLE_PERIOD@. The default setting is @MULTI_PERIOD@. For multi-period+-- manifests, omit this setting or set it to @MULTI_PERIOD@.+dashConfiguration_originManifestType :: Lens.Lens' DashConfiguration (Prelude.Maybe OriginManifestType)+dashConfiguration_originManifestType = Lens.lens (\DashConfiguration' {originManifestType} -> originManifestType) (\s@DashConfiguration' {} a -> s {originManifestType = a} :: DashConfiguration)++instance Data.FromJSON DashConfiguration where+  parseJSON =+    Data.withObject+      "DashConfiguration"+      ( \x ->+          DashConfiguration'+            Prelude.<$> (x Data..:? "ManifestEndpointPrefix")+            Prelude.<*> (x Data..:? "MpdLocation")+            Prelude.<*> (x Data..:? "OriginManifestType")+      )++instance Prelude.Hashable DashConfiguration where+  hashWithSalt _salt DashConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` manifestEndpointPrefix+      `Prelude.hashWithSalt` mpdLocation+      `Prelude.hashWithSalt` originManifestType++instance Prelude.NFData DashConfiguration where+  rnf DashConfiguration' {..} =+    Prelude.rnf manifestEndpointPrefix+      `Prelude.seq` Prelude.rnf mpdLocation+      `Prelude.seq` Prelude.rnf originManifestType
+ gen/Amazonka/MediaTailor/Types/DashConfigurationForPut.hs view
@@ -0,0 +1,119 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaTailor.Types.DashConfigurationForPut+-- Copyright   : (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.MediaTailor.Types.DashConfigurationForPut where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types.OriginManifestType+import qualified Amazonka.Prelude as Prelude++-- | The configuration for DASH PUT operations.+--+-- /See:/ 'newDashConfigurationForPut' smart constructor.+data DashConfigurationForPut = DashConfigurationForPut'+  { -- | The setting that controls whether MediaTailor includes the Location tag+    -- in DASH manifests. MediaTailor populates the Location tag with the URL+    -- for manifest update requests, to be used by players that don\'t support+    -- sticky redirects. Disable this if you have CDN routing rules set up for+    -- accessing MediaTailor manifests, and you are either using client-side+    -- reporting or your players support sticky HTTP redirects. Valid values+    -- are @DISABLED@ and @EMT_DEFAULT@. The @EMT_DEFAULT@ setting enables the+    -- inclusion of the tag and is the default value.+    mpdLocation :: Prelude.Maybe Prelude.Text,+    -- | The setting that controls whether MediaTailor handles manifests from the+    -- origin server as multi-period manifests or single-period manifests. If+    -- your origin server produces single-period manifests, set this to+    -- @SINGLE_PERIOD@. The default setting is @MULTI_PERIOD@. For multi-period+    -- manifests, omit this setting or set it to @MULTI_PERIOD@.+    originManifestType :: Prelude.Maybe OriginManifestType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DashConfigurationForPut' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'mpdLocation', 'dashConfigurationForPut_mpdLocation' - The setting that controls whether MediaTailor includes the Location tag+-- in DASH manifests. MediaTailor populates the Location tag with the URL+-- for manifest update requests, to be used by players that don\'t support+-- sticky redirects. Disable this if you have CDN routing rules set up for+-- accessing MediaTailor manifests, and you are either using client-side+-- reporting or your players support sticky HTTP redirects. Valid values+-- are @DISABLED@ and @EMT_DEFAULT@. The @EMT_DEFAULT@ setting enables the+-- inclusion of the tag and is the default value.+--+-- 'originManifestType', 'dashConfigurationForPut_originManifestType' - The setting that controls whether MediaTailor handles manifests from the+-- origin server as multi-period manifests or single-period manifests. If+-- your origin server produces single-period manifests, set this to+-- @SINGLE_PERIOD@. The default setting is @MULTI_PERIOD@. For multi-period+-- manifests, omit this setting or set it to @MULTI_PERIOD@.+newDashConfigurationForPut ::+  DashConfigurationForPut+newDashConfigurationForPut =+  DashConfigurationForPut'+    { mpdLocation =+        Prelude.Nothing,+      originManifestType = Prelude.Nothing+    }++-- | The setting that controls whether MediaTailor includes the Location tag+-- in DASH manifests. MediaTailor populates the Location tag with the URL+-- for manifest update requests, to be used by players that don\'t support+-- sticky redirects. Disable this if you have CDN routing rules set up for+-- accessing MediaTailor manifests, and you are either using client-side+-- reporting or your players support sticky HTTP redirects. Valid values+-- are @DISABLED@ and @EMT_DEFAULT@. The @EMT_DEFAULT@ setting enables the+-- inclusion of the tag and is the default value.+dashConfigurationForPut_mpdLocation :: Lens.Lens' DashConfigurationForPut (Prelude.Maybe Prelude.Text)+dashConfigurationForPut_mpdLocation = Lens.lens (\DashConfigurationForPut' {mpdLocation} -> mpdLocation) (\s@DashConfigurationForPut' {} a -> s {mpdLocation = a} :: DashConfigurationForPut)++-- | The setting that controls whether MediaTailor handles manifests from the+-- origin server as multi-period manifests or single-period manifests. If+-- your origin server produces single-period manifests, set this to+-- @SINGLE_PERIOD@. The default setting is @MULTI_PERIOD@. For multi-period+-- manifests, omit this setting or set it to @MULTI_PERIOD@.+dashConfigurationForPut_originManifestType :: Lens.Lens' DashConfigurationForPut (Prelude.Maybe OriginManifestType)+dashConfigurationForPut_originManifestType = Lens.lens (\DashConfigurationForPut' {originManifestType} -> originManifestType) (\s@DashConfigurationForPut' {} a -> s {originManifestType = a} :: DashConfigurationForPut)++instance Prelude.Hashable DashConfigurationForPut where+  hashWithSalt _salt DashConfigurationForPut' {..} =+    _salt+      `Prelude.hashWithSalt` mpdLocation+      `Prelude.hashWithSalt` originManifestType++instance Prelude.NFData DashConfigurationForPut where+  rnf DashConfigurationForPut' {..} =+    Prelude.rnf mpdLocation+      `Prelude.seq` Prelude.rnf originManifestType++instance Data.ToJSON DashConfigurationForPut where+  toJSON DashConfigurationForPut' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MpdLocation" Data..=) Prelude.<$> mpdLocation,+            ("OriginManifestType" Data..=)+              Prelude.<$> originManifestType+          ]+      )
+ gen/Amazonka/MediaTailor/Types/DashPlaylistSettings.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.MediaTailor.Types.DashPlaylistSettings+-- Copyright   : (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.MediaTailor.Types.DashPlaylistSettings 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++-- | Dash manifest configuration parameters.+--+-- /See:/ 'newDashPlaylistSettings' smart constructor.+data DashPlaylistSettings = DashPlaylistSettings'+  { -- | The total duration (in seconds) of each manifest. Minimum value: @30@+    -- seconds. Maximum value: @3600@ seconds.+    manifestWindowSeconds :: Prelude.Maybe Prelude.Int,+    -- | Minimum amount of content (measured in seconds) that a player must keep+    -- available in the buffer. Minimum value: @2@ seconds. Maximum value: @60@+    -- seconds.+    minBufferTimeSeconds :: Prelude.Maybe Prelude.Int,+    -- | Minimum amount of time (in seconds) that the player should wait before+    -- requesting updates to the manifest. Minimum value: @2@ seconds. Maximum+    -- value: @60@ seconds.+    minUpdatePeriodSeconds :: Prelude.Maybe Prelude.Int,+    -- | Amount of time (in seconds) that the player should be from the live+    -- point at the end of the manifest. Minimum value: @2@ seconds. Maximum+    -- value: @60@ seconds.+    suggestedPresentationDelaySeconds :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DashPlaylistSettings' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'manifestWindowSeconds', 'dashPlaylistSettings_manifestWindowSeconds' - The total duration (in seconds) of each manifest. Minimum value: @30@+-- seconds. Maximum value: @3600@ seconds.+--+-- 'minBufferTimeSeconds', 'dashPlaylistSettings_minBufferTimeSeconds' - Minimum amount of content (measured in seconds) that a player must keep+-- available in the buffer. Minimum value: @2@ seconds. Maximum value: @60@+-- seconds.+--+-- 'minUpdatePeriodSeconds', 'dashPlaylistSettings_minUpdatePeriodSeconds' - Minimum amount of time (in seconds) that the player should wait before+-- requesting updates to the manifest. Minimum value: @2@ seconds. Maximum+-- value: @60@ seconds.+--+-- 'suggestedPresentationDelaySeconds', 'dashPlaylistSettings_suggestedPresentationDelaySeconds' - Amount of time (in seconds) that the player should be from the live+-- point at the end of the manifest. Minimum value: @2@ seconds. Maximum+-- value: @60@ seconds.+newDashPlaylistSettings ::+  DashPlaylistSettings+newDashPlaylistSettings =+  DashPlaylistSettings'+    { manifestWindowSeconds =+        Prelude.Nothing,+      minBufferTimeSeconds = Prelude.Nothing,+      minUpdatePeriodSeconds = Prelude.Nothing,+      suggestedPresentationDelaySeconds = Prelude.Nothing+    }++-- | The total duration (in seconds) of each manifest. Minimum value: @30@+-- seconds. Maximum value: @3600@ seconds.+dashPlaylistSettings_manifestWindowSeconds :: Lens.Lens' DashPlaylistSettings (Prelude.Maybe Prelude.Int)+dashPlaylistSettings_manifestWindowSeconds = Lens.lens (\DashPlaylistSettings' {manifestWindowSeconds} -> manifestWindowSeconds) (\s@DashPlaylistSettings' {} a -> s {manifestWindowSeconds = a} :: DashPlaylistSettings)++-- | Minimum amount of content (measured in seconds) that a player must keep+-- available in the buffer. Minimum value: @2@ seconds. Maximum value: @60@+-- seconds.+dashPlaylistSettings_minBufferTimeSeconds :: Lens.Lens' DashPlaylistSettings (Prelude.Maybe Prelude.Int)+dashPlaylistSettings_minBufferTimeSeconds = Lens.lens (\DashPlaylistSettings' {minBufferTimeSeconds} -> minBufferTimeSeconds) (\s@DashPlaylistSettings' {} a -> s {minBufferTimeSeconds = a} :: DashPlaylistSettings)++-- | Minimum amount of time (in seconds) that the player should wait before+-- requesting updates to the manifest. Minimum value: @2@ seconds. Maximum+-- value: @60@ seconds.+dashPlaylistSettings_minUpdatePeriodSeconds :: Lens.Lens' DashPlaylistSettings (Prelude.Maybe Prelude.Int)+dashPlaylistSettings_minUpdatePeriodSeconds = Lens.lens (\DashPlaylistSettings' {minUpdatePeriodSeconds} -> minUpdatePeriodSeconds) (\s@DashPlaylistSettings' {} a -> s {minUpdatePeriodSeconds = a} :: DashPlaylistSettings)++-- | Amount of time (in seconds) that the player should be from the live+-- point at the end of the manifest. Minimum value: @2@ seconds. Maximum+-- value: @60@ seconds.+dashPlaylistSettings_suggestedPresentationDelaySeconds :: Lens.Lens' DashPlaylistSettings (Prelude.Maybe Prelude.Int)+dashPlaylistSettings_suggestedPresentationDelaySeconds = Lens.lens (\DashPlaylistSettings' {suggestedPresentationDelaySeconds} -> suggestedPresentationDelaySeconds) (\s@DashPlaylistSettings' {} a -> s {suggestedPresentationDelaySeconds = a} :: DashPlaylistSettings)++instance Data.FromJSON DashPlaylistSettings where+  parseJSON =+    Data.withObject+      "DashPlaylistSettings"+      ( \x ->+          DashPlaylistSettings'+            Prelude.<$> (x Data..:? "ManifestWindowSeconds")+            Prelude.<*> (x Data..:? "MinBufferTimeSeconds")+            Prelude.<*> (x Data..:? "MinUpdatePeriodSeconds")+            Prelude.<*> (x Data..:? "SuggestedPresentationDelaySeconds")+      )++instance Prelude.Hashable DashPlaylistSettings where+  hashWithSalt _salt DashPlaylistSettings' {..} =+    _salt+      `Prelude.hashWithSalt` manifestWindowSeconds+      `Prelude.hashWithSalt` minBufferTimeSeconds+      `Prelude.hashWithSalt` minUpdatePeriodSeconds+      `Prelude.hashWithSalt` suggestedPresentationDelaySeconds++instance Prelude.NFData DashPlaylistSettings where+  rnf DashPlaylistSettings' {..} =+    Prelude.rnf manifestWindowSeconds+      `Prelude.seq` Prelude.rnf minBufferTimeSeconds+      `Prelude.seq` Prelude.rnf minUpdatePeriodSeconds+      `Prelude.seq` Prelude.rnf suggestedPresentationDelaySeconds++instance Data.ToJSON DashPlaylistSettings where+  toJSON DashPlaylistSettings' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ManifestWindowSeconds" Data..=)+              Prelude.<$> manifestWindowSeconds,+            ("MinBufferTimeSeconds" Data..=)+              Prelude.<$> minBufferTimeSeconds,+            ("MinUpdatePeriodSeconds" Data..=)+              Prelude.<$> minUpdatePeriodSeconds,+            ("SuggestedPresentationDelaySeconds" Data..=)+              Prelude.<$> suggestedPresentationDelaySeconds+          ]+      )
+ gen/Amazonka/MediaTailor/Types/DefaultSegmentDeliveryConfiguration.hs view
@@ -0,0 +1,102 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaTailor.Types.DefaultSegmentDeliveryConfiguration+-- Copyright   : (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.MediaTailor.Types.DefaultSegmentDeliveryConfiguration 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 optional configuration for a server that serves segments. Use this+-- if you want the segment delivery server to be different from the source+-- location server. For example, you can configure your source location+-- server to be an origination server, such as MediaPackage, and the+-- segment delivery server to be a content delivery network (CDN), such as+-- CloudFront. If you don\'t specify a segment delivery server, then the+-- source location server is used.+--+-- /See:/ 'newDefaultSegmentDeliveryConfiguration' smart constructor.+data DefaultSegmentDeliveryConfiguration = DefaultSegmentDeliveryConfiguration'+  { -- | The hostname of the server that will be used to serve segments. This+    -- string must include the protocol, such as __https:\/\/__.+    baseUrl :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DefaultSegmentDeliveryConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'baseUrl', 'defaultSegmentDeliveryConfiguration_baseUrl' - The hostname of the server that will be used to serve segments. This+-- string must include the protocol, such as __https:\/\/__.+newDefaultSegmentDeliveryConfiguration ::+  DefaultSegmentDeliveryConfiguration+newDefaultSegmentDeliveryConfiguration =+  DefaultSegmentDeliveryConfiguration'+    { baseUrl =+        Prelude.Nothing+    }++-- | The hostname of the server that will be used to serve segments. This+-- string must include the protocol, such as __https:\/\/__.+defaultSegmentDeliveryConfiguration_baseUrl :: Lens.Lens' DefaultSegmentDeliveryConfiguration (Prelude.Maybe Prelude.Text)+defaultSegmentDeliveryConfiguration_baseUrl = Lens.lens (\DefaultSegmentDeliveryConfiguration' {baseUrl} -> baseUrl) (\s@DefaultSegmentDeliveryConfiguration' {} a -> s {baseUrl = a} :: DefaultSegmentDeliveryConfiguration)++instance+  Data.FromJSON+    DefaultSegmentDeliveryConfiguration+  where+  parseJSON =+    Data.withObject+      "DefaultSegmentDeliveryConfiguration"+      ( \x ->+          DefaultSegmentDeliveryConfiguration'+            Prelude.<$> (x Data..:? "BaseUrl")+      )++instance+  Prelude.Hashable+    DefaultSegmentDeliveryConfiguration+  where+  hashWithSalt+    _salt+    DefaultSegmentDeliveryConfiguration' {..} =+      _salt `Prelude.hashWithSalt` baseUrl++instance+  Prelude.NFData+    DefaultSegmentDeliveryConfiguration+  where+  rnf DefaultSegmentDeliveryConfiguration' {..} =+    Prelude.rnf baseUrl++instance+  Data.ToJSON+    DefaultSegmentDeliveryConfiguration+  where+  toJSON DefaultSegmentDeliveryConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [("BaseUrl" Data..=) Prelude.<$> baseUrl]+      )
+ gen/Amazonka/MediaTailor/Types/HlsConfiguration.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.MediaTailor.Types.HlsConfiguration+-- Copyright   : (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.MediaTailor.Types.HlsConfiguration 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 configuration for HLS content.+--+-- /See:/ 'newHlsConfiguration' smart constructor.+data HlsConfiguration = HlsConfiguration'+  { -- | The URL that is used to initiate a playback session for devices that+    -- support Apple HLS. The session uses server-side reporting.+    manifestEndpointPrefix :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HlsConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'manifestEndpointPrefix', 'hlsConfiguration_manifestEndpointPrefix' - The URL that is used to initiate a playback session for devices that+-- support Apple HLS. The session uses server-side reporting.+newHlsConfiguration ::+  HlsConfiguration+newHlsConfiguration =+  HlsConfiguration'+    { manifestEndpointPrefix =+        Prelude.Nothing+    }++-- | The URL that is used to initiate a playback session for devices that+-- support Apple HLS. The session uses server-side reporting.+hlsConfiguration_manifestEndpointPrefix :: Lens.Lens' HlsConfiguration (Prelude.Maybe Prelude.Text)+hlsConfiguration_manifestEndpointPrefix = Lens.lens (\HlsConfiguration' {manifestEndpointPrefix} -> manifestEndpointPrefix) (\s@HlsConfiguration' {} a -> s {manifestEndpointPrefix = a} :: HlsConfiguration)++instance Data.FromJSON HlsConfiguration where+  parseJSON =+    Data.withObject+      "HlsConfiguration"+      ( \x ->+          HlsConfiguration'+            Prelude.<$> (x Data..:? "ManifestEndpointPrefix")+      )++instance Prelude.Hashable HlsConfiguration where+  hashWithSalt _salt HlsConfiguration' {..} =+    _salt `Prelude.hashWithSalt` manifestEndpointPrefix++instance Prelude.NFData HlsConfiguration where+  rnf HlsConfiguration' {..} =+    Prelude.rnf manifestEndpointPrefix
+ gen/Amazonka/MediaTailor/Types/HlsPlaylistSettings.hs view
@@ -0,0 +1,84 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaTailor.Types.HlsPlaylistSettings+-- Copyright   : (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.MediaTailor.Types.HlsPlaylistSettings 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++-- | HLS playlist configuration parameters.+--+-- /See:/ 'newHlsPlaylistSettings' smart constructor.+data HlsPlaylistSettings = HlsPlaylistSettings'+  { -- | The total duration (in seconds) of each manifest. Minimum value: @30@+    -- seconds. Maximum value: @3600@ seconds.+    manifestWindowSeconds :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HlsPlaylistSettings' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'manifestWindowSeconds', 'hlsPlaylistSettings_manifestWindowSeconds' - The total duration (in seconds) of each manifest. Minimum value: @30@+-- seconds. Maximum value: @3600@ seconds.+newHlsPlaylistSettings ::+  HlsPlaylistSettings+newHlsPlaylistSettings =+  HlsPlaylistSettings'+    { manifestWindowSeconds =+        Prelude.Nothing+    }++-- | The total duration (in seconds) of each manifest. Minimum value: @30@+-- seconds. Maximum value: @3600@ seconds.+hlsPlaylistSettings_manifestWindowSeconds :: Lens.Lens' HlsPlaylistSettings (Prelude.Maybe Prelude.Int)+hlsPlaylistSettings_manifestWindowSeconds = Lens.lens (\HlsPlaylistSettings' {manifestWindowSeconds} -> manifestWindowSeconds) (\s@HlsPlaylistSettings' {} a -> s {manifestWindowSeconds = a} :: HlsPlaylistSettings)++instance Data.FromJSON HlsPlaylistSettings where+  parseJSON =+    Data.withObject+      "HlsPlaylistSettings"+      ( \x ->+          HlsPlaylistSettings'+            Prelude.<$> (x Data..:? "ManifestWindowSeconds")+      )++instance Prelude.Hashable HlsPlaylistSettings where+  hashWithSalt _salt HlsPlaylistSettings' {..} =+    _salt `Prelude.hashWithSalt` manifestWindowSeconds++instance Prelude.NFData HlsPlaylistSettings where+  rnf HlsPlaylistSettings' {..} =+    Prelude.rnf manifestWindowSeconds++instance Data.ToJSON HlsPlaylistSettings where+  toJSON HlsPlaylistSettings' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ManifestWindowSeconds" Data..=)+              Prelude.<$> manifestWindowSeconds+          ]+      )
+ gen/Amazonka/MediaTailor/Types/HttpConfiguration.hs view
@@ -0,0 +1,79 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaTailor.Types.HttpConfiguration+-- Copyright   : (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.MediaTailor.Types.HttpConfiguration 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 HTTP configuration for the source location.+--+-- /See:/ 'newHttpConfiguration' smart constructor.+data HttpConfiguration = HttpConfiguration'+  { -- | The base URL for the source location host server. This string must+    -- include the protocol, such as __https:\/\/__.+    baseUrl :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HttpConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'baseUrl', 'httpConfiguration_baseUrl' - The base URL for the source location host server. This string must+-- include the protocol, such as __https:\/\/__.+newHttpConfiguration ::+  -- | 'baseUrl'+  Prelude.Text ->+  HttpConfiguration+newHttpConfiguration pBaseUrl_ =+  HttpConfiguration' {baseUrl = pBaseUrl_}++-- | The base URL for the source location host server. This string must+-- include the protocol, such as __https:\/\/__.+httpConfiguration_baseUrl :: Lens.Lens' HttpConfiguration Prelude.Text+httpConfiguration_baseUrl = Lens.lens (\HttpConfiguration' {baseUrl} -> baseUrl) (\s@HttpConfiguration' {} a -> s {baseUrl = a} :: HttpConfiguration)++instance Data.FromJSON HttpConfiguration where+  parseJSON =+    Data.withObject+      "HttpConfiguration"+      ( \x ->+          HttpConfiguration' Prelude.<$> (x Data..: "BaseUrl")+      )++instance Prelude.Hashable HttpConfiguration where+  hashWithSalt _salt HttpConfiguration' {..} =+    _salt `Prelude.hashWithSalt` baseUrl++instance Prelude.NFData HttpConfiguration where+  rnf HttpConfiguration' {..} = Prelude.rnf baseUrl++instance Data.ToJSON HttpConfiguration where+  toJSON HttpConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("BaseUrl" Data..= baseUrl)]+      )
+ gen/Amazonka/MediaTailor/Types/HttpPackageConfiguration.hs view
@@ -0,0 +1,125 @@+{-# 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.MediaTailor.Types.HttpPackageConfiguration+-- Copyright   : (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.MediaTailor.Types.HttpPackageConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types.Type+import qualified Amazonka.Prelude as Prelude++-- | The HTTP package configuration properties for the requested VOD source.+--+-- /See:/ 'newHttpPackageConfiguration' smart constructor.+data HttpPackageConfiguration = HttpPackageConfiguration'+  { -- | The relative path to the URL for this VOD source. This is combined with+    -- @SourceLocation::HttpConfiguration::BaseUrl@ to form a valid URL.+    path :: Prelude.Text,+    -- | The name of the source group. This has to match one of the+    -- @Channel::Outputs::SourceGroup@.+    sourceGroup :: Prelude.Text,+    -- | The streaming protocol for this package configuration. Supported values+    -- are @HLS@ and @DASH@.+    type' :: Type+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HttpPackageConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'path', 'httpPackageConfiguration_path' - The relative path to the URL for this VOD source. This is combined with+-- @SourceLocation::HttpConfiguration::BaseUrl@ to form a valid URL.+--+-- 'sourceGroup', 'httpPackageConfiguration_sourceGroup' - The name of the source group. This has to match one of the+-- @Channel::Outputs::SourceGroup@.+--+-- 'type'', 'httpPackageConfiguration_type' - The streaming protocol for this package configuration. Supported values+-- are @HLS@ and @DASH@.+newHttpPackageConfiguration ::+  -- | 'path'+  Prelude.Text ->+  -- | 'sourceGroup'+  Prelude.Text ->+  -- | 'type''+  Type ->+  HttpPackageConfiguration+newHttpPackageConfiguration+  pPath_+  pSourceGroup_+  pType_ =+    HttpPackageConfiguration'+      { path = pPath_,+        sourceGroup = pSourceGroup_,+        type' = pType_+      }++-- | The relative path to the URL for this VOD source. This is combined with+-- @SourceLocation::HttpConfiguration::BaseUrl@ to form a valid URL.+httpPackageConfiguration_path :: Lens.Lens' HttpPackageConfiguration Prelude.Text+httpPackageConfiguration_path = Lens.lens (\HttpPackageConfiguration' {path} -> path) (\s@HttpPackageConfiguration' {} a -> s {path = a} :: HttpPackageConfiguration)++-- | The name of the source group. This has to match one of the+-- @Channel::Outputs::SourceGroup@.+httpPackageConfiguration_sourceGroup :: Lens.Lens' HttpPackageConfiguration Prelude.Text+httpPackageConfiguration_sourceGroup = Lens.lens (\HttpPackageConfiguration' {sourceGroup} -> sourceGroup) (\s@HttpPackageConfiguration' {} a -> s {sourceGroup = a} :: HttpPackageConfiguration)++-- | The streaming protocol for this package configuration. Supported values+-- are @HLS@ and @DASH@.+httpPackageConfiguration_type :: Lens.Lens' HttpPackageConfiguration Type+httpPackageConfiguration_type = Lens.lens (\HttpPackageConfiguration' {type'} -> type') (\s@HttpPackageConfiguration' {} a -> s {type' = a} :: HttpPackageConfiguration)++instance Data.FromJSON HttpPackageConfiguration where+  parseJSON =+    Data.withObject+      "HttpPackageConfiguration"+      ( \x ->+          HttpPackageConfiguration'+            Prelude.<$> (x Data..: "Path")+            Prelude.<*> (x Data..: "SourceGroup")+            Prelude.<*> (x Data..: "Type")+      )++instance Prelude.Hashable HttpPackageConfiguration where+  hashWithSalt _salt HttpPackageConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` path+      `Prelude.hashWithSalt` sourceGroup+      `Prelude.hashWithSalt` type'++instance Prelude.NFData HttpPackageConfiguration where+  rnf HttpPackageConfiguration' {..} =+    Prelude.rnf path+      `Prelude.seq` Prelude.rnf sourceGroup+      `Prelude.seq` Prelude.rnf type'++instance Data.ToJSON HttpPackageConfiguration where+  toJSON HttpPackageConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Path" Data..= path),+            Prelude.Just ("SourceGroup" Data..= sourceGroup),+            Prelude.Just ("Type" Data..= type')+          ]+      )
+ gen/Amazonka/MediaTailor/Types/LivePreRollConfiguration.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaTailor.Types.LivePreRollConfiguration+-- Copyright   : (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.MediaTailor.Types.LivePreRollConfiguration 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 configuration for pre-roll ad insertion.+--+-- /See:/ 'newLivePreRollConfiguration' smart constructor.+data LivePreRollConfiguration = LivePreRollConfiguration'+  { -- | The URL for the ad decision server (ADS) for pre-roll ads. This includes+    -- the specification of static parameters and placeholders for dynamic+    -- parameters. AWS Elemental MediaTailor substitutes player-specific and+    -- session-specific parameters as needed when calling the ADS. Alternately,+    -- for testing, you can provide a static VAST URL. The maximum length is+    -- 25,000 characters.+    adDecisionServerUrl :: Prelude.Maybe Prelude.Text,+    -- | The maximum allowed duration for the pre-roll ad avail. AWS Elemental+    -- MediaTailor won\'t play pre-roll ads to exceed this duration, regardless+    -- of the total duration of ads that the ADS returns.+    maxDurationSeconds :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LivePreRollConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'adDecisionServerUrl', 'livePreRollConfiguration_adDecisionServerUrl' - The URL for the ad decision server (ADS) for pre-roll ads. This includes+-- the specification of static parameters and placeholders for dynamic+-- parameters. AWS Elemental MediaTailor substitutes player-specific and+-- session-specific parameters as needed when calling the ADS. Alternately,+-- for testing, you can provide a static VAST URL. The maximum length is+-- 25,000 characters.+--+-- 'maxDurationSeconds', 'livePreRollConfiguration_maxDurationSeconds' - The maximum allowed duration for the pre-roll ad avail. AWS Elemental+-- MediaTailor won\'t play pre-roll ads to exceed this duration, regardless+-- of the total duration of ads that the ADS returns.+newLivePreRollConfiguration ::+  LivePreRollConfiguration+newLivePreRollConfiguration =+  LivePreRollConfiguration'+    { adDecisionServerUrl =+        Prelude.Nothing,+      maxDurationSeconds = Prelude.Nothing+    }++-- | The URL for the ad decision server (ADS) for pre-roll ads. This includes+-- the specification of static parameters and placeholders for dynamic+-- parameters. AWS Elemental MediaTailor substitutes player-specific and+-- session-specific parameters as needed when calling the ADS. Alternately,+-- for testing, you can provide a static VAST URL. The maximum length is+-- 25,000 characters.+livePreRollConfiguration_adDecisionServerUrl :: Lens.Lens' LivePreRollConfiguration (Prelude.Maybe Prelude.Text)+livePreRollConfiguration_adDecisionServerUrl = Lens.lens (\LivePreRollConfiguration' {adDecisionServerUrl} -> adDecisionServerUrl) (\s@LivePreRollConfiguration' {} a -> s {adDecisionServerUrl = a} :: LivePreRollConfiguration)++-- | The maximum allowed duration for the pre-roll ad avail. AWS Elemental+-- MediaTailor won\'t play pre-roll ads to exceed this duration, regardless+-- of the total duration of ads that the ADS returns.+livePreRollConfiguration_maxDurationSeconds :: Lens.Lens' LivePreRollConfiguration (Prelude.Maybe Prelude.Int)+livePreRollConfiguration_maxDurationSeconds = Lens.lens (\LivePreRollConfiguration' {maxDurationSeconds} -> maxDurationSeconds) (\s@LivePreRollConfiguration' {} a -> s {maxDurationSeconds = a} :: LivePreRollConfiguration)++instance Data.FromJSON LivePreRollConfiguration where+  parseJSON =+    Data.withObject+      "LivePreRollConfiguration"+      ( \x ->+          LivePreRollConfiguration'+            Prelude.<$> (x Data..:? "AdDecisionServerUrl")+            Prelude.<*> (x Data..:? "MaxDurationSeconds")+      )++instance Prelude.Hashable LivePreRollConfiguration where+  hashWithSalt _salt LivePreRollConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` adDecisionServerUrl+      `Prelude.hashWithSalt` maxDurationSeconds++instance Prelude.NFData LivePreRollConfiguration where+  rnf LivePreRollConfiguration' {..} =+    Prelude.rnf adDecisionServerUrl+      `Prelude.seq` Prelude.rnf maxDurationSeconds++instance Data.ToJSON LivePreRollConfiguration where+  toJSON LivePreRollConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AdDecisionServerUrl" Data..=)+              Prelude.<$> adDecisionServerUrl,+            ("MaxDurationSeconds" Data..=)+              Prelude.<$> maxDurationSeconds+          ]+      )
+ gen/Amazonka/MediaTailor/Types/LiveSource.hs view
@@ -0,0 +1,166 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaTailor.Types.LiveSource+-- Copyright   : (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.MediaTailor.Types.LiveSource where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types.HttpPackageConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Live source configuration parameters.+--+-- /See:/ 'newLiveSource' smart constructor.+data LiveSource = LiveSource'+  { -- | The timestamp that indicates when the live source was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The timestamp that indicates when the live source was last modified.+    lastModifiedTime :: Prelude.Maybe Data.POSIX,+    -- | The tags assigned to the live source. Tags are key-value pairs that you+    -- can associate with Amazon resources to help with organization, access+    -- control, and cost tracking. For more information, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The ARN for the live source.+    arn :: Prelude.Text,+    -- | The HTTP package configurations for the live source.+    httpPackageConfigurations :: [HttpPackageConfiguration],+    -- | The name that\'s used to refer to a live source.+    liveSourceName :: Prelude.Text,+    -- | The name of the source location.+    sourceLocationName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LiveSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationTime', 'liveSource_creationTime' - The timestamp that indicates when the live source was created.+--+-- 'lastModifiedTime', 'liveSource_lastModifiedTime' - The timestamp that indicates when the live source was last modified.+--+-- 'tags', 'liveSource_tags' - The tags assigned to the live source. Tags are key-value pairs that you+-- can associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+--+-- 'arn', 'liveSource_arn' - The ARN for the live source.+--+-- 'httpPackageConfigurations', 'liveSource_httpPackageConfigurations' - The HTTP package configurations for the live source.+--+-- 'liveSourceName', 'liveSource_liveSourceName' - The name that\'s used to refer to a live source.+--+-- 'sourceLocationName', 'liveSource_sourceLocationName' - The name of the source location.+newLiveSource ::+  -- | 'arn'+  Prelude.Text ->+  -- | 'liveSourceName'+  Prelude.Text ->+  -- | 'sourceLocationName'+  Prelude.Text ->+  LiveSource+newLiveSource+  pArn_+  pLiveSourceName_+  pSourceLocationName_ =+    LiveSource'+      { creationTime = Prelude.Nothing,+        lastModifiedTime = Prelude.Nothing,+        tags = Prelude.Nothing,+        arn = pArn_,+        httpPackageConfigurations = Prelude.mempty,+        liveSourceName = pLiveSourceName_,+        sourceLocationName = pSourceLocationName_+      }++-- | The timestamp that indicates when the live source was created.+liveSource_creationTime :: Lens.Lens' LiveSource (Prelude.Maybe Prelude.UTCTime)+liveSource_creationTime = Lens.lens (\LiveSource' {creationTime} -> creationTime) (\s@LiveSource' {} a -> s {creationTime = a} :: LiveSource) Prelude.. Lens.mapping Data._Time++-- | The timestamp that indicates when the live source was last modified.+liveSource_lastModifiedTime :: Lens.Lens' LiveSource (Prelude.Maybe Prelude.UTCTime)+liveSource_lastModifiedTime = Lens.lens (\LiveSource' {lastModifiedTime} -> lastModifiedTime) (\s@LiveSource' {} a -> s {lastModifiedTime = a} :: LiveSource) Prelude.. Lens.mapping Data._Time++-- | The tags assigned to the live source. Tags are key-value pairs that you+-- can associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+liveSource_tags :: Lens.Lens' LiveSource (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+liveSource_tags = Lens.lens (\LiveSource' {tags} -> tags) (\s@LiveSource' {} a -> s {tags = a} :: LiveSource) Prelude.. Lens.mapping Lens.coerced++-- | The ARN for the live source.+liveSource_arn :: Lens.Lens' LiveSource Prelude.Text+liveSource_arn = Lens.lens (\LiveSource' {arn} -> arn) (\s@LiveSource' {} a -> s {arn = a} :: LiveSource)++-- | The HTTP package configurations for the live source.+liveSource_httpPackageConfigurations :: Lens.Lens' LiveSource [HttpPackageConfiguration]+liveSource_httpPackageConfigurations = Lens.lens (\LiveSource' {httpPackageConfigurations} -> httpPackageConfigurations) (\s@LiveSource' {} a -> s {httpPackageConfigurations = a} :: LiveSource) Prelude.. Lens.coerced++-- | The name that\'s used to refer to a live source.+liveSource_liveSourceName :: Lens.Lens' LiveSource Prelude.Text+liveSource_liveSourceName = Lens.lens (\LiveSource' {liveSourceName} -> liveSourceName) (\s@LiveSource' {} a -> s {liveSourceName = a} :: LiveSource)++-- | The name of the source location.+liveSource_sourceLocationName :: Lens.Lens' LiveSource Prelude.Text+liveSource_sourceLocationName = Lens.lens (\LiveSource' {sourceLocationName} -> sourceLocationName) (\s@LiveSource' {} a -> s {sourceLocationName = a} :: LiveSource)++instance Data.FromJSON LiveSource where+  parseJSON =+    Data.withObject+      "LiveSource"+      ( \x ->+          LiveSource'+            Prelude.<$> (x Data..:? "CreationTime")+            Prelude.<*> (x Data..:? "LastModifiedTime")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "Arn")+            Prelude.<*> ( x+                            Data..:? "HttpPackageConfigurations"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "LiveSourceName")+            Prelude.<*> (x Data..: "SourceLocationName")+      )++instance Prelude.Hashable LiveSource where+  hashWithSalt _salt LiveSource' {..} =+    _salt+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` lastModifiedTime+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` httpPackageConfigurations+      `Prelude.hashWithSalt` liveSourceName+      `Prelude.hashWithSalt` sourceLocationName++instance Prelude.NFData LiveSource where+  rnf LiveSource' {..} =+    Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf httpPackageConfigurations+      `Prelude.seq` Prelude.rnf liveSourceName+      `Prelude.seq` Prelude.rnf sourceLocationName
+ gen/Amazonka/MediaTailor/Types/LogConfiguration.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaTailor.Types.LogConfiguration+-- Copyright   : (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.MediaTailor.Types.LogConfiguration 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++-- | Returns Amazon CloudWatch log settings for a playback configuration.+--+-- /See:/ 'newLogConfiguration' smart constructor.+data LogConfiguration = LogConfiguration'+  { -- | The percentage of session logs that MediaTailor sends to your Cloudwatch+    -- Logs account. For example, if your playback configuration has 1000+    -- sessions and @percentEnabled@ is set to @60@, MediaTailor sends logs for+    -- 600 of the sessions to CloudWatch Logs. MediaTailor decides at random+    -- which of the playback configuration sessions to send logs for. If you+    -- want to view logs for a specific session, you can use the+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/debug-log-mode.html debug log mode>.+    --+    -- Valid values: @0@ - @100@+    percentEnabled :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LogConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'percentEnabled', 'logConfiguration_percentEnabled' - The percentage of session logs that MediaTailor sends to your Cloudwatch+-- Logs account. For example, if your playback configuration has 1000+-- sessions and @percentEnabled@ is set to @60@, MediaTailor sends logs for+-- 600 of the sessions to CloudWatch Logs. MediaTailor decides at random+-- which of the playback configuration sessions to send logs for. If you+-- want to view logs for a specific session, you can use the+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/debug-log-mode.html debug log mode>.+--+-- Valid values: @0@ - @100@+newLogConfiguration ::+  -- | 'percentEnabled'+  Prelude.Int ->+  LogConfiguration+newLogConfiguration pPercentEnabled_ =+  LogConfiguration'+    { percentEnabled =+        pPercentEnabled_+    }++-- | The percentage of session logs that MediaTailor sends to your Cloudwatch+-- Logs account. For example, if your playback configuration has 1000+-- sessions and @percentEnabled@ is set to @60@, MediaTailor sends logs for+-- 600 of the sessions to CloudWatch Logs. MediaTailor decides at random+-- which of the playback configuration sessions to send logs for. If you+-- want to view logs for a specific session, you can use the+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/debug-log-mode.html debug log mode>.+--+-- Valid values: @0@ - @100@+logConfiguration_percentEnabled :: Lens.Lens' LogConfiguration Prelude.Int+logConfiguration_percentEnabled = Lens.lens (\LogConfiguration' {percentEnabled} -> percentEnabled) (\s@LogConfiguration' {} a -> s {percentEnabled = a} :: LogConfiguration)++instance Data.FromJSON LogConfiguration where+  parseJSON =+    Data.withObject+      "LogConfiguration"+      ( \x ->+          LogConfiguration'+            Prelude.<$> (x Data..: "PercentEnabled")+      )++instance Prelude.Hashable LogConfiguration where+  hashWithSalt _salt LogConfiguration' {..} =+    _salt `Prelude.hashWithSalt` percentEnabled++instance Prelude.NFData LogConfiguration where+  rnf LogConfiguration' {..} =+    Prelude.rnf percentEnabled
+ gen/Amazonka/MediaTailor/Types/ManifestProcessingRules.hs view
@@ -0,0 +1,102 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaTailor.Types.ManifestProcessingRules+-- Copyright   : (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.MediaTailor.Types.ManifestProcessingRules where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types.AdMarkerPassthrough+import qualified Amazonka.Prelude as Prelude++-- | The configuration for manifest processing rules. Manifest processing+-- rules enable customization of the personalized manifests created by+-- MediaTailor.+--+-- /See:/ 'newManifestProcessingRules' smart constructor.+data ManifestProcessingRules = ManifestProcessingRules'+  { -- | For HLS, when set to @true@, MediaTailor passes through @EXT-X-CUE-IN@,+    -- @EXT-X-CUE-OUT@, and @EXT-X-SPLICEPOINT-SCTE35@ ad markers from the+    -- origin manifest to the MediaTailor personalized manifest.+    --+    -- No logic is applied to these ad markers. For example, if @EXT-X-CUE-OUT@+    -- has a value of @60@, but no ads are filled for that ad break,+    -- MediaTailor will not set the value to @0@.+    adMarkerPassthrough :: Prelude.Maybe AdMarkerPassthrough+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ManifestProcessingRules' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'adMarkerPassthrough', 'manifestProcessingRules_adMarkerPassthrough' - For HLS, when set to @true@, MediaTailor passes through @EXT-X-CUE-IN@,+-- @EXT-X-CUE-OUT@, and @EXT-X-SPLICEPOINT-SCTE35@ ad markers from the+-- origin manifest to the MediaTailor personalized manifest.+--+-- No logic is applied to these ad markers. For example, if @EXT-X-CUE-OUT@+-- has a value of @60@, but no ads are filled for that ad break,+-- MediaTailor will not set the value to @0@.+newManifestProcessingRules ::+  ManifestProcessingRules+newManifestProcessingRules =+  ManifestProcessingRules'+    { adMarkerPassthrough =+        Prelude.Nothing+    }++-- | For HLS, when set to @true@, MediaTailor passes through @EXT-X-CUE-IN@,+-- @EXT-X-CUE-OUT@, and @EXT-X-SPLICEPOINT-SCTE35@ ad markers from the+-- origin manifest to the MediaTailor personalized manifest.+--+-- No logic is applied to these ad markers. For example, if @EXT-X-CUE-OUT@+-- has a value of @60@, but no ads are filled for that ad break,+-- MediaTailor will not set the value to @0@.+manifestProcessingRules_adMarkerPassthrough :: Lens.Lens' ManifestProcessingRules (Prelude.Maybe AdMarkerPassthrough)+manifestProcessingRules_adMarkerPassthrough = Lens.lens (\ManifestProcessingRules' {adMarkerPassthrough} -> adMarkerPassthrough) (\s@ManifestProcessingRules' {} a -> s {adMarkerPassthrough = a} :: ManifestProcessingRules)++instance Data.FromJSON ManifestProcessingRules where+  parseJSON =+    Data.withObject+      "ManifestProcessingRules"+      ( \x ->+          ManifestProcessingRules'+            Prelude.<$> (x Data..:? "AdMarkerPassthrough")+      )++instance Prelude.Hashable ManifestProcessingRules where+  hashWithSalt _salt ManifestProcessingRules' {..} =+    _salt `Prelude.hashWithSalt` adMarkerPassthrough++instance Prelude.NFData ManifestProcessingRules where+  rnf ManifestProcessingRules' {..} =+    Prelude.rnf adMarkerPassthrough++instance Data.ToJSON ManifestProcessingRules where+  toJSON ManifestProcessingRules' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AdMarkerPassthrough" Data..=)+              Prelude.<$> adMarkerPassthrough+          ]+      )
+ gen/Amazonka/MediaTailor/Types/MessageType.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.MediaTailor.Types.MessageType+-- Copyright   : (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.MediaTailor.Types.MessageType+  ( MessageType+      ( ..,+        MessageType_SPLICE_INSERT,+        MessageType_TIME_SIGNAL+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype MessageType = MessageType'+  { fromMessageType ::+      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 MessageType_SPLICE_INSERT :: MessageType+pattern MessageType_SPLICE_INSERT = MessageType' "SPLICE_INSERT"++pattern MessageType_TIME_SIGNAL :: MessageType+pattern MessageType_TIME_SIGNAL = MessageType' "TIME_SIGNAL"++{-# COMPLETE+  MessageType_SPLICE_INSERT,+  MessageType_TIME_SIGNAL,+  MessageType'+  #-}
+ gen/Amazonka/MediaTailor/Types/Mode.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.MediaTailor.Types.Mode+-- Copyright   : (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.MediaTailor.Types.Mode+  ( Mode+      ( ..,+        Mode_BEHIND_LIVE_EDGE,+        Mode_OFF+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Mode = Mode' {fromMode :: 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 Mode_BEHIND_LIVE_EDGE :: Mode+pattern Mode_BEHIND_LIVE_EDGE = Mode' "BEHIND_LIVE_EDGE"++pattern Mode_OFF :: Mode+pattern Mode_OFF = Mode' "OFF"++{-# COMPLETE+  Mode_BEHIND_LIVE_EDGE,+  Mode_OFF,+  Mode'+  #-}
+ gen/Amazonka/MediaTailor/Types/Operator.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.MediaTailor.Types.Operator+-- Copyright   : (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.MediaTailor.Types.Operator+  ( Operator+      ( ..,+        Operator_EQUALS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Operator = Operator'+  { fromOperator ::+      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 Operator_EQUALS :: Operator+pattern Operator_EQUALS = Operator' "EQUALS"++{-# COMPLETE+  Operator_EQUALS,+  Operator'+  #-}
+ gen/Amazonka/MediaTailor/Types/OriginManifestType.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.MediaTailor.Types.OriginManifestType+-- Copyright   : (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.MediaTailor.Types.OriginManifestType+  ( OriginManifestType+      ( ..,+        OriginManifestType_MULTI_PERIOD,+        OriginManifestType_SINGLE_PERIOD+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype OriginManifestType = OriginManifestType'+  { fromOriginManifestType ::+      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 OriginManifestType_MULTI_PERIOD :: OriginManifestType+pattern OriginManifestType_MULTI_PERIOD = OriginManifestType' "MULTI_PERIOD"++pattern OriginManifestType_SINGLE_PERIOD :: OriginManifestType+pattern OriginManifestType_SINGLE_PERIOD = OriginManifestType' "SINGLE_PERIOD"++{-# COMPLETE+  OriginManifestType_MULTI_PERIOD,+  OriginManifestType_SINGLE_PERIOD,+  OriginManifestType'+  #-}
+ gen/Amazonka/MediaTailor/Types/PlaybackConfiguration.hs view
@@ -0,0 +1,419 @@+{-# 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.MediaTailor.Types.PlaybackConfiguration+-- Copyright   : (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.MediaTailor.Types.PlaybackConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types.AvailSuppression+import Amazonka.MediaTailor.Types.Bumper+import Amazonka.MediaTailor.Types.CdnConfiguration+import Amazonka.MediaTailor.Types.DashConfiguration+import Amazonka.MediaTailor.Types.HlsConfiguration+import Amazonka.MediaTailor.Types.LivePreRollConfiguration+import Amazonka.MediaTailor.Types.LogConfiguration+import Amazonka.MediaTailor.Types.ManifestProcessingRules+import qualified Amazonka.Prelude as Prelude++-- | A playback configuration. For information about MediaTailor+-- configurations, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/configurations.html Working with configurations in AWS Elemental MediaTailor>.+--+-- /See:/ 'newPlaybackConfiguration' smart constructor.+data PlaybackConfiguration = PlaybackConfiguration'+  { -- | The URL for the ad decision server (ADS). This includes the+    -- specification of static parameters and placeholders for dynamic+    -- parameters. AWS Elemental MediaTailor substitutes player-specific and+    -- session-specific parameters as needed when calling the ADS. Alternately,+    -- for testing you can provide a static VAST URL. The maximum length is+    -- 25,000 characters.+    adDecisionServerUrl :: Prelude.Maybe Prelude.Text,+    -- | The configuration for avail suppression, also known as ad suppression.+    -- For more information about ad suppression, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Suppression>.+    availSuppression :: Prelude.Maybe AvailSuppression,+    -- | The configuration for bumpers. Bumpers are short audio or video clips+    -- that play at the start or before the end of an ad break. To learn more+    -- about bumpers, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/bumpers.html Bumpers>.+    bumper :: Prelude.Maybe Bumper,+    -- | The configuration for using a content delivery network (CDN), like+    -- Amazon CloudFront, for content and ad segment management.+    cdnConfiguration :: Prelude.Maybe CdnConfiguration,+    -- | The player parameters and aliases used as dynamic variables during+    -- session initialization. For more information, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/variables-domain.html Domain Variables>.+    configurationAliases :: Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | The configuration for a DASH source.+    dashConfiguration :: Prelude.Maybe DashConfiguration,+    -- | The configuration for HLS content.+    hlsConfiguration :: Prelude.Maybe HlsConfiguration,+    -- | The configuration for pre-roll ad insertion.+    livePreRollConfiguration :: Prelude.Maybe LivePreRollConfiguration,+    -- | The Amazon CloudWatch log settings for a playback configuration.+    logConfiguration :: Prelude.Maybe LogConfiguration,+    -- | The configuration for manifest processing rules. Manifest processing+    -- rules enable customization of the personalized manifests created by+    -- MediaTailor.+    manifestProcessingRules :: Prelude.Maybe ManifestProcessingRules,+    -- | The identifier for the playback configuration.+    name :: Prelude.Maybe Prelude.Text,+    -- | Defines the maximum duration of underfilled ad time (in seconds) allowed+    -- in an ad break. If the duration of underfilled ad time exceeds the+    -- personalization threshold, then the personalization of the ad break is+    -- abandoned and the underlying content is shown. This feature applies to+    -- /ad replacement/ in live and VOD streams, rather than ad insertion,+    -- because it relies on an underlying content stream. For more information+    -- about ad break behavior, including ad replacement and insertion, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Behavior in AWS Elemental MediaTailor>.+    personalizationThresholdSeconds :: Prelude.Maybe Prelude.Natural,+    -- | The Amazon Resource Name (ARN) for the playback configuration.+    playbackConfigurationArn :: Prelude.Maybe Prelude.Text,+    -- | The URL that the player accesses to get a manifest from AWS Elemental+    -- MediaTailor.+    playbackEndpointPrefix :: Prelude.Maybe Prelude.Text,+    -- | The URL that the player uses to initialize a session that uses+    -- client-side reporting.+    sessionInitializationEndpointPrefix :: Prelude.Maybe Prelude.Text,+    -- | The URL for a video asset to transcode and use to fill in time that\'s+    -- not used by ads. AWS Elemental MediaTailor shows the slate to fill in+    -- gaps in media content. Configuring the slate is optional for non-VPAID+    -- playback configurations. For VPAID, the slate is required because+    -- MediaTailor provides it in the slots designated for dynamic ad content.+    -- The slate must be a high-quality asset that contains both audio and+    -- video.+    slateAdUrl :: Prelude.Maybe Prelude.Text,+    -- | The tags to assign to the playback configuration. Tags are key-value+    -- pairs that you can associate with Amazon resources to help with+    -- organization, access control, and cost tracking. For more information,+    -- see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name that is used to associate this playback configuration with a+    -- custom transcode profile. This overrides the dynamic transcoding+    -- defaults of MediaTailor. Use this only if you have already set up custom+    -- profiles with the help of AWS Support.+    transcodeProfileName :: Prelude.Maybe Prelude.Text,+    -- | The URL prefix for the parent manifest for the stream, minus the asset+    -- ID. The maximum length is 512 characters.+    videoContentSourceUrl :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PlaybackConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'adDecisionServerUrl', 'playbackConfiguration_adDecisionServerUrl' - The URL for the ad decision server (ADS). This includes the+-- specification of static parameters and placeholders for dynamic+-- parameters. AWS Elemental MediaTailor substitutes player-specific and+-- session-specific parameters as needed when calling the ADS. Alternately,+-- for testing you can provide a static VAST URL. The maximum length is+-- 25,000 characters.+--+-- 'availSuppression', 'playbackConfiguration_availSuppression' - The configuration for avail suppression, also known as ad suppression.+-- For more information about ad suppression, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Suppression>.+--+-- 'bumper', 'playbackConfiguration_bumper' - The configuration for bumpers. Bumpers are short audio or video clips+-- that play at the start or before the end of an ad break. To learn more+-- about bumpers, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/bumpers.html Bumpers>.+--+-- 'cdnConfiguration', 'playbackConfiguration_cdnConfiguration' - The configuration for using a content delivery network (CDN), like+-- Amazon CloudFront, for content and ad segment management.+--+-- 'configurationAliases', 'playbackConfiguration_configurationAliases' - The player parameters and aliases used as dynamic variables during+-- session initialization. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/variables-domain.html Domain Variables>.+--+-- 'dashConfiguration', 'playbackConfiguration_dashConfiguration' - The configuration for a DASH source.+--+-- 'hlsConfiguration', 'playbackConfiguration_hlsConfiguration' - The configuration for HLS content.+--+-- 'livePreRollConfiguration', 'playbackConfiguration_livePreRollConfiguration' - The configuration for pre-roll ad insertion.+--+-- 'logConfiguration', 'playbackConfiguration_logConfiguration' - The Amazon CloudWatch log settings for a playback configuration.+--+-- 'manifestProcessingRules', 'playbackConfiguration_manifestProcessingRules' - The configuration for manifest processing rules. Manifest processing+-- rules enable customization of the personalized manifests created by+-- MediaTailor.+--+-- 'name', 'playbackConfiguration_name' - The identifier for the playback configuration.+--+-- 'personalizationThresholdSeconds', 'playbackConfiguration_personalizationThresholdSeconds' - Defines the maximum duration of underfilled ad time (in seconds) allowed+-- in an ad break. If the duration of underfilled ad time exceeds the+-- personalization threshold, then the personalization of the ad break is+-- abandoned and the underlying content is shown. This feature applies to+-- /ad replacement/ in live and VOD streams, rather than ad insertion,+-- because it relies on an underlying content stream. For more information+-- about ad break behavior, including ad replacement and insertion, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Behavior in AWS Elemental MediaTailor>.+--+-- 'playbackConfigurationArn', 'playbackConfiguration_playbackConfigurationArn' - The Amazon Resource Name (ARN) for the playback configuration.+--+-- 'playbackEndpointPrefix', 'playbackConfiguration_playbackEndpointPrefix' - The URL that the player accesses to get a manifest from AWS Elemental+-- MediaTailor.+--+-- 'sessionInitializationEndpointPrefix', 'playbackConfiguration_sessionInitializationEndpointPrefix' - The URL that the player uses to initialize a session that uses+-- client-side reporting.+--+-- 'slateAdUrl', 'playbackConfiguration_slateAdUrl' - The URL for a video asset to transcode and use to fill in time that\'s+-- not used by ads. AWS Elemental MediaTailor shows the slate to fill in+-- gaps in media content. Configuring the slate is optional for non-VPAID+-- playback configurations. For VPAID, the slate is required because+-- MediaTailor provides it in the slots designated for dynamic ad content.+-- The slate must be a high-quality asset that contains both audio and+-- video.+--+-- 'tags', 'playbackConfiguration_tags' - The tags to assign to the playback configuration. Tags are key-value+-- pairs that you can associate with Amazon resources to help with+-- organization, access control, and cost tracking. For more information,+-- see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+--+-- 'transcodeProfileName', 'playbackConfiguration_transcodeProfileName' - The name that is used to associate this playback configuration with a+-- custom transcode profile. This overrides the dynamic transcoding+-- defaults of MediaTailor. Use this only if you have already set up custom+-- profiles with the help of AWS Support.+--+-- 'videoContentSourceUrl', 'playbackConfiguration_videoContentSourceUrl' - The URL prefix for the parent manifest for the stream, minus the asset+-- ID. The maximum length is 512 characters.+newPlaybackConfiguration ::+  PlaybackConfiguration+newPlaybackConfiguration =+  PlaybackConfiguration'+    { adDecisionServerUrl =+        Prelude.Nothing,+      availSuppression = Prelude.Nothing,+      bumper = Prelude.Nothing,+      cdnConfiguration = Prelude.Nothing,+      configurationAliases = Prelude.Nothing,+      dashConfiguration = Prelude.Nothing,+      hlsConfiguration = Prelude.Nothing,+      livePreRollConfiguration = Prelude.Nothing,+      logConfiguration = Prelude.Nothing,+      manifestProcessingRules = Prelude.Nothing,+      name = Prelude.Nothing,+      personalizationThresholdSeconds = Prelude.Nothing,+      playbackConfigurationArn = Prelude.Nothing,+      playbackEndpointPrefix = Prelude.Nothing,+      sessionInitializationEndpointPrefix =+        Prelude.Nothing,+      slateAdUrl = Prelude.Nothing,+      tags = Prelude.Nothing,+      transcodeProfileName = Prelude.Nothing,+      videoContentSourceUrl = Prelude.Nothing+    }++-- | The URL for the ad decision server (ADS). This includes the+-- specification of static parameters and placeholders for dynamic+-- parameters. AWS Elemental MediaTailor substitutes player-specific and+-- session-specific parameters as needed when calling the ADS. Alternately,+-- for testing you can provide a static VAST URL. The maximum length is+-- 25,000 characters.+playbackConfiguration_adDecisionServerUrl :: Lens.Lens' PlaybackConfiguration (Prelude.Maybe Prelude.Text)+playbackConfiguration_adDecisionServerUrl = Lens.lens (\PlaybackConfiguration' {adDecisionServerUrl} -> adDecisionServerUrl) (\s@PlaybackConfiguration' {} a -> s {adDecisionServerUrl = a} :: PlaybackConfiguration)++-- | The configuration for avail suppression, also known as ad suppression.+-- For more information about ad suppression, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Suppression>.+playbackConfiguration_availSuppression :: Lens.Lens' PlaybackConfiguration (Prelude.Maybe AvailSuppression)+playbackConfiguration_availSuppression = Lens.lens (\PlaybackConfiguration' {availSuppression} -> availSuppression) (\s@PlaybackConfiguration' {} a -> s {availSuppression = a} :: PlaybackConfiguration)++-- | The configuration for bumpers. Bumpers are short audio or video clips+-- that play at the start or before the end of an ad break. To learn more+-- about bumpers, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/bumpers.html Bumpers>.+playbackConfiguration_bumper :: Lens.Lens' PlaybackConfiguration (Prelude.Maybe Bumper)+playbackConfiguration_bumper = Lens.lens (\PlaybackConfiguration' {bumper} -> bumper) (\s@PlaybackConfiguration' {} a -> s {bumper = a} :: PlaybackConfiguration)++-- | The configuration for using a content delivery network (CDN), like+-- Amazon CloudFront, for content and ad segment management.+playbackConfiguration_cdnConfiguration :: Lens.Lens' PlaybackConfiguration (Prelude.Maybe CdnConfiguration)+playbackConfiguration_cdnConfiguration = Lens.lens (\PlaybackConfiguration' {cdnConfiguration} -> cdnConfiguration) (\s@PlaybackConfiguration' {} a -> s {cdnConfiguration = a} :: PlaybackConfiguration)++-- | The player parameters and aliases used as dynamic variables during+-- session initialization. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/variables-domain.html Domain Variables>.+playbackConfiguration_configurationAliases :: Lens.Lens' PlaybackConfiguration (Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)))+playbackConfiguration_configurationAliases = Lens.lens (\PlaybackConfiguration' {configurationAliases} -> configurationAliases) (\s@PlaybackConfiguration' {} a -> s {configurationAliases = a} :: PlaybackConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The configuration for a DASH source.+playbackConfiguration_dashConfiguration :: Lens.Lens' PlaybackConfiguration (Prelude.Maybe DashConfiguration)+playbackConfiguration_dashConfiguration = Lens.lens (\PlaybackConfiguration' {dashConfiguration} -> dashConfiguration) (\s@PlaybackConfiguration' {} a -> s {dashConfiguration = a} :: PlaybackConfiguration)++-- | The configuration for HLS content.+playbackConfiguration_hlsConfiguration :: Lens.Lens' PlaybackConfiguration (Prelude.Maybe HlsConfiguration)+playbackConfiguration_hlsConfiguration = Lens.lens (\PlaybackConfiguration' {hlsConfiguration} -> hlsConfiguration) (\s@PlaybackConfiguration' {} a -> s {hlsConfiguration = a} :: PlaybackConfiguration)++-- | The configuration for pre-roll ad insertion.+playbackConfiguration_livePreRollConfiguration :: Lens.Lens' PlaybackConfiguration (Prelude.Maybe LivePreRollConfiguration)+playbackConfiguration_livePreRollConfiguration = Lens.lens (\PlaybackConfiguration' {livePreRollConfiguration} -> livePreRollConfiguration) (\s@PlaybackConfiguration' {} a -> s {livePreRollConfiguration = a} :: PlaybackConfiguration)++-- | The Amazon CloudWatch log settings for a playback configuration.+playbackConfiguration_logConfiguration :: Lens.Lens' PlaybackConfiguration (Prelude.Maybe LogConfiguration)+playbackConfiguration_logConfiguration = Lens.lens (\PlaybackConfiguration' {logConfiguration} -> logConfiguration) (\s@PlaybackConfiguration' {} a -> s {logConfiguration = a} :: PlaybackConfiguration)++-- | The configuration for manifest processing rules. Manifest processing+-- rules enable customization of the personalized manifests created by+-- MediaTailor.+playbackConfiguration_manifestProcessingRules :: Lens.Lens' PlaybackConfiguration (Prelude.Maybe ManifestProcessingRules)+playbackConfiguration_manifestProcessingRules = Lens.lens (\PlaybackConfiguration' {manifestProcessingRules} -> manifestProcessingRules) (\s@PlaybackConfiguration' {} a -> s {manifestProcessingRules = a} :: PlaybackConfiguration)++-- | The identifier for the playback configuration.+playbackConfiguration_name :: Lens.Lens' PlaybackConfiguration (Prelude.Maybe Prelude.Text)+playbackConfiguration_name = Lens.lens (\PlaybackConfiguration' {name} -> name) (\s@PlaybackConfiguration' {} a -> s {name = a} :: PlaybackConfiguration)++-- | Defines the maximum duration of underfilled ad time (in seconds) allowed+-- in an ad break. If the duration of underfilled ad time exceeds the+-- personalization threshold, then the personalization of the ad break is+-- abandoned and the underlying content is shown. This feature applies to+-- /ad replacement/ in live and VOD streams, rather than ad insertion,+-- because it relies on an underlying content stream. For more information+-- about ad break behavior, including ad replacement and insertion, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Behavior in AWS Elemental MediaTailor>.+playbackConfiguration_personalizationThresholdSeconds :: Lens.Lens' PlaybackConfiguration (Prelude.Maybe Prelude.Natural)+playbackConfiguration_personalizationThresholdSeconds = Lens.lens (\PlaybackConfiguration' {personalizationThresholdSeconds} -> personalizationThresholdSeconds) (\s@PlaybackConfiguration' {} a -> s {personalizationThresholdSeconds = a} :: PlaybackConfiguration)++-- | The Amazon Resource Name (ARN) for the playback configuration.+playbackConfiguration_playbackConfigurationArn :: Lens.Lens' PlaybackConfiguration (Prelude.Maybe Prelude.Text)+playbackConfiguration_playbackConfigurationArn = Lens.lens (\PlaybackConfiguration' {playbackConfigurationArn} -> playbackConfigurationArn) (\s@PlaybackConfiguration' {} a -> s {playbackConfigurationArn = a} :: PlaybackConfiguration)++-- | The URL that the player accesses to get a manifest from AWS Elemental+-- MediaTailor.+playbackConfiguration_playbackEndpointPrefix :: Lens.Lens' PlaybackConfiguration (Prelude.Maybe Prelude.Text)+playbackConfiguration_playbackEndpointPrefix = Lens.lens (\PlaybackConfiguration' {playbackEndpointPrefix} -> playbackEndpointPrefix) (\s@PlaybackConfiguration' {} a -> s {playbackEndpointPrefix = a} :: PlaybackConfiguration)++-- | The URL that the player uses to initialize a session that uses+-- client-side reporting.+playbackConfiguration_sessionInitializationEndpointPrefix :: Lens.Lens' PlaybackConfiguration (Prelude.Maybe Prelude.Text)+playbackConfiguration_sessionInitializationEndpointPrefix = Lens.lens (\PlaybackConfiguration' {sessionInitializationEndpointPrefix} -> sessionInitializationEndpointPrefix) (\s@PlaybackConfiguration' {} a -> s {sessionInitializationEndpointPrefix = a} :: PlaybackConfiguration)++-- | The URL for a video asset to transcode and use to fill in time that\'s+-- not used by ads. AWS Elemental MediaTailor shows the slate to fill in+-- gaps in media content. Configuring the slate is optional for non-VPAID+-- playback configurations. For VPAID, the slate is required because+-- MediaTailor provides it in the slots designated for dynamic ad content.+-- The slate must be a high-quality asset that contains both audio and+-- video.+playbackConfiguration_slateAdUrl :: Lens.Lens' PlaybackConfiguration (Prelude.Maybe Prelude.Text)+playbackConfiguration_slateAdUrl = Lens.lens (\PlaybackConfiguration' {slateAdUrl} -> slateAdUrl) (\s@PlaybackConfiguration' {} a -> s {slateAdUrl = a} :: PlaybackConfiguration)++-- | The tags to assign to the playback configuration. Tags are key-value+-- pairs that you can associate with Amazon resources to help with+-- organization, access control, and cost tracking. For more information,+-- see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+playbackConfiguration_tags :: Lens.Lens' PlaybackConfiguration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+playbackConfiguration_tags = Lens.lens (\PlaybackConfiguration' {tags} -> tags) (\s@PlaybackConfiguration' {} a -> s {tags = a} :: PlaybackConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The name that is used to associate this playback configuration with a+-- custom transcode profile. This overrides the dynamic transcoding+-- defaults of MediaTailor. Use this only if you have already set up custom+-- profiles with the help of AWS Support.+playbackConfiguration_transcodeProfileName :: Lens.Lens' PlaybackConfiguration (Prelude.Maybe Prelude.Text)+playbackConfiguration_transcodeProfileName = Lens.lens (\PlaybackConfiguration' {transcodeProfileName} -> transcodeProfileName) (\s@PlaybackConfiguration' {} a -> s {transcodeProfileName = a} :: PlaybackConfiguration)++-- | The URL prefix for the parent manifest for the stream, minus the asset+-- ID. The maximum length is 512 characters.+playbackConfiguration_videoContentSourceUrl :: Lens.Lens' PlaybackConfiguration (Prelude.Maybe Prelude.Text)+playbackConfiguration_videoContentSourceUrl = Lens.lens (\PlaybackConfiguration' {videoContentSourceUrl} -> videoContentSourceUrl) (\s@PlaybackConfiguration' {} a -> s {videoContentSourceUrl = a} :: PlaybackConfiguration)++instance Data.FromJSON PlaybackConfiguration where+  parseJSON =+    Data.withObject+      "PlaybackConfiguration"+      ( \x ->+          PlaybackConfiguration'+            Prelude.<$> (x Data..:? "AdDecisionServerUrl")+            Prelude.<*> (x Data..:? "AvailSuppression")+            Prelude.<*> (x Data..:? "Bumper")+            Prelude.<*> (x Data..:? "CdnConfiguration")+            Prelude.<*> ( x+                            Data..:? "ConfigurationAliases"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "DashConfiguration")+            Prelude.<*> (x Data..:? "HlsConfiguration")+            Prelude.<*> (x Data..:? "LivePreRollConfiguration")+            Prelude.<*> (x Data..:? "LogConfiguration")+            Prelude.<*> (x Data..:? "ManifestProcessingRules")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "PersonalizationThresholdSeconds")+            Prelude.<*> (x Data..:? "PlaybackConfigurationArn")+            Prelude.<*> (x Data..:? "PlaybackEndpointPrefix")+            Prelude.<*> (x Data..:? "SessionInitializationEndpointPrefix")+            Prelude.<*> (x Data..:? "SlateAdUrl")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "TranscodeProfileName")+            Prelude.<*> (x Data..:? "VideoContentSourceUrl")+      )++instance Prelude.Hashable PlaybackConfiguration where+  hashWithSalt _salt PlaybackConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` adDecisionServerUrl+      `Prelude.hashWithSalt` availSuppression+      `Prelude.hashWithSalt` bumper+      `Prelude.hashWithSalt` cdnConfiguration+      `Prelude.hashWithSalt` configurationAliases+      `Prelude.hashWithSalt` dashConfiguration+      `Prelude.hashWithSalt` hlsConfiguration+      `Prelude.hashWithSalt` livePreRollConfiguration+      `Prelude.hashWithSalt` logConfiguration+      `Prelude.hashWithSalt` manifestProcessingRules+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` personalizationThresholdSeconds+      `Prelude.hashWithSalt` playbackConfigurationArn+      `Prelude.hashWithSalt` playbackEndpointPrefix+      `Prelude.hashWithSalt` sessionInitializationEndpointPrefix+      `Prelude.hashWithSalt` slateAdUrl+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` transcodeProfileName+      `Prelude.hashWithSalt` videoContentSourceUrl++instance Prelude.NFData PlaybackConfiguration where+  rnf PlaybackConfiguration' {..} =+    Prelude.rnf adDecisionServerUrl+      `Prelude.seq` Prelude.rnf availSuppression+      `Prelude.seq` Prelude.rnf bumper+      `Prelude.seq` Prelude.rnf cdnConfiguration+      `Prelude.seq` Prelude.rnf configurationAliases+      `Prelude.seq` Prelude.rnf dashConfiguration+      `Prelude.seq` Prelude.rnf hlsConfiguration+      `Prelude.seq` Prelude.rnf livePreRollConfiguration+      `Prelude.seq` Prelude.rnf logConfiguration+      `Prelude.seq` Prelude.rnf manifestProcessingRules+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf personalizationThresholdSeconds+      `Prelude.seq` Prelude.rnf playbackConfigurationArn+      `Prelude.seq` Prelude.rnf playbackEndpointPrefix+      `Prelude.seq` Prelude.rnf+        sessionInitializationEndpointPrefix+      `Prelude.seq` Prelude.rnf slateAdUrl+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf transcodeProfileName+      `Prelude.seq` Prelude.rnf+        videoContentSourceUrl
+ gen/Amazonka/MediaTailor/Types/PlaybackMode.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.MediaTailor.Types.PlaybackMode+-- Copyright   : (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.MediaTailor.Types.PlaybackMode+  ( PlaybackMode+      ( ..,+        PlaybackMode_LINEAR,+        PlaybackMode_LOOP+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PlaybackMode = PlaybackMode'+  { fromPlaybackMode ::+      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 PlaybackMode_LINEAR :: PlaybackMode+pattern PlaybackMode_LINEAR = PlaybackMode' "LINEAR"++pattern PlaybackMode_LOOP :: PlaybackMode+pattern PlaybackMode_LOOP = PlaybackMode' "LOOP"++{-# COMPLETE+  PlaybackMode_LINEAR,+  PlaybackMode_LOOP,+  PlaybackMode'+  #-}
+ gen/Amazonka/MediaTailor/Types/PrefetchConsumption.hs view
@@ -0,0 +1,136 @@+{-# 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.MediaTailor.Types.PrefetchConsumption+-- Copyright   : (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.MediaTailor.Types.PrefetchConsumption where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types.AvailMatchingCriteria+import qualified Amazonka.Prelude as Prelude++-- | A complex type that contains settings that determine how and when that+-- MediaTailor places prefetched ads into upcoming ad breaks.+--+-- /See:/ 'newPrefetchConsumption' smart constructor.+data PrefetchConsumption = PrefetchConsumption'+  { -- | If you only want MediaTailor to insert prefetched ads into avails (ad+    -- breaks) that match specific dynamic variables, such as @scte.event_id@,+    -- set the avail matching criteria.+    availMatchingCriteria :: Prelude.Maybe [AvailMatchingCriteria],+    -- | The time when prefetched ads are considered for use in an ad break. If+    -- you don\'t specify @StartTime@, the prefetched ads are available after+    -- MediaTailor retrives them from the ad decision server.+    startTime :: Prelude.Maybe Data.POSIX,+    -- | The time when MediaTailor no longer considers the prefetched ads for use+    -- in an ad break. MediaTailor automatically deletes prefetch schedules no+    -- less than seven days after the end time. If you\'d like to manually+    -- delete the prefetch schedule, you can call @DeletePrefetchSchedule@.+    endTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PrefetchConsumption' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'availMatchingCriteria', 'prefetchConsumption_availMatchingCriteria' - If you only want MediaTailor to insert prefetched ads into avails (ad+-- breaks) that match specific dynamic variables, such as @scte.event_id@,+-- set the avail matching criteria.+--+-- 'startTime', 'prefetchConsumption_startTime' - The time when prefetched ads are considered for use in an ad break. If+-- you don\'t specify @StartTime@, the prefetched ads are available after+-- MediaTailor retrives them from the ad decision server.+--+-- 'endTime', 'prefetchConsumption_endTime' - The time when MediaTailor no longer considers the prefetched ads for use+-- in an ad break. MediaTailor automatically deletes prefetch schedules no+-- less than seven days after the end time. If you\'d like to manually+-- delete the prefetch schedule, you can call @DeletePrefetchSchedule@.+newPrefetchConsumption ::+  -- | 'endTime'+  Prelude.UTCTime ->+  PrefetchConsumption+newPrefetchConsumption pEndTime_ =+  PrefetchConsumption'+    { availMatchingCriteria =+        Prelude.Nothing,+      startTime = Prelude.Nothing,+      endTime = Data._Time Lens.# pEndTime_+    }++-- | If you only want MediaTailor to insert prefetched ads into avails (ad+-- breaks) that match specific dynamic variables, such as @scte.event_id@,+-- set the avail matching criteria.+prefetchConsumption_availMatchingCriteria :: Lens.Lens' PrefetchConsumption (Prelude.Maybe [AvailMatchingCriteria])+prefetchConsumption_availMatchingCriteria = Lens.lens (\PrefetchConsumption' {availMatchingCriteria} -> availMatchingCriteria) (\s@PrefetchConsumption' {} a -> s {availMatchingCriteria = a} :: PrefetchConsumption) Prelude.. Lens.mapping Lens.coerced++-- | The time when prefetched ads are considered for use in an ad break. If+-- you don\'t specify @StartTime@, the prefetched ads are available after+-- MediaTailor retrives them from the ad decision server.+prefetchConsumption_startTime :: Lens.Lens' PrefetchConsumption (Prelude.Maybe Prelude.UTCTime)+prefetchConsumption_startTime = Lens.lens (\PrefetchConsumption' {startTime} -> startTime) (\s@PrefetchConsumption' {} a -> s {startTime = a} :: PrefetchConsumption) Prelude.. Lens.mapping Data._Time++-- | The time when MediaTailor no longer considers the prefetched ads for use+-- in an ad break. MediaTailor automatically deletes prefetch schedules no+-- less than seven days after the end time. If you\'d like to manually+-- delete the prefetch schedule, you can call @DeletePrefetchSchedule@.+prefetchConsumption_endTime :: Lens.Lens' PrefetchConsumption Prelude.UTCTime+prefetchConsumption_endTime = Lens.lens (\PrefetchConsumption' {endTime} -> endTime) (\s@PrefetchConsumption' {} a -> s {endTime = a} :: PrefetchConsumption) Prelude.. Data._Time++instance Data.FromJSON PrefetchConsumption where+  parseJSON =+    Data.withObject+      "PrefetchConsumption"+      ( \x ->+          PrefetchConsumption'+            Prelude.<$> ( x+                            Data..:? "AvailMatchingCriteria"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "StartTime")+            Prelude.<*> (x Data..: "EndTime")+      )++instance Prelude.Hashable PrefetchConsumption where+  hashWithSalt _salt PrefetchConsumption' {..} =+    _salt+      `Prelude.hashWithSalt` availMatchingCriteria+      `Prelude.hashWithSalt` startTime+      `Prelude.hashWithSalt` endTime++instance Prelude.NFData PrefetchConsumption where+  rnf PrefetchConsumption' {..} =+    Prelude.rnf availMatchingCriteria+      `Prelude.seq` Prelude.rnf startTime+      `Prelude.seq` Prelude.rnf endTime++instance Data.ToJSON PrefetchConsumption where+  toJSON PrefetchConsumption' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AvailMatchingCriteria" Data..=)+              Prelude.<$> availMatchingCriteria,+            ("StartTime" Data..=) Prelude.<$> startTime,+            Prelude.Just ("EndTime" Data..= endTime)+          ]+      )
+ gen/Amazonka/MediaTailor/Types/PrefetchRetrieval.hs view
@@ -0,0 +1,148 @@+{-# 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.MediaTailor.Types.PrefetchRetrieval+-- Copyright   : (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.MediaTailor.Types.PrefetchRetrieval 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 complex type that contains settings governing when MediaTailor+-- prefetches ads, and which dynamic variables that MediaTailor includes in+-- the request to the ad decision server.+--+-- /See:/ 'newPrefetchRetrieval' smart constructor.+data PrefetchRetrieval = PrefetchRetrieval'+  { -- | The dynamic variables to use for substitution during prefetch requests+    -- to the ad decision server (ADS).+    --+    -- You initially configure+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/variables.html dynamic variables>+    -- for the ADS URL when you set up your playback configuration. When you+    -- specify @DynamicVariables@ for prefetch retrieval, MediaTailor includes+    -- the dynamic variables in the request to the ADS.+    dynamicVariables :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The time when prefetch retrievals can start for this break. Ad+    -- prefetching will be attempted for manifest requests that occur at or+    -- after this time. Defaults to the current time. If not specified, the+    -- prefetch retrieval starts as soon as possible.+    startTime :: Prelude.Maybe Data.POSIX,+    -- | The time when prefetch retrieval ends for the ad break. Prefetching will+    -- be attempted for manifest requests that occur at or before this time.+    endTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PrefetchRetrieval' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dynamicVariables', 'prefetchRetrieval_dynamicVariables' - The dynamic variables to use for substitution during prefetch requests+-- to the ad decision server (ADS).+--+-- You initially configure+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/variables.html dynamic variables>+-- for the ADS URL when you set up your playback configuration. When you+-- specify @DynamicVariables@ for prefetch retrieval, MediaTailor includes+-- the dynamic variables in the request to the ADS.+--+-- 'startTime', 'prefetchRetrieval_startTime' - The time when prefetch retrievals can start for this break. Ad+-- prefetching will be attempted for manifest requests that occur at or+-- after this time. Defaults to the current time. If not specified, the+-- prefetch retrieval starts as soon as possible.+--+-- 'endTime', 'prefetchRetrieval_endTime' - The time when prefetch retrieval ends for the ad break. Prefetching will+-- be attempted for manifest requests that occur at or before this time.+newPrefetchRetrieval ::+  -- | 'endTime'+  Prelude.UTCTime ->+  PrefetchRetrieval+newPrefetchRetrieval pEndTime_ =+  PrefetchRetrieval'+    { dynamicVariables =+        Prelude.Nothing,+      startTime = Prelude.Nothing,+      endTime = Data._Time Lens.# pEndTime_+    }++-- | The dynamic variables to use for substitution during prefetch requests+-- to the ad decision server (ADS).+--+-- You initially configure+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/variables.html dynamic variables>+-- for the ADS URL when you set up your playback configuration. When you+-- specify @DynamicVariables@ for prefetch retrieval, MediaTailor includes+-- the dynamic variables in the request to the ADS.+prefetchRetrieval_dynamicVariables :: Lens.Lens' PrefetchRetrieval (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+prefetchRetrieval_dynamicVariables = Lens.lens (\PrefetchRetrieval' {dynamicVariables} -> dynamicVariables) (\s@PrefetchRetrieval' {} a -> s {dynamicVariables = a} :: PrefetchRetrieval) Prelude.. Lens.mapping Lens.coerced++-- | The time when prefetch retrievals can start for this break. Ad+-- prefetching will be attempted for manifest requests that occur at or+-- after this time. Defaults to the current time. If not specified, the+-- prefetch retrieval starts as soon as possible.+prefetchRetrieval_startTime :: Lens.Lens' PrefetchRetrieval (Prelude.Maybe Prelude.UTCTime)+prefetchRetrieval_startTime = Lens.lens (\PrefetchRetrieval' {startTime} -> startTime) (\s@PrefetchRetrieval' {} a -> s {startTime = a} :: PrefetchRetrieval) Prelude.. Lens.mapping Data._Time++-- | The time when prefetch retrieval ends for the ad break. Prefetching will+-- be attempted for manifest requests that occur at or before this time.+prefetchRetrieval_endTime :: Lens.Lens' PrefetchRetrieval Prelude.UTCTime+prefetchRetrieval_endTime = Lens.lens (\PrefetchRetrieval' {endTime} -> endTime) (\s@PrefetchRetrieval' {} a -> s {endTime = a} :: PrefetchRetrieval) Prelude.. Data._Time++instance Data.FromJSON PrefetchRetrieval where+  parseJSON =+    Data.withObject+      "PrefetchRetrieval"+      ( \x ->+          PrefetchRetrieval'+            Prelude.<$> ( x+                            Data..:? "DynamicVariables"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "StartTime")+            Prelude.<*> (x Data..: "EndTime")+      )++instance Prelude.Hashable PrefetchRetrieval where+  hashWithSalt _salt PrefetchRetrieval' {..} =+    _salt+      `Prelude.hashWithSalt` dynamicVariables+      `Prelude.hashWithSalt` startTime+      `Prelude.hashWithSalt` endTime++instance Prelude.NFData PrefetchRetrieval where+  rnf PrefetchRetrieval' {..} =+    Prelude.rnf dynamicVariables+      `Prelude.seq` Prelude.rnf startTime+      `Prelude.seq` Prelude.rnf endTime++instance Data.ToJSON PrefetchRetrieval where+  toJSON PrefetchRetrieval' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DynamicVariables" Data..=)+              Prelude.<$> dynamicVariables,+            ("StartTime" Data..=) Prelude.<$> startTime,+            Prelude.Just ("EndTime" Data..= endTime)+          ]+      )
+ gen/Amazonka/MediaTailor/Types/PrefetchSchedule.hs view
@@ -0,0 +1,181 @@+{-# 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.MediaTailor.Types.PrefetchSchedule+-- Copyright   : (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.MediaTailor.Types.PrefetchSchedule where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types.PrefetchConsumption+import Amazonka.MediaTailor.Types.PrefetchRetrieval+import qualified Amazonka.Prelude as Prelude++-- | A prefetch schedule allows you to tell MediaTailor to fetch and prepare+-- certain ads before an ad break happens. For more information about ad+-- prefetching, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/prefetching-ads.html Using ad prefetching>+-- in the /MediaTailor User Guide/.+--+-- /See:/ 'newPrefetchSchedule' smart constructor.+data PrefetchSchedule = PrefetchSchedule'+  { -- | An optional stream identifier that you can specify in order to prefetch+    -- for multiple streams that use the same playback configuration.+    streamId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the prefetch schedule.+    arn :: Prelude.Text,+    -- | Consumption settings determine how, and when, MediaTailor places the+    -- prefetched ads into ad breaks. Ad consumption occurs within a span of+    -- time that you define, called a /consumption window/. You can designate+    -- which ad breaks that MediaTailor fills with prefetch ads by setting+    -- avail matching criteria.+    consumption :: PrefetchConsumption,+    -- | The name of the prefetch schedule. The name must be unique among all+    -- prefetch schedules that are associated with the specified playback+    -- configuration.+    name :: Prelude.Text,+    -- | The name of the playback configuration to create the prefetch schedule+    -- for.+    playbackConfigurationName :: Prelude.Text,+    -- | A complex type that contains settings for prefetch retrieval from the ad+    -- decision server (ADS).+    retrieval :: PrefetchRetrieval+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PrefetchSchedule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'streamId', 'prefetchSchedule_streamId' - An optional stream identifier that you can specify in order to prefetch+-- for multiple streams that use the same playback configuration.+--+-- 'arn', 'prefetchSchedule_arn' - The Amazon Resource Name (ARN) of the prefetch schedule.+--+-- 'consumption', 'prefetchSchedule_consumption' - Consumption settings determine how, and when, MediaTailor places the+-- prefetched ads into ad breaks. Ad consumption occurs within a span of+-- time that you define, called a /consumption window/. You can designate+-- which ad breaks that MediaTailor fills with prefetch ads by setting+-- avail matching criteria.+--+-- 'name', 'prefetchSchedule_name' - The name of the prefetch schedule. The name must be unique among all+-- prefetch schedules that are associated with the specified playback+-- configuration.+--+-- 'playbackConfigurationName', 'prefetchSchedule_playbackConfigurationName' - The name of the playback configuration to create the prefetch schedule+-- for.+--+-- 'retrieval', 'prefetchSchedule_retrieval' - A complex type that contains settings for prefetch retrieval from the ad+-- decision server (ADS).+newPrefetchSchedule ::+  -- | 'arn'+  Prelude.Text ->+  -- | 'consumption'+  PrefetchConsumption ->+  -- | 'name'+  Prelude.Text ->+  -- | 'playbackConfigurationName'+  Prelude.Text ->+  -- | 'retrieval'+  PrefetchRetrieval ->+  PrefetchSchedule+newPrefetchSchedule+  pArn_+  pConsumption_+  pName_+  pPlaybackConfigurationName_+  pRetrieval_ =+    PrefetchSchedule'+      { streamId = Prelude.Nothing,+        arn = pArn_,+        consumption = pConsumption_,+        name = pName_,+        playbackConfigurationName =+          pPlaybackConfigurationName_,+        retrieval = pRetrieval_+      }++-- | An optional stream identifier that you can specify in order to prefetch+-- for multiple streams that use the same playback configuration.+prefetchSchedule_streamId :: Lens.Lens' PrefetchSchedule (Prelude.Maybe Prelude.Text)+prefetchSchedule_streamId = Lens.lens (\PrefetchSchedule' {streamId} -> streamId) (\s@PrefetchSchedule' {} a -> s {streamId = a} :: PrefetchSchedule)++-- | The Amazon Resource Name (ARN) of the prefetch schedule.+prefetchSchedule_arn :: Lens.Lens' PrefetchSchedule Prelude.Text+prefetchSchedule_arn = Lens.lens (\PrefetchSchedule' {arn} -> arn) (\s@PrefetchSchedule' {} a -> s {arn = a} :: PrefetchSchedule)++-- | Consumption settings determine how, and when, MediaTailor places the+-- prefetched ads into ad breaks. Ad consumption occurs within a span of+-- time that you define, called a /consumption window/. You can designate+-- which ad breaks that MediaTailor fills with prefetch ads by setting+-- avail matching criteria.+prefetchSchedule_consumption :: Lens.Lens' PrefetchSchedule PrefetchConsumption+prefetchSchedule_consumption = Lens.lens (\PrefetchSchedule' {consumption} -> consumption) (\s@PrefetchSchedule' {} a -> s {consumption = a} :: PrefetchSchedule)++-- | The name of the prefetch schedule. The name must be unique among all+-- prefetch schedules that are associated with the specified playback+-- configuration.+prefetchSchedule_name :: Lens.Lens' PrefetchSchedule Prelude.Text+prefetchSchedule_name = Lens.lens (\PrefetchSchedule' {name} -> name) (\s@PrefetchSchedule' {} a -> s {name = a} :: PrefetchSchedule)++-- | The name of the playback configuration to create the prefetch schedule+-- for.+prefetchSchedule_playbackConfigurationName :: Lens.Lens' PrefetchSchedule Prelude.Text+prefetchSchedule_playbackConfigurationName = Lens.lens (\PrefetchSchedule' {playbackConfigurationName} -> playbackConfigurationName) (\s@PrefetchSchedule' {} a -> s {playbackConfigurationName = a} :: PrefetchSchedule)++-- | A complex type that contains settings for prefetch retrieval from the ad+-- decision server (ADS).+prefetchSchedule_retrieval :: Lens.Lens' PrefetchSchedule PrefetchRetrieval+prefetchSchedule_retrieval = Lens.lens (\PrefetchSchedule' {retrieval} -> retrieval) (\s@PrefetchSchedule' {} a -> s {retrieval = a} :: PrefetchSchedule)++instance Data.FromJSON PrefetchSchedule where+  parseJSON =+    Data.withObject+      "PrefetchSchedule"+      ( \x ->+          PrefetchSchedule'+            Prelude.<$> (x Data..:? "StreamId")+            Prelude.<*> (x Data..: "Arn")+            Prelude.<*> (x Data..: "Consumption")+            Prelude.<*> (x Data..: "Name")+            Prelude.<*> (x Data..: "PlaybackConfigurationName")+            Prelude.<*> (x Data..: "Retrieval")+      )++instance Prelude.Hashable PrefetchSchedule where+  hashWithSalt _salt PrefetchSchedule' {..} =+    _salt+      `Prelude.hashWithSalt` streamId+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` consumption+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` playbackConfigurationName+      `Prelude.hashWithSalt` retrieval++instance Prelude.NFData PrefetchSchedule where+  rnf PrefetchSchedule' {..} =+    Prelude.rnf streamId+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf consumption+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf playbackConfigurationName+      `Prelude.seq` Prelude.rnf retrieval
+ gen/Amazonka/MediaTailor/Types/RelativePosition.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.MediaTailor.Types.RelativePosition+-- Copyright   : (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.MediaTailor.Types.RelativePosition+  ( RelativePosition+      ( ..,+        RelativePosition_AFTER_PROGRAM,+        RelativePosition_BEFORE_PROGRAM+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype RelativePosition = RelativePosition'+  { fromRelativePosition ::+      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 RelativePosition_AFTER_PROGRAM :: RelativePosition+pattern RelativePosition_AFTER_PROGRAM = RelativePosition' "AFTER_PROGRAM"++pattern RelativePosition_BEFORE_PROGRAM :: RelativePosition+pattern RelativePosition_BEFORE_PROGRAM = RelativePosition' "BEFORE_PROGRAM"++{-# COMPLETE+  RelativePosition_AFTER_PROGRAM,+  RelativePosition_BEFORE_PROGRAM,+  RelativePosition'+  #-}
+ gen/Amazonka/MediaTailor/Types/RequestOutputItem.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaTailor.Types.RequestOutputItem+-- Copyright   : (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.MediaTailor.Types.RequestOutputItem where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types.DashPlaylistSettings+import Amazonka.MediaTailor.Types.HlsPlaylistSettings+import qualified Amazonka.Prelude as Prelude++-- | The output configuration for this channel.+--+-- /See:/ 'newRequestOutputItem' smart constructor.+data RequestOutputItem = RequestOutputItem'+  { -- | DASH manifest configuration parameters.+    dashPlaylistSettings :: Prelude.Maybe DashPlaylistSettings,+    -- | HLS playlist configuration parameters.+    hlsPlaylistSettings :: Prelude.Maybe HlsPlaylistSettings,+    -- | The name of the manifest for the channel. The name appears in the+    -- @PlaybackUrl@.+    manifestName :: Prelude.Text,+    -- | A string used to match which @HttpPackageConfiguration@ is used for each+    -- @VodSource@.+    sourceGroup :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RequestOutputItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dashPlaylistSettings', 'requestOutputItem_dashPlaylistSettings' - DASH manifest configuration parameters.+--+-- 'hlsPlaylistSettings', 'requestOutputItem_hlsPlaylistSettings' - HLS playlist configuration parameters.+--+-- 'manifestName', 'requestOutputItem_manifestName' - The name of the manifest for the channel. The name appears in the+-- @PlaybackUrl@.+--+-- 'sourceGroup', 'requestOutputItem_sourceGroup' - A string used to match which @HttpPackageConfiguration@ is used for each+-- @VodSource@.+newRequestOutputItem ::+  -- | 'manifestName'+  Prelude.Text ->+  -- | 'sourceGroup'+  Prelude.Text ->+  RequestOutputItem+newRequestOutputItem pManifestName_ pSourceGroup_ =+  RequestOutputItem'+    { dashPlaylistSettings =+        Prelude.Nothing,+      hlsPlaylistSettings = Prelude.Nothing,+      manifestName = pManifestName_,+      sourceGroup = pSourceGroup_+    }++-- | DASH manifest configuration parameters.+requestOutputItem_dashPlaylistSettings :: Lens.Lens' RequestOutputItem (Prelude.Maybe DashPlaylistSettings)+requestOutputItem_dashPlaylistSettings = Lens.lens (\RequestOutputItem' {dashPlaylistSettings} -> dashPlaylistSettings) (\s@RequestOutputItem' {} a -> s {dashPlaylistSettings = a} :: RequestOutputItem)++-- | HLS playlist configuration parameters.+requestOutputItem_hlsPlaylistSettings :: Lens.Lens' RequestOutputItem (Prelude.Maybe HlsPlaylistSettings)+requestOutputItem_hlsPlaylistSettings = Lens.lens (\RequestOutputItem' {hlsPlaylistSettings} -> hlsPlaylistSettings) (\s@RequestOutputItem' {} a -> s {hlsPlaylistSettings = a} :: RequestOutputItem)++-- | The name of the manifest for the channel. The name appears in the+-- @PlaybackUrl@.+requestOutputItem_manifestName :: Lens.Lens' RequestOutputItem Prelude.Text+requestOutputItem_manifestName = Lens.lens (\RequestOutputItem' {manifestName} -> manifestName) (\s@RequestOutputItem' {} a -> s {manifestName = a} :: RequestOutputItem)++-- | A string used to match which @HttpPackageConfiguration@ is used for each+-- @VodSource@.+requestOutputItem_sourceGroup :: Lens.Lens' RequestOutputItem Prelude.Text+requestOutputItem_sourceGroup = Lens.lens (\RequestOutputItem' {sourceGroup} -> sourceGroup) (\s@RequestOutputItem' {} a -> s {sourceGroup = a} :: RequestOutputItem)++instance Prelude.Hashable RequestOutputItem where+  hashWithSalt _salt RequestOutputItem' {..} =+    _salt+      `Prelude.hashWithSalt` dashPlaylistSettings+      `Prelude.hashWithSalt` hlsPlaylistSettings+      `Prelude.hashWithSalt` manifestName+      `Prelude.hashWithSalt` sourceGroup++instance Prelude.NFData RequestOutputItem where+  rnf RequestOutputItem' {..} =+    Prelude.rnf dashPlaylistSettings+      `Prelude.seq` Prelude.rnf hlsPlaylistSettings+      `Prelude.seq` Prelude.rnf manifestName+      `Prelude.seq` Prelude.rnf sourceGroup++instance Data.ToJSON RequestOutputItem where+  toJSON RequestOutputItem' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DashPlaylistSettings" Data..=)+              Prelude.<$> dashPlaylistSettings,+            ("HlsPlaylistSettings" Data..=)+              Prelude.<$> hlsPlaylistSettings,+            Prelude.Just ("ManifestName" Data..= manifestName),+            Prelude.Just ("SourceGroup" Data..= sourceGroup)+          ]+      )
+ gen/Amazonka/MediaTailor/Types/ResponseOutputItem.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.MediaTailor.Types.ResponseOutputItem+-- Copyright   : (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.MediaTailor.Types.ResponseOutputItem where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types.DashPlaylistSettings+import Amazonka.MediaTailor.Types.HlsPlaylistSettings+import qualified Amazonka.Prelude as Prelude++-- | The output item response.+--+-- /See:/ 'newResponseOutputItem' smart constructor.+data ResponseOutputItem = ResponseOutputItem'+  { -- | DASH manifest configuration settings.+    dashPlaylistSettings :: Prelude.Maybe DashPlaylistSettings,+    -- | HLS manifest configuration settings.+    hlsPlaylistSettings :: Prelude.Maybe HlsPlaylistSettings,+    -- | The name of the manifest for the channel that will appear in the channel+    -- output\'s playback URL.+    manifestName :: Prelude.Text,+    -- | The URL used for playback by content players.+    playbackUrl :: Prelude.Text,+    -- | A string used to associate a package configuration source group with a+    -- channel output.+    sourceGroup :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResponseOutputItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dashPlaylistSettings', 'responseOutputItem_dashPlaylistSettings' - DASH manifest configuration settings.+--+-- 'hlsPlaylistSettings', 'responseOutputItem_hlsPlaylistSettings' - HLS manifest configuration settings.+--+-- 'manifestName', 'responseOutputItem_manifestName' - The name of the manifest for the channel that will appear in the channel+-- output\'s playback URL.+--+-- 'playbackUrl', 'responseOutputItem_playbackUrl' - The URL used for playback by content players.+--+-- 'sourceGroup', 'responseOutputItem_sourceGroup' - A string used to associate a package configuration source group with a+-- channel output.+newResponseOutputItem ::+  -- | 'manifestName'+  Prelude.Text ->+  -- | 'playbackUrl'+  Prelude.Text ->+  -- | 'sourceGroup'+  Prelude.Text ->+  ResponseOutputItem+newResponseOutputItem+  pManifestName_+  pPlaybackUrl_+  pSourceGroup_ =+    ResponseOutputItem'+      { dashPlaylistSettings =+          Prelude.Nothing,+        hlsPlaylistSettings = Prelude.Nothing,+        manifestName = pManifestName_,+        playbackUrl = pPlaybackUrl_,+        sourceGroup = pSourceGroup_+      }++-- | DASH manifest configuration settings.+responseOutputItem_dashPlaylistSettings :: Lens.Lens' ResponseOutputItem (Prelude.Maybe DashPlaylistSettings)+responseOutputItem_dashPlaylistSettings = Lens.lens (\ResponseOutputItem' {dashPlaylistSettings} -> dashPlaylistSettings) (\s@ResponseOutputItem' {} a -> s {dashPlaylistSettings = a} :: ResponseOutputItem)++-- | HLS manifest configuration settings.+responseOutputItem_hlsPlaylistSettings :: Lens.Lens' ResponseOutputItem (Prelude.Maybe HlsPlaylistSettings)+responseOutputItem_hlsPlaylistSettings = Lens.lens (\ResponseOutputItem' {hlsPlaylistSettings} -> hlsPlaylistSettings) (\s@ResponseOutputItem' {} a -> s {hlsPlaylistSettings = a} :: ResponseOutputItem)++-- | The name of the manifest for the channel that will appear in the channel+-- output\'s playback URL.+responseOutputItem_manifestName :: Lens.Lens' ResponseOutputItem Prelude.Text+responseOutputItem_manifestName = Lens.lens (\ResponseOutputItem' {manifestName} -> manifestName) (\s@ResponseOutputItem' {} a -> s {manifestName = a} :: ResponseOutputItem)++-- | The URL used for playback by content players.+responseOutputItem_playbackUrl :: Lens.Lens' ResponseOutputItem Prelude.Text+responseOutputItem_playbackUrl = Lens.lens (\ResponseOutputItem' {playbackUrl} -> playbackUrl) (\s@ResponseOutputItem' {} a -> s {playbackUrl = a} :: ResponseOutputItem)++-- | A string used to associate a package configuration source group with a+-- channel output.+responseOutputItem_sourceGroup :: Lens.Lens' ResponseOutputItem Prelude.Text+responseOutputItem_sourceGroup = Lens.lens (\ResponseOutputItem' {sourceGroup} -> sourceGroup) (\s@ResponseOutputItem' {} a -> s {sourceGroup = a} :: ResponseOutputItem)++instance Data.FromJSON ResponseOutputItem where+  parseJSON =+    Data.withObject+      "ResponseOutputItem"+      ( \x ->+          ResponseOutputItem'+            Prelude.<$> (x Data..:? "DashPlaylistSettings")+            Prelude.<*> (x Data..:? "HlsPlaylistSettings")+            Prelude.<*> (x Data..: "ManifestName")+            Prelude.<*> (x Data..: "PlaybackUrl")+            Prelude.<*> (x Data..: "SourceGroup")+      )++instance Prelude.Hashable ResponseOutputItem where+  hashWithSalt _salt ResponseOutputItem' {..} =+    _salt+      `Prelude.hashWithSalt` dashPlaylistSettings+      `Prelude.hashWithSalt` hlsPlaylistSettings+      `Prelude.hashWithSalt` manifestName+      `Prelude.hashWithSalt` playbackUrl+      `Prelude.hashWithSalt` sourceGroup++instance Prelude.NFData ResponseOutputItem where+  rnf ResponseOutputItem' {..} =+    Prelude.rnf dashPlaylistSettings+      `Prelude.seq` Prelude.rnf hlsPlaylistSettings+      `Prelude.seq` Prelude.rnf manifestName+      `Prelude.seq` Prelude.rnf playbackUrl+      `Prelude.seq` Prelude.rnf sourceGroup
+ gen/Amazonka/MediaTailor/Types/ScheduleAdBreak.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaTailor.Types.ScheduleAdBreak+-- Copyright   : (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.MediaTailor.Types.ScheduleAdBreak 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 schedule\'s ad break properties.+--+-- /See:/ 'newScheduleAdBreak' smart constructor.+data ScheduleAdBreak = ScheduleAdBreak'+  { -- | The approximate duration of the ad break, in seconds.+    approximateDurationSeconds :: Prelude.Maybe Prelude.Integer,+    -- | The approximate time that the ad will start playing.+    approximateStartTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the source location containing the VOD source used for the+    -- ad break.+    sourceLocationName :: Prelude.Maybe Prelude.Text,+    -- | The name of the VOD source used for the ad break.+    vodSourceName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ScheduleAdBreak' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'approximateDurationSeconds', 'scheduleAdBreak_approximateDurationSeconds' - The approximate duration of the ad break, in seconds.+--+-- 'approximateStartTime', 'scheduleAdBreak_approximateStartTime' - The approximate time that the ad will start playing.+--+-- 'sourceLocationName', 'scheduleAdBreak_sourceLocationName' - The name of the source location containing the VOD source used for the+-- ad break.+--+-- 'vodSourceName', 'scheduleAdBreak_vodSourceName' - The name of the VOD source used for the ad break.+newScheduleAdBreak ::+  ScheduleAdBreak+newScheduleAdBreak =+  ScheduleAdBreak'+    { approximateDurationSeconds =+        Prelude.Nothing,+      approximateStartTime = Prelude.Nothing,+      sourceLocationName = Prelude.Nothing,+      vodSourceName = Prelude.Nothing+    }++-- | The approximate duration of the ad break, in seconds.+scheduleAdBreak_approximateDurationSeconds :: Lens.Lens' ScheduleAdBreak (Prelude.Maybe Prelude.Integer)+scheduleAdBreak_approximateDurationSeconds = Lens.lens (\ScheduleAdBreak' {approximateDurationSeconds} -> approximateDurationSeconds) (\s@ScheduleAdBreak' {} a -> s {approximateDurationSeconds = a} :: ScheduleAdBreak)++-- | The approximate time that the ad will start playing.+scheduleAdBreak_approximateStartTime :: Lens.Lens' ScheduleAdBreak (Prelude.Maybe Prelude.UTCTime)+scheduleAdBreak_approximateStartTime = Lens.lens (\ScheduleAdBreak' {approximateStartTime} -> approximateStartTime) (\s@ScheduleAdBreak' {} a -> s {approximateStartTime = a} :: ScheduleAdBreak) Prelude.. Lens.mapping Data._Time++-- | The name of the source location containing the VOD source used for the+-- ad break.+scheduleAdBreak_sourceLocationName :: Lens.Lens' ScheduleAdBreak (Prelude.Maybe Prelude.Text)+scheduleAdBreak_sourceLocationName = Lens.lens (\ScheduleAdBreak' {sourceLocationName} -> sourceLocationName) (\s@ScheduleAdBreak' {} a -> s {sourceLocationName = a} :: ScheduleAdBreak)++-- | The name of the VOD source used for the ad break.+scheduleAdBreak_vodSourceName :: Lens.Lens' ScheduleAdBreak (Prelude.Maybe Prelude.Text)+scheduleAdBreak_vodSourceName = Lens.lens (\ScheduleAdBreak' {vodSourceName} -> vodSourceName) (\s@ScheduleAdBreak' {} a -> s {vodSourceName = a} :: ScheduleAdBreak)++instance Data.FromJSON ScheduleAdBreak where+  parseJSON =+    Data.withObject+      "ScheduleAdBreak"+      ( \x ->+          ScheduleAdBreak'+            Prelude.<$> (x Data..:? "ApproximateDurationSeconds")+            Prelude.<*> (x Data..:? "ApproximateStartTime")+            Prelude.<*> (x Data..:? "SourceLocationName")+            Prelude.<*> (x Data..:? "VodSourceName")+      )++instance Prelude.Hashable ScheduleAdBreak where+  hashWithSalt _salt ScheduleAdBreak' {..} =+    _salt+      `Prelude.hashWithSalt` approximateDurationSeconds+      `Prelude.hashWithSalt` approximateStartTime+      `Prelude.hashWithSalt` sourceLocationName+      `Prelude.hashWithSalt` vodSourceName++instance Prelude.NFData ScheduleAdBreak where+  rnf ScheduleAdBreak' {..} =+    Prelude.rnf approximateDurationSeconds+      `Prelude.seq` Prelude.rnf approximateStartTime+      `Prelude.seq` Prelude.rnf sourceLocationName+      `Prelude.seq` Prelude.rnf vodSourceName
+ gen/Amazonka/MediaTailor/Types/ScheduleConfiguration.hs view
@@ -0,0 +1,71 @@+{-# 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.MediaTailor.Types.ScheduleConfiguration+-- Copyright   : (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.MediaTailor.Types.ScheduleConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types.Transition+import qualified Amazonka.Prelude as Prelude++-- | Schedule configuration parameters. A channel must be stopped before+-- changes can be made to the schedule.+--+-- /See:/ 'newScheduleConfiguration' smart constructor.+data ScheduleConfiguration = ScheduleConfiguration'+  { -- | Program transition configurations.+    transition :: Transition+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ScheduleConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'transition', 'scheduleConfiguration_transition' - Program transition configurations.+newScheduleConfiguration ::+  -- | 'transition'+  Transition ->+  ScheduleConfiguration+newScheduleConfiguration pTransition_ =+  ScheduleConfiguration' {transition = pTransition_}++-- | Program transition configurations.+scheduleConfiguration_transition :: Lens.Lens' ScheduleConfiguration Transition+scheduleConfiguration_transition = Lens.lens (\ScheduleConfiguration' {transition} -> transition) (\s@ScheduleConfiguration' {} a -> s {transition = a} :: ScheduleConfiguration)++instance Prelude.Hashable ScheduleConfiguration where+  hashWithSalt _salt ScheduleConfiguration' {..} =+    _salt `Prelude.hashWithSalt` transition++instance Prelude.NFData ScheduleConfiguration where+  rnf ScheduleConfiguration' {..} =+    Prelude.rnf transition++instance Data.ToJSON ScheduleConfiguration where+  toJSON ScheduleConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("Transition" Data..= transition)]+      )
+ gen/Amazonka/MediaTailor/Types/ScheduleEntry.hs view
@@ -0,0 +1,198 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaTailor.Types.ScheduleEntry+-- Copyright   : (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.MediaTailor.Types.ScheduleEntry where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types.ScheduleAdBreak+import Amazonka.MediaTailor.Types.ScheduleEntryType+import qualified Amazonka.Prelude as Prelude++-- | The properties for a schedule.+--+-- /See:/ 'newScheduleEntry' smart constructor.+data ScheduleEntry = ScheduleEntry'+  { -- | The approximate duration of this program, in seconds.+    approximateDurationSeconds :: Prelude.Maybe Prelude.Integer,+    -- | The approximate time that the program will start playing.+    approximateStartTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the live source used for the program.+    liveSourceName :: Prelude.Maybe Prelude.Text,+    -- | The schedule\'s ad break properties.+    scheduleAdBreaks :: Prelude.Maybe [ScheduleAdBreak],+    -- | The type of schedule entry.+    scheduleEntryType :: Prelude.Maybe ScheduleEntryType,+    -- | The name of the VOD source.+    vodSourceName :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the program.+    arn :: Prelude.Text,+    -- | The name of the channel that uses this schedule.+    channelName :: Prelude.Text,+    -- | The name of the program.+    programName :: Prelude.Text,+    -- | The name of the source location.+    sourceLocationName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ScheduleEntry' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'approximateDurationSeconds', 'scheduleEntry_approximateDurationSeconds' - The approximate duration of this program, in seconds.+--+-- 'approximateStartTime', 'scheduleEntry_approximateStartTime' - The approximate time that the program will start playing.+--+-- 'liveSourceName', 'scheduleEntry_liveSourceName' - The name of the live source used for the program.+--+-- 'scheduleAdBreaks', 'scheduleEntry_scheduleAdBreaks' - The schedule\'s ad break properties.+--+-- 'scheduleEntryType', 'scheduleEntry_scheduleEntryType' - The type of schedule entry.+--+-- 'vodSourceName', 'scheduleEntry_vodSourceName' - The name of the VOD source.+--+-- 'arn', 'scheduleEntry_arn' - The ARN of the program.+--+-- 'channelName', 'scheduleEntry_channelName' - The name of the channel that uses this schedule.+--+-- 'programName', 'scheduleEntry_programName' - The name of the program.+--+-- 'sourceLocationName', 'scheduleEntry_sourceLocationName' - The name of the source location.+newScheduleEntry ::+  -- | 'arn'+  Prelude.Text ->+  -- | 'channelName'+  Prelude.Text ->+  -- | 'programName'+  Prelude.Text ->+  -- | 'sourceLocationName'+  Prelude.Text ->+  ScheduleEntry+newScheduleEntry+  pArn_+  pChannelName_+  pProgramName_+  pSourceLocationName_ =+    ScheduleEntry'+      { approximateDurationSeconds =+          Prelude.Nothing,+        approximateStartTime = Prelude.Nothing,+        liveSourceName = Prelude.Nothing,+        scheduleAdBreaks = Prelude.Nothing,+        scheduleEntryType = Prelude.Nothing,+        vodSourceName = Prelude.Nothing,+        arn = pArn_,+        channelName = pChannelName_,+        programName = pProgramName_,+        sourceLocationName = pSourceLocationName_+      }++-- | The approximate duration of this program, in seconds.+scheduleEntry_approximateDurationSeconds :: Lens.Lens' ScheduleEntry (Prelude.Maybe Prelude.Integer)+scheduleEntry_approximateDurationSeconds = Lens.lens (\ScheduleEntry' {approximateDurationSeconds} -> approximateDurationSeconds) (\s@ScheduleEntry' {} a -> s {approximateDurationSeconds = a} :: ScheduleEntry)++-- | The approximate time that the program will start playing.+scheduleEntry_approximateStartTime :: Lens.Lens' ScheduleEntry (Prelude.Maybe Prelude.UTCTime)+scheduleEntry_approximateStartTime = Lens.lens (\ScheduleEntry' {approximateStartTime} -> approximateStartTime) (\s@ScheduleEntry' {} a -> s {approximateStartTime = a} :: ScheduleEntry) Prelude.. Lens.mapping Data._Time++-- | The name of the live source used for the program.+scheduleEntry_liveSourceName :: Lens.Lens' ScheduleEntry (Prelude.Maybe Prelude.Text)+scheduleEntry_liveSourceName = Lens.lens (\ScheduleEntry' {liveSourceName} -> liveSourceName) (\s@ScheduleEntry' {} a -> s {liveSourceName = a} :: ScheduleEntry)++-- | The schedule\'s ad break properties.+scheduleEntry_scheduleAdBreaks :: Lens.Lens' ScheduleEntry (Prelude.Maybe [ScheduleAdBreak])+scheduleEntry_scheduleAdBreaks = Lens.lens (\ScheduleEntry' {scheduleAdBreaks} -> scheduleAdBreaks) (\s@ScheduleEntry' {} a -> s {scheduleAdBreaks = a} :: ScheduleEntry) Prelude.. Lens.mapping Lens.coerced++-- | The type of schedule entry.+scheduleEntry_scheduleEntryType :: Lens.Lens' ScheduleEntry (Prelude.Maybe ScheduleEntryType)+scheduleEntry_scheduleEntryType = Lens.lens (\ScheduleEntry' {scheduleEntryType} -> scheduleEntryType) (\s@ScheduleEntry' {} a -> s {scheduleEntryType = a} :: ScheduleEntry)++-- | The name of the VOD source.+scheduleEntry_vodSourceName :: Lens.Lens' ScheduleEntry (Prelude.Maybe Prelude.Text)+scheduleEntry_vodSourceName = Lens.lens (\ScheduleEntry' {vodSourceName} -> vodSourceName) (\s@ScheduleEntry' {} a -> s {vodSourceName = a} :: ScheduleEntry)++-- | The ARN of the program.+scheduleEntry_arn :: Lens.Lens' ScheduleEntry Prelude.Text+scheduleEntry_arn = Lens.lens (\ScheduleEntry' {arn} -> arn) (\s@ScheduleEntry' {} a -> s {arn = a} :: ScheduleEntry)++-- | The name of the channel that uses this schedule.+scheduleEntry_channelName :: Lens.Lens' ScheduleEntry Prelude.Text+scheduleEntry_channelName = Lens.lens (\ScheduleEntry' {channelName} -> channelName) (\s@ScheduleEntry' {} a -> s {channelName = a} :: ScheduleEntry)++-- | The name of the program.+scheduleEntry_programName :: Lens.Lens' ScheduleEntry Prelude.Text+scheduleEntry_programName = Lens.lens (\ScheduleEntry' {programName} -> programName) (\s@ScheduleEntry' {} a -> s {programName = a} :: ScheduleEntry)++-- | The name of the source location.+scheduleEntry_sourceLocationName :: Lens.Lens' ScheduleEntry Prelude.Text+scheduleEntry_sourceLocationName = Lens.lens (\ScheduleEntry' {sourceLocationName} -> sourceLocationName) (\s@ScheduleEntry' {} a -> s {sourceLocationName = a} :: ScheduleEntry)++instance Data.FromJSON ScheduleEntry where+  parseJSON =+    Data.withObject+      "ScheduleEntry"+      ( \x ->+          ScheduleEntry'+            Prelude.<$> (x Data..:? "ApproximateDurationSeconds")+            Prelude.<*> (x Data..:? "ApproximateStartTime")+            Prelude.<*> (x Data..:? "LiveSourceName")+            Prelude.<*> ( x+                            Data..:? "ScheduleAdBreaks"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "ScheduleEntryType")+            Prelude.<*> (x Data..:? "VodSourceName")+            Prelude.<*> (x Data..: "Arn")+            Prelude.<*> (x Data..: "ChannelName")+            Prelude.<*> (x Data..: "ProgramName")+            Prelude.<*> (x Data..: "SourceLocationName")+      )++instance Prelude.Hashable ScheduleEntry where+  hashWithSalt _salt ScheduleEntry' {..} =+    _salt+      `Prelude.hashWithSalt` approximateDurationSeconds+      `Prelude.hashWithSalt` approximateStartTime+      `Prelude.hashWithSalt` liveSourceName+      `Prelude.hashWithSalt` scheduleAdBreaks+      `Prelude.hashWithSalt` scheduleEntryType+      `Prelude.hashWithSalt` vodSourceName+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` channelName+      `Prelude.hashWithSalt` programName+      `Prelude.hashWithSalt` sourceLocationName++instance Prelude.NFData ScheduleEntry where+  rnf ScheduleEntry' {..} =+    Prelude.rnf approximateDurationSeconds+      `Prelude.seq` Prelude.rnf approximateStartTime+      `Prelude.seq` Prelude.rnf liveSourceName+      `Prelude.seq` Prelude.rnf scheduleAdBreaks+      `Prelude.seq` Prelude.rnf scheduleEntryType+      `Prelude.seq` Prelude.rnf vodSourceName+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf channelName+      `Prelude.seq` Prelude.rnf programName+      `Prelude.seq` Prelude.rnf sourceLocationName
+ gen/Amazonka/MediaTailor/Types/ScheduleEntryType.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.MediaTailor.Types.ScheduleEntryType+-- Copyright   : (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.MediaTailor.Types.ScheduleEntryType+  ( ScheduleEntryType+      ( ..,+        ScheduleEntryType_FILLER_SLATE,+        ScheduleEntryType_PROGRAM+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ScheduleEntryType = ScheduleEntryType'+  { fromScheduleEntryType ::+      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 ScheduleEntryType_FILLER_SLATE :: ScheduleEntryType+pattern ScheduleEntryType_FILLER_SLATE = ScheduleEntryType' "FILLER_SLATE"++pattern ScheduleEntryType_PROGRAM :: ScheduleEntryType+pattern ScheduleEntryType_PROGRAM = ScheduleEntryType' "PROGRAM"++{-# COMPLETE+  ScheduleEntryType_FILLER_SLATE,+  ScheduleEntryType_PROGRAM,+  ScheduleEntryType'+  #-}
+ gen/Amazonka/MediaTailor/Types/SecretsManagerAccessTokenConfiguration.hs view
@@ -0,0 +1,139 @@+{-# 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.MediaTailor.Types.SecretsManagerAccessTokenConfiguration+-- Copyright   : (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.MediaTailor.Types.SecretsManagerAccessTokenConfiguration 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++-- | AWS Secrets Manager access token configuration parameters. For+-- information about Secrets Manager access token authentication, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/channel-assembly-access-configuration-access-token.html Working with AWS Secrets Manager access token authentication>.+--+-- /See:/ 'newSecretsManagerAccessTokenConfiguration' smart constructor.+data SecretsManagerAccessTokenConfiguration = SecretsManagerAccessTokenConfiguration'+  { -- | The name of the HTTP header used to supply the access token in requests+    -- to the source location.+    headerName :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that+    -- contains the access token.+    secretArn :: Prelude.Maybe Prelude.Text,+    -- | The AWS Secrets Manager+    -- <https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html#SecretsManager-CreateSecret-request-SecretString.html SecretString>+    -- key associated with the access token. MediaTailor uses the key to look+    -- up SecretString key and value pair containing the access token.+    secretStringKey :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SecretsManagerAccessTokenConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'headerName', 'secretsManagerAccessTokenConfiguration_headerName' - The name of the HTTP header used to supply the access token in requests+-- to the source location.+--+-- 'secretArn', 'secretsManagerAccessTokenConfiguration_secretArn' - The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that+-- contains the access token.+--+-- 'secretStringKey', 'secretsManagerAccessTokenConfiguration_secretStringKey' - The AWS Secrets Manager+-- <https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html#SecretsManager-CreateSecret-request-SecretString.html SecretString>+-- key associated with the access token. MediaTailor uses the key to look+-- up SecretString key and value pair containing the access token.+newSecretsManagerAccessTokenConfiguration ::+  SecretsManagerAccessTokenConfiguration+newSecretsManagerAccessTokenConfiguration =+  SecretsManagerAccessTokenConfiguration'+    { headerName =+        Prelude.Nothing,+      secretArn = Prelude.Nothing,+      secretStringKey = Prelude.Nothing+    }++-- | The name of the HTTP header used to supply the access token in requests+-- to the source location.+secretsManagerAccessTokenConfiguration_headerName :: Lens.Lens' SecretsManagerAccessTokenConfiguration (Prelude.Maybe Prelude.Text)+secretsManagerAccessTokenConfiguration_headerName = Lens.lens (\SecretsManagerAccessTokenConfiguration' {headerName} -> headerName) (\s@SecretsManagerAccessTokenConfiguration' {} a -> s {headerName = a} :: SecretsManagerAccessTokenConfiguration)++-- | The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that+-- contains the access token.+secretsManagerAccessTokenConfiguration_secretArn :: Lens.Lens' SecretsManagerAccessTokenConfiguration (Prelude.Maybe Prelude.Text)+secretsManagerAccessTokenConfiguration_secretArn = Lens.lens (\SecretsManagerAccessTokenConfiguration' {secretArn} -> secretArn) (\s@SecretsManagerAccessTokenConfiguration' {} a -> s {secretArn = a} :: SecretsManagerAccessTokenConfiguration)++-- | The AWS Secrets Manager+-- <https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html#SecretsManager-CreateSecret-request-SecretString.html SecretString>+-- key associated with the access token. MediaTailor uses the key to look+-- up SecretString key and value pair containing the access token.+secretsManagerAccessTokenConfiguration_secretStringKey :: Lens.Lens' SecretsManagerAccessTokenConfiguration (Prelude.Maybe Prelude.Text)+secretsManagerAccessTokenConfiguration_secretStringKey = Lens.lens (\SecretsManagerAccessTokenConfiguration' {secretStringKey} -> secretStringKey) (\s@SecretsManagerAccessTokenConfiguration' {} a -> s {secretStringKey = a} :: SecretsManagerAccessTokenConfiguration)++instance+  Data.FromJSON+    SecretsManagerAccessTokenConfiguration+  where+  parseJSON =+    Data.withObject+      "SecretsManagerAccessTokenConfiguration"+      ( \x ->+          SecretsManagerAccessTokenConfiguration'+            Prelude.<$> (x Data..:? "HeaderName")+            Prelude.<*> (x Data..:? "SecretArn")+            Prelude.<*> (x Data..:? "SecretStringKey")+      )++instance+  Prelude.Hashable+    SecretsManagerAccessTokenConfiguration+  where+  hashWithSalt+    _salt+    SecretsManagerAccessTokenConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` headerName+        `Prelude.hashWithSalt` secretArn+        `Prelude.hashWithSalt` secretStringKey++instance+  Prelude.NFData+    SecretsManagerAccessTokenConfiguration+  where+  rnf SecretsManagerAccessTokenConfiguration' {..} =+    Prelude.rnf headerName+      `Prelude.seq` Prelude.rnf secretArn+      `Prelude.seq` Prelude.rnf secretStringKey++instance+  Data.ToJSON+    SecretsManagerAccessTokenConfiguration+  where+  toJSON SecretsManagerAccessTokenConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("HeaderName" Data..=) Prelude.<$> headerName,+            ("SecretArn" Data..=) Prelude.<$> secretArn,+            ("SecretStringKey" Data..=)+              Prelude.<$> secretStringKey+          ]+      )
+ gen/Amazonka/MediaTailor/Types/SegmentDeliveryConfiguration.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaTailor.Types.SegmentDeliveryConfiguration+-- Copyright   : (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.MediaTailor.Types.SegmentDeliveryConfiguration 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 segment delivery configuration settings.+--+-- /See:/ 'newSegmentDeliveryConfiguration' smart constructor.+data SegmentDeliveryConfiguration = SegmentDeliveryConfiguration'+  { -- | The base URL of the host or path of the segment delivery server that+    -- you\'re using to serve segments. This is typically a content delivery+    -- network (CDN). The URL can be absolute or relative. To use an absolute+    -- URL include the protocol, such as @https:\/\/example.com\/some\/path@.+    -- To use a relative URL specify the relative path, such as+    -- @\/some\/path*@.+    baseUrl :: Prelude.Maybe Prelude.Text,+    -- | A unique identifier used to distinguish between multiple segment+    -- delivery configurations in a source location.+    name :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SegmentDeliveryConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'baseUrl', 'segmentDeliveryConfiguration_baseUrl' - The base URL of the host or path of the segment delivery server that+-- you\'re using to serve segments. This is typically a content delivery+-- network (CDN). The URL can be absolute or relative. To use an absolute+-- URL include the protocol, such as @https:\/\/example.com\/some\/path@.+-- To use a relative URL specify the relative path, such as+-- @\/some\/path*@.+--+-- 'name', 'segmentDeliveryConfiguration_name' - A unique identifier used to distinguish between multiple segment+-- delivery configurations in a source location.+newSegmentDeliveryConfiguration ::+  SegmentDeliveryConfiguration+newSegmentDeliveryConfiguration =+  SegmentDeliveryConfiguration'+    { baseUrl =+        Prelude.Nothing,+      name = Prelude.Nothing+    }++-- | The base URL of the host or path of the segment delivery server that+-- you\'re using to serve segments. This is typically a content delivery+-- network (CDN). The URL can be absolute or relative. To use an absolute+-- URL include the protocol, such as @https:\/\/example.com\/some\/path@.+-- To use a relative URL specify the relative path, such as+-- @\/some\/path*@.+segmentDeliveryConfiguration_baseUrl :: Lens.Lens' SegmentDeliveryConfiguration (Prelude.Maybe Prelude.Text)+segmentDeliveryConfiguration_baseUrl = Lens.lens (\SegmentDeliveryConfiguration' {baseUrl} -> baseUrl) (\s@SegmentDeliveryConfiguration' {} a -> s {baseUrl = a} :: SegmentDeliveryConfiguration)++-- | A unique identifier used to distinguish between multiple segment+-- delivery configurations in a source location.+segmentDeliveryConfiguration_name :: Lens.Lens' SegmentDeliveryConfiguration (Prelude.Maybe Prelude.Text)+segmentDeliveryConfiguration_name = Lens.lens (\SegmentDeliveryConfiguration' {name} -> name) (\s@SegmentDeliveryConfiguration' {} a -> s {name = a} :: SegmentDeliveryConfiguration)++instance Data.FromJSON SegmentDeliveryConfiguration where+  parseJSON =+    Data.withObject+      "SegmentDeliveryConfiguration"+      ( \x ->+          SegmentDeliveryConfiguration'+            Prelude.<$> (x Data..:? "BaseUrl")+            Prelude.<*> (x Data..:? "Name")+      )++instance+  Prelude.Hashable+    SegmentDeliveryConfiguration+  where+  hashWithSalt _salt SegmentDeliveryConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` baseUrl+      `Prelude.hashWithSalt` name++instance Prelude.NFData SegmentDeliveryConfiguration where+  rnf SegmentDeliveryConfiguration' {..} =+    Prelude.rnf baseUrl `Prelude.seq` Prelude.rnf name++instance Data.ToJSON SegmentDeliveryConfiguration where+  toJSON SegmentDeliveryConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BaseUrl" Data..=) Prelude.<$> baseUrl,+            ("Name" Data..=) Prelude.<$> name+          ]+      )
+ gen/Amazonka/MediaTailor/Types/SegmentationDescriptor.hs view
@@ -0,0 +1,263 @@+{-# 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.MediaTailor.Types.SegmentationDescriptor+-- Copyright   : (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.MediaTailor.Types.SegmentationDescriptor 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 @segmentation_descriptor@ message can contain advanced metadata+-- fields, like content identifiers, to convey a wide range of information+-- about the ad break. MediaTailor writes the ad metadata in the egress+-- manifest as part of the @EXT-X-DATERANGE@ or @EventStream@ ad marker\'s+-- SCTE-35 data.+--+-- @segmentation_descriptor@ messages must be sent with the @time_signal@+-- message type.+--+-- See the @segmentation_descriptor()@ table of the 2022 SCTE-35+-- specification for more information.+--+-- /See:/ 'newSegmentationDescriptor' smart constructor.+data SegmentationDescriptor = SegmentationDescriptor'+  { -- | The segment number to assign to the+    -- @segmentation_descriptor.segment_num@ message, as defined in section+    -- 10.3.3.1 of the 2022 SCTE-35 specification Values must be between 0 and+    -- 256, inclusive. The default value is 0.+    segmentNum :: Prelude.Maybe Prelude.Int,+    -- | The Event Identifier to assign to the+    -- @segmentation_descriptor.segmentation_event_id@ message, as defined in+    -- section 10.3.3.1 of the 2022 SCTE-35 specification. The default value is+    -- 1.+    segmentationEventId :: Prelude.Maybe Prelude.Int,+    -- | The Type Identifier to assign to the+    -- @segmentation_descriptor.segmentation_type_id@ message, as defined in+    -- section 10.3.3.1 of the 2022 SCTE-35 specification. Values must be+    -- between 0 and 256, inclusive. The default value is 48.+    segmentationTypeId :: Prelude.Maybe Prelude.Int,+    -- | The Upid to assign to the @segmentation_descriptor.segmentation_upid@+    -- message, as defined in section 10.3.3.1 of the 2022 SCTE-35+    -- specification. The value must be a hexadecimal string containing only+    -- the characters 0 though 9 and A through F. The default value is \"\" (an+    -- empty string).+    segmentationUpid :: Prelude.Maybe Prelude.Text,+    -- | The Upid Type to assign to the+    -- @segmentation_descriptor.segmentation_upid_type@ message, as defined in+    -- section 10.3.3.1 of the 2022 SCTE-35 specification. Values must be+    -- between 0 and 256, inclusive. The default value is 14.+    segmentationUpidType :: Prelude.Maybe Prelude.Int,+    -- | The number of segments expected, which is assigned to the+    -- @segmentation_descriptor.segments_expectedS@ message, as defined in+    -- section 10.3.3.1 of the 2022 SCTE-35 specification Values must be+    -- between 0 and 256, inclusive. The default value is 0.+    segmentsExpected :: Prelude.Maybe Prelude.Int,+    -- | The sub-segment number to assign to the+    -- @segmentation_descriptor.sub_segment_num@ message, as defined in section+    -- 10.3.3.1 of the 2022 SCTE-35 specification. Values must be between 0 and+    -- 256, inclusive. The defualt value is null.+    subSegmentNum :: Prelude.Maybe Prelude.Int,+    -- | The number of sub-segments expected, which is assigned to the+    -- @segmentation_descriptor.sub_segments_expected@ message, as defined in+    -- section 10.3.3.1 of the 2022 SCTE-35 specification. Values must be+    -- between 0 and 256, inclusive. The default value is null.+    subSegmentsExpected :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SegmentationDescriptor' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'segmentNum', 'segmentationDescriptor_segmentNum' - The segment number to assign to the+-- @segmentation_descriptor.segment_num@ message, as defined in section+-- 10.3.3.1 of the 2022 SCTE-35 specification Values must be between 0 and+-- 256, inclusive. The default value is 0.+--+-- 'segmentationEventId', 'segmentationDescriptor_segmentationEventId' - The Event Identifier to assign to the+-- @segmentation_descriptor.segmentation_event_id@ message, as defined in+-- section 10.3.3.1 of the 2022 SCTE-35 specification. The default value is+-- 1.+--+-- 'segmentationTypeId', 'segmentationDescriptor_segmentationTypeId' - The Type Identifier to assign to the+-- @segmentation_descriptor.segmentation_type_id@ message, as defined in+-- section 10.3.3.1 of the 2022 SCTE-35 specification. Values must be+-- between 0 and 256, inclusive. The default value is 48.+--+-- 'segmentationUpid', 'segmentationDescriptor_segmentationUpid' - The Upid to assign to the @segmentation_descriptor.segmentation_upid@+-- message, as defined in section 10.3.3.1 of the 2022 SCTE-35+-- specification. The value must be a hexadecimal string containing only+-- the characters 0 though 9 and A through F. The default value is \"\" (an+-- empty string).+--+-- 'segmentationUpidType', 'segmentationDescriptor_segmentationUpidType' - The Upid Type to assign to the+-- @segmentation_descriptor.segmentation_upid_type@ message, as defined in+-- section 10.3.3.1 of the 2022 SCTE-35 specification. Values must be+-- between 0 and 256, inclusive. The default value is 14.+--+-- 'segmentsExpected', 'segmentationDescriptor_segmentsExpected' - The number of segments expected, which is assigned to the+-- @segmentation_descriptor.segments_expectedS@ message, as defined in+-- section 10.3.3.1 of the 2022 SCTE-35 specification Values must be+-- between 0 and 256, inclusive. The default value is 0.+--+-- 'subSegmentNum', 'segmentationDescriptor_subSegmentNum' - The sub-segment number to assign to the+-- @segmentation_descriptor.sub_segment_num@ message, as defined in section+-- 10.3.3.1 of the 2022 SCTE-35 specification. Values must be between 0 and+-- 256, inclusive. The defualt value is null.+--+-- 'subSegmentsExpected', 'segmentationDescriptor_subSegmentsExpected' - The number of sub-segments expected, which is assigned to the+-- @segmentation_descriptor.sub_segments_expected@ message, as defined in+-- section 10.3.3.1 of the 2022 SCTE-35 specification. Values must be+-- between 0 and 256, inclusive. The default value is null.+newSegmentationDescriptor ::+  SegmentationDescriptor+newSegmentationDescriptor =+  SegmentationDescriptor'+    { segmentNum =+        Prelude.Nothing,+      segmentationEventId = Prelude.Nothing,+      segmentationTypeId = Prelude.Nothing,+      segmentationUpid = Prelude.Nothing,+      segmentationUpidType = Prelude.Nothing,+      segmentsExpected = Prelude.Nothing,+      subSegmentNum = Prelude.Nothing,+      subSegmentsExpected = Prelude.Nothing+    }++-- | The segment number to assign to the+-- @segmentation_descriptor.segment_num@ message, as defined in section+-- 10.3.3.1 of the 2022 SCTE-35 specification Values must be between 0 and+-- 256, inclusive. The default value is 0.+segmentationDescriptor_segmentNum :: Lens.Lens' SegmentationDescriptor (Prelude.Maybe Prelude.Int)+segmentationDescriptor_segmentNum = Lens.lens (\SegmentationDescriptor' {segmentNum} -> segmentNum) (\s@SegmentationDescriptor' {} a -> s {segmentNum = a} :: SegmentationDescriptor)++-- | The Event Identifier to assign to the+-- @segmentation_descriptor.segmentation_event_id@ message, as defined in+-- section 10.3.3.1 of the 2022 SCTE-35 specification. The default value is+-- 1.+segmentationDescriptor_segmentationEventId :: Lens.Lens' SegmentationDescriptor (Prelude.Maybe Prelude.Int)+segmentationDescriptor_segmentationEventId = Lens.lens (\SegmentationDescriptor' {segmentationEventId} -> segmentationEventId) (\s@SegmentationDescriptor' {} a -> s {segmentationEventId = a} :: SegmentationDescriptor)++-- | The Type Identifier to assign to the+-- @segmentation_descriptor.segmentation_type_id@ message, as defined in+-- section 10.3.3.1 of the 2022 SCTE-35 specification. Values must be+-- between 0 and 256, inclusive. The default value is 48.+segmentationDescriptor_segmentationTypeId :: Lens.Lens' SegmentationDescriptor (Prelude.Maybe Prelude.Int)+segmentationDescriptor_segmentationTypeId = Lens.lens (\SegmentationDescriptor' {segmentationTypeId} -> segmentationTypeId) (\s@SegmentationDescriptor' {} a -> s {segmentationTypeId = a} :: SegmentationDescriptor)++-- | The Upid to assign to the @segmentation_descriptor.segmentation_upid@+-- message, as defined in section 10.3.3.1 of the 2022 SCTE-35+-- specification. The value must be a hexadecimal string containing only+-- the characters 0 though 9 and A through F. The default value is \"\" (an+-- empty string).+segmentationDescriptor_segmentationUpid :: Lens.Lens' SegmentationDescriptor (Prelude.Maybe Prelude.Text)+segmentationDescriptor_segmentationUpid = Lens.lens (\SegmentationDescriptor' {segmentationUpid} -> segmentationUpid) (\s@SegmentationDescriptor' {} a -> s {segmentationUpid = a} :: SegmentationDescriptor)++-- | The Upid Type to assign to the+-- @segmentation_descriptor.segmentation_upid_type@ message, as defined in+-- section 10.3.3.1 of the 2022 SCTE-35 specification. Values must be+-- between 0 and 256, inclusive. The default value is 14.+segmentationDescriptor_segmentationUpidType :: Lens.Lens' SegmentationDescriptor (Prelude.Maybe Prelude.Int)+segmentationDescriptor_segmentationUpidType = Lens.lens (\SegmentationDescriptor' {segmentationUpidType} -> segmentationUpidType) (\s@SegmentationDescriptor' {} a -> s {segmentationUpidType = a} :: SegmentationDescriptor)++-- | The number of segments expected, which is assigned to the+-- @segmentation_descriptor.segments_expectedS@ message, as defined in+-- section 10.3.3.1 of the 2022 SCTE-35 specification Values must be+-- between 0 and 256, inclusive. The default value is 0.+segmentationDescriptor_segmentsExpected :: Lens.Lens' SegmentationDescriptor (Prelude.Maybe Prelude.Int)+segmentationDescriptor_segmentsExpected = Lens.lens (\SegmentationDescriptor' {segmentsExpected} -> segmentsExpected) (\s@SegmentationDescriptor' {} a -> s {segmentsExpected = a} :: SegmentationDescriptor)++-- | The sub-segment number to assign to the+-- @segmentation_descriptor.sub_segment_num@ message, as defined in section+-- 10.3.3.1 of the 2022 SCTE-35 specification. Values must be between 0 and+-- 256, inclusive. The defualt value is null.+segmentationDescriptor_subSegmentNum :: Lens.Lens' SegmentationDescriptor (Prelude.Maybe Prelude.Int)+segmentationDescriptor_subSegmentNum = Lens.lens (\SegmentationDescriptor' {subSegmentNum} -> subSegmentNum) (\s@SegmentationDescriptor' {} a -> s {subSegmentNum = a} :: SegmentationDescriptor)++-- | The number of sub-segments expected, which is assigned to the+-- @segmentation_descriptor.sub_segments_expected@ message, as defined in+-- section 10.3.3.1 of the 2022 SCTE-35 specification. Values must be+-- between 0 and 256, inclusive. The default value is null.+segmentationDescriptor_subSegmentsExpected :: Lens.Lens' SegmentationDescriptor (Prelude.Maybe Prelude.Int)+segmentationDescriptor_subSegmentsExpected = Lens.lens (\SegmentationDescriptor' {subSegmentsExpected} -> subSegmentsExpected) (\s@SegmentationDescriptor' {} a -> s {subSegmentsExpected = a} :: SegmentationDescriptor)++instance Data.FromJSON SegmentationDescriptor where+  parseJSON =+    Data.withObject+      "SegmentationDescriptor"+      ( \x ->+          SegmentationDescriptor'+            Prelude.<$> (x Data..:? "SegmentNum")+            Prelude.<*> (x Data..:? "SegmentationEventId")+            Prelude.<*> (x Data..:? "SegmentationTypeId")+            Prelude.<*> (x Data..:? "SegmentationUpid")+            Prelude.<*> (x Data..:? "SegmentationUpidType")+            Prelude.<*> (x Data..:? "SegmentsExpected")+            Prelude.<*> (x Data..:? "SubSegmentNum")+            Prelude.<*> (x Data..:? "SubSegmentsExpected")+      )++instance Prelude.Hashable SegmentationDescriptor where+  hashWithSalt _salt SegmentationDescriptor' {..} =+    _salt+      `Prelude.hashWithSalt` segmentNum+      `Prelude.hashWithSalt` segmentationEventId+      `Prelude.hashWithSalt` segmentationTypeId+      `Prelude.hashWithSalt` segmentationUpid+      `Prelude.hashWithSalt` segmentationUpidType+      `Prelude.hashWithSalt` segmentsExpected+      `Prelude.hashWithSalt` subSegmentNum+      `Prelude.hashWithSalt` subSegmentsExpected++instance Prelude.NFData SegmentationDescriptor where+  rnf SegmentationDescriptor' {..} =+    Prelude.rnf segmentNum+      `Prelude.seq` Prelude.rnf segmentationEventId+      `Prelude.seq` Prelude.rnf segmentationTypeId+      `Prelude.seq` Prelude.rnf segmentationUpid+      `Prelude.seq` Prelude.rnf segmentationUpidType+      `Prelude.seq` Prelude.rnf segmentsExpected+      `Prelude.seq` Prelude.rnf subSegmentNum+      `Prelude.seq` Prelude.rnf subSegmentsExpected++instance Data.ToJSON SegmentationDescriptor where+  toJSON SegmentationDescriptor' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("SegmentNum" Data..=) Prelude.<$> segmentNum,+            ("SegmentationEventId" Data..=)+              Prelude.<$> segmentationEventId,+            ("SegmentationTypeId" Data..=)+              Prelude.<$> segmentationTypeId,+            ("SegmentationUpid" Data..=)+              Prelude.<$> segmentationUpid,+            ("SegmentationUpidType" Data..=)+              Prelude.<$> segmentationUpidType,+            ("SegmentsExpected" Data..=)+              Prelude.<$> segmentsExpected,+            ("SubSegmentNum" Data..=) Prelude.<$> subSegmentNum,+            ("SubSegmentsExpected" Data..=)+              Prelude.<$> subSegmentsExpected+          ]+      )
+ gen/Amazonka/MediaTailor/Types/SlateSource.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaTailor.Types.SlateSource+-- Copyright   : (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.MediaTailor.Types.SlateSource 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++-- | Slate VOD source configuration.+--+-- /See:/ 'newSlateSource' smart constructor.+data SlateSource = SlateSource'+  { -- | The name of the source location where the slate VOD source is stored.+    sourceLocationName :: Prelude.Maybe Prelude.Text,+    -- | The slate VOD source name. The VOD source must already exist in a source+    -- location before it can be used for slate.+    vodSourceName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SlateSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sourceLocationName', 'slateSource_sourceLocationName' - The name of the source location where the slate VOD source is stored.+--+-- 'vodSourceName', 'slateSource_vodSourceName' - The slate VOD source name. The VOD source must already exist in a source+-- location before it can be used for slate.+newSlateSource ::+  SlateSource+newSlateSource =+  SlateSource'+    { sourceLocationName = Prelude.Nothing,+      vodSourceName = Prelude.Nothing+    }++-- | The name of the source location where the slate VOD source is stored.+slateSource_sourceLocationName :: Lens.Lens' SlateSource (Prelude.Maybe Prelude.Text)+slateSource_sourceLocationName = Lens.lens (\SlateSource' {sourceLocationName} -> sourceLocationName) (\s@SlateSource' {} a -> s {sourceLocationName = a} :: SlateSource)++-- | The slate VOD source name. The VOD source must already exist in a source+-- location before it can be used for slate.+slateSource_vodSourceName :: Lens.Lens' SlateSource (Prelude.Maybe Prelude.Text)+slateSource_vodSourceName = Lens.lens (\SlateSource' {vodSourceName} -> vodSourceName) (\s@SlateSource' {} a -> s {vodSourceName = a} :: SlateSource)++instance Data.FromJSON SlateSource where+  parseJSON =+    Data.withObject+      "SlateSource"+      ( \x ->+          SlateSource'+            Prelude.<$> (x Data..:? "SourceLocationName")+            Prelude.<*> (x Data..:? "VodSourceName")+      )++instance Prelude.Hashable SlateSource where+  hashWithSalt _salt SlateSource' {..} =+    _salt+      `Prelude.hashWithSalt` sourceLocationName+      `Prelude.hashWithSalt` vodSourceName++instance Prelude.NFData SlateSource where+  rnf SlateSource' {..} =+    Prelude.rnf sourceLocationName+      `Prelude.seq` Prelude.rnf vodSourceName++instance Data.ToJSON SlateSource where+  toJSON SlateSource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("SourceLocationName" Data..=)+              Prelude.<$> sourceLocationName,+            ("VodSourceName" Data..=) Prelude.<$> vodSourceName+          ]+      )
+ gen/Amazonka/MediaTailor/Types/SourceLocation.hs view
@@ -0,0 +1,198 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaTailor.Types.SourceLocation+-- Copyright   : (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.MediaTailor.Types.SourceLocation where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types.AccessConfiguration+import Amazonka.MediaTailor.Types.DefaultSegmentDeliveryConfiguration+import Amazonka.MediaTailor.Types.HttpConfiguration+import Amazonka.MediaTailor.Types.SegmentDeliveryConfiguration+import qualified Amazonka.Prelude as Prelude++-- | A source location is a container for sources. For more information about+-- source locations, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/channel-assembly-source-locations.html Working with source locations>+-- in the /MediaTailor User Guide/.+--+-- /See:/ 'newSourceLocation' smart constructor.+data SourceLocation = SourceLocation'+  { -- | The access configuration for the source location.+    accessConfiguration :: Prelude.Maybe AccessConfiguration,+    -- | The timestamp that indicates when the source location was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The default segment delivery configuration.+    defaultSegmentDeliveryConfiguration :: Prelude.Maybe DefaultSegmentDeliveryConfiguration,+    -- | The timestamp that indicates when the source location was last modified.+    lastModifiedTime :: Prelude.Maybe Data.POSIX,+    -- | The segment delivery configurations for the source location.+    segmentDeliveryConfigurations :: Prelude.Maybe [SegmentDeliveryConfiguration],+    -- | The tags assigned to the source location. Tags are key-value pairs that+    -- you can associate with Amazon resources to help with organization,+    -- access control, and cost tracking. For more information, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The ARN of the SourceLocation.+    arn :: Prelude.Text,+    -- | The HTTP configuration for the source location.+    httpConfiguration :: HttpConfiguration,+    -- | The name of the source location.+    sourceLocationName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SourceLocation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessConfiguration', 'sourceLocation_accessConfiguration' - The access configuration for the source location.+--+-- 'creationTime', 'sourceLocation_creationTime' - The timestamp that indicates when the source location was created.+--+-- 'defaultSegmentDeliveryConfiguration', 'sourceLocation_defaultSegmentDeliveryConfiguration' - The default segment delivery configuration.+--+-- 'lastModifiedTime', 'sourceLocation_lastModifiedTime' - The timestamp that indicates when the source location was last modified.+--+-- 'segmentDeliveryConfigurations', 'sourceLocation_segmentDeliveryConfigurations' - The segment delivery configurations for the source location.+--+-- 'tags', 'sourceLocation_tags' - The tags assigned to the source location. Tags are key-value pairs that+-- you can associate with Amazon resources to help with organization,+-- access control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+--+-- 'arn', 'sourceLocation_arn' - The ARN of the SourceLocation.+--+-- 'httpConfiguration', 'sourceLocation_httpConfiguration' - The HTTP configuration for the source location.+--+-- 'sourceLocationName', 'sourceLocation_sourceLocationName' - The name of the source location.+newSourceLocation ::+  -- | 'arn'+  Prelude.Text ->+  -- | 'httpConfiguration'+  HttpConfiguration ->+  -- | 'sourceLocationName'+  Prelude.Text ->+  SourceLocation+newSourceLocation+  pArn_+  pHttpConfiguration_+  pSourceLocationName_ =+    SourceLocation'+      { accessConfiguration =+          Prelude.Nothing,+        creationTime = Prelude.Nothing,+        defaultSegmentDeliveryConfiguration =+          Prelude.Nothing,+        lastModifiedTime = Prelude.Nothing,+        segmentDeliveryConfigurations = Prelude.Nothing,+        tags = Prelude.Nothing,+        arn = pArn_,+        httpConfiguration = pHttpConfiguration_,+        sourceLocationName = pSourceLocationName_+      }++-- | The access configuration for the source location.+sourceLocation_accessConfiguration :: Lens.Lens' SourceLocation (Prelude.Maybe AccessConfiguration)+sourceLocation_accessConfiguration = Lens.lens (\SourceLocation' {accessConfiguration} -> accessConfiguration) (\s@SourceLocation' {} a -> s {accessConfiguration = a} :: SourceLocation)++-- | The timestamp that indicates when the source location was created.+sourceLocation_creationTime :: Lens.Lens' SourceLocation (Prelude.Maybe Prelude.UTCTime)+sourceLocation_creationTime = Lens.lens (\SourceLocation' {creationTime} -> creationTime) (\s@SourceLocation' {} a -> s {creationTime = a} :: SourceLocation) Prelude.. Lens.mapping Data._Time++-- | The default segment delivery configuration.+sourceLocation_defaultSegmentDeliveryConfiguration :: Lens.Lens' SourceLocation (Prelude.Maybe DefaultSegmentDeliveryConfiguration)+sourceLocation_defaultSegmentDeliveryConfiguration = Lens.lens (\SourceLocation' {defaultSegmentDeliveryConfiguration} -> defaultSegmentDeliveryConfiguration) (\s@SourceLocation' {} a -> s {defaultSegmentDeliveryConfiguration = a} :: SourceLocation)++-- | The timestamp that indicates when the source location was last modified.+sourceLocation_lastModifiedTime :: Lens.Lens' SourceLocation (Prelude.Maybe Prelude.UTCTime)+sourceLocation_lastModifiedTime = Lens.lens (\SourceLocation' {lastModifiedTime} -> lastModifiedTime) (\s@SourceLocation' {} a -> s {lastModifiedTime = a} :: SourceLocation) Prelude.. Lens.mapping Data._Time++-- | The segment delivery configurations for the source location.+sourceLocation_segmentDeliveryConfigurations :: Lens.Lens' SourceLocation (Prelude.Maybe [SegmentDeliveryConfiguration])+sourceLocation_segmentDeliveryConfigurations = Lens.lens (\SourceLocation' {segmentDeliveryConfigurations} -> segmentDeliveryConfigurations) (\s@SourceLocation' {} a -> s {segmentDeliveryConfigurations = a} :: SourceLocation) Prelude.. Lens.mapping Lens.coerced++-- | The tags assigned to the source location. Tags are key-value pairs that+-- you can associate with Amazon resources to help with organization,+-- access control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+sourceLocation_tags :: Lens.Lens' SourceLocation (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+sourceLocation_tags = Lens.lens (\SourceLocation' {tags} -> tags) (\s@SourceLocation' {} a -> s {tags = a} :: SourceLocation) Prelude.. Lens.mapping Lens.coerced++-- | The ARN of the SourceLocation.+sourceLocation_arn :: Lens.Lens' SourceLocation Prelude.Text+sourceLocation_arn = Lens.lens (\SourceLocation' {arn} -> arn) (\s@SourceLocation' {} a -> s {arn = a} :: SourceLocation)++-- | The HTTP configuration for the source location.+sourceLocation_httpConfiguration :: Lens.Lens' SourceLocation HttpConfiguration+sourceLocation_httpConfiguration = Lens.lens (\SourceLocation' {httpConfiguration} -> httpConfiguration) (\s@SourceLocation' {} a -> s {httpConfiguration = a} :: SourceLocation)++-- | The name of the source location.+sourceLocation_sourceLocationName :: Lens.Lens' SourceLocation Prelude.Text+sourceLocation_sourceLocationName = Lens.lens (\SourceLocation' {sourceLocationName} -> sourceLocationName) (\s@SourceLocation' {} a -> s {sourceLocationName = a} :: SourceLocation)++instance Data.FromJSON SourceLocation where+  parseJSON =+    Data.withObject+      "SourceLocation"+      ( \x ->+          SourceLocation'+            Prelude.<$> (x Data..:? "AccessConfiguration")+            Prelude.<*> (x Data..:? "CreationTime")+            Prelude.<*> (x Data..:? "DefaultSegmentDeliveryConfiguration")+            Prelude.<*> (x Data..:? "LastModifiedTime")+            Prelude.<*> ( x+                            Data..:? "SegmentDeliveryConfigurations"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "Arn")+            Prelude.<*> (x Data..: "HttpConfiguration")+            Prelude.<*> (x Data..: "SourceLocationName")+      )++instance Prelude.Hashable SourceLocation where+  hashWithSalt _salt SourceLocation' {..} =+    _salt+      `Prelude.hashWithSalt` accessConfiguration+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` defaultSegmentDeliveryConfiguration+      `Prelude.hashWithSalt` lastModifiedTime+      `Prelude.hashWithSalt` segmentDeliveryConfigurations+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` httpConfiguration+      `Prelude.hashWithSalt` sourceLocationName++instance Prelude.NFData SourceLocation where+  rnf SourceLocation' {..} =+    Prelude.rnf accessConfiguration+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf defaultSegmentDeliveryConfiguration+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf segmentDeliveryConfigurations+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf httpConfiguration+      `Prelude.seq` Prelude.rnf sourceLocationName
+ gen/Amazonka/MediaTailor/Types/SpliceInsertMessage.hs view
@@ -0,0 +1,142 @@+{-# 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.MediaTailor.Types.SpliceInsertMessage+-- Copyright   : (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.MediaTailor.Types.SpliceInsertMessage 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++-- | Splice insert message configuration.+--+-- /See:/ 'newSpliceInsertMessage' smart constructor.+data SpliceInsertMessage = SpliceInsertMessage'+  { -- | This is written to @splice_insert.avail_num@, as defined in section+    -- 9.7.3.1 of the SCTE-35 specification. The default value is @0@. Values+    -- must be between @0@ and @256@, inclusive.+    availNum :: Prelude.Maybe Prelude.Int,+    -- | This is written to @splice_insert.avails_expected@, as defined in+    -- section 9.7.3.1 of the SCTE-35 specification. The default value is @0@.+    -- Values must be between @0@ and @256@, inclusive.+    availsExpected :: Prelude.Maybe Prelude.Int,+    -- | This is written to @splice_insert.splice_event_id@, as defined in+    -- section 9.7.3.1 of the SCTE-35 specification. The default value is @1@.+    spliceEventId :: Prelude.Maybe Prelude.Int,+    -- | This is written to @splice_insert.unique_program_id@, as defined in+    -- section 9.7.3.1 of the SCTE-35 specification. The default value is @0@.+    -- Values must be between @0@ and @256@, inclusive.+    uniqueProgramId :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SpliceInsertMessage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'availNum', 'spliceInsertMessage_availNum' - This is written to @splice_insert.avail_num@, as defined in section+-- 9.7.3.1 of the SCTE-35 specification. The default value is @0@. Values+-- must be between @0@ and @256@, inclusive.+--+-- 'availsExpected', 'spliceInsertMessage_availsExpected' - This is written to @splice_insert.avails_expected@, as defined in+-- section 9.7.3.1 of the SCTE-35 specification. The default value is @0@.+-- Values must be between @0@ and @256@, inclusive.+--+-- 'spliceEventId', 'spliceInsertMessage_spliceEventId' - This is written to @splice_insert.splice_event_id@, as defined in+-- section 9.7.3.1 of the SCTE-35 specification. The default value is @1@.+--+-- 'uniqueProgramId', 'spliceInsertMessage_uniqueProgramId' - This is written to @splice_insert.unique_program_id@, as defined in+-- section 9.7.3.1 of the SCTE-35 specification. The default value is @0@.+-- Values must be between @0@ and @256@, inclusive.+newSpliceInsertMessage ::+  SpliceInsertMessage+newSpliceInsertMessage =+  SpliceInsertMessage'+    { availNum = Prelude.Nothing,+      availsExpected = Prelude.Nothing,+      spliceEventId = Prelude.Nothing,+      uniqueProgramId = Prelude.Nothing+    }++-- | This is written to @splice_insert.avail_num@, as defined in section+-- 9.7.3.1 of the SCTE-35 specification. The default value is @0@. Values+-- must be between @0@ and @256@, inclusive.+spliceInsertMessage_availNum :: Lens.Lens' SpliceInsertMessage (Prelude.Maybe Prelude.Int)+spliceInsertMessage_availNum = Lens.lens (\SpliceInsertMessage' {availNum} -> availNum) (\s@SpliceInsertMessage' {} a -> s {availNum = a} :: SpliceInsertMessage)++-- | This is written to @splice_insert.avails_expected@, as defined in+-- section 9.7.3.1 of the SCTE-35 specification. The default value is @0@.+-- Values must be between @0@ and @256@, inclusive.+spliceInsertMessage_availsExpected :: Lens.Lens' SpliceInsertMessage (Prelude.Maybe Prelude.Int)+spliceInsertMessage_availsExpected = Lens.lens (\SpliceInsertMessage' {availsExpected} -> availsExpected) (\s@SpliceInsertMessage' {} a -> s {availsExpected = a} :: SpliceInsertMessage)++-- | This is written to @splice_insert.splice_event_id@, as defined in+-- section 9.7.3.1 of the SCTE-35 specification. The default value is @1@.+spliceInsertMessage_spliceEventId :: Lens.Lens' SpliceInsertMessage (Prelude.Maybe Prelude.Int)+spliceInsertMessage_spliceEventId = Lens.lens (\SpliceInsertMessage' {spliceEventId} -> spliceEventId) (\s@SpliceInsertMessage' {} a -> s {spliceEventId = a} :: SpliceInsertMessage)++-- | This is written to @splice_insert.unique_program_id@, as defined in+-- section 9.7.3.1 of the SCTE-35 specification. The default value is @0@.+-- Values must be between @0@ and @256@, inclusive.+spliceInsertMessage_uniqueProgramId :: Lens.Lens' SpliceInsertMessage (Prelude.Maybe Prelude.Int)+spliceInsertMessage_uniqueProgramId = Lens.lens (\SpliceInsertMessage' {uniqueProgramId} -> uniqueProgramId) (\s@SpliceInsertMessage' {} a -> s {uniqueProgramId = a} :: SpliceInsertMessage)++instance Data.FromJSON SpliceInsertMessage where+  parseJSON =+    Data.withObject+      "SpliceInsertMessage"+      ( \x ->+          SpliceInsertMessage'+            Prelude.<$> (x Data..:? "AvailNum")+            Prelude.<*> (x Data..:? "AvailsExpected")+            Prelude.<*> (x Data..:? "SpliceEventId")+            Prelude.<*> (x Data..:? "UniqueProgramId")+      )++instance Prelude.Hashable SpliceInsertMessage where+  hashWithSalt _salt SpliceInsertMessage' {..} =+    _salt+      `Prelude.hashWithSalt` availNum+      `Prelude.hashWithSalt` availsExpected+      `Prelude.hashWithSalt` spliceEventId+      `Prelude.hashWithSalt` uniqueProgramId++instance Prelude.NFData SpliceInsertMessage where+  rnf SpliceInsertMessage' {..} =+    Prelude.rnf availNum+      `Prelude.seq` Prelude.rnf availsExpected+      `Prelude.seq` Prelude.rnf spliceEventId+      `Prelude.seq` Prelude.rnf uniqueProgramId++instance Data.ToJSON SpliceInsertMessage where+  toJSON SpliceInsertMessage' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AvailNum" Data..=) Prelude.<$> availNum,+            ("AvailsExpected" Data..=)+              Prelude.<$> availsExpected,+            ("SpliceEventId" Data..=) Prelude.<$> spliceEventId,+            ("UniqueProgramId" Data..=)+              Prelude.<$> uniqueProgramId+          ]+      )
+ gen/Amazonka/MediaTailor/Types/Tier.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.MediaTailor.Types.Tier+-- Copyright   : (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.MediaTailor.Types.Tier+  ( Tier+      ( ..,+        Tier_BASIC,+        Tier_STANDARD+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Tier = Tier' {fromTier :: 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 Tier_BASIC :: Tier+pattern Tier_BASIC = Tier' "BASIC"++pattern Tier_STANDARD :: Tier+pattern Tier_STANDARD = Tier' "STANDARD"++{-# COMPLETE+  Tier_BASIC,+  Tier_STANDARD,+  Tier'+  #-}
+ gen/Amazonka/MediaTailor/Types/TimeSignalMessage.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaTailor.Types.TimeSignalMessage+-- Copyright   : (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.MediaTailor.Types.TimeSignalMessage where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types.SegmentationDescriptor+import qualified Amazonka.Prelude as Prelude++-- | The SCTE-35 @time_signal@ message can be sent with one or more+-- @segmentation_descriptor@ messages. A @time_signal@ message can be sent+-- only if a single @segmentation_descriptor@ message is sent.+--+-- The @time_signal@ message contains only the @splice_time@ field which is+-- constructed using a given presentation timestamp. When sending a+-- @time_signal@ message, the @splice_command_type@ field in the+-- @splice_info_section@ message is set to 6 (0x06).+--+-- See the @time_signal()@ table of the 2022 SCTE-35 specification for more+-- information.+--+-- /See:/ 'newTimeSignalMessage' smart constructor.+data TimeSignalMessage = TimeSignalMessage'+  { -- | The configurations for the SCTE-35 @segmentation_descriptor@ message(s)+    -- sent with the @time_signal@ message.+    segmentationDescriptors :: Prelude.Maybe [SegmentationDescriptor]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TimeSignalMessage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'segmentationDescriptors', 'timeSignalMessage_segmentationDescriptors' - The configurations for the SCTE-35 @segmentation_descriptor@ message(s)+-- sent with the @time_signal@ message.+newTimeSignalMessage ::+  TimeSignalMessage+newTimeSignalMessage =+  TimeSignalMessage'+    { segmentationDescriptors =+        Prelude.Nothing+    }++-- | The configurations for the SCTE-35 @segmentation_descriptor@ message(s)+-- sent with the @time_signal@ message.+timeSignalMessage_segmentationDescriptors :: Lens.Lens' TimeSignalMessage (Prelude.Maybe [SegmentationDescriptor])+timeSignalMessage_segmentationDescriptors = Lens.lens (\TimeSignalMessage' {segmentationDescriptors} -> segmentationDescriptors) (\s@TimeSignalMessage' {} a -> s {segmentationDescriptors = a} :: TimeSignalMessage) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON TimeSignalMessage where+  parseJSON =+    Data.withObject+      "TimeSignalMessage"+      ( \x ->+          TimeSignalMessage'+            Prelude.<$> ( x+                            Data..:? "SegmentationDescriptors"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable TimeSignalMessage where+  hashWithSalt _salt TimeSignalMessage' {..} =+    _salt+      `Prelude.hashWithSalt` segmentationDescriptors++instance Prelude.NFData TimeSignalMessage where+  rnf TimeSignalMessage' {..} =+    Prelude.rnf segmentationDescriptors++instance Data.ToJSON TimeSignalMessage where+  toJSON TimeSignalMessage' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("SegmentationDescriptors" Data..=)+              Prelude.<$> segmentationDescriptors+          ]+      )
+ gen/Amazonka/MediaTailor/Types/Transition.hs view
@@ -0,0 +1,185 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaTailor.Types.Transition+-- Copyright   : (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.MediaTailor.Types.Transition where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types.RelativePosition+import qualified Amazonka.Prelude as Prelude++-- | Program transition configuration.+--+-- /See:/ 'newTransition' smart constructor.+data Transition = Transition'+  { -- | The duration of the live program in seconds.+    durationMillis :: Prelude.Maybe Prelude.Integer,+    -- | The name of the program that this program will be inserted next to, as+    -- defined by @RelativePosition@.+    relativeProgram :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the program is scheduled to start, in epoch+    -- milliseconds.+    scheduledStartTimeMillis :: Prelude.Maybe Prelude.Integer,+    -- | The position where this program will be inserted relative to the+    -- @RelativePosition@.+    relativePosition :: RelativePosition,+    -- | Defines when the program plays in the schedule. You can set the value to+    -- @ABSOLUTE@ or @RELATIVE@.+    --+    -- @ABSOLUTE@ - The program plays at a specific wall clock time. This+    -- setting can only be used for channels using the @LINEAR@ @PlaybackMode@.+    --+    -- Note the following considerations when using @ABSOLUTE@ transitions:+    --+    -- If the preceding program in the schedule has a duration that extends+    -- past the wall clock time, MediaTailor truncates the preceding program on+    -- a common segment boundary.+    --+    -- If there are gaps in playback, MediaTailor plays the @FillerSlate@ you+    -- configured for your linear channel.+    --+    -- @RELATIVE@ - The program is inserted into the schedule either before or+    -- after a program that you specify via @RelativePosition@.+    type' :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Transition' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'durationMillis', 'transition_durationMillis' - The duration of the live program in seconds.+--+-- 'relativeProgram', 'transition_relativeProgram' - The name of the program that this program will be inserted next to, as+-- defined by @RelativePosition@.+--+-- 'scheduledStartTimeMillis', 'transition_scheduledStartTimeMillis' - The date and time that the program is scheduled to start, in epoch+-- milliseconds.+--+-- 'relativePosition', 'transition_relativePosition' - The position where this program will be inserted relative to the+-- @RelativePosition@.+--+-- 'type'', 'transition_type' - Defines when the program plays in the schedule. You can set the value to+-- @ABSOLUTE@ or @RELATIVE@.+--+-- @ABSOLUTE@ - The program plays at a specific wall clock time. This+-- setting can only be used for channels using the @LINEAR@ @PlaybackMode@.+--+-- Note the following considerations when using @ABSOLUTE@ transitions:+--+-- If the preceding program in the schedule has a duration that extends+-- past the wall clock time, MediaTailor truncates the preceding program on+-- a common segment boundary.+--+-- If there are gaps in playback, MediaTailor plays the @FillerSlate@ you+-- configured for your linear channel.+--+-- @RELATIVE@ - The program is inserted into the schedule either before or+-- after a program that you specify via @RelativePosition@.+newTransition ::+  -- | 'relativePosition'+  RelativePosition ->+  -- | 'type''+  Prelude.Text ->+  Transition+newTransition pRelativePosition_ pType_ =+  Transition'+    { durationMillis = Prelude.Nothing,+      relativeProgram = Prelude.Nothing,+      scheduledStartTimeMillis = Prelude.Nothing,+      relativePosition = pRelativePosition_,+      type' = pType_+    }++-- | The duration of the live program in seconds.+transition_durationMillis :: Lens.Lens' Transition (Prelude.Maybe Prelude.Integer)+transition_durationMillis = Lens.lens (\Transition' {durationMillis} -> durationMillis) (\s@Transition' {} a -> s {durationMillis = a} :: Transition)++-- | The name of the program that this program will be inserted next to, as+-- defined by @RelativePosition@.+transition_relativeProgram :: Lens.Lens' Transition (Prelude.Maybe Prelude.Text)+transition_relativeProgram = Lens.lens (\Transition' {relativeProgram} -> relativeProgram) (\s@Transition' {} a -> s {relativeProgram = a} :: Transition)++-- | The date and time that the program is scheduled to start, in epoch+-- milliseconds.+transition_scheduledStartTimeMillis :: Lens.Lens' Transition (Prelude.Maybe Prelude.Integer)+transition_scheduledStartTimeMillis = Lens.lens (\Transition' {scheduledStartTimeMillis} -> scheduledStartTimeMillis) (\s@Transition' {} a -> s {scheduledStartTimeMillis = a} :: Transition)++-- | The position where this program will be inserted relative to the+-- @RelativePosition@.+transition_relativePosition :: Lens.Lens' Transition RelativePosition+transition_relativePosition = Lens.lens (\Transition' {relativePosition} -> relativePosition) (\s@Transition' {} a -> s {relativePosition = a} :: Transition)++-- | Defines when the program plays in the schedule. You can set the value to+-- @ABSOLUTE@ or @RELATIVE@.+--+-- @ABSOLUTE@ - The program plays at a specific wall clock time. This+-- setting can only be used for channels using the @LINEAR@ @PlaybackMode@.+--+-- Note the following considerations when using @ABSOLUTE@ transitions:+--+-- If the preceding program in the schedule has a duration that extends+-- past the wall clock time, MediaTailor truncates the preceding program on+-- a common segment boundary.+--+-- If there are gaps in playback, MediaTailor plays the @FillerSlate@ you+-- configured for your linear channel.+--+-- @RELATIVE@ - The program is inserted into the schedule either before or+-- after a program that you specify via @RelativePosition@.+transition_type :: Lens.Lens' Transition Prelude.Text+transition_type = Lens.lens (\Transition' {type'} -> type') (\s@Transition' {} a -> s {type' = a} :: Transition)++instance Prelude.Hashable Transition where+  hashWithSalt _salt Transition' {..} =+    _salt+      `Prelude.hashWithSalt` durationMillis+      `Prelude.hashWithSalt` relativeProgram+      `Prelude.hashWithSalt` scheduledStartTimeMillis+      `Prelude.hashWithSalt` relativePosition+      `Prelude.hashWithSalt` type'++instance Prelude.NFData Transition where+  rnf Transition' {..} =+    Prelude.rnf durationMillis+      `Prelude.seq` Prelude.rnf relativeProgram+      `Prelude.seq` Prelude.rnf scheduledStartTimeMillis+      `Prelude.seq` Prelude.rnf relativePosition+      `Prelude.seq` Prelude.rnf type'++instance Data.ToJSON Transition where+  toJSON Transition' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DurationMillis" Data..=)+              Prelude.<$> durationMillis,+            ("RelativeProgram" Data..=)+              Prelude.<$> relativeProgram,+            ("ScheduledStartTimeMillis" Data..=)+              Prelude.<$> scheduledStartTimeMillis,+            Prelude.Just+              ("RelativePosition" Data..= relativePosition),+            Prelude.Just ("Type" Data..= type')+          ]+      )
+ gen/Amazonka/MediaTailor/Types/Type.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.MediaTailor.Types.Type+-- Copyright   : (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.MediaTailor.Types.Type+  ( Type+      ( ..,+        Type_DASH,+        Type_HLS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Type = Type' {fromType :: 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 Type_DASH :: Type+pattern Type_DASH = Type' "DASH"++pattern Type_HLS :: Type+pattern Type_HLS = Type' "HLS"++{-# COMPLETE+  Type_DASH,+  Type_HLS,+  Type'+  #-}
+ gen/Amazonka/MediaTailor/Types/VodSource.hs view
@@ -0,0 +1,166 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaTailor.Types.VodSource+-- Copyright   : (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.MediaTailor.Types.VodSource where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types.HttpPackageConfiguration+import qualified Amazonka.Prelude as Prelude++-- | VOD source configuration parameters.+--+-- /See:/ 'newVodSource' smart constructor.+data VodSource = VodSource'+  { -- | The timestamp that indicates when the VOD source was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The timestamp that indicates when the VOD source was last modified.+    lastModifiedTime :: Prelude.Maybe Data.POSIX,+    -- | The tags assigned to the VOD source. Tags are key-value pairs that you+    -- can associate with Amazon resources to help with organization, access+    -- control, and cost tracking. For more information, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The ARN for the VOD source.+    arn :: Prelude.Text,+    -- | The HTTP package configurations for the VOD source.+    httpPackageConfigurations :: [HttpPackageConfiguration],+    -- | The name of the source location that the VOD source is associated with.+    sourceLocationName :: Prelude.Text,+    -- | The name of the VOD source.+    vodSourceName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VodSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationTime', 'vodSource_creationTime' - The timestamp that indicates when the VOD source was created.+--+-- 'lastModifiedTime', 'vodSource_lastModifiedTime' - The timestamp that indicates when the VOD source was last modified.+--+-- 'tags', 'vodSource_tags' - The tags assigned to the VOD source. Tags are key-value pairs that you+-- can associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+--+-- 'arn', 'vodSource_arn' - The ARN for the VOD source.+--+-- 'httpPackageConfigurations', 'vodSource_httpPackageConfigurations' - The HTTP package configurations for the VOD source.+--+-- 'sourceLocationName', 'vodSource_sourceLocationName' - The name of the source location that the VOD source is associated with.+--+-- 'vodSourceName', 'vodSource_vodSourceName' - The name of the VOD source.+newVodSource ::+  -- | 'arn'+  Prelude.Text ->+  -- | 'sourceLocationName'+  Prelude.Text ->+  -- | 'vodSourceName'+  Prelude.Text ->+  VodSource+newVodSource+  pArn_+  pSourceLocationName_+  pVodSourceName_ =+    VodSource'+      { creationTime = Prelude.Nothing,+        lastModifiedTime = Prelude.Nothing,+        tags = Prelude.Nothing,+        arn = pArn_,+        httpPackageConfigurations = Prelude.mempty,+        sourceLocationName = pSourceLocationName_,+        vodSourceName = pVodSourceName_+      }++-- | The timestamp that indicates when the VOD source was created.+vodSource_creationTime :: Lens.Lens' VodSource (Prelude.Maybe Prelude.UTCTime)+vodSource_creationTime = Lens.lens (\VodSource' {creationTime} -> creationTime) (\s@VodSource' {} a -> s {creationTime = a} :: VodSource) Prelude.. Lens.mapping Data._Time++-- | The timestamp that indicates when the VOD source was last modified.+vodSource_lastModifiedTime :: Lens.Lens' VodSource (Prelude.Maybe Prelude.UTCTime)+vodSource_lastModifiedTime = Lens.lens (\VodSource' {lastModifiedTime} -> lastModifiedTime) (\s@VodSource' {} a -> s {lastModifiedTime = a} :: VodSource) Prelude.. Lens.mapping Data._Time++-- | The tags assigned to the VOD source. Tags are key-value pairs that you+-- can associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+vodSource_tags :: Lens.Lens' VodSource (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+vodSource_tags = Lens.lens (\VodSource' {tags} -> tags) (\s@VodSource' {} a -> s {tags = a} :: VodSource) Prelude.. Lens.mapping Lens.coerced++-- | The ARN for the VOD source.+vodSource_arn :: Lens.Lens' VodSource Prelude.Text+vodSource_arn = Lens.lens (\VodSource' {arn} -> arn) (\s@VodSource' {} a -> s {arn = a} :: VodSource)++-- | The HTTP package configurations for the VOD source.+vodSource_httpPackageConfigurations :: Lens.Lens' VodSource [HttpPackageConfiguration]+vodSource_httpPackageConfigurations = Lens.lens (\VodSource' {httpPackageConfigurations} -> httpPackageConfigurations) (\s@VodSource' {} a -> s {httpPackageConfigurations = a} :: VodSource) Prelude.. Lens.coerced++-- | The name of the source location that the VOD source is associated with.+vodSource_sourceLocationName :: Lens.Lens' VodSource Prelude.Text+vodSource_sourceLocationName = Lens.lens (\VodSource' {sourceLocationName} -> sourceLocationName) (\s@VodSource' {} a -> s {sourceLocationName = a} :: VodSource)++-- | The name of the VOD source.+vodSource_vodSourceName :: Lens.Lens' VodSource Prelude.Text+vodSource_vodSourceName = Lens.lens (\VodSource' {vodSourceName} -> vodSourceName) (\s@VodSource' {} a -> s {vodSourceName = a} :: VodSource)++instance Data.FromJSON VodSource where+  parseJSON =+    Data.withObject+      "VodSource"+      ( \x ->+          VodSource'+            Prelude.<$> (x Data..:? "CreationTime")+            Prelude.<*> (x Data..:? "LastModifiedTime")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "Arn")+            Prelude.<*> ( x+                            Data..:? "HttpPackageConfigurations"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "SourceLocationName")+            Prelude.<*> (x Data..: "VodSourceName")+      )++instance Prelude.Hashable VodSource where+  hashWithSalt _salt VodSource' {..} =+    _salt+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` lastModifiedTime+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` httpPackageConfigurations+      `Prelude.hashWithSalt` sourceLocationName+      `Prelude.hashWithSalt` vodSourceName++instance Prelude.NFData VodSource where+  rnf VodSource' {..} =+    Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf httpPackageConfigurations+      `Prelude.seq` Prelude.rnf sourceLocationName+      `Prelude.seq` Prelude.rnf vodSourceName
+ gen/Amazonka/MediaTailor/UntagResource.hs view
@@ -0,0 +1,140 @@+{-# 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.MediaTailor.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)+--+-- The resource to untag.+module Amazonka.MediaTailor.UntagResource+  ( -- * Creating a Request+    UntagResource (..),+    newUntagResource,++    -- * Request Lenses+    untagResource_resourceArn,+    untagResource_tagKeys,++    -- * 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.MediaTailor.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'+  { -- | The Amazon Resource Name (ARN) of the resource to untag.+    resourceArn :: Prelude.Text,+    -- | The tag keys associated with the resource.+    tagKeys :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'untagResource_resourceArn' - The Amazon Resource Name (ARN) of the resource to untag.+--+-- 'tagKeys', 'untagResource_tagKeys' - The tag keys associated with the resource.+newUntagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  UntagResource+newUntagResource pResourceArn_ =+  UntagResource'+    { resourceArn = pResourceArn_,+      tagKeys = Prelude.mempty+    }++-- | The Amazon Resource Name (ARN) of the resource to untag.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | The tag keys associated with 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++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` resourceArn+      `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+  rnf UntagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath UntagResource where+  toPath UntagResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery UntagResource where+  toQuery UntagResource' {..} =+    Prelude.mconcat+      ["tagKeys" Data.=: Data.toQueryList "member" tagKeys]++-- | /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+  {+  }+  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/MediaTailor/UpdateChannel.hs view
@@ -0,0 +1,350 @@+{-# 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.MediaTailor.UpdateChannel+-- 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 channel. For information about MediaTailor channels, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/channel-assembly-channels.html Working with channels>+-- in the /MediaTailor User Guide/.+module Amazonka.MediaTailor.UpdateChannel+  ( -- * Creating a Request+    UpdateChannel (..),+    newUpdateChannel,++    -- * Request Lenses+    updateChannel_fillerSlate,+    updateChannel_channelName,+    updateChannel_outputs,++    -- * Destructuring the Response+    UpdateChannelResponse (..),+    newUpdateChannelResponse,++    -- * Response Lenses+    updateChannelResponse_arn,+    updateChannelResponse_channelName,+    updateChannelResponse_channelState,+    updateChannelResponse_creationTime,+    updateChannelResponse_fillerSlate,+    updateChannelResponse_lastModifiedTime,+    updateChannelResponse_outputs,+    updateChannelResponse_playbackMode,+    updateChannelResponse_tags,+    updateChannelResponse_tier,+    updateChannelResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateChannel' smart constructor.+data UpdateChannel = UpdateChannel'+  { -- | The slate used to fill gaps between programs in the schedule. You must+    -- configure filler slate if your channel uses the @LINEAR@ @PlaybackMode@.+    -- MediaTailor doesn\'t support filler slate for channels using the @LOOP@+    -- @PlaybackMode@.+    fillerSlate :: Prelude.Maybe SlateSource,+    -- | The name of the channel.+    channelName :: Prelude.Text,+    -- | The channel\'s output properties.+    outputs :: [RequestOutputItem]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateChannel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fillerSlate', 'updateChannel_fillerSlate' - The slate used to fill gaps between programs in the schedule. You must+-- configure filler slate if your channel uses the @LINEAR@ @PlaybackMode@.+-- MediaTailor doesn\'t support filler slate for channels using the @LOOP@+-- @PlaybackMode@.+--+-- 'channelName', 'updateChannel_channelName' - The name of the channel.+--+-- 'outputs', 'updateChannel_outputs' - The channel\'s output properties.+newUpdateChannel ::+  -- | 'channelName'+  Prelude.Text ->+  UpdateChannel+newUpdateChannel pChannelName_ =+  UpdateChannel'+    { fillerSlate = Prelude.Nothing,+      channelName = pChannelName_,+      outputs = Prelude.mempty+    }++-- | The slate used to fill gaps between programs in the schedule. You must+-- configure filler slate if your channel uses the @LINEAR@ @PlaybackMode@.+-- MediaTailor doesn\'t support filler slate for channels using the @LOOP@+-- @PlaybackMode@.+updateChannel_fillerSlate :: Lens.Lens' UpdateChannel (Prelude.Maybe SlateSource)+updateChannel_fillerSlate = Lens.lens (\UpdateChannel' {fillerSlate} -> fillerSlate) (\s@UpdateChannel' {} a -> s {fillerSlate = a} :: UpdateChannel)++-- | The name of the channel.+updateChannel_channelName :: Lens.Lens' UpdateChannel Prelude.Text+updateChannel_channelName = Lens.lens (\UpdateChannel' {channelName} -> channelName) (\s@UpdateChannel' {} a -> s {channelName = a} :: UpdateChannel)++-- | The channel\'s output properties.+updateChannel_outputs :: Lens.Lens' UpdateChannel [RequestOutputItem]+updateChannel_outputs = Lens.lens (\UpdateChannel' {outputs} -> outputs) (\s@UpdateChannel' {} a -> s {outputs = a} :: UpdateChannel) Prelude.. Lens.coerced++instance Core.AWSRequest UpdateChannel where+  type+    AWSResponse UpdateChannel =+      UpdateChannelResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateChannelResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "ChannelName")+            Prelude.<*> (x Data..?> "ChannelState")+            Prelude.<*> (x Data..?> "CreationTime")+            Prelude.<*> (x Data..?> "FillerSlate")+            Prelude.<*> (x Data..?> "LastModifiedTime")+            Prelude.<*> (x Data..?> "Outputs" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "PlaybackMode")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "Tier")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateChannel where+  hashWithSalt _salt UpdateChannel' {..} =+    _salt+      `Prelude.hashWithSalt` fillerSlate+      `Prelude.hashWithSalt` channelName+      `Prelude.hashWithSalt` outputs++instance Prelude.NFData UpdateChannel where+  rnf UpdateChannel' {..} =+    Prelude.rnf fillerSlate+      `Prelude.seq` Prelude.rnf channelName+      `Prelude.seq` Prelude.rnf outputs++instance Data.ToHeaders UpdateChannel where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateChannel where+  toJSON UpdateChannel' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("FillerSlate" Data..=) Prelude.<$> fillerSlate,+            Prelude.Just ("Outputs" Data..= outputs)+          ]+      )++instance Data.ToPath UpdateChannel where+  toPath UpdateChannel' {..} =+    Prelude.mconcat+      ["/channel/", Data.toBS channelName]++instance Data.ToQuery UpdateChannel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateChannelResponse' smart constructor.+data UpdateChannelResponse = UpdateChannelResponse'+  { -- | The Amazon Resource Name (ARN) associated with the channel.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The name of the channel.+    channelName :: Prelude.Maybe Prelude.Text,+    -- | Returns the state whether the channel is running or not.+    channelState :: Prelude.Maybe ChannelState,+    -- | The timestamp of when the channel was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The slate used to fill gaps between programs in the schedule. You must+    -- configure filler slate if your channel uses the @LINEAR@ @PlaybackMode@.+    -- MediaTailor doesn\'t support filler slate for channels using the @LOOP@+    -- @PlaybackMode@.+    fillerSlate :: Prelude.Maybe SlateSource,+    -- | The timestamp that indicates when the channel was last modified.+    lastModifiedTime :: Prelude.Maybe Data.POSIX,+    -- | The channel\'s output properties.+    outputs :: Prelude.Maybe [ResponseOutputItem],+    -- | The type of playback mode for this channel.+    --+    -- @LINEAR@ - Programs play back-to-back only once.+    --+    -- @LOOP@ - Programs play back-to-back in an endless loop. When the last+    -- program in the schedule plays, playback loops back to the first program+    -- in the schedule.+    playbackMode :: Prelude.Maybe Prelude.Text,+    -- | The tags to assign to the channel. Tags are key-value pairs that you can+    -- associate with Amazon resources to help with organization, access+    -- control, and cost tracking. For more information, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The tier associated with this Channel.+    tier :: 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 'UpdateChannelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateChannelResponse_arn' - The Amazon Resource Name (ARN) associated with the channel.+--+-- 'channelName', 'updateChannelResponse_channelName' - The name of the channel.+--+-- 'channelState', 'updateChannelResponse_channelState' - Returns the state whether the channel is running or not.+--+-- 'creationTime', 'updateChannelResponse_creationTime' - The timestamp of when the channel was created.+--+-- 'fillerSlate', 'updateChannelResponse_fillerSlate' - The slate used to fill gaps between programs in the schedule. You must+-- configure filler slate if your channel uses the @LINEAR@ @PlaybackMode@.+-- MediaTailor doesn\'t support filler slate for channels using the @LOOP@+-- @PlaybackMode@.+--+-- 'lastModifiedTime', 'updateChannelResponse_lastModifiedTime' - The timestamp that indicates when the channel was last modified.+--+-- 'outputs', 'updateChannelResponse_outputs' - The channel\'s output properties.+--+-- 'playbackMode', 'updateChannelResponse_playbackMode' - The type of playback mode for this channel.+--+-- @LINEAR@ - Programs play back-to-back only once.+--+-- @LOOP@ - Programs play back-to-back in an endless loop. When the last+-- program in the schedule plays, playback loops back to the first program+-- in the schedule.+--+-- 'tags', 'updateChannelResponse_tags' - The tags to assign to the channel. Tags are key-value pairs that you can+-- associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+--+-- 'tier', 'updateChannelResponse_tier' - The tier associated with this Channel.+--+-- 'httpStatus', 'updateChannelResponse_httpStatus' - The response's http status code.+newUpdateChannelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateChannelResponse+newUpdateChannelResponse pHttpStatus_ =+  UpdateChannelResponse'+    { arn = Prelude.Nothing,+      channelName = Prelude.Nothing,+      channelState = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      fillerSlate = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      outputs = Prelude.Nothing,+      playbackMode = Prelude.Nothing,+      tags = Prelude.Nothing,+      tier = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) associated with the channel.+updateChannelResponse_arn :: Lens.Lens' UpdateChannelResponse (Prelude.Maybe Prelude.Text)+updateChannelResponse_arn = Lens.lens (\UpdateChannelResponse' {arn} -> arn) (\s@UpdateChannelResponse' {} a -> s {arn = a} :: UpdateChannelResponse)++-- | The name of the channel.+updateChannelResponse_channelName :: Lens.Lens' UpdateChannelResponse (Prelude.Maybe Prelude.Text)+updateChannelResponse_channelName = Lens.lens (\UpdateChannelResponse' {channelName} -> channelName) (\s@UpdateChannelResponse' {} a -> s {channelName = a} :: UpdateChannelResponse)++-- | Returns the state whether the channel is running or not.+updateChannelResponse_channelState :: Lens.Lens' UpdateChannelResponse (Prelude.Maybe ChannelState)+updateChannelResponse_channelState = Lens.lens (\UpdateChannelResponse' {channelState} -> channelState) (\s@UpdateChannelResponse' {} a -> s {channelState = a} :: UpdateChannelResponse)++-- | The timestamp of when the channel was created.+updateChannelResponse_creationTime :: Lens.Lens' UpdateChannelResponse (Prelude.Maybe Prelude.UTCTime)+updateChannelResponse_creationTime = Lens.lens (\UpdateChannelResponse' {creationTime} -> creationTime) (\s@UpdateChannelResponse' {} a -> s {creationTime = a} :: UpdateChannelResponse) Prelude.. Lens.mapping Data._Time++-- | The slate used to fill gaps between programs in the schedule. You must+-- configure filler slate if your channel uses the @LINEAR@ @PlaybackMode@.+-- MediaTailor doesn\'t support filler slate for channels using the @LOOP@+-- @PlaybackMode@.+updateChannelResponse_fillerSlate :: Lens.Lens' UpdateChannelResponse (Prelude.Maybe SlateSource)+updateChannelResponse_fillerSlate = Lens.lens (\UpdateChannelResponse' {fillerSlate} -> fillerSlate) (\s@UpdateChannelResponse' {} a -> s {fillerSlate = a} :: UpdateChannelResponse)++-- | The timestamp that indicates when the channel was last modified.+updateChannelResponse_lastModifiedTime :: Lens.Lens' UpdateChannelResponse (Prelude.Maybe Prelude.UTCTime)+updateChannelResponse_lastModifiedTime = Lens.lens (\UpdateChannelResponse' {lastModifiedTime} -> lastModifiedTime) (\s@UpdateChannelResponse' {} a -> s {lastModifiedTime = a} :: UpdateChannelResponse) Prelude.. Lens.mapping Data._Time++-- | The channel\'s output properties.+updateChannelResponse_outputs :: Lens.Lens' UpdateChannelResponse (Prelude.Maybe [ResponseOutputItem])+updateChannelResponse_outputs = Lens.lens (\UpdateChannelResponse' {outputs} -> outputs) (\s@UpdateChannelResponse' {} a -> s {outputs = a} :: UpdateChannelResponse) Prelude.. Lens.mapping Lens.coerced++-- | The type of playback mode for this channel.+--+-- @LINEAR@ - Programs play back-to-back only once.+--+-- @LOOP@ - Programs play back-to-back in an endless loop. When the last+-- program in the schedule plays, playback loops back to the first program+-- in the schedule.+updateChannelResponse_playbackMode :: Lens.Lens' UpdateChannelResponse (Prelude.Maybe Prelude.Text)+updateChannelResponse_playbackMode = Lens.lens (\UpdateChannelResponse' {playbackMode} -> playbackMode) (\s@UpdateChannelResponse' {} a -> s {playbackMode = a} :: UpdateChannelResponse)++-- | The tags to assign to the channel. Tags are key-value pairs that you can+-- associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+updateChannelResponse_tags :: Lens.Lens' UpdateChannelResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateChannelResponse_tags = Lens.lens (\UpdateChannelResponse' {tags} -> tags) (\s@UpdateChannelResponse' {} a -> s {tags = a} :: UpdateChannelResponse) Prelude.. Lens.mapping Lens.coerced++-- | The tier associated with this Channel.+updateChannelResponse_tier :: Lens.Lens' UpdateChannelResponse (Prelude.Maybe Prelude.Text)+updateChannelResponse_tier = Lens.lens (\UpdateChannelResponse' {tier} -> tier) (\s@UpdateChannelResponse' {} a -> s {tier = a} :: UpdateChannelResponse)++-- | The response's http status code.+updateChannelResponse_httpStatus :: Lens.Lens' UpdateChannelResponse Prelude.Int+updateChannelResponse_httpStatus = Lens.lens (\UpdateChannelResponse' {httpStatus} -> httpStatus) (\s@UpdateChannelResponse' {} a -> s {httpStatus = a} :: UpdateChannelResponse)++instance Prelude.NFData UpdateChannelResponse where+  rnf UpdateChannelResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf channelName+      `Prelude.seq` Prelude.rnf channelState+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf fillerSlate+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf outputs+      `Prelude.seq` Prelude.rnf playbackMode+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf tier+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/UpdateLiveSource.hs view
@@ -0,0 +1,296 @@+{-# 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.MediaTailor.UpdateLiveSource+-- 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 live source\'s configuration.+module Amazonka.MediaTailor.UpdateLiveSource+  ( -- * Creating a Request+    UpdateLiveSource (..),+    newUpdateLiveSource,++    -- * Request Lenses+    updateLiveSource_httpPackageConfigurations,+    updateLiveSource_liveSourceName,+    updateLiveSource_sourceLocationName,++    -- * Destructuring the Response+    UpdateLiveSourceResponse (..),+    newUpdateLiveSourceResponse,++    -- * Response Lenses+    updateLiveSourceResponse_arn,+    updateLiveSourceResponse_creationTime,+    updateLiveSourceResponse_httpPackageConfigurations,+    updateLiveSourceResponse_lastModifiedTime,+    updateLiveSourceResponse_liveSourceName,+    updateLiveSourceResponse_sourceLocationName,+    updateLiveSourceResponse_tags,+    updateLiveSourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateLiveSource' smart constructor.+data UpdateLiveSource = UpdateLiveSource'+  { -- | A list of HTTP package configurations for the live source on this+    -- account.+    httpPackageConfigurations :: [HttpPackageConfiguration],+    -- | The name of the live source.+    liveSourceName :: Prelude.Text,+    -- | The name of the source location associated with this Live Source.+    sourceLocationName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateLiveSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpPackageConfigurations', 'updateLiveSource_httpPackageConfigurations' - A list of HTTP package configurations for the live source on this+-- account.+--+-- 'liveSourceName', 'updateLiveSource_liveSourceName' - The name of the live source.+--+-- 'sourceLocationName', 'updateLiveSource_sourceLocationName' - The name of the source location associated with this Live Source.+newUpdateLiveSource ::+  -- | 'liveSourceName'+  Prelude.Text ->+  -- | 'sourceLocationName'+  Prelude.Text ->+  UpdateLiveSource+newUpdateLiveSource+  pLiveSourceName_+  pSourceLocationName_ =+    UpdateLiveSource'+      { httpPackageConfigurations =+          Prelude.mempty,+        liveSourceName = pLiveSourceName_,+        sourceLocationName = pSourceLocationName_+      }++-- | A list of HTTP package configurations for the live source on this+-- account.+updateLiveSource_httpPackageConfigurations :: Lens.Lens' UpdateLiveSource [HttpPackageConfiguration]+updateLiveSource_httpPackageConfigurations = Lens.lens (\UpdateLiveSource' {httpPackageConfigurations} -> httpPackageConfigurations) (\s@UpdateLiveSource' {} a -> s {httpPackageConfigurations = a} :: UpdateLiveSource) Prelude.. Lens.coerced++-- | The name of the live source.+updateLiveSource_liveSourceName :: Lens.Lens' UpdateLiveSource Prelude.Text+updateLiveSource_liveSourceName = Lens.lens (\UpdateLiveSource' {liveSourceName} -> liveSourceName) (\s@UpdateLiveSource' {} a -> s {liveSourceName = a} :: UpdateLiveSource)++-- | The name of the source location associated with this Live Source.+updateLiveSource_sourceLocationName :: Lens.Lens' UpdateLiveSource Prelude.Text+updateLiveSource_sourceLocationName = Lens.lens (\UpdateLiveSource' {sourceLocationName} -> sourceLocationName) (\s@UpdateLiveSource' {} a -> s {sourceLocationName = a} :: UpdateLiveSource)++instance Core.AWSRequest UpdateLiveSource where+  type+    AWSResponse UpdateLiveSource =+      UpdateLiveSourceResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateLiveSourceResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "CreationTime")+            Prelude.<*> ( x+                            Data..?> "HttpPackageConfigurations"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "LastModifiedTime")+            Prelude.<*> (x Data..?> "LiveSourceName")+            Prelude.<*> (x Data..?> "SourceLocationName")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateLiveSource where+  hashWithSalt _salt UpdateLiveSource' {..} =+    _salt+      `Prelude.hashWithSalt` httpPackageConfigurations+      `Prelude.hashWithSalt` liveSourceName+      `Prelude.hashWithSalt` sourceLocationName++instance Prelude.NFData UpdateLiveSource where+  rnf UpdateLiveSource' {..} =+    Prelude.rnf httpPackageConfigurations+      `Prelude.seq` Prelude.rnf liveSourceName+      `Prelude.seq` Prelude.rnf sourceLocationName++instance Data.ToHeaders UpdateLiveSource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateLiveSource where+  toJSON UpdateLiveSource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "HttpPackageConfigurations"+                  Data..= httpPackageConfigurations+              )+          ]+      )++instance Data.ToPath UpdateLiveSource where+  toPath UpdateLiveSource' {..} =+    Prelude.mconcat+      [ "/sourceLocation/",+        Data.toBS sourceLocationName,+        "/liveSource/",+        Data.toBS liveSourceName+      ]++instance Data.ToQuery UpdateLiveSource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateLiveSourceResponse' smart constructor.+data UpdateLiveSourceResponse = UpdateLiveSourceResponse'+  { -- | The Amazon Resource Name (ARN) associated with this live source.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The timestamp that indicates when the live source was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | A list of HTTP package configurations for the live source on this+    -- account.+    httpPackageConfigurations :: Prelude.Maybe [HttpPackageConfiguration],+    -- | The timestamp that indicates when the live source was last modified.+    lastModifiedTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the live source.+    liveSourceName :: Prelude.Maybe Prelude.Text,+    -- | The name of the source location associated with the live source.+    sourceLocationName :: Prelude.Maybe Prelude.Text,+    -- | The tags to assign to the live source. Tags are key-value pairs that you+    -- can associate with Amazon resources to help with organization, access+    -- control, and cost tracking. For more information, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+    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 'UpdateLiveSourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateLiveSourceResponse_arn' - The Amazon Resource Name (ARN) associated with this live source.+--+-- 'creationTime', 'updateLiveSourceResponse_creationTime' - The timestamp that indicates when the live source was created.+--+-- 'httpPackageConfigurations', 'updateLiveSourceResponse_httpPackageConfigurations' - A list of HTTP package configurations for the live source on this+-- account.+--+-- 'lastModifiedTime', 'updateLiveSourceResponse_lastModifiedTime' - The timestamp that indicates when the live source was last modified.+--+-- 'liveSourceName', 'updateLiveSourceResponse_liveSourceName' - The name of the live source.+--+-- 'sourceLocationName', 'updateLiveSourceResponse_sourceLocationName' - The name of the source location associated with the live source.+--+-- 'tags', 'updateLiveSourceResponse_tags' - The tags to assign to the live source. Tags are key-value pairs that you+-- can associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+--+-- 'httpStatus', 'updateLiveSourceResponse_httpStatus' - The response's http status code.+newUpdateLiveSourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateLiveSourceResponse+newUpdateLiveSourceResponse pHttpStatus_ =+  UpdateLiveSourceResponse'+    { arn = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      httpPackageConfigurations = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      liveSourceName = Prelude.Nothing,+      sourceLocationName = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) associated with this live source.+updateLiveSourceResponse_arn :: Lens.Lens' UpdateLiveSourceResponse (Prelude.Maybe Prelude.Text)+updateLiveSourceResponse_arn = Lens.lens (\UpdateLiveSourceResponse' {arn} -> arn) (\s@UpdateLiveSourceResponse' {} a -> s {arn = a} :: UpdateLiveSourceResponse)++-- | The timestamp that indicates when the live source was created.+updateLiveSourceResponse_creationTime :: Lens.Lens' UpdateLiveSourceResponse (Prelude.Maybe Prelude.UTCTime)+updateLiveSourceResponse_creationTime = Lens.lens (\UpdateLiveSourceResponse' {creationTime} -> creationTime) (\s@UpdateLiveSourceResponse' {} a -> s {creationTime = a} :: UpdateLiveSourceResponse) Prelude.. Lens.mapping Data._Time++-- | A list of HTTP package configurations for the live source on this+-- account.+updateLiveSourceResponse_httpPackageConfigurations :: Lens.Lens' UpdateLiveSourceResponse (Prelude.Maybe [HttpPackageConfiguration])+updateLiveSourceResponse_httpPackageConfigurations = Lens.lens (\UpdateLiveSourceResponse' {httpPackageConfigurations} -> httpPackageConfigurations) (\s@UpdateLiveSourceResponse' {} a -> s {httpPackageConfigurations = a} :: UpdateLiveSourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The timestamp that indicates when the live source was last modified.+updateLiveSourceResponse_lastModifiedTime :: Lens.Lens' UpdateLiveSourceResponse (Prelude.Maybe Prelude.UTCTime)+updateLiveSourceResponse_lastModifiedTime = Lens.lens (\UpdateLiveSourceResponse' {lastModifiedTime} -> lastModifiedTime) (\s@UpdateLiveSourceResponse' {} a -> s {lastModifiedTime = a} :: UpdateLiveSourceResponse) Prelude.. Lens.mapping Data._Time++-- | The name of the live source.+updateLiveSourceResponse_liveSourceName :: Lens.Lens' UpdateLiveSourceResponse (Prelude.Maybe Prelude.Text)+updateLiveSourceResponse_liveSourceName = Lens.lens (\UpdateLiveSourceResponse' {liveSourceName} -> liveSourceName) (\s@UpdateLiveSourceResponse' {} a -> s {liveSourceName = a} :: UpdateLiveSourceResponse)++-- | The name of the source location associated with the live source.+updateLiveSourceResponse_sourceLocationName :: Lens.Lens' UpdateLiveSourceResponse (Prelude.Maybe Prelude.Text)+updateLiveSourceResponse_sourceLocationName = Lens.lens (\UpdateLiveSourceResponse' {sourceLocationName} -> sourceLocationName) (\s@UpdateLiveSourceResponse' {} a -> s {sourceLocationName = a} :: UpdateLiveSourceResponse)++-- | The tags to assign to the live source. Tags are key-value pairs that you+-- can associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+updateLiveSourceResponse_tags :: Lens.Lens' UpdateLiveSourceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateLiveSourceResponse_tags = Lens.lens (\UpdateLiveSourceResponse' {tags} -> tags) (\s@UpdateLiveSourceResponse' {} a -> s {tags = a} :: UpdateLiveSourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+updateLiveSourceResponse_httpStatus :: Lens.Lens' UpdateLiveSourceResponse Prelude.Int+updateLiveSourceResponse_httpStatus = Lens.lens (\UpdateLiveSourceResponse' {httpStatus} -> httpStatus) (\s@UpdateLiveSourceResponse' {} a -> s {httpStatus = a} :: UpdateLiveSourceResponse)++instance Prelude.NFData UpdateLiveSourceResponse where+  rnf UpdateLiveSourceResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf httpPackageConfigurations+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf liveSourceName+      `Prelude.seq` Prelude.rnf sourceLocationName+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/UpdateSourceLocation.hs view
@@ -0,0 +1,360 @@+{-# 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.MediaTailor.UpdateSourceLocation+-- 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 source location. A source location is a container for sources.+-- For more information about source locations, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/channel-assembly-source-locations.html Working with source locations>+-- in the /MediaTailor User Guide/.+module Amazonka.MediaTailor.UpdateSourceLocation+  ( -- * Creating a Request+    UpdateSourceLocation (..),+    newUpdateSourceLocation,++    -- * Request Lenses+    updateSourceLocation_accessConfiguration,+    updateSourceLocation_defaultSegmentDeliveryConfiguration,+    updateSourceLocation_segmentDeliveryConfigurations,+    updateSourceLocation_httpConfiguration,+    updateSourceLocation_sourceLocationName,++    -- * Destructuring the Response+    UpdateSourceLocationResponse (..),+    newUpdateSourceLocationResponse,++    -- * Response Lenses+    updateSourceLocationResponse_accessConfiguration,+    updateSourceLocationResponse_arn,+    updateSourceLocationResponse_creationTime,+    updateSourceLocationResponse_defaultSegmentDeliveryConfiguration,+    updateSourceLocationResponse_httpConfiguration,+    updateSourceLocationResponse_lastModifiedTime,+    updateSourceLocationResponse_segmentDeliveryConfigurations,+    updateSourceLocationResponse_sourceLocationName,+    updateSourceLocationResponse_tags,+    updateSourceLocationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateSourceLocation' smart constructor.+data UpdateSourceLocation = UpdateSourceLocation'+  { -- | Access configuration parameters. Configures the type of authentication+    -- used to access content from your source location.+    accessConfiguration :: Prelude.Maybe AccessConfiguration,+    -- | The optional configuration for the host server that serves segments.+    defaultSegmentDeliveryConfiguration :: Prelude.Maybe DefaultSegmentDeliveryConfiguration,+    -- | A list of the segment delivery configurations associated with this+    -- resource.+    segmentDeliveryConfigurations :: Prelude.Maybe [SegmentDeliveryConfiguration],+    -- | The HTTP configuration for the source location.+    httpConfiguration :: HttpConfiguration,+    -- | The name of the source location.+    sourceLocationName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateSourceLocation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessConfiguration', 'updateSourceLocation_accessConfiguration' - Access configuration parameters. Configures the type of authentication+-- used to access content from your source location.+--+-- 'defaultSegmentDeliveryConfiguration', 'updateSourceLocation_defaultSegmentDeliveryConfiguration' - The optional configuration for the host server that serves segments.+--+-- 'segmentDeliveryConfigurations', 'updateSourceLocation_segmentDeliveryConfigurations' - A list of the segment delivery configurations associated with this+-- resource.+--+-- 'httpConfiguration', 'updateSourceLocation_httpConfiguration' - The HTTP configuration for the source location.+--+-- 'sourceLocationName', 'updateSourceLocation_sourceLocationName' - The name of the source location.+newUpdateSourceLocation ::+  -- | 'httpConfiguration'+  HttpConfiguration ->+  -- | 'sourceLocationName'+  Prelude.Text ->+  UpdateSourceLocation+newUpdateSourceLocation+  pHttpConfiguration_+  pSourceLocationName_ =+    UpdateSourceLocation'+      { accessConfiguration =+          Prelude.Nothing,+        defaultSegmentDeliveryConfiguration =+          Prelude.Nothing,+        segmentDeliveryConfigurations = Prelude.Nothing,+        httpConfiguration = pHttpConfiguration_,+        sourceLocationName = pSourceLocationName_+      }++-- | Access configuration parameters. Configures the type of authentication+-- used to access content from your source location.+updateSourceLocation_accessConfiguration :: Lens.Lens' UpdateSourceLocation (Prelude.Maybe AccessConfiguration)+updateSourceLocation_accessConfiguration = Lens.lens (\UpdateSourceLocation' {accessConfiguration} -> accessConfiguration) (\s@UpdateSourceLocation' {} a -> s {accessConfiguration = a} :: UpdateSourceLocation)++-- | The optional configuration for the host server that serves segments.+updateSourceLocation_defaultSegmentDeliveryConfiguration :: Lens.Lens' UpdateSourceLocation (Prelude.Maybe DefaultSegmentDeliveryConfiguration)+updateSourceLocation_defaultSegmentDeliveryConfiguration = Lens.lens (\UpdateSourceLocation' {defaultSegmentDeliveryConfiguration} -> defaultSegmentDeliveryConfiguration) (\s@UpdateSourceLocation' {} a -> s {defaultSegmentDeliveryConfiguration = a} :: UpdateSourceLocation)++-- | A list of the segment delivery configurations associated with this+-- resource.+updateSourceLocation_segmentDeliveryConfigurations :: Lens.Lens' UpdateSourceLocation (Prelude.Maybe [SegmentDeliveryConfiguration])+updateSourceLocation_segmentDeliveryConfigurations = Lens.lens (\UpdateSourceLocation' {segmentDeliveryConfigurations} -> segmentDeliveryConfigurations) (\s@UpdateSourceLocation' {} a -> s {segmentDeliveryConfigurations = a} :: UpdateSourceLocation) Prelude.. Lens.mapping Lens.coerced++-- | The HTTP configuration for the source location.+updateSourceLocation_httpConfiguration :: Lens.Lens' UpdateSourceLocation HttpConfiguration+updateSourceLocation_httpConfiguration = Lens.lens (\UpdateSourceLocation' {httpConfiguration} -> httpConfiguration) (\s@UpdateSourceLocation' {} a -> s {httpConfiguration = a} :: UpdateSourceLocation)++-- | The name of the source location.+updateSourceLocation_sourceLocationName :: Lens.Lens' UpdateSourceLocation Prelude.Text+updateSourceLocation_sourceLocationName = Lens.lens (\UpdateSourceLocation' {sourceLocationName} -> sourceLocationName) (\s@UpdateSourceLocation' {} a -> s {sourceLocationName = a} :: UpdateSourceLocation)++instance Core.AWSRequest UpdateSourceLocation where+  type+    AWSResponse UpdateSourceLocation =+      UpdateSourceLocationResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateSourceLocationResponse'+            Prelude.<$> (x Data..?> "AccessConfiguration")+            Prelude.<*> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "CreationTime")+            Prelude.<*> (x Data..?> "DefaultSegmentDeliveryConfiguration")+            Prelude.<*> (x Data..?> "HttpConfiguration")+            Prelude.<*> (x Data..?> "LastModifiedTime")+            Prelude.<*> ( x+                            Data..?> "SegmentDeliveryConfigurations"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "SourceLocationName")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateSourceLocation where+  hashWithSalt _salt UpdateSourceLocation' {..} =+    _salt+      `Prelude.hashWithSalt` accessConfiguration+      `Prelude.hashWithSalt` defaultSegmentDeliveryConfiguration+      `Prelude.hashWithSalt` segmentDeliveryConfigurations+      `Prelude.hashWithSalt` httpConfiguration+      `Prelude.hashWithSalt` sourceLocationName++instance Prelude.NFData UpdateSourceLocation where+  rnf UpdateSourceLocation' {..} =+    Prelude.rnf accessConfiguration+      `Prelude.seq` Prelude.rnf defaultSegmentDeliveryConfiguration+      `Prelude.seq` Prelude.rnf segmentDeliveryConfigurations+      `Prelude.seq` Prelude.rnf httpConfiguration+      `Prelude.seq` Prelude.rnf sourceLocationName++instance Data.ToHeaders UpdateSourceLocation where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateSourceLocation where+  toJSON UpdateSourceLocation' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AccessConfiguration" Data..=)+              Prelude.<$> accessConfiguration,+            ("DefaultSegmentDeliveryConfiguration" Data..=)+              Prelude.<$> defaultSegmentDeliveryConfiguration,+            ("SegmentDeliveryConfigurations" Data..=)+              Prelude.<$> segmentDeliveryConfigurations,+            Prelude.Just+              ("HttpConfiguration" Data..= httpConfiguration)+          ]+      )++instance Data.ToPath UpdateSourceLocation where+  toPath UpdateSourceLocation' {..} =+    Prelude.mconcat+      ["/sourceLocation/", Data.toBS sourceLocationName]++instance Data.ToQuery UpdateSourceLocation where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateSourceLocationResponse' smart constructor.+data UpdateSourceLocationResponse = UpdateSourceLocationResponse'+  { -- | Access configuration parameters. Configures the type of authentication+    -- used to access content from your source location.+    accessConfiguration :: Prelude.Maybe AccessConfiguration,+    -- | The Amazon Resource Name (ARN) associated with the source location.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The timestamp that indicates when the source location was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The optional configuration for the host server that serves segments.+    defaultSegmentDeliveryConfiguration :: Prelude.Maybe DefaultSegmentDeliveryConfiguration,+    -- | The HTTP configuration for the source location.+    httpConfiguration :: Prelude.Maybe HttpConfiguration,+    -- | The timestamp that indicates when the source location was last modified.+    lastModifiedTime :: Prelude.Maybe Data.POSIX,+    -- | The segment delivery configurations for the source location. For+    -- information about MediaTailor configurations, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/configurations.html Working with configurations in AWS Elemental MediaTailor>.+    segmentDeliveryConfigurations :: Prelude.Maybe [SegmentDeliveryConfiguration],+    -- | The name of the source location.+    sourceLocationName :: Prelude.Maybe Prelude.Text,+    -- | The tags to assign to the source location. Tags are key-value pairs that+    -- you can associate with Amazon resources to help with organization,+    -- access control, and cost tracking. For more information, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+    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 'UpdateSourceLocationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessConfiguration', 'updateSourceLocationResponse_accessConfiguration' - Access configuration parameters. Configures the type of authentication+-- used to access content from your source location.+--+-- 'arn', 'updateSourceLocationResponse_arn' - The Amazon Resource Name (ARN) associated with the source location.+--+-- 'creationTime', 'updateSourceLocationResponse_creationTime' - The timestamp that indicates when the source location was created.+--+-- 'defaultSegmentDeliveryConfiguration', 'updateSourceLocationResponse_defaultSegmentDeliveryConfiguration' - The optional configuration for the host server that serves segments.+--+-- 'httpConfiguration', 'updateSourceLocationResponse_httpConfiguration' - The HTTP configuration for the source location.+--+-- 'lastModifiedTime', 'updateSourceLocationResponse_lastModifiedTime' - The timestamp that indicates when the source location was last modified.+--+-- 'segmentDeliveryConfigurations', 'updateSourceLocationResponse_segmentDeliveryConfigurations' - The segment delivery configurations for the source location. For+-- information about MediaTailor configurations, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/configurations.html Working with configurations in AWS Elemental MediaTailor>.+--+-- 'sourceLocationName', 'updateSourceLocationResponse_sourceLocationName' - The name of the source location.+--+-- 'tags', 'updateSourceLocationResponse_tags' - The tags to assign to the source location. Tags are key-value pairs that+-- you can associate with Amazon resources to help with organization,+-- access control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+--+-- 'httpStatus', 'updateSourceLocationResponse_httpStatus' - The response's http status code.+newUpdateSourceLocationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateSourceLocationResponse+newUpdateSourceLocationResponse pHttpStatus_ =+  UpdateSourceLocationResponse'+    { accessConfiguration =+        Prelude.Nothing,+      arn = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      defaultSegmentDeliveryConfiguration =+        Prelude.Nothing,+      httpConfiguration = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      segmentDeliveryConfigurations =+        Prelude.Nothing,+      sourceLocationName = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Access configuration parameters. Configures the type of authentication+-- used to access content from your source location.+updateSourceLocationResponse_accessConfiguration :: Lens.Lens' UpdateSourceLocationResponse (Prelude.Maybe AccessConfiguration)+updateSourceLocationResponse_accessConfiguration = Lens.lens (\UpdateSourceLocationResponse' {accessConfiguration} -> accessConfiguration) (\s@UpdateSourceLocationResponse' {} a -> s {accessConfiguration = a} :: UpdateSourceLocationResponse)++-- | The Amazon Resource Name (ARN) associated with the source location.+updateSourceLocationResponse_arn :: Lens.Lens' UpdateSourceLocationResponse (Prelude.Maybe Prelude.Text)+updateSourceLocationResponse_arn = Lens.lens (\UpdateSourceLocationResponse' {arn} -> arn) (\s@UpdateSourceLocationResponse' {} a -> s {arn = a} :: UpdateSourceLocationResponse)++-- | The timestamp that indicates when the source location was created.+updateSourceLocationResponse_creationTime :: Lens.Lens' UpdateSourceLocationResponse (Prelude.Maybe Prelude.UTCTime)+updateSourceLocationResponse_creationTime = Lens.lens (\UpdateSourceLocationResponse' {creationTime} -> creationTime) (\s@UpdateSourceLocationResponse' {} a -> s {creationTime = a} :: UpdateSourceLocationResponse) Prelude.. Lens.mapping Data._Time++-- | The optional configuration for the host server that serves segments.+updateSourceLocationResponse_defaultSegmentDeliveryConfiguration :: Lens.Lens' UpdateSourceLocationResponse (Prelude.Maybe DefaultSegmentDeliveryConfiguration)+updateSourceLocationResponse_defaultSegmentDeliveryConfiguration = Lens.lens (\UpdateSourceLocationResponse' {defaultSegmentDeliveryConfiguration} -> defaultSegmentDeliveryConfiguration) (\s@UpdateSourceLocationResponse' {} a -> s {defaultSegmentDeliveryConfiguration = a} :: UpdateSourceLocationResponse)++-- | The HTTP configuration for the source location.+updateSourceLocationResponse_httpConfiguration :: Lens.Lens' UpdateSourceLocationResponse (Prelude.Maybe HttpConfiguration)+updateSourceLocationResponse_httpConfiguration = Lens.lens (\UpdateSourceLocationResponse' {httpConfiguration} -> httpConfiguration) (\s@UpdateSourceLocationResponse' {} a -> s {httpConfiguration = a} :: UpdateSourceLocationResponse)++-- | The timestamp that indicates when the source location was last modified.+updateSourceLocationResponse_lastModifiedTime :: Lens.Lens' UpdateSourceLocationResponse (Prelude.Maybe Prelude.UTCTime)+updateSourceLocationResponse_lastModifiedTime = Lens.lens (\UpdateSourceLocationResponse' {lastModifiedTime} -> lastModifiedTime) (\s@UpdateSourceLocationResponse' {} a -> s {lastModifiedTime = a} :: UpdateSourceLocationResponse) Prelude.. Lens.mapping Data._Time++-- | The segment delivery configurations for the source location. For+-- information about MediaTailor configurations, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/configurations.html Working with configurations in AWS Elemental MediaTailor>.+updateSourceLocationResponse_segmentDeliveryConfigurations :: Lens.Lens' UpdateSourceLocationResponse (Prelude.Maybe [SegmentDeliveryConfiguration])+updateSourceLocationResponse_segmentDeliveryConfigurations = Lens.lens (\UpdateSourceLocationResponse' {segmentDeliveryConfigurations} -> segmentDeliveryConfigurations) (\s@UpdateSourceLocationResponse' {} a -> s {segmentDeliveryConfigurations = a} :: UpdateSourceLocationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The name of the source location.+updateSourceLocationResponse_sourceLocationName :: Lens.Lens' UpdateSourceLocationResponse (Prelude.Maybe Prelude.Text)+updateSourceLocationResponse_sourceLocationName = Lens.lens (\UpdateSourceLocationResponse' {sourceLocationName} -> sourceLocationName) (\s@UpdateSourceLocationResponse' {} a -> s {sourceLocationName = a} :: UpdateSourceLocationResponse)++-- | The tags to assign to the source location. Tags are key-value pairs that+-- you can associate with Amazon resources to help with organization,+-- access control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+updateSourceLocationResponse_tags :: Lens.Lens' UpdateSourceLocationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateSourceLocationResponse_tags = Lens.lens (\UpdateSourceLocationResponse' {tags} -> tags) (\s@UpdateSourceLocationResponse' {} a -> s {tags = a} :: UpdateSourceLocationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+updateSourceLocationResponse_httpStatus :: Lens.Lens' UpdateSourceLocationResponse Prelude.Int+updateSourceLocationResponse_httpStatus = Lens.lens (\UpdateSourceLocationResponse' {httpStatus} -> httpStatus) (\s@UpdateSourceLocationResponse' {} a -> s {httpStatus = a} :: UpdateSourceLocationResponse)++instance Prelude.NFData UpdateSourceLocationResponse where+  rnf UpdateSourceLocationResponse' {..} =+    Prelude.rnf accessConfiguration+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf defaultSegmentDeliveryConfiguration+      `Prelude.seq` Prelude.rnf httpConfiguration+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf segmentDeliveryConfigurations+      `Prelude.seq` Prelude.rnf sourceLocationName+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/UpdateVodSource.hs view
@@ -0,0 +1,296 @@+{-# 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.MediaTailor.UpdateVodSource+-- 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 VOD source\'s configuration.+module Amazonka.MediaTailor.UpdateVodSource+  ( -- * Creating a Request+    UpdateVodSource (..),+    newUpdateVodSource,++    -- * Request Lenses+    updateVodSource_httpPackageConfigurations,+    updateVodSource_sourceLocationName,+    updateVodSource_vodSourceName,++    -- * Destructuring the Response+    UpdateVodSourceResponse (..),+    newUpdateVodSourceResponse,++    -- * Response Lenses+    updateVodSourceResponse_arn,+    updateVodSourceResponse_creationTime,+    updateVodSourceResponse_httpPackageConfigurations,+    updateVodSourceResponse_lastModifiedTime,+    updateVodSourceResponse_sourceLocationName,+    updateVodSourceResponse_tags,+    updateVodSourceResponse_vodSourceName,+    updateVodSourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateVodSource' smart constructor.+data UpdateVodSource = UpdateVodSource'+  { -- | A list of HTTP package configurations for the VOD source on this+    -- account.+    httpPackageConfigurations :: [HttpPackageConfiguration],+    -- | The name of the source location associated with this VOD Source.+    sourceLocationName :: Prelude.Text,+    -- | The name of the VOD source.+    vodSourceName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateVodSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpPackageConfigurations', 'updateVodSource_httpPackageConfigurations' - A list of HTTP package configurations for the VOD source on this+-- account.+--+-- 'sourceLocationName', 'updateVodSource_sourceLocationName' - The name of the source location associated with this VOD Source.+--+-- 'vodSourceName', 'updateVodSource_vodSourceName' - The name of the VOD source.+newUpdateVodSource ::+  -- | 'sourceLocationName'+  Prelude.Text ->+  -- | 'vodSourceName'+  Prelude.Text ->+  UpdateVodSource+newUpdateVodSource+  pSourceLocationName_+  pVodSourceName_ =+    UpdateVodSource'+      { httpPackageConfigurations =+          Prelude.mempty,+        sourceLocationName = pSourceLocationName_,+        vodSourceName = pVodSourceName_+      }++-- | A list of HTTP package configurations for the VOD source on this+-- account.+updateVodSource_httpPackageConfigurations :: Lens.Lens' UpdateVodSource [HttpPackageConfiguration]+updateVodSource_httpPackageConfigurations = Lens.lens (\UpdateVodSource' {httpPackageConfigurations} -> httpPackageConfigurations) (\s@UpdateVodSource' {} a -> s {httpPackageConfigurations = a} :: UpdateVodSource) Prelude.. Lens.coerced++-- | The name of the source location associated with this VOD Source.+updateVodSource_sourceLocationName :: Lens.Lens' UpdateVodSource Prelude.Text+updateVodSource_sourceLocationName = Lens.lens (\UpdateVodSource' {sourceLocationName} -> sourceLocationName) (\s@UpdateVodSource' {} a -> s {sourceLocationName = a} :: UpdateVodSource)++-- | The name of the VOD source.+updateVodSource_vodSourceName :: Lens.Lens' UpdateVodSource Prelude.Text+updateVodSource_vodSourceName = Lens.lens (\UpdateVodSource' {vodSourceName} -> vodSourceName) (\s@UpdateVodSource' {} a -> s {vodSourceName = a} :: UpdateVodSource)++instance Core.AWSRequest UpdateVodSource where+  type+    AWSResponse UpdateVodSource =+      UpdateVodSourceResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateVodSourceResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "CreationTime")+            Prelude.<*> ( x+                            Data..?> "HttpPackageConfigurations"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "LastModifiedTime")+            Prelude.<*> (x Data..?> "SourceLocationName")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "VodSourceName")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateVodSource where+  hashWithSalt _salt UpdateVodSource' {..} =+    _salt+      `Prelude.hashWithSalt` httpPackageConfigurations+      `Prelude.hashWithSalt` sourceLocationName+      `Prelude.hashWithSalt` vodSourceName++instance Prelude.NFData UpdateVodSource where+  rnf UpdateVodSource' {..} =+    Prelude.rnf httpPackageConfigurations+      `Prelude.seq` Prelude.rnf sourceLocationName+      `Prelude.seq` Prelude.rnf vodSourceName++instance Data.ToHeaders UpdateVodSource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateVodSource where+  toJSON UpdateVodSource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "HttpPackageConfigurations"+                  Data..= httpPackageConfigurations+              )+          ]+      )++instance Data.ToPath UpdateVodSource where+  toPath UpdateVodSource' {..} =+    Prelude.mconcat+      [ "/sourceLocation/",+        Data.toBS sourceLocationName,+        "/vodSource/",+        Data.toBS vodSourceName+      ]++instance Data.ToQuery UpdateVodSource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateVodSourceResponse' smart constructor.+data UpdateVodSourceResponse = UpdateVodSourceResponse'+  { -- | The Amazon Resource Name (ARN) associated with the VOD source.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The timestamp that indicates when the VOD source was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | A list of HTTP package configurations for the VOD source on this+    -- account.+    httpPackageConfigurations :: Prelude.Maybe [HttpPackageConfiguration],+    -- | The timestamp that indicates when the VOD source was last modified.+    lastModifiedTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the source location associated with the VOD source.+    sourceLocationName :: Prelude.Maybe Prelude.Text,+    -- | The tags to assign to the VOD source. Tags are key-value pairs that you+    -- can associate with Amazon resources to help with organization, access+    -- control, and cost tracking. For more information, see+    -- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name of the VOD source.+    vodSourceName :: 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 'UpdateVodSourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateVodSourceResponse_arn' - The Amazon Resource Name (ARN) associated with the VOD source.+--+-- 'creationTime', 'updateVodSourceResponse_creationTime' - The timestamp that indicates when the VOD source was created.+--+-- 'httpPackageConfigurations', 'updateVodSourceResponse_httpPackageConfigurations' - A list of HTTP package configurations for the VOD source on this+-- account.+--+-- 'lastModifiedTime', 'updateVodSourceResponse_lastModifiedTime' - The timestamp that indicates when the VOD source was last modified.+--+-- 'sourceLocationName', 'updateVodSourceResponse_sourceLocationName' - The name of the source location associated with the VOD source.+--+-- 'tags', 'updateVodSourceResponse_tags' - The tags to assign to the VOD source. Tags are key-value pairs that you+-- can associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+--+-- 'vodSourceName', 'updateVodSourceResponse_vodSourceName' - The name of the VOD source.+--+-- 'httpStatus', 'updateVodSourceResponse_httpStatus' - The response's http status code.+newUpdateVodSourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateVodSourceResponse+newUpdateVodSourceResponse pHttpStatus_ =+  UpdateVodSourceResponse'+    { arn = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      httpPackageConfigurations = Prelude.Nothing,+      lastModifiedTime = Prelude.Nothing,+      sourceLocationName = Prelude.Nothing,+      tags = Prelude.Nothing,+      vodSourceName = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) associated with the VOD source.+updateVodSourceResponse_arn :: Lens.Lens' UpdateVodSourceResponse (Prelude.Maybe Prelude.Text)+updateVodSourceResponse_arn = Lens.lens (\UpdateVodSourceResponse' {arn} -> arn) (\s@UpdateVodSourceResponse' {} a -> s {arn = a} :: UpdateVodSourceResponse)++-- | The timestamp that indicates when the VOD source was created.+updateVodSourceResponse_creationTime :: Lens.Lens' UpdateVodSourceResponse (Prelude.Maybe Prelude.UTCTime)+updateVodSourceResponse_creationTime = Lens.lens (\UpdateVodSourceResponse' {creationTime} -> creationTime) (\s@UpdateVodSourceResponse' {} a -> s {creationTime = a} :: UpdateVodSourceResponse) Prelude.. Lens.mapping Data._Time++-- | A list of HTTP package configurations for the VOD source on this+-- account.+updateVodSourceResponse_httpPackageConfigurations :: Lens.Lens' UpdateVodSourceResponse (Prelude.Maybe [HttpPackageConfiguration])+updateVodSourceResponse_httpPackageConfigurations = Lens.lens (\UpdateVodSourceResponse' {httpPackageConfigurations} -> httpPackageConfigurations) (\s@UpdateVodSourceResponse' {} a -> s {httpPackageConfigurations = a} :: UpdateVodSourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The timestamp that indicates when the VOD source was last modified.+updateVodSourceResponse_lastModifiedTime :: Lens.Lens' UpdateVodSourceResponse (Prelude.Maybe Prelude.UTCTime)+updateVodSourceResponse_lastModifiedTime = Lens.lens (\UpdateVodSourceResponse' {lastModifiedTime} -> lastModifiedTime) (\s@UpdateVodSourceResponse' {} a -> s {lastModifiedTime = a} :: UpdateVodSourceResponse) Prelude.. Lens.mapping Data._Time++-- | The name of the source location associated with the VOD source.+updateVodSourceResponse_sourceLocationName :: Lens.Lens' UpdateVodSourceResponse (Prelude.Maybe Prelude.Text)+updateVodSourceResponse_sourceLocationName = Lens.lens (\UpdateVodSourceResponse' {sourceLocationName} -> sourceLocationName) (\s@UpdateVodSourceResponse' {} a -> s {sourceLocationName = a} :: UpdateVodSourceResponse)++-- | The tags to assign to the VOD source. Tags are key-value pairs that you+-- can associate with Amazon resources to help with organization, access+-- control, and cost tracking. For more information, see+-- <https://docs.aws.amazon.com/mediatailor/latest/ug/tagging.html Tagging AWS Elemental MediaTailor Resources>.+updateVodSourceResponse_tags :: Lens.Lens' UpdateVodSourceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateVodSourceResponse_tags = Lens.lens (\UpdateVodSourceResponse' {tags} -> tags) (\s@UpdateVodSourceResponse' {} a -> s {tags = a} :: UpdateVodSourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The name of the VOD source.+updateVodSourceResponse_vodSourceName :: Lens.Lens' UpdateVodSourceResponse (Prelude.Maybe Prelude.Text)+updateVodSourceResponse_vodSourceName = Lens.lens (\UpdateVodSourceResponse' {vodSourceName} -> vodSourceName) (\s@UpdateVodSourceResponse' {} a -> s {vodSourceName = a} :: UpdateVodSourceResponse)++-- | The response's http status code.+updateVodSourceResponse_httpStatus :: Lens.Lens' UpdateVodSourceResponse Prelude.Int+updateVodSourceResponse_httpStatus = Lens.lens (\UpdateVodSourceResponse' {httpStatus} -> httpStatus) (\s@UpdateVodSourceResponse' {} a -> s {httpStatus = a} :: UpdateVodSourceResponse)++instance Prelude.NFData UpdateVodSourceResponse where+  rnf UpdateVodSourceResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf httpPackageConfigurations+      `Prelude.seq` Prelude.rnf lastModifiedTime+      `Prelude.seq` Prelude.rnf sourceLocationName+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf vodSourceName+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaTailor/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.MediaTailor.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.MediaTailor.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaTailor.Lens+import Amazonka.MediaTailor.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.MediaTailor+import Test.Amazonka.MediaTailor.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "MediaTailor"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/Gen/MediaTailor.hs view
@@ -0,0 +1,878 @@+{-# 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.MediaTailor+-- Copyright   : (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.MediaTailor where++import Amazonka.MediaTailor+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.MediaTailor.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"+--         [ requestConfigureLogsForPlaybackConfiguration $+--             newConfigureLogsForPlaybackConfiguration+--+--         , requestCreateChannel $+--             newCreateChannel+--+--         , requestCreateLiveSource $+--             newCreateLiveSource+--+--         , requestCreatePrefetchSchedule $+--             newCreatePrefetchSchedule+--+--         , requestCreateProgram $+--             newCreateProgram+--+--         , requestCreateSourceLocation $+--             newCreateSourceLocation+--+--         , requestCreateVodSource $+--             newCreateVodSource+--+--         , requestDeleteChannel $+--             newDeleteChannel+--+--         , requestDeleteChannelPolicy $+--             newDeleteChannelPolicy+--+--         , requestDeleteLiveSource $+--             newDeleteLiveSource+--+--         , requestDeletePlaybackConfiguration $+--             newDeletePlaybackConfiguration+--+--         , requestDeletePrefetchSchedule $+--             newDeletePrefetchSchedule+--+--         , requestDeleteProgram $+--             newDeleteProgram+--+--         , requestDeleteSourceLocation $+--             newDeleteSourceLocation+--+--         , requestDeleteVodSource $+--             newDeleteVodSource+--+--         , requestDescribeChannel $+--             newDescribeChannel+--+--         , requestDescribeLiveSource $+--             newDescribeLiveSource+--+--         , requestDescribeProgram $+--             newDescribeProgram+--+--         , requestDescribeSourceLocation $+--             newDescribeSourceLocation+--+--         , requestDescribeVodSource $+--             newDescribeVodSource+--+--         , requestGetChannelPolicy $+--             newGetChannelPolicy+--+--         , requestGetChannelSchedule $+--             newGetChannelSchedule+--+--         , requestGetPlaybackConfiguration $+--             newGetPlaybackConfiguration+--+--         , requestGetPrefetchSchedule $+--             newGetPrefetchSchedule+--+--         , requestListAlerts $+--             newListAlerts+--+--         , requestListChannels $+--             newListChannels+--+--         , requestListLiveSources $+--             newListLiveSources+--+--         , requestListPlaybackConfigurations $+--             newListPlaybackConfigurations+--+--         , requestListPrefetchSchedules $+--             newListPrefetchSchedules+--+--         , requestListSourceLocations $+--             newListSourceLocations+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestListVodSources $+--             newListVodSources+--+--         , requestPutChannelPolicy $+--             newPutChannelPolicy+--+--         , requestPutPlaybackConfiguration $+--             newPutPlaybackConfiguration+--+--         , requestStartChannel $+--             newStartChannel+--+--         , requestStopChannel $+--             newStopChannel+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateChannel $+--             newUpdateChannel+--+--         , requestUpdateLiveSource $+--             newUpdateLiveSource+--+--         , requestUpdateSourceLocation $+--             newUpdateSourceLocation+--+--         , requestUpdateVodSource $+--             newUpdateVodSource+--+--           ]++--     , testGroup "response"+--         [ responseConfigureLogsForPlaybackConfiguration $+--             newConfigureLogsForPlaybackConfigurationResponse+--+--         , responseCreateChannel $+--             newCreateChannelResponse+--+--         , responseCreateLiveSource $+--             newCreateLiveSourceResponse+--+--         , responseCreatePrefetchSchedule $+--             newCreatePrefetchScheduleResponse+--+--         , responseCreateProgram $+--             newCreateProgramResponse+--+--         , responseCreateSourceLocation $+--             newCreateSourceLocationResponse+--+--         , responseCreateVodSource $+--             newCreateVodSourceResponse+--+--         , responseDeleteChannel $+--             newDeleteChannelResponse+--+--         , responseDeleteChannelPolicy $+--             newDeleteChannelPolicyResponse+--+--         , responseDeleteLiveSource $+--             newDeleteLiveSourceResponse+--+--         , responseDeletePlaybackConfiguration $+--             newDeletePlaybackConfigurationResponse+--+--         , responseDeletePrefetchSchedule $+--             newDeletePrefetchScheduleResponse+--+--         , responseDeleteProgram $+--             newDeleteProgramResponse+--+--         , responseDeleteSourceLocation $+--             newDeleteSourceLocationResponse+--+--         , responseDeleteVodSource $+--             newDeleteVodSourceResponse+--+--         , responseDescribeChannel $+--             newDescribeChannelResponse+--+--         , responseDescribeLiveSource $+--             newDescribeLiveSourceResponse+--+--         , responseDescribeProgram $+--             newDescribeProgramResponse+--+--         , responseDescribeSourceLocation $+--             newDescribeSourceLocationResponse+--+--         , responseDescribeVodSource $+--             newDescribeVodSourceResponse+--+--         , responseGetChannelPolicy $+--             newGetChannelPolicyResponse+--+--         , responseGetChannelSchedule $+--             newGetChannelScheduleResponse+--+--         , responseGetPlaybackConfiguration $+--             newGetPlaybackConfigurationResponse+--+--         , responseGetPrefetchSchedule $+--             newGetPrefetchScheduleResponse+--+--         , responseListAlerts $+--             newListAlertsResponse+--+--         , responseListChannels $+--             newListChannelsResponse+--+--         , responseListLiveSources $+--             newListLiveSourcesResponse+--+--         , responseListPlaybackConfigurations $+--             newListPlaybackConfigurationsResponse+--+--         , responseListPrefetchSchedules $+--             newListPrefetchSchedulesResponse+--+--         , responseListSourceLocations $+--             newListSourceLocationsResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responseListVodSources $+--             newListVodSourcesResponse+--+--         , responsePutChannelPolicy $+--             newPutChannelPolicyResponse+--+--         , responsePutPlaybackConfiguration $+--             newPutPlaybackConfigurationResponse+--+--         , responseStartChannel $+--             newStartChannelResponse+--+--         , responseStopChannel $+--             newStopChannelResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateChannel $+--             newUpdateChannelResponse+--+--         , responseUpdateLiveSource $+--             newUpdateLiveSourceResponse+--+--         , responseUpdateSourceLocation $+--             newUpdateSourceLocationResponse+--+--         , responseUpdateVodSource $+--             newUpdateVodSourceResponse+--+--           ]+--     ]++-- Requests++requestConfigureLogsForPlaybackConfiguration :: ConfigureLogsForPlaybackConfiguration -> TestTree+requestConfigureLogsForPlaybackConfiguration =+  req+    "ConfigureLogsForPlaybackConfiguration"+    "fixture/ConfigureLogsForPlaybackConfiguration.yaml"++requestCreateChannel :: CreateChannel -> TestTree+requestCreateChannel =+  req+    "CreateChannel"+    "fixture/CreateChannel.yaml"++requestCreateLiveSource :: CreateLiveSource -> TestTree+requestCreateLiveSource =+  req+    "CreateLiveSource"+    "fixture/CreateLiveSource.yaml"++requestCreatePrefetchSchedule :: CreatePrefetchSchedule -> TestTree+requestCreatePrefetchSchedule =+  req+    "CreatePrefetchSchedule"+    "fixture/CreatePrefetchSchedule.yaml"++requestCreateProgram :: CreateProgram -> TestTree+requestCreateProgram =+  req+    "CreateProgram"+    "fixture/CreateProgram.yaml"++requestCreateSourceLocation :: CreateSourceLocation -> TestTree+requestCreateSourceLocation =+  req+    "CreateSourceLocation"+    "fixture/CreateSourceLocation.yaml"++requestCreateVodSource :: CreateVodSource -> TestTree+requestCreateVodSource =+  req+    "CreateVodSource"+    "fixture/CreateVodSource.yaml"++requestDeleteChannel :: DeleteChannel -> TestTree+requestDeleteChannel =+  req+    "DeleteChannel"+    "fixture/DeleteChannel.yaml"++requestDeleteChannelPolicy :: DeleteChannelPolicy -> TestTree+requestDeleteChannelPolicy =+  req+    "DeleteChannelPolicy"+    "fixture/DeleteChannelPolicy.yaml"++requestDeleteLiveSource :: DeleteLiveSource -> TestTree+requestDeleteLiveSource =+  req+    "DeleteLiveSource"+    "fixture/DeleteLiveSource.yaml"++requestDeletePlaybackConfiguration :: DeletePlaybackConfiguration -> TestTree+requestDeletePlaybackConfiguration =+  req+    "DeletePlaybackConfiguration"+    "fixture/DeletePlaybackConfiguration.yaml"++requestDeletePrefetchSchedule :: DeletePrefetchSchedule -> TestTree+requestDeletePrefetchSchedule =+  req+    "DeletePrefetchSchedule"+    "fixture/DeletePrefetchSchedule.yaml"++requestDeleteProgram :: DeleteProgram -> TestTree+requestDeleteProgram =+  req+    "DeleteProgram"+    "fixture/DeleteProgram.yaml"++requestDeleteSourceLocation :: DeleteSourceLocation -> TestTree+requestDeleteSourceLocation =+  req+    "DeleteSourceLocation"+    "fixture/DeleteSourceLocation.yaml"++requestDeleteVodSource :: DeleteVodSource -> TestTree+requestDeleteVodSource =+  req+    "DeleteVodSource"+    "fixture/DeleteVodSource.yaml"++requestDescribeChannel :: DescribeChannel -> TestTree+requestDescribeChannel =+  req+    "DescribeChannel"+    "fixture/DescribeChannel.yaml"++requestDescribeLiveSource :: DescribeLiveSource -> TestTree+requestDescribeLiveSource =+  req+    "DescribeLiveSource"+    "fixture/DescribeLiveSource.yaml"++requestDescribeProgram :: DescribeProgram -> TestTree+requestDescribeProgram =+  req+    "DescribeProgram"+    "fixture/DescribeProgram.yaml"++requestDescribeSourceLocation :: DescribeSourceLocation -> TestTree+requestDescribeSourceLocation =+  req+    "DescribeSourceLocation"+    "fixture/DescribeSourceLocation.yaml"++requestDescribeVodSource :: DescribeVodSource -> TestTree+requestDescribeVodSource =+  req+    "DescribeVodSource"+    "fixture/DescribeVodSource.yaml"++requestGetChannelPolicy :: GetChannelPolicy -> TestTree+requestGetChannelPolicy =+  req+    "GetChannelPolicy"+    "fixture/GetChannelPolicy.yaml"++requestGetChannelSchedule :: GetChannelSchedule -> TestTree+requestGetChannelSchedule =+  req+    "GetChannelSchedule"+    "fixture/GetChannelSchedule.yaml"++requestGetPlaybackConfiguration :: GetPlaybackConfiguration -> TestTree+requestGetPlaybackConfiguration =+  req+    "GetPlaybackConfiguration"+    "fixture/GetPlaybackConfiguration.yaml"++requestGetPrefetchSchedule :: GetPrefetchSchedule -> TestTree+requestGetPrefetchSchedule =+  req+    "GetPrefetchSchedule"+    "fixture/GetPrefetchSchedule.yaml"++requestListAlerts :: ListAlerts -> TestTree+requestListAlerts =+  req+    "ListAlerts"+    "fixture/ListAlerts.yaml"++requestListChannels :: ListChannels -> TestTree+requestListChannels =+  req+    "ListChannels"+    "fixture/ListChannels.yaml"++requestListLiveSources :: ListLiveSources -> TestTree+requestListLiveSources =+  req+    "ListLiveSources"+    "fixture/ListLiveSources.yaml"++requestListPlaybackConfigurations :: ListPlaybackConfigurations -> TestTree+requestListPlaybackConfigurations =+  req+    "ListPlaybackConfigurations"+    "fixture/ListPlaybackConfigurations.yaml"++requestListPrefetchSchedules :: ListPrefetchSchedules -> TestTree+requestListPrefetchSchedules =+  req+    "ListPrefetchSchedules"+    "fixture/ListPrefetchSchedules.yaml"++requestListSourceLocations :: ListSourceLocations -> TestTree+requestListSourceLocations =+  req+    "ListSourceLocations"+    "fixture/ListSourceLocations.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestListVodSources :: ListVodSources -> TestTree+requestListVodSources =+  req+    "ListVodSources"+    "fixture/ListVodSources.yaml"++requestPutChannelPolicy :: PutChannelPolicy -> TestTree+requestPutChannelPolicy =+  req+    "PutChannelPolicy"+    "fixture/PutChannelPolicy.yaml"++requestPutPlaybackConfiguration :: PutPlaybackConfiguration -> TestTree+requestPutPlaybackConfiguration =+  req+    "PutPlaybackConfiguration"+    "fixture/PutPlaybackConfiguration.yaml"++requestStartChannel :: StartChannel -> TestTree+requestStartChannel =+  req+    "StartChannel"+    "fixture/StartChannel.yaml"++requestStopChannel :: StopChannel -> TestTree+requestStopChannel =+  req+    "StopChannel"+    "fixture/StopChannel.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateChannel :: UpdateChannel -> TestTree+requestUpdateChannel =+  req+    "UpdateChannel"+    "fixture/UpdateChannel.yaml"++requestUpdateLiveSource :: UpdateLiveSource -> TestTree+requestUpdateLiveSource =+  req+    "UpdateLiveSource"+    "fixture/UpdateLiveSource.yaml"++requestUpdateSourceLocation :: UpdateSourceLocation -> TestTree+requestUpdateSourceLocation =+  req+    "UpdateSourceLocation"+    "fixture/UpdateSourceLocation.yaml"++requestUpdateVodSource :: UpdateVodSource -> TestTree+requestUpdateVodSource =+  req+    "UpdateVodSource"+    "fixture/UpdateVodSource.yaml"++-- Responses++responseConfigureLogsForPlaybackConfiguration :: ConfigureLogsForPlaybackConfigurationResponse -> TestTree+responseConfigureLogsForPlaybackConfiguration =+  res+    "ConfigureLogsForPlaybackConfigurationResponse"+    "fixture/ConfigureLogsForPlaybackConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ConfigureLogsForPlaybackConfiguration)++responseCreateChannel :: CreateChannelResponse -> TestTree+responseCreateChannel =+  res+    "CreateChannelResponse"+    "fixture/CreateChannelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateChannel)++responseCreateLiveSource :: CreateLiveSourceResponse -> TestTree+responseCreateLiveSource =+  res+    "CreateLiveSourceResponse"+    "fixture/CreateLiveSourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateLiveSource)++responseCreatePrefetchSchedule :: CreatePrefetchScheduleResponse -> TestTree+responseCreatePrefetchSchedule =+  res+    "CreatePrefetchScheduleResponse"+    "fixture/CreatePrefetchScheduleResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreatePrefetchSchedule)++responseCreateProgram :: CreateProgramResponse -> TestTree+responseCreateProgram =+  res+    "CreateProgramResponse"+    "fixture/CreateProgramResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateProgram)++responseCreateSourceLocation :: CreateSourceLocationResponse -> TestTree+responseCreateSourceLocation =+  res+    "CreateSourceLocationResponse"+    "fixture/CreateSourceLocationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateSourceLocation)++responseCreateVodSource :: CreateVodSourceResponse -> TestTree+responseCreateVodSource =+  res+    "CreateVodSourceResponse"+    "fixture/CreateVodSourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateVodSource)++responseDeleteChannel :: DeleteChannelResponse -> TestTree+responseDeleteChannel =+  res+    "DeleteChannelResponse"+    "fixture/DeleteChannelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteChannel)++responseDeleteChannelPolicy :: DeleteChannelPolicyResponse -> TestTree+responseDeleteChannelPolicy =+  res+    "DeleteChannelPolicyResponse"+    "fixture/DeleteChannelPolicyResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteChannelPolicy)++responseDeleteLiveSource :: DeleteLiveSourceResponse -> TestTree+responseDeleteLiveSource =+  res+    "DeleteLiveSourceResponse"+    "fixture/DeleteLiveSourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteLiveSource)++responseDeletePlaybackConfiguration :: DeletePlaybackConfigurationResponse -> TestTree+responseDeletePlaybackConfiguration =+  res+    "DeletePlaybackConfigurationResponse"+    "fixture/DeletePlaybackConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeletePlaybackConfiguration)++responseDeletePrefetchSchedule :: DeletePrefetchScheduleResponse -> TestTree+responseDeletePrefetchSchedule =+  res+    "DeletePrefetchScheduleResponse"+    "fixture/DeletePrefetchScheduleResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeletePrefetchSchedule)++responseDeleteProgram :: DeleteProgramResponse -> TestTree+responseDeleteProgram =+  res+    "DeleteProgramResponse"+    "fixture/DeleteProgramResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteProgram)++responseDeleteSourceLocation :: DeleteSourceLocationResponse -> TestTree+responseDeleteSourceLocation =+  res+    "DeleteSourceLocationResponse"+    "fixture/DeleteSourceLocationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteSourceLocation)++responseDeleteVodSource :: DeleteVodSourceResponse -> TestTree+responseDeleteVodSource =+  res+    "DeleteVodSourceResponse"+    "fixture/DeleteVodSourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteVodSource)++responseDescribeChannel :: DescribeChannelResponse -> TestTree+responseDescribeChannel =+  res+    "DescribeChannelResponse"+    "fixture/DescribeChannelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeChannel)++responseDescribeLiveSource :: DescribeLiveSourceResponse -> TestTree+responseDescribeLiveSource =+  res+    "DescribeLiveSourceResponse"+    "fixture/DescribeLiveSourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeLiveSource)++responseDescribeProgram :: DescribeProgramResponse -> TestTree+responseDescribeProgram =+  res+    "DescribeProgramResponse"+    "fixture/DescribeProgramResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeProgram)++responseDescribeSourceLocation :: DescribeSourceLocationResponse -> TestTree+responseDescribeSourceLocation =+  res+    "DescribeSourceLocationResponse"+    "fixture/DescribeSourceLocationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeSourceLocation)++responseDescribeVodSource :: DescribeVodSourceResponse -> TestTree+responseDescribeVodSource =+  res+    "DescribeVodSourceResponse"+    "fixture/DescribeVodSourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeVodSource)++responseGetChannelPolicy :: GetChannelPolicyResponse -> TestTree+responseGetChannelPolicy =+  res+    "GetChannelPolicyResponse"+    "fixture/GetChannelPolicyResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetChannelPolicy)++responseGetChannelSchedule :: GetChannelScheduleResponse -> TestTree+responseGetChannelSchedule =+  res+    "GetChannelScheduleResponse"+    "fixture/GetChannelScheduleResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetChannelSchedule)++responseGetPlaybackConfiguration :: GetPlaybackConfigurationResponse -> TestTree+responseGetPlaybackConfiguration =+  res+    "GetPlaybackConfigurationResponse"+    "fixture/GetPlaybackConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetPlaybackConfiguration)++responseGetPrefetchSchedule :: GetPrefetchScheduleResponse -> TestTree+responseGetPrefetchSchedule =+  res+    "GetPrefetchScheduleResponse"+    "fixture/GetPrefetchScheduleResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetPrefetchSchedule)++responseListAlerts :: ListAlertsResponse -> TestTree+responseListAlerts =+  res+    "ListAlertsResponse"+    "fixture/ListAlertsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListAlerts)++responseListChannels :: ListChannelsResponse -> TestTree+responseListChannels =+  res+    "ListChannelsResponse"+    "fixture/ListChannelsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListChannels)++responseListLiveSources :: ListLiveSourcesResponse -> TestTree+responseListLiveSources =+  res+    "ListLiveSourcesResponse"+    "fixture/ListLiveSourcesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListLiveSources)++responseListPlaybackConfigurations :: ListPlaybackConfigurationsResponse -> TestTree+responseListPlaybackConfigurations =+  res+    "ListPlaybackConfigurationsResponse"+    "fixture/ListPlaybackConfigurationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListPlaybackConfigurations)++responseListPrefetchSchedules :: ListPrefetchSchedulesResponse -> TestTree+responseListPrefetchSchedules =+  res+    "ListPrefetchSchedulesResponse"+    "fixture/ListPrefetchSchedulesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListPrefetchSchedules)++responseListSourceLocations :: ListSourceLocationsResponse -> TestTree+responseListSourceLocations =+  res+    "ListSourceLocationsResponse"+    "fixture/ListSourceLocationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListSourceLocations)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseListVodSources :: ListVodSourcesResponse -> TestTree+responseListVodSources =+  res+    "ListVodSourcesResponse"+    "fixture/ListVodSourcesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListVodSources)++responsePutChannelPolicy :: PutChannelPolicyResponse -> TestTree+responsePutChannelPolicy =+  res+    "PutChannelPolicyResponse"+    "fixture/PutChannelPolicyResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PutChannelPolicy)++responsePutPlaybackConfiguration :: PutPlaybackConfigurationResponse -> TestTree+responsePutPlaybackConfiguration =+  res+    "PutPlaybackConfigurationResponse"+    "fixture/PutPlaybackConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PutPlaybackConfiguration)++responseStartChannel :: StartChannelResponse -> TestTree+responseStartChannel =+  res+    "StartChannelResponse"+    "fixture/StartChannelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartChannel)++responseStopChannel :: StopChannelResponse -> TestTree+responseStopChannel =+  res+    "StopChannelResponse"+    "fixture/StopChannelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StopChannel)++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)++responseUpdateChannel :: UpdateChannelResponse -> TestTree+responseUpdateChannel =+  res+    "UpdateChannelResponse"+    "fixture/UpdateChannelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateChannel)++responseUpdateLiveSource :: UpdateLiveSourceResponse -> TestTree+responseUpdateLiveSource =+  res+    "UpdateLiveSourceResponse"+    "fixture/UpdateLiveSourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateLiveSource)++responseUpdateSourceLocation :: UpdateSourceLocationResponse -> TestTree+responseUpdateSourceLocation =+  res+    "UpdateSourceLocationResponse"+    "fixture/UpdateSourceLocationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateSourceLocation)++responseUpdateVodSource :: UpdateVodSourceResponse -> TestTree+responseUpdateVodSource =+  res+    "UpdateVodSourceResponse"+    "fixture/UpdateVodSourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateVodSource)
+ test/Test/Amazonka/MediaTailor.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.MediaTailor+-- Copyright   : (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.MediaTailor+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/MediaTailor/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.MediaTailor.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.MediaTailor.Internal where