{-# 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.CreateDistribution
(
CreateDistribution (..),
newCreateDistribution,
createDistribution_distributionConfig,
CreateDistributionResponse (..),
newCreateDistributionResponse,
createDistributionResponse_distribution,
createDistributionResponse_eTag,
createDistributionResponse_location,
createDistributionResponse_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 CreateDistribution = CreateDistribution'
{
CreateDistribution -> DistributionConfig
distributionConfig :: DistributionConfig
}
deriving (CreateDistribution -> CreateDistribution -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateDistribution -> CreateDistribution -> Bool
$c/= :: CreateDistribution -> CreateDistribution -> Bool
== :: CreateDistribution -> CreateDistribution -> Bool
$c== :: CreateDistribution -> CreateDistribution -> Bool
Prelude.Eq, Int -> CreateDistribution -> ShowS
[CreateDistribution] -> ShowS
CreateDistribution -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateDistribution] -> ShowS
$cshowList :: [CreateDistribution] -> ShowS
show :: CreateDistribution -> String
$cshow :: CreateDistribution -> String
showsPrec :: Int -> CreateDistribution -> ShowS
$cshowsPrec :: Int -> CreateDistribution -> ShowS
Prelude.Show, forall x. Rep CreateDistribution x -> CreateDistribution
forall x. CreateDistribution -> Rep CreateDistribution x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateDistribution x -> CreateDistribution
$cfrom :: forall x. CreateDistribution -> Rep CreateDistribution x
Prelude.Generic)
newCreateDistribution ::
DistributionConfig ->
CreateDistribution
newCreateDistribution :: DistributionConfig -> CreateDistribution
newCreateDistribution DistributionConfig
pDistributionConfig_ =
CreateDistribution'
{ $sel:distributionConfig:CreateDistribution' :: DistributionConfig
distributionConfig =
DistributionConfig
pDistributionConfig_
}
createDistribution_distributionConfig :: Lens.Lens' CreateDistribution DistributionConfig
createDistribution_distributionConfig :: Lens' CreateDistribution DistributionConfig
createDistribution_distributionConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDistribution' {DistributionConfig
distributionConfig :: DistributionConfig
$sel:distributionConfig:CreateDistribution' :: CreateDistribution -> DistributionConfig
distributionConfig} -> DistributionConfig
distributionConfig) (\s :: CreateDistribution
s@CreateDistribution' {} DistributionConfig
a -> CreateDistribution
s {$sel:distributionConfig:CreateDistribution' :: DistributionConfig
distributionConfig = DistributionConfig
a} :: CreateDistribution)
instance Core.AWSRequest CreateDistribution where
type
AWSResponse CreateDistribution =
CreateDistributionResponse
request :: (Service -> Service)
-> CreateDistribution -> Request CreateDistribution
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 CreateDistribution
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CreateDistribution)))
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 Distribution
-> Maybe Text -> Maybe Text -> Int -> CreateDistributionResponse
CreateDistributionResponse'
forall (f :: * -> *) a b. Functor 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.<*> (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 (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
)
instance Prelude.Hashable CreateDistribution where
hashWithSalt :: Int -> CreateDistribution -> Int
hashWithSalt Int
_salt CreateDistribution' {DistributionConfig
distributionConfig :: DistributionConfig
$sel:distributionConfig:CreateDistribution' :: CreateDistribution -> DistributionConfig
..} =
Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` DistributionConfig
distributionConfig
instance Prelude.NFData CreateDistribution where
rnf :: CreateDistribution -> ()
rnf CreateDistribution' {DistributionConfig
distributionConfig :: DistributionConfig
$sel:distributionConfig:CreateDistribution' :: CreateDistribution -> DistributionConfig
..} =
forall a. NFData a => a -> ()
Prelude.rnf DistributionConfig
distributionConfig
instance Data.ToElement CreateDistribution where
toElement :: CreateDistribution -> Element
toElement CreateDistribution' {DistributionConfig
distributionConfig :: DistributionConfig
$sel:distributionConfig:CreateDistribution' :: CreateDistribution -> DistributionConfig
..} =
forall a. ToXML a => Name -> a -> Element
Data.mkElement
Name
"{http://cloudfront.amazonaws.com/doc/2020-05-31/}DistributionConfig"
DistributionConfig
distributionConfig
instance Data.ToHeaders CreateDistribution where
toHeaders :: CreateDistribution -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance Data.ToPath CreateDistribution where
toPath :: CreateDistribution -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/2020-05-31/distribution"
instance Data.ToQuery CreateDistribution where
toQuery :: CreateDistribution -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateDistributionResponse = CreateDistributionResponse'
{
CreateDistributionResponse -> Maybe Distribution
distribution :: Prelude.Maybe Distribution,
CreateDistributionResponse -> Maybe Text
eTag :: Prelude.Maybe Prelude.Text,
CreateDistributionResponse -> Maybe Text
location :: Prelude.Maybe Prelude.Text,
CreateDistributionResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateDistributionResponse -> CreateDistributionResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateDistributionResponse -> CreateDistributionResponse -> Bool
$c/= :: CreateDistributionResponse -> CreateDistributionResponse -> Bool
== :: CreateDistributionResponse -> CreateDistributionResponse -> Bool
$c== :: CreateDistributionResponse -> CreateDistributionResponse -> Bool
Prelude.Eq, Int -> CreateDistributionResponse -> ShowS
[CreateDistributionResponse] -> ShowS
CreateDistributionResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateDistributionResponse] -> ShowS
$cshowList :: [CreateDistributionResponse] -> ShowS
show :: CreateDistributionResponse -> String
$cshow :: CreateDistributionResponse -> String
showsPrec :: Int -> CreateDistributionResponse -> ShowS
$cshowsPrec :: Int -> CreateDistributionResponse -> ShowS
Prelude.Show, forall x.
Rep CreateDistributionResponse x -> CreateDistributionResponse
forall x.
CreateDistributionResponse -> Rep CreateDistributionResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateDistributionResponse x -> CreateDistributionResponse
$cfrom :: forall x.
CreateDistributionResponse -> Rep CreateDistributionResponse x
Prelude.Generic)
newCreateDistributionResponse ::
Prelude.Int ->
CreateDistributionResponse
newCreateDistributionResponse :: Int -> CreateDistributionResponse
newCreateDistributionResponse Int
pHttpStatus_ =
CreateDistributionResponse'
{ $sel:distribution:CreateDistributionResponse' :: Maybe Distribution
distribution =
forall a. Maybe a
Prelude.Nothing,
$sel:eTag:CreateDistributionResponse' :: Maybe Text
eTag = forall a. Maybe a
Prelude.Nothing,
$sel:location:CreateDistributionResponse' :: Maybe Text
location = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateDistributionResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createDistributionResponse_distribution :: Lens.Lens' CreateDistributionResponse (Prelude.Maybe Distribution)
createDistributionResponse_distribution :: Lens' CreateDistributionResponse (Maybe Distribution)
createDistributionResponse_distribution = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDistributionResponse' {Maybe Distribution
distribution :: Maybe Distribution
$sel:distribution:CreateDistributionResponse' :: CreateDistributionResponse -> Maybe Distribution
distribution} -> Maybe Distribution
distribution) (\s :: CreateDistributionResponse
s@CreateDistributionResponse' {} Maybe Distribution
a -> CreateDistributionResponse
s {$sel:distribution:CreateDistributionResponse' :: Maybe Distribution
distribution = Maybe Distribution
a} :: CreateDistributionResponse)
createDistributionResponse_eTag :: Lens.Lens' CreateDistributionResponse (Prelude.Maybe Prelude.Text)
createDistributionResponse_eTag :: Lens' CreateDistributionResponse (Maybe Text)
createDistributionResponse_eTag = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDistributionResponse' {Maybe Text
eTag :: Maybe Text
$sel:eTag:CreateDistributionResponse' :: CreateDistributionResponse -> Maybe Text
eTag} -> Maybe Text
eTag) (\s :: CreateDistributionResponse
s@CreateDistributionResponse' {} Maybe Text
a -> CreateDistributionResponse
s {$sel:eTag:CreateDistributionResponse' :: Maybe Text
eTag = Maybe Text
a} :: CreateDistributionResponse)
createDistributionResponse_location :: Lens.Lens' CreateDistributionResponse (Prelude.Maybe Prelude.Text)
createDistributionResponse_location :: Lens' CreateDistributionResponse (Maybe Text)
createDistributionResponse_location = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDistributionResponse' {Maybe Text
location :: Maybe Text
$sel:location:CreateDistributionResponse' :: CreateDistributionResponse -> Maybe Text
location} -> Maybe Text
location) (\s :: CreateDistributionResponse
s@CreateDistributionResponse' {} Maybe Text
a -> CreateDistributionResponse
s {$sel:location:CreateDistributionResponse' :: Maybe Text
location = Maybe Text
a} :: CreateDistributionResponse)
createDistributionResponse_httpStatus :: Lens.Lens' CreateDistributionResponse Prelude.Int
createDistributionResponse_httpStatus :: Lens' CreateDistributionResponse Int
createDistributionResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDistributionResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateDistributionResponse' :: CreateDistributionResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateDistributionResponse
s@CreateDistributionResponse' {} Int
a -> CreateDistributionResponse
s {$sel:httpStatus:CreateDistributionResponse' :: Int
httpStatus = Int
a} :: CreateDistributionResponse)
instance Prelude.NFData CreateDistributionResponse where
rnf :: CreateDistributionResponse -> ()
rnf CreateDistributionResponse' {Int
Maybe Text
Maybe Distribution
httpStatus :: Int
location :: Maybe Text
eTag :: Maybe Text
distribution :: Maybe Distribution
$sel:httpStatus:CreateDistributionResponse' :: CreateDistributionResponse -> Int
$sel:location:CreateDistributionResponse' :: CreateDistributionResponse -> Maybe Text
$sel:eTag:CreateDistributionResponse' :: CreateDistributionResponse -> Maybe Text
$sel:distribution:CreateDistributionResponse' :: CreateDistributionResponse -> Maybe Distribution
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Distribution
distribution
seq :: forall a b. a -> b -> b
`Prelude.seq` 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 Int
httpStatus