{-# 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.CreateOriginAccessControl
(
CreateOriginAccessControl (..),
newCreateOriginAccessControl,
createOriginAccessControl_originAccessControlConfig,
CreateOriginAccessControlResponse (..),
newCreateOriginAccessControlResponse,
createOriginAccessControlResponse_eTag,
createOriginAccessControlResponse_location,
createOriginAccessControlResponse_originAccessControl,
createOriginAccessControlResponse_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 CreateOriginAccessControl = CreateOriginAccessControl'
{
CreateOriginAccessControl -> OriginAccessControlConfig
originAccessControlConfig :: OriginAccessControlConfig
}
deriving (CreateOriginAccessControl -> CreateOriginAccessControl -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateOriginAccessControl -> CreateOriginAccessControl -> Bool
$c/= :: CreateOriginAccessControl -> CreateOriginAccessControl -> Bool
== :: CreateOriginAccessControl -> CreateOriginAccessControl -> Bool
$c== :: CreateOriginAccessControl -> CreateOriginAccessControl -> Bool
Prelude.Eq, ReadPrec [CreateOriginAccessControl]
ReadPrec CreateOriginAccessControl
Int -> ReadS CreateOriginAccessControl
ReadS [CreateOriginAccessControl]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateOriginAccessControl]
$creadListPrec :: ReadPrec [CreateOriginAccessControl]
readPrec :: ReadPrec CreateOriginAccessControl
$creadPrec :: ReadPrec CreateOriginAccessControl
readList :: ReadS [CreateOriginAccessControl]
$creadList :: ReadS [CreateOriginAccessControl]
readsPrec :: Int -> ReadS CreateOriginAccessControl
$creadsPrec :: Int -> ReadS CreateOriginAccessControl
Prelude.Read, Int -> CreateOriginAccessControl -> ShowS
[CreateOriginAccessControl] -> ShowS
CreateOriginAccessControl -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateOriginAccessControl] -> ShowS
$cshowList :: [CreateOriginAccessControl] -> ShowS
show :: CreateOriginAccessControl -> String
$cshow :: CreateOriginAccessControl -> String
showsPrec :: Int -> CreateOriginAccessControl -> ShowS
$cshowsPrec :: Int -> CreateOriginAccessControl -> ShowS
Prelude.Show, forall x.
Rep CreateOriginAccessControl x -> CreateOriginAccessControl
forall x.
CreateOriginAccessControl -> Rep CreateOriginAccessControl x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateOriginAccessControl x -> CreateOriginAccessControl
$cfrom :: forall x.
CreateOriginAccessControl -> Rep CreateOriginAccessControl x
Prelude.Generic)
newCreateOriginAccessControl ::
OriginAccessControlConfig ->
CreateOriginAccessControl
newCreateOriginAccessControl :: OriginAccessControlConfig -> CreateOriginAccessControl
newCreateOriginAccessControl
OriginAccessControlConfig
pOriginAccessControlConfig_ =
CreateOriginAccessControl'
{ $sel:originAccessControlConfig:CreateOriginAccessControl' :: OriginAccessControlConfig
originAccessControlConfig =
OriginAccessControlConfig
pOriginAccessControlConfig_
}
createOriginAccessControl_originAccessControlConfig :: Lens.Lens' CreateOriginAccessControl OriginAccessControlConfig
createOriginAccessControl_originAccessControlConfig :: Lens' CreateOriginAccessControl OriginAccessControlConfig
createOriginAccessControl_originAccessControlConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateOriginAccessControl' {OriginAccessControlConfig
originAccessControlConfig :: OriginAccessControlConfig
$sel:originAccessControlConfig:CreateOriginAccessControl' :: CreateOriginAccessControl -> OriginAccessControlConfig
originAccessControlConfig} -> OriginAccessControlConfig
originAccessControlConfig) (\s :: CreateOriginAccessControl
s@CreateOriginAccessControl' {} OriginAccessControlConfig
a -> CreateOriginAccessControl
s {$sel:originAccessControlConfig:CreateOriginAccessControl' :: OriginAccessControlConfig
originAccessControlConfig = OriginAccessControlConfig
a} :: CreateOriginAccessControl)
instance Core.AWSRequest CreateOriginAccessControl where
type
AWSResponse CreateOriginAccessControl =
CreateOriginAccessControlResponse
request :: (Service -> Service)
-> CreateOriginAccessControl -> Request CreateOriginAccessControl
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 CreateOriginAccessControl
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CreateOriginAccessControl)))
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 OriginAccessControl
-> Int
-> CreateOriginAccessControlResponse
CreateOriginAccessControlResponse'
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 CreateOriginAccessControl where
hashWithSalt :: Int -> CreateOriginAccessControl -> Int
hashWithSalt Int
_salt CreateOriginAccessControl' {OriginAccessControlConfig
originAccessControlConfig :: OriginAccessControlConfig
$sel:originAccessControlConfig:CreateOriginAccessControl' :: CreateOriginAccessControl -> OriginAccessControlConfig
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` OriginAccessControlConfig
originAccessControlConfig
instance Prelude.NFData CreateOriginAccessControl where
rnf :: CreateOriginAccessControl -> ()
rnf CreateOriginAccessControl' {OriginAccessControlConfig
originAccessControlConfig :: OriginAccessControlConfig
$sel:originAccessControlConfig:CreateOriginAccessControl' :: CreateOriginAccessControl -> OriginAccessControlConfig
..} =
forall a. NFData a => a -> ()
Prelude.rnf OriginAccessControlConfig
originAccessControlConfig
instance Data.ToElement CreateOriginAccessControl where
toElement :: CreateOriginAccessControl -> Element
toElement CreateOriginAccessControl' {OriginAccessControlConfig
originAccessControlConfig :: OriginAccessControlConfig
$sel:originAccessControlConfig:CreateOriginAccessControl' :: CreateOriginAccessControl -> OriginAccessControlConfig
..} =
forall a. ToXML a => Name -> a -> Element
Data.mkElement
Name
"{http://cloudfront.amazonaws.com/doc/2020-05-31/}OriginAccessControlConfig"
OriginAccessControlConfig
originAccessControlConfig
instance Data.ToHeaders CreateOriginAccessControl where
toHeaders :: CreateOriginAccessControl -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance Data.ToPath CreateOriginAccessControl where
toPath :: CreateOriginAccessControl -> ByteString
toPath =
forall a b. a -> b -> a
Prelude.const ByteString
"/2020-05-31/origin-access-control"
instance Data.ToQuery CreateOriginAccessControl where
toQuery :: CreateOriginAccessControl -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateOriginAccessControlResponse = CreateOriginAccessControlResponse'
{
CreateOriginAccessControlResponse -> Maybe Text
eTag :: Prelude.Maybe Prelude.Text,
CreateOriginAccessControlResponse -> Maybe Text
location :: Prelude.Maybe Prelude.Text,
CreateOriginAccessControlResponse -> Maybe OriginAccessControl
originAccessControl :: Prelude.Maybe OriginAccessControl,
CreateOriginAccessControlResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateOriginAccessControlResponse
-> CreateOriginAccessControlResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateOriginAccessControlResponse
-> CreateOriginAccessControlResponse -> Bool
$c/= :: CreateOriginAccessControlResponse
-> CreateOriginAccessControlResponse -> Bool
== :: CreateOriginAccessControlResponse
-> CreateOriginAccessControlResponse -> Bool
$c== :: CreateOriginAccessControlResponse
-> CreateOriginAccessControlResponse -> Bool
Prelude.Eq, ReadPrec [CreateOriginAccessControlResponse]
ReadPrec CreateOriginAccessControlResponse
Int -> ReadS CreateOriginAccessControlResponse
ReadS [CreateOriginAccessControlResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateOriginAccessControlResponse]
$creadListPrec :: ReadPrec [CreateOriginAccessControlResponse]
readPrec :: ReadPrec CreateOriginAccessControlResponse
$creadPrec :: ReadPrec CreateOriginAccessControlResponse
readList :: ReadS [CreateOriginAccessControlResponse]
$creadList :: ReadS [CreateOriginAccessControlResponse]
readsPrec :: Int -> ReadS CreateOriginAccessControlResponse
$creadsPrec :: Int -> ReadS CreateOriginAccessControlResponse
Prelude.Read, Int -> CreateOriginAccessControlResponse -> ShowS
[CreateOriginAccessControlResponse] -> ShowS
CreateOriginAccessControlResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateOriginAccessControlResponse] -> ShowS
$cshowList :: [CreateOriginAccessControlResponse] -> ShowS
show :: CreateOriginAccessControlResponse -> String
$cshow :: CreateOriginAccessControlResponse -> String
showsPrec :: Int -> CreateOriginAccessControlResponse -> ShowS
$cshowsPrec :: Int -> CreateOriginAccessControlResponse -> ShowS
Prelude.Show, forall x.
Rep CreateOriginAccessControlResponse x
-> CreateOriginAccessControlResponse
forall x.
CreateOriginAccessControlResponse
-> Rep CreateOriginAccessControlResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateOriginAccessControlResponse x
-> CreateOriginAccessControlResponse
$cfrom :: forall x.
CreateOriginAccessControlResponse
-> Rep CreateOriginAccessControlResponse x
Prelude.Generic)
newCreateOriginAccessControlResponse ::
Prelude.Int ->
CreateOriginAccessControlResponse
newCreateOriginAccessControlResponse :: Int -> CreateOriginAccessControlResponse
newCreateOriginAccessControlResponse Int
pHttpStatus_ =
CreateOriginAccessControlResponse'
{ $sel:eTag:CreateOriginAccessControlResponse' :: Maybe Text
eTag =
forall a. Maybe a
Prelude.Nothing,
$sel:location:CreateOriginAccessControlResponse' :: Maybe Text
location = forall a. Maybe a
Prelude.Nothing,
$sel:originAccessControl:CreateOriginAccessControlResponse' :: Maybe OriginAccessControl
originAccessControl = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateOriginAccessControlResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createOriginAccessControlResponse_eTag :: Lens.Lens' CreateOriginAccessControlResponse (Prelude.Maybe Prelude.Text)
createOriginAccessControlResponse_eTag :: Lens' CreateOriginAccessControlResponse (Maybe Text)
createOriginAccessControlResponse_eTag = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateOriginAccessControlResponse' {Maybe Text
eTag :: Maybe Text
$sel:eTag:CreateOriginAccessControlResponse' :: CreateOriginAccessControlResponse -> Maybe Text
eTag} -> Maybe Text
eTag) (\s :: CreateOriginAccessControlResponse
s@CreateOriginAccessControlResponse' {} Maybe Text
a -> CreateOriginAccessControlResponse
s {$sel:eTag:CreateOriginAccessControlResponse' :: Maybe Text
eTag = Maybe Text
a} :: CreateOriginAccessControlResponse)
createOriginAccessControlResponse_location :: Lens.Lens' CreateOriginAccessControlResponse (Prelude.Maybe Prelude.Text)
createOriginAccessControlResponse_location :: Lens' CreateOriginAccessControlResponse (Maybe Text)
createOriginAccessControlResponse_location = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateOriginAccessControlResponse' {Maybe Text
location :: Maybe Text
$sel:location:CreateOriginAccessControlResponse' :: CreateOriginAccessControlResponse -> Maybe Text
location} -> Maybe Text
location) (\s :: CreateOriginAccessControlResponse
s@CreateOriginAccessControlResponse' {} Maybe Text
a -> CreateOriginAccessControlResponse
s {$sel:location:CreateOriginAccessControlResponse' :: Maybe Text
location = Maybe Text
a} :: CreateOriginAccessControlResponse)
createOriginAccessControlResponse_originAccessControl :: Lens.Lens' CreateOriginAccessControlResponse (Prelude.Maybe OriginAccessControl)
createOriginAccessControlResponse_originAccessControl :: Lens' CreateOriginAccessControlResponse (Maybe OriginAccessControl)
createOriginAccessControlResponse_originAccessControl = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateOriginAccessControlResponse' {Maybe OriginAccessControl
originAccessControl :: Maybe OriginAccessControl
$sel:originAccessControl:CreateOriginAccessControlResponse' :: CreateOriginAccessControlResponse -> Maybe OriginAccessControl
originAccessControl} -> Maybe OriginAccessControl
originAccessControl) (\s :: CreateOriginAccessControlResponse
s@CreateOriginAccessControlResponse' {} Maybe OriginAccessControl
a -> CreateOriginAccessControlResponse
s {$sel:originAccessControl:CreateOriginAccessControlResponse' :: Maybe OriginAccessControl
originAccessControl = Maybe OriginAccessControl
a} :: CreateOriginAccessControlResponse)
createOriginAccessControlResponse_httpStatus :: Lens.Lens' CreateOriginAccessControlResponse Prelude.Int
createOriginAccessControlResponse_httpStatus :: Lens' CreateOriginAccessControlResponse Int
createOriginAccessControlResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateOriginAccessControlResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateOriginAccessControlResponse' :: CreateOriginAccessControlResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateOriginAccessControlResponse
s@CreateOriginAccessControlResponse' {} Int
a -> CreateOriginAccessControlResponse
s {$sel:httpStatus:CreateOriginAccessControlResponse' :: Int
httpStatus = Int
a} :: CreateOriginAccessControlResponse)
instance
Prelude.NFData
CreateOriginAccessControlResponse
where
rnf :: CreateOriginAccessControlResponse -> ()
rnf CreateOriginAccessControlResponse' {Int
Maybe Text
Maybe OriginAccessControl
httpStatus :: Int
originAccessControl :: Maybe OriginAccessControl
location :: Maybe Text
eTag :: Maybe Text
$sel:httpStatus:CreateOriginAccessControlResponse' :: CreateOriginAccessControlResponse -> Int
$sel:originAccessControl:CreateOriginAccessControlResponse' :: CreateOriginAccessControlResponse -> Maybe OriginAccessControl
$sel:location:CreateOriginAccessControlResponse' :: CreateOriginAccessControlResponse -> Maybe Text
$sel:eTag:CreateOriginAccessControlResponse' :: CreateOriginAccessControlResponse -> 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 OriginAccessControl
originAccessControl
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus