{-# 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.ChimeSdkMediaPipelines.CreateMediaConcatenationPipeline
-- 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 media concatenation pipeline.
module Amazonka.ChimeSdkMediaPipelines.CreateMediaConcatenationPipeline
  ( -- * Creating a Request
    CreateMediaConcatenationPipeline (..),
    newCreateMediaConcatenationPipeline,

    -- * Request Lenses
    createMediaConcatenationPipeline_clientRequestToken,
    createMediaConcatenationPipeline_tags,
    createMediaConcatenationPipeline_sources,
    createMediaConcatenationPipeline_sinks,

    -- * Destructuring the Response
    CreateMediaConcatenationPipelineResponse (..),
    newCreateMediaConcatenationPipelineResponse,

    -- * Response Lenses
    createMediaConcatenationPipelineResponse_mediaConcatenationPipeline,
    createMediaConcatenationPipelineResponse_httpStatus,
  )
where

import Amazonka.ChimeSdkMediaPipelines.Types
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newCreateMediaConcatenationPipeline' smart constructor.
data CreateMediaConcatenationPipeline = CreateMediaConcatenationPipeline'
  { -- | The unique identifier for the client request. The token makes the API
    -- request idempotent. Use a unique token for each media concatenation
    -- pipeline request.
    CreateMediaConcatenationPipeline -> Maybe (Sensitive Text)
clientRequestToken :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | The tags associated with the media concatenation pipeline.
    CreateMediaConcatenationPipeline -> Maybe (NonEmpty Tag)
tags :: Prelude.Maybe (Prelude.NonEmpty Tag),
    -- | An object that specifies the sources for the media concatenation
    -- pipeline.
    CreateMediaConcatenationPipeline -> NonEmpty ConcatenationSource
sources :: Prelude.NonEmpty ConcatenationSource,
    -- | An object that specifies the data sinks for the media concatenation
    -- pipeline.
    CreateMediaConcatenationPipeline -> NonEmpty ConcatenationSink
sinks :: Prelude.NonEmpty ConcatenationSink
  }
  deriving (CreateMediaConcatenationPipeline
-> CreateMediaConcatenationPipeline -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateMediaConcatenationPipeline
-> CreateMediaConcatenationPipeline -> Bool
$c/= :: CreateMediaConcatenationPipeline
-> CreateMediaConcatenationPipeline -> Bool
== :: CreateMediaConcatenationPipeline
-> CreateMediaConcatenationPipeline -> Bool
$c== :: CreateMediaConcatenationPipeline
-> CreateMediaConcatenationPipeline -> Bool
Prelude.Eq, Int -> CreateMediaConcatenationPipeline -> ShowS
[CreateMediaConcatenationPipeline] -> ShowS
CreateMediaConcatenationPipeline -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateMediaConcatenationPipeline] -> ShowS
$cshowList :: [CreateMediaConcatenationPipeline] -> ShowS
show :: CreateMediaConcatenationPipeline -> String
$cshow :: CreateMediaConcatenationPipeline -> String
showsPrec :: Int -> CreateMediaConcatenationPipeline -> ShowS
$cshowsPrec :: Int -> CreateMediaConcatenationPipeline -> ShowS
Prelude.Show, forall x.
Rep CreateMediaConcatenationPipeline x
-> CreateMediaConcatenationPipeline
forall x.
CreateMediaConcatenationPipeline
-> Rep CreateMediaConcatenationPipeline x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateMediaConcatenationPipeline x
-> CreateMediaConcatenationPipeline
$cfrom :: forall x.
CreateMediaConcatenationPipeline
-> Rep CreateMediaConcatenationPipeline x
Prelude.Generic)

-- |
-- Create a value of 'CreateMediaConcatenationPipeline' 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:
--
-- 'clientRequestToken', 'createMediaConcatenationPipeline_clientRequestToken' - The unique identifier for the client request. The token makes the API
-- request idempotent. Use a unique token for each media concatenation
-- pipeline request.
--
-- 'tags', 'createMediaConcatenationPipeline_tags' - The tags associated with the media concatenation pipeline.
--
-- 'sources', 'createMediaConcatenationPipeline_sources' - An object that specifies the sources for the media concatenation
-- pipeline.
--
-- 'sinks', 'createMediaConcatenationPipeline_sinks' - An object that specifies the data sinks for the media concatenation
-- pipeline.
newCreateMediaConcatenationPipeline ::
  -- | 'sources'
  Prelude.NonEmpty ConcatenationSource ->
  -- | 'sinks'
  Prelude.NonEmpty ConcatenationSink ->
  CreateMediaConcatenationPipeline
newCreateMediaConcatenationPipeline :: NonEmpty ConcatenationSource
-> NonEmpty ConcatenationSink -> CreateMediaConcatenationPipeline
newCreateMediaConcatenationPipeline NonEmpty ConcatenationSource
pSources_ NonEmpty ConcatenationSink
pSinks_ =
  CreateMediaConcatenationPipeline'
    { $sel:clientRequestToken:CreateMediaConcatenationPipeline' :: Maybe (Sensitive Text)
clientRequestToken =
        forall a. Maybe a
Prelude.Nothing,
      $sel:tags:CreateMediaConcatenationPipeline' :: Maybe (NonEmpty Tag)
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:sources:CreateMediaConcatenationPipeline' :: NonEmpty ConcatenationSource
sources = forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced forall t b. AReview t b -> b -> t
Lens.# NonEmpty ConcatenationSource
pSources_,
      $sel:sinks:CreateMediaConcatenationPipeline' :: NonEmpty ConcatenationSink
sinks = forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced forall t b. AReview t b -> b -> t
Lens.# NonEmpty ConcatenationSink
pSinks_
    }

-- | The unique identifier for the client request. The token makes the API
-- request idempotent. Use a unique token for each media concatenation
-- pipeline request.
createMediaConcatenationPipeline_clientRequestToken :: Lens.Lens' CreateMediaConcatenationPipeline (Prelude.Maybe Prelude.Text)
createMediaConcatenationPipeline_clientRequestToken :: Lens' CreateMediaConcatenationPipeline (Maybe Text)
createMediaConcatenationPipeline_clientRequestToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateMediaConcatenationPipeline' {Maybe (Sensitive Text)
clientRequestToken :: Maybe (Sensitive Text)
$sel:clientRequestToken:CreateMediaConcatenationPipeline' :: CreateMediaConcatenationPipeline -> Maybe (Sensitive Text)
clientRequestToken} -> Maybe (Sensitive Text)
clientRequestToken) (\s :: CreateMediaConcatenationPipeline
s@CreateMediaConcatenationPipeline' {} Maybe (Sensitive Text)
a -> CreateMediaConcatenationPipeline
s {$sel:clientRequestToken:CreateMediaConcatenationPipeline' :: Maybe (Sensitive Text)
clientRequestToken = Maybe (Sensitive Text)
a} :: CreateMediaConcatenationPipeline) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. 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 forall a. Iso' (Sensitive a) a
Data._Sensitive

-- | The tags associated with the media concatenation pipeline.
createMediaConcatenationPipeline_tags :: Lens.Lens' CreateMediaConcatenationPipeline (Prelude.Maybe (Prelude.NonEmpty Tag))
createMediaConcatenationPipeline_tags :: Lens' CreateMediaConcatenationPipeline (Maybe (NonEmpty Tag))
createMediaConcatenationPipeline_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateMediaConcatenationPipeline' {Maybe (NonEmpty Tag)
tags :: Maybe (NonEmpty Tag)
$sel:tags:CreateMediaConcatenationPipeline' :: CreateMediaConcatenationPipeline -> Maybe (NonEmpty Tag)
tags} -> Maybe (NonEmpty Tag)
tags) (\s :: CreateMediaConcatenationPipeline
s@CreateMediaConcatenationPipeline' {} Maybe (NonEmpty Tag)
a -> CreateMediaConcatenationPipeline
s {$sel:tags:CreateMediaConcatenationPipeline' :: Maybe (NonEmpty Tag)
tags = Maybe (NonEmpty Tag)
a} :: CreateMediaConcatenationPipeline) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. 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 forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | An object that specifies the sources for the media concatenation
-- pipeline.
createMediaConcatenationPipeline_sources :: Lens.Lens' CreateMediaConcatenationPipeline (Prelude.NonEmpty ConcatenationSource)
createMediaConcatenationPipeline_sources :: Lens'
  CreateMediaConcatenationPipeline (NonEmpty ConcatenationSource)
createMediaConcatenationPipeline_sources = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateMediaConcatenationPipeline' {NonEmpty ConcatenationSource
sources :: NonEmpty ConcatenationSource
$sel:sources:CreateMediaConcatenationPipeline' :: CreateMediaConcatenationPipeline -> NonEmpty ConcatenationSource
sources} -> NonEmpty ConcatenationSource
sources) (\s :: CreateMediaConcatenationPipeline
s@CreateMediaConcatenationPipeline' {} NonEmpty ConcatenationSource
a -> CreateMediaConcatenationPipeline
s {$sel:sources:CreateMediaConcatenationPipeline' :: NonEmpty ConcatenationSource
sources = NonEmpty ConcatenationSource
a} :: CreateMediaConcatenationPipeline) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | An object that specifies the data sinks for the media concatenation
-- pipeline.
createMediaConcatenationPipeline_sinks :: Lens.Lens' CreateMediaConcatenationPipeline (Prelude.NonEmpty ConcatenationSink)
createMediaConcatenationPipeline_sinks :: Lens' CreateMediaConcatenationPipeline (NonEmpty ConcatenationSink)
createMediaConcatenationPipeline_sinks = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateMediaConcatenationPipeline' {NonEmpty ConcatenationSink
sinks :: NonEmpty ConcatenationSink
$sel:sinks:CreateMediaConcatenationPipeline' :: CreateMediaConcatenationPipeline -> NonEmpty ConcatenationSink
sinks} -> NonEmpty ConcatenationSink
sinks) (\s :: CreateMediaConcatenationPipeline
s@CreateMediaConcatenationPipeline' {} NonEmpty ConcatenationSink
a -> CreateMediaConcatenationPipeline
s {$sel:sinks:CreateMediaConcatenationPipeline' :: NonEmpty ConcatenationSink
sinks = NonEmpty ConcatenationSink
a} :: CreateMediaConcatenationPipeline) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance
  Core.AWSRequest
    CreateMediaConcatenationPipeline
  where
  type
    AWSResponse CreateMediaConcatenationPipeline =
      CreateMediaConcatenationPipelineResponse
  request :: (Service -> Service)
-> CreateMediaConcatenationPipeline
-> Request CreateMediaConcatenationPipeline
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy CreateMediaConcatenationPipeline
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse CreateMediaConcatenationPipeline)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe MediaConcatenationPipeline
-> Int -> CreateMediaConcatenationPipelineResponse
CreateMediaConcatenationPipelineResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"MediaConcatenationPipeline")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance
  Prelude.Hashable
    CreateMediaConcatenationPipeline
  where
  hashWithSalt :: Int -> CreateMediaConcatenationPipeline -> Int
hashWithSalt
    Int
_salt
    CreateMediaConcatenationPipeline' {Maybe (NonEmpty Tag)
Maybe (Sensitive Text)
NonEmpty ConcatenationSink
NonEmpty ConcatenationSource
sinks :: NonEmpty ConcatenationSink
sources :: NonEmpty ConcatenationSource
tags :: Maybe (NonEmpty Tag)
clientRequestToken :: Maybe (Sensitive Text)
$sel:sinks:CreateMediaConcatenationPipeline' :: CreateMediaConcatenationPipeline -> NonEmpty ConcatenationSink
$sel:sources:CreateMediaConcatenationPipeline' :: CreateMediaConcatenationPipeline -> NonEmpty ConcatenationSource
$sel:tags:CreateMediaConcatenationPipeline' :: CreateMediaConcatenationPipeline -> Maybe (NonEmpty Tag)
$sel:clientRequestToken:CreateMediaConcatenationPipeline' :: CreateMediaConcatenationPipeline -> Maybe (Sensitive Text)
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
clientRequestToken
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty Tag)
tags
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` NonEmpty ConcatenationSource
sources
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` NonEmpty ConcatenationSink
sinks

instance
  Prelude.NFData
    CreateMediaConcatenationPipeline
  where
  rnf :: CreateMediaConcatenationPipeline -> ()
rnf CreateMediaConcatenationPipeline' {Maybe (NonEmpty Tag)
Maybe (Sensitive Text)
NonEmpty ConcatenationSink
NonEmpty ConcatenationSource
sinks :: NonEmpty ConcatenationSink
sources :: NonEmpty ConcatenationSource
tags :: Maybe (NonEmpty Tag)
clientRequestToken :: Maybe (Sensitive Text)
$sel:sinks:CreateMediaConcatenationPipeline' :: CreateMediaConcatenationPipeline -> NonEmpty ConcatenationSink
$sel:sources:CreateMediaConcatenationPipeline' :: CreateMediaConcatenationPipeline -> NonEmpty ConcatenationSource
$sel:tags:CreateMediaConcatenationPipeline' :: CreateMediaConcatenationPipeline -> Maybe (NonEmpty Tag)
$sel:clientRequestToken:CreateMediaConcatenationPipeline' :: CreateMediaConcatenationPipeline -> Maybe (Sensitive Text)
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
clientRequestToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty Tag)
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf NonEmpty ConcatenationSource
sources
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf NonEmpty ConcatenationSink
sinks

instance
  Data.ToHeaders
    CreateMediaConcatenationPipeline
  where
  toHeaders :: CreateMediaConcatenationPipeline -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

instance Data.ToJSON CreateMediaConcatenationPipeline where
  toJSON :: CreateMediaConcatenationPipeline -> Value
toJSON CreateMediaConcatenationPipeline' {Maybe (NonEmpty Tag)
Maybe (Sensitive Text)
NonEmpty ConcatenationSink
NonEmpty ConcatenationSource
sinks :: NonEmpty ConcatenationSink
sources :: NonEmpty ConcatenationSource
tags :: Maybe (NonEmpty Tag)
clientRequestToken :: Maybe (Sensitive Text)
$sel:sinks:CreateMediaConcatenationPipeline' :: CreateMediaConcatenationPipeline -> NonEmpty ConcatenationSink
$sel:sources:CreateMediaConcatenationPipeline' :: CreateMediaConcatenationPipeline -> NonEmpty ConcatenationSource
$sel:tags:CreateMediaConcatenationPipeline' :: CreateMediaConcatenationPipeline -> Maybe (NonEmpty Tag)
$sel:clientRequestToken:CreateMediaConcatenationPipeline' :: CreateMediaConcatenationPipeline -> Maybe (Sensitive Text)
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"ClientRequestToken" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Sensitive Text)
clientRequestToken,
            (Key
"Tags" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (NonEmpty Tag)
tags,
            forall a. a -> Maybe a
Prelude.Just (Key
"Sources" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= NonEmpty ConcatenationSource
sources),
            forall a. a -> Maybe a
Prelude.Just (Key
"Sinks" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= NonEmpty ConcatenationSink
sinks)
          ]
      )

instance Data.ToPath CreateMediaConcatenationPipeline where
  toPath :: CreateMediaConcatenationPipeline -> ByteString
toPath =
    forall a b. a -> b -> a
Prelude.const ByteString
"/sdk-media-concatenation-pipelines"

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

-- | /See:/ 'newCreateMediaConcatenationPipelineResponse' smart constructor.
data CreateMediaConcatenationPipelineResponse = CreateMediaConcatenationPipelineResponse'
  { -- | A media concatenation pipeline object, the ID, source type,
    -- @MediaPipelineARN@, and sink of a media concatenation pipeline object.
    CreateMediaConcatenationPipelineResponse
-> Maybe MediaConcatenationPipeline
mediaConcatenationPipeline :: Prelude.Maybe MediaConcatenationPipeline,
    -- | The response's http status code.
    CreateMediaConcatenationPipelineResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (CreateMediaConcatenationPipelineResponse
-> CreateMediaConcatenationPipelineResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateMediaConcatenationPipelineResponse
-> CreateMediaConcatenationPipelineResponse -> Bool
$c/= :: CreateMediaConcatenationPipelineResponse
-> CreateMediaConcatenationPipelineResponse -> Bool
== :: CreateMediaConcatenationPipelineResponse
-> CreateMediaConcatenationPipelineResponse -> Bool
$c== :: CreateMediaConcatenationPipelineResponse
-> CreateMediaConcatenationPipelineResponse -> Bool
Prelude.Eq, Int -> CreateMediaConcatenationPipelineResponse -> ShowS
[CreateMediaConcatenationPipelineResponse] -> ShowS
CreateMediaConcatenationPipelineResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateMediaConcatenationPipelineResponse] -> ShowS
$cshowList :: [CreateMediaConcatenationPipelineResponse] -> ShowS
show :: CreateMediaConcatenationPipelineResponse -> String
$cshow :: CreateMediaConcatenationPipelineResponse -> String
showsPrec :: Int -> CreateMediaConcatenationPipelineResponse -> ShowS
$cshowsPrec :: Int -> CreateMediaConcatenationPipelineResponse -> ShowS
Prelude.Show, forall x.
Rep CreateMediaConcatenationPipelineResponse x
-> CreateMediaConcatenationPipelineResponse
forall x.
CreateMediaConcatenationPipelineResponse
-> Rep CreateMediaConcatenationPipelineResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateMediaConcatenationPipelineResponse x
-> CreateMediaConcatenationPipelineResponse
$cfrom :: forall x.
CreateMediaConcatenationPipelineResponse
-> Rep CreateMediaConcatenationPipelineResponse x
Prelude.Generic)

-- |
-- Create a value of 'CreateMediaConcatenationPipelineResponse' 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:
--
-- 'mediaConcatenationPipeline', 'createMediaConcatenationPipelineResponse_mediaConcatenationPipeline' - A media concatenation pipeline object, the ID, source type,
-- @MediaPipelineARN@, and sink of a media concatenation pipeline object.
--
-- 'httpStatus', 'createMediaConcatenationPipelineResponse_httpStatus' - The response's http status code.
newCreateMediaConcatenationPipelineResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  CreateMediaConcatenationPipelineResponse
newCreateMediaConcatenationPipelineResponse :: Int -> CreateMediaConcatenationPipelineResponse
newCreateMediaConcatenationPipelineResponse
  Int
pHttpStatus_ =
    CreateMediaConcatenationPipelineResponse'
      { $sel:mediaConcatenationPipeline:CreateMediaConcatenationPipelineResponse' :: Maybe MediaConcatenationPipeline
mediaConcatenationPipeline =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:CreateMediaConcatenationPipelineResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | A media concatenation pipeline object, the ID, source type,
-- @MediaPipelineARN@, and sink of a media concatenation pipeline object.
createMediaConcatenationPipelineResponse_mediaConcatenationPipeline :: Lens.Lens' CreateMediaConcatenationPipelineResponse (Prelude.Maybe MediaConcatenationPipeline)
createMediaConcatenationPipelineResponse_mediaConcatenationPipeline :: Lens'
  CreateMediaConcatenationPipelineResponse
  (Maybe MediaConcatenationPipeline)
createMediaConcatenationPipelineResponse_mediaConcatenationPipeline = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateMediaConcatenationPipelineResponse' {Maybe MediaConcatenationPipeline
mediaConcatenationPipeline :: Maybe MediaConcatenationPipeline
$sel:mediaConcatenationPipeline:CreateMediaConcatenationPipelineResponse' :: CreateMediaConcatenationPipelineResponse
-> Maybe MediaConcatenationPipeline
mediaConcatenationPipeline} -> Maybe MediaConcatenationPipeline
mediaConcatenationPipeline) (\s :: CreateMediaConcatenationPipelineResponse
s@CreateMediaConcatenationPipelineResponse' {} Maybe MediaConcatenationPipeline
a -> CreateMediaConcatenationPipelineResponse
s {$sel:mediaConcatenationPipeline:CreateMediaConcatenationPipelineResponse' :: Maybe MediaConcatenationPipeline
mediaConcatenationPipeline = Maybe MediaConcatenationPipeline
a} :: CreateMediaConcatenationPipelineResponse)

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

instance
  Prelude.NFData
    CreateMediaConcatenationPipelineResponse
  where
  rnf :: CreateMediaConcatenationPipelineResponse -> ()
rnf CreateMediaConcatenationPipelineResponse' {Int
Maybe MediaConcatenationPipeline
httpStatus :: Int
mediaConcatenationPipeline :: Maybe MediaConcatenationPipeline
$sel:httpStatus:CreateMediaConcatenationPipelineResponse' :: CreateMediaConcatenationPipelineResponse -> Int
$sel:mediaConcatenationPipeline:CreateMediaConcatenationPipelineResponse' :: CreateMediaConcatenationPipelineResponse
-> Maybe MediaConcatenationPipeline
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe MediaConcatenationPipeline
mediaConcatenationPipeline
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus