{-# 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.UpdateResponseHeadersPolicy
-- 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 response headers policy.
--
-- When you update a response headers policy, the entire policy is
-- replaced. You cannot update some policy fields independent of others. To
-- update a response headers policy configuration:
--
-- 1.  Use @GetResponseHeadersPolicyConfig@ to get the current policy\'s
--     configuration.
--
-- 2.  Modify the fields in the response headers policy configuration that
--     you want to update.
--
-- 3.  Call @UpdateResponseHeadersPolicy@, providing the entire response
--     headers policy configuration, including the fields that you modified
--     and those that you didn\'t.
module Amazonka.CloudFront.UpdateResponseHeadersPolicy
  ( -- * Creating a Request
    UpdateResponseHeadersPolicy (..),
    newUpdateResponseHeadersPolicy,

    -- * Request Lenses
    updateResponseHeadersPolicy_ifMatch,
    updateResponseHeadersPolicy_responseHeadersPolicyConfig,
    updateResponseHeadersPolicy_id,

    -- * Destructuring the Response
    UpdateResponseHeadersPolicyResponse (..),
    newUpdateResponseHeadersPolicyResponse,

    -- * Response Lenses
    updateResponseHeadersPolicyResponse_eTag,
    updateResponseHeadersPolicyResponse_responseHeadersPolicy,
    updateResponseHeadersPolicyResponse_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:/ 'newUpdateResponseHeadersPolicy' smart constructor.
data UpdateResponseHeadersPolicy = UpdateResponseHeadersPolicy'
  { -- | The version of the response headers policy that you are updating.
    --
    -- The version is returned in the cache policy\'s @ETag@ field in the
    -- response to @GetResponseHeadersPolicyConfig@.
    UpdateResponseHeadersPolicy -> Maybe Text
ifMatch :: Prelude.Maybe Prelude.Text,
    -- | A response headers policy configuration.
    UpdateResponseHeadersPolicy -> ResponseHeadersPolicyConfig
responseHeadersPolicyConfig :: ResponseHeadersPolicyConfig,
    -- | The identifier for the response headers policy that you are updating.
    UpdateResponseHeadersPolicy -> Text
id :: Prelude.Text
  }
  deriving (UpdateResponseHeadersPolicy -> UpdateResponseHeadersPolicy -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateResponseHeadersPolicy -> UpdateResponseHeadersPolicy -> Bool
$c/= :: UpdateResponseHeadersPolicy -> UpdateResponseHeadersPolicy -> Bool
== :: UpdateResponseHeadersPolicy -> UpdateResponseHeadersPolicy -> Bool
$c== :: UpdateResponseHeadersPolicy -> UpdateResponseHeadersPolicy -> Bool
Prelude.Eq, ReadPrec [UpdateResponseHeadersPolicy]
ReadPrec UpdateResponseHeadersPolicy
Int -> ReadS UpdateResponseHeadersPolicy
ReadS [UpdateResponseHeadersPolicy]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateResponseHeadersPolicy]
$creadListPrec :: ReadPrec [UpdateResponseHeadersPolicy]
readPrec :: ReadPrec UpdateResponseHeadersPolicy
$creadPrec :: ReadPrec UpdateResponseHeadersPolicy
readList :: ReadS [UpdateResponseHeadersPolicy]
$creadList :: ReadS [UpdateResponseHeadersPolicy]
readsPrec :: Int -> ReadS UpdateResponseHeadersPolicy
$creadsPrec :: Int -> ReadS UpdateResponseHeadersPolicy
Prelude.Read, Int -> UpdateResponseHeadersPolicy -> ShowS
[UpdateResponseHeadersPolicy] -> ShowS
UpdateResponseHeadersPolicy -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateResponseHeadersPolicy] -> ShowS
$cshowList :: [UpdateResponseHeadersPolicy] -> ShowS
show :: UpdateResponseHeadersPolicy -> String
$cshow :: UpdateResponseHeadersPolicy -> String
showsPrec :: Int -> UpdateResponseHeadersPolicy -> ShowS
$cshowsPrec :: Int -> UpdateResponseHeadersPolicy -> ShowS
Prelude.Show, forall x.
Rep UpdateResponseHeadersPolicy x -> UpdateResponseHeadersPolicy
forall x.
UpdateResponseHeadersPolicy -> Rep UpdateResponseHeadersPolicy x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateResponseHeadersPolicy x -> UpdateResponseHeadersPolicy
$cfrom :: forall x.
UpdateResponseHeadersPolicy -> Rep UpdateResponseHeadersPolicy x
Prelude.Generic)

-- |
-- Create a value of 'UpdateResponseHeadersPolicy' 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', 'updateResponseHeadersPolicy_ifMatch' - The version of the response headers policy that you are updating.
--
-- The version is returned in the cache policy\'s @ETag@ field in the
-- response to @GetResponseHeadersPolicyConfig@.
--
-- 'responseHeadersPolicyConfig', 'updateResponseHeadersPolicy_responseHeadersPolicyConfig' - A response headers policy configuration.
--
-- 'id', 'updateResponseHeadersPolicy_id' - The identifier for the response headers policy that you are updating.
newUpdateResponseHeadersPolicy ::
  -- | 'responseHeadersPolicyConfig'
  ResponseHeadersPolicyConfig ->
  -- | 'id'
  Prelude.Text ->
  UpdateResponseHeadersPolicy
newUpdateResponseHeadersPolicy :: ResponseHeadersPolicyConfig -> Text -> UpdateResponseHeadersPolicy
newUpdateResponseHeadersPolicy
  ResponseHeadersPolicyConfig
pResponseHeadersPolicyConfig_
  Text
pId_ =
    UpdateResponseHeadersPolicy'
      { $sel:ifMatch:UpdateResponseHeadersPolicy' :: Maybe Text
ifMatch =
          forall a. Maybe a
Prelude.Nothing,
        $sel:responseHeadersPolicyConfig:UpdateResponseHeadersPolicy' :: ResponseHeadersPolicyConfig
responseHeadersPolicyConfig =
          ResponseHeadersPolicyConfig
pResponseHeadersPolicyConfig_,
        $sel:id:UpdateResponseHeadersPolicy' :: Text
id = Text
pId_
      }

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

-- | A response headers policy configuration.
updateResponseHeadersPolicy_responseHeadersPolicyConfig :: Lens.Lens' UpdateResponseHeadersPolicy ResponseHeadersPolicyConfig
updateResponseHeadersPolicy_responseHeadersPolicyConfig :: Lens' UpdateResponseHeadersPolicy ResponseHeadersPolicyConfig
updateResponseHeadersPolicy_responseHeadersPolicyConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateResponseHeadersPolicy' {ResponseHeadersPolicyConfig
responseHeadersPolicyConfig :: ResponseHeadersPolicyConfig
$sel:responseHeadersPolicyConfig:UpdateResponseHeadersPolicy' :: UpdateResponseHeadersPolicy -> ResponseHeadersPolicyConfig
responseHeadersPolicyConfig} -> ResponseHeadersPolicyConfig
responseHeadersPolicyConfig) (\s :: UpdateResponseHeadersPolicy
s@UpdateResponseHeadersPolicy' {} ResponseHeadersPolicyConfig
a -> UpdateResponseHeadersPolicy
s {$sel:responseHeadersPolicyConfig:UpdateResponseHeadersPolicy' :: ResponseHeadersPolicyConfig
responseHeadersPolicyConfig = ResponseHeadersPolicyConfig
a} :: UpdateResponseHeadersPolicy)

-- | The identifier for the response headers policy that you are updating.
updateResponseHeadersPolicy_id :: Lens.Lens' UpdateResponseHeadersPolicy Prelude.Text
updateResponseHeadersPolicy_id :: Lens' UpdateResponseHeadersPolicy Text
updateResponseHeadersPolicy_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateResponseHeadersPolicy' {Text
id :: Text
$sel:id:UpdateResponseHeadersPolicy' :: UpdateResponseHeadersPolicy -> Text
id} -> Text
id) (\s :: UpdateResponseHeadersPolicy
s@UpdateResponseHeadersPolicy' {} Text
a -> UpdateResponseHeadersPolicy
s {$sel:id:UpdateResponseHeadersPolicy' :: Text
id = Text
a} :: UpdateResponseHeadersPolicy)

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

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

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

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

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

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

-- |
-- Create a value of 'UpdateResponseHeadersPolicyResponse' 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', 'updateResponseHeadersPolicyResponse_eTag' - The current version of the response headers policy.
--
-- 'responseHeadersPolicy', 'updateResponseHeadersPolicyResponse_responseHeadersPolicy' - A response headers policy.
--
-- 'httpStatus', 'updateResponseHeadersPolicyResponse_httpStatus' - The response's http status code.
newUpdateResponseHeadersPolicyResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  UpdateResponseHeadersPolicyResponse
newUpdateResponseHeadersPolicyResponse :: Int -> UpdateResponseHeadersPolicyResponse
newUpdateResponseHeadersPolicyResponse Int
pHttpStatus_ =
  UpdateResponseHeadersPolicyResponse'
    { $sel:eTag:UpdateResponseHeadersPolicyResponse' :: Maybe Text
eTag =
        forall a. Maybe a
Prelude.Nothing,
      $sel:responseHeadersPolicy:UpdateResponseHeadersPolicyResponse' :: Maybe ResponseHeadersPolicy
responseHeadersPolicy =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:UpdateResponseHeadersPolicyResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

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

-- | A response headers policy.
updateResponseHeadersPolicyResponse_responseHeadersPolicy :: Lens.Lens' UpdateResponseHeadersPolicyResponse (Prelude.Maybe ResponseHeadersPolicy)
updateResponseHeadersPolicyResponse_responseHeadersPolicy :: Lens'
  UpdateResponseHeadersPolicyResponse (Maybe ResponseHeadersPolicy)
updateResponseHeadersPolicyResponse_responseHeadersPolicy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateResponseHeadersPolicyResponse' {Maybe ResponseHeadersPolicy
responseHeadersPolicy :: Maybe ResponseHeadersPolicy
$sel:responseHeadersPolicy:UpdateResponseHeadersPolicyResponse' :: UpdateResponseHeadersPolicyResponse -> Maybe ResponseHeadersPolicy
responseHeadersPolicy} -> Maybe ResponseHeadersPolicy
responseHeadersPolicy) (\s :: UpdateResponseHeadersPolicyResponse
s@UpdateResponseHeadersPolicyResponse' {} Maybe ResponseHeadersPolicy
a -> UpdateResponseHeadersPolicyResponse
s {$sel:responseHeadersPolicy:UpdateResponseHeadersPolicyResponse' :: Maybe ResponseHeadersPolicy
responseHeadersPolicy = Maybe ResponseHeadersPolicy
a} :: UpdateResponseHeadersPolicyResponse)

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

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