{-# 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.UpdateOriginRequestPolicy
-- 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 an origin request policy configuration.
--
-- When you update an origin request policy configuration, all the fields
-- are updated with the values provided in the request. You cannot update
-- some fields independent of others. To update an origin request policy
-- configuration:
--
-- 1.  Use @GetOriginRequestPolicyConfig@ to get the current configuration.
--
-- 2.  Locally modify the fields in the origin request policy configuration
--     that you want to update.
--
-- 3.  Call @UpdateOriginRequestPolicy@ by providing the entire origin
--     request policy configuration, including the fields that you modified
--     and those that you didn\'t.
module Amazonka.CloudFront.UpdateOriginRequestPolicy
  ( -- * Creating a Request
    UpdateOriginRequestPolicy (..),
    newUpdateOriginRequestPolicy,

    -- * Request Lenses
    updateOriginRequestPolicy_ifMatch,
    updateOriginRequestPolicy_originRequestPolicyConfig,
    updateOriginRequestPolicy_id,

    -- * Destructuring the Response
    UpdateOriginRequestPolicyResponse (..),
    newUpdateOriginRequestPolicyResponse,

    -- * Response Lenses
    updateOriginRequestPolicyResponse_eTag,
    updateOriginRequestPolicyResponse_originRequestPolicy,
    updateOriginRequestPolicyResponse_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:/ 'newUpdateOriginRequestPolicy' smart constructor.
data UpdateOriginRequestPolicy = UpdateOriginRequestPolicy'
  { -- | The version of the origin request policy that you are updating. The
    -- version is returned in the origin request policy\'s @ETag@ field in the
    -- response to @GetOriginRequestPolicyConfig@.
    UpdateOriginRequestPolicy -> Maybe Text
ifMatch :: Prelude.Maybe Prelude.Text,
    -- | An origin request policy configuration.
    UpdateOriginRequestPolicy -> OriginRequestPolicyConfig
originRequestPolicyConfig :: OriginRequestPolicyConfig,
    -- | The unique identifier for the origin request policy that you are
    -- updating. The identifier is returned in a cache behavior\'s
    -- @OriginRequestPolicyId@ field in the response to
    -- @GetDistributionConfig@.
    UpdateOriginRequestPolicy -> Text
id :: Prelude.Text
  }
  deriving (UpdateOriginRequestPolicy -> UpdateOriginRequestPolicy -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateOriginRequestPolicy -> UpdateOriginRequestPolicy -> Bool
$c/= :: UpdateOriginRequestPolicy -> UpdateOriginRequestPolicy -> Bool
== :: UpdateOriginRequestPolicy -> UpdateOriginRequestPolicy -> Bool
$c== :: UpdateOriginRequestPolicy -> UpdateOriginRequestPolicy -> Bool
Prelude.Eq, ReadPrec [UpdateOriginRequestPolicy]
ReadPrec UpdateOriginRequestPolicy
Int -> ReadS UpdateOriginRequestPolicy
ReadS [UpdateOriginRequestPolicy]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateOriginRequestPolicy]
$creadListPrec :: ReadPrec [UpdateOriginRequestPolicy]
readPrec :: ReadPrec UpdateOriginRequestPolicy
$creadPrec :: ReadPrec UpdateOriginRequestPolicy
readList :: ReadS [UpdateOriginRequestPolicy]
$creadList :: ReadS [UpdateOriginRequestPolicy]
readsPrec :: Int -> ReadS UpdateOriginRequestPolicy
$creadsPrec :: Int -> ReadS UpdateOriginRequestPolicy
Prelude.Read, Int -> UpdateOriginRequestPolicy -> ShowS
[UpdateOriginRequestPolicy] -> ShowS
UpdateOriginRequestPolicy -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateOriginRequestPolicy] -> ShowS
$cshowList :: [UpdateOriginRequestPolicy] -> ShowS
show :: UpdateOriginRequestPolicy -> String
$cshow :: UpdateOriginRequestPolicy -> String
showsPrec :: Int -> UpdateOriginRequestPolicy -> ShowS
$cshowsPrec :: Int -> UpdateOriginRequestPolicy -> ShowS
Prelude.Show, forall x.
Rep UpdateOriginRequestPolicy x -> UpdateOriginRequestPolicy
forall x.
UpdateOriginRequestPolicy -> Rep UpdateOriginRequestPolicy x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateOriginRequestPolicy x -> UpdateOriginRequestPolicy
$cfrom :: forall x.
UpdateOriginRequestPolicy -> Rep UpdateOriginRequestPolicy x
Prelude.Generic)

-- |
-- Create a value of 'UpdateOriginRequestPolicy' 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', 'updateOriginRequestPolicy_ifMatch' - The version of the origin request policy that you are updating. The
-- version is returned in the origin request policy\'s @ETag@ field in the
-- response to @GetOriginRequestPolicyConfig@.
--
-- 'originRequestPolicyConfig', 'updateOriginRequestPolicy_originRequestPolicyConfig' - An origin request policy configuration.
--
-- 'id', 'updateOriginRequestPolicy_id' - The unique identifier for the origin request policy that you are
-- updating. The identifier is returned in a cache behavior\'s
-- @OriginRequestPolicyId@ field in the response to
-- @GetDistributionConfig@.
newUpdateOriginRequestPolicy ::
  -- | 'originRequestPolicyConfig'
  OriginRequestPolicyConfig ->
  -- | 'id'
  Prelude.Text ->
  UpdateOriginRequestPolicy
newUpdateOriginRequestPolicy :: OriginRequestPolicyConfig -> Text -> UpdateOriginRequestPolicy
newUpdateOriginRequestPolicy
  OriginRequestPolicyConfig
pOriginRequestPolicyConfig_
  Text
pId_ =
    UpdateOriginRequestPolicy'
      { $sel:ifMatch:UpdateOriginRequestPolicy' :: Maybe Text
ifMatch =
          forall a. Maybe a
Prelude.Nothing,
        $sel:originRequestPolicyConfig:UpdateOriginRequestPolicy' :: OriginRequestPolicyConfig
originRequestPolicyConfig =
          OriginRequestPolicyConfig
pOriginRequestPolicyConfig_,
        $sel:id:UpdateOriginRequestPolicy' :: Text
id = Text
pId_
      }

-- | The version of the origin request policy that you are updating. The
-- version is returned in the origin request policy\'s @ETag@ field in the
-- response to @GetOriginRequestPolicyConfig@.
updateOriginRequestPolicy_ifMatch :: Lens.Lens' UpdateOriginRequestPolicy (Prelude.Maybe Prelude.Text)
updateOriginRequestPolicy_ifMatch :: Lens' UpdateOriginRequestPolicy (Maybe Text)
updateOriginRequestPolicy_ifMatch = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateOriginRequestPolicy' {Maybe Text
ifMatch :: Maybe Text
$sel:ifMatch:UpdateOriginRequestPolicy' :: UpdateOriginRequestPolicy -> Maybe Text
ifMatch} -> Maybe Text
ifMatch) (\s :: UpdateOriginRequestPolicy
s@UpdateOriginRequestPolicy' {} Maybe Text
a -> UpdateOriginRequestPolicy
s {$sel:ifMatch:UpdateOriginRequestPolicy' :: Maybe Text
ifMatch = Maybe Text
a} :: UpdateOriginRequestPolicy)

-- | An origin request policy configuration.
updateOriginRequestPolicy_originRequestPolicyConfig :: Lens.Lens' UpdateOriginRequestPolicy OriginRequestPolicyConfig
updateOriginRequestPolicy_originRequestPolicyConfig :: Lens' UpdateOriginRequestPolicy OriginRequestPolicyConfig
updateOriginRequestPolicy_originRequestPolicyConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateOriginRequestPolicy' {OriginRequestPolicyConfig
originRequestPolicyConfig :: OriginRequestPolicyConfig
$sel:originRequestPolicyConfig:UpdateOriginRequestPolicy' :: UpdateOriginRequestPolicy -> OriginRequestPolicyConfig
originRequestPolicyConfig} -> OriginRequestPolicyConfig
originRequestPolicyConfig) (\s :: UpdateOriginRequestPolicy
s@UpdateOriginRequestPolicy' {} OriginRequestPolicyConfig
a -> UpdateOriginRequestPolicy
s {$sel:originRequestPolicyConfig:UpdateOriginRequestPolicy' :: OriginRequestPolicyConfig
originRequestPolicyConfig = OriginRequestPolicyConfig
a} :: UpdateOriginRequestPolicy)

-- | The unique identifier for the origin request policy that you are
-- updating. The identifier is returned in a cache behavior\'s
-- @OriginRequestPolicyId@ field in the response to
-- @GetDistributionConfig@.
updateOriginRequestPolicy_id :: Lens.Lens' UpdateOriginRequestPolicy Prelude.Text
updateOriginRequestPolicy_id :: Lens' UpdateOriginRequestPolicy Text
updateOriginRequestPolicy_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateOriginRequestPolicy' {Text
id :: Text
$sel:id:UpdateOriginRequestPolicy' :: UpdateOriginRequestPolicy -> Text
id} -> Text
id) (\s :: UpdateOriginRequestPolicy
s@UpdateOriginRequestPolicy' {} Text
a -> UpdateOriginRequestPolicy
s {$sel:id:UpdateOriginRequestPolicy' :: Text
id = Text
a} :: UpdateOriginRequestPolicy)

instance Core.AWSRequest UpdateOriginRequestPolicy where
  type
    AWSResponse UpdateOriginRequestPolicy =
      UpdateOriginRequestPolicyResponse
  request :: (Service -> Service)
-> UpdateOriginRequestPolicy -> Request UpdateOriginRequestPolicy
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 UpdateOriginRequestPolicy
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse UpdateOriginRequestPolicy)))
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 OriginRequestPolicy
-> Int
-> UpdateOriginRequestPolicyResponse
UpdateOriginRequestPolicyResponse'
            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 UpdateOriginRequestPolicy where
  hashWithSalt :: Int -> UpdateOriginRequestPolicy -> Int
hashWithSalt Int
_salt UpdateOriginRequestPolicy' {Maybe Text
Text
OriginRequestPolicyConfig
id :: Text
originRequestPolicyConfig :: OriginRequestPolicyConfig
ifMatch :: Maybe Text
$sel:id:UpdateOriginRequestPolicy' :: UpdateOriginRequestPolicy -> Text
$sel:originRequestPolicyConfig:UpdateOriginRequestPolicy' :: UpdateOriginRequestPolicy -> OriginRequestPolicyConfig
$sel:ifMatch:UpdateOriginRequestPolicy' :: UpdateOriginRequestPolicy -> 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` OriginRequestPolicyConfig
originRequestPolicyConfig
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
id

instance Prelude.NFData UpdateOriginRequestPolicy where
  rnf :: UpdateOriginRequestPolicy -> ()
rnf UpdateOriginRequestPolicy' {Maybe Text
Text
OriginRequestPolicyConfig
id :: Text
originRequestPolicyConfig :: OriginRequestPolicyConfig
ifMatch :: Maybe Text
$sel:id:UpdateOriginRequestPolicy' :: UpdateOriginRequestPolicy -> Text
$sel:originRequestPolicyConfig:UpdateOriginRequestPolicy' :: UpdateOriginRequestPolicy -> OriginRequestPolicyConfig
$sel:ifMatch:UpdateOriginRequestPolicy' :: UpdateOriginRequestPolicy -> 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 OriginRequestPolicyConfig
originRequestPolicyConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
id

instance Data.ToElement UpdateOriginRequestPolicy where
  toElement :: UpdateOriginRequestPolicy -> Element
toElement UpdateOriginRequestPolicy' {Maybe Text
Text
OriginRequestPolicyConfig
id :: Text
originRequestPolicyConfig :: OriginRequestPolicyConfig
ifMatch :: Maybe Text
$sel:id:UpdateOriginRequestPolicy' :: UpdateOriginRequestPolicy -> Text
$sel:originRequestPolicyConfig:UpdateOriginRequestPolicy' :: UpdateOriginRequestPolicy -> OriginRequestPolicyConfig
$sel:ifMatch:UpdateOriginRequestPolicy' :: UpdateOriginRequestPolicy -> Maybe Text
..} =
    forall a. ToXML a => Name -> a -> Element
Data.mkElement
      Name
"{http://cloudfront.amazonaws.com/doc/2020-05-31/}OriginRequestPolicyConfig"
      OriginRequestPolicyConfig
originRequestPolicyConfig

instance Data.ToHeaders UpdateOriginRequestPolicy where
  toHeaders :: UpdateOriginRequestPolicy -> ResponseHeaders
toHeaders UpdateOriginRequestPolicy' {Maybe Text
Text
OriginRequestPolicyConfig
id :: Text
originRequestPolicyConfig :: OriginRequestPolicyConfig
ifMatch :: Maybe Text
$sel:id:UpdateOriginRequestPolicy' :: UpdateOriginRequestPolicy -> Text
$sel:originRequestPolicyConfig:UpdateOriginRequestPolicy' :: UpdateOriginRequestPolicy -> OriginRequestPolicyConfig
$sel:ifMatch:UpdateOriginRequestPolicy' :: UpdateOriginRequestPolicy -> 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 UpdateOriginRequestPolicy where
  toPath :: UpdateOriginRequestPolicy -> ByteString
toPath UpdateOriginRequestPolicy' {Maybe Text
Text
OriginRequestPolicyConfig
id :: Text
originRequestPolicyConfig :: OriginRequestPolicyConfig
ifMatch :: Maybe Text
$sel:id:UpdateOriginRequestPolicy' :: UpdateOriginRequestPolicy -> Text
$sel:originRequestPolicyConfig:UpdateOriginRequestPolicy' :: UpdateOriginRequestPolicy -> OriginRequestPolicyConfig
$sel:ifMatch:UpdateOriginRequestPolicy' :: UpdateOriginRequestPolicy -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/2020-05-31/origin-request-policy/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
id]

instance Data.ToQuery UpdateOriginRequestPolicy where
  toQuery :: UpdateOriginRequestPolicy -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newUpdateOriginRequestPolicyResponse' smart constructor.
data UpdateOriginRequestPolicyResponse = UpdateOriginRequestPolicyResponse'
  { -- | The current version of the origin request policy.
    UpdateOriginRequestPolicyResponse -> Maybe Text
eTag :: Prelude.Maybe Prelude.Text,
    -- | An origin request policy.
    UpdateOriginRequestPolicyResponse -> Maybe OriginRequestPolicy
originRequestPolicy :: Prelude.Maybe OriginRequestPolicy,
    -- | The response's http status code.
    UpdateOriginRequestPolicyResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (UpdateOriginRequestPolicyResponse
-> UpdateOriginRequestPolicyResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateOriginRequestPolicyResponse
-> UpdateOriginRequestPolicyResponse -> Bool
$c/= :: UpdateOriginRequestPolicyResponse
-> UpdateOriginRequestPolicyResponse -> Bool
== :: UpdateOriginRequestPolicyResponse
-> UpdateOriginRequestPolicyResponse -> Bool
$c== :: UpdateOriginRequestPolicyResponse
-> UpdateOriginRequestPolicyResponse -> Bool
Prelude.Eq, ReadPrec [UpdateOriginRequestPolicyResponse]
ReadPrec UpdateOriginRequestPolicyResponse
Int -> ReadS UpdateOriginRequestPolicyResponse
ReadS [UpdateOriginRequestPolicyResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateOriginRequestPolicyResponse]
$creadListPrec :: ReadPrec [UpdateOriginRequestPolicyResponse]
readPrec :: ReadPrec UpdateOriginRequestPolicyResponse
$creadPrec :: ReadPrec UpdateOriginRequestPolicyResponse
readList :: ReadS [UpdateOriginRequestPolicyResponse]
$creadList :: ReadS [UpdateOriginRequestPolicyResponse]
readsPrec :: Int -> ReadS UpdateOriginRequestPolicyResponse
$creadsPrec :: Int -> ReadS UpdateOriginRequestPolicyResponse
Prelude.Read, Int -> UpdateOriginRequestPolicyResponse -> ShowS
[UpdateOriginRequestPolicyResponse] -> ShowS
UpdateOriginRequestPolicyResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateOriginRequestPolicyResponse] -> ShowS
$cshowList :: [UpdateOriginRequestPolicyResponse] -> ShowS
show :: UpdateOriginRequestPolicyResponse -> String
$cshow :: UpdateOriginRequestPolicyResponse -> String
showsPrec :: Int -> UpdateOriginRequestPolicyResponse -> ShowS
$cshowsPrec :: Int -> UpdateOriginRequestPolicyResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateOriginRequestPolicyResponse x
-> UpdateOriginRequestPolicyResponse
forall x.
UpdateOriginRequestPolicyResponse
-> Rep UpdateOriginRequestPolicyResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateOriginRequestPolicyResponse x
-> UpdateOriginRequestPolicyResponse
$cfrom :: forall x.
UpdateOriginRequestPolicyResponse
-> Rep UpdateOriginRequestPolicyResponse x
Prelude.Generic)

-- |
-- Create a value of 'UpdateOriginRequestPolicyResponse' 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', 'updateOriginRequestPolicyResponse_eTag' - The current version of the origin request policy.
--
-- 'originRequestPolicy', 'updateOriginRequestPolicyResponse_originRequestPolicy' - An origin request policy.
--
-- 'httpStatus', 'updateOriginRequestPolicyResponse_httpStatus' - The response's http status code.
newUpdateOriginRequestPolicyResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  UpdateOriginRequestPolicyResponse
newUpdateOriginRequestPolicyResponse :: Int -> UpdateOriginRequestPolicyResponse
newUpdateOriginRequestPolicyResponse Int
pHttpStatus_ =
  UpdateOriginRequestPolicyResponse'
    { $sel:eTag:UpdateOriginRequestPolicyResponse' :: Maybe Text
eTag =
        forall a. Maybe a
Prelude.Nothing,
      $sel:originRequestPolicy:UpdateOriginRequestPolicyResponse' :: Maybe OriginRequestPolicy
originRequestPolicy = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:UpdateOriginRequestPolicyResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The current version of the origin request policy.
updateOriginRequestPolicyResponse_eTag :: Lens.Lens' UpdateOriginRequestPolicyResponse (Prelude.Maybe Prelude.Text)
updateOriginRequestPolicyResponse_eTag :: Lens' UpdateOriginRequestPolicyResponse (Maybe Text)
updateOriginRequestPolicyResponse_eTag = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateOriginRequestPolicyResponse' {Maybe Text
eTag :: Maybe Text
$sel:eTag:UpdateOriginRequestPolicyResponse' :: UpdateOriginRequestPolicyResponse -> Maybe Text
eTag} -> Maybe Text
eTag) (\s :: UpdateOriginRequestPolicyResponse
s@UpdateOriginRequestPolicyResponse' {} Maybe Text
a -> UpdateOriginRequestPolicyResponse
s {$sel:eTag:UpdateOriginRequestPolicyResponse' :: Maybe Text
eTag = Maybe Text
a} :: UpdateOriginRequestPolicyResponse)

-- | An origin request policy.
updateOriginRequestPolicyResponse_originRequestPolicy :: Lens.Lens' UpdateOriginRequestPolicyResponse (Prelude.Maybe OriginRequestPolicy)
updateOriginRequestPolicyResponse_originRequestPolicy :: Lens' UpdateOriginRequestPolicyResponse (Maybe OriginRequestPolicy)
updateOriginRequestPolicyResponse_originRequestPolicy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateOriginRequestPolicyResponse' {Maybe OriginRequestPolicy
originRequestPolicy :: Maybe OriginRequestPolicy
$sel:originRequestPolicy:UpdateOriginRequestPolicyResponse' :: UpdateOriginRequestPolicyResponse -> Maybe OriginRequestPolicy
originRequestPolicy} -> Maybe OriginRequestPolicy
originRequestPolicy) (\s :: UpdateOriginRequestPolicyResponse
s@UpdateOriginRequestPolicyResponse' {} Maybe OriginRequestPolicy
a -> UpdateOriginRequestPolicyResponse
s {$sel:originRequestPolicy:UpdateOriginRequestPolicyResponse' :: Maybe OriginRequestPolicy
originRequestPolicy = Maybe OriginRequestPolicy
a} :: UpdateOriginRequestPolicyResponse)

-- | The response's http status code.
updateOriginRequestPolicyResponse_httpStatus :: Lens.Lens' UpdateOriginRequestPolicyResponse Prelude.Int
updateOriginRequestPolicyResponse_httpStatus :: Lens' UpdateOriginRequestPolicyResponse Int
updateOriginRequestPolicyResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateOriginRequestPolicyResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateOriginRequestPolicyResponse' :: UpdateOriginRequestPolicyResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UpdateOriginRequestPolicyResponse
s@UpdateOriginRequestPolicyResponse' {} Int
a -> UpdateOriginRequestPolicyResponse
s {$sel:httpStatus:UpdateOriginRequestPolicyResponse' :: Int
httpStatus = Int
a} :: UpdateOriginRequestPolicyResponse)

instance
  Prelude.NFData
    UpdateOriginRequestPolicyResponse
  where
  rnf :: UpdateOriginRequestPolicyResponse -> ()
rnf UpdateOriginRequestPolicyResponse' {Int
Maybe Text
Maybe OriginRequestPolicy
httpStatus :: Int
originRequestPolicy :: Maybe OriginRequestPolicy
eTag :: Maybe Text
$sel:httpStatus:UpdateOriginRequestPolicyResponse' :: UpdateOriginRequestPolicyResponse -> Int
$sel:originRequestPolicy:UpdateOriginRequestPolicyResponse' :: UpdateOriginRequestPolicyResponse -> Maybe OriginRequestPolicy
$sel:eTag:UpdateOriginRequestPolicyResponse' :: UpdateOriginRequestPolicyResponse -> 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 OriginRequestPolicy
originRequestPolicy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus