amazonka-route53-2.0: gen/Amazonka/Route53/UpdateTrafficPolicyComment.hs
{-# 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.Route53.UpdateTrafficPolicyComment
-- 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 the comment for a specified traffic policy version.
module Amazonka.Route53.UpdateTrafficPolicyComment
( -- * Creating a Request
UpdateTrafficPolicyComment (..),
newUpdateTrafficPolicyComment,
-- * Request Lenses
updateTrafficPolicyComment_id,
updateTrafficPolicyComment_version,
updateTrafficPolicyComment_comment,
-- * Destructuring the Response
UpdateTrafficPolicyCommentResponse (..),
newUpdateTrafficPolicyCommentResponse,
-- * Response Lenses
updateTrafficPolicyCommentResponse_httpStatus,
updateTrafficPolicyCommentResponse_trafficPolicy,
)
where
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
import Amazonka.Route53.Types
-- | A complex type that contains information about the traffic policy that
-- you want to update the comment for.
--
-- /See:/ 'newUpdateTrafficPolicyComment' smart constructor.
data UpdateTrafficPolicyComment = UpdateTrafficPolicyComment'
{ -- | The value of @Id@ for the traffic policy that you want to update the
-- comment for.
id :: Prelude.Text,
-- | The value of @Version@ for the traffic policy that you want to update
-- the comment for.
version :: Prelude.Natural,
-- | The new comment for the specified traffic policy and version.
comment :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'UpdateTrafficPolicyComment' 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:
--
-- 'id', 'updateTrafficPolicyComment_id' - The value of @Id@ for the traffic policy that you want to update the
-- comment for.
--
-- 'version', 'updateTrafficPolicyComment_version' - The value of @Version@ for the traffic policy that you want to update
-- the comment for.
--
-- 'comment', 'updateTrafficPolicyComment_comment' - The new comment for the specified traffic policy and version.
newUpdateTrafficPolicyComment ::
-- | 'id'
Prelude.Text ->
-- | 'version'
Prelude.Natural ->
-- | 'comment'
Prelude.Text ->
UpdateTrafficPolicyComment
newUpdateTrafficPolicyComment
pId_
pVersion_
pComment_ =
UpdateTrafficPolicyComment'
{ id = pId_,
version = pVersion_,
comment = pComment_
}
-- | The value of @Id@ for the traffic policy that you want to update the
-- comment for.
updateTrafficPolicyComment_id :: Lens.Lens' UpdateTrafficPolicyComment Prelude.Text
updateTrafficPolicyComment_id = Lens.lens (\UpdateTrafficPolicyComment' {id} -> id) (\s@UpdateTrafficPolicyComment' {} a -> s {id = a} :: UpdateTrafficPolicyComment)
-- | The value of @Version@ for the traffic policy that you want to update
-- the comment for.
updateTrafficPolicyComment_version :: Lens.Lens' UpdateTrafficPolicyComment Prelude.Natural
updateTrafficPolicyComment_version = Lens.lens (\UpdateTrafficPolicyComment' {version} -> version) (\s@UpdateTrafficPolicyComment' {} a -> s {version = a} :: UpdateTrafficPolicyComment)
-- | The new comment for the specified traffic policy and version.
updateTrafficPolicyComment_comment :: Lens.Lens' UpdateTrafficPolicyComment Prelude.Text
updateTrafficPolicyComment_comment = Lens.lens (\UpdateTrafficPolicyComment' {comment} -> comment) (\s@UpdateTrafficPolicyComment' {} a -> s {comment = a} :: UpdateTrafficPolicyComment)
instance Core.AWSRequest UpdateTrafficPolicyComment where
type
AWSResponse UpdateTrafficPolicyComment =
UpdateTrafficPolicyCommentResponse
request overrides =
Request.postXML (overrides defaultService)
response =
Response.receiveXML
( \s h x ->
UpdateTrafficPolicyCommentResponse'
Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
Prelude.<*> (x Data..@ "TrafficPolicy")
)
instance Prelude.Hashable UpdateTrafficPolicyComment where
hashWithSalt _salt UpdateTrafficPolicyComment' {..} =
_salt
`Prelude.hashWithSalt` id
`Prelude.hashWithSalt` version
`Prelude.hashWithSalt` comment
instance Prelude.NFData UpdateTrafficPolicyComment where
rnf UpdateTrafficPolicyComment' {..} =
Prelude.rnf id
`Prelude.seq` Prelude.rnf version
`Prelude.seq` Prelude.rnf comment
instance Data.ToElement UpdateTrafficPolicyComment where
toElement =
Data.mkElement
"{https://route53.amazonaws.com/doc/2013-04-01/}UpdateTrafficPolicyCommentRequest"
instance Data.ToHeaders UpdateTrafficPolicyComment where
toHeaders = Prelude.const Prelude.mempty
instance Data.ToPath UpdateTrafficPolicyComment where
toPath UpdateTrafficPolicyComment' {..} =
Prelude.mconcat
[ "/2013-04-01/trafficpolicy/",
Data.toBS id,
"/",
Data.toBS version
]
instance Data.ToQuery UpdateTrafficPolicyComment where
toQuery = Prelude.const Prelude.mempty
instance Data.ToXML UpdateTrafficPolicyComment where
toXML UpdateTrafficPolicyComment' {..} =
Prelude.mconcat ["Comment" Data.@= comment]
-- | A complex type that contains the response information for the traffic
-- policy.
--
-- /See:/ 'newUpdateTrafficPolicyCommentResponse' smart constructor.
data UpdateTrafficPolicyCommentResponse = UpdateTrafficPolicyCommentResponse'
{ -- | The response's http status code.
httpStatus :: Prelude.Int,
-- | A complex type that contains settings for the specified traffic policy.
trafficPolicy :: TrafficPolicy
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'UpdateTrafficPolicyCommentResponse' 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:
--
-- 'httpStatus', 'updateTrafficPolicyCommentResponse_httpStatus' - The response's http status code.
--
-- 'trafficPolicy', 'updateTrafficPolicyCommentResponse_trafficPolicy' - A complex type that contains settings for the specified traffic policy.
newUpdateTrafficPolicyCommentResponse ::
-- | 'httpStatus'
Prelude.Int ->
-- | 'trafficPolicy'
TrafficPolicy ->
UpdateTrafficPolicyCommentResponse
newUpdateTrafficPolicyCommentResponse
pHttpStatus_
pTrafficPolicy_ =
UpdateTrafficPolicyCommentResponse'
{ httpStatus =
pHttpStatus_,
trafficPolicy = pTrafficPolicy_
}
-- | The response's http status code.
updateTrafficPolicyCommentResponse_httpStatus :: Lens.Lens' UpdateTrafficPolicyCommentResponse Prelude.Int
updateTrafficPolicyCommentResponse_httpStatus = Lens.lens (\UpdateTrafficPolicyCommentResponse' {httpStatus} -> httpStatus) (\s@UpdateTrafficPolicyCommentResponse' {} a -> s {httpStatus = a} :: UpdateTrafficPolicyCommentResponse)
-- | A complex type that contains settings for the specified traffic policy.
updateTrafficPolicyCommentResponse_trafficPolicy :: Lens.Lens' UpdateTrafficPolicyCommentResponse TrafficPolicy
updateTrafficPolicyCommentResponse_trafficPolicy = Lens.lens (\UpdateTrafficPolicyCommentResponse' {trafficPolicy} -> trafficPolicy) (\s@UpdateTrafficPolicyCommentResponse' {} a -> s {trafficPolicy = a} :: UpdateTrafficPolicyCommentResponse)
instance
Prelude.NFData
UpdateTrafficPolicyCommentResponse
where
rnf UpdateTrafficPolicyCommentResponse' {..} =
Prelude.rnf httpStatus
`Prelude.seq` Prelude.rnf trafficPolicy