{-# 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.CloudWatchEvents.ListReplays -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Lists your replays. You can either list all the replays or you can -- provide a prefix to match to the replay names. Filter parameters are -- exclusive. module Amazonka.CloudWatchEvents.ListReplays ( -- * Creating a Request ListReplays (..), newListReplays, -- * Request Lenses listReplays_eventSourceArn, listReplays_limit, listReplays_namePrefix, listReplays_nextToken, listReplays_state, -- * Destructuring the Response ListReplaysResponse (..), newListReplaysResponse, -- * Response Lenses listReplaysResponse_nextToken, listReplaysResponse_replays, listReplaysResponse_httpStatus, ) where import Amazonka.CloudWatchEvents.Types 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 qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | /See:/ 'newListReplays' smart constructor. data ListReplays = ListReplays' { -- | The ARN of the archive from which the events are replayed. eventSourceArn :: Prelude.Maybe Prelude.Text, -- | The maximum number of replays to retrieve. limit :: Prelude.Maybe Prelude.Natural, -- | A name prefix to filter the replays returned. Only replays with name -- that match the prefix are returned. namePrefix :: Prelude.Maybe Prelude.Text, -- | The token returned by a previous call to retrieve the next set of -- results. nextToken :: Prelude.Maybe Prelude.Text, -- | The state of the replay. state :: Prelude.Maybe ReplayState } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'ListReplays' 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: -- -- 'eventSourceArn', 'listReplays_eventSourceArn' - The ARN of the archive from which the events are replayed. -- -- 'limit', 'listReplays_limit' - The maximum number of replays to retrieve. -- -- 'namePrefix', 'listReplays_namePrefix' - A name prefix to filter the replays returned. Only replays with name -- that match the prefix are returned. -- -- 'nextToken', 'listReplays_nextToken' - The token returned by a previous call to retrieve the next set of -- results. -- -- 'state', 'listReplays_state' - The state of the replay. newListReplays :: ListReplays newListReplays = ListReplays' { eventSourceArn = Prelude.Nothing, limit = Prelude.Nothing, namePrefix = Prelude.Nothing, nextToken = Prelude.Nothing, state = Prelude.Nothing } -- | The ARN of the archive from which the events are replayed. listReplays_eventSourceArn :: Lens.Lens' ListReplays (Prelude.Maybe Prelude.Text) listReplays_eventSourceArn = Lens.lens (\ListReplays' {eventSourceArn} -> eventSourceArn) (\s@ListReplays' {} a -> s {eventSourceArn = a} :: ListReplays) -- | The maximum number of replays to retrieve. listReplays_limit :: Lens.Lens' ListReplays (Prelude.Maybe Prelude.Natural) listReplays_limit = Lens.lens (\ListReplays' {limit} -> limit) (\s@ListReplays' {} a -> s {limit = a} :: ListReplays) -- | A name prefix to filter the replays returned. Only replays with name -- that match the prefix are returned. listReplays_namePrefix :: Lens.Lens' ListReplays (Prelude.Maybe Prelude.Text) listReplays_namePrefix = Lens.lens (\ListReplays' {namePrefix} -> namePrefix) (\s@ListReplays' {} a -> s {namePrefix = a} :: ListReplays) -- | The token returned by a previous call to retrieve the next set of -- results. listReplays_nextToken :: Lens.Lens' ListReplays (Prelude.Maybe Prelude.Text) listReplays_nextToken = Lens.lens (\ListReplays' {nextToken} -> nextToken) (\s@ListReplays' {} a -> s {nextToken = a} :: ListReplays) -- | The state of the replay. listReplays_state :: Lens.Lens' ListReplays (Prelude.Maybe ReplayState) listReplays_state = Lens.lens (\ListReplays' {state} -> state) (\s@ListReplays' {} a -> s {state = a} :: ListReplays) instance Core.AWSRequest ListReplays where type AWSResponse ListReplays = ListReplaysResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> ListReplaysResponse' Prelude.<$> (x Data..?> "NextToken") Prelude.<*> (x Data..?> "Replays" Core..!@ Prelude.mempty) Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable ListReplays where hashWithSalt _salt ListReplays' {..} = _salt `Prelude.hashWithSalt` eventSourceArn `Prelude.hashWithSalt` limit `Prelude.hashWithSalt` namePrefix `Prelude.hashWithSalt` nextToken `Prelude.hashWithSalt` state instance Prelude.NFData ListReplays where rnf ListReplays' {..} = Prelude.rnf eventSourceArn `Prelude.seq` Prelude.rnf limit `Prelude.seq` Prelude.rnf namePrefix `Prelude.seq` Prelude.rnf nextToken `Prelude.seq` Prelude.rnf state instance Data.ToHeaders ListReplays where toHeaders = Prelude.const ( Prelude.mconcat [ "X-Amz-Target" Data.=# ("AWSEvents.ListReplays" :: Prelude.ByteString), "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON ListReplays where toJSON ListReplays' {..} = Data.object ( Prelude.catMaybes [ ("EventSourceArn" Data..=) Prelude.<$> eventSourceArn, ("Limit" Data..=) Prelude.<$> limit, ("NamePrefix" Data..=) Prelude.<$> namePrefix, ("NextToken" Data..=) Prelude.<$> nextToken, ("State" Data..=) Prelude.<$> state ] ) instance Data.ToPath ListReplays where toPath = Prelude.const "/" instance Data.ToQuery ListReplays where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newListReplaysResponse' smart constructor. data ListReplaysResponse = ListReplaysResponse' { -- | The token returned by a previous call to retrieve the next set of -- results. nextToken :: Prelude.Maybe Prelude.Text, -- | An array of @Replay@ objects that contain information about the replay. replays :: Prelude.Maybe [Replay], -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'ListReplaysResponse' 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: -- -- 'nextToken', 'listReplaysResponse_nextToken' - The token returned by a previous call to retrieve the next set of -- results. -- -- 'replays', 'listReplaysResponse_replays' - An array of @Replay@ objects that contain information about the replay. -- -- 'httpStatus', 'listReplaysResponse_httpStatus' - The response's http status code. newListReplaysResponse :: -- | 'httpStatus' Prelude.Int -> ListReplaysResponse newListReplaysResponse pHttpStatus_ = ListReplaysResponse' { nextToken = Prelude.Nothing, replays = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | The token returned by a previous call to retrieve the next set of -- results. listReplaysResponse_nextToken :: Lens.Lens' ListReplaysResponse (Prelude.Maybe Prelude.Text) listReplaysResponse_nextToken = Lens.lens (\ListReplaysResponse' {nextToken} -> nextToken) (\s@ListReplaysResponse' {} a -> s {nextToken = a} :: ListReplaysResponse) -- | An array of @Replay@ objects that contain information about the replay. listReplaysResponse_replays :: Lens.Lens' ListReplaysResponse (Prelude.Maybe [Replay]) listReplaysResponse_replays = Lens.lens (\ListReplaysResponse' {replays} -> replays) (\s@ListReplaysResponse' {} a -> s {replays = a} :: ListReplaysResponse) Prelude.. Lens.mapping Lens.coerced -- | The response's http status code. listReplaysResponse_httpStatus :: Lens.Lens' ListReplaysResponse Prelude.Int listReplaysResponse_httpStatus = Lens.lens (\ListReplaysResponse' {httpStatus} -> httpStatus) (\s@ListReplaysResponse' {} a -> s {httpStatus = a} :: ListReplaysResponse) instance Prelude.NFData ListReplaysResponse where rnf ListReplaysResponse' {..} = Prelude.rnf nextToken `Prelude.seq` Prelude.rnf replays `Prelude.seq` Prelude.rnf httpStatus