{-# 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.UpdateDistributionWithStagingConfig
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Copies the staging distribution\'s configuration to its corresponding
-- primary distribution. The primary distribution retains its @Aliases@
-- (also known as alternate domain names or CNAMEs) and
-- @ContinuousDeploymentPolicyId@ value, but otherwise its configuration is
-- overwritten to match the staging distribution.
--
-- You can use this operation in a continuous deployment workflow after you
-- have tested configuration changes on the staging distribution. After
-- using a continuous deployment policy to move a portion of your domain
-- name\'s traffic to the staging distribution and verifying that it works
-- as intended, you can use this operation to copy the staging
-- distribution\'s configuration to the primary distribution. This action
-- will disable the continuous deployment policy and move your domain\'s
-- traffic back to the primary distribution.
module Amazonka.CloudFront.UpdateDistributionWithStagingConfig
  ( -- * Creating a Request
    UpdateDistributionWithStagingConfig (..),
    newUpdateDistributionWithStagingConfig,

    -- * Request Lenses
    updateDistributionWithStagingConfig_ifMatch,
    updateDistributionWithStagingConfig_stagingDistributionId,
    updateDistributionWithStagingConfig_id,

    -- * Destructuring the Response
    UpdateDistributionWithStagingConfigResponse (..),
    newUpdateDistributionWithStagingConfigResponse,

    -- * Response Lenses
    updateDistributionWithStagingConfigResponse_distribution,
    updateDistributionWithStagingConfigResponse_eTag,
    updateDistributionWithStagingConfigResponse_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:/ 'newUpdateDistributionWithStagingConfig' smart constructor.
data UpdateDistributionWithStagingConfig = UpdateDistributionWithStagingConfig'
  { -- | The current versions (@ETag@ values) of both primary and staging
    -- distributions. Provide these in the following format:
    --
    -- @\<primary ETag>, \<staging ETag>@
    UpdateDistributionWithStagingConfig -> Maybe Text
ifMatch :: Prelude.Maybe Prelude.Text,
    -- | The identifier of the staging distribution whose configuration you are
    -- copying to the primary distribution.
    UpdateDistributionWithStagingConfig -> Maybe Text
stagingDistributionId :: Prelude.Maybe Prelude.Text,
    -- | The identifier of the primary distribution to which you are copying a
    -- staging distribution\'s configuration.
    UpdateDistributionWithStagingConfig -> Text
id :: Prelude.Text
  }
  deriving (UpdateDistributionWithStagingConfig
-> UpdateDistributionWithStagingConfig -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateDistributionWithStagingConfig
-> UpdateDistributionWithStagingConfig -> Bool
$c/= :: UpdateDistributionWithStagingConfig
-> UpdateDistributionWithStagingConfig -> Bool
== :: UpdateDistributionWithStagingConfig
-> UpdateDistributionWithStagingConfig -> Bool
$c== :: UpdateDistributionWithStagingConfig
-> UpdateDistributionWithStagingConfig -> Bool
Prelude.Eq, ReadPrec [UpdateDistributionWithStagingConfig]
ReadPrec UpdateDistributionWithStagingConfig
Int -> ReadS UpdateDistributionWithStagingConfig
ReadS [UpdateDistributionWithStagingConfig]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateDistributionWithStagingConfig]
$creadListPrec :: ReadPrec [UpdateDistributionWithStagingConfig]
readPrec :: ReadPrec UpdateDistributionWithStagingConfig
$creadPrec :: ReadPrec UpdateDistributionWithStagingConfig
readList :: ReadS [UpdateDistributionWithStagingConfig]
$creadList :: ReadS [UpdateDistributionWithStagingConfig]
readsPrec :: Int -> ReadS UpdateDistributionWithStagingConfig
$creadsPrec :: Int -> ReadS UpdateDistributionWithStagingConfig
Prelude.Read, Int -> UpdateDistributionWithStagingConfig -> ShowS
[UpdateDistributionWithStagingConfig] -> ShowS
UpdateDistributionWithStagingConfig -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateDistributionWithStagingConfig] -> ShowS
$cshowList :: [UpdateDistributionWithStagingConfig] -> ShowS
show :: UpdateDistributionWithStagingConfig -> String
$cshow :: UpdateDistributionWithStagingConfig -> String
showsPrec :: Int -> UpdateDistributionWithStagingConfig -> ShowS
$cshowsPrec :: Int -> UpdateDistributionWithStagingConfig -> ShowS
Prelude.Show, forall x.
Rep UpdateDistributionWithStagingConfig x
-> UpdateDistributionWithStagingConfig
forall x.
UpdateDistributionWithStagingConfig
-> Rep UpdateDistributionWithStagingConfig x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateDistributionWithStagingConfig x
-> UpdateDistributionWithStagingConfig
$cfrom :: forall x.
UpdateDistributionWithStagingConfig
-> Rep UpdateDistributionWithStagingConfig x
Prelude.Generic)

-- |
-- Create a value of 'UpdateDistributionWithStagingConfig' 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', 'updateDistributionWithStagingConfig_ifMatch' - The current versions (@ETag@ values) of both primary and staging
-- distributions. Provide these in the following format:
--
-- @\<primary ETag>, \<staging ETag>@
--
-- 'stagingDistributionId', 'updateDistributionWithStagingConfig_stagingDistributionId' - The identifier of the staging distribution whose configuration you are
-- copying to the primary distribution.
--
-- 'id', 'updateDistributionWithStagingConfig_id' - The identifier of the primary distribution to which you are copying a
-- staging distribution\'s configuration.
newUpdateDistributionWithStagingConfig ::
  -- | 'id'
  Prelude.Text ->
  UpdateDistributionWithStagingConfig
newUpdateDistributionWithStagingConfig :: Text -> UpdateDistributionWithStagingConfig
newUpdateDistributionWithStagingConfig Text
pId_ =
  UpdateDistributionWithStagingConfig'
    { $sel:ifMatch:UpdateDistributionWithStagingConfig' :: Maybe Text
ifMatch =
        forall a. Maybe a
Prelude.Nothing,
      $sel:stagingDistributionId:UpdateDistributionWithStagingConfig' :: Maybe Text
stagingDistributionId =
        forall a. Maybe a
Prelude.Nothing,
      $sel:id:UpdateDistributionWithStagingConfig' :: Text
id = Text
pId_
    }

-- | The current versions (@ETag@ values) of both primary and staging
-- distributions. Provide these in the following format:
--
-- @\<primary ETag>, \<staging ETag>@
updateDistributionWithStagingConfig_ifMatch :: Lens.Lens' UpdateDistributionWithStagingConfig (Prelude.Maybe Prelude.Text)
updateDistributionWithStagingConfig_ifMatch :: Lens' UpdateDistributionWithStagingConfig (Maybe Text)
updateDistributionWithStagingConfig_ifMatch = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDistributionWithStagingConfig' {Maybe Text
ifMatch :: Maybe Text
$sel:ifMatch:UpdateDistributionWithStagingConfig' :: UpdateDistributionWithStagingConfig -> Maybe Text
ifMatch} -> Maybe Text
ifMatch) (\s :: UpdateDistributionWithStagingConfig
s@UpdateDistributionWithStagingConfig' {} Maybe Text
a -> UpdateDistributionWithStagingConfig
s {$sel:ifMatch:UpdateDistributionWithStagingConfig' :: Maybe Text
ifMatch = Maybe Text
a} :: UpdateDistributionWithStagingConfig)

-- | The identifier of the staging distribution whose configuration you are
-- copying to the primary distribution.
updateDistributionWithStagingConfig_stagingDistributionId :: Lens.Lens' UpdateDistributionWithStagingConfig (Prelude.Maybe Prelude.Text)
updateDistributionWithStagingConfig_stagingDistributionId :: Lens' UpdateDistributionWithStagingConfig (Maybe Text)
updateDistributionWithStagingConfig_stagingDistributionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDistributionWithStagingConfig' {Maybe Text
stagingDistributionId :: Maybe Text
$sel:stagingDistributionId:UpdateDistributionWithStagingConfig' :: UpdateDistributionWithStagingConfig -> Maybe Text
stagingDistributionId} -> Maybe Text
stagingDistributionId) (\s :: UpdateDistributionWithStagingConfig
s@UpdateDistributionWithStagingConfig' {} Maybe Text
a -> UpdateDistributionWithStagingConfig
s {$sel:stagingDistributionId:UpdateDistributionWithStagingConfig' :: Maybe Text
stagingDistributionId = Maybe Text
a} :: UpdateDistributionWithStagingConfig)

-- | The identifier of the primary distribution to which you are copying a
-- staging distribution\'s configuration.
updateDistributionWithStagingConfig_id :: Lens.Lens' UpdateDistributionWithStagingConfig Prelude.Text
updateDistributionWithStagingConfig_id :: Lens' UpdateDistributionWithStagingConfig Text
updateDistributionWithStagingConfig_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDistributionWithStagingConfig' {Text
id :: Text
$sel:id:UpdateDistributionWithStagingConfig' :: UpdateDistributionWithStagingConfig -> Text
id} -> Text
id) (\s :: UpdateDistributionWithStagingConfig
s@UpdateDistributionWithStagingConfig' {} Text
a -> UpdateDistributionWithStagingConfig
s {$sel:id:UpdateDistributionWithStagingConfig' :: Text
id = Text
a} :: UpdateDistributionWithStagingConfig)

instance
  Core.AWSRequest
    UpdateDistributionWithStagingConfig
  where
  type
    AWSResponse UpdateDistributionWithStagingConfig =
      UpdateDistributionWithStagingConfigResponse
  request :: (Service -> Service)
-> UpdateDistributionWithStagingConfig
-> Request UpdateDistributionWithStagingConfig
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.put (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy UpdateDistributionWithStagingConfig
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse UpdateDistributionWithStagingConfig)))
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 Distribution
-> Maybe Text -> Int -> UpdateDistributionWithStagingConfigResponse
UpdateDistributionWithStagingConfigResponse'
            forall (f :: * -> *) a b. Functor 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.<*> (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 (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance
  Prelude.Hashable
    UpdateDistributionWithStagingConfig
  where
  hashWithSalt :: Int -> UpdateDistributionWithStagingConfig -> Int
hashWithSalt
    Int
_salt
    UpdateDistributionWithStagingConfig' {Maybe Text
Text
id :: Text
stagingDistributionId :: Maybe Text
ifMatch :: Maybe Text
$sel:id:UpdateDistributionWithStagingConfig' :: UpdateDistributionWithStagingConfig -> Text
$sel:stagingDistributionId:UpdateDistributionWithStagingConfig' :: UpdateDistributionWithStagingConfig -> Maybe Text
$sel:ifMatch:UpdateDistributionWithStagingConfig' :: UpdateDistributionWithStagingConfig -> 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` Maybe Text
stagingDistributionId
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
id

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

instance
  Data.ToHeaders
    UpdateDistributionWithStagingConfig
  where
  toHeaders :: UpdateDistributionWithStagingConfig -> ResponseHeaders
toHeaders UpdateDistributionWithStagingConfig' {Maybe Text
Text
id :: Text
stagingDistributionId :: Maybe Text
ifMatch :: Maybe Text
$sel:id:UpdateDistributionWithStagingConfig' :: UpdateDistributionWithStagingConfig -> Text
$sel:stagingDistributionId:UpdateDistributionWithStagingConfig' :: UpdateDistributionWithStagingConfig -> Maybe Text
$sel:ifMatch:UpdateDistributionWithStagingConfig' :: UpdateDistributionWithStagingConfig -> 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
    UpdateDistributionWithStagingConfig
  where
  toPath :: UpdateDistributionWithStagingConfig -> ByteString
toPath UpdateDistributionWithStagingConfig' {Maybe Text
Text
id :: Text
stagingDistributionId :: Maybe Text
ifMatch :: Maybe Text
$sel:id:UpdateDistributionWithStagingConfig' :: UpdateDistributionWithStagingConfig -> Text
$sel:stagingDistributionId:UpdateDistributionWithStagingConfig' :: UpdateDistributionWithStagingConfig -> Maybe Text
$sel:ifMatch:UpdateDistributionWithStagingConfig' :: UpdateDistributionWithStagingConfig -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/2020-05-31/distribution/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
id,
        ByteString
"/promote-staging-config"
      ]

instance
  Data.ToQuery
    UpdateDistributionWithStagingConfig
  where
  toQuery :: UpdateDistributionWithStagingConfig -> QueryString
toQuery UpdateDistributionWithStagingConfig' {Maybe Text
Text
id :: Text
stagingDistributionId :: Maybe Text
ifMatch :: Maybe Text
$sel:id:UpdateDistributionWithStagingConfig' :: UpdateDistributionWithStagingConfig -> Text
$sel:stagingDistributionId:UpdateDistributionWithStagingConfig' :: UpdateDistributionWithStagingConfig -> Maybe Text
$sel:ifMatch:UpdateDistributionWithStagingConfig' :: UpdateDistributionWithStagingConfig -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"StagingDistributionId"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
stagingDistributionId
      ]

-- | /See:/ 'newUpdateDistributionWithStagingConfigResponse' smart constructor.
data UpdateDistributionWithStagingConfigResponse = UpdateDistributionWithStagingConfigResponse'
  { UpdateDistributionWithStagingConfigResponse -> Maybe Distribution
distribution :: Prelude.Maybe Distribution,
    -- | The current version of the primary distribution (after it\'s updated).
    UpdateDistributionWithStagingConfigResponse -> Maybe Text
eTag :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    UpdateDistributionWithStagingConfigResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (UpdateDistributionWithStagingConfigResponse
-> UpdateDistributionWithStagingConfigResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateDistributionWithStagingConfigResponse
-> UpdateDistributionWithStagingConfigResponse -> Bool
$c/= :: UpdateDistributionWithStagingConfigResponse
-> UpdateDistributionWithStagingConfigResponse -> Bool
== :: UpdateDistributionWithStagingConfigResponse
-> UpdateDistributionWithStagingConfigResponse -> Bool
$c== :: UpdateDistributionWithStagingConfigResponse
-> UpdateDistributionWithStagingConfigResponse -> Bool
Prelude.Eq, Int -> UpdateDistributionWithStagingConfigResponse -> ShowS
[UpdateDistributionWithStagingConfigResponse] -> ShowS
UpdateDistributionWithStagingConfigResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateDistributionWithStagingConfigResponse] -> ShowS
$cshowList :: [UpdateDistributionWithStagingConfigResponse] -> ShowS
show :: UpdateDistributionWithStagingConfigResponse -> String
$cshow :: UpdateDistributionWithStagingConfigResponse -> String
showsPrec :: Int -> UpdateDistributionWithStagingConfigResponse -> ShowS
$cshowsPrec :: Int -> UpdateDistributionWithStagingConfigResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateDistributionWithStagingConfigResponse x
-> UpdateDistributionWithStagingConfigResponse
forall x.
UpdateDistributionWithStagingConfigResponse
-> Rep UpdateDistributionWithStagingConfigResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateDistributionWithStagingConfigResponse x
-> UpdateDistributionWithStagingConfigResponse
$cfrom :: forall x.
UpdateDistributionWithStagingConfigResponse
-> Rep UpdateDistributionWithStagingConfigResponse x
Prelude.Generic)

-- |
-- Create a value of 'UpdateDistributionWithStagingConfigResponse' 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:
--
-- 'distribution', 'updateDistributionWithStagingConfigResponse_distribution' - Undocumented member.
--
-- 'eTag', 'updateDistributionWithStagingConfigResponse_eTag' - The current version of the primary distribution (after it\'s updated).
--
-- 'httpStatus', 'updateDistributionWithStagingConfigResponse_httpStatus' - The response's http status code.
newUpdateDistributionWithStagingConfigResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  UpdateDistributionWithStagingConfigResponse
newUpdateDistributionWithStagingConfigResponse :: Int -> UpdateDistributionWithStagingConfigResponse
newUpdateDistributionWithStagingConfigResponse
  Int
pHttpStatus_ =
    UpdateDistributionWithStagingConfigResponse'
      { $sel:distribution:UpdateDistributionWithStagingConfigResponse' :: Maybe Distribution
distribution =
          forall a. Maybe a
Prelude.Nothing,
        $sel:eTag:UpdateDistributionWithStagingConfigResponse' :: Maybe Text
eTag = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:UpdateDistributionWithStagingConfigResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | Undocumented member.
updateDistributionWithStagingConfigResponse_distribution :: Lens.Lens' UpdateDistributionWithStagingConfigResponse (Prelude.Maybe Distribution)
updateDistributionWithStagingConfigResponse_distribution :: Lens'
  UpdateDistributionWithStagingConfigResponse (Maybe Distribution)
updateDistributionWithStagingConfigResponse_distribution = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDistributionWithStagingConfigResponse' {Maybe Distribution
distribution :: Maybe Distribution
$sel:distribution:UpdateDistributionWithStagingConfigResponse' :: UpdateDistributionWithStagingConfigResponse -> Maybe Distribution
distribution} -> Maybe Distribution
distribution) (\s :: UpdateDistributionWithStagingConfigResponse
s@UpdateDistributionWithStagingConfigResponse' {} Maybe Distribution
a -> UpdateDistributionWithStagingConfigResponse
s {$sel:distribution:UpdateDistributionWithStagingConfigResponse' :: Maybe Distribution
distribution = Maybe Distribution
a} :: UpdateDistributionWithStagingConfigResponse)

-- | The current version of the primary distribution (after it\'s updated).
updateDistributionWithStagingConfigResponse_eTag :: Lens.Lens' UpdateDistributionWithStagingConfigResponse (Prelude.Maybe Prelude.Text)
updateDistributionWithStagingConfigResponse_eTag :: Lens' UpdateDistributionWithStagingConfigResponse (Maybe Text)
updateDistributionWithStagingConfigResponse_eTag = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDistributionWithStagingConfigResponse' {Maybe Text
eTag :: Maybe Text
$sel:eTag:UpdateDistributionWithStagingConfigResponse' :: UpdateDistributionWithStagingConfigResponse -> Maybe Text
eTag} -> Maybe Text
eTag) (\s :: UpdateDistributionWithStagingConfigResponse
s@UpdateDistributionWithStagingConfigResponse' {} Maybe Text
a -> UpdateDistributionWithStagingConfigResponse
s {$sel:eTag:UpdateDistributionWithStagingConfigResponse' :: Maybe Text
eTag = Maybe Text
a} :: UpdateDistributionWithStagingConfigResponse)

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

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