{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_GHC -fno-warn-unused-binds #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Amazonka.MediaTailor.PutPlaybackConfiguration -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Creates a playback configuration. For information about MediaTailor -- configurations, see -- . module Amazonka.MediaTailor.PutPlaybackConfiguration ( -- * Creating a Request PutPlaybackConfiguration (..), newPutPlaybackConfiguration, -- * Request Lenses putPlaybackConfiguration_adDecisionServerUrl, putPlaybackConfiguration_availSuppression, putPlaybackConfiguration_bumper, putPlaybackConfiguration_cdnConfiguration, putPlaybackConfiguration_configurationAliases, putPlaybackConfiguration_dashConfiguration, putPlaybackConfiguration_livePreRollConfiguration, putPlaybackConfiguration_manifestProcessingRules, putPlaybackConfiguration_personalizationThresholdSeconds, putPlaybackConfiguration_slateAdUrl, putPlaybackConfiguration_tags, putPlaybackConfiguration_transcodeProfileName, putPlaybackConfiguration_videoContentSourceUrl, putPlaybackConfiguration_name, -- * Destructuring the Response PutPlaybackConfigurationResponse (..), newPutPlaybackConfigurationResponse, -- * Response Lenses putPlaybackConfigurationResponse_adDecisionServerUrl, putPlaybackConfigurationResponse_availSuppression, putPlaybackConfigurationResponse_bumper, putPlaybackConfigurationResponse_cdnConfiguration, putPlaybackConfigurationResponse_configurationAliases, putPlaybackConfigurationResponse_dashConfiguration, putPlaybackConfigurationResponse_hlsConfiguration, putPlaybackConfigurationResponse_livePreRollConfiguration, putPlaybackConfigurationResponse_logConfiguration, putPlaybackConfigurationResponse_manifestProcessingRules, putPlaybackConfigurationResponse_name, putPlaybackConfigurationResponse_personalizationThresholdSeconds, putPlaybackConfigurationResponse_playbackConfigurationArn, putPlaybackConfigurationResponse_playbackEndpointPrefix, putPlaybackConfigurationResponse_sessionInitializationEndpointPrefix, putPlaybackConfigurationResponse_slateAdUrl, putPlaybackConfigurationResponse_tags, putPlaybackConfigurationResponse_transcodeProfileName, putPlaybackConfigurationResponse_videoContentSourceUrl, putPlaybackConfigurationResponse_httpStatus, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import Amazonka.MediaTailor.Types import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | /See:/ 'newPutPlaybackConfiguration' smart constructor. data PutPlaybackConfiguration = PutPlaybackConfiguration' { -- | The URL for the ad decision server (ADS). This includes the -- specification of static parameters and placeholders for dynamic -- parameters. AWS Elemental MediaTailor substitutes player-specific and -- session-specific parameters as needed when calling the ADS. Alternately, -- for testing you can provide a static VAST URL. The maximum length is -- 25,000 characters. adDecisionServerUrl :: Prelude.Maybe Prelude.Text, -- | The configuration for avail suppression, also known as ad suppression. -- For more information about ad suppression, see -- . 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 -- . bumper :: Prelude.Maybe Bumper, -- | The configuration for using a content delivery network (CDN), like -- Amazon CloudFront, for content and ad segment management. cdnConfiguration :: Prelude.Maybe CdnConfiguration, -- | The player parameters and aliases used as dynamic variables during -- session initialization. For more information, see -- . configurationAliases :: Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)), -- | The configuration for DASH content. dashConfiguration :: Prelude.Maybe DashConfigurationForPut, -- | The configuration for pre-roll ad insertion. livePreRollConfiguration :: Prelude.Maybe LivePreRollConfiguration, -- | The configuration for manifest processing rules. Manifest processing -- rules enable customization of the personalized manifests created by -- MediaTailor. manifestProcessingRules :: Prelude.Maybe ManifestProcessingRules, -- | Defines the maximum duration of underfilled ad time (in seconds) allowed -- in an ad break. If the duration of underfilled ad time exceeds the -- personalization threshold, then the personalization of the ad break is -- abandoned and the underlying content is shown. This feature applies to -- /ad replacement/ in live and VOD streams, rather than ad insertion, -- because it relies on an underlying content stream. For more information -- about ad break behavior, including ad replacement and insertion, see -- . personalizationThresholdSeconds :: Prelude.Maybe Prelude.Natural, -- | The URL for a high-quality video asset to transcode and use to fill in -- time that\'s not used by ads. AWS Elemental MediaTailor shows the slate -- to fill in gaps in media content. Configuring the slate is optional for -- non-VPAID configurations. For VPAID, the slate is required because -- MediaTailor provides it in the slots that are designated for dynamic ad -- content. The slate must be a high-quality asset that contains both audio -- and video. slateAdUrl :: Prelude.Maybe Prelude.Text, -- | The tags to assign to the playback configuration. Tags are key-value -- pairs that you can associate with Amazon resources to help with -- organization, access control, and cost tracking. For more information, -- see -- . tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text), -- | The name that is used to associate this playback configuration with a -- custom transcode profile. This overrides the dynamic transcoding -- defaults of MediaTailor. Use this only if you have already set up custom -- profiles with the help of AWS Support. transcodeProfileName :: Prelude.Maybe Prelude.Text, -- | The URL prefix for the parent manifest for the stream, minus the asset -- ID. The maximum length is 512 characters. videoContentSourceUrl :: Prelude.Maybe Prelude.Text, -- | The identifier for the playback configuration. name :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'PutPlaybackConfiguration' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'adDecisionServerUrl', 'putPlaybackConfiguration_adDecisionServerUrl' - The URL for the ad decision server (ADS). This includes the -- specification of static parameters and placeholders for dynamic -- parameters. AWS Elemental MediaTailor substitutes player-specific and -- session-specific parameters as needed when calling the ADS. Alternately, -- for testing you can provide a static VAST URL. The maximum length is -- 25,000 characters. -- -- 'availSuppression', 'putPlaybackConfiguration_availSuppression' - The configuration for avail suppression, also known as ad suppression. -- For more information about ad suppression, see -- . -- -- '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 -- . -- -- 'cdnConfiguration', 'putPlaybackConfiguration_cdnConfiguration' - The configuration for using a content delivery network (CDN), like -- Amazon CloudFront, for content and ad segment management. -- -- 'configurationAliases', 'putPlaybackConfiguration_configurationAliases' - The player parameters and aliases used as dynamic variables during -- session initialization. For more information, see -- . -- -- 'dashConfiguration', 'putPlaybackConfiguration_dashConfiguration' - The configuration for DASH content. -- -- 'livePreRollConfiguration', 'putPlaybackConfiguration_livePreRollConfiguration' - The configuration for pre-roll ad insertion. -- -- 'manifestProcessingRules', 'putPlaybackConfiguration_manifestProcessingRules' - The configuration for manifest processing rules. Manifest processing -- rules enable customization of the personalized manifests created by -- MediaTailor. -- -- 'personalizationThresholdSeconds', 'putPlaybackConfiguration_personalizationThresholdSeconds' - Defines the maximum duration of underfilled ad time (in seconds) allowed -- in an ad break. If the duration of underfilled ad time exceeds the -- personalization threshold, then the personalization of the ad break is -- abandoned and the underlying content is shown. This feature applies to -- /ad replacement/ in live and VOD streams, rather than ad insertion, -- because it relies on an underlying content stream. For more information -- about ad break behavior, including ad replacement and insertion, see -- . -- -- 'slateAdUrl', 'putPlaybackConfiguration_slateAdUrl' - The URL for a high-quality video asset to transcode and use to fill in -- time that\'s not used by ads. AWS Elemental MediaTailor shows the slate -- to fill in gaps in media content. Configuring the slate is optional for -- non-VPAID configurations. For VPAID, the slate is required because -- MediaTailor provides it in the slots that are designated for dynamic ad -- content. The slate must be a high-quality asset that contains both audio -- and video. -- -- 'tags', 'putPlaybackConfiguration_tags' - The tags to assign to the playback configuration. Tags are key-value -- pairs that you can associate with Amazon resources to help with -- organization, access control, and cost tracking. For more information, -- see -- . -- -- 'transcodeProfileName', 'putPlaybackConfiguration_transcodeProfileName' - The name that is used to associate this playback configuration with a -- custom transcode profile. This overrides the dynamic transcoding -- defaults of MediaTailor. Use this only if you have already set up custom -- profiles with the help of AWS Support. -- -- 'videoContentSourceUrl', 'putPlaybackConfiguration_videoContentSourceUrl' - The URL prefix for the parent manifest for the stream, minus the asset -- ID. The maximum length is 512 characters. -- -- 'name', 'putPlaybackConfiguration_name' - The identifier for the playback configuration. newPutPlaybackConfiguration :: -- | 'name' Prelude.Text -> PutPlaybackConfiguration newPutPlaybackConfiguration pName_ = PutPlaybackConfiguration' { adDecisionServerUrl = Prelude.Nothing, availSuppression = Prelude.Nothing, bumper = Prelude.Nothing, cdnConfiguration = Prelude.Nothing, configurationAliases = Prelude.Nothing, dashConfiguration = Prelude.Nothing, livePreRollConfiguration = Prelude.Nothing, manifestProcessingRules = Prelude.Nothing, personalizationThresholdSeconds = Prelude.Nothing, slateAdUrl = Prelude.Nothing, tags = Prelude.Nothing, transcodeProfileName = Prelude.Nothing, videoContentSourceUrl = Prelude.Nothing, name = pName_ } -- | The URL for the ad decision server (ADS). This includes the -- specification of static parameters and placeholders for dynamic -- parameters. AWS Elemental MediaTailor substitutes player-specific and -- session-specific parameters as needed when calling the ADS. Alternately, -- for testing you can provide a static VAST URL. The maximum length is -- 25,000 characters. putPlaybackConfiguration_adDecisionServerUrl :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe Prelude.Text) putPlaybackConfiguration_adDecisionServerUrl = Lens.lens (\PutPlaybackConfiguration' {adDecisionServerUrl} -> adDecisionServerUrl) (\s@PutPlaybackConfiguration' {} a -> s {adDecisionServerUrl = a} :: PutPlaybackConfiguration) -- | The configuration for avail suppression, also known as ad suppression. -- For more information about ad suppression, see -- . putPlaybackConfiguration_availSuppression :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe AvailSuppression) putPlaybackConfiguration_availSuppression = Lens.lens (\PutPlaybackConfiguration' {availSuppression} -> availSuppression) (\s@PutPlaybackConfiguration' {} a -> s {availSuppression = a} :: PutPlaybackConfiguration) -- | The configuration for bumpers. Bumpers are short audio or video clips -- that play at the start or before the end of an ad break. To learn more -- about bumpers, see -- . putPlaybackConfiguration_bumper :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe Bumper) putPlaybackConfiguration_bumper = Lens.lens (\PutPlaybackConfiguration' {bumper} -> bumper) (\s@PutPlaybackConfiguration' {} a -> s {bumper = a} :: PutPlaybackConfiguration) -- | The configuration for using a content delivery network (CDN), like -- Amazon CloudFront, for content and ad segment management. putPlaybackConfiguration_cdnConfiguration :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe CdnConfiguration) putPlaybackConfiguration_cdnConfiguration = Lens.lens (\PutPlaybackConfiguration' {cdnConfiguration} -> cdnConfiguration) (\s@PutPlaybackConfiguration' {} a -> s {cdnConfiguration = a} :: PutPlaybackConfiguration) -- | The player parameters and aliases used as dynamic variables during -- session initialization. For more information, see -- . putPlaybackConfiguration_configurationAliases :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text))) putPlaybackConfiguration_configurationAliases = Lens.lens (\PutPlaybackConfiguration' {configurationAliases} -> configurationAliases) (\s@PutPlaybackConfiguration' {} a -> s {configurationAliases = a} :: PutPlaybackConfiguration) Prelude.. Lens.mapping Lens.coerced -- | The configuration for DASH content. putPlaybackConfiguration_dashConfiguration :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe DashConfigurationForPut) putPlaybackConfiguration_dashConfiguration = Lens.lens (\PutPlaybackConfiguration' {dashConfiguration} -> dashConfiguration) (\s@PutPlaybackConfiguration' {} a -> s {dashConfiguration = a} :: PutPlaybackConfiguration) -- | The configuration for pre-roll ad insertion. putPlaybackConfiguration_livePreRollConfiguration :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe LivePreRollConfiguration) putPlaybackConfiguration_livePreRollConfiguration = Lens.lens (\PutPlaybackConfiguration' {livePreRollConfiguration} -> livePreRollConfiguration) (\s@PutPlaybackConfiguration' {} a -> s {livePreRollConfiguration = a} :: PutPlaybackConfiguration) -- | The configuration for manifest processing rules. Manifest processing -- rules enable customization of the personalized manifests created by -- MediaTailor. putPlaybackConfiguration_manifestProcessingRules :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe ManifestProcessingRules) putPlaybackConfiguration_manifestProcessingRules = Lens.lens (\PutPlaybackConfiguration' {manifestProcessingRules} -> manifestProcessingRules) (\s@PutPlaybackConfiguration' {} a -> s {manifestProcessingRules = a} :: PutPlaybackConfiguration) -- | Defines the maximum duration of underfilled ad time (in seconds) allowed -- in an ad break. If the duration of underfilled ad time exceeds the -- personalization threshold, then the personalization of the ad break is -- abandoned and the underlying content is shown. This feature applies to -- /ad replacement/ in live and VOD streams, rather than ad insertion, -- because it relies on an underlying content stream. For more information -- about ad break behavior, including ad replacement and insertion, see -- . putPlaybackConfiguration_personalizationThresholdSeconds :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe Prelude.Natural) putPlaybackConfiguration_personalizationThresholdSeconds = Lens.lens (\PutPlaybackConfiguration' {personalizationThresholdSeconds} -> personalizationThresholdSeconds) (\s@PutPlaybackConfiguration' {} a -> s {personalizationThresholdSeconds = a} :: PutPlaybackConfiguration) -- | The URL for a high-quality video asset to transcode and use to fill in -- time that\'s not used by ads. AWS Elemental MediaTailor shows the slate -- to fill in gaps in media content. Configuring the slate is optional for -- non-VPAID configurations. For VPAID, the slate is required because -- MediaTailor provides it in the slots that are designated for dynamic ad -- content. The slate must be a high-quality asset that contains both audio -- and video. putPlaybackConfiguration_slateAdUrl :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe Prelude.Text) putPlaybackConfiguration_slateAdUrl = Lens.lens (\PutPlaybackConfiguration' {slateAdUrl} -> slateAdUrl) (\s@PutPlaybackConfiguration' {} a -> s {slateAdUrl = a} :: PutPlaybackConfiguration) -- | The tags to assign to the playback configuration. Tags are key-value -- pairs that you can associate with Amazon resources to help with -- organization, access control, and cost tracking. For more information, -- see -- . putPlaybackConfiguration_tags :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)) putPlaybackConfiguration_tags = Lens.lens (\PutPlaybackConfiguration' {tags} -> tags) (\s@PutPlaybackConfiguration' {} a -> s {tags = a} :: PutPlaybackConfiguration) Prelude.. Lens.mapping Lens.coerced -- | The name that is used to associate this playback configuration with a -- custom transcode profile. This overrides the dynamic transcoding -- defaults of MediaTailor. Use this only if you have already set up custom -- profiles with the help of AWS Support. putPlaybackConfiguration_transcodeProfileName :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe Prelude.Text) putPlaybackConfiguration_transcodeProfileName = Lens.lens (\PutPlaybackConfiguration' {transcodeProfileName} -> transcodeProfileName) (\s@PutPlaybackConfiguration' {} a -> s {transcodeProfileName = a} :: PutPlaybackConfiguration) -- | The URL prefix for the parent manifest for the stream, minus the asset -- ID. The maximum length is 512 characters. putPlaybackConfiguration_videoContentSourceUrl :: Lens.Lens' PutPlaybackConfiguration (Prelude.Maybe Prelude.Text) putPlaybackConfiguration_videoContentSourceUrl = Lens.lens (\PutPlaybackConfiguration' {videoContentSourceUrl} -> videoContentSourceUrl) (\s@PutPlaybackConfiguration' {} a -> s {videoContentSourceUrl = a} :: PutPlaybackConfiguration) -- | The identifier for the playback configuration. putPlaybackConfiguration_name :: Lens.Lens' PutPlaybackConfiguration Prelude.Text putPlaybackConfiguration_name = Lens.lens (\PutPlaybackConfiguration' {name} -> name) (\s@PutPlaybackConfiguration' {} a -> s {name = a} :: PutPlaybackConfiguration) instance Core.AWSRequest PutPlaybackConfiguration where type AWSResponse PutPlaybackConfiguration = PutPlaybackConfigurationResponse request overrides = Request.putJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> PutPlaybackConfigurationResponse' Prelude.<$> (x Data..?> "AdDecisionServerUrl") Prelude.<*> (x Data..?> "AvailSuppression") Prelude.<*> (x Data..?> "Bumper") Prelude.<*> (x Data..?> "CdnConfiguration") Prelude.<*> ( x Data..?> "ConfigurationAliases" Core..!@ Prelude.mempty ) Prelude.<*> (x Data..?> "DashConfiguration") Prelude.<*> (x Data..?> "HlsConfiguration") Prelude.<*> (x Data..?> "LivePreRollConfiguration") Prelude.<*> (x Data..?> "LogConfiguration") Prelude.<*> (x Data..?> "ManifestProcessingRules") Prelude.<*> (x Data..?> "Name") Prelude.<*> (x Data..?> "PersonalizationThresholdSeconds") Prelude.<*> (x Data..?> "PlaybackConfigurationArn") Prelude.<*> (x Data..?> "PlaybackEndpointPrefix") Prelude.<*> (x Data..?> "SessionInitializationEndpointPrefix") Prelude.<*> (x Data..?> "SlateAdUrl") Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty) Prelude.<*> (x Data..?> "TranscodeProfileName") Prelude.<*> (x Data..?> "VideoContentSourceUrl") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable PutPlaybackConfiguration where hashWithSalt _salt PutPlaybackConfiguration' {..} = _salt `Prelude.hashWithSalt` adDecisionServerUrl `Prelude.hashWithSalt` availSuppression `Prelude.hashWithSalt` bumper `Prelude.hashWithSalt` cdnConfiguration `Prelude.hashWithSalt` configurationAliases `Prelude.hashWithSalt` dashConfiguration `Prelude.hashWithSalt` livePreRollConfiguration `Prelude.hashWithSalt` manifestProcessingRules `Prelude.hashWithSalt` personalizationThresholdSeconds `Prelude.hashWithSalt` slateAdUrl `Prelude.hashWithSalt` tags `Prelude.hashWithSalt` transcodeProfileName `Prelude.hashWithSalt` videoContentSourceUrl `Prelude.hashWithSalt` name instance Prelude.NFData PutPlaybackConfiguration where rnf PutPlaybackConfiguration' {..} = Prelude.rnf adDecisionServerUrl `Prelude.seq` Prelude.rnf availSuppression `Prelude.seq` Prelude.rnf bumper `Prelude.seq` Prelude.rnf cdnConfiguration `Prelude.seq` Prelude.rnf configurationAliases `Prelude.seq` Prelude.rnf dashConfiguration `Prelude.seq` Prelude.rnf livePreRollConfiguration `Prelude.seq` Prelude.rnf manifestProcessingRules `Prelude.seq` Prelude.rnf personalizationThresholdSeconds `Prelude.seq` Prelude.rnf slateAdUrl `Prelude.seq` Prelude.rnf tags `Prelude.seq` Prelude.rnf transcodeProfileName `Prelude.seq` Prelude.rnf videoContentSourceUrl `Prelude.seq` Prelude.rnf name instance Data.ToHeaders PutPlaybackConfiguration where toHeaders = Prelude.const ( Prelude.mconcat [ "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON PutPlaybackConfiguration where toJSON PutPlaybackConfiguration' {..} = Data.object ( Prelude.catMaybes [ ("AdDecisionServerUrl" Data..=) Prelude.<$> adDecisionServerUrl, ("AvailSuppression" Data..=) Prelude.<$> availSuppression, ("Bumper" Data..=) Prelude.<$> bumper, ("CdnConfiguration" Data..=) Prelude.<$> cdnConfiguration, ("ConfigurationAliases" Data..=) Prelude.<$> configurationAliases, ("DashConfiguration" Data..=) Prelude.<$> dashConfiguration, ("LivePreRollConfiguration" Data..=) Prelude.<$> livePreRollConfiguration, ("ManifestProcessingRules" Data..=) Prelude.<$> manifestProcessingRules, ("PersonalizationThresholdSeconds" Data..=) Prelude.<$> personalizationThresholdSeconds, ("SlateAdUrl" Data..=) Prelude.<$> slateAdUrl, ("tags" Data..=) Prelude.<$> tags, ("TranscodeProfileName" Data..=) Prelude.<$> transcodeProfileName, ("VideoContentSourceUrl" Data..=) Prelude.<$> videoContentSourceUrl, Prelude.Just ("Name" Data..= name) ] ) instance Data.ToPath PutPlaybackConfiguration where toPath = Prelude.const "/playbackConfiguration" instance Data.ToQuery PutPlaybackConfiguration where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newPutPlaybackConfigurationResponse' smart constructor. data PutPlaybackConfigurationResponse = PutPlaybackConfigurationResponse' { -- | The URL for the ad decision server (ADS). This includes the -- specification of static parameters and placeholders for dynamic -- parameters. AWS Elemental MediaTailor substitutes player-specific and -- session-specific parameters as needed when calling the ADS. Alternately, -- for testing you can provide a static VAST URL. The maximum length is -- 25,000 characters. adDecisionServerUrl :: Prelude.Maybe Prelude.Text, -- | The configuration for avail suppression, also known as ad suppression. -- For more information about ad suppression, see -- . 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 -- . bumper :: Prelude.Maybe Bumper, -- | The configuration for using a content delivery network (CDN), like -- Amazon CloudFront, for content and ad segment management. cdnConfiguration :: Prelude.Maybe CdnConfiguration, -- | The player parameters and aliases used as dynamic variables during -- session initialization. For more information, see -- . configurationAliases :: Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)), -- | The configuration for DASH content. dashConfiguration :: Prelude.Maybe DashConfiguration, -- | The configuration for HLS content. hlsConfiguration :: Prelude.Maybe HlsConfiguration, -- | The configuration for pre-roll ad insertion. livePreRollConfiguration :: Prelude.Maybe LivePreRollConfiguration, -- | The Amazon CloudWatch log settings for a playback configuration. logConfiguration :: Prelude.Maybe LogConfiguration, -- | The configuration for manifest processing rules. Manifest processing -- rules enable customization of the personalized manifests created by -- MediaTailor. manifestProcessingRules :: Prelude.Maybe ManifestProcessingRules, -- | The identifier for the playback configuration. name :: Prelude.Maybe Prelude.Text, -- | Defines the maximum duration of underfilled ad time (in seconds) allowed -- in an ad break. If the duration of underfilled ad time exceeds the -- personalization threshold, then the personalization of the ad break is -- abandoned and the underlying content is shown. This feature applies to -- /ad replacement/ in live and VOD streams, rather than ad insertion, -- because it relies on an underlying content stream. For more information -- about ad break behavior, including ad replacement and insertion, see -- . personalizationThresholdSeconds :: Prelude.Maybe Prelude.Natural, -- | The Amazon Resource Name (ARN) associated with the playback -- configuration. playbackConfigurationArn :: Prelude.Maybe Prelude.Text, -- | The playback endpoint prefix associated with the playback configuration. playbackEndpointPrefix :: Prelude.Maybe Prelude.Text, -- | The session initialization endpoint prefix associated with the playback -- configuration. sessionInitializationEndpointPrefix :: Prelude.Maybe Prelude.Text, -- | The URL for a high-quality video asset to transcode and use to fill in -- time that\'s not used by ads. AWS Elemental MediaTailor shows the slate -- to fill in gaps in media content. Configuring the slate is optional for -- non-VPAID configurations. For VPAID, the slate is required because -- MediaTailor provides it in the slots that are designated for dynamic ad -- content. The slate must be a high-quality asset that contains both audio -- and video. slateAdUrl :: Prelude.Maybe Prelude.Text, -- | The tags to assign to the playback configuration. Tags are key-value -- pairs that you can associate with Amazon resources to help with -- organization, access control, and cost tracking. For more information, -- see -- . tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text), -- | The name that is used to associate this playback configuration with a -- custom transcode profile. This overrides the dynamic transcoding -- defaults of MediaTailor. Use this only if you have already set up custom -- profiles with the help of AWS Support. transcodeProfileName :: Prelude.Maybe Prelude.Text, -- | The URL prefix for the parent manifest for the stream, minus the asset -- ID. The maximum length is 512 characters. videoContentSourceUrl :: Prelude.Maybe Prelude.Text, -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'PutPlaybackConfigurationResponse' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'adDecisionServerUrl', 'putPlaybackConfigurationResponse_adDecisionServerUrl' - The URL for the ad decision server (ADS). This includes the -- specification of static parameters and placeholders for dynamic -- parameters. AWS Elemental MediaTailor substitutes player-specific and -- session-specific parameters as needed when calling the ADS. Alternately, -- for testing you can provide a static VAST URL. The maximum length is -- 25,000 characters. -- -- 'availSuppression', 'putPlaybackConfigurationResponse_availSuppression' - The configuration for avail suppression, also known as ad suppression. -- For more information about ad suppression, see -- . -- -- '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 -- . -- -- 'cdnConfiguration', 'putPlaybackConfigurationResponse_cdnConfiguration' - The configuration for using a content delivery network (CDN), like -- Amazon CloudFront, for content and ad segment management. -- -- 'configurationAliases', 'putPlaybackConfigurationResponse_configurationAliases' - The player parameters and aliases used as dynamic variables during -- session initialization. For more information, see -- . -- -- 'dashConfiguration', 'putPlaybackConfigurationResponse_dashConfiguration' - The configuration for DASH content. -- -- 'hlsConfiguration', 'putPlaybackConfigurationResponse_hlsConfiguration' - The configuration for HLS content. -- -- 'livePreRollConfiguration', 'putPlaybackConfigurationResponse_livePreRollConfiguration' - The configuration for pre-roll ad insertion. -- -- 'logConfiguration', 'putPlaybackConfigurationResponse_logConfiguration' - The Amazon CloudWatch log settings for a playback configuration. -- -- 'manifestProcessingRules', 'putPlaybackConfigurationResponse_manifestProcessingRules' - The configuration for manifest processing rules. Manifest processing -- rules enable customization of the personalized manifests created by -- MediaTailor. -- -- 'name', 'putPlaybackConfigurationResponse_name' - The identifier for the playback configuration. -- -- 'personalizationThresholdSeconds', 'putPlaybackConfigurationResponse_personalizationThresholdSeconds' - Defines the maximum duration of underfilled ad time (in seconds) allowed -- in an ad break. If the duration of underfilled ad time exceeds the -- personalization threshold, then the personalization of the ad break is -- abandoned and the underlying content is shown. This feature applies to -- /ad replacement/ in live and VOD streams, rather than ad insertion, -- because it relies on an underlying content stream. For more information -- about ad break behavior, including ad replacement and insertion, see -- . -- -- 'playbackConfigurationArn', 'putPlaybackConfigurationResponse_playbackConfigurationArn' - The Amazon Resource Name (ARN) associated with the playback -- configuration. -- -- 'playbackEndpointPrefix', 'putPlaybackConfigurationResponse_playbackEndpointPrefix' - The playback endpoint prefix associated with the playback configuration. -- -- 'sessionInitializationEndpointPrefix', 'putPlaybackConfigurationResponse_sessionInitializationEndpointPrefix' - The session initialization endpoint prefix associated with the playback -- configuration. -- -- 'slateAdUrl', 'putPlaybackConfigurationResponse_slateAdUrl' - The URL for a high-quality video asset to transcode and use to fill in -- time that\'s not used by ads. AWS Elemental MediaTailor shows the slate -- to fill in gaps in media content. Configuring the slate is optional for -- non-VPAID configurations. For VPAID, the slate is required because -- MediaTailor provides it in the slots that are designated for dynamic ad -- content. The slate must be a high-quality asset that contains both audio -- and video. -- -- 'tags', 'putPlaybackConfigurationResponse_tags' - The tags to assign to the playback configuration. Tags are key-value -- pairs that you can associate with Amazon resources to help with -- organization, access control, and cost tracking. For more information, -- see -- . -- -- 'transcodeProfileName', 'putPlaybackConfigurationResponse_transcodeProfileName' - The name that is used to associate this playback configuration with a -- custom transcode profile. This overrides the dynamic transcoding -- defaults of MediaTailor. Use this only if you have already set up custom -- profiles with the help of AWS Support. -- -- 'videoContentSourceUrl', 'putPlaybackConfigurationResponse_videoContentSourceUrl' - The URL prefix for the parent manifest for the stream, minus the asset -- ID. The maximum length is 512 characters. -- -- 'httpStatus', 'putPlaybackConfigurationResponse_httpStatus' - The response's http status code. newPutPlaybackConfigurationResponse :: -- | 'httpStatus' Prelude.Int -> PutPlaybackConfigurationResponse newPutPlaybackConfigurationResponse pHttpStatus_ = PutPlaybackConfigurationResponse' { adDecisionServerUrl = Prelude.Nothing, availSuppression = Prelude.Nothing, bumper = Prelude.Nothing, cdnConfiguration = Prelude.Nothing, configurationAliases = Prelude.Nothing, dashConfiguration = Prelude.Nothing, hlsConfiguration = Prelude.Nothing, livePreRollConfiguration = Prelude.Nothing, logConfiguration = Prelude.Nothing, manifestProcessingRules = Prelude.Nothing, name = Prelude.Nothing, personalizationThresholdSeconds = Prelude.Nothing, playbackConfigurationArn = Prelude.Nothing, playbackEndpointPrefix = Prelude.Nothing, sessionInitializationEndpointPrefix = Prelude.Nothing, slateAdUrl = Prelude.Nothing, tags = Prelude.Nothing, transcodeProfileName = Prelude.Nothing, videoContentSourceUrl = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | The URL for the ad decision server (ADS). This includes the -- specification of static parameters and placeholders for dynamic -- parameters. AWS Elemental MediaTailor substitutes player-specific and -- session-specific parameters as needed when calling the ADS. Alternately, -- for testing you can provide a static VAST URL. The maximum length is -- 25,000 characters. putPlaybackConfigurationResponse_adDecisionServerUrl :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text) putPlaybackConfigurationResponse_adDecisionServerUrl = Lens.lens (\PutPlaybackConfigurationResponse' {adDecisionServerUrl} -> adDecisionServerUrl) (\s@PutPlaybackConfigurationResponse' {} a -> s {adDecisionServerUrl = a} :: PutPlaybackConfigurationResponse) -- | The configuration for avail suppression, also known as ad suppression. -- For more information about ad suppression, see -- . putPlaybackConfigurationResponse_availSuppression :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe AvailSuppression) putPlaybackConfigurationResponse_availSuppression = Lens.lens (\PutPlaybackConfigurationResponse' {availSuppression} -> availSuppression) (\s@PutPlaybackConfigurationResponse' {} a -> s {availSuppression = a} :: PutPlaybackConfigurationResponse) -- | The configuration for bumpers. Bumpers are short audio or video clips -- that play at the start or before the end of an ad break. To learn more -- about bumpers, see -- . putPlaybackConfigurationResponse_bumper :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe Bumper) putPlaybackConfigurationResponse_bumper = Lens.lens (\PutPlaybackConfigurationResponse' {bumper} -> bumper) (\s@PutPlaybackConfigurationResponse' {} a -> s {bumper = a} :: PutPlaybackConfigurationResponse) -- | The configuration for using a content delivery network (CDN), like -- Amazon CloudFront, for content and ad segment management. putPlaybackConfigurationResponse_cdnConfiguration :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe CdnConfiguration) putPlaybackConfigurationResponse_cdnConfiguration = Lens.lens (\PutPlaybackConfigurationResponse' {cdnConfiguration} -> cdnConfiguration) (\s@PutPlaybackConfigurationResponse' {} a -> s {cdnConfiguration = a} :: PutPlaybackConfigurationResponse) -- | The player parameters and aliases used as dynamic variables during -- session initialization. For more information, see -- . putPlaybackConfigurationResponse_configurationAliases :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text))) putPlaybackConfigurationResponse_configurationAliases = Lens.lens (\PutPlaybackConfigurationResponse' {configurationAliases} -> configurationAliases) (\s@PutPlaybackConfigurationResponse' {} a -> s {configurationAliases = a} :: PutPlaybackConfigurationResponse) Prelude.. Lens.mapping Lens.coerced -- | The configuration for DASH content. putPlaybackConfigurationResponse_dashConfiguration :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe DashConfiguration) putPlaybackConfigurationResponse_dashConfiguration = Lens.lens (\PutPlaybackConfigurationResponse' {dashConfiguration} -> dashConfiguration) (\s@PutPlaybackConfigurationResponse' {} a -> s {dashConfiguration = a} :: PutPlaybackConfigurationResponse) -- | The configuration for HLS content. putPlaybackConfigurationResponse_hlsConfiguration :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe HlsConfiguration) putPlaybackConfigurationResponse_hlsConfiguration = Lens.lens (\PutPlaybackConfigurationResponse' {hlsConfiguration} -> hlsConfiguration) (\s@PutPlaybackConfigurationResponse' {} a -> s {hlsConfiguration = a} :: PutPlaybackConfigurationResponse) -- | The configuration for pre-roll ad insertion. putPlaybackConfigurationResponse_livePreRollConfiguration :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe LivePreRollConfiguration) putPlaybackConfigurationResponse_livePreRollConfiguration = Lens.lens (\PutPlaybackConfigurationResponse' {livePreRollConfiguration} -> livePreRollConfiguration) (\s@PutPlaybackConfigurationResponse' {} a -> s {livePreRollConfiguration = a} :: PutPlaybackConfigurationResponse) -- | The Amazon CloudWatch log settings for a playback configuration. putPlaybackConfigurationResponse_logConfiguration :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe LogConfiguration) putPlaybackConfigurationResponse_logConfiguration = Lens.lens (\PutPlaybackConfigurationResponse' {logConfiguration} -> logConfiguration) (\s@PutPlaybackConfigurationResponse' {} a -> s {logConfiguration = a} :: PutPlaybackConfigurationResponse) -- | The configuration for manifest processing rules. Manifest processing -- rules enable customization of the personalized manifests created by -- MediaTailor. putPlaybackConfigurationResponse_manifestProcessingRules :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe ManifestProcessingRules) putPlaybackConfigurationResponse_manifestProcessingRules = Lens.lens (\PutPlaybackConfigurationResponse' {manifestProcessingRules} -> manifestProcessingRules) (\s@PutPlaybackConfigurationResponse' {} a -> s {manifestProcessingRules = a} :: PutPlaybackConfigurationResponse) -- | The identifier for the playback configuration. putPlaybackConfigurationResponse_name :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text) putPlaybackConfigurationResponse_name = Lens.lens (\PutPlaybackConfigurationResponse' {name} -> name) (\s@PutPlaybackConfigurationResponse' {} a -> s {name = a} :: PutPlaybackConfigurationResponse) -- | Defines the maximum duration of underfilled ad time (in seconds) allowed -- in an ad break. If the duration of underfilled ad time exceeds the -- personalization threshold, then the personalization of the ad break is -- abandoned and the underlying content is shown. This feature applies to -- /ad replacement/ in live and VOD streams, rather than ad insertion, -- because it relies on an underlying content stream. For more information -- about ad break behavior, including ad replacement and insertion, see -- . putPlaybackConfigurationResponse_personalizationThresholdSeconds :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe Prelude.Natural) putPlaybackConfigurationResponse_personalizationThresholdSeconds = Lens.lens (\PutPlaybackConfigurationResponse' {personalizationThresholdSeconds} -> personalizationThresholdSeconds) (\s@PutPlaybackConfigurationResponse' {} a -> s {personalizationThresholdSeconds = a} :: PutPlaybackConfigurationResponse) -- | The Amazon Resource Name (ARN) associated with the playback -- configuration. putPlaybackConfigurationResponse_playbackConfigurationArn :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text) putPlaybackConfigurationResponse_playbackConfigurationArn = Lens.lens (\PutPlaybackConfigurationResponse' {playbackConfigurationArn} -> playbackConfigurationArn) (\s@PutPlaybackConfigurationResponse' {} a -> s {playbackConfigurationArn = a} :: PutPlaybackConfigurationResponse) -- | The playback endpoint prefix associated with the playback configuration. putPlaybackConfigurationResponse_playbackEndpointPrefix :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text) putPlaybackConfigurationResponse_playbackEndpointPrefix = Lens.lens (\PutPlaybackConfigurationResponse' {playbackEndpointPrefix} -> playbackEndpointPrefix) (\s@PutPlaybackConfigurationResponse' {} a -> s {playbackEndpointPrefix = a} :: PutPlaybackConfigurationResponse) -- | The session initialization endpoint prefix associated with the playback -- configuration. putPlaybackConfigurationResponse_sessionInitializationEndpointPrefix :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text) putPlaybackConfigurationResponse_sessionInitializationEndpointPrefix = Lens.lens (\PutPlaybackConfigurationResponse' {sessionInitializationEndpointPrefix} -> sessionInitializationEndpointPrefix) (\s@PutPlaybackConfigurationResponse' {} a -> s {sessionInitializationEndpointPrefix = a} :: PutPlaybackConfigurationResponse) -- | The URL for a high-quality video asset to transcode and use to fill in -- time that\'s not used by ads. AWS Elemental MediaTailor shows the slate -- to fill in gaps in media content. Configuring the slate is optional for -- non-VPAID configurations. For VPAID, the slate is required because -- MediaTailor provides it in the slots that are designated for dynamic ad -- content. The slate must be a high-quality asset that contains both audio -- and video. putPlaybackConfigurationResponse_slateAdUrl :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text) putPlaybackConfigurationResponse_slateAdUrl = Lens.lens (\PutPlaybackConfigurationResponse' {slateAdUrl} -> slateAdUrl) (\s@PutPlaybackConfigurationResponse' {} a -> s {slateAdUrl = a} :: PutPlaybackConfigurationResponse) -- | The tags to assign to the playback configuration. Tags are key-value -- pairs that you can associate with Amazon resources to help with -- organization, access control, and cost tracking. For more information, -- see -- . putPlaybackConfigurationResponse_tags :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)) putPlaybackConfigurationResponse_tags = Lens.lens (\PutPlaybackConfigurationResponse' {tags} -> tags) (\s@PutPlaybackConfigurationResponse' {} a -> s {tags = a} :: PutPlaybackConfigurationResponse) Prelude.. Lens.mapping Lens.coerced -- | The name that is used to associate this playback configuration with a -- custom transcode profile. This overrides the dynamic transcoding -- defaults of MediaTailor. Use this only if you have already set up custom -- profiles with the help of AWS Support. putPlaybackConfigurationResponse_transcodeProfileName :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text) putPlaybackConfigurationResponse_transcodeProfileName = Lens.lens (\PutPlaybackConfigurationResponse' {transcodeProfileName} -> transcodeProfileName) (\s@PutPlaybackConfigurationResponse' {} a -> s {transcodeProfileName = a} :: PutPlaybackConfigurationResponse) -- | The URL prefix for the parent manifest for the stream, minus the asset -- ID. The maximum length is 512 characters. putPlaybackConfigurationResponse_videoContentSourceUrl :: Lens.Lens' PutPlaybackConfigurationResponse (Prelude.Maybe Prelude.Text) putPlaybackConfigurationResponse_videoContentSourceUrl = Lens.lens (\PutPlaybackConfigurationResponse' {videoContentSourceUrl} -> videoContentSourceUrl) (\s@PutPlaybackConfigurationResponse' {} a -> s {videoContentSourceUrl = a} :: PutPlaybackConfigurationResponse) -- | The response's http status code. putPlaybackConfigurationResponse_httpStatus :: Lens.Lens' PutPlaybackConfigurationResponse Prelude.Int putPlaybackConfigurationResponse_httpStatus = Lens.lens (\PutPlaybackConfigurationResponse' {httpStatus} -> httpStatus) (\s@PutPlaybackConfigurationResponse' {} a -> s {httpStatus = a} :: PutPlaybackConfigurationResponse) instance Prelude.NFData PutPlaybackConfigurationResponse where rnf PutPlaybackConfigurationResponse' {..} = Prelude.rnf adDecisionServerUrl `Prelude.seq` Prelude.rnf availSuppression `Prelude.seq` Prelude.rnf bumper `Prelude.seq` Prelude.rnf cdnConfiguration `Prelude.seq` Prelude.rnf configurationAliases `Prelude.seq` Prelude.rnf dashConfiguration `Prelude.seq` Prelude.rnf hlsConfiguration `Prelude.seq` Prelude.rnf livePreRollConfiguration `Prelude.seq` Prelude.rnf logConfiguration `Prelude.seq` Prelude.rnf manifestProcessingRules `Prelude.seq` Prelude.rnf name `Prelude.seq` Prelude.rnf personalizationThresholdSeconds `Prelude.seq` Prelude.rnf playbackConfigurationArn `Prelude.seq` Prelude.rnf playbackEndpointPrefix `Prelude.seq` Prelude.rnf sessionInitializationEndpointPrefix `Prelude.seq` Prelude.rnf slateAdUrl `Prelude.seq` Prelude.rnf tags `Prelude.seq` Prelude.rnf transcodeProfileName `Prelude.seq` Prelude.rnf videoContentSourceUrl `Prelude.seq` Prelude.rnf httpStatus