{-# 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.ModifyCacheSubnetGroup -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Modifies an existing cache subnet group. module Amazonka.ElastiCache.ModifyCacheSubnetGroup ( -- * Creating a Request ModifyCacheSubnetGroup (..), newModifyCacheSubnetGroup, -- * Request Lenses modifyCacheSubnetGroup_cacheSubnetGroupDescription, modifyCacheSubnetGroup_subnetIds, modifyCacheSubnetGroup_cacheSubnetGroupName, -- * Destructuring the Response ModifyCacheSubnetGroupResponse (..), newModifyCacheSubnetGroupResponse, -- * Response Lenses modifyCacheSubnetGroupResponse_cacheSubnetGroup, modifyCacheSubnetGroupResponse_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 -- | Represents the input of a @ModifyCacheSubnetGroup@ operation. -- -- /See:/ 'newModifyCacheSubnetGroup' smart constructor. data ModifyCacheSubnetGroup = ModifyCacheSubnetGroup' { -- | A description of the cache subnet group. cacheSubnetGroupDescription :: Prelude.Maybe Prelude.Text, -- | The EC2 subnet IDs for the cache subnet group. subnetIds :: Prelude.Maybe [Prelude.Text], -- | The name for the cache subnet group. This value is stored as a lowercase -- string. -- -- Constraints: Must contain no more than 255 alphanumeric characters or -- hyphens. -- -- Example: @mysubnetgroup@ cacheSubnetGroupName :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'ModifyCacheSubnetGroup' 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: -- -- 'cacheSubnetGroupDescription', 'modifyCacheSubnetGroup_cacheSubnetGroupDescription' - A description of the cache subnet group. -- -- 'subnetIds', 'modifyCacheSubnetGroup_subnetIds' - The EC2 subnet IDs for the cache subnet group. -- -- 'cacheSubnetGroupName', 'modifyCacheSubnetGroup_cacheSubnetGroupName' - The name for the cache subnet group. This value is stored as a lowercase -- string. -- -- Constraints: Must contain no more than 255 alphanumeric characters or -- hyphens. -- -- Example: @mysubnetgroup@ newModifyCacheSubnetGroup :: -- | 'cacheSubnetGroupName' Prelude.Text -> ModifyCacheSubnetGroup newModifyCacheSubnetGroup pCacheSubnetGroupName_ = ModifyCacheSubnetGroup' { cacheSubnetGroupDescription = Prelude.Nothing, subnetIds = Prelude.Nothing, cacheSubnetGroupName = pCacheSubnetGroupName_ } -- | A description of the cache subnet group. modifyCacheSubnetGroup_cacheSubnetGroupDescription :: Lens.Lens' ModifyCacheSubnetGroup (Prelude.Maybe Prelude.Text) modifyCacheSubnetGroup_cacheSubnetGroupDescription = Lens.lens (\ModifyCacheSubnetGroup' {cacheSubnetGroupDescription} -> cacheSubnetGroupDescription) (\s@ModifyCacheSubnetGroup' {} a -> s {cacheSubnetGroupDescription = a} :: ModifyCacheSubnetGroup) -- | The EC2 subnet IDs for the cache subnet group. modifyCacheSubnetGroup_subnetIds :: Lens.Lens' ModifyCacheSubnetGroup (Prelude.Maybe [Prelude.Text]) modifyCacheSubnetGroup_subnetIds = Lens.lens (\ModifyCacheSubnetGroup' {subnetIds} -> subnetIds) (\s@ModifyCacheSubnetGroup' {} a -> s {subnetIds = a} :: ModifyCacheSubnetGroup) Prelude.. Lens.mapping Lens.coerced -- | The name for the cache subnet group. This value is stored as a lowercase -- string. -- -- Constraints: Must contain no more than 255 alphanumeric characters or -- hyphens. -- -- Example: @mysubnetgroup@ modifyCacheSubnetGroup_cacheSubnetGroupName :: Lens.Lens' ModifyCacheSubnetGroup Prelude.Text modifyCacheSubnetGroup_cacheSubnetGroupName = Lens.lens (\ModifyCacheSubnetGroup' {cacheSubnetGroupName} -> cacheSubnetGroupName) (\s@ModifyCacheSubnetGroup' {} a -> s {cacheSubnetGroupName = a} :: ModifyCacheSubnetGroup) instance Core.AWSRequest ModifyCacheSubnetGroup where type AWSResponse ModifyCacheSubnetGroup = ModifyCacheSubnetGroupResponse request overrides = Request.postQuery (overrides defaultService) response = Response.receiveXMLWrapper "ModifyCacheSubnetGroupResult" ( \s h x -> ModifyCacheSubnetGroupResponse' Prelude.<$> (x Data..@? "CacheSubnetGroup") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable ModifyCacheSubnetGroup where hashWithSalt _salt ModifyCacheSubnetGroup' {..} = _salt `Prelude.hashWithSalt` cacheSubnetGroupDescription `Prelude.hashWithSalt` subnetIds `Prelude.hashWithSalt` cacheSubnetGroupName instance Prelude.NFData ModifyCacheSubnetGroup where rnf ModifyCacheSubnetGroup' {..} = Prelude.rnf cacheSubnetGroupDescription `Prelude.seq` Prelude.rnf subnetIds `Prelude.seq` Prelude.rnf cacheSubnetGroupName instance Data.ToHeaders ModifyCacheSubnetGroup where toHeaders = Prelude.const Prelude.mempty instance Data.ToPath ModifyCacheSubnetGroup where toPath = Prelude.const "/" instance Data.ToQuery ModifyCacheSubnetGroup where toQuery ModifyCacheSubnetGroup' {..} = Prelude.mconcat [ "Action" Data.=: ("ModifyCacheSubnetGroup" :: Prelude.ByteString), "Version" Data.=: ("2015-02-02" :: Prelude.ByteString), "CacheSubnetGroupDescription" Data.=: cacheSubnetGroupDescription, "SubnetIds" Data.=: Data.toQuery ( Data.toQueryList "SubnetIdentifier" Prelude.<$> subnetIds ), "CacheSubnetGroupName" Data.=: cacheSubnetGroupName ] -- | /See:/ 'newModifyCacheSubnetGroupResponse' smart constructor. data ModifyCacheSubnetGroupResponse = ModifyCacheSubnetGroupResponse' { cacheSubnetGroup :: Prelude.Maybe CacheSubnetGroup, -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'ModifyCacheSubnetGroupResponse' 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: -- -- 'cacheSubnetGroup', 'modifyCacheSubnetGroupResponse_cacheSubnetGroup' - Undocumented member. -- -- 'httpStatus', 'modifyCacheSubnetGroupResponse_httpStatus' - The response's http status code. newModifyCacheSubnetGroupResponse :: -- | 'httpStatus' Prelude.Int -> ModifyCacheSubnetGroupResponse newModifyCacheSubnetGroupResponse pHttpStatus_ = ModifyCacheSubnetGroupResponse' { cacheSubnetGroup = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | Undocumented member. modifyCacheSubnetGroupResponse_cacheSubnetGroup :: Lens.Lens' ModifyCacheSubnetGroupResponse (Prelude.Maybe CacheSubnetGroup) modifyCacheSubnetGroupResponse_cacheSubnetGroup = Lens.lens (\ModifyCacheSubnetGroupResponse' {cacheSubnetGroup} -> cacheSubnetGroup) (\s@ModifyCacheSubnetGroupResponse' {} a -> s {cacheSubnetGroup = a} :: ModifyCacheSubnetGroupResponse) -- | The response's http status code. modifyCacheSubnetGroupResponse_httpStatus :: Lens.Lens' ModifyCacheSubnetGroupResponse Prelude.Int modifyCacheSubnetGroupResponse_httpStatus = Lens.lens (\ModifyCacheSubnetGroupResponse' {httpStatus} -> httpStatus) (\s@ModifyCacheSubnetGroupResponse' {} a -> s {httpStatus = a} :: ModifyCacheSubnetGroupResponse) instance Prelude.NFData ModifyCacheSubnetGroupResponse where rnf ModifyCacheSubnetGroupResponse' {..} = Prelude.rnf cacheSubnetGroup `Prelude.seq` Prelude.rnf httpStatus