{-# 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.ManagedBlockChain.UpdateMember
-- 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 member configuration with new parameters.
--
-- Applies only to Hyperledger Fabric.
module Amazonka.ManagedBlockChain.UpdateMember
( -- * Creating a Request
UpdateMember (..),
newUpdateMember,
-- * Request Lenses
updateMember_logPublishingConfiguration,
updateMember_networkId,
updateMember_memberId,
-- * Destructuring the Response
UpdateMemberResponse (..),
newUpdateMemberResponse,
-- * Response Lenses
updateMemberResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.ManagedBlockChain.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
-- | /See:/ 'newUpdateMember' smart constructor.
data UpdateMember = UpdateMember'
{ -- | Configuration properties for publishing to Amazon CloudWatch Logs.
logPublishingConfiguration :: Prelude.Maybe MemberLogPublishingConfiguration,
-- | The unique identifier of the Managed Blockchain network to which the
-- member belongs.
networkId :: Prelude.Text,
-- | The unique identifier of the member.
memberId :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'UpdateMember' 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:
--
-- 'logPublishingConfiguration', 'updateMember_logPublishingConfiguration' - Configuration properties for publishing to Amazon CloudWatch Logs.
--
-- 'networkId', 'updateMember_networkId' - The unique identifier of the Managed Blockchain network to which the
-- member belongs.
--
-- 'memberId', 'updateMember_memberId' - The unique identifier of the member.
newUpdateMember ::
-- | 'networkId'
Prelude.Text ->
-- | 'memberId'
Prelude.Text ->
UpdateMember
newUpdateMember pNetworkId_ pMemberId_ =
UpdateMember'
{ logPublishingConfiguration =
Prelude.Nothing,
networkId = pNetworkId_,
memberId = pMemberId_
}
-- | Configuration properties for publishing to Amazon CloudWatch Logs.
updateMember_logPublishingConfiguration :: Lens.Lens' UpdateMember (Prelude.Maybe MemberLogPublishingConfiguration)
updateMember_logPublishingConfiguration = Lens.lens (\UpdateMember' {logPublishingConfiguration} -> logPublishingConfiguration) (\s@UpdateMember' {} a -> s {logPublishingConfiguration = a} :: UpdateMember)
-- | The unique identifier of the Managed Blockchain network to which the
-- member belongs.
updateMember_networkId :: Lens.Lens' UpdateMember Prelude.Text
updateMember_networkId = Lens.lens (\UpdateMember' {networkId} -> networkId) (\s@UpdateMember' {} a -> s {networkId = a} :: UpdateMember)
-- | The unique identifier of the member.
updateMember_memberId :: Lens.Lens' UpdateMember Prelude.Text
updateMember_memberId = Lens.lens (\UpdateMember' {memberId} -> memberId) (\s@UpdateMember' {} a -> s {memberId = a} :: UpdateMember)
instance Core.AWSRequest UpdateMember where
type AWSResponse UpdateMember = UpdateMemberResponse
request overrides =
Request.patchJSON (overrides defaultService)
response =
Response.receiveEmpty
( \s h x ->
UpdateMemberResponse'
Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
)
instance Prelude.Hashable UpdateMember where
hashWithSalt _salt UpdateMember' {..} =
_salt
`Prelude.hashWithSalt` logPublishingConfiguration
`Prelude.hashWithSalt` networkId
`Prelude.hashWithSalt` memberId
instance Prelude.NFData UpdateMember where
rnf UpdateMember' {..} =
Prelude.rnf logPublishingConfiguration
`Prelude.seq` Prelude.rnf networkId
`Prelude.seq` Prelude.rnf memberId
instance Data.ToHeaders UpdateMember where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON UpdateMember where
toJSON UpdateMember' {..} =
Data.object
( Prelude.catMaybes
[ ("LogPublishingConfiguration" Data..=)
Prelude.<$> logPublishingConfiguration
]
)
instance Data.ToPath UpdateMember where
toPath UpdateMember' {..} =
Prelude.mconcat
[ "/networks/",
Data.toBS networkId,
"/members/",
Data.toBS memberId
]
instance Data.ToQuery UpdateMember where
toQuery = Prelude.const Prelude.mempty
-- | /See:/ 'newUpdateMemberResponse' smart constructor.
data UpdateMemberResponse = UpdateMemberResponse'
{ -- | The response's http status code.
httpStatus :: Prelude.Int
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'UpdateMemberResponse' 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', 'updateMemberResponse_httpStatus' - The response's http status code.
newUpdateMemberResponse ::
-- | 'httpStatus'
Prelude.Int ->
UpdateMemberResponse
newUpdateMemberResponse pHttpStatus_ =
UpdateMemberResponse' {httpStatus = pHttpStatus_}
-- | The response's http status code.
updateMemberResponse_httpStatus :: Lens.Lens' UpdateMemberResponse Prelude.Int
updateMemberResponse_httpStatus = Lens.lens (\UpdateMemberResponse' {httpStatus} -> httpStatus) (\s@UpdateMemberResponse' {} a -> s {httpStatus = a} :: UpdateMemberResponse)
instance Prelude.NFData UpdateMemberResponse where
rnf UpdateMemberResponse' {..} =
Prelude.rnf httpStatus