{-# 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.ElastiCache.FailoverGlobalReplicationGroup -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Used to failover the primary region to a secondary region. The secondary -- region will become primary, and all other clusters will become -- secondary. module Amazonka.ElastiCache.FailoverGlobalReplicationGroup ( -- * Creating a Request FailoverGlobalReplicationGroup (..), newFailoverGlobalReplicationGroup, -- * Request Lenses failoverGlobalReplicationGroup_globalReplicationGroupId, failoverGlobalReplicationGroup_primaryRegion, failoverGlobalReplicationGroup_primaryReplicationGroupId, -- * Destructuring the Response FailoverGlobalReplicationGroupResponse (..), newFailoverGlobalReplicationGroupResponse, -- * Response Lenses failoverGlobalReplicationGroupResponse_globalReplicationGroup, failoverGlobalReplicationGroupResponse_httpStatus, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import Amazonka.ElastiCache.Types import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | /See:/ 'newFailoverGlobalReplicationGroup' smart constructor. data FailoverGlobalReplicationGroup = FailoverGlobalReplicationGroup' { -- | The name of the Global datastore globalReplicationGroupId :: Prelude.Text, -- | The Amazon region of the primary cluster of the Global datastore primaryRegion :: Prelude.Text, -- | The name of the primary replication group primaryReplicationGroupId :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'FailoverGlobalReplicationGroup' 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: -- -- 'globalReplicationGroupId', 'failoverGlobalReplicationGroup_globalReplicationGroupId' - The name of the Global datastore -- -- 'primaryRegion', 'failoverGlobalReplicationGroup_primaryRegion' - The Amazon region of the primary cluster of the Global datastore -- -- 'primaryReplicationGroupId', 'failoverGlobalReplicationGroup_primaryReplicationGroupId' - The name of the primary replication group newFailoverGlobalReplicationGroup :: -- | 'globalReplicationGroupId' Prelude.Text -> -- | 'primaryRegion' Prelude.Text -> -- | 'primaryReplicationGroupId' Prelude.Text -> FailoverGlobalReplicationGroup newFailoverGlobalReplicationGroup pGlobalReplicationGroupId_ pPrimaryRegion_ pPrimaryReplicationGroupId_ = FailoverGlobalReplicationGroup' { globalReplicationGroupId = pGlobalReplicationGroupId_, primaryRegion = pPrimaryRegion_, primaryReplicationGroupId = pPrimaryReplicationGroupId_ } -- | The name of the Global datastore failoverGlobalReplicationGroup_globalReplicationGroupId :: Lens.Lens' FailoverGlobalReplicationGroup Prelude.Text failoverGlobalReplicationGroup_globalReplicationGroupId = Lens.lens (\FailoverGlobalReplicationGroup' {globalReplicationGroupId} -> globalReplicationGroupId) (\s@FailoverGlobalReplicationGroup' {} a -> s {globalReplicationGroupId = a} :: FailoverGlobalReplicationGroup) -- | The Amazon region of the primary cluster of the Global datastore failoverGlobalReplicationGroup_primaryRegion :: Lens.Lens' FailoverGlobalReplicationGroup Prelude.Text failoverGlobalReplicationGroup_primaryRegion = Lens.lens (\FailoverGlobalReplicationGroup' {primaryRegion} -> primaryRegion) (\s@FailoverGlobalReplicationGroup' {} a -> s {primaryRegion = a} :: FailoverGlobalReplicationGroup) -- | The name of the primary replication group failoverGlobalReplicationGroup_primaryReplicationGroupId :: Lens.Lens' FailoverGlobalReplicationGroup Prelude.Text failoverGlobalReplicationGroup_primaryReplicationGroupId = Lens.lens (\FailoverGlobalReplicationGroup' {primaryReplicationGroupId} -> primaryReplicationGroupId) (\s@FailoverGlobalReplicationGroup' {} a -> s {primaryReplicationGroupId = a} :: FailoverGlobalReplicationGroup) instance Core.AWSRequest FailoverGlobalReplicationGroup where type AWSResponse FailoverGlobalReplicationGroup = FailoverGlobalReplicationGroupResponse request overrides = Request.postQuery (overrides defaultService) response = Response.receiveXMLWrapper "FailoverGlobalReplicationGroupResult" ( \s h x -> FailoverGlobalReplicationGroupResponse' Prelude.<$> (x Data..@? "GlobalReplicationGroup") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable FailoverGlobalReplicationGroup where hashWithSalt _salt FailoverGlobalReplicationGroup' {..} = _salt `Prelude.hashWithSalt` globalReplicationGroupId `Prelude.hashWithSalt` primaryRegion `Prelude.hashWithSalt` primaryReplicationGroupId instance Prelude.NFData FailoverGlobalReplicationGroup where rnf FailoverGlobalReplicationGroup' {..} = Prelude.rnf globalReplicationGroupId `Prelude.seq` Prelude.rnf primaryRegion `Prelude.seq` Prelude.rnf primaryReplicationGroupId instance Data.ToHeaders FailoverGlobalReplicationGroup where toHeaders = Prelude.const Prelude.mempty instance Data.ToPath FailoverGlobalReplicationGroup where toPath = Prelude.const "/" instance Data.ToQuery FailoverGlobalReplicationGroup where toQuery FailoverGlobalReplicationGroup' {..} = Prelude.mconcat [ "Action" Data.=: ( "FailoverGlobalReplicationGroup" :: Prelude.ByteString ), "Version" Data.=: ("2015-02-02" :: Prelude.ByteString), "GlobalReplicationGroupId" Data.=: globalReplicationGroupId, "PrimaryRegion" Data.=: primaryRegion, "PrimaryReplicationGroupId" Data.=: primaryReplicationGroupId ] -- | /See:/ 'newFailoverGlobalReplicationGroupResponse' smart constructor. data FailoverGlobalReplicationGroupResponse = FailoverGlobalReplicationGroupResponse' { globalReplicationGroup :: Prelude.Maybe GlobalReplicationGroup, -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'FailoverGlobalReplicationGroupResponse' 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: -- -- 'globalReplicationGroup', 'failoverGlobalReplicationGroupResponse_globalReplicationGroup' - Undocumented member. -- -- 'httpStatus', 'failoverGlobalReplicationGroupResponse_httpStatus' - The response's http status code. newFailoverGlobalReplicationGroupResponse :: -- | 'httpStatus' Prelude.Int -> FailoverGlobalReplicationGroupResponse newFailoverGlobalReplicationGroupResponse pHttpStatus_ = FailoverGlobalReplicationGroupResponse' { globalReplicationGroup = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | Undocumented member. failoverGlobalReplicationGroupResponse_globalReplicationGroup :: Lens.Lens' FailoverGlobalReplicationGroupResponse (Prelude.Maybe GlobalReplicationGroup) failoverGlobalReplicationGroupResponse_globalReplicationGroup = Lens.lens (\FailoverGlobalReplicationGroupResponse' {globalReplicationGroup} -> globalReplicationGroup) (\s@FailoverGlobalReplicationGroupResponse' {} a -> s {globalReplicationGroup = a} :: FailoverGlobalReplicationGroupResponse) -- | The response's http status code. failoverGlobalReplicationGroupResponse_httpStatus :: Lens.Lens' FailoverGlobalReplicationGroupResponse Prelude.Int failoverGlobalReplicationGroupResponse_httpStatus = Lens.lens (\FailoverGlobalReplicationGroupResponse' {httpStatus} -> httpStatus) (\s@FailoverGlobalReplicationGroupResponse' {} a -> s {httpStatus = a} :: FailoverGlobalReplicationGroupResponse) instance Prelude.NFData FailoverGlobalReplicationGroupResponse where rnf FailoverGlobalReplicationGroupResponse' {..} = Prelude.rnf globalReplicationGroup `Prelude.seq` Prelude.rnf httpStatus