{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.MediaTailor.GetPlaybackConfiguration
-- Copyright   : (c) 2013-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)
--
-- Returns the playback configuration for the specified name.
module Amazonka.MediaTailor.GetPlaybackConfiguration
  ( -- * Creating a Request
    GetPlaybackConfiguration (..),
    newGetPlaybackConfiguration,

    -- * Request Lenses
    getPlaybackConfiguration_name,

    -- * Destructuring the Response
    GetPlaybackConfigurationResponse (..),
    newGetPlaybackConfigurationResponse,

    -- * Response Lenses
    getPlaybackConfigurationResponse_playbackEndpointPrefix,
    getPlaybackConfigurationResponse_hlsConfiguration,
    getPlaybackConfigurationResponse_personalizationThresholdSeconds,
    getPlaybackConfigurationResponse_playbackConfigurationArn,
    getPlaybackConfigurationResponse_availSuppression,
    getPlaybackConfigurationResponse_bumper,
    getPlaybackConfigurationResponse_adDecisionServerUrl,
    getPlaybackConfigurationResponse_videoContentSourceUrl,
    getPlaybackConfigurationResponse_dashConfiguration,
    getPlaybackConfigurationResponse_manifestProcessingRules,
    getPlaybackConfigurationResponse_logConfiguration,
    getPlaybackConfigurationResponse_livePreRollConfiguration,
    getPlaybackConfigurationResponse_name,
    getPlaybackConfigurationResponse_sessionInitializationEndpointPrefix,
    getPlaybackConfigurationResponse_configurationAliases,
    getPlaybackConfigurationResponse_transcodeProfileName,
    getPlaybackConfigurationResponse_tags,
    getPlaybackConfigurationResponse_slateAdUrl,
    getPlaybackConfigurationResponse_cdnConfiguration,
    getPlaybackConfigurationResponse_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:/ 'newGetPlaybackConfiguration' smart constructor.
data GetPlaybackConfiguration = GetPlaybackConfiguration'
  { -- | The identifier for the playback configuration.
    GetPlaybackConfiguration -> Text
name :: Prelude.Text
  }
  deriving (GetPlaybackConfiguration -> GetPlaybackConfiguration -> Bool
(GetPlaybackConfiguration -> GetPlaybackConfiguration -> Bool)
-> (GetPlaybackConfiguration -> GetPlaybackConfiguration -> Bool)
-> Eq GetPlaybackConfiguration
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetPlaybackConfiguration -> GetPlaybackConfiguration -> Bool
$c/= :: GetPlaybackConfiguration -> GetPlaybackConfiguration -> Bool
== :: GetPlaybackConfiguration -> GetPlaybackConfiguration -> Bool
$c== :: GetPlaybackConfiguration -> GetPlaybackConfiguration -> Bool
Prelude.Eq, ReadPrec [GetPlaybackConfiguration]
ReadPrec GetPlaybackConfiguration
Int -> ReadS GetPlaybackConfiguration
ReadS [GetPlaybackConfiguration]
(Int -> ReadS GetPlaybackConfiguration)
-> ReadS [GetPlaybackConfiguration]
-> ReadPrec GetPlaybackConfiguration
-> ReadPrec [GetPlaybackConfiguration]
-> Read GetPlaybackConfiguration
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetPlaybackConfiguration]
$creadListPrec :: ReadPrec [GetPlaybackConfiguration]
readPrec :: ReadPrec GetPlaybackConfiguration
$creadPrec :: ReadPrec GetPlaybackConfiguration
readList :: ReadS [GetPlaybackConfiguration]
$creadList :: ReadS [GetPlaybackConfiguration]
readsPrec :: Int -> ReadS GetPlaybackConfiguration
$creadsPrec :: Int -> ReadS GetPlaybackConfiguration
Prelude.Read, Int -> GetPlaybackConfiguration -> ShowS
[GetPlaybackConfiguration] -> ShowS
GetPlaybackConfiguration -> String
(Int -> GetPlaybackConfiguration -> ShowS)
-> (GetPlaybackConfiguration -> String)
-> ([GetPlaybackConfiguration] -> ShowS)
-> Show GetPlaybackConfiguration
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetPlaybackConfiguration] -> ShowS
$cshowList :: [GetPlaybackConfiguration] -> ShowS
show :: GetPlaybackConfiguration -> String
$cshow :: GetPlaybackConfiguration -> String
showsPrec :: Int -> GetPlaybackConfiguration -> ShowS
$cshowsPrec :: Int -> GetPlaybackConfiguration -> ShowS
Prelude.Show, (forall x.
 GetPlaybackConfiguration -> Rep GetPlaybackConfiguration x)
-> (forall x.
    Rep GetPlaybackConfiguration x -> GetPlaybackConfiguration)
-> Generic GetPlaybackConfiguration
forall x.
Rep GetPlaybackConfiguration x -> GetPlaybackConfiguration
forall x.
GetPlaybackConfiguration -> Rep GetPlaybackConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetPlaybackConfiguration x -> GetPlaybackConfiguration
$cfrom :: forall x.
GetPlaybackConfiguration -> Rep GetPlaybackConfiguration x
Prelude.Generic)

-- |
-- Create a value of 'GetPlaybackConfiguration' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'name', 'getPlaybackConfiguration_name' - The identifier for the playback configuration.
newGetPlaybackConfiguration ::
  -- | 'name'
  Prelude.Text ->
  GetPlaybackConfiguration
newGetPlaybackConfiguration :: Text -> GetPlaybackConfiguration
newGetPlaybackConfiguration Text
pName_ =
  GetPlaybackConfiguration' :: Text -> GetPlaybackConfiguration
GetPlaybackConfiguration' {$sel:name:GetPlaybackConfiguration' :: Text
name = Text
pName_}

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

instance Core.AWSRequest GetPlaybackConfiguration where
  type
    AWSResponse GetPlaybackConfiguration =
      GetPlaybackConfigurationResponse
  request :: GetPlaybackConfiguration -> Request GetPlaybackConfiguration
request = Service
-> GetPlaybackConfiguration -> Request GetPlaybackConfiguration
forall a. ToRequest a => Service -> a -> Request a
Request.get Service
defaultService
  response :: Logger
-> Service
-> Proxy GetPlaybackConfiguration
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse GetPlaybackConfiguration)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse GetPlaybackConfiguration))
-> Logger
-> Service
-> Proxy GetPlaybackConfiguration
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse GetPlaybackConfiguration)))
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
-> GetPlaybackConfigurationResponse
GetPlaybackConfigurationResponse'
            (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
 -> GetPlaybackConfigurationResponse)
-> 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
      -> GetPlaybackConfigurationResponse)
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
   -> GetPlaybackConfigurationResponse)
-> 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
      -> GetPlaybackConfigurationResponse)
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
   -> GetPlaybackConfigurationResponse)
-> 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
      -> GetPlaybackConfigurationResponse)
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
   -> GetPlaybackConfigurationResponse)
-> 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
      -> GetPlaybackConfigurationResponse)
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
   -> GetPlaybackConfigurationResponse)
-> 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
      -> GetPlaybackConfigurationResponse)
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
   -> GetPlaybackConfigurationResponse)
-> 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
      -> GetPlaybackConfigurationResponse)
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
   -> GetPlaybackConfigurationResponse)
-> 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
      -> GetPlaybackConfigurationResponse)
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
   -> GetPlaybackConfigurationResponse)
-> 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
      -> GetPlaybackConfigurationResponse)
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
   -> GetPlaybackConfigurationResponse)
-> 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
      -> GetPlaybackConfigurationResponse)
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
   -> GetPlaybackConfigurationResponse)
-> 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
      -> GetPlaybackConfigurationResponse)
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
   -> GetPlaybackConfigurationResponse)
-> 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
      -> GetPlaybackConfigurationResponse)
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
   -> GetPlaybackConfigurationResponse)
-> 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
      -> GetPlaybackConfigurationResponse)
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
   -> GetPlaybackConfigurationResponse)
-> 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
      -> GetPlaybackConfigurationResponse)
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
   -> GetPlaybackConfigurationResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe (HashMap Text (HashMap Text Text))
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe CdnConfiguration
      -> Int
      -> GetPlaybackConfigurationResponse)
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
   -> GetPlaybackConfigurationResponse)
-> Either String (Maybe (HashMap Text (HashMap Text Text)))
-> Either
     String
     (Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe CdnConfiguration
      -> Int
      -> GetPlaybackConfigurationResponse)
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
   -> GetPlaybackConfigurationResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe CdnConfiguration
      -> Int
      -> GetPlaybackConfigurationResponse)
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
   -> GetPlaybackConfigurationResponse)
-> Either String (Maybe (HashMap Text Text))
-> Either
     String
     (Maybe Text
      -> Maybe CdnConfiguration
      -> Int
      -> GetPlaybackConfigurationResponse)
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
   -> GetPlaybackConfigurationResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe CdnConfiguration -> Int -> GetPlaybackConfigurationResponse)
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 -> GetPlaybackConfigurationResponse)
-> Either String (Maybe CdnConfiguration)
-> Either String (Int -> GetPlaybackConfigurationResponse)
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 -> GetPlaybackConfigurationResponse)
-> Either String Int
-> Either String GetPlaybackConfigurationResponse
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 GetPlaybackConfiguration

instance Prelude.NFData GetPlaybackConfiguration

instance Core.ToHeaders GetPlaybackConfiguration where
  toHeaders :: GetPlaybackConfiguration -> ResponseHeaders
toHeaders =
    ResponseHeaders -> GetPlaybackConfiguration -> 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.ToPath GetPlaybackConfiguration where
  toPath :: GetPlaybackConfiguration -> ByteString
toPath GetPlaybackConfiguration' {Text
name :: Text
$sel:name:GetPlaybackConfiguration' :: GetPlaybackConfiguration -> Text
..} =
    [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/playbackConfiguration/", Text -> ByteString
forall a. ToByteString a => a -> ByteString
Core.toBS Text
name]

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

-- | /See:/ 'newGetPlaybackConfigurationResponse' smart constructor.
data GetPlaybackConfigurationResponse = GetPlaybackConfigurationResponse'
  { -- | The URL that the player accesses to get a manifest from AWS Elemental
    -- MediaTailor. This session will use server-side reporting.
    GetPlaybackConfigurationResponse -> Maybe Text
playbackEndpointPrefix :: Prelude.Maybe Prelude.Text,
    -- | The configuration for HLS content.
    GetPlaybackConfigurationResponse -> 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>.
    GetPlaybackConfigurationResponse -> Maybe Natural
personalizationThresholdSeconds :: Prelude.Maybe Prelude.Natural,
    -- | The Amazon Resource Name (ARN) for the playback configuration.
    GetPlaybackConfigurationResponse -> 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>.
    GetPlaybackConfigurationResponse -> 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>.
    GetPlaybackConfigurationResponse -> 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.
    GetPlaybackConfigurationResponse -> 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.
    GetPlaybackConfigurationResponse -> Maybe Text
videoContentSourceUrl :: Prelude.Maybe Prelude.Text,
    -- | The configuration for DASH content.
    GetPlaybackConfigurationResponse -> Maybe DashConfiguration
dashConfiguration :: Prelude.Maybe DashConfiguration,
    -- | The configuration for manifest processing rules. Manifest processing
    -- rules enable customization of the personalized manifests created by
    -- MediaTailor.
    GetPlaybackConfigurationResponse -> Maybe ManifestProcessingRules
manifestProcessingRules :: Prelude.Maybe ManifestProcessingRules,
    -- | The Amazon CloudWatch log settings for a playback configuration.
    GetPlaybackConfigurationResponse -> Maybe LogConfiguration
logConfiguration :: Prelude.Maybe LogConfiguration,
    -- | The configuration for pre-roll ad insertion.
    GetPlaybackConfigurationResponse -> Maybe LivePreRollConfiguration
livePreRollConfiguration :: Prelude.Maybe LivePreRollConfiguration,
    -- | The identifier for the playback configuration.
    GetPlaybackConfigurationResponse -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | The URL that the player uses to initialize a session that uses
    -- client-side reporting.
    GetPlaybackConfigurationResponse -> 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>.
    GetPlaybackConfigurationResponse
-> 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.
    GetPlaybackConfigurationResponse -> Maybe Text
transcodeProfileName :: Prelude.Maybe Prelude.Text,
    -- | The tags assigned to the playback configuration.
    GetPlaybackConfigurationResponse -> 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.
    GetPlaybackConfigurationResponse -> 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.
    GetPlaybackConfigurationResponse -> Maybe CdnConfiguration
cdnConfiguration :: Prelude.Maybe CdnConfiguration,
    -- | The response's http status code.
    GetPlaybackConfigurationResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetPlaybackConfigurationResponse
-> GetPlaybackConfigurationResponse -> Bool
(GetPlaybackConfigurationResponse
 -> GetPlaybackConfigurationResponse -> Bool)
-> (GetPlaybackConfigurationResponse
    -> GetPlaybackConfigurationResponse -> Bool)
-> Eq GetPlaybackConfigurationResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetPlaybackConfigurationResponse
-> GetPlaybackConfigurationResponse -> Bool
$c/= :: GetPlaybackConfigurationResponse
-> GetPlaybackConfigurationResponse -> Bool
== :: GetPlaybackConfigurationResponse
-> GetPlaybackConfigurationResponse -> Bool
$c== :: GetPlaybackConfigurationResponse
-> GetPlaybackConfigurationResponse -> Bool
Prelude.Eq, ReadPrec [GetPlaybackConfigurationResponse]
ReadPrec GetPlaybackConfigurationResponse
Int -> ReadS GetPlaybackConfigurationResponse
ReadS [GetPlaybackConfigurationResponse]
(Int -> ReadS GetPlaybackConfigurationResponse)
-> ReadS [GetPlaybackConfigurationResponse]
-> ReadPrec GetPlaybackConfigurationResponse
-> ReadPrec [GetPlaybackConfigurationResponse]
-> Read GetPlaybackConfigurationResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetPlaybackConfigurationResponse]
$creadListPrec :: ReadPrec [GetPlaybackConfigurationResponse]
readPrec :: ReadPrec GetPlaybackConfigurationResponse
$creadPrec :: ReadPrec GetPlaybackConfigurationResponse
readList :: ReadS [GetPlaybackConfigurationResponse]
$creadList :: ReadS [GetPlaybackConfigurationResponse]
readsPrec :: Int -> ReadS GetPlaybackConfigurationResponse
$creadsPrec :: Int -> ReadS GetPlaybackConfigurationResponse
Prelude.Read, Int -> GetPlaybackConfigurationResponse -> ShowS
[GetPlaybackConfigurationResponse] -> ShowS
GetPlaybackConfigurationResponse -> String
(Int -> GetPlaybackConfigurationResponse -> ShowS)
-> (GetPlaybackConfigurationResponse -> String)
-> ([GetPlaybackConfigurationResponse] -> ShowS)
-> Show GetPlaybackConfigurationResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetPlaybackConfigurationResponse] -> ShowS
$cshowList :: [GetPlaybackConfigurationResponse] -> ShowS
show :: GetPlaybackConfigurationResponse -> String
$cshow :: GetPlaybackConfigurationResponse -> String
showsPrec :: Int -> GetPlaybackConfigurationResponse -> ShowS
$cshowsPrec :: Int -> GetPlaybackConfigurationResponse -> ShowS
Prelude.Show, (forall x.
 GetPlaybackConfigurationResponse
 -> Rep GetPlaybackConfigurationResponse x)
-> (forall x.
    Rep GetPlaybackConfigurationResponse x
    -> GetPlaybackConfigurationResponse)
-> Generic GetPlaybackConfigurationResponse
forall x.
Rep GetPlaybackConfigurationResponse x
-> GetPlaybackConfigurationResponse
forall x.
GetPlaybackConfigurationResponse
-> Rep GetPlaybackConfigurationResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetPlaybackConfigurationResponse x
-> GetPlaybackConfigurationResponse
$cfrom :: forall x.
GetPlaybackConfigurationResponse
-> Rep GetPlaybackConfigurationResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetPlaybackConfigurationResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'playbackEndpointPrefix', 'getPlaybackConfigurationResponse_playbackEndpointPrefix' - The URL that the player accesses to get a manifest from AWS Elemental
-- MediaTailor. This session will use server-side reporting.
--
-- 'hlsConfiguration', 'getPlaybackConfigurationResponse_hlsConfiguration' - The configuration for HLS content.
--
-- 'personalizationThresholdSeconds', 'getPlaybackConfigurationResponse_personalizationThresholdSeconds' - Defines the maximum duration of underfilled ad time (in seconds) allowed
-- in an ad break. If the duration of underfilled ad time exceeds the
-- personalization threshold, then the personalization of the ad break is
-- abandoned and the underlying content is shown. This feature applies to
-- /ad replacement/ in live and VOD streams, rather than ad insertion,
-- because it relies on an underlying content stream. For more information
-- about ad break behavior, including ad replacement and insertion, see
-- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Behavior in AWS Elemental MediaTailor>.
--
-- 'playbackConfigurationArn', 'getPlaybackConfigurationResponse_playbackConfigurationArn' - The Amazon Resource Name (ARN) for the playback configuration.
--
-- 'availSuppression', 'getPlaybackConfigurationResponse_availSuppression' - The configuration for avail suppression, also known as ad suppression.
-- For more information about ad suppression, see
-- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Suppression>.
--
-- 'bumper', 'getPlaybackConfigurationResponse_bumper' - The configuration for bumpers. Bumpers are short audio or video clips
-- that play at the start or before the end of an ad break. To learn more
-- about bumpers, see
-- <https://docs.aws.amazon.com/mediatailor/latest/ug/bumpers.html Bumpers>.
--
-- 'adDecisionServerUrl', 'getPlaybackConfigurationResponse_adDecisionServerUrl' - The URL for the ad decision server (ADS). This includes the
-- specification of static parameters and placeholders for dynamic
-- parameters. AWS Elemental MediaTailor substitutes player-specific and
-- session-specific parameters as needed when calling the ADS. Alternately,
-- for testing, you can provide a static VAST URL. The maximum length is
-- 25,000 characters.
--
-- 'videoContentSourceUrl', 'getPlaybackConfigurationResponse_videoContentSourceUrl' - The URL prefix for the parent manifest for the stream, minus the asset
-- ID. The maximum length is 512 characters.
--
-- 'dashConfiguration', 'getPlaybackConfigurationResponse_dashConfiguration' - The configuration for DASH content.
--
-- 'manifestProcessingRules', 'getPlaybackConfigurationResponse_manifestProcessingRules' - The configuration for manifest processing rules. Manifest processing
-- rules enable customization of the personalized manifests created by
-- MediaTailor.
--
-- 'logConfiguration', 'getPlaybackConfigurationResponse_logConfiguration' - The Amazon CloudWatch log settings for a playback configuration.
--
-- 'livePreRollConfiguration', 'getPlaybackConfigurationResponse_livePreRollConfiguration' - The configuration for pre-roll ad insertion.
--
-- 'name', 'getPlaybackConfigurationResponse_name' - The identifier for the playback configuration.
--
-- 'sessionInitializationEndpointPrefix', 'getPlaybackConfigurationResponse_sessionInitializationEndpointPrefix' - The URL that the player uses to initialize a session that uses
-- client-side reporting.
--
-- 'configurationAliases', 'getPlaybackConfigurationResponse_configurationAliases' - The player parameters and aliases used as dynamic variables during
-- session initialization. For more information, see
-- <https://docs.aws.amazon.com/mediatailor/latest/ug/variables-domain.html Domain Variables>.
--
-- 'transcodeProfileName', 'getPlaybackConfigurationResponse_transcodeProfileName' - The name that is used to associate this playback configuration with a
-- custom transcode profile. This overrides the dynamic transcoding
-- defaults of MediaTailor. Use this only if you have already set up custom
-- profiles with the help of AWS Support.
--
-- 'tags', 'getPlaybackConfigurationResponse_tags' - The tags assigned to the playback configuration.
--
-- 'slateAdUrl', 'getPlaybackConfigurationResponse_slateAdUrl' - The URL for a high-quality video asset to transcode and use to fill in
-- time that\'s not used by ads. AWS Elemental MediaTailor shows the slate
-- to fill in gaps in media content. Configuring the slate is optional for
-- non-VPAID playback configurations. For VPAID, the slate is required
-- because MediaTailor provides it in the slots designated for dynamic ad
-- content. The slate must be a high-quality asset that contains both audio
-- and video.
--
-- 'cdnConfiguration', 'getPlaybackConfigurationResponse_cdnConfiguration' - The configuration for using a content delivery network (CDN), like
-- Amazon CloudFront, for content and ad segment management.
--
-- 'httpStatus', 'getPlaybackConfigurationResponse_httpStatus' - The response's http status code.
newGetPlaybackConfigurationResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetPlaybackConfigurationResponse
newGetPlaybackConfigurationResponse :: Int -> GetPlaybackConfigurationResponse
newGetPlaybackConfigurationResponse Int
pHttpStatus_ =
  GetPlaybackConfigurationResponse' :: 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
-> GetPlaybackConfigurationResponse
GetPlaybackConfigurationResponse'
    { $sel:playbackEndpointPrefix:GetPlaybackConfigurationResponse' :: Maybe Text
playbackEndpointPrefix =
        Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:hlsConfiguration:GetPlaybackConfigurationResponse' :: Maybe HlsConfiguration
hlsConfiguration = Maybe HlsConfiguration
forall a. Maybe a
Prelude.Nothing,
      $sel:personalizationThresholdSeconds:GetPlaybackConfigurationResponse' :: Maybe Natural
personalizationThresholdSeconds =
        Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:playbackConfigurationArn:GetPlaybackConfigurationResponse' :: Maybe Text
playbackConfigurationArn =
        Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:availSuppression:GetPlaybackConfigurationResponse' :: Maybe AvailSuppression
availSuppression = Maybe AvailSuppression
forall a. Maybe a
Prelude.Nothing,
      $sel:bumper:GetPlaybackConfigurationResponse' :: Maybe Bumper
bumper = Maybe Bumper
forall a. Maybe a
Prelude.Nothing,
      $sel:adDecisionServerUrl:GetPlaybackConfigurationResponse' :: Maybe Text
adDecisionServerUrl = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:videoContentSourceUrl:GetPlaybackConfigurationResponse' :: Maybe Text
videoContentSourceUrl = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:dashConfiguration:GetPlaybackConfigurationResponse' :: Maybe DashConfiguration
dashConfiguration = Maybe DashConfiguration
forall a. Maybe a
Prelude.Nothing,
      $sel:manifestProcessingRules:GetPlaybackConfigurationResponse' :: Maybe ManifestProcessingRules
manifestProcessingRules = Maybe ManifestProcessingRules
forall a. Maybe a
Prelude.Nothing,
      $sel:logConfiguration:GetPlaybackConfigurationResponse' :: Maybe LogConfiguration
logConfiguration = Maybe LogConfiguration
forall a. Maybe a
Prelude.Nothing,
      $sel:livePreRollConfiguration:GetPlaybackConfigurationResponse' :: Maybe LivePreRollConfiguration
livePreRollConfiguration =
        Maybe LivePreRollConfiguration
forall a. Maybe a
Prelude.Nothing,
      $sel:name:GetPlaybackConfigurationResponse' :: Maybe Text
name = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:sessionInitializationEndpointPrefix:GetPlaybackConfigurationResponse' :: Maybe Text
sessionInitializationEndpointPrefix =
        Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:configurationAliases:GetPlaybackConfigurationResponse' :: Maybe (HashMap Text (HashMap Text Text))
configurationAliases = Maybe (HashMap Text (HashMap Text Text))
forall a. Maybe a
Prelude.Nothing,
      $sel:transcodeProfileName:GetPlaybackConfigurationResponse' :: Maybe Text
transcodeProfileName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:tags:GetPlaybackConfigurationResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
forall a. Maybe a
Prelude.Nothing,
      $sel:slateAdUrl:GetPlaybackConfigurationResponse' :: Maybe Text
slateAdUrl = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:cdnConfiguration:GetPlaybackConfigurationResponse' :: Maybe CdnConfiguration
cdnConfiguration = Maybe CdnConfiguration
forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetPlaybackConfigurationResponse' :: 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.
getPlaybackConfigurationResponse_playbackEndpointPrefix :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)
getPlaybackConfigurationResponse_playbackEndpointPrefix :: (Maybe Text -> f (Maybe Text))
-> GetPlaybackConfigurationResponse
-> f GetPlaybackConfigurationResponse
getPlaybackConfigurationResponse_playbackEndpointPrefix = (GetPlaybackConfigurationResponse -> Maybe Text)
-> (GetPlaybackConfigurationResponse
    -> Maybe Text -> GetPlaybackConfigurationResponse)
-> Lens
     GetPlaybackConfigurationResponse
     GetPlaybackConfigurationResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPlaybackConfigurationResponse' {Maybe Text
playbackEndpointPrefix :: Maybe Text
$sel:playbackEndpointPrefix:GetPlaybackConfigurationResponse' :: GetPlaybackConfigurationResponse -> Maybe Text
playbackEndpointPrefix} -> Maybe Text
playbackEndpointPrefix) (\s :: GetPlaybackConfigurationResponse
s@GetPlaybackConfigurationResponse' {} Maybe Text
a -> GetPlaybackConfigurationResponse
s {$sel:playbackEndpointPrefix:GetPlaybackConfigurationResponse' :: Maybe Text
playbackEndpointPrefix = Maybe Text
a} :: GetPlaybackConfigurationResponse)

-- | The configuration for HLS content.
getPlaybackConfigurationResponse_hlsConfiguration :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe HlsConfiguration)
getPlaybackConfigurationResponse_hlsConfiguration :: (Maybe HlsConfiguration -> f (Maybe HlsConfiguration))
-> GetPlaybackConfigurationResponse
-> f GetPlaybackConfigurationResponse
getPlaybackConfigurationResponse_hlsConfiguration = (GetPlaybackConfigurationResponse -> Maybe HlsConfiguration)
-> (GetPlaybackConfigurationResponse
    -> Maybe HlsConfiguration -> GetPlaybackConfigurationResponse)
-> Lens
     GetPlaybackConfigurationResponse
     GetPlaybackConfigurationResponse
     (Maybe HlsConfiguration)
     (Maybe HlsConfiguration)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPlaybackConfigurationResponse' {Maybe HlsConfiguration
hlsConfiguration :: Maybe HlsConfiguration
$sel:hlsConfiguration:GetPlaybackConfigurationResponse' :: GetPlaybackConfigurationResponse -> Maybe HlsConfiguration
hlsConfiguration} -> Maybe HlsConfiguration
hlsConfiguration) (\s :: GetPlaybackConfigurationResponse
s@GetPlaybackConfigurationResponse' {} Maybe HlsConfiguration
a -> GetPlaybackConfigurationResponse
s {$sel:hlsConfiguration:GetPlaybackConfigurationResponse' :: Maybe HlsConfiguration
hlsConfiguration = Maybe HlsConfiguration
a} :: GetPlaybackConfigurationResponse)

-- | Defines the maximum duration of underfilled ad time (in seconds) allowed
-- in an ad break. If the duration of underfilled ad time exceeds the
-- personalization threshold, then the personalization of the ad break is
-- abandoned and the underlying content is shown. This feature applies to
-- /ad replacement/ in live and VOD streams, rather than ad insertion,
-- because it relies on an underlying content stream. For more information
-- about ad break behavior, including ad replacement and insertion, see
-- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Behavior in AWS Elemental MediaTailor>.
getPlaybackConfigurationResponse_personalizationThresholdSeconds :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe Prelude.Natural)
getPlaybackConfigurationResponse_personalizationThresholdSeconds :: (Maybe Natural -> f (Maybe Natural))
-> GetPlaybackConfigurationResponse
-> f GetPlaybackConfigurationResponse
getPlaybackConfigurationResponse_personalizationThresholdSeconds = (GetPlaybackConfigurationResponse -> Maybe Natural)
-> (GetPlaybackConfigurationResponse
    -> Maybe Natural -> GetPlaybackConfigurationResponse)
-> Lens
     GetPlaybackConfigurationResponse
     GetPlaybackConfigurationResponse
     (Maybe Natural)
     (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPlaybackConfigurationResponse' {Maybe Natural
personalizationThresholdSeconds :: Maybe Natural
$sel:personalizationThresholdSeconds:GetPlaybackConfigurationResponse' :: GetPlaybackConfigurationResponse -> Maybe Natural
personalizationThresholdSeconds} -> Maybe Natural
personalizationThresholdSeconds) (\s :: GetPlaybackConfigurationResponse
s@GetPlaybackConfigurationResponse' {} Maybe Natural
a -> GetPlaybackConfigurationResponse
s {$sel:personalizationThresholdSeconds:GetPlaybackConfigurationResponse' :: Maybe Natural
personalizationThresholdSeconds = Maybe Natural
a} :: GetPlaybackConfigurationResponse)

-- | The Amazon Resource Name (ARN) for the playback configuration.
getPlaybackConfigurationResponse_playbackConfigurationArn :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)
getPlaybackConfigurationResponse_playbackConfigurationArn :: (Maybe Text -> f (Maybe Text))
-> GetPlaybackConfigurationResponse
-> f GetPlaybackConfigurationResponse
getPlaybackConfigurationResponse_playbackConfigurationArn = (GetPlaybackConfigurationResponse -> Maybe Text)
-> (GetPlaybackConfigurationResponse
    -> Maybe Text -> GetPlaybackConfigurationResponse)
-> Lens
     GetPlaybackConfigurationResponse
     GetPlaybackConfigurationResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPlaybackConfigurationResponse' {Maybe Text
playbackConfigurationArn :: Maybe Text
$sel:playbackConfigurationArn:GetPlaybackConfigurationResponse' :: GetPlaybackConfigurationResponse -> Maybe Text
playbackConfigurationArn} -> Maybe Text
playbackConfigurationArn) (\s :: GetPlaybackConfigurationResponse
s@GetPlaybackConfigurationResponse' {} Maybe Text
a -> GetPlaybackConfigurationResponse
s {$sel:playbackConfigurationArn:GetPlaybackConfigurationResponse' :: Maybe Text
playbackConfigurationArn = Maybe Text
a} :: GetPlaybackConfigurationResponse)

-- | The configuration for avail suppression, also known as ad suppression.
-- For more information about ad suppression, see
-- <https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html Ad Suppression>.
getPlaybackConfigurationResponse_availSuppression :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe AvailSuppression)
getPlaybackConfigurationResponse_availSuppression :: (Maybe AvailSuppression -> f (Maybe AvailSuppression))
-> GetPlaybackConfigurationResponse
-> f GetPlaybackConfigurationResponse
getPlaybackConfigurationResponse_availSuppression = (GetPlaybackConfigurationResponse -> Maybe AvailSuppression)
-> (GetPlaybackConfigurationResponse
    -> Maybe AvailSuppression -> GetPlaybackConfigurationResponse)
-> Lens
     GetPlaybackConfigurationResponse
     GetPlaybackConfigurationResponse
     (Maybe AvailSuppression)
     (Maybe AvailSuppression)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPlaybackConfigurationResponse' {Maybe AvailSuppression
availSuppression :: Maybe AvailSuppression
$sel:availSuppression:GetPlaybackConfigurationResponse' :: GetPlaybackConfigurationResponse -> Maybe AvailSuppression
availSuppression} -> Maybe AvailSuppression
availSuppression) (\s :: GetPlaybackConfigurationResponse
s@GetPlaybackConfigurationResponse' {} Maybe AvailSuppression
a -> GetPlaybackConfigurationResponse
s {$sel:availSuppression:GetPlaybackConfigurationResponse' :: Maybe AvailSuppression
availSuppression = Maybe AvailSuppression
a} :: GetPlaybackConfigurationResponse)

-- | The configuration for bumpers. Bumpers are short audio or video clips
-- that play at the start or before the end of an ad break. To learn more
-- about bumpers, see
-- <https://docs.aws.amazon.com/mediatailor/latest/ug/bumpers.html Bumpers>.
getPlaybackConfigurationResponse_bumper :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe Bumper)
getPlaybackConfigurationResponse_bumper :: (Maybe Bumper -> f (Maybe Bumper))
-> GetPlaybackConfigurationResponse
-> f GetPlaybackConfigurationResponse
getPlaybackConfigurationResponse_bumper = (GetPlaybackConfigurationResponse -> Maybe Bumper)
-> (GetPlaybackConfigurationResponse
    -> Maybe Bumper -> GetPlaybackConfigurationResponse)
-> Lens
     GetPlaybackConfigurationResponse
     GetPlaybackConfigurationResponse
     (Maybe Bumper)
     (Maybe Bumper)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPlaybackConfigurationResponse' {Maybe Bumper
bumper :: Maybe Bumper
$sel:bumper:GetPlaybackConfigurationResponse' :: GetPlaybackConfigurationResponse -> Maybe Bumper
bumper} -> Maybe Bumper
bumper) (\s :: GetPlaybackConfigurationResponse
s@GetPlaybackConfigurationResponse' {} Maybe Bumper
a -> GetPlaybackConfigurationResponse
s {$sel:bumper:GetPlaybackConfigurationResponse' :: Maybe Bumper
bumper = Maybe Bumper
a} :: GetPlaybackConfigurationResponse)

-- | The URL for the ad decision server (ADS). This includes the
-- specification of static parameters and placeholders for dynamic
-- parameters. AWS Elemental MediaTailor substitutes player-specific and
-- session-specific parameters as needed when calling the ADS. Alternately,
-- for testing, you can provide a static VAST URL. The maximum length is
-- 25,000 characters.
getPlaybackConfigurationResponse_adDecisionServerUrl :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)
getPlaybackConfigurationResponse_adDecisionServerUrl :: (Maybe Text -> f (Maybe Text))
-> GetPlaybackConfigurationResponse
-> f GetPlaybackConfigurationResponse
getPlaybackConfigurationResponse_adDecisionServerUrl = (GetPlaybackConfigurationResponse -> Maybe Text)
-> (GetPlaybackConfigurationResponse
    -> Maybe Text -> GetPlaybackConfigurationResponse)
-> Lens
     GetPlaybackConfigurationResponse
     GetPlaybackConfigurationResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPlaybackConfigurationResponse' {Maybe Text
adDecisionServerUrl :: Maybe Text
$sel:adDecisionServerUrl:GetPlaybackConfigurationResponse' :: GetPlaybackConfigurationResponse -> Maybe Text
adDecisionServerUrl} -> Maybe Text
adDecisionServerUrl) (\s :: GetPlaybackConfigurationResponse
s@GetPlaybackConfigurationResponse' {} Maybe Text
a -> GetPlaybackConfigurationResponse
s {$sel:adDecisionServerUrl:GetPlaybackConfigurationResponse' :: Maybe Text
adDecisionServerUrl = Maybe Text
a} :: GetPlaybackConfigurationResponse)

-- | The URL prefix for the parent manifest for the stream, minus the asset
-- ID. The maximum length is 512 characters.
getPlaybackConfigurationResponse_videoContentSourceUrl :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)
getPlaybackConfigurationResponse_videoContentSourceUrl :: (Maybe Text -> f (Maybe Text))
-> GetPlaybackConfigurationResponse
-> f GetPlaybackConfigurationResponse
getPlaybackConfigurationResponse_videoContentSourceUrl = (GetPlaybackConfigurationResponse -> Maybe Text)
-> (GetPlaybackConfigurationResponse
    -> Maybe Text -> GetPlaybackConfigurationResponse)
-> Lens
     GetPlaybackConfigurationResponse
     GetPlaybackConfigurationResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPlaybackConfigurationResponse' {Maybe Text
videoContentSourceUrl :: Maybe Text
$sel:videoContentSourceUrl:GetPlaybackConfigurationResponse' :: GetPlaybackConfigurationResponse -> Maybe Text
videoContentSourceUrl} -> Maybe Text
videoContentSourceUrl) (\s :: GetPlaybackConfigurationResponse
s@GetPlaybackConfigurationResponse' {} Maybe Text
a -> GetPlaybackConfigurationResponse
s {$sel:videoContentSourceUrl:GetPlaybackConfigurationResponse' :: Maybe Text
videoContentSourceUrl = Maybe Text
a} :: GetPlaybackConfigurationResponse)

-- | The configuration for DASH content.
getPlaybackConfigurationResponse_dashConfiguration :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe DashConfiguration)
getPlaybackConfigurationResponse_dashConfiguration :: (Maybe DashConfiguration -> f (Maybe DashConfiguration))
-> GetPlaybackConfigurationResponse
-> f GetPlaybackConfigurationResponse
getPlaybackConfigurationResponse_dashConfiguration = (GetPlaybackConfigurationResponse -> Maybe DashConfiguration)
-> (GetPlaybackConfigurationResponse
    -> Maybe DashConfiguration -> GetPlaybackConfigurationResponse)
-> Lens
     GetPlaybackConfigurationResponse
     GetPlaybackConfigurationResponse
     (Maybe DashConfiguration)
     (Maybe DashConfiguration)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPlaybackConfigurationResponse' {Maybe DashConfiguration
dashConfiguration :: Maybe DashConfiguration
$sel:dashConfiguration:GetPlaybackConfigurationResponse' :: GetPlaybackConfigurationResponse -> Maybe DashConfiguration
dashConfiguration} -> Maybe DashConfiguration
dashConfiguration) (\s :: GetPlaybackConfigurationResponse
s@GetPlaybackConfigurationResponse' {} Maybe DashConfiguration
a -> GetPlaybackConfigurationResponse
s {$sel:dashConfiguration:GetPlaybackConfigurationResponse' :: Maybe DashConfiguration
dashConfiguration = Maybe DashConfiguration
a} :: GetPlaybackConfigurationResponse)

-- | The configuration for manifest processing rules. Manifest processing
-- rules enable customization of the personalized manifests created by
-- MediaTailor.
getPlaybackConfigurationResponse_manifestProcessingRules :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe ManifestProcessingRules)
getPlaybackConfigurationResponse_manifestProcessingRules :: (Maybe ManifestProcessingRules
 -> f (Maybe ManifestProcessingRules))
-> GetPlaybackConfigurationResponse
-> f GetPlaybackConfigurationResponse
getPlaybackConfigurationResponse_manifestProcessingRules = (GetPlaybackConfigurationResponse -> Maybe ManifestProcessingRules)
-> (GetPlaybackConfigurationResponse
    -> Maybe ManifestProcessingRules
    -> GetPlaybackConfigurationResponse)
-> Lens
     GetPlaybackConfigurationResponse
     GetPlaybackConfigurationResponse
     (Maybe ManifestProcessingRules)
     (Maybe ManifestProcessingRules)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPlaybackConfigurationResponse' {Maybe ManifestProcessingRules
manifestProcessingRules :: Maybe ManifestProcessingRules
$sel:manifestProcessingRules:GetPlaybackConfigurationResponse' :: GetPlaybackConfigurationResponse -> Maybe ManifestProcessingRules
manifestProcessingRules} -> Maybe ManifestProcessingRules
manifestProcessingRules) (\s :: GetPlaybackConfigurationResponse
s@GetPlaybackConfigurationResponse' {} Maybe ManifestProcessingRules
a -> GetPlaybackConfigurationResponse
s {$sel:manifestProcessingRules:GetPlaybackConfigurationResponse' :: Maybe ManifestProcessingRules
manifestProcessingRules = Maybe ManifestProcessingRules
a} :: GetPlaybackConfigurationResponse)

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

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

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

-- | The URL that the player uses to initialize a session that uses
-- client-side reporting.
getPlaybackConfigurationResponse_sessionInitializationEndpointPrefix :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)
getPlaybackConfigurationResponse_sessionInitializationEndpointPrefix :: (Maybe Text -> f (Maybe Text))
-> GetPlaybackConfigurationResponse
-> f GetPlaybackConfigurationResponse
getPlaybackConfigurationResponse_sessionInitializationEndpointPrefix = (GetPlaybackConfigurationResponse -> Maybe Text)
-> (GetPlaybackConfigurationResponse
    -> Maybe Text -> GetPlaybackConfigurationResponse)
-> Lens
     GetPlaybackConfigurationResponse
     GetPlaybackConfigurationResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPlaybackConfigurationResponse' {Maybe Text
sessionInitializationEndpointPrefix :: Maybe Text
$sel:sessionInitializationEndpointPrefix:GetPlaybackConfigurationResponse' :: GetPlaybackConfigurationResponse -> Maybe Text
sessionInitializationEndpointPrefix} -> Maybe Text
sessionInitializationEndpointPrefix) (\s :: GetPlaybackConfigurationResponse
s@GetPlaybackConfigurationResponse' {} Maybe Text
a -> GetPlaybackConfigurationResponse
s {$sel:sessionInitializationEndpointPrefix:GetPlaybackConfigurationResponse' :: Maybe Text
sessionInitializationEndpointPrefix = Maybe Text
a} :: GetPlaybackConfigurationResponse)

-- | The player parameters and aliases used as dynamic variables during
-- session initialization. For more information, see
-- <https://docs.aws.amazon.com/mediatailor/latest/ug/variables-domain.html Domain Variables>.
getPlaybackConfigurationResponse_configurationAliases :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)))
getPlaybackConfigurationResponse_configurationAliases :: (Maybe (HashMap Text (HashMap Text Text))
 -> f (Maybe (HashMap Text (HashMap Text Text))))
-> GetPlaybackConfigurationResponse
-> f GetPlaybackConfigurationResponse
getPlaybackConfigurationResponse_configurationAliases = (GetPlaybackConfigurationResponse
 -> Maybe (HashMap Text (HashMap Text Text)))
-> (GetPlaybackConfigurationResponse
    -> Maybe (HashMap Text (HashMap Text Text))
    -> GetPlaybackConfigurationResponse)
-> Lens
     GetPlaybackConfigurationResponse
     GetPlaybackConfigurationResponse
     (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 (\GetPlaybackConfigurationResponse' {Maybe (HashMap Text (HashMap Text Text))
configurationAliases :: Maybe (HashMap Text (HashMap Text Text))
$sel:configurationAliases:GetPlaybackConfigurationResponse' :: GetPlaybackConfigurationResponse
-> Maybe (HashMap Text (HashMap Text Text))
configurationAliases} -> Maybe (HashMap Text (HashMap Text Text))
configurationAliases) (\s :: GetPlaybackConfigurationResponse
s@GetPlaybackConfigurationResponse' {} Maybe (HashMap Text (HashMap Text Text))
a -> GetPlaybackConfigurationResponse
s {$sel:configurationAliases:GetPlaybackConfigurationResponse' :: Maybe (HashMap Text (HashMap Text Text))
configurationAliases = Maybe (HashMap Text (HashMap Text Text))
a} :: GetPlaybackConfigurationResponse) ((Maybe (HashMap Text (HashMap Text Text))
  -> f (Maybe (HashMap Text (HashMap Text Text))))
 -> GetPlaybackConfigurationResponse
 -> f GetPlaybackConfigurationResponse)
-> ((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))))
-> GetPlaybackConfigurationResponse
-> f GetPlaybackConfigurationResponse
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.
getPlaybackConfigurationResponse_transcodeProfileName :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)
getPlaybackConfigurationResponse_transcodeProfileName :: (Maybe Text -> f (Maybe Text))
-> GetPlaybackConfigurationResponse
-> f GetPlaybackConfigurationResponse
getPlaybackConfigurationResponse_transcodeProfileName = (GetPlaybackConfigurationResponse -> Maybe Text)
-> (GetPlaybackConfigurationResponse
    -> Maybe Text -> GetPlaybackConfigurationResponse)
-> Lens
     GetPlaybackConfigurationResponse
     GetPlaybackConfigurationResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPlaybackConfigurationResponse' {Maybe Text
transcodeProfileName :: Maybe Text
$sel:transcodeProfileName:GetPlaybackConfigurationResponse' :: GetPlaybackConfigurationResponse -> Maybe Text
transcodeProfileName} -> Maybe Text
transcodeProfileName) (\s :: GetPlaybackConfigurationResponse
s@GetPlaybackConfigurationResponse' {} Maybe Text
a -> GetPlaybackConfigurationResponse
s {$sel:transcodeProfileName:GetPlaybackConfigurationResponse' :: Maybe Text
transcodeProfileName = Maybe Text
a} :: GetPlaybackConfigurationResponse)

-- | The tags assigned to the playback configuration.
getPlaybackConfigurationResponse_tags :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
getPlaybackConfigurationResponse_tags :: (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> GetPlaybackConfigurationResponse
-> f GetPlaybackConfigurationResponse
getPlaybackConfigurationResponse_tags = (GetPlaybackConfigurationResponse -> Maybe (HashMap Text Text))
-> (GetPlaybackConfigurationResponse
    -> Maybe (HashMap Text Text) -> GetPlaybackConfigurationResponse)
-> Lens
     GetPlaybackConfigurationResponse
     GetPlaybackConfigurationResponse
     (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 (\GetPlaybackConfigurationResponse' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:GetPlaybackConfigurationResponse' :: GetPlaybackConfigurationResponse -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: GetPlaybackConfigurationResponse
s@GetPlaybackConfigurationResponse' {} Maybe (HashMap Text Text)
a -> GetPlaybackConfigurationResponse
s {$sel:tags:GetPlaybackConfigurationResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: GetPlaybackConfigurationResponse) ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
 -> GetPlaybackConfigurationResponse
 -> f GetPlaybackConfigurationResponse)
-> ((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)))
-> GetPlaybackConfigurationResponse
-> f GetPlaybackConfigurationResponse
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.
getPlaybackConfigurationResponse_slateAdUrl :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text)
getPlaybackConfigurationResponse_slateAdUrl :: (Maybe Text -> f (Maybe Text))
-> GetPlaybackConfigurationResponse
-> f GetPlaybackConfigurationResponse
getPlaybackConfigurationResponse_slateAdUrl = (GetPlaybackConfigurationResponse -> Maybe Text)
-> (GetPlaybackConfigurationResponse
    -> Maybe Text -> GetPlaybackConfigurationResponse)
-> Lens
     GetPlaybackConfigurationResponse
     GetPlaybackConfigurationResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPlaybackConfigurationResponse' {Maybe Text
slateAdUrl :: Maybe Text
$sel:slateAdUrl:GetPlaybackConfigurationResponse' :: GetPlaybackConfigurationResponse -> Maybe Text
slateAdUrl} -> Maybe Text
slateAdUrl) (\s :: GetPlaybackConfigurationResponse
s@GetPlaybackConfigurationResponse' {} Maybe Text
a -> GetPlaybackConfigurationResponse
s {$sel:slateAdUrl:GetPlaybackConfigurationResponse' :: Maybe Text
slateAdUrl = Maybe Text
a} :: GetPlaybackConfigurationResponse)

-- | The configuration for using a content delivery network (CDN), like
-- Amazon CloudFront, for content and ad segment management.
getPlaybackConfigurationResponse_cdnConfiguration :: Lens.Lens' GetPlaybackConfigurationResponse (Prelude.Maybe CdnConfiguration)
getPlaybackConfigurationResponse_cdnConfiguration :: (Maybe CdnConfiguration -> f (Maybe CdnConfiguration))
-> GetPlaybackConfigurationResponse
-> f GetPlaybackConfigurationResponse
getPlaybackConfigurationResponse_cdnConfiguration = (GetPlaybackConfigurationResponse -> Maybe CdnConfiguration)
-> (GetPlaybackConfigurationResponse
    -> Maybe CdnConfiguration -> GetPlaybackConfigurationResponse)
-> Lens
     GetPlaybackConfigurationResponse
     GetPlaybackConfigurationResponse
     (Maybe CdnConfiguration)
     (Maybe CdnConfiguration)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPlaybackConfigurationResponse' {Maybe CdnConfiguration
cdnConfiguration :: Maybe CdnConfiguration
$sel:cdnConfiguration:GetPlaybackConfigurationResponse' :: GetPlaybackConfigurationResponse -> Maybe CdnConfiguration
cdnConfiguration} -> Maybe CdnConfiguration
cdnConfiguration) (\s :: GetPlaybackConfigurationResponse
s@GetPlaybackConfigurationResponse' {} Maybe CdnConfiguration
a -> GetPlaybackConfigurationResponse
s {$sel:cdnConfiguration:GetPlaybackConfigurationResponse' :: Maybe CdnConfiguration
cdnConfiguration = Maybe CdnConfiguration
a} :: GetPlaybackConfigurationResponse)

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

instance
  Prelude.NFData
    GetPlaybackConfigurationResponse