{-# 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.UpdateContinuousDeploymentPolicy
-- 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 continuous deployment policy. You can update a continuous
-- deployment policy to enable or disable it, to change the percentage of
-- traffic that it sends to the staging distribution, or to change the
-- staging distribution that it sends traffic to.
--
-- When you update a continuous deployment policy configuration, all the
-- fields are updated with the values that are provided in the request. You
-- cannot update some fields independent of others. To update a continuous
-- deployment policy configuration:
--
-- 1.  Use @GetContinuousDeploymentPolicyConfig@ to get the current
--     configuration.
--
-- 2.  Locally modify the fields in the continuous deployment policy
--     configuration that you want to update.
--
-- 3.  Use @UpdateContinuousDeploymentPolicy@, providing the entire
--     continuous deployment policy configuration, including the fields
--     that you modified and those that you didn\'t.
module Amazonka.CloudFront.UpdateContinuousDeploymentPolicy
  ( -- * Creating a Request
    UpdateContinuousDeploymentPolicy (..),
    newUpdateContinuousDeploymentPolicy,

    -- * Request Lenses
    updateContinuousDeploymentPolicy_ifMatch,
    updateContinuousDeploymentPolicy_continuousDeploymentPolicyConfig,
    updateContinuousDeploymentPolicy_id,

    -- * Destructuring the Response
    UpdateContinuousDeploymentPolicyResponse (..),
    newUpdateContinuousDeploymentPolicyResponse,

    -- * Response Lenses
    updateContinuousDeploymentPolicyResponse_continuousDeploymentPolicy,
    updateContinuousDeploymentPolicyResponse_eTag,
    updateContinuousDeploymentPolicyResponse_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:/ 'newUpdateContinuousDeploymentPolicy' smart constructor.
data UpdateContinuousDeploymentPolicy = UpdateContinuousDeploymentPolicy'
  { -- | The current version (@ETag@ value) of the continuous deployment policy
    -- that you are updating.
    UpdateContinuousDeploymentPolicy -> Maybe Text
ifMatch :: Prelude.Maybe Prelude.Text,
    -- | The continuous deployment policy configuration.
    UpdateContinuousDeploymentPolicy
-> ContinuousDeploymentPolicyConfig
continuousDeploymentPolicyConfig :: ContinuousDeploymentPolicyConfig,
    -- | The identifier of the continuous deployment policy that you are
    -- updating.
    UpdateContinuousDeploymentPolicy -> Text
id :: Prelude.Text
  }
  deriving (UpdateContinuousDeploymentPolicy
-> UpdateContinuousDeploymentPolicy -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateContinuousDeploymentPolicy
-> UpdateContinuousDeploymentPolicy -> Bool
$c/= :: UpdateContinuousDeploymentPolicy
-> UpdateContinuousDeploymentPolicy -> Bool
== :: UpdateContinuousDeploymentPolicy
-> UpdateContinuousDeploymentPolicy -> Bool
$c== :: UpdateContinuousDeploymentPolicy
-> UpdateContinuousDeploymentPolicy -> Bool
Prelude.Eq, ReadPrec [UpdateContinuousDeploymentPolicy]
ReadPrec UpdateContinuousDeploymentPolicy
Int -> ReadS UpdateContinuousDeploymentPolicy
ReadS [UpdateContinuousDeploymentPolicy]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateContinuousDeploymentPolicy]
$creadListPrec :: ReadPrec [UpdateContinuousDeploymentPolicy]
readPrec :: ReadPrec UpdateContinuousDeploymentPolicy
$creadPrec :: ReadPrec UpdateContinuousDeploymentPolicy
readList :: ReadS [UpdateContinuousDeploymentPolicy]
$creadList :: ReadS [UpdateContinuousDeploymentPolicy]
readsPrec :: Int -> ReadS UpdateContinuousDeploymentPolicy
$creadsPrec :: Int -> ReadS UpdateContinuousDeploymentPolicy
Prelude.Read, Int -> UpdateContinuousDeploymentPolicy -> ShowS
[UpdateContinuousDeploymentPolicy] -> ShowS
UpdateContinuousDeploymentPolicy -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateContinuousDeploymentPolicy] -> ShowS
$cshowList :: [UpdateContinuousDeploymentPolicy] -> ShowS
show :: UpdateContinuousDeploymentPolicy -> String
$cshow :: UpdateContinuousDeploymentPolicy -> String
showsPrec :: Int -> UpdateContinuousDeploymentPolicy -> ShowS
$cshowsPrec :: Int -> UpdateContinuousDeploymentPolicy -> ShowS
Prelude.Show, forall x.
Rep UpdateContinuousDeploymentPolicy x
-> UpdateContinuousDeploymentPolicy
forall x.
UpdateContinuousDeploymentPolicy
-> Rep UpdateContinuousDeploymentPolicy x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateContinuousDeploymentPolicy x
-> UpdateContinuousDeploymentPolicy
$cfrom :: forall x.
UpdateContinuousDeploymentPolicy
-> Rep UpdateContinuousDeploymentPolicy x
Prelude.Generic)

-- |
-- Create a value of 'UpdateContinuousDeploymentPolicy' 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', 'updateContinuousDeploymentPolicy_ifMatch' - The current version (@ETag@ value) of the continuous deployment policy
-- that you are updating.
--
-- 'continuousDeploymentPolicyConfig', 'updateContinuousDeploymentPolicy_continuousDeploymentPolicyConfig' - The continuous deployment policy configuration.
--
-- 'id', 'updateContinuousDeploymentPolicy_id' - The identifier of the continuous deployment policy that you are
-- updating.
newUpdateContinuousDeploymentPolicy ::
  -- | 'continuousDeploymentPolicyConfig'
  ContinuousDeploymentPolicyConfig ->
  -- | 'id'
  Prelude.Text ->
  UpdateContinuousDeploymentPolicy
newUpdateContinuousDeploymentPolicy :: ContinuousDeploymentPolicyConfig
-> Text -> UpdateContinuousDeploymentPolicy
newUpdateContinuousDeploymentPolicy
  ContinuousDeploymentPolicyConfig
pContinuousDeploymentPolicyConfig_
  Text
pId_ =
    UpdateContinuousDeploymentPolicy'
      { $sel:ifMatch:UpdateContinuousDeploymentPolicy' :: Maybe Text
ifMatch =
          forall a. Maybe a
Prelude.Nothing,
        $sel:continuousDeploymentPolicyConfig:UpdateContinuousDeploymentPolicy' :: ContinuousDeploymentPolicyConfig
continuousDeploymentPolicyConfig =
          ContinuousDeploymentPolicyConfig
pContinuousDeploymentPolicyConfig_,
        $sel:id:UpdateContinuousDeploymentPolicy' :: Text
id = Text
pId_
      }

-- | The current version (@ETag@ value) of the continuous deployment policy
-- that you are updating.
updateContinuousDeploymentPolicy_ifMatch :: Lens.Lens' UpdateContinuousDeploymentPolicy (Prelude.Maybe Prelude.Text)
updateContinuousDeploymentPolicy_ifMatch :: Lens' UpdateContinuousDeploymentPolicy (Maybe Text)
updateContinuousDeploymentPolicy_ifMatch = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateContinuousDeploymentPolicy' {Maybe Text
ifMatch :: Maybe Text
$sel:ifMatch:UpdateContinuousDeploymentPolicy' :: UpdateContinuousDeploymentPolicy -> Maybe Text
ifMatch} -> Maybe Text
ifMatch) (\s :: UpdateContinuousDeploymentPolicy
s@UpdateContinuousDeploymentPolicy' {} Maybe Text
a -> UpdateContinuousDeploymentPolicy
s {$sel:ifMatch:UpdateContinuousDeploymentPolicy' :: Maybe Text
ifMatch = Maybe Text
a} :: UpdateContinuousDeploymentPolicy)

-- | The continuous deployment policy configuration.
updateContinuousDeploymentPolicy_continuousDeploymentPolicyConfig :: Lens.Lens' UpdateContinuousDeploymentPolicy ContinuousDeploymentPolicyConfig
updateContinuousDeploymentPolicy_continuousDeploymentPolicyConfig :: Lens'
  UpdateContinuousDeploymentPolicy ContinuousDeploymentPolicyConfig
updateContinuousDeploymentPolicy_continuousDeploymentPolicyConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateContinuousDeploymentPolicy' {ContinuousDeploymentPolicyConfig
continuousDeploymentPolicyConfig :: ContinuousDeploymentPolicyConfig
$sel:continuousDeploymentPolicyConfig:UpdateContinuousDeploymentPolicy' :: UpdateContinuousDeploymentPolicy
-> ContinuousDeploymentPolicyConfig
continuousDeploymentPolicyConfig} -> ContinuousDeploymentPolicyConfig
continuousDeploymentPolicyConfig) (\s :: UpdateContinuousDeploymentPolicy
s@UpdateContinuousDeploymentPolicy' {} ContinuousDeploymentPolicyConfig
a -> UpdateContinuousDeploymentPolicy
s {$sel:continuousDeploymentPolicyConfig:UpdateContinuousDeploymentPolicy' :: ContinuousDeploymentPolicyConfig
continuousDeploymentPolicyConfig = ContinuousDeploymentPolicyConfig
a} :: UpdateContinuousDeploymentPolicy)

-- | The identifier of the continuous deployment policy that you are
-- updating.
updateContinuousDeploymentPolicy_id :: Lens.Lens' UpdateContinuousDeploymentPolicy Prelude.Text
updateContinuousDeploymentPolicy_id :: Lens' UpdateContinuousDeploymentPolicy Text
updateContinuousDeploymentPolicy_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateContinuousDeploymentPolicy' {Text
id :: Text
$sel:id:UpdateContinuousDeploymentPolicy' :: UpdateContinuousDeploymentPolicy -> Text
id} -> Text
id) (\s :: UpdateContinuousDeploymentPolicy
s@UpdateContinuousDeploymentPolicy' {} Text
a -> UpdateContinuousDeploymentPolicy
s {$sel:id:UpdateContinuousDeploymentPolicy' :: Text
id = Text
a} :: UpdateContinuousDeploymentPolicy)

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

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

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

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

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

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

-- |
-- Create a value of 'UpdateContinuousDeploymentPolicyResponse' 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:
--
-- 'continuousDeploymentPolicy', 'updateContinuousDeploymentPolicyResponse_continuousDeploymentPolicy' - A continuous deployment policy.
--
-- 'eTag', 'updateContinuousDeploymentPolicyResponse_eTag' - The version identifier for the current version of the continuous
-- deployment policy.
--
-- 'httpStatus', 'updateContinuousDeploymentPolicyResponse_httpStatus' - The response's http status code.
newUpdateContinuousDeploymentPolicyResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  UpdateContinuousDeploymentPolicyResponse
newUpdateContinuousDeploymentPolicyResponse :: Int -> UpdateContinuousDeploymentPolicyResponse
newUpdateContinuousDeploymentPolicyResponse
  Int
pHttpStatus_ =
    UpdateContinuousDeploymentPolicyResponse'
      { $sel:continuousDeploymentPolicy:UpdateContinuousDeploymentPolicyResponse' :: Maybe ContinuousDeploymentPolicy
continuousDeploymentPolicy =
          forall a. Maybe a
Prelude.Nothing,
        $sel:eTag:UpdateContinuousDeploymentPolicyResponse' :: Maybe Text
eTag = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:UpdateContinuousDeploymentPolicyResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | A continuous deployment policy.
updateContinuousDeploymentPolicyResponse_continuousDeploymentPolicy :: Lens.Lens' UpdateContinuousDeploymentPolicyResponse (Prelude.Maybe ContinuousDeploymentPolicy)
updateContinuousDeploymentPolicyResponse_continuousDeploymentPolicy :: Lens'
  UpdateContinuousDeploymentPolicyResponse
  (Maybe ContinuousDeploymentPolicy)
updateContinuousDeploymentPolicyResponse_continuousDeploymentPolicy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateContinuousDeploymentPolicyResponse' {Maybe ContinuousDeploymentPolicy
continuousDeploymentPolicy :: Maybe ContinuousDeploymentPolicy
$sel:continuousDeploymentPolicy:UpdateContinuousDeploymentPolicyResponse' :: UpdateContinuousDeploymentPolicyResponse
-> Maybe ContinuousDeploymentPolicy
continuousDeploymentPolicy} -> Maybe ContinuousDeploymentPolicy
continuousDeploymentPolicy) (\s :: UpdateContinuousDeploymentPolicyResponse
s@UpdateContinuousDeploymentPolicyResponse' {} Maybe ContinuousDeploymentPolicy
a -> UpdateContinuousDeploymentPolicyResponse
s {$sel:continuousDeploymentPolicy:UpdateContinuousDeploymentPolicyResponse' :: Maybe ContinuousDeploymentPolicy
continuousDeploymentPolicy = Maybe ContinuousDeploymentPolicy
a} :: UpdateContinuousDeploymentPolicyResponse)

-- | The version identifier for the current version of the continuous
-- deployment policy.
updateContinuousDeploymentPolicyResponse_eTag :: Lens.Lens' UpdateContinuousDeploymentPolicyResponse (Prelude.Maybe Prelude.Text)
updateContinuousDeploymentPolicyResponse_eTag :: Lens' UpdateContinuousDeploymentPolicyResponse (Maybe Text)
updateContinuousDeploymentPolicyResponse_eTag = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateContinuousDeploymentPolicyResponse' {Maybe Text
eTag :: Maybe Text
$sel:eTag:UpdateContinuousDeploymentPolicyResponse' :: UpdateContinuousDeploymentPolicyResponse -> Maybe Text
eTag} -> Maybe Text
eTag) (\s :: UpdateContinuousDeploymentPolicyResponse
s@UpdateContinuousDeploymentPolicyResponse' {} Maybe Text
a -> UpdateContinuousDeploymentPolicyResponse
s {$sel:eTag:UpdateContinuousDeploymentPolicyResponse' :: Maybe Text
eTag = Maybe Text
a} :: UpdateContinuousDeploymentPolicyResponse)

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

instance
  Prelude.NFData
    UpdateContinuousDeploymentPolicyResponse
  where
  rnf :: UpdateContinuousDeploymentPolicyResponse -> ()
rnf UpdateContinuousDeploymentPolicyResponse' {Int
Maybe Text
Maybe ContinuousDeploymentPolicy
httpStatus :: Int
eTag :: Maybe Text
continuousDeploymentPolicy :: Maybe ContinuousDeploymentPolicy
$sel:httpStatus:UpdateContinuousDeploymentPolicyResponse' :: UpdateContinuousDeploymentPolicyResponse -> Int
$sel:eTag:UpdateContinuousDeploymentPolicyResponse' :: UpdateContinuousDeploymentPolicyResponse -> Maybe Text
$sel:continuousDeploymentPolicy:UpdateContinuousDeploymentPolicyResponse' :: UpdateContinuousDeploymentPolicyResponse
-> Maybe ContinuousDeploymentPolicy
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe ContinuousDeploymentPolicy
continuousDeploymentPolicy
      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