{-# 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 #-}
module Amazonka.CloudFront.CreateStreamingDistribution
(
CreateStreamingDistribution (..),
newCreateStreamingDistribution,
createStreamingDistribution_streamingDistributionConfig,
CreateStreamingDistributionResponse (..),
newCreateStreamingDistributionResponse,
createStreamingDistributionResponse_eTag,
createStreamingDistributionResponse_location,
createStreamingDistributionResponse_streamingDistribution,
createStreamingDistributionResponse_httpStatus,
)
where
import Amazonka.CloudFront.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
data CreateStreamingDistribution = CreateStreamingDistribution'
{
CreateStreamingDistribution -> StreamingDistributionConfig
streamingDistributionConfig :: StreamingDistributionConfig
}
deriving (CreateStreamingDistribution -> CreateStreamingDistribution -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateStreamingDistribution -> CreateStreamingDistribution -> Bool
$c/= :: CreateStreamingDistribution -> CreateStreamingDistribution -> Bool
== :: CreateStreamingDistribution -> CreateStreamingDistribution -> Bool
$c== :: CreateStreamingDistribution -> CreateStreamingDistribution -> Bool
Prelude.Eq, ReadPrec [CreateStreamingDistribution]
ReadPrec CreateStreamingDistribution
Int -> ReadS CreateStreamingDistribution
ReadS [CreateStreamingDistribution]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateStreamingDistribution]
$creadListPrec :: ReadPrec [CreateStreamingDistribution]
readPrec :: ReadPrec CreateStreamingDistribution
$creadPrec :: ReadPrec CreateStreamingDistribution
readList :: ReadS [CreateStreamingDistribution]
$creadList :: ReadS [CreateStreamingDistribution]
readsPrec :: Int -> ReadS CreateStreamingDistribution
$creadsPrec :: Int -> ReadS CreateStreamingDistribution
Prelude.Read, Int -> CreateStreamingDistribution -> ShowS
[CreateStreamingDistribution] -> ShowS
CreateStreamingDistribution -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateStreamingDistribution] -> ShowS
$cshowList :: [CreateStreamingDistribution] -> ShowS
show :: CreateStreamingDistribution -> String
$cshow :: CreateStreamingDistribution -> String
showsPrec :: Int -> CreateStreamingDistribution -> ShowS
$cshowsPrec :: Int -> CreateStreamingDistribution -> ShowS
Prelude.Show, forall x.
Rep CreateStreamingDistribution x -> CreateStreamingDistribution
forall x.
CreateStreamingDistribution -> Rep CreateStreamingDistribution x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateStreamingDistribution x -> CreateStreamingDistribution
$cfrom :: forall x.
CreateStreamingDistribution -> Rep CreateStreamingDistribution x
Prelude.Generic)
newCreateStreamingDistribution ::
StreamingDistributionConfig ->
CreateStreamingDistribution
newCreateStreamingDistribution :: StreamingDistributionConfig -> CreateStreamingDistribution
newCreateStreamingDistribution
StreamingDistributionConfig
pStreamingDistributionConfig_ =
CreateStreamingDistribution'
{ $sel:streamingDistributionConfig:CreateStreamingDistribution' :: StreamingDistributionConfig
streamingDistributionConfig =
StreamingDistributionConfig
pStreamingDistributionConfig_
}
createStreamingDistribution_streamingDistributionConfig :: Lens.Lens' CreateStreamingDistribution StreamingDistributionConfig
createStreamingDistribution_streamingDistributionConfig :: Lens' CreateStreamingDistribution StreamingDistributionConfig
createStreamingDistribution_streamingDistributionConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStreamingDistribution' {StreamingDistributionConfig
streamingDistributionConfig :: StreamingDistributionConfig
$sel:streamingDistributionConfig:CreateStreamingDistribution' :: CreateStreamingDistribution -> StreamingDistributionConfig
streamingDistributionConfig} -> StreamingDistributionConfig
streamingDistributionConfig) (\s :: CreateStreamingDistribution
s@CreateStreamingDistribution' {} StreamingDistributionConfig
a -> CreateStreamingDistribution
s {$sel:streamingDistributionConfig:CreateStreamingDistribution' :: StreamingDistributionConfig
streamingDistributionConfig = StreamingDistributionConfig
a} :: CreateStreamingDistribution)
instance Core.AWSRequest CreateStreamingDistribution where
type
AWSResponse CreateStreamingDistribution =
CreateStreamingDistributionResponse
request :: (Service -> Service)
-> CreateStreamingDistribution
-> Request CreateStreamingDistribution
request Service -> Service
overrides =
forall a. (ToRequest a, ToElement a) => Service -> a -> Request a
Request.postXML (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy CreateStreamingDistribution
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CreateStreamingDistribution)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXML
( \Int
s ResponseHeaders
h [Node]
x ->
Maybe Text
-> Maybe Text
-> Maybe StreamingDistribution
-> Int
-> CreateStreamingDistributionResponse
CreateStreamingDistributionResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (ResponseHeaders
h forall a.
FromText a =>
ResponseHeaders -> HeaderName -> Either String (Maybe a)
Data..#? HeaderName
"ETag")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (ResponseHeaders
h forall a.
FromText a =>
ResponseHeaders -> HeaderName -> Either String (Maybe a)
Data..#? HeaderName
"Location")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall a. FromXML a => [Node] -> Either String a
Data.parseXML [Node]
x)
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 CreateStreamingDistribution where
hashWithSalt :: Int -> CreateStreamingDistribution -> Int
hashWithSalt Int
_salt CreateStreamingDistribution' {StreamingDistributionConfig
streamingDistributionConfig :: StreamingDistributionConfig
$sel:streamingDistributionConfig:CreateStreamingDistribution' :: CreateStreamingDistribution -> StreamingDistributionConfig
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` StreamingDistributionConfig
streamingDistributionConfig
instance Prelude.NFData CreateStreamingDistribution where
rnf :: CreateStreamingDistribution -> ()
rnf CreateStreamingDistribution' {StreamingDistributionConfig
streamingDistributionConfig :: StreamingDistributionConfig
$sel:streamingDistributionConfig:CreateStreamingDistribution' :: CreateStreamingDistribution -> StreamingDistributionConfig
..} =
forall a. NFData a => a -> ()
Prelude.rnf StreamingDistributionConfig
streamingDistributionConfig
instance Data.ToElement CreateStreamingDistribution where
toElement :: CreateStreamingDistribution -> Element
toElement CreateStreamingDistribution' {StreamingDistributionConfig
streamingDistributionConfig :: StreamingDistributionConfig
$sel:streamingDistributionConfig:CreateStreamingDistribution' :: CreateStreamingDistribution -> StreamingDistributionConfig
..} =
forall a. ToXML a => Name -> a -> Element
Data.mkElement
Name
"{http://cloudfront.amazonaws.com/doc/2020-05-31/}StreamingDistributionConfig"
StreamingDistributionConfig
streamingDistributionConfig
instance Data.ToHeaders CreateStreamingDistribution where
toHeaders :: CreateStreamingDistribution -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance Data.ToPath CreateStreamingDistribution where
toPath :: CreateStreamingDistribution -> ByteString
toPath =
forall a b. a -> b -> a
Prelude.const ByteString
"/2020-05-31/streaming-distribution"
instance Data.ToQuery CreateStreamingDistribution where
toQuery :: CreateStreamingDistribution -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateStreamingDistributionResponse = CreateStreamingDistributionResponse'
{
CreateStreamingDistributionResponse -> Maybe Text
eTag :: Prelude.Maybe Prelude.Text,
CreateStreamingDistributionResponse -> Maybe Text
location :: Prelude.Maybe Prelude.Text,
CreateStreamingDistributionResponse -> Maybe StreamingDistribution
streamingDistribution :: Prelude.Maybe StreamingDistribution,
CreateStreamingDistributionResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateStreamingDistributionResponse
-> CreateStreamingDistributionResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateStreamingDistributionResponse
-> CreateStreamingDistributionResponse -> Bool
$c/= :: CreateStreamingDistributionResponse
-> CreateStreamingDistributionResponse -> Bool
== :: CreateStreamingDistributionResponse
-> CreateStreamingDistributionResponse -> Bool
$c== :: CreateStreamingDistributionResponse
-> CreateStreamingDistributionResponse -> Bool
Prelude.Eq, ReadPrec [CreateStreamingDistributionResponse]
ReadPrec CreateStreamingDistributionResponse
Int -> ReadS CreateStreamingDistributionResponse
ReadS [CreateStreamingDistributionResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateStreamingDistributionResponse]
$creadListPrec :: ReadPrec [CreateStreamingDistributionResponse]
readPrec :: ReadPrec CreateStreamingDistributionResponse
$creadPrec :: ReadPrec CreateStreamingDistributionResponse
readList :: ReadS [CreateStreamingDistributionResponse]
$creadList :: ReadS [CreateStreamingDistributionResponse]
readsPrec :: Int -> ReadS CreateStreamingDistributionResponse
$creadsPrec :: Int -> ReadS CreateStreamingDistributionResponse
Prelude.Read, Int -> CreateStreamingDistributionResponse -> ShowS
[CreateStreamingDistributionResponse] -> ShowS
CreateStreamingDistributionResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateStreamingDistributionResponse] -> ShowS
$cshowList :: [CreateStreamingDistributionResponse] -> ShowS
show :: CreateStreamingDistributionResponse -> String
$cshow :: CreateStreamingDistributionResponse -> String
showsPrec :: Int -> CreateStreamingDistributionResponse -> ShowS
$cshowsPrec :: Int -> CreateStreamingDistributionResponse -> ShowS
Prelude.Show, forall x.
Rep CreateStreamingDistributionResponse x
-> CreateStreamingDistributionResponse
forall x.
CreateStreamingDistributionResponse
-> Rep CreateStreamingDistributionResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateStreamingDistributionResponse x
-> CreateStreamingDistributionResponse
$cfrom :: forall x.
CreateStreamingDistributionResponse
-> Rep CreateStreamingDistributionResponse x
Prelude.Generic)
newCreateStreamingDistributionResponse ::
Prelude.Int ->
CreateStreamingDistributionResponse
newCreateStreamingDistributionResponse :: Int -> CreateStreamingDistributionResponse
newCreateStreamingDistributionResponse Int
pHttpStatus_ =
CreateStreamingDistributionResponse'
{ $sel:eTag:CreateStreamingDistributionResponse' :: Maybe Text
eTag =
forall a. Maybe a
Prelude.Nothing,
$sel:location:CreateStreamingDistributionResponse' :: Maybe Text
location = forall a. Maybe a
Prelude.Nothing,
$sel:streamingDistribution:CreateStreamingDistributionResponse' :: Maybe StreamingDistribution
streamingDistribution =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateStreamingDistributionResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createStreamingDistributionResponse_eTag :: Lens.Lens' CreateStreamingDistributionResponse (Prelude.Maybe Prelude.Text)
createStreamingDistributionResponse_eTag :: Lens' CreateStreamingDistributionResponse (Maybe Text)
createStreamingDistributionResponse_eTag = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStreamingDistributionResponse' {Maybe Text
eTag :: Maybe Text
$sel:eTag:CreateStreamingDistributionResponse' :: CreateStreamingDistributionResponse -> Maybe Text
eTag} -> Maybe Text
eTag) (\s :: CreateStreamingDistributionResponse
s@CreateStreamingDistributionResponse' {} Maybe Text
a -> CreateStreamingDistributionResponse
s {$sel:eTag:CreateStreamingDistributionResponse' :: Maybe Text
eTag = Maybe Text
a} :: CreateStreamingDistributionResponse)
createStreamingDistributionResponse_location :: Lens.Lens' CreateStreamingDistributionResponse (Prelude.Maybe Prelude.Text)
createStreamingDistributionResponse_location :: Lens' CreateStreamingDistributionResponse (Maybe Text)
createStreamingDistributionResponse_location = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStreamingDistributionResponse' {Maybe Text
location :: Maybe Text
$sel:location:CreateStreamingDistributionResponse' :: CreateStreamingDistributionResponse -> Maybe Text
location} -> Maybe Text
location) (\s :: CreateStreamingDistributionResponse
s@CreateStreamingDistributionResponse' {} Maybe Text
a -> CreateStreamingDistributionResponse
s {$sel:location:CreateStreamingDistributionResponse' :: Maybe Text
location = Maybe Text
a} :: CreateStreamingDistributionResponse)
createStreamingDistributionResponse_streamingDistribution :: Lens.Lens' CreateStreamingDistributionResponse (Prelude.Maybe StreamingDistribution)
createStreamingDistributionResponse_streamingDistribution :: Lens'
CreateStreamingDistributionResponse (Maybe StreamingDistribution)
createStreamingDistributionResponse_streamingDistribution = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStreamingDistributionResponse' {Maybe StreamingDistribution
streamingDistribution :: Maybe StreamingDistribution
$sel:streamingDistribution:CreateStreamingDistributionResponse' :: CreateStreamingDistributionResponse -> Maybe StreamingDistribution
streamingDistribution} -> Maybe StreamingDistribution
streamingDistribution) (\s :: CreateStreamingDistributionResponse
s@CreateStreamingDistributionResponse' {} Maybe StreamingDistribution
a -> CreateStreamingDistributionResponse
s {$sel:streamingDistribution:CreateStreamingDistributionResponse' :: Maybe StreamingDistribution
streamingDistribution = Maybe StreamingDistribution
a} :: CreateStreamingDistributionResponse)
createStreamingDistributionResponse_httpStatus :: Lens.Lens' CreateStreamingDistributionResponse Prelude.Int
createStreamingDistributionResponse_httpStatus :: Lens' CreateStreamingDistributionResponse Int
createStreamingDistributionResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStreamingDistributionResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateStreamingDistributionResponse' :: CreateStreamingDistributionResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateStreamingDistributionResponse
s@CreateStreamingDistributionResponse' {} Int
a -> CreateStreamingDistributionResponse
s {$sel:httpStatus:CreateStreamingDistributionResponse' :: Int
httpStatus = Int
a} :: CreateStreamingDistributionResponse)
instance
Prelude.NFData
CreateStreamingDistributionResponse
where
rnf :: CreateStreamingDistributionResponse -> ()
rnf CreateStreamingDistributionResponse' {Int
Maybe Text
Maybe StreamingDistribution
httpStatus :: Int
streamingDistribution :: Maybe StreamingDistribution
location :: Maybe Text
eTag :: Maybe Text
$sel:httpStatus:CreateStreamingDistributionResponse' :: CreateStreamingDistributionResponse -> Int
$sel:streamingDistribution:CreateStreamingDistributionResponse' :: CreateStreamingDistributionResponse -> Maybe StreamingDistribution
$sel:location:CreateStreamingDistributionResponse' :: CreateStreamingDistributionResponse -> Maybe Text
$sel:eTag:CreateStreamingDistributionResponse' :: CreateStreamingDistributionResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
eTag
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
location
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe StreamingDistribution
streamingDistribution
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus