{-# 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.UpdateOriginAccessControl
(
UpdateOriginAccessControl (..),
newUpdateOriginAccessControl,
updateOriginAccessControl_ifMatch,
updateOriginAccessControl_originAccessControlConfig,
updateOriginAccessControl_id,
UpdateOriginAccessControlResponse (..),
newUpdateOriginAccessControlResponse,
updateOriginAccessControlResponse_eTag,
updateOriginAccessControlResponse_originAccessControl,
updateOriginAccessControlResponse_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 UpdateOriginAccessControl = UpdateOriginAccessControl'
{
UpdateOriginAccessControl -> Maybe Text
ifMatch :: Prelude.Maybe Prelude.Text,
UpdateOriginAccessControl -> OriginAccessControlConfig
originAccessControlConfig :: OriginAccessControlConfig,
UpdateOriginAccessControl -> Text
id :: Prelude.Text
}
deriving (UpdateOriginAccessControl -> UpdateOriginAccessControl -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateOriginAccessControl -> UpdateOriginAccessControl -> Bool
$c/= :: UpdateOriginAccessControl -> UpdateOriginAccessControl -> Bool
== :: UpdateOriginAccessControl -> UpdateOriginAccessControl -> Bool
$c== :: UpdateOriginAccessControl -> UpdateOriginAccessControl -> Bool
Prelude.Eq, ReadPrec [UpdateOriginAccessControl]
ReadPrec UpdateOriginAccessControl
Int -> ReadS UpdateOriginAccessControl
ReadS [UpdateOriginAccessControl]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateOriginAccessControl]
$creadListPrec :: ReadPrec [UpdateOriginAccessControl]
readPrec :: ReadPrec UpdateOriginAccessControl
$creadPrec :: ReadPrec UpdateOriginAccessControl
readList :: ReadS [UpdateOriginAccessControl]
$creadList :: ReadS [UpdateOriginAccessControl]
readsPrec :: Int -> ReadS UpdateOriginAccessControl
$creadsPrec :: Int -> ReadS UpdateOriginAccessControl
Prelude.Read, Int -> UpdateOriginAccessControl -> ShowS
[UpdateOriginAccessControl] -> ShowS
UpdateOriginAccessControl -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateOriginAccessControl] -> ShowS
$cshowList :: [UpdateOriginAccessControl] -> ShowS
show :: UpdateOriginAccessControl -> String
$cshow :: UpdateOriginAccessControl -> String
showsPrec :: Int -> UpdateOriginAccessControl -> ShowS
$cshowsPrec :: Int -> UpdateOriginAccessControl -> ShowS
Prelude.Show, forall x.
Rep UpdateOriginAccessControl x -> UpdateOriginAccessControl
forall x.
UpdateOriginAccessControl -> Rep UpdateOriginAccessControl x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateOriginAccessControl x -> UpdateOriginAccessControl
$cfrom :: forall x.
UpdateOriginAccessControl -> Rep UpdateOriginAccessControl x
Prelude.Generic)
newUpdateOriginAccessControl ::
OriginAccessControlConfig ->
Prelude.Text ->
UpdateOriginAccessControl
newUpdateOriginAccessControl :: OriginAccessControlConfig -> Text -> UpdateOriginAccessControl
newUpdateOriginAccessControl
OriginAccessControlConfig
pOriginAccessControlConfig_
Text
pId_ =
UpdateOriginAccessControl'
{ $sel:ifMatch:UpdateOriginAccessControl' :: Maybe Text
ifMatch =
forall a. Maybe a
Prelude.Nothing,
$sel:originAccessControlConfig:UpdateOriginAccessControl' :: OriginAccessControlConfig
originAccessControlConfig =
OriginAccessControlConfig
pOriginAccessControlConfig_,
$sel:id:UpdateOriginAccessControl' :: Text
id = Text
pId_
}
updateOriginAccessControl_ifMatch :: Lens.Lens' UpdateOriginAccessControl (Prelude.Maybe Prelude.Text)
updateOriginAccessControl_ifMatch :: Lens' UpdateOriginAccessControl (Maybe Text)
updateOriginAccessControl_ifMatch = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateOriginAccessControl' {Maybe Text
ifMatch :: Maybe Text
$sel:ifMatch:UpdateOriginAccessControl' :: UpdateOriginAccessControl -> Maybe Text
ifMatch} -> Maybe Text
ifMatch) (\s :: UpdateOriginAccessControl
s@UpdateOriginAccessControl' {} Maybe Text
a -> UpdateOriginAccessControl
s {$sel:ifMatch:UpdateOriginAccessControl' :: Maybe Text
ifMatch = Maybe Text
a} :: UpdateOriginAccessControl)
updateOriginAccessControl_originAccessControlConfig :: Lens.Lens' UpdateOriginAccessControl OriginAccessControlConfig
updateOriginAccessControl_originAccessControlConfig :: Lens' UpdateOriginAccessControl OriginAccessControlConfig
updateOriginAccessControl_originAccessControlConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateOriginAccessControl' {OriginAccessControlConfig
originAccessControlConfig :: OriginAccessControlConfig
$sel:originAccessControlConfig:UpdateOriginAccessControl' :: UpdateOriginAccessControl -> OriginAccessControlConfig
originAccessControlConfig} -> OriginAccessControlConfig
originAccessControlConfig) (\s :: UpdateOriginAccessControl
s@UpdateOriginAccessControl' {} OriginAccessControlConfig
a -> UpdateOriginAccessControl
s {$sel:originAccessControlConfig:UpdateOriginAccessControl' :: OriginAccessControlConfig
originAccessControlConfig = OriginAccessControlConfig
a} :: UpdateOriginAccessControl)
updateOriginAccessControl_id :: Lens.Lens' UpdateOriginAccessControl Prelude.Text
updateOriginAccessControl_id :: Lens' UpdateOriginAccessControl Text
updateOriginAccessControl_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateOriginAccessControl' {Text
id :: Text
$sel:id:UpdateOriginAccessControl' :: UpdateOriginAccessControl -> Text
id} -> Text
id) (\s :: UpdateOriginAccessControl
s@UpdateOriginAccessControl' {} Text
a -> UpdateOriginAccessControl
s {$sel:id:UpdateOriginAccessControl' :: Text
id = Text
a} :: UpdateOriginAccessControl)
instance Core.AWSRequest UpdateOriginAccessControl where
type
AWSResponse UpdateOriginAccessControl =
UpdateOriginAccessControlResponse
request :: (Service -> Service)
-> UpdateOriginAccessControl -> Request UpdateOriginAccessControl
request Service -> Service
overrides =
forall a. (ToRequest a, ToElement a) => Service -> a -> Request a
Request.putXML (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy UpdateOriginAccessControl
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse UpdateOriginAccessControl)))
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 OriginAccessControl
-> Int
-> UpdateOriginAccessControlResponse
UpdateOriginAccessControlResponse'
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.<*> (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 UpdateOriginAccessControl where
hashWithSalt :: Int -> UpdateOriginAccessControl -> Int
hashWithSalt Int
_salt UpdateOriginAccessControl' {Maybe Text
Text
OriginAccessControlConfig
id :: Text
originAccessControlConfig :: OriginAccessControlConfig
ifMatch :: Maybe Text
$sel:id:UpdateOriginAccessControl' :: UpdateOriginAccessControl -> Text
$sel:originAccessControlConfig:UpdateOriginAccessControl' :: UpdateOriginAccessControl -> OriginAccessControlConfig
$sel:ifMatch:UpdateOriginAccessControl' :: UpdateOriginAccessControl -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ifMatch
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` OriginAccessControlConfig
originAccessControlConfig
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
id
instance Prelude.NFData UpdateOriginAccessControl where
rnf :: UpdateOriginAccessControl -> ()
rnf UpdateOriginAccessControl' {Maybe Text
Text
OriginAccessControlConfig
id :: Text
originAccessControlConfig :: OriginAccessControlConfig
ifMatch :: Maybe Text
$sel:id:UpdateOriginAccessControl' :: UpdateOriginAccessControl -> Text
$sel:originAccessControlConfig:UpdateOriginAccessControl' :: UpdateOriginAccessControl -> OriginAccessControlConfig
$sel:ifMatch:UpdateOriginAccessControl' :: UpdateOriginAccessControl -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ifMatch
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf OriginAccessControlConfig
originAccessControlConfig
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
id
instance Data.ToElement UpdateOriginAccessControl where
toElement :: UpdateOriginAccessControl -> Element
toElement UpdateOriginAccessControl' {Maybe Text
Text
OriginAccessControlConfig
id :: Text
originAccessControlConfig :: OriginAccessControlConfig
ifMatch :: Maybe Text
$sel:id:UpdateOriginAccessControl' :: UpdateOriginAccessControl -> Text
$sel:originAccessControlConfig:UpdateOriginAccessControl' :: UpdateOriginAccessControl -> OriginAccessControlConfig
$sel:ifMatch:UpdateOriginAccessControl' :: UpdateOriginAccessControl -> Maybe Text
..} =
forall a. ToXML a => Name -> a -> Element
Data.mkElement
Name
"{http://cloudfront.amazonaws.com/doc/2020-05-31/}OriginAccessControlConfig"
OriginAccessControlConfig
originAccessControlConfig
instance Data.ToHeaders UpdateOriginAccessControl where
toHeaders :: UpdateOriginAccessControl -> ResponseHeaders
toHeaders UpdateOriginAccessControl' {Maybe Text
Text
OriginAccessControlConfig
id :: Text
originAccessControlConfig :: OriginAccessControlConfig
ifMatch :: Maybe Text
$sel:id:UpdateOriginAccessControl' :: UpdateOriginAccessControl -> Text
$sel:originAccessControlConfig:UpdateOriginAccessControl' :: UpdateOriginAccessControl -> OriginAccessControlConfig
$sel:ifMatch:UpdateOriginAccessControl' :: UpdateOriginAccessControl -> Maybe Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat [HeaderName
"If-Match" forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# Maybe Text
ifMatch]
instance Data.ToPath UpdateOriginAccessControl where
toPath :: UpdateOriginAccessControl -> ByteString
toPath UpdateOriginAccessControl' {Maybe Text
Text
OriginAccessControlConfig
id :: Text
originAccessControlConfig :: OriginAccessControlConfig
ifMatch :: Maybe Text
$sel:id:UpdateOriginAccessControl' :: UpdateOriginAccessControl -> Text
$sel:originAccessControlConfig:UpdateOriginAccessControl' :: UpdateOriginAccessControl -> OriginAccessControlConfig
$sel:ifMatch:UpdateOriginAccessControl' :: UpdateOriginAccessControl -> Maybe Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"/2020-05-31/origin-access-control/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
id,
ByteString
"/config"
]
instance Data.ToQuery UpdateOriginAccessControl where
toQuery :: UpdateOriginAccessControl -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data UpdateOriginAccessControlResponse = UpdateOriginAccessControlResponse'
{
UpdateOriginAccessControlResponse -> Maybe Text
eTag :: Prelude.Maybe Prelude.Text,
UpdateOriginAccessControlResponse -> Maybe OriginAccessControl
originAccessControl :: Prelude.Maybe OriginAccessControl,
UpdateOriginAccessControlResponse -> Int
httpStatus :: Prelude.Int
}
deriving (UpdateOriginAccessControlResponse
-> UpdateOriginAccessControlResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateOriginAccessControlResponse
-> UpdateOriginAccessControlResponse -> Bool
$c/= :: UpdateOriginAccessControlResponse
-> UpdateOriginAccessControlResponse -> Bool
== :: UpdateOriginAccessControlResponse
-> UpdateOriginAccessControlResponse -> Bool
$c== :: UpdateOriginAccessControlResponse
-> UpdateOriginAccessControlResponse -> Bool
Prelude.Eq, ReadPrec [UpdateOriginAccessControlResponse]
ReadPrec UpdateOriginAccessControlResponse
Int -> ReadS UpdateOriginAccessControlResponse
ReadS [UpdateOriginAccessControlResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateOriginAccessControlResponse]
$creadListPrec :: ReadPrec [UpdateOriginAccessControlResponse]
readPrec :: ReadPrec UpdateOriginAccessControlResponse
$creadPrec :: ReadPrec UpdateOriginAccessControlResponse
readList :: ReadS [UpdateOriginAccessControlResponse]
$creadList :: ReadS [UpdateOriginAccessControlResponse]
readsPrec :: Int -> ReadS UpdateOriginAccessControlResponse
$creadsPrec :: Int -> ReadS UpdateOriginAccessControlResponse
Prelude.Read, Int -> UpdateOriginAccessControlResponse -> ShowS
[UpdateOriginAccessControlResponse] -> ShowS
UpdateOriginAccessControlResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateOriginAccessControlResponse] -> ShowS
$cshowList :: [UpdateOriginAccessControlResponse] -> ShowS
show :: UpdateOriginAccessControlResponse -> String
$cshow :: UpdateOriginAccessControlResponse -> String
showsPrec :: Int -> UpdateOriginAccessControlResponse -> ShowS
$cshowsPrec :: Int -> UpdateOriginAccessControlResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateOriginAccessControlResponse x
-> UpdateOriginAccessControlResponse
forall x.
UpdateOriginAccessControlResponse
-> Rep UpdateOriginAccessControlResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateOriginAccessControlResponse x
-> UpdateOriginAccessControlResponse
$cfrom :: forall x.
UpdateOriginAccessControlResponse
-> Rep UpdateOriginAccessControlResponse x
Prelude.Generic)
newUpdateOriginAccessControlResponse ::
Prelude.Int ->
UpdateOriginAccessControlResponse
newUpdateOriginAccessControlResponse :: Int -> UpdateOriginAccessControlResponse
newUpdateOriginAccessControlResponse Int
pHttpStatus_ =
UpdateOriginAccessControlResponse'
{ $sel:eTag:UpdateOriginAccessControlResponse' :: Maybe Text
eTag =
forall a. Maybe a
Prelude.Nothing,
$sel:originAccessControl:UpdateOriginAccessControlResponse' :: Maybe OriginAccessControl
originAccessControl = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:UpdateOriginAccessControlResponse' :: Int
httpStatus = Int
pHttpStatus_
}
updateOriginAccessControlResponse_eTag :: Lens.Lens' UpdateOriginAccessControlResponse (Prelude.Maybe Prelude.Text)
updateOriginAccessControlResponse_eTag :: Lens' UpdateOriginAccessControlResponse (Maybe Text)
updateOriginAccessControlResponse_eTag = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateOriginAccessControlResponse' {Maybe Text
eTag :: Maybe Text
$sel:eTag:UpdateOriginAccessControlResponse' :: UpdateOriginAccessControlResponse -> Maybe Text
eTag} -> Maybe Text
eTag) (\s :: UpdateOriginAccessControlResponse
s@UpdateOriginAccessControlResponse' {} Maybe Text
a -> UpdateOriginAccessControlResponse
s {$sel:eTag:UpdateOriginAccessControlResponse' :: Maybe Text
eTag = Maybe Text
a} :: UpdateOriginAccessControlResponse)
updateOriginAccessControlResponse_originAccessControl :: Lens.Lens' UpdateOriginAccessControlResponse (Prelude.Maybe OriginAccessControl)
updateOriginAccessControlResponse_originAccessControl :: Lens' UpdateOriginAccessControlResponse (Maybe OriginAccessControl)
updateOriginAccessControlResponse_originAccessControl = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateOriginAccessControlResponse' {Maybe OriginAccessControl
originAccessControl :: Maybe OriginAccessControl
$sel:originAccessControl:UpdateOriginAccessControlResponse' :: UpdateOriginAccessControlResponse -> Maybe OriginAccessControl
originAccessControl} -> Maybe OriginAccessControl
originAccessControl) (\s :: UpdateOriginAccessControlResponse
s@UpdateOriginAccessControlResponse' {} Maybe OriginAccessControl
a -> UpdateOriginAccessControlResponse
s {$sel:originAccessControl:UpdateOriginAccessControlResponse' :: Maybe OriginAccessControl
originAccessControl = Maybe OriginAccessControl
a} :: UpdateOriginAccessControlResponse)
updateOriginAccessControlResponse_httpStatus :: Lens.Lens' UpdateOriginAccessControlResponse Prelude.Int
updateOriginAccessControlResponse_httpStatus :: Lens' UpdateOriginAccessControlResponse Int
updateOriginAccessControlResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateOriginAccessControlResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateOriginAccessControlResponse' :: UpdateOriginAccessControlResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UpdateOriginAccessControlResponse
s@UpdateOriginAccessControlResponse' {} Int
a -> UpdateOriginAccessControlResponse
s {$sel:httpStatus:UpdateOriginAccessControlResponse' :: Int
httpStatus = Int
a} :: UpdateOriginAccessControlResponse)
instance
Prelude.NFData
UpdateOriginAccessControlResponse
where
rnf :: UpdateOriginAccessControlResponse -> ()
rnf UpdateOriginAccessControlResponse' {Int
Maybe Text
Maybe OriginAccessControl
httpStatus :: Int
originAccessControl :: Maybe OriginAccessControl
eTag :: Maybe Text
$sel:httpStatus:UpdateOriginAccessControlResponse' :: UpdateOriginAccessControlResponse -> Int
$sel:originAccessControl:UpdateOriginAccessControlResponse' :: UpdateOriginAccessControlResponse -> Maybe OriginAccessControl
$sel:eTag:UpdateOriginAccessControlResponse' :: UpdateOriginAccessControlResponse -> 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 OriginAccessControl
originAccessControl
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus