{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Amazonka.SMS.Types.ServerReplicationConfiguration -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) module Amazonka.SMS.Types.ServerReplicationConfiguration 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 Amazonka.SMS.Types.Server import Amazonka.SMS.Types.ServerReplicationParameters -- | Replication configuration of a server. -- -- /See:/ 'newServerReplicationConfiguration' smart constructor. data ServerReplicationConfiguration = ServerReplicationConfiguration' { -- | The ID of the server with which this replication configuration is -- associated. server :: Prelude.Maybe Server, -- | The parameters for replicating the server. serverReplicationParameters :: Prelude.Maybe ServerReplicationParameters } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'ServerReplicationConfiguration' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'server', 'serverReplicationConfiguration_server' - The ID of the server with which this replication configuration is -- associated. -- -- 'serverReplicationParameters', 'serverReplicationConfiguration_serverReplicationParameters' - The parameters for replicating the server. newServerReplicationConfiguration :: ServerReplicationConfiguration newServerReplicationConfiguration = ServerReplicationConfiguration' { server = Prelude.Nothing, serverReplicationParameters = Prelude.Nothing } -- | The ID of the server with which this replication configuration is -- associated. serverReplicationConfiguration_server :: Lens.Lens' ServerReplicationConfiguration (Prelude.Maybe Server) serverReplicationConfiguration_server = Lens.lens (\ServerReplicationConfiguration' {server} -> server) (\s@ServerReplicationConfiguration' {} a -> s {server = a} :: ServerReplicationConfiguration) -- | The parameters for replicating the server. serverReplicationConfiguration_serverReplicationParameters :: Lens.Lens' ServerReplicationConfiguration (Prelude.Maybe ServerReplicationParameters) serverReplicationConfiguration_serverReplicationParameters = Lens.lens (\ServerReplicationConfiguration' {serverReplicationParameters} -> serverReplicationParameters) (\s@ServerReplicationConfiguration' {} a -> s {serverReplicationParameters = a} :: ServerReplicationConfiguration) instance Data.FromJSON ServerReplicationConfiguration where parseJSON = Data.withObject "ServerReplicationConfiguration" ( \x -> ServerReplicationConfiguration' Prelude.<$> (x Data..:? "server") Prelude.<*> (x Data..:? "serverReplicationParameters") ) instance Prelude.Hashable ServerReplicationConfiguration where hashWithSalt _salt ServerReplicationConfiguration' {..} = _salt `Prelude.hashWithSalt` server `Prelude.hashWithSalt` serverReplicationParameters instance Prelude.NFData ServerReplicationConfiguration where rnf ServerReplicationConfiguration' {..} = Prelude.rnf server `Prelude.seq` Prelude.rnf serverReplicationParameters instance Data.ToJSON ServerReplicationConfiguration where toJSON ServerReplicationConfiguration' {..} = Data.object ( Prelude.catMaybes [ ("server" Data..=) Prelude.<$> server, ("serverReplicationParameters" Data..=) Prelude.<$> serverReplicationParameters ] )