{-# 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.CloudFront.UpdateOriginAccessControl
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Updates a CloudFront origin access control.
module Amazonka.CloudFront.UpdateOriginAccessControl
  ( -- * Creating a Request
    UpdateOriginAccessControl (..),
    newUpdateOriginAccessControl,

    -- * Request Lenses
    updateOriginAccessControl_ifMatch,
    updateOriginAccessControl_originAccessControlConfig,
    updateOriginAccessControl_id,

    -- * Destructuring the Response
    UpdateOriginAccessControlResponse (..),
    newUpdateOriginAccessControlResponse,

    -- * Response Lenses
    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

-- | /See:/ 'newUpdateOriginAccessControl' smart constructor.
data UpdateOriginAccessControl = UpdateOriginAccessControl'
  { -- | The current version (@ETag@ value) of the origin access control that you
    -- are updating.
    UpdateOriginAccessControl -> Maybe Text
ifMatch :: Prelude.Maybe Prelude.Text,
    -- | An origin access control.
    UpdateOriginAccessControl -> OriginAccessControlConfig
originAccessControlConfig :: OriginAccessControlConfig,
    -- | The unique identifier of the origin access control that you are
    -- updating.
    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)

-- |
-- Create a value of 'UpdateOriginAccessControl' 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:
--
-- 'ifMatch', 'updateOriginAccessControl_ifMatch' - The current version (@ETag@ value) of the origin access control that you
-- are updating.
--
-- 'originAccessControlConfig', 'updateOriginAccessControl_originAccessControlConfig' - An origin access control.
--
-- 'id', 'updateOriginAccessControl_id' - The unique identifier of the origin access control that you are
-- updating.
newUpdateOriginAccessControl ::
  -- | 'originAccessControlConfig'
  OriginAccessControlConfig ->
  -- | 'id'
  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_
      }

-- | The current version (@ETag@ value) of the origin access control that you
-- are updating.
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)

-- | An origin access control.
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)

-- | The unique identifier of the origin access control that you are
-- updating.
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

-- | /See:/ 'newUpdateOriginAccessControlResponse' smart constructor.
data UpdateOriginAccessControlResponse = UpdateOriginAccessControlResponse'
  { -- | The new version of the origin access control after it has been updated.
    UpdateOriginAccessControlResponse -> Maybe Text
eTag :: Prelude.Maybe Prelude.Text,
    -- | The origin access control after it has been updated.
    UpdateOriginAccessControlResponse -> Maybe OriginAccessControl
originAccessControl :: Prelude.Maybe OriginAccessControl,
    -- | The response's http status code.
    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)

-- |
-- Create a value of 'UpdateOriginAccessControlResponse' 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:
--
-- 'eTag', 'updateOriginAccessControlResponse_eTag' - The new version of the origin access control after it has been updated.
--
-- 'originAccessControl', 'updateOriginAccessControlResponse_originAccessControl' - The origin access control after it has been updated.
--
-- 'httpStatus', 'updateOriginAccessControlResponse_httpStatus' - The response's http status code.
newUpdateOriginAccessControlResponse ::
  -- | 'httpStatus'
  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_
    }

-- | The new version of the origin access control after it has been updated.
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)

-- | The origin access control after it has been updated.
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)

-- | The response's http status code.
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