{-# 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.DescribeUpdateActions -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Returns details of the update actions -- -- This operation returns paginated results. module Amazonka.ElastiCache.DescribeUpdateActions ( -- * Creating a Request DescribeUpdateActions (..), newDescribeUpdateActions, -- * Request Lenses describeUpdateActions_cacheClusterIds, describeUpdateActions_engine, describeUpdateActions_marker, describeUpdateActions_maxRecords, describeUpdateActions_replicationGroupIds, describeUpdateActions_serviceUpdateName, describeUpdateActions_serviceUpdateStatus, describeUpdateActions_serviceUpdateTimeRange, describeUpdateActions_showNodeLevelUpdateStatus, describeUpdateActions_updateActionStatus, -- * Destructuring the Response DescribeUpdateActionsResponse (..), newDescribeUpdateActionsResponse, -- * Response Lenses describeUpdateActionsResponse_marker, describeUpdateActionsResponse_updateActions, describeUpdateActionsResponse_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:/ 'newDescribeUpdateActions' smart constructor. data DescribeUpdateActions = DescribeUpdateActions' { -- | The cache cluster IDs cacheClusterIds :: Prelude.Maybe [Prelude.Text], -- | The Elasticache engine to which the update applies. Either Redis or -- Memcached engine :: Prelude.Maybe Prelude.Text, -- | An optional marker returned from a prior request. Use this marker for -- pagination of results from this operation. If this parameter is -- specified, the response includes only records beyond the marker, up to -- the value specified by @MaxRecords@. marker :: Prelude.Maybe Prelude.Text, -- | The maximum number of records to include in the response maxRecords :: Prelude.Maybe Prelude.Int, -- | The replication group IDs replicationGroupIds :: Prelude.Maybe [Prelude.Text], -- | The unique ID of the service update serviceUpdateName :: Prelude.Maybe Prelude.Text, -- | The status of the service update serviceUpdateStatus :: Prelude.Maybe [ServiceUpdateStatus], -- | The range of time specified to search for service updates that are in -- available status serviceUpdateTimeRange :: Prelude.Maybe TimeRangeFilter, -- | Dictates whether to include node level update status in the response showNodeLevelUpdateStatus :: Prelude.Maybe Prelude.Bool, -- | The status of the update action. updateActionStatus :: Prelude.Maybe [UpdateActionStatus] } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DescribeUpdateActions' 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: -- -- 'cacheClusterIds', 'describeUpdateActions_cacheClusterIds' - The cache cluster IDs -- -- 'engine', 'describeUpdateActions_engine' - The Elasticache engine to which the update applies. Either Redis or -- Memcached -- -- 'marker', 'describeUpdateActions_marker' - An optional marker returned from a prior request. Use this marker for -- pagination of results from this operation. If this parameter is -- specified, the response includes only records beyond the marker, up to -- the value specified by @MaxRecords@. -- -- 'maxRecords', 'describeUpdateActions_maxRecords' - The maximum number of records to include in the response -- -- 'replicationGroupIds', 'describeUpdateActions_replicationGroupIds' - The replication group IDs -- -- 'serviceUpdateName', 'describeUpdateActions_serviceUpdateName' - The unique ID of the service update -- -- 'serviceUpdateStatus', 'describeUpdateActions_serviceUpdateStatus' - The status of the service update -- -- 'serviceUpdateTimeRange', 'describeUpdateActions_serviceUpdateTimeRange' - The range of time specified to search for service updates that are in -- available status -- -- 'showNodeLevelUpdateStatus', 'describeUpdateActions_showNodeLevelUpdateStatus' - Dictates whether to include node level update status in the response -- -- 'updateActionStatus', 'describeUpdateActions_updateActionStatus' - The status of the update action. newDescribeUpdateActions :: DescribeUpdateActions newDescribeUpdateActions = DescribeUpdateActions' { cacheClusterIds = Prelude.Nothing, engine = Prelude.Nothing, marker = Prelude.Nothing, maxRecords = Prelude.Nothing, replicationGroupIds = Prelude.Nothing, serviceUpdateName = Prelude.Nothing, serviceUpdateStatus = Prelude.Nothing, serviceUpdateTimeRange = Prelude.Nothing, showNodeLevelUpdateStatus = Prelude.Nothing, updateActionStatus = Prelude.Nothing } -- | The cache cluster IDs describeUpdateActions_cacheClusterIds :: Lens.Lens' DescribeUpdateActions (Prelude.Maybe [Prelude.Text]) describeUpdateActions_cacheClusterIds = Lens.lens (\DescribeUpdateActions' {cacheClusterIds} -> cacheClusterIds) (\s@DescribeUpdateActions' {} a -> s {cacheClusterIds = a} :: DescribeUpdateActions) Prelude.. Lens.mapping Lens.coerced -- | The Elasticache engine to which the update applies. Either Redis or -- Memcached describeUpdateActions_engine :: Lens.Lens' DescribeUpdateActions (Prelude.Maybe Prelude.Text) describeUpdateActions_engine = Lens.lens (\DescribeUpdateActions' {engine} -> engine) (\s@DescribeUpdateActions' {} a -> s {engine = a} :: DescribeUpdateActions) -- | An optional marker returned from a prior request. Use this marker for -- pagination of results from this operation. If this parameter is -- specified, the response includes only records beyond the marker, up to -- the value specified by @MaxRecords@. describeUpdateActions_marker :: Lens.Lens' DescribeUpdateActions (Prelude.Maybe Prelude.Text) describeUpdateActions_marker = Lens.lens (\DescribeUpdateActions' {marker} -> marker) (\s@DescribeUpdateActions' {} a -> s {marker = a} :: DescribeUpdateActions) -- | The maximum number of records to include in the response describeUpdateActions_maxRecords :: Lens.Lens' DescribeUpdateActions (Prelude.Maybe Prelude.Int) describeUpdateActions_maxRecords = Lens.lens (\DescribeUpdateActions' {maxRecords} -> maxRecords) (\s@DescribeUpdateActions' {} a -> s {maxRecords = a} :: DescribeUpdateActions) -- | The replication group IDs describeUpdateActions_replicationGroupIds :: Lens.Lens' DescribeUpdateActions (Prelude.Maybe [Prelude.Text]) describeUpdateActions_replicationGroupIds = Lens.lens (\DescribeUpdateActions' {replicationGroupIds} -> replicationGroupIds) (\s@DescribeUpdateActions' {} a -> s {replicationGroupIds = a} :: DescribeUpdateActions) Prelude.. Lens.mapping Lens.coerced -- | The unique ID of the service update describeUpdateActions_serviceUpdateName :: Lens.Lens' DescribeUpdateActions (Prelude.Maybe Prelude.Text) describeUpdateActions_serviceUpdateName = Lens.lens (\DescribeUpdateActions' {serviceUpdateName} -> serviceUpdateName) (\s@DescribeUpdateActions' {} a -> s {serviceUpdateName = a} :: DescribeUpdateActions) -- | The status of the service update describeUpdateActions_serviceUpdateStatus :: Lens.Lens' DescribeUpdateActions (Prelude.Maybe [ServiceUpdateStatus]) describeUpdateActions_serviceUpdateStatus = Lens.lens (\DescribeUpdateActions' {serviceUpdateStatus} -> serviceUpdateStatus) (\s@DescribeUpdateActions' {} a -> s {serviceUpdateStatus = a} :: DescribeUpdateActions) Prelude.. Lens.mapping Lens.coerced -- | The range of time specified to search for service updates that are in -- available status describeUpdateActions_serviceUpdateTimeRange :: Lens.Lens' DescribeUpdateActions (Prelude.Maybe TimeRangeFilter) describeUpdateActions_serviceUpdateTimeRange = Lens.lens (\DescribeUpdateActions' {serviceUpdateTimeRange} -> serviceUpdateTimeRange) (\s@DescribeUpdateActions' {} a -> s {serviceUpdateTimeRange = a} :: DescribeUpdateActions) -- | Dictates whether to include node level update status in the response describeUpdateActions_showNodeLevelUpdateStatus :: Lens.Lens' DescribeUpdateActions (Prelude.Maybe Prelude.Bool) describeUpdateActions_showNodeLevelUpdateStatus = Lens.lens (\DescribeUpdateActions' {showNodeLevelUpdateStatus} -> showNodeLevelUpdateStatus) (\s@DescribeUpdateActions' {} a -> s {showNodeLevelUpdateStatus = a} :: DescribeUpdateActions) -- | The status of the update action. describeUpdateActions_updateActionStatus :: Lens.Lens' DescribeUpdateActions (Prelude.Maybe [UpdateActionStatus]) describeUpdateActions_updateActionStatus = Lens.lens (\DescribeUpdateActions' {updateActionStatus} -> updateActionStatus) (\s@DescribeUpdateActions' {} a -> s {updateActionStatus = a} :: DescribeUpdateActions) Prelude.. Lens.mapping Lens.coerced instance Core.AWSPager DescribeUpdateActions where page rq rs | Core.stop ( rs Lens.^? describeUpdateActionsResponse_marker Prelude.. Lens._Just ) = Prelude.Nothing | Core.stop ( rs Lens.^? describeUpdateActionsResponse_updateActions Prelude.. Lens._Just ) = Prelude.Nothing | Prelude.otherwise = Prelude.Just Prelude.$ rq Prelude.& describeUpdateActions_marker Lens..~ rs Lens.^? describeUpdateActionsResponse_marker Prelude.. Lens._Just instance Core.AWSRequest DescribeUpdateActions where type AWSResponse DescribeUpdateActions = DescribeUpdateActionsResponse request overrides = Request.postQuery (overrides defaultService) response = Response.receiveXMLWrapper "DescribeUpdateActionsResult" ( \s h x -> DescribeUpdateActionsResponse' Prelude.<$> (x Data..@? "Marker") Prelude.<*> ( x Data..@? "UpdateActions" Core..!@ Prelude.mempty Prelude.>>= Core.may (Data.parseXMLList "UpdateAction") ) Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable DescribeUpdateActions where hashWithSalt _salt DescribeUpdateActions' {..} = _salt `Prelude.hashWithSalt` cacheClusterIds `Prelude.hashWithSalt` engine `Prelude.hashWithSalt` marker `Prelude.hashWithSalt` maxRecords `Prelude.hashWithSalt` replicationGroupIds `Prelude.hashWithSalt` serviceUpdateName `Prelude.hashWithSalt` serviceUpdateStatus `Prelude.hashWithSalt` serviceUpdateTimeRange `Prelude.hashWithSalt` showNodeLevelUpdateStatus `Prelude.hashWithSalt` updateActionStatus instance Prelude.NFData DescribeUpdateActions where rnf DescribeUpdateActions' {..} = Prelude.rnf cacheClusterIds `Prelude.seq` Prelude.rnf engine `Prelude.seq` Prelude.rnf marker `Prelude.seq` Prelude.rnf maxRecords `Prelude.seq` Prelude.rnf replicationGroupIds `Prelude.seq` Prelude.rnf serviceUpdateName `Prelude.seq` Prelude.rnf serviceUpdateStatus `Prelude.seq` Prelude.rnf serviceUpdateTimeRange `Prelude.seq` Prelude.rnf showNodeLevelUpdateStatus `Prelude.seq` Prelude.rnf updateActionStatus instance Data.ToHeaders DescribeUpdateActions where toHeaders = Prelude.const Prelude.mempty instance Data.ToPath DescribeUpdateActions where toPath = Prelude.const "/" instance Data.ToQuery DescribeUpdateActions where toQuery DescribeUpdateActions' {..} = Prelude.mconcat [ "Action" Data.=: ("DescribeUpdateActions" :: Prelude.ByteString), "Version" Data.=: ("2015-02-02" :: Prelude.ByteString), "CacheClusterIds" Data.=: Data.toQuery ( Data.toQueryList "member" Prelude.<$> cacheClusterIds ), "Engine" Data.=: engine, "Marker" Data.=: marker, "MaxRecords" Data.=: maxRecords, "ReplicationGroupIds" Data.=: Data.toQuery ( Data.toQueryList "member" Prelude.<$> replicationGroupIds ), "ServiceUpdateName" Data.=: serviceUpdateName, "ServiceUpdateStatus" Data.=: Data.toQuery ( Data.toQueryList "member" Prelude.<$> serviceUpdateStatus ), "ServiceUpdateTimeRange" Data.=: serviceUpdateTimeRange, "ShowNodeLevelUpdateStatus" Data.=: showNodeLevelUpdateStatus, "UpdateActionStatus" Data.=: Data.toQuery ( Data.toQueryList "member" Prelude.<$> updateActionStatus ) ] -- | /See:/ 'newDescribeUpdateActionsResponse' smart constructor. data DescribeUpdateActionsResponse = DescribeUpdateActionsResponse' { -- | An optional marker returned from a prior request. Use this marker for -- pagination of results from this operation. If this parameter is -- specified, the response includes only records beyond the marker, up to -- the value specified by @MaxRecords@. marker :: Prelude.Maybe Prelude.Text, -- | Returns a list of update actions updateActions :: Prelude.Maybe [UpdateAction], -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DescribeUpdateActionsResponse' 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: -- -- 'marker', 'describeUpdateActionsResponse_marker' - An optional marker returned from a prior request. Use this marker for -- pagination of results from this operation. If this parameter is -- specified, the response includes only records beyond the marker, up to -- the value specified by @MaxRecords@. -- -- 'updateActions', 'describeUpdateActionsResponse_updateActions' - Returns a list of update actions -- -- 'httpStatus', 'describeUpdateActionsResponse_httpStatus' - The response's http status code. newDescribeUpdateActionsResponse :: -- | 'httpStatus' Prelude.Int -> DescribeUpdateActionsResponse newDescribeUpdateActionsResponse pHttpStatus_ = DescribeUpdateActionsResponse' { marker = Prelude.Nothing, updateActions = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | An optional marker returned from a prior request. Use this marker for -- pagination of results from this operation. If this parameter is -- specified, the response includes only records beyond the marker, up to -- the value specified by @MaxRecords@. describeUpdateActionsResponse_marker :: Lens.Lens' DescribeUpdateActionsResponse (Prelude.Maybe Prelude.Text) describeUpdateActionsResponse_marker = Lens.lens (\DescribeUpdateActionsResponse' {marker} -> marker) (\s@DescribeUpdateActionsResponse' {} a -> s {marker = a} :: DescribeUpdateActionsResponse) -- | Returns a list of update actions describeUpdateActionsResponse_updateActions :: Lens.Lens' DescribeUpdateActionsResponse (Prelude.Maybe [UpdateAction]) describeUpdateActionsResponse_updateActions = Lens.lens (\DescribeUpdateActionsResponse' {updateActions} -> updateActions) (\s@DescribeUpdateActionsResponse' {} a -> s {updateActions = a} :: DescribeUpdateActionsResponse) Prelude.. Lens.mapping Lens.coerced -- | The response's http status code. describeUpdateActionsResponse_httpStatus :: Lens.Lens' DescribeUpdateActionsResponse Prelude.Int describeUpdateActionsResponse_httpStatus = Lens.lens (\DescribeUpdateActionsResponse' {httpStatus} -> httpStatus) (\s@DescribeUpdateActionsResponse' {} a -> s {httpStatus = a} :: DescribeUpdateActionsResponse) instance Prelude.NFData DescribeUpdateActionsResponse where rnf DescribeUpdateActionsResponse' {..} = Prelude.rnf marker `Prelude.seq` Prelude.rnf updateActions `Prelude.seq` Prelude.rnf httpStatus