{-# 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-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Adds a new playback configuration to AWS Elemental MediaTailor.
module Amazonka.MediaTailor.PutPlaybackConfiguration
  ( -- * Creating a Request
    PutPlaybackConfiguration (..),
    newPutPlaybackConfiguration,

    -- * Request Lenses
    putPlaybackConfiguration_personalizationThresholdSeconds,
    putPlaybackConfiguration_availSuppression,
    putPlaybackConfiguration_bumper,
    putPlaybackConfiguration_adDecisionServerUrl,
    putPlaybackConfiguration_videoContentSourceUrl,
    putPlaybackConfiguration_dashConfiguration,
    putPlaybackConfiguration_manifestProcessingRules,
    putPlaybackConfiguration_livePreRollConfiguration,
    putPlaybackConfiguration_name,
    putPlaybackConfiguration_configurationAliases,
    putPlaybackConfiguration_transcodeProfileName,
    putPlaybackConfiguration_tags,
    putPlaybackConfiguration_slateAdUrl,
    putPlaybackConfiguration_cdnConfiguration,

    -- * Destructuring the Response
    PutPlaybackConfigurationResponse (..),
    newPutPlaybackConfigurationResponse,

    -- * Response Lenses
    putPlaybackConfigurationResponse_playbackEndpointPrefix,
    putPlaybackConfigurationResponse_hlsConfiguration,
    putPlaybackConfigurationResponse_personalizationThresholdSeconds,
    putPlaybackConfigurationResponse_playbackConfigurationArn,
    putPlaybackConfigurationResponse_availSuppression,
    putPlaybackConfigurationResponse_bumper,
    putPlaybackConfigurationResponse_adDecisionServerUrl,
    putPlaybackConfigurationResponse_videoContentSourceUrl,
    putPlaybackConfigurationResponse_dashConfiguration,
    putPlaybackConfigurationResponse_manifestProcessingRules,
    putPlaybackConfigurationResponse_logConfiguration,
    putPlaybackConfigurationResponse_livePreRollConfiguration,
    putPlaybackConfigurationResponse_name,
    putPlaybackConfigurationResponse_sessionInitializationEndpointPrefix,
    putPlaybackConfigurationResponse_configurationAliases,
    putPlaybackConfigurationResponse_transcodeProfileName,
    putPlaybackConfigurationResponse_tags,
    putPlaybackConfigurationResponse_slateAdUrl,
    putPlaybackConfigurationResponse_cdnConfiguration,
    putPlaybackConfigurationResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
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'
  { -- | 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 -> Maybe Natural
personalizationThresholdSeconds :: Prelude.Maybe Prelude.Natural,
    -- | 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 -> Maybe AvailSuppression
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>.
    PutPlaybackConfiguration -> Maybe Bumper
bumper :: Prelude.Maybe Bumper,
    -- | 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 -> Maybe Text
adDecisionServerUrl :: Prelude.Maybe Prelude.Text,
    -- | The URL prefix for the parent manifest for the stream, minus the asset
    -- ID. The maximum length is 512 characters.
    PutPlaybackConfiguration -> Maybe Text
videoContentSourceUrl :: Prelude.Maybe Prelude.Text,
    -- | The configuration for DASH content.
    PutPlaybackConfiguration -> Maybe DashConfigurationForPut
dashConfiguration :: Prelude.Maybe DashConfigurationForPut,
    -- | The configuration for manifest processing rules. Manifest processing
    -- rules enable customization of the personalized manifests created by
    -- MediaTailor.
    PutPlaybackConfiguration -> Maybe ManifestProcessingRules
manifestProcessingRules :: Prelude.Maybe ManifestProcessingRules,
    -- | The configuration for pre-roll ad insertion.
    PutPlaybackConfiguration -> Maybe LivePreRollConfiguration
livePreRollConfiguration :: Prelude.Maybe LivePreRollConfiguration,
    -- | The identifier for the playback configuration.
    PutPlaybackConfiguration -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | 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
-> Maybe (HashMap Text (HashMap Text Text))
configurationAliases :: Prelude.Maybe (Prelude.HashMap Prelude.Text (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.
    PutPlaybackConfiguration -> Maybe Text
transcodeProfileName :: Prelude.Maybe Prelude.Text,
    -- | The tags to assign to the playback configuration.
    PutPlaybackConfiguration -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text 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.
    PutPlaybackConfiguration -> Maybe Text
slateAdUrl :: Prelude.Maybe Prelude.Text,
    -- | The configuration for using a content delivery network (CDN), like
    -- Amazon CloudFront, for content and ad segment management.
    PutPlaybackConfiguration -> Maybe CdnConfiguration
cdnConfiguration :: Prelude.Maybe CdnConfiguration
  }
  deriving (PutPlaybackConfiguration -> PutPlaybackConfiguration -> Bool
(PutPlaybackConfiguration -> PutPlaybackConfiguration -> Bool)
-> (PutPlaybackConfiguration -> PutPlaybackConfiguration -> Bool)
-> Eq PutPlaybackConfiguration
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PutPlaybackConfiguration -> PutPlaybackConfiguration -> Bool
$c/= :: PutPlaybackConfiguration -> PutPlaybackConfiguration -> Bool
== :: PutPlaybackConfiguration -> PutPlaybackConfiguration -> Bool
$c== :: PutPlaybackConfiguration -> PutPlaybackConfiguration -> Bool
Prelude.Eq, ReadPrec [PutPlaybackConfiguration]
ReadPrec PutPlaybackConfiguration
Int -> ReadS PutPlaybackConfiguration
ReadS [PutPlaybackConfiguration]
(Int -> ReadS PutPlaybackConfiguration)
-> ReadS [PutPlaybackConfiguration]
-> ReadPrec PutPlaybackConfiguration
-> ReadPrec [PutPlaybackConfiguration]
-> Read PutPlaybackConfiguration
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PutPlaybackConfiguration]
$creadListPrec :: ReadPrec [PutPlaybackConfiguration]
readPrec :: ReadPrec PutPlaybackConfiguration
$creadPrec :: ReadPrec PutPlaybackConfiguration
readList :: ReadS [PutPlaybackConfiguration]
$creadList :: ReadS [PutPlaybackConfiguration]
readsPrec :: Int -> ReadS PutPlaybackConfiguration
$creadsPrec :: Int -> ReadS PutPlaybackConfiguration
Prelude.Read, Int -> PutPlaybackConfiguration -> ShowS
[PutPlaybackConfiguration] -> ShowS
PutPlaybackConfiguration -> String
(Int -> PutPlaybackConfiguration -> ShowS)
-> (PutPlaybackConfiguration -> String)
-> ([PutPlaybackConfiguration] -> ShowS)
-> Show PutPlaybackConfiguration
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PutPlaybackConfiguration] -> ShowS
$cshowList :: [PutPlaybackConfiguration] -> ShowS
show :: PutPlaybackConfiguration -> String
$cshow :: PutPlaybackConfiguration -> String
showsPrec :: Int -> PutPlaybackConfiguration -> ShowS
$cshowsPrec :: Int -> PutPlaybackConfiguration -> ShowS
Prelude.Show, (forall x.
 PutPlaybackConfiguration -> Rep PutPlaybackConfiguration x)
-> (forall x.
    Rep PutPlaybackConfiguration x -> PutPlaybackConfiguration)
-> Generic PutPlaybackConfiguration
forall x.
Rep PutPlaybackConfiguration x -> PutPlaybackConfiguration
forall x.
PutPlaybackConfiguration -> Rep PutPlaybackConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep PutPlaybackConfiguration x -> PutPlaybackConfiguration
$cfrom :: forall x.
PutPlaybackConfiguration -> Rep PutPlaybackConfiguration x
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:
--
-- '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>.
--
-- '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>.
--
-- '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.
--
-- 'videoContentSourceUrl', 'putPlaybackConfiguration_videoContentSourceUrl' - The URL prefix for the parent manifest for the stream, minus the asset
-- ID. The maximum length is 512 characters.
--
-- 'dashConfiguration', 'putPlaybackConfiguration_dashConfiguration' - The configuration for DASH content.
--
-- 'manifestProcessingRules', 'putPlaybackConfiguration_manifestProcessingRules' - The configuration for manifest processing rules. Manifest processing
-- rules enable customization of the personalized manifests created by
-- MediaTailor.
--
-- 'livePreRollConfiguration', 'putPlaybackConfiguration_livePreRollConfiguration' - The configuration for pre-roll ad insertion.
--
-- 'name', 'putPlaybackConfiguration_name' - The identifier for the playback configuration.
--
-- '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>.
--
-- '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.
--
-- 'tags', 'putPlaybackConfiguration_tags' - The tags to assign to the playback configuration.
--
-- '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.
--
-- 'cdnConfiguration', 'putPlaybackConfiguration_cdnConfiguration' - The configuration for using a content delivery network (CDN), like
-- Amazon CloudFront, for content and ad segment management.
newPutPlaybackConfiguration ::
  PutPlaybackConfiguration
newPutPlaybackConfiguration :: PutPlaybackConfiguration
newPutPlaybackConfiguration =
  PutPlaybackConfiguration' :: Maybe Natural
-> Maybe AvailSuppression
-> Maybe Bumper
-> Maybe Text
-> Maybe Text
-> Maybe DashConfigurationForPut
-> Maybe ManifestProcessingRules
-> Maybe LivePreRollConfiguration
-> Maybe Text
-> Maybe (HashMap Text (HashMap Text Text))
-> Maybe Text
-> Maybe (HashMap Text Text)
-> Maybe Text
-> Maybe CdnConfiguration
-> PutPlaybackConfiguration
PutPlaybackConfiguration'
    { $sel:personalizationThresholdSeconds:PutPlaybackConfiguration' :: Maybe Natural
personalizationThresholdSeconds =
        Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:availSuppression:PutPlaybackConfiguration' :: Maybe AvailSuppression
availSuppression = Maybe AvailSuppression
forall a. Maybe a
Prelude.Nothing,
      $sel:bumper:PutPlaybackConfiguration' :: Maybe Bumper
bumper = Maybe Bumper
forall a. Maybe a
Prelude.Nothing,
      $sel:adDecisionServerUrl:PutPlaybackConfiguration' :: Maybe Text
adDecisionServerUrl = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:videoContentSourceUrl:PutPlaybackConfiguration' :: Maybe Text
videoContentSourceUrl = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:dashConfiguration:PutPlaybackConfiguration' :: Maybe DashConfigurationForPut
dashConfiguration = Maybe DashConfigurationForPut
forall a. Maybe a
Prelude.Nothing,
      $sel:manifestProcessingRules:PutPlaybackConfiguration' :: Maybe ManifestProcessingRules
manifestProcessingRules = Maybe ManifestProcessingRules
forall a. Maybe a
Prelude.Nothing,
      $sel:livePreRollConfiguration:PutPlaybackConfiguration' :: Maybe LivePreRollConfiguration
livePreRollConfiguration = Maybe LivePreRollConfiguration
forall a. Maybe a
Prelude.Nothing,
      $sel:name:PutPlaybackConfiguration' :: Maybe Text
name = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:configurationAliases:PutPlaybackConfiguration' :: Maybe (HashMap Text (HashMap Text Text))
configurationAliases = Maybe (HashMap Text (HashMap Text Text))
forall a. Maybe a
Prelude.Nothing,
      $sel:transcodeProfileName:PutPlaybackConfiguration' :: Maybe Text
transcodeProfileName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:tags:PutPlaybackConfiguration' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
forall a. Maybe a
Prelude.Nothing,
      $sel:slateAdUrl:PutPlaybackConfiguration' :: Maybe Text
slateAdUrl = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:cdnConfiguration:PutPlaybackConfiguration' :: Maybe CdnConfiguration
cdnConfiguration = Maybe CdnConfiguration
forall a. Maybe a
Prelude.Nothing
    }

-- | 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 :: (Maybe Natural -> f (Maybe Natural))
-> PutPlaybackConfiguration -> f PutPlaybackConfiguration
putPlaybackConfiguration_personalizationThresholdSeconds = (PutPlaybackConfiguration -> Maybe Natural)
-> (PutPlaybackConfiguration
    -> Maybe Natural -> PutPlaybackConfiguration)
-> Lens
     PutPlaybackConfiguration
     PutPlaybackConfiguration
     (Maybe Natural)
     (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfiguration' {Maybe Natural
personalizationThresholdSeconds :: Maybe Natural
$sel:personalizationThresholdSeconds:PutPlaybackConfiguration' :: PutPlaybackConfiguration -> Maybe Natural
personalizationThresholdSeconds} -> Maybe Natural
personalizationThresholdSeconds) (\s :: PutPlaybackConfiguration
s@PutPlaybackConfiguration' {} Maybe Natural
a -> PutPlaybackConfiguration
s {$sel:personalizationThresholdSeconds:PutPlaybackConfiguration' :: Maybe Natural
personalizationThresholdSeconds = Maybe Natural
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 :: (Maybe AvailSuppression -> f (Maybe AvailSuppression))
-> PutPlaybackConfiguration -> f PutPlaybackConfiguration
putPlaybackConfiguration_availSuppression = (PutPlaybackConfiguration -> Maybe AvailSuppression)
-> (PutPlaybackConfiguration
    -> Maybe AvailSuppression -> PutPlaybackConfiguration)
-> Lens
     PutPlaybackConfiguration
     PutPlaybackConfiguration
     (Maybe AvailSuppression)
     (Maybe AvailSuppression)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfiguration' {Maybe AvailSuppression
availSuppression :: Maybe AvailSuppression
$sel:availSuppression:PutPlaybackConfiguration' :: PutPlaybackConfiguration -> Maybe AvailSuppression
availSuppression} -> Maybe AvailSuppression
availSuppression) (\s :: PutPlaybackConfiguration
s@PutPlaybackConfiguration' {} Maybe AvailSuppression
a -> PutPlaybackConfiguration
s {$sel:availSuppression:PutPlaybackConfiguration' :: Maybe AvailSuppression
availSuppression = Maybe 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 :: (Maybe Bumper -> f (Maybe Bumper))
-> PutPlaybackConfiguration -> f PutPlaybackConfiguration
putPlaybackConfiguration_bumper = (PutPlaybackConfiguration -> Maybe Bumper)
-> (PutPlaybackConfiguration
    -> Maybe Bumper -> PutPlaybackConfiguration)
-> Lens
     PutPlaybackConfiguration
     PutPlaybackConfiguration
     (Maybe Bumper)
     (Maybe Bumper)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfiguration' {Maybe Bumper
bumper :: Maybe Bumper
$sel:bumper:PutPlaybackConfiguration' :: PutPlaybackConfiguration -> Maybe Bumper
bumper} -> Maybe Bumper
bumper) (\s :: PutPlaybackConfiguration
s@PutPlaybackConfiguration' {} Maybe Bumper
a -> PutPlaybackConfiguration
s {$sel:bumper:PutPlaybackConfiguration' :: Maybe Bumper
bumper = Maybe Bumper
a} :: 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.
putPlaybackConfiguration_adDecisionServerUrl :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe Prelude.Text)
putPlaybackConfiguration_adDecisionServerUrl :: (Maybe Text -> f (Maybe Text))
-> PutPlaybackConfiguration -> f PutPlaybackConfiguration
putPlaybackConfiguration_adDecisionServerUrl = (PutPlaybackConfiguration -> Maybe Text)
-> (PutPlaybackConfiguration
    -> Maybe Text -> PutPlaybackConfiguration)
-> Lens
     PutPlaybackConfiguration
     PutPlaybackConfiguration
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfiguration' {Maybe Text
adDecisionServerUrl :: Maybe Text
$sel:adDecisionServerUrl:PutPlaybackConfiguration' :: PutPlaybackConfiguration -> Maybe Text
adDecisionServerUrl} -> Maybe Text
adDecisionServerUrl) (\s :: PutPlaybackConfiguration
s@PutPlaybackConfiguration' {} Maybe Text
a -> PutPlaybackConfiguration
s {$sel:adDecisionServerUrl:PutPlaybackConfiguration' :: Maybe Text
adDecisionServerUrl = Maybe Text
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 :: (Maybe Text -> f (Maybe Text))
-> PutPlaybackConfiguration -> f PutPlaybackConfiguration
putPlaybackConfiguration_videoContentSourceUrl = (PutPlaybackConfiguration -> Maybe Text)
-> (PutPlaybackConfiguration
    -> Maybe Text -> PutPlaybackConfiguration)
-> Lens
     PutPlaybackConfiguration
     PutPlaybackConfiguration
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfiguration' {Maybe Text
videoContentSourceUrl :: Maybe Text
$sel:videoContentSourceUrl:PutPlaybackConfiguration' :: PutPlaybackConfiguration -> Maybe Text
videoContentSourceUrl} -> Maybe Text
videoContentSourceUrl) (\s :: PutPlaybackConfiguration
s@PutPlaybackConfiguration' {} Maybe Text
a -> PutPlaybackConfiguration
s {$sel:videoContentSourceUrl:PutPlaybackConfiguration' :: Maybe Text
videoContentSourceUrl = Maybe Text
a} :: PutPlaybackConfiguration)

-- | The configuration for DASH content.
putPlaybackConfiguration_dashConfiguration :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe DashConfigurationForPut)
putPlaybackConfiguration_dashConfiguration :: (Maybe DashConfigurationForPut
 -> f (Maybe DashConfigurationForPut))
-> PutPlaybackConfiguration -> f PutPlaybackConfiguration
putPlaybackConfiguration_dashConfiguration = (PutPlaybackConfiguration -> Maybe DashConfigurationForPut)
-> (PutPlaybackConfiguration
    -> Maybe DashConfigurationForPut -> PutPlaybackConfiguration)
-> Lens
     PutPlaybackConfiguration
     PutPlaybackConfiguration
     (Maybe DashConfigurationForPut)
     (Maybe DashConfigurationForPut)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfiguration' {Maybe DashConfigurationForPut
dashConfiguration :: Maybe DashConfigurationForPut
$sel:dashConfiguration:PutPlaybackConfiguration' :: PutPlaybackConfiguration -> Maybe DashConfigurationForPut
dashConfiguration} -> Maybe DashConfigurationForPut
dashConfiguration) (\s :: PutPlaybackConfiguration
s@PutPlaybackConfiguration' {} Maybe DashConfigurationForPut
a -> PutPlaybackConfiguration
s {$sel:dashConfiguration:PutPlaybackConfiguration' :: Maybe DashConfigurationForPut
dashConfiguration = Maybe DashConfigurationForPut
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 :: (Maybe ManifestProcessingRules
 -> f (Maybe ManifestProcessingRules))
-> PutPlaybackConfiguration -> f PutPlaybackConfiguration
putPlaybackConfiguration_manifestProcessingRules = (PutPlaybackConfiguration -> Maybe ManifestProcessingRules)
-> (PutPlaybackConfiguration
    -> Maybe ManifestProcessingRules -> PutPlaybackConfiguration)
-> Lens
     PutPlaybackConfiguration
     PutPlaybackConfiguration
     (Maybe ManifestProcessingRules)
     (Maybe ManifestProcessingRules)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfiguration' {Maybe ManifestProcessingRules
manifestProcessingRules :: Maybe ManifestProcessingRules
$sel:manifestProcessingRules:PutPlaybackConfiguration' :: PutPlaybackConfiguration -> Maybe ManifestProcessingRules
manifestProcessingRules} -> Maybe ManifestProcessingRules
manifestProcessingRules) (\s :: PutPlaybackConfiguration
s@PutPlaybackConfiguration' {} Maybe ManifestProcessingRules
a -> PutPlaybackConfiguration
s {$sel:manifestProcessingRules:PutPlaybackConfiguration' :: Maybe ManifestProcessingRules
manifestProcessingRules = Maybe ManifestProcessingRules
a} :: PutPlaybackConfiguration)

-- | The configuration for pre-roll ad insertion.
putPlaybackConfiguration_livePreRollConfiguration :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe LivePreRollConfiguration)
putPlaybackConfiguration_livePreRollConfiguration :: (Maybe LivePreRollConfiguration
 -> f (Maybe LivePreRollConfiguration))
-> PutPlaybackConfiguration -> f PutPlaybackConfiguration
putPlaybackConfiguration_livePreRollConfiguration = (PutPlaybackConfiguration -> Maybe LivePreRollConfiguration)
-> (PutPlaybackConfiguration
    -> Maybe LivePreRollConfiguration -> PutPlaybackConfiguration)
-> Lens
     PutPlaybackConfiguration
     PutPlaybackConfiguration
     (Maybe LivePreRollConfiguration)
     (Maybe LivePreRollConfiguration)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfiguration' {Maybe LivePreRollConfiguration
livePreRollConfiguration :: Maybe LivePreRollConfiguration
$sel:livePreRollConfiguration:PutPlaybackConfiguration' :: PutPlaybackConfiguration -> Maybe LivePreRollConfiguration
livePreRollConfiguration} -> Maybe LivePreRollConfiguration
livePreRollConfiguration) (\s :: PutPlaybackConfiguration
s@PutPlaybackConfiguration' {} Maybe LivePreRollConfiguration
a -> PutPlaybackConfiguration
s {$sel:livePreRollConfiguration:PutPlaybackConfiguration' :: Maybe LivePreRollConfiguration
livePreRollConfiguration = Maybe LivePreRollConfiguration
a} :: PutPlaybackConfiguration)

-- | The identifier for the playback configuration.
putPlaybackConfiguration_name :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe Prelude.Text)
putPlaybackConfiguration_name :: (Maybe Text -> f (Maybe Text))
-> PutPlaybackConfiguration -> f PutPlaybackConfiguration
putPlaybackConfiguration_name = (PutPlaybackConfiguration -> Maybe Text)
-> (PutPlaybackConfiguration
    -> Maybe Text -> PutPlaybackConfiguration)
-> Lens
     PutPlaybackConfiguration
     PutPlaybackConfiguration
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfiguration' {Maybe Text
name :: Maybe Text
$sel:name:PutPlaybackConfiguration' :: PutPlaybackConfiguration -> Maybe Text
name} -> Maybe Text
name) (\s :: PutPlaybackConfiguration
s@PutPlaybackConfiguration' {} Maybe Text
a -> PutPlaybackConfiguration
s {$sel:name:PutPlaybackConfiguration' :: Maybe Text
name = Maybe Text
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 :: (Maybe (HashMap Text (HashMap Text Text))
 -> f (Maybe (HashMap Text (HashMap Text Text))))
-> PutPlaybackConfiguration -> f PutPlaybackConfiguration
putPlaybackConfiguration_configurationAliases = (PutPlaybackConfiguration
 -> Maybe (HashMap Text (HashMap Text Text)))
-> (PutPlaybackConfiguration
    -> Maybe (HashMap Text (HashMap Text Text))
    -> PutPlaybackConfiguration)
-> Lens
     PutPlaybackConfiguration
     PutPlaybackConfiguration
     (Maybe (HashMap Text (HashMap Text Text)))
     (Maybe (HashMap Text (HashMap Text Text)))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfiguration' {Maybe (HashMap Text (HashMap Text Text))
configurationAliases :: Maybe (HashMap Text (HashMap Text Text))
$sel:configurationAliases:PutPlaybackConfiguration' :: PutPlaybackConfiguration
-> Maybe (HashMap Text (HashMap Text Text))
configurationAliases} -> Maybe (HashMap Text (HashMap Text Text))
configurationAliases) (\s :: PutPlaybackConfiguration
s@PutPlaybackConfiguration' {} Maybe (HashMap Text (HashMap Text Text))
a -> PutPlaybackConfiguration
s {$sel:configurationAliases:PutPlaybackConfiguration' :: Maybe (HashMap Text (HashMap Text Text))
configurationAliases = Maybe (HashMap Text (HashMap Text Text))
a} :: PutPlaybackConfiguration) ((Maybe (HashMap Text (HashMap Text Text))
  -> f (Maybe (HashMap Text (HashMap Text Text))))
 -> PutPlaybackConfiguration -> f PutPlaybackConfiguration)
-> ((Maybe (HashMap Text (HashMap Text Text))
     -> f (Maybe (HashMap Text (HashMap Text Text))))
    -> Maybe (HashMap Text (HashMap Text Text))
    -> f (Maybe (HashMap Text (HashMap Text Text))))
-> (Maybe (HashMap Text (HashMap Text Text))
    -> f (Maybe (HashMap Text (HashMap Text Text))))
-> PutPlaybackConfiguration
-> f PutPlaybackConfiguration
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  (HashMap Text (HashMap Text Text))
  (HashMap Text (HashMap Text Text))
  (HashMap Text (HashMap Text Text))
  (HashMap Text (HashMap Text Text))
-> Iso
     (Maybe (HashMap Text (HashMap Text Text)))
     (Maybe (HashMap Text (HashMap Text Text)))
     (Maybe (HashMap Text (HashMap Text Text)))
     (Maybe (HashMap Text (HashMap Text Text)))
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso
  (HashMap Text (HashMap Text Text))
  (HashMap Text (HashMap Text Text))
  (HashMap Text (HashMap Text Text))
  (HashMap Text (HashMap Text Text))
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
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 :: (Maybe Text -> f (Maybe Text))
-> PutPlaybackConfiguration -> f PutPlaybackConfiguration
putPlaybackConfiguration_transcodeProfileName = (PutPlaybackConfiguration -> Maybe Text)
-> (PutPlaybackConfiguration
    -> Maybe Text -> PutPlaybackConfiguration)
-> Lens
     PutPlaybackConfiguration
     PutPlaybackConfiguration
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfiguration' {Maybe Text
transcodeProfileName :: Maybe Text
$sel:transcodeProfileName:PutPlaybackConfiguration' :: PutPlaybackConfiguration -> Maybe Text
transcodeProfileName} -> Maybe Text
transcodeProfileName) (\s :: PutPlaybackConfiguration
s@PutPlaybackConfiguration' {} Maybe Text
a -> PutPlaybackConfiguration
s {$sel:transcodeProfileName:PutPlaybackConfiguration' :: Maybe Text
transcodeProfileName = Maybe Text
a} :: PutPlaybackConfiguration)

-- | The tags to assign to the playback configuration.
putPlaybackConfiguration_tags :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
putPlaybackConfiguration_tags :: (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> PutPlaybackConfiguration -> f PutPlaybackConfiguration
putPlaybackConfiguration_tags = (PutPlaybackConfiguration -> Maybe (HashMap Text Text))
-> (PutPlaybackConfiguration
    -> Maybe (HashMap Text Text) -> PutPlaybackConfiguration)
-> Lens
     PutPlaybackConfiguration
     PutPlaybackConfiguration
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfiguration' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:PutPlaybackConfiguration' :: PutPlaybackConfiguration -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: PutPlaybackConfiguration
s@PutPlaybackConfiguration' {} Maybe (HashMap Text Text)
a -> PutPlaybackConfiguration
s {$sel:tags:PutPlaybackConfiguration' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: PutPlaybackConfiguration) ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
 -> PutPlaybackConfiguration -> f PutPlaybackConfiguration)
-> ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
    -> Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> PutPlaybackConfiguration
-> f PutPlaybackConfiguration
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
-> Iso
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | 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 :: (Maybe Text -> f (Maybe Text))
-> PutPlaybackConfiguration -> f PutPlaybackConfiguration
putPlaybackConfiguration_slateAdUrl = (PutPlaybackConfiguration -> Maybe Text)
-> (PutPlaybackConfiguration
    -> Maybe Text -> PutPlaybackConfiguration)
-> Lens
     PutPlaybackConfiguration
     PutPlaybackConfiguration
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfiguration' {Maybe Text
slateAdUrl :: Maybe Text
$sel:slateAdUrl:PutPlaybackConfiguration' :: PutPlaybackConfiguration -> Maybe Text
slateAdUrl} -> Maybe Text
slateAdUrl) (\s :: PutPlaybackConfiguration
s@PutPlaybackConfiguration' {} Maybe Text
a -> PutPlaybackConfiguration
s {$sel:slateAdUrl:PutPlaybackConfiguration' :: Maybe Text
slateAdUrl = Maybe Text
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 :: (Maybe CdnConfiguration -> f (Maybe CdnConfiguration))
-> PutPlaybackConfiguration -> f PutPlaybackConfiguration
putPlaybackConfiguration_cdnConfiguration = (PutPlaybackConfiguration -> Maybe CdnConfiguration)
-> (PutPlaybackConfiguration
    -> Maybe CdnConfiguration -> PutPlaybackConfiguration)
-> Lens
     PutPlaybackConfiguration
     PutPlaybackConfiguration
     (Maybe CdnConfiguration)
     (Maybe CdnConfiguration)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfiguration' {Maybe CdnConfiguration
cdnConfiguration :: Maybe CdnConfiguration
$sel:cdnConfiguration:PutPlaybackConfiguration' :: PutPlaybackConfiguration -> Maybe CdnConfiguration
cdnConfiguration} -> Maybe CdnConfiguration
cdnConfiguration) (\s :: PutPlaybackConfiguration
s@PutPlaybackConfiguration' {} Maybe CdnConfiguration
a -> PutPlaybackConfiguration
s {$sel:cdnConfiguration:PutPlaybackConfiguration' :: Maybe CdnConfiguration
cdnConfiguration = Maybe CdnConfiguration
a} :: PutPlaybackConfiguration)

instance Core.AWSRequest PutPlaybackConfiguration where
  type
    AWSResponse PutPlaybackConfiguration =
      PutPlaybackConfigurationResponse
  request :: PutPlaybackConfiguration -> Request PutPlaybackConfiguration
request = Service
-> PutPlaybackConfiguration -> Request PutPlaybackConfiguration
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.putJSON Service
defaultService
  response :: Logger
-> Service
-> Proxy PutPlaybackConfiguration
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse PutPlaybackConfiguration)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse PutPlaybackConfiguration))
-> Logger
-> Service
-> Proxy PutPlaybackConfiguration
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse PutPlaybackConfiguration)))
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> Logger
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text
-> Maybe HlsConfiguration
-> Maybe Natural
-> Maybe Text
-> Maybe AvailSuppression
-> Maybe Bumper
-> Maybe Text
-> Maybe Text
-> Maybe DashConfiguration
-> Maybe ManifestProcessingRules
-> Maybe LogConfiguration
-> Maybe LivePreRollConfiguration
-> Maybe Text
-> Maybe Text
-> Maybe (HashMap Text (HashMap Text Text))
-> Maybe Text
-> Maybe (HashMap Text Text)
-> Maybe Text
-> Maybe CdnConfiguration
-> Int
-> PutPlaybackConfigurationResponse
PutPlaybackConfigurationResponse'
            (Maybe Text
 -> Maybe HlsConfiguration
 -> Maybe Natural
 -> Maybe Text
 -> Maybe AvailSuppression
 -> Maybe Bumper
 -> Maybe Text
 -> Maybe Text
 -> Maybe DashConfiguration
 -> Maybe ManifestProcessingRules
 -> Maybe LogConfiguration
 -> Maybe LivePreRollConfiguration
 -> Maybe Text
 -> Maybe Text
 -> Maybe (HashMap Text (HashMap Text Text))
 -> Maybe Text
 -> Maybe (HashMap Text Text)
 -> Maybe Text
 -> Maybe CdnConfiguration
 -> Int
 -> PutPlaybackConfigurationResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe HlsConfiguration
      -> Maybe Natural
      -> Maybe Text
      -> Maybe AvailSuppression
      -> Maybe Bumper
      -> Maybe Text
      -> Maybe Text
      -> Maybe DashConfiguration
      -> Maybe ManifestProcessingRules
      -> Maybe LogConfiguration
      -> Maybe LivePreRollConfiguration
      -> Maybe Text
      -> Maybe Text
      -> Maybe (HashMap Text (HashMap Text Text))
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe CdnConfiguration
      -> Int
      -> PutPlaybackConfigurationResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"PlaybackEndpointPrefix")
            Either
  String
  (Maybe HlsConfiguration
   -> Maybe Natural
   -> Maybe Text
   -> Maybe AvailSuppression
   -> Maybe Bumper
   -> Maybe Text
   -> Maybe Text
   -> Maybe DashConfiguration
   -> Maybe ManifestProcessingRules
   -> Maybe LogConfiguration
   -> Maybe LivePreRollConfiguration
   -> Maybe Text
   -> Maybe Text
   -> Maybe (HashMap Text (HashMap Text Text))
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe CdnConfiguration
   -> Int
   -> PutPlaybackConfigurationResponse)
-> Either String (Maybe HlsConfiguration)
-> Either
     String
     (Maybe Natural
      -> Maybe Text
      -> Maybe AvailSuppression
      -> Maybe Bumper
      -> Maybe Text
      -> Maybe Text
      -> Maybe DashConfiguration
      -> Maybe ManifestProcessingRules
      -> Maybe LogConfiguration
      -> Maybe LivePreRollConfiguration
      -> Maybe Text
      -> Maybe Text
      -> Maybe (HashMap Text (HashMap Text Text))
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe CdnConfiguration
      -> Int
      -> PutPlaybackConfigurationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe HlsConfiguration)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"HlsConfiguration")
            Either
  String
  (Maybe Natural
   -> Maybe Text
   -> Maybe AvailSuppression
   -> Maybe Bumper
   -> Maybe Text
   -> Maybe Text
   -> Maybe DashConfiguration
   -> Maybe ManifestProcessingRules
   -> Maybe LogConfiguration
   -> Maybe LivePreRollConfiguration
   -> Maybe Text
   -> Maybe Text
   -> Maybe (HashMap Text (HashMap Text Text))
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe CdnConfiguration
   -> Int
   -> PutPlaybackConfigurationResponse)
-> Either String (Maybe Natural)
-> Either
     String
     (Maybe Text
      -> Maybe AvailSuppression
      -> Maybe Bumper
      -> Maybe Text
      -> Maybe Text
      -> Maybe DashConfiguration
      -> Maybe ManifestProcessingRules
      -> Maybe LogConfiguration
      -> Maybe LivePreRollConfiguration
      -> Maybe Text
      -> Maybe Text
      -> Maybe (HashMap Text (HashMap Text Text))
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe CdnConfiguration
      -> Int
      -> PutPlaybackConfigurationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Natural)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"PersonalizationThresholdSeconds")
            Either
  String
  (Maybe Text
   -> Maybe AvailSuppression
   -> Maybe Bumper
   -> Maybe Text
   -> Maybe Text
   -> Maybe DashConfiguration
   -> Maybe ManifestProcessingRules
   -> Maybe LogConfiguration
   -> Maybe LivePreRollConfiguration
   -> Maybe Text
   -> Maybe Text
   -> Maybe (HashMap Text (HashMap Text Text))
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe CdnConfiguration
   -> Int
   -> PutPlaybackConfigurationResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe AvailSuppression
      -> Maybe Bumper
      -> Maybe Text
      -> Maybe Text
      -> Maybe DashConfiguration
      -> Maybe ManifestProcessingRules
      -> Maybe LogConfiguration
      -> Maybe LivePreRollConfiguration
      -> Maybe Text
      -> Maybe Text
      -> Maybe (HashMap Text (HashMap Text Text))
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe CdnConfiguration
      -> Int
      -> PutPlaybackConfigurationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"PlaybackConfigurationArn")
            Either
  String
  (Maybe AvailSuppression
   -> Maybe Bumper
   -> Maybe Text
   -> Maybe Text
   -> Maybe DashConfiguration
   -> Maybe ManifestProcessingRules
   -> Maybe LogConfiguration
   -> Maybe LivePreRollConfiguration
   -> Maybe Text
   -> Maybe Text
   -> Maybe (HashMap Text (HashMap Text Text))
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe CdnConfiguration
   -> Int
   -> PutPlaybackConfigurationResponse)
-> Either String (Maybe AvailSuppression)
-> Either
     String
     (Maybe Bumper
      -> Maybe Text
      -> Maybe Text
      -> Maybe DashConfiguration
      -> Maybe ManifestProcessingRules
      -> Maybe LogConfiguration
      -> Maybe LivePreRollConfiguration
      -> Maybe Text
      -> Maybe Text
      -> Maybe (HashMap Text (HashMap Text Text))
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe CdnConfiguration
      -> Int
      -> PutPlaybackConfigurationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe AvailSuppression)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"AvailSuppression")
            Either
  String
  (Maybe Bumper
   -> Maybe Text
   -> Maybe Text
   -> Maybe DashConfiguration
   -> Maybe ManifestProcessingRules
   -> Maybe LogConfiguration
   -> Maybe LivePreRollConfiguration
   -> Maybe Text
   -> Maybe Text
   -> Maybe (HashMap Text (HashMap Text Text))
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe CdnConfiguration
   -> Int
   -> PutPlaybackConfigurationResponse)
-> Either String (Maybe Bumper)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe DashConfiguration
      -> Maybe ManifestProcessingRules
      -> Maybe LogConfiguration
      -> Maybe LivePreRollConfiguration
      -> Maybe Text
      -> Maybe Text
      -> Maybe (HashMap Text (HashMap Text Text))
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe CdnConfiguration
      -> Int
      -> PutPlaybackConfigurationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Bumper)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"Bumper")
            Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe DashConfiguration
   -> Maybe ManifestProcessingRules
   -> Maybe LogConfiguration
   -> Maybe LivePreRollConfiguration
   -> Maybe Text
   -> Maybe Text
   -> Maybe (HashMap Text (HashMap Text Text))
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe CdnConfiguration
   -> Int
   -> PutPlaybackConfigurationResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe DashConfiguration
      -> Maybe ManifestProcessingRules
      -> Maybe LogConfiguration
      -> Maybe LivePreRollConfiguration
      -> Maybe Text
      -> Maybe Text
      -> Maybe (HashMap Text (HashMap Text Text))
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe CdnConfiguration
      -> Int
      -> PutPlaybackConfigurationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"AdDecisionServerUrl")
            Either
  String
  (Maybe Text
   -> Maybe DashConfiguration
   -> Maybe ManifestProcessingRules
   -> Maybe LogConfiguration
   -> Maybe LivePreRollConfiguration
   -> Maybe Text
   -> Maybe Text
   -> Maybe (HashMap Text (HashMap Text Text))
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe CdnConfiguration
   -> Int
   -> PutPlaybackConfigurationResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe DashConfiguration
      -> Maybe ManifestProcessingRules
      -> Maybe LogConfiguration
      -> Maybe LivePreRollConfiguration
      -> Maybe Text
      -> Maybe Text
      -> Maybe (HashMap Text (HashMap Text Text))
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe CdnConfiguration
      -> Int
      -> PutPlaybackConfigurationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"VideoContentSourceUrl")
            Either
  String
  (Maybe DashConfiguration
   -> Maybe ManifestProcessingRules
   -> Maybe LogConfiguration
   -> Maybe LivePreRollConfiguration
   -> Maybe Text
   -> Maybe Text
   -> Maybe (HashMap Text (HashMap Text Text))
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe CdnConfiguration
   -> Int
   -> PutPlaybackConfigurationResponse)
-> Either String (Maybe DashConfiguration)
-> Either
     String
     (Maybe ManifestProcessingRules
      -> Maybe LogConfiguration
      -> Maybe LivePreRollConfiguration
      -> Maybe Text
      -> Maybe Text
      -> Maybe (HashMap Text (HashMap Text Text))
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe CdnConfiguration
      -> Int
      -> PutPlaybackConfigurationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe DashConfiguration)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"DashConfiguration")
            Either
  String
  (Maybe ManifestProcessingRules
   -> Maybe LogConfiguration
   -> Maybe LivePreRollConfiguration
   -> Maybe Text
   -> Maybe Text
   -> Maybe (HashMap Text (HashMap Text Text))
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe CdnConfiguration
   -> Int
   -> PutPlaybackConfigurationResponse)
-> Either String (Maybe ManifestProcessingRules)
-> Either
     String
     (Maybe LogConfiguration
      -> Maybe LivePreRollConfiguration
      -> Maybe Text
      -> Maybe Text
      -> Maybe (HashMap Text (HashMap Text Text))
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe CdnConfiguration
      -> Int
      -> PutPlaybackConfigurationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe ManifestProcessingRules)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"ManifestProcessingRules")
            Either
  String
  (Maybe LogConfiguration
   -> Maybe LivePreRollConfiguration
   -> Maybe Text
   -> Maybe Text
   -> Maybe (HashMap Text (HashMap Text Text))
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe CdnConfiguration
   -> Int
   -> PutPlaybackConfigurationResponse)
-> Either String (Maybe LogConfiguration)
-> Either
     String
     (Maybe LivePreRollConfiguration
      -> Maybe Text
      -> Maybe Text
      -> Maybe (HashMap Text (HashMap Text Text))
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe CdnConfiguration
      -> Int
      -> PutPlaybackConfigurationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe LogConfiguration)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"LogConfiguration")
            Either
  String
  (Maybe LivePreRollConfiguration
   -> Maybe Text
   -> Maybe Text
   -> Maybe (HashMap Text (HashMap Text Text))
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe CdnConfiguration
   -> Int
   -> PutPlaybackConfigurationResponse)
-> Either String (Maybe LivePreRollConfiguration)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe (HashMap Text (HashMap Text Text))
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe CdnConfiguration
      -> Int
      -> PutPlaybackConfigurationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe LivePreRollConfiguration)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"LivePreRollConfiguration")
            Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe (HashMap Text (HashMap Text Text))
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe CdnConfiguration
   -> Int
   -> PutPlaybackConfigurationResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe (HashMap Text (HashMap Text Text))
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe CdnConfiguration
      -> Int
      -> PutPlaybackConfigurationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"Name")
            Either
  String
  (Maybe Text
   -> Maybe (HashMap Text (HashMap Text Text))
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe CdnConfiguration
   -> Int
   -> PutPlaybackConfigurationResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe (HashMap Text (HashMap Text Text))
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe CdnConfiguration
      -> Int
      -> PutPlaybackConfigurationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"SessionInitializationEndpointPrefix")
            Either
  String
  (Maybe (HashMap Text (HashMap Text Text))
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe CdnConfiguration
   -> Int
   -> PutPlaybackConfigurationResponse)
-> Either String (Maybe (HashMap Text (HashMap Text Text)))
-> Either
     String
     (Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe CdnConfiguration
      -> Int
      -> PutPlaybackConfigurationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object
-> Text
-> Either String (Maybe (Maybe (HashMap Text (HashMap Text Text))))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"ConfigurationAliases"
                            Either String (Maybe (Maybe (HashMap Text (HashMap Text Text))))
-> Maybe (HashMap Text (HashMap Text Text))
-> Either String (Maybe (HashMap Text (HashMap Text Text)))
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe (HashMap Text (HashMap Text Text))
forall a. Monoid a => a
Prelude.mempty
                        )
            Either
  String
  (Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe CdnConfiguration
   -> Int
   -> PutPlaybackConfigurationResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe CdnConfiguration
      -> Int
      -> PutPlaybackConfigurationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"TranscodeProfileName")
            Either
  String
  (Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe CdnConfiguration
   -> Int
   -> PutPlaybackConfigurationResponse)
-> Either String (Maybe (HashMap Text Text))
-> Either
     String
     (Maybe Text
      -> Maybe CdnConfiguration
      -> Int
      -> PutPlaybackConfigurationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe (Maybe (HashMap Text Text)))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"tags" Either String (Maybe (Maybe (HashMap Text Text)))
-> Maybe (HashMap Text Text)
-> Either String (Maybe (HashMap Text Text))
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe (HashMap Text Text)
forall a. Monoid a => a
Prelude.mempty)
            Either
  String
  (Maybe Text
   -> Maybe CdnConfiguration
   -> Int
   -> PutPlaybackConfigurationResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe CdnConfiguration -> Int -> PutPlaybackConfigurationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"SlateAdUrl")
            Either
  String
  (Maybe CdnConfiguration -> Int -> PutPlaybackConfigurationResponse)
-> Either String (Maybe CdnConfiguration)
-> Either String (Int -> PutPlaybackConfigurationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe CdnConfiguration)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"CdnConfiguration")
            Either String (Int -> PutPlaybackConfigurationResponse)
-> Either String Int
-> Either String PutPlaybackConfigurationResponse
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Int -> Either String Int
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (Int -> Int
forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable PutPlaybackConfiguration

instance Prelude.NFData PutPlaybackConfiguration

instance Core.ToHeaders PutPlaybackConfiguration where
  toHeaders :: PutPlaybackConfiguration -> ResponseHeaders
toHeaders =
    ResponseHeaders -> PutPlaybackConfiguration -> ResponseHeaders
forall a b. a -> b -> a
Prelude.const
      ( [ResponseHeaders] -> ResponseHeaders
forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Core.ToJSON PutPlaybackConfiguration where
  toJSON :: PutPlaybackConfiguration -> Value
toJSON PutPlaybackConfiguration' {Maybe Natural
Maybe Text
Maybe (HashMap Text Text)
Maybe (HashMap Text (HashMap Text Text))
Maybe Bumper
Maybe CdnConfiguration
Maybe LivePreRollConfiguration
Maybe ManifestProcessingRules
Maybe AvailSuppression
Maybe DashConfigurationForPut
cdnConfiguration :: Maybe CdnConfiguration
slateAdUrl :: Maybe Text
tags :: Maybe (HashMap Text Text)
transcodeProfileName :: Maybe Text
configurationAliases :: Maybe (HashMap Text (HashMap Text Text))
name :: Maybe Text
livePreRollConfiguration :: Maybe LivePreRollConfiguration
manifestProcessingRules :: Maybe ManifestProcessingRules
dashConfiguration :: Maybe DashConfigurationForPut
videoContentSourceUrl :: Maybe Text
adDecisionServerUrl :: Maybe Text
bumper :: Maybe Bumper
availSuppression :: Maybe AvailSuppression
personalizationThresholdSeconds :: Maybe Natural
$sel:cdnConfiguration:PutPlaybackConfiguration' :: PutPlaybackConfiguration -> Maybe CdnConfiguration
$sel:slateAdUrl:PutPlaybackConfiguration' :: PutPlaybackConfiguration -> Maybe Text
$sel:tags:PutPlaybackConfiguration' :: PutPlaybackConfiguration -> Maybe (HashMap Text Text)
$sel:transcodeProfileName:PutPlaybackConfiguration' :: PutPlaybackConfiguration -> Maybe Text
$sel:configurationAliases:PutPlaybackConfiguration' :: PutPlaybackConfiguration
-> Maybe (HashMap Text (HashMap Text Text))
$sel:name:PutPlaybackConfiguration' :: PutPlaybackConfiguration -> Maybe Text
$sel:livePreRollConfiguration:PutPlaybackConfiguration' :: PutPlaybackConfiguration -> Maybe LivePreRollConfiguration
$sel:manifestProcessingRules:PutPlaybackConfiguration' :: PutPlaybackConfiguration -> Maybe ManifestProcessingRules
$sel:dashConfiguration:PutPlaybackConfiguration' :: PutPlaybackConfiguration -> Maybe DashConfigurationForPut
$sel:videoContentSourceUrl:PutPlaybackConfiguration' :: PutPlaybackConfiguration -> Maybe Text
$sel:adDecisionServerUrl:PutPlaybackConfiguration' :: PutPlaybackConfiguration -> Maybe Text
$sel:bumper:PutPlaybackConfiguration' :: PutPlaybackConfiguration -> Maybe Bumper
$sel:availSuppression:PutPlaybackConfiguration' :: PutPlaybackConfiguration -> Maybe AvailSuppression
$sel:personalizationThresholdSeconds:PutPlaybackConfiguration' :: PutPlaybackConfiguration -> Maybe Natural
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Text
"PersonalizationThresholdSeconds" Text -> Natural -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Natural -> Pair) -> Maybe Natural -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
personalizationThresholdSeconds,
            (Text
"AvailSuppression" Text -> AvailSuppression -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (AvailSuppression -> Pair) -> Maybe AvailSuppression -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AvailSuppression
availSuppression,
            (Text
"Bumper" Text -> Bumper -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Bumper -> Pair) -> Maybe Bumper -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bumper
bumper,
            (Text
"AdDecisionServerUrl" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
adDecisionServerUrl,
            (Text
"VideoContentSourceUrl" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
videoContentSourceUrl,
            (Text
"DashConfiguration" Text -> DashConfigurationForPut -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (DashConfigurationForPut -> Pair)
-> Maybe DashConfigurationForPut -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DashConfigurationForPut
dashConfiguration,
            (Text
"ManifestProcessingRules" Text -> ManifestProcessingRules -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (ManifestProcessingRules -> Pair)
-> Maybe ManifestProcessingRules -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ManifestProcessingRules
manifestProcessingRules,
            (Text
"LivePreRollConfiguration" Text -> LivePreRollConfiguration -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (LivePreRollConfiguration -> Pair)
-> Maybe LivePreRollConfiguration -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe LivePreRollConfiguration
livePreRollConfiguration,
            (Text
"Name" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
name,
            (Text
"ConfigurationAliases" Text -> HashMap Text (HashMap Text Text) -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (HashMap Text (HashMap Text Text) -> Pair)
-> Maybe (HashMap Text (HashMap Text Text)) -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (HashMap Text (HashMap Text Text))
configurationAliases,
            (Text
"TranscodeProfileName" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
transcodeProfileName,
            (Text
"tags" Text -> HashMap Text Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (HashMap Text Text -> Pair)
-> Maybe (HashMap Text Text) -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (HashMap Text Text)
tags,
            (Text
"SlateAdUrl" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
slateAdUrl,
            (Text
"CdnConfiguration" Text -> CdnConfiguration -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (CdnConfiguration -> Pair) -> Maybe CdnConfiguration -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe CdnConfiguration
cdnConfiguration
          ]
      )

instance Core.ToPath PutPlaybackConfiguration where
  toPath :: PutPlaybackConfiguration -> ByteString
toPath = ByteString -> PutPlaybackConfiguration -> ByteString
forall a b. a -> b -> a
Prelude.const ByteString
"/playbackConfiguration"

instance Core.ToQuery PutPlaybackConfiguration where
  toQuery :: PutPlaybackConfiguration -> QueryString
toQuery = QueryString -> PutPlaybackConfiguration -> QueryString
forall a b. a -> b -> a
Prelude.const QueryString
forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newPutPlaybackConfigurationResponse' smart constructor.
data PutPlaybackConfigurationResponse = PutPlaybackConfigurationResponse'
  { -- | The URL that the player accesses to get a manifest from AWS Elemental
    -- MediaTailor. This session will use server-side reporting.
    PutPlaybackConfigurationResponse -> Maybe Text
playbackEndpointPrefix :: Prelude.Maybe Prelude.Text,
    -- | The configuration for HLS content.
    PutPlaybackConfigurationResponse -> Maybe HlsConfiguration
hlsConfiguration :: Prelude.Maybe HlsConfiguration,
    -- | 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 -> Maybe Natural
personalizationThresholdSeconds :: Prelude.Maybe Prelude.Natural,
    -- | The Amazon Resource Name (ARN) for the playback configuration.
    PutPlaybackConfigurationResponse -> Maybe Text
playbackConfigurationArn :: 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>.
    PutPlaybackConfigurationResponse -> Maybe AvailSuppression
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>.
    PutPlaybackConfigurationResponse -> Maybe Bumper
bumper :: Prelude.Maybe Bumper,
    -- | 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 -> Maybe Text
adDecisionServerUrl :: Prelude.Maybe Prelude.Text,
    -- | The URL prefix for the parent manifest for the stream, minus the asset
    -- ID. The maximum length is 512 characters.
    PutPlaybackConfigurationResponse -> Maybe Text
videoContentSourceUrl :: Prelude.Maybe Prelude.Text,
    -- | The configuration for DASH content.
    PutPlaybackConfigurationResponse -> Maybe DashConfiguration
dashConfiguration :: Prelude.Maybe DashConfiguration,
    -- | The configuration for manifest processing rules. Manifest processing
    -- rules enable customization of the personalized manifests created by
    -- MediaTailor.
    PutPlaybackConfigurationResponse -> Maybe ManifestProcessingRules
manifestProcessingRules :: Prelude.Maybe ManifestProcessingRules,
    -- | The Amazon CloudWatch log settings for a playback configuration.
    PutPlaybackConfigurationResponse -> Maybe LogConfiguration
logConfiguration :: Prelude.Maybe LogConfiguration,
    -- | The configuration for pre-roll ad insertion.
    PutPlaybackConfigurationResponse -> Maybe LivePreRollConfiguration
livePreRollConfiguration :: Prelude.Maybe LivePreRollConfiguration,
    -- | The identifier for the playback configuration.
    PutPlaybackConfigurationResponse -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | The URL that the player uses to initialize a session that uses
    -- client-side reporting.
    PutPlaybackConfigurationResponse -> Maybe Text
sessionInitializationEndpointPrefix :: Prelude.Maybe Prelude.Text,
    -- | 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
-> Maybe (HashMap Text (HashMap Text Text))
configurationAliases :: Prelude.Maybe (Prelude.HashMap Prelude.Text (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.
    PutPlaybackConfigurationResponse -> Maybe Text
transcodeProfileName :: Prelude.Maybe Prelude.Text,
    -- | The tags assigned to the playback configuration.
    PutPlaybackConfigurationResponse -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text 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.
    PutPlaybackConfigurationResponse -> Maybe Text
slateAdUrl :: Prelude.Maybe Prelude.Text,
    -- | The configuration for using a content delivery network (CDN), like
    -- Amazon CloudFront, for content and ad segment management.
    PutPlaybackConfigurationResponse -> Maybe CdnConfiguration
cdnConfiguration :: Prelude.Maybe CdnConfiguration,
    -- | The response's http status code.
    PutPlaybackConfigurationResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (PutPlaybackConfigurationResponse
-> PutPlaybackConfigurationResponse -> Bool
(PutPlaybackConfigurationResponse
 -> PutPlaybackConfigurationResponse -> Bool)
-> (PutPlaybackConfigurationResponse
    -> PutPlaybackConfigurationResponse -> Bool)
-> Eq PutPlaybackConfigurationResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PutPlaybackConfigurationResponse
-> PutPlaybackConfigurationResponse -> Bool
$c/= :: PutPlaybackConfigurationResponse
-> PutPlaybackConfigurationResponse -> Bool
== :: PutPlaybackConfigurationResponse
-> PutPlaybackConfigurationResponse -> Bool
$c== :: PutPlaybackConfigurationResponse
-> PutPlaybackConfigurationResponse -> Bool
Prelude.Eq, ReadPrec [PutPlaybackConfigurationResponse]
ReadPrec PutPlaybackConfigurationResponse
Int -> ReadS PutPlaybackConfigurationResponse
ReadS [PutPlaybackConfigurationResponse]
(Int -> ReadS PutPlaybackConfigurationResponse)
-> ReadS [PutPlaybackConfigurationResponse]
-> ReadPrec PutPlaybackConfigurationResponse
-> ReadPrec [PutPlaybackConfigurationResponse]
-> Read PutPlaybackConfigurationResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PutPlaybackConfigurationResponse]
$creadListPrec :: ReadPrec [PutPlaybackConfigurationResponse]
readPrec :: ReadPrec PutPlaybackConfigurationResponse
$creadPrec :: ReadPrec PutPlaybackConfigurationResponse
readList :: ReadS [PutPlaybackConfigurationResponse]
$creadList :: ReadS [PutPlaybackConfigurationResponse]
readsPrec :: Int -> ReadS PutPlaybackConfigurationResponse
$creadsPrec :: Int -> ReadS PutPlaybackConfigurationResponse
Prelude.Read, Int -> PutPlaybackConfigurationResponse -> ShowS
[PutPlaybackConfigurationResponse] -> ShowS
PutPlaybackConfigurationResponse -> String
(Int -> PutPlaybackConfigurationResponse -> ShowS)
-> (PutPlaybackConfigurationResponse -> String)
-> ([PutPlaybackConfigurationResponse] -> ShowS)
-> Show PutPlaybackConfigurationResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PutPlaybackConfigurationResponse] -> ShowS
$cshowList :: [PutPlaybackConfigurationResponse] -> ShowS
show :: PutPlaybackConfigurationResponse -> String
$cshow :: PutPlaybackConfigurationResponse -> String
showsPrec :: Int -> PutPlaybackConfigurationResponse -> ShowS
$cshowsPrec :: Int -> PutPlaybackConfigurationResponse -> ShowS
Prelude.Show, (forall x.
 PutPlaybackConfigurationResponse
 -> Rep PutPlaybackConfigurationResponse x)
-> (forall x.
    Rep PutPlaybackConfigurationResponse x
    -> PutPlaybackConfigurationResponse)
-> Generic PutPlaybackConfigurationResponse
forall x.
Rep PutPlaybackConfigurationResponse x
-> PutPlaybackConfigurationResponse
forall x.
PutPlaybackConfigurationResponse
-> Rep PutPlaybackConfigurationResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep PutPlaybackConfigurationResponse x
-> PutPlaybackConfigurationResponse
$cfrom :: forall x.
PutPlaybackConfigurationResponse
-> Rep PutPlaybackConfigurationResponse x
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:
--
-- 'playbackEndpointPrefix', 'putPlaybackConfigurationResponse_playbackEndpointPrefix' - The URL that the player accesses to get a manifest from AWS Elemental
-- MediaTailor. This session will use server-side reporting.
--
-- 'hlsConfiguration', 'putPlaybackConfigurationResponse_hlsConfiguration' - The configuration for HLS content.
--
-- '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) for the playback configuration.
--
-- '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>.
--
-- '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.
--
-- 'videoContentSourceUrl', 'putPlaybackConfigurationResponse_videoContentSourceUrl' - The URL prefix for the parent manifest for the stream, minus the asset
-- ID. The maximum length is 512 characters.
--
-- 'dashConfiguration', 'putPlaybackConfigurationResponse_dashConfiguration' - The configuration for DASH content.
--
-- 'manifestProcessingRules', 'putPlaybackConfigurationResponse_manifestProcessingRules' - The configuration for manifest processing rules. Manifest processing
-- rules enable customization of the personalized manifests created by
-- MediaTailor.
--
-- 'logConfiguration', 'putPlaybackConfigurationResponse_logConfiguration' - The Amazon CloudWatch log settings for a playback configuration.
--
-- 'livePreRollConfiguration', 'putPlaybackConfigurationResponse_livePreRollConfiguration' - The configuration for pre-roll ad insertion.
--
-- 'name', 'putPlaybackConfigurationResponse_name' - The identifier for the playback configuration.
--
-- 'sessionInitializationEndpointPrefix', 'putPlaybackConfigurationResponse_sessionInitializationEndpointPrefix' - The URL that the player uses to initialize a session that uses
-- client-side reporting.
--
-- '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>.
--
-- '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.
--
-- 'tags', 'putPlaybackConfigurationResponse_tags' - The tags assigned to 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 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.
--
-- 'cdnConfiguration', 'putPlaybackConfigurationResponse_cdnConfiguration' - The configuration for using a content delivery network (CDN), like
-- Amazon CloudFront, for content and ad segment management.
--
-- 'httpStatus', 'putPlaybackConfigurationResponse_httpStatus' - The response's http status code.
newPutPlaybackConfigurationResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  PutPlaybackConfigurationResponse
newPutPlaybackConfigurationResponse :: Int -> PutPlaybackConfigurationResponse
newPutPlaybackConfigurationResponse Int
pHttpStatus_ =
  PutPlaybackConfigurationResponse' :: Maybe Text
-> Maybe HlsConfiguration
-> Maybe Natural
-> Maybe Text
-> Maybe AvailSuppression
-> Maybe Bumper
-> Maybe Text
-> Maybe Text
-> Maybe DashConfiguration
-> Maybe ManifestProcessingRules
-> Maybe LogConfiguration
-> Maybe LivePreRollConfiguration
-> Maybe Text
-> Maybe Text
-> Maybe (HashMap Text (HashMap Text Text))
-> Maybe Text
-> Maybe (HashMap Text Text)
-> Maybe Text
-> Maybe CdnConfiguration
-> Int
-> PutPlaybackConfigurationResponse
PutPlaybackConfigurationResponse'
    { $sel:playbackEndpointPrefix:PutPlaybackConfigurationResponse' :: Maybe Text
playbackEndpointPrefix =
        Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:hlsConfiguration:PutPlaybackConfigurationResponse' :: Maybe HlsConfiguration
hlsConfiguration = Maybe HlsConfiguration
forall a. Maybe a
Prelude.Nothing,
      $sel:personalizationThresholdSeconds:PutPlaybackConfigurationResponse' :: Maybe Natural
personalizationThresholdSeconds =
        Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:playbackConfigurationArn:PutPlaybackConfigurationResponse' :: Maybe Text
playbackConfigurationArn =
        Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:availSuppression:PutPlaybackConfigurationResponse' :: Maybe AvailSuppression
availSuppression = Maybe AvailSuppression
forall a. Maybe a
Prelude.Nothing,
      $sel:bumper:PutPlaybackConfigurationResponse' :: Maybe Bumper
bumper = Maybe Bumper
forall a. Maybe a
Prelude.Nothing,
      $sel:adDecisionServerUrl:PutPlaybackConfigurationResponse' :: Maybe Text
adDecisionServerUrl = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:videoContentSourceUrl:PutPlaybackConfigurationResponse' :: Maybe Text
videoContentSourceUrl = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:dashConfiguration:PutPlaybackConfigurationResponse' :: Maybe DashConfiguration
dashConfiguration = Maybe DashConfiguration
forall a. Maybe a
Prelude.Nothing,
      $sel:manifestProcessingRules:PutPlaybackConfigurationResponse' :: Maybe ManifestProcessingRules
manifestProcessingRules = Maybe ManifestProcessingRules
forall a. Maybe a
Prelude.Nothing,
      $sel:logConfiguration:PutPlaybackConfigurationResponse' :: Maybe LogConfiguration
logConfiguration = Maybe LogConfiguration
forall a. Maybe a
Prelude.Nothing,
      $sel:livePreRollConfiguration:PutPlaybackConfigurationResponse' :: Maybe LivePreRollConfiguration
livePreRollConfiguration =
        Maybe LivePreRollConfiguration
forall a. Maybe a
Prelude.Nothing,
      $sel:name:PutPlaybackConfigurationResponse' :: Maybe Text
name = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:sessionInitializationEndpointPrefix:PutPlaybackConfigurationResponse' :: Maybe Text
sessionInitializationEndpointPrefix =
        Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:configurationAliases:PutPlaybackConfigurationResponse' :: Maybe (HashMap Text (HashMap Text Text))
configurationAliases = Maybe (HashMap Text (HashMap Text Text))
forall a. Maybe a
Prelude.Nothing,
      $sel:transcodeProfileName:PutPlaybackConfigurationResponse' :: Maybe Text
transcodeProfileName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:tags:PutPlaybackConfigurationResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
forall a. Maybe a
Prelude.Nothing,
      $sel:slateAdUrl:PutPlaybackConfigurationResponse' :: Maybe Text
slateAdUrl = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:cdnConfiguration:PutPlaybackConfigurationResponse' :: Maybe CdnConfiguration
cdnConfiguration = Maybe CdnConfiguration
forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:PutPlaybackConfigurationResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The URL that the player accesses to get a manifest from AWS Elemental
-- MediaTailor. This session will use server-side reporting.
putPlaybackConfigurationResponse_playbackEndpointPrefix :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)
putPlaybackConfigurationResponse_playbackEndpointPrefix :: (Maybe Text -> f (Maybe Text))
-> PutPlaybackConfigurationResponse
-> f PutPlaybackConfigurationResponse
putPlaybackConfigurationResponse_playbackEndpointPrefix = (PutPlaybackConfigurationResponse -> Maybe Text)
-> (PutPlaybackConfigurationResponse
    -> Maybe Text -> PutPlaybackConfigurationResponse)
-> Lens
     PutPlaybackConfigurationResponse
     PutPlaybackConfigurationResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfigurationResponse' {Maybe Text
playbackEndpointPrefix :: Maybe Text
$sel:playbackEndpointPrefix:PutPlaybackConfigurationResponse' :: PutPlaybackConfigurationResponse -> Maybe Text
playbackEndpointPrefix} -> Maybe Text
playbackEndpointPrefix) (\s :: PutPlaybackConfigurationResponse
s@PutPlaybackConfigurationResponse' {} Maybe Text
a -> PutPlaybackConfigurationResponse
s {$sel:playbackEndpointPrefix:PutPlaybackConfigurationResponse' :: Maybe Text
playbackEndpointPrefix = Maybe Text
a} :: PutPlaybackConfigurationResponse)

-- | The configuration for HLS content.
putPlaybackConfigurationResponse_hlsConfiguration :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe HlsConfiguration)
putPlaybackConfigurationResponse_hlsConfiguration :: (Maybe HlsConfiguration -> f (Maybe HlsConfiguration))
-> PutPlaybackConfigurationResponse
-> f PutPlaybackConfigurationResponse
putPlaybackConfigurationResponse_hlsConfiguration = (PutPlaybackConfigurationResponse -> Maybe HlsConfiguration)
-> (PutPlaybackConfigurationResponse
    -> Maybe HlsConfiguration -> PutPlaybackConfigurationResponse)
-> Lens
     PutPlaybackConfigurationResponse
     PutPlaybackConfigurationResponse
     (Maybe HlsConfiguration)
     (Maybe HlsConfiguration)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfigurationResponse' {Maybe HlsConfiguration
hlsConfiguration :: Maybe HlsConfiguration
$sel:hlsConfiguration:PutPlaybackConfigurationResponse' :: PutPlaybackConfigurationResponse -> Maybe HlsConfiguration
hlsConfiguration} -> Maybe HlsConfiguration
hlsConfiguration) (\s :: PutPlaybackConfigurationResponse
s@PutPlaybackConfigurationResponse' {} Maybe HlsConfiguration
a -> PutPlaybackConfigurationResponse
s {$sel:hlsConfiguration:PutPlaybackConfigurationResponse' :: Maybe HlsConfiguration
hlsConfiguration = Maybe HlsConfiguration
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 :: (Maybe Natural -> f (Maybe Natural))
-> PutPlaybackConfigurationResponse
-> f PutPlaybackConfigurationResponse
putPlaybackConfigurationResponse_personalizationThresholdSeconds = (PutPlaybackConfigurationResponse -> Maybe Natural)
-> (PutPlaybackConfigurationResponse
    -> Maybe Natural -> PutPlaybackConfigurationResponse)
-> Lens
     PutPlaybackConfigurationResponse
     PutPlaybackConfigurationResponse
     (Maybe Natural)
     (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfigurationResponse' {Maybe Natural
personalizationThresholdSeconds :: Maybe Natural
$sel:personalizationThresholdSeconds:PutPlaybackConfigurationResponse' :: PutPlaybackConfigurationResponse -> Maybe Natural
personalizationThresholdSeconds} -> Maybe Natural
personalizationThresholdSeconds) (\s :: PutPlaybackConfigurationResponse
s@PutPlaybackConfigurationResponse' {} Maybe Natural
a -> PutPlaybackConfigurationResponse
s {$sel:personalizationThresholdSeconds:PutPlaybackConfigurationResponse' :: Maybe Natural
personalizationThresholdSeconds = Maybe Natural
a} :: PutPlaybackConfigurationResponse)

-- | The Amazon Resource Name (ARN) for the playback configuration.
putPlaybackConfigurationResponse_playbackConfigurationArn :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)
putPlaybackConfigurationResponse_playbackConfigurationArn :: (Maybe Text -> f (Maybe Text))
-> PutPlaybackConfigurationResponse
-> f PutPlaybackConfigurationResponse
putPlaybackConfigurationResponse_playbackConfigurationArn = (PutPlaybackConfigurationResponse -> Maybe Text)
-> (PutPlaybackConfigurationResponse
    -> Maybe Text -> PutPlaybackConfigurationResponse)
-> Lens
     PutPlaybackConfigurationResponse
     PutPlaybackConfigurationResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfigurationResponse' {Maybe Text
playbackConfigurationArn :: Maybe Text
$sel:playbackConfigurationArn:PutPlaybackConfigurationResponse' :: PutPlaybackConfigurationResponse -> Maybe Text
playbackConfigurationArn} -> Maybe Text
playbackConfigurationArn) (\s :: PutPlaybackConfigurationResponse
s@PutPlaybackConfigurationResponse' {} Maybe Text
a -> PutPlaybackConfigurationResponse
s {$sel:playbackConfigurationArn:PutPlaybackConfigurationResponse' :: Maybe Text
playbackConfigurationArn = Maybe Text
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 :: (Maybe AvailSuppression -> f (Maybe AvailSuppression))
-> PutPlaybackConfigurationResponse
-> f PutPlaybackConfigurationResponse
putPlaybackConfigurationResponse_availSuppression = (PutPlaybackConfigurationResponse -> Maybe AvailSuppression)
-> (PutPlaybackConfigurationResponse
    -> Maybe AvailSuppression -> PutPlaybackConfigurationResponse)
-> Lens
     PutPlaybackConfigurationResponse
     PutPlaybackConfigurationResponse
     (Maybe AvailSuppression)
     (Maybe AvailSuppression)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfigurationResponse' {Maybe AvailSuppression
availSuppression :: Maybe AvailSuppression
$sel:availSuppression:PutPlaybackConfigurationResponse' :: PutPlaybackConfigurationResponse -> Maybe AvailSuppression
availSuppression} -> Maybe AvailSuppression
availSuppression) (\s :: PutPlaybackConfigurationResponse
s@PutPlaybackConfigurationResponse' {} Maybe AvailSuppression
a -> PutPlaybackConfigurationResponse
s {$sel:availSuppression:PutPlaybackConfigurationResponse' :: Maybe AvailSuppression
availSuppression = Maybe 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 :: (Maybe Bumper -> f (Maybe Bumper))
-> PutPlaybackConfigurationResponse
-> f PutPlaybackConfigurationResponse
putPlaybackConfigurationResponse_bumper = (PutPlaybackConfigurationResponse -> Maybe Bumper)
-> (PutPlaybackConfigurationResponse
    -> Maybe Bumper -> PutPlaybackConfigurationResponse)
-> Lens
     PutPlaybackConfigurationResponse
     PutPlaybackConfigurationResponse
     (Maybe Bumper)
     (Maybe Bumper)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfigurationResponse' {Maybe Bumper
bumper :: Maybe Bumper
$sel:bumper:PutPlaybackConfigurationResponse' :: PutPlaybackConfigurationResponse -> Maybe Bumper
bumper} -> Maybe Bumper
bumper) (\s :: PutPlaybackConfigurationResponse
s@PutPlaybackConfigurationResponse' {} Maybe Bumper
a -> PutPlaybackConfigurationResponse
s {$sel:bumper:PutPlaybackConfigurationResponse' :: Maybe Bumper
bumper = Maybe Bumper
a} :: 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.
putPlaybackConfigurationResponse_adDecisionServerUrl :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)
putPlaybackConfigurationResponse_adDecisionServerUrl :: (Maybe Text -> f (Maybe Text))
-> PutPlaybackConfigurationResponse
-> f PutPlaybackConfigurationResponse
putPlaybackConfigurationResponse_adDecisionServerUrl = (PutPlaybackConfigurationResponse -> Maybe Text)
-> (PutPlaybackConfigurationResponse
    -> Maybe Text -> PutPlaybackConfigurationResponse)
-> Lens
     PutPlaybackConfigurationResponse
     PutPlaybackConfigurationResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfigurationResponse' {Maybe Text
adDecisionServerUrl :: Maybe Text
$sel:adDecisionServerUrl:PutPlaybackConfigurationResponse' :: PutPlaybackConfigurationResponse -> Maybe Text
adDecisionServerUrl} -> Maybe Text
adDecisionServerUrl) (\s :: PutPlaybackConfigurationResponse
s@PutPlaybackConfigurationResponse' {} Maybe Text
a -> PutPlaybackConfigurationResponse
s {$sel:adDecisionServerUrl:PutPlaybackConfigurationResponse' :: Maybe Text
adDecisionServerUrl = Maybe Text
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 :: (Maybe Text -> f (Maybe Text))
-> PutPlaybackConfigurationResponse
-> f PutPlaybackConfigurationResponse
putPlaybackConfigurationResponse_videoContentSourceUrl = (PutPlaybackConfigurationResponse -> Maybe Text)
-> (PutPlaybackConfigurationResponse
    -> Maybe Text -> PutPlaybackConfigurationResponse)
-> Lens
     PutPlaybackConfigurationResponse
     PutPlaybackConfigurationResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfigurationResponse' {Maybe Text
videoContentSourceUrl :: Maybe Text
$sel:videoContentSourceUrl:PutPlaybackConfigurationResponse' :: PutPlaybackConfigurationResponse -> Maybe Text
videoContentSourceUrl} -> Maybe Text
videoContentSourceUrl) (\s :: PutPlaybackConfigurationResponse
s@PutPlaybackConfigurationResponse' {} Maybe Text
a -> PutPlaybackConfigurationResponse
s {$sel:videoContentSourceUrl:PutPlaybackConfigurationResponse' :: Maybe Text
videoContentSourceUrl = Maybe Text
a} :: PutPlaybackConfigurationResponse)

-- | The configuration for DASH content.
putPlaybackConfigurationResponse_dashConfiguration :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe DashConfiguration)
putPlaybackConfigurationResponse_dashConfiguration :: (Maybe DashConfiguration -> f (Maybe DashConfiguration))
-> PutPlaybackConfigurationResponse
-> f PutPlaybackConfigurationResponse
putPlaybackConfigurationResponse_dashConfiguration = (PutPlaybackConfigurationResponse -> Maybe DashConfiguration)
-> (PutPlaybackConfigurationResponse
    -> Maybe DashConfiguration -> PutPlaybackConfigurationResponse)
-> Lens
     PutPlaybackConfigurationResponse
     PutPlaybackConfigurationResponse
     (Maybe DashConfiguration)
     (Maybe DashConfiguration)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfigurationResponse' {Maybe DashConfiguration
dashConfiguration :: Maybe DashConfiguration
$sel:dashConfiguration:PutPlaybackConfigurationResponse' :: PutPlaybackConfigurationResponse -> Maybe DashConfiguration
dashConfiguration} -> Maybe DashConfiguration
dashConfiguration) (\s :: PutPlaybackConfigurationResponse
s@PutPlaybackConfigurationResponse' {} Maybe DashConfiguration
a -> PutPlaybackConfigurationResponse
s {$sel:dashConfiguration:PutPlaybackConfigurationResponse' :: Maybe DashConfiguration
dashConfiguration = Maybe DashConfiguration
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 :: (Maybe ManifestProcessingRules
 -> f (Maybe ManifestProcessingRules))
-> PutPlaybackConfigurationResponse
-> f PutPlaybackConfigurationResponse
putPlaybackConfigurationResponse_manifestProcessingRules = (PutPlaybackConfigurationResponse -> Maybe ManifestProcessingRules)
-> (PutPlaybackConfigurationResponse
    -> Maybe ManifestProcessingRules
    -> PutPlaybackConfigurationResponse)
-> Lens
     PutPlaybackConfigurationResponse
     PutPlaybackConfigurationResponse
     (Maybe ManifestProcessingRules)
     (Maybe ManifestProcessingRules)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfigurationResponse' {Maybe ManifestProcessingRules
manifestProcessingRules :: Maybe ManifestProcessingRules
$sel:manifestProcessingRules:PutPlaybackConfigurationResponse' :: PutPlaybackConfigurationResponse -> Maybe ManifestProcessingRules
manifestProcessingRules} -> Maybe ManifestProcessingRules
manifestProcessingRules) (\s :: PutPlaybackConfigurationResponse
s@PutPlaybackConfigurationResponse' {} Maybe ManifestProcessingRules
a -> PutPlaybackConfigurationResponse
s {$sel:manifestProcessingRules:PutPlaybackConfigurationResponse' :: Maybe ManifestProcessingRules
manifestProcessingRules = Maybe ManifestProcessingRules
a} :: PutPlaybackConfigurationResponse)

-- | The Amazon CloudWatch log settings for a playback configuration.
putPlaybackConfigurationResponse_logConfiguration :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe LogConfiguration)
putPlaybackConfigurationResponse_logConfiguration :: (Maybe LogConfiguration -> f (Maybe LogConfiguration))
-> PutPlaybackConfigurationResponse
-> f PutPlaybackConfigurationResponse
putPlaybackConfigurationResponse_logConfiguration = (PutPlaybackConfigurationResponse -> Maybe LogConfiguration)
-> (PutPlaybackConfigurationResponse
    -> Maybe LogConfiguration -> PutPlaybackConfigurationResponse)
-> Lens
     PutPlaybackConfigurationResponse
     PutPlaybackConfigurationResponse
     (Maybe LogConfiguration)
     (Maybe LogConfiguration)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfigurationResponse' {Maybe LogConfiguration
logConfiguration :: Maybe LogConfiguration
$sel:logConfiguration:PutPlaybackConfigurationResponse' :: PutPlaybackConfigurationResponse -> Maybe LogConfiguration
logConfiguration} -> Maybe LogConfiguration
logConfiguration) (\s :: PutPlaybackConfigurationResponse
s@PutPlaybackConfigurationResponse' {} Maybe LogConfiguration
a -> PutPlaybackConfigurationResponse
s {$sel:logConfiguration:PutPlaybackConfigurationResponse' :: Maybe LogConfiguration
logConfiguration = Maybe LogConfiguration
a} :: PutPlaybackConfigurationResponse)

-- | The configuration for pre-roll ad insertion.
putPlaybackConfigurationResponse_livePreRollConfiguration :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe LivePreRollConfiguration)
putPlaybackConfigurationResponse_livePreRollConfiguration :: (Maybe LivePreRollConfiguration
 -> f (Maybe LivePreRollConfiguration))
-> PutPlaybackConfigurationResponse
-> f PutPlaybackConfigurationResponse
putPlaybackConfigurationResponse_livePreRollConfiguration = (PutPlaybackConfigurationResponse
 -> Maybe LivePreRollConfiguration)
-> (PutPlaybackConfigurationResponse
    -> Maybe LivePreRollConfiguration
    -> PutPlaybackConfigurationResponse)
-> Lens
     PutPlaybackConfigurationResponse
     PutPlaybackConfigurationResponse
     (Maybe LivePreRollConfiguration)
     (Maybe LivePreRollConfiguration)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfigurationResponse' {Maybe LivePreRollConfiguration
livePreRollConfiguration :: Maybe LivePreRollConfiguration
$sel:livePreRollConfiguration:PutPlaybackConfigurationResponse' :: PutPlaybackConfigurationResponse -> Maybe LivePreRollConfiguration
livePreRollConfiguration} -> Maybe LivePreRollConfiguration
livePreRollConfiguration) (\s :: PutPlaybackConfigurationResponse
s@PutPlaybackConfigurationResponse' {} Maybe LivePreRollConfiguration
a -> PutPlaybackConfigurationResponse
s {$sel:livePreRollConfiguration:PutPlaybackConfigurationResponse' :: Maybe LivePreRollConfiguration
livePreRollConfiguration = Maybe LivePreRollConfiguration
a} :: PutPlaybackConfigurationResponse)

-- | The identifier for the playback configuration.
putPlaybackConfigurationResponse_name :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)
putPlaybackConfigurationResponse_name :: (Maybe Text -> f (Maybe Text))
-> PutPlaybackConfigurationResponse
-> f PutPlaybackConfigurationResponse
putPlaybackConfigurationResponse_name = (PutPlaybackConfigurationResponse -> Maybe Text)
-> (PutPlaybackConfigurationResponse
    -> Maybe Text -> PutPlaybackConfigurationResponse)
-> Lens
     PutPlaybackConfigurationResponse
     PutPlaybackConfigurationResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfigurationResponse' {Maybe Text
name :: Maybe Text
$sel:name:PutPlaybackConfigurationResponse' :: PutPlaybackConfigurationResponse -> Maybe Text
name} -> Maybe Text
name) (\s :: PutPlaybackConfigurationResponse
s@PutPlaybackConfigurationResponse' {} Maybe Text
a -> PutPlaybackConfigurationResponse
s {$sel:name:PutPlaybackConfigurationResponse' :: Maybe Text
name = Maybe Text
a} :: PutPlaybackConfigurationResponse)

-- | The URL that the player uses to initialize a session that uses
-- client-side reporting.
putPlaybackConfigurationResponse_sessionInitializationEndpointPrefix :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)
putPlaybackConfigurationResponse_sessionInitializationEndpointPrefix :: (Maybe Text -> f (Maybe Text))
-> PutPlaybackConfigurationResponse
-> f PutPlaybackConfigurationResponse
putPlaybackConfigurationResponse_sessionInitializationEndpointPrefix = (PutPlaybackConfigurationResponse -> Maybe Text)
-> (PutPlaybackConfigurationResponse
    -> Maybe Text -> PutPlaybackConfigurationResponse)
-> Lens
     PutPlaybackConfigurationResponse
     PutPlaybackConfigurationResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfigurationResponse' {Maybe Text
sessionInitializationEndpointPrefix :: Maybe Text
$sel:sessionInitializationEndpointPrefix:PutPlaybackConfigurationResponse' :: PutPlaybackConfigurationResponse -> Maybe Text
sessionInitializationEndpointPrefix} -> Maybe Text
sessionInitializationEndpointPrefix) (\s :: PutPlaybackConfigurationResponse
s@PutPlaybackConfigurationResponse' {} Maybe Text
a -> PutPlaybackConfigurationResponse
s {$sel:sessionInitializationEndpointPrefix:PutPlaybackConfigurationResponse' :: Maybe Text
sessionInitializationEndpointPrefix = Maybe Text
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 :: (Maybe (HashMap Text (HashMap Text Text))
 -> f (Maybe (HashMap Text (HashMap Text Text))))
-> PutPlaybackConfigurationResponse
-> f PutPlaybackConfigurationResponse
putPlaybackConfigurationResponse_configurationAliases = (PutPlaybackConfigurationResponse
 -> Maybe (HashMap Text (HashMap Text Text)))
-> (PutPlaybackConfigurationResponse
    -> Maybe (HashMap Text (HashMap Text Text))
    -> PutPlaybackConfigurationResponse)
-> Lens
     PutPlaybackConfigurationResponse
     PutPlaybackConfigurationResponse
     (Maybe (HashMap Text (HashMap Text Text)))
     (Maybe (HashMap Text (HashMap Text Text)))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfigurationResponse' {Maybe (HashMap Text (HashMap Text Text))
configurationAliases :: Maybe (HashMap Text (HashMap Text Text))
$sel:configurationAliases:PutPlaybackConfigurationResponse' :: PutPlaybackConfigurationResponse
-> Maybe (HashMap Text (HashMap Text Text))
configurationAliases} -> Maybe (HashMap Text (HashMap Text Text))
configurationAliases) (\s :: PutPlaybackConfigurationResponse
s@PutPlaybackConfigurationResponse' {} Maybe (HashMap Text (HashMap Text Text))
a -> PutPlaybackConfigurationResponse
s {$sel:configurationAliases:PutPlaybackConfigurationResponse' :: Maybe (HashMap Text (HashMap Text Text))
configurationAliases = Maybe (HashMap Text (HashMap Text Text))
a} :: PutPlaybackConfigurationResponse) ((Maybe (HashMap Text (HashMap Text Text))
  -> f (Maybe (HashMap Text (HashMap Text Text))))
 -> PutPlaybackConfigurationResponse
 -> f PutPlaybackConfigurationResponse)
-> ((Maybe (HashMap Text (HashMap Text Text))
     -> f (Maybe (HashMap Text (HashMap Text Text))))
    -> Maybe (HashMap Text (HashMap Text Text))
    -> f (Maybe (HashMap Text (HashMap Text Text))))
-> (Maybe (HashMap Text (HashMap Text Text))
    -> f (Maybe (HashMap Text (HashMap Text Text))))
-> PutPlaybackConfigurationResponse
-> f PutPlaybackConfigurationResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  (HashMap Text (HashMap Text Text))
  (HashMap Text (HashMap Text Text))
  (HashMap Text (HashMap Text Text))
  (HashMap Text (HashMap Text Text))
-> Iso
     (Maybe (HashMap Text (HashMap Text Text)))
     (Maybe (HashMap Text (HashMap Text Text)))
     (Maybe (HashMap Text (HashMap Text Text)))
     (Maybe (HashMap Text (HashMap Text Text)))
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso
  (HashMap Text (HashMap Text Text))
  (HashMap Text (HashMap Text Text))
  (HashMap Text (HashMap Text Text))
  (HashMap Text (HashMap Text Text))
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
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 :: (Maybe Text -> f (Maybe Text))
-> PutPlaybackConfigurationResponse
-> f PutPlaybackConfigurationResponse
putPlaybackConfigurationResponse_transcodeProfileName = (PutPlaybackConfigurationResponse -> Maybe Text)
-> (PutPlaybackConfigurationResponse
    -> Maybe Text -> PutPlaybackConfigurationResponse)
-> Lens
     PutPlaybackConfigurationResponse
     PutPlaybackConfigurationResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfigurationResponse' {Maybe Text
transcodeProfileName :: Maybe Text
$sel:transcodeProfileName:PutPlaybackConfigurationResponse' :: PutPlaybackConfigurationResponse -> Maybe Text
transcodeProfileName} -> Maybe Text
transcodeProfileName) (\s :: PutPlaybackConfigurationResponse
s@PutPlaybackConfigurationResponse' {} Maybe Text
a -> PutPlaybackConfigurationResponse
s {$sel:transcodeProfileName:PutPlaybackConfigurationResponse' :: Maybe Text
transcodeProfileName = Maybe Text
a} :: PutPlaybackConfigurationResponse)

-- | The tags assigned to the playback configuration.
putPlaybackConfigurationResponse_tags :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
putPlaybackConfigurationResponse_tags :: (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> PutPlaybackConfigurationResponse
-> f PutPlaybackConfigurationResponse
putPlaybackConfigurationResponse_tags = (PutPlaybackConfigurationResponse -> Maybe (HashMap Text Text))
-> (PutPlaybackConfigurationResponse
    -> Maybe (HashMap Text Text) -> PutPlaybackConfigurationResponse)
-> Lens
     PutPlaybackConfigurationResponse
     PutPlaybackConfigurationResponse
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfigurationResponse' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:PutPlaybackConfigurationResponse' :: PutPlaybackConfigurationResponse -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: PutPlaybackConfigurationResponse
s@PutPlaybackConfigurationResponse' {} Maybe (HashMap Text Text)
a -> PutPlaybackConfigurationResponse
s {$sel:tags:PutPlaybackConfigurationResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: PutPlaybackConfigurationResponse) ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
 -> PutPlaybackConfigurationResponse
 -> f PutPlaybackConfigurationResponse)
-> ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
    -> Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> PutPlaybackConfigurationResponse
-> f PutPlaybackConfigurationResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
-> Iso
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | 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.
putPlaybackConfigurationResponse_slateAdUrl :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)
putPlaybackConfigurationResponse_slateAdUrl :: (Maybe Text -> f (Maybe Text))
-> PutPlaybackConfigurationResponse
-> f PutPlaybackConfigurationResponse
putPlaybackConfigurationResponse_slateAdUrl = (PutPlaybackConfigurationResponse -> Maybe Text)
-> (PutPlaybackConfigurationResponse
    -> Maybe Text -> PutPlaybackConfigurationResponse)
-> Lens
     PutPlaybackConfigurationResponse
     PutPlaybackConfigurationResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfigurationResponse' {Maybe Text
slateAdUrl :: Maybe Text
$sel:slateAdUrl:PutPlaybackConfigurationResponse' :: PutPlaybackConfigurationResponse -> Maybe Text
slateAdUrl} -> Maybe Text
slateAdUrl) (\s :: PutPlaybackConfigurationResponse
s@PutPlaybackConfigurationResponse' {} Maybe Text
a -> PutPlaybackConfigurationResponse
s {$sel:slateAdUrl:PutPlaybackConfigurationResponse' :: Maybe Text
slateAdUrl = Maybe Text
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 :: (Maybe CdnConfiguration -> f (Maybe CdnConfiguration))
-> PutPlaybackConfigurationResponse
-> f PutPlaybackConfigurationResponse
putPlaybackConfigurationResponse_cdnConfiguration = (PutPlaybackConfigurationResponse -> Maybe CdnConfiguration)
-> (PutPlaybackConfigurationResponse
    -> Maybe CdnConfiguration -> PutPlaybackConfigurationResponse)
-> Lens
     PutPlaybackConfigurationResponse
     PutPlaybackConfigurationResponse
     (Maybe CdnConfiguration)
     (Maybe CdnConfiguration)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfigurationResponse' {Maybe CdnConfiguration
cdnConfiguration :: Maybe CdnConfiguration
$sel:cdnConfiguration:PutPlaybackConfigurationResponse' :: PutPlaybackConfigurationResponse -> Maybe CdnConfiguration
cdnConfiguration} -> Maybe CdnConfiguration
cdnConfiguration) (\s :: PutPlaybackConfigurationResponse
s@PutPlaybackConfigurationResponse' {} Maybe CdnConfiguration
a -> PutPlaybackConfigurationResponse
s {$sel:cdnConfiguration:PutPlaybackConfigurationResponse' :: Maybe CdnConfiguration
cdnConfiguration = Maybe CdnConfiguration
a} :: PutPlaybackConfigurationResponse)

-- | The response's http status code.
putPlaybackConfigurationResponse_httpStatus :: Lens.Lens' PutPlaybackConfigurationResponse Prelude.Int
putPlaybackConfigurationResponse_httpStatus :: (Int -> f Int)
-> PutPlaybackConfigurationResponse
-> f PutPlaybackConfigurationResponse
putPlaybackConfigurationResponse_httpStatus = (PutPlaybackConfigurationResponse -> Int)
-> (PutPlaybackConfigurationResponse
    -> Int -> PutPlaybackConfigurationResponse)
-> Lens
     PutPlaybackConfigurationResponse
     PutPlaybackConfigurationResponse
     Int
     Int
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutPlaybackConfigurationResponse' {Int
httpStatus :: Int
$sel:httpStatus:PutPlaybackConfigurationResponse' :: PutPlaybackConfigurationResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: PutPlaybackConfigurationResponse
s@PutPlaybackConfigurationResponse' {} Int
a -> PutPlaybackConfigurationResponse
s {$sel:httpStatus:PutPlaybackConfigurationResponse' :: Int
httpStatus = Int
a} :: PutPlaybackConfigurationResponse)

instance
  Prelude.NFData
    PutPlaybackConfigurationResponse