amazonka-cloudwatch-logs-2.0: gen/Amazonka/CloudWatchLogs/DescribeExportTasks.hs
{-# 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.CloudWatchLogs.DescribeExportTasks
-- 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 the specified export tasks. You can list all your export tasks or
-- filter the results based on task ID or task status.
--
-- This operation returns paginated results.
module Amazonka.CloudWatchLogs.DescribeExportTasks
( -- * Creating a Request
DescribeExportTasks (..),
newDescribeExportTasks,
-- * Request Lenses
describeExportTasks_limit,
describeExportTasks_nextToken,
describeExportTasks_statusCode,
describeExportTasks_taskId,
-- * Destructuring the Response
DescribeExportTasksResponse (..),
newDescribeExportTasksResponse,
-- * Response Lenses
describeExportTasksResponse_exportTasks,
describeExportTasksResponse_nextToken,
describeExportTasksResponse_httpStatus,
)
where
import Amazonka.CloudWatchLogs.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:/ 'newDescribeExportTasks' smart constructor.
data DescribeExportTasks = DescribeExportTasks'
{ -- | The maximum number of items returned. If you don\'t specify a value, the
-- default is up to 50 items.
limit :: Prelude.Maybe Prelude.Natural,
-- | The token for the next set of items to return. (You received this token
-- from a previous call.)
nextToken :: Prelude.Maybe Prelude.Text,
-- | The status code of the export task. Specifying a status code filters the
-- results to zero or more export tasks.
statusCode :: Prelude.Maybe ExportTaskStatusCode,
-- | The ID of the export task. Specifying a task ID filters the results to
-- one or zero export tasks.
taskId :: Prelude.Maybe Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'DescribeExportTasks' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'limit', 'describeExportTasks_limit' - The maximum number of items returned. If you don\'t specify a value, the
-- default is up to 50 items.
--
-- 'nextToken', 'describeExportTasks_nextToken' - The token for the next set of items to return. (You received this token
-- from a previous call.)
--
-- 'statusCode', 'describeExportTasks_statusCode' - The status code of the export task. Specifying a status code filters the
-- results to zero or more export tasks.
--
-- 'taskId', 'describeExportTasks_taskId' - The ID of the export task. Specifying a task ID filters the results to
-- one or zero export tasks.
newDescribeExportTasks ::
DescribeExportTasks
newDescribeExportTasks =
DescribeExportTasks'
{ limit = Prelude.Nothing,
nextToken = Prelude.Nothing,
statusCode = Prelude.Nothing,
taskId = Prelude.Nothing
}
-- | The maximum number of items returned. If you don\'t specify a value, the
-- default is up to 50 items.
describeExportTasks_limit :: Lens.Lens' DescribeExportTasks (Prelude.Maybe Prelude.Natural)
describeExportTasks_limit = Lens.lens (\DescribeExportTasks' {limit} -> limit) (\s@DescribeExportTasks' {} a -> s {limit = a} :: DescribeExportTasks)
-- | The token for the next set of items to return. (You received this token
-- from a previous call.)
describeExportTasks_nextToken :: Lens.Lens' DescribeExportTasks (Prelude.Maybe Prelude.Text)
describeExportTasks_nextToken = Lens.lens (\DescribeExportTasks' {nextToken} -> nextToken) (\s@DescribeExportTasks' {} a -> s {nextToken = a} :: DescribeExportTasks)
-- | The status code of the export task. Specifying a status code filters the
-- results to zero or more export tasks.
describeExportTasks_statusCode :: Lens.Lens' DescribeExportTasks (Prelude.Maybe ExportTaskStatusCode)
describeExportTasks_statusCode = Lens.lens (\DescribeExportTasks' {statusCode} -> statusCode) (\s@DescribeExportTasks' {} a -> s {statusCode = a} :: DescribeExportTasks)
-- | The ID of the export task. Specifying a task ID filters the results to
-- one or zero export tasks.
describeExportTasks_taskId :: Lens.Lens' DescribeExportTasks (Prelude.Maybe Prelude.Text)
describeExportTasks_taskId = Lens.lens (\DescribeExportTasks' {taskId} -> taskId) (\s@DescribeExportTasks' {} a -> s {taskId = a} :: DescribeExportTasks)
instance Core.AWSPager DescribeExportTasks where
page rq rs
| Core.stop
( rs
Lens.^? describeExportTasksResponse_nextToken
Prelude.. Lens._Just
) =
Prelude.Nothing
| Core.stop
( rs
Lens.^? describeExportTasksResponse_exportTasks
Prelude.. Lens._Just
) =
Prelude.Nothing
| Prelude.otherwise =
Prelude.Just
Prelude.$ rq
Prelude.& describeExportTasks_nextToken
Lens..~ rs
Lens.^? describeExportTasksResponse_nextToken
Prelude.. Lens._Just
instance Core.AWSRequest DescribeExportTasks where
type
AWSResponse DescribeExportTasks =
DescribeExportTasksResponse
request overrides =
Request.postJSON (overrides defaultService)
response =
Response.receiveJSON
( \s h x ->
DescribeExportTasksResponse'
Prelude.<$> (x Data..?> "exportTasks" Core..!@ Prelude.mempty)
Prelude.<*> (x Data..?> "nextToken")
Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
)
instance Prelude.Hashable DescribeExportTasks where
hashWithSalt _salt DescribeExportTasks' {..} =
_salt
`Prelude.hashWithSalt` limit
`Prelude.hashWithSalt` nextToken
`Prelude.hashWithSalt` statusCode
`Prelude.hashWithSalt` taskId
instance Prelude.NFData DescribeExportTasks where
rnf DescribeExportTasks' {..} =
Prelude.rnf limit
`Prelude.seq` Prelude.rnf nextToken
`Prelude.seq` Prelude.rnf statusCode
`Prelude.seq` Prelude.rnf taskId
instance Data.ToHeaders DescribeExportTasks where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "X-Amz-Target"
Data.=# ( "Logs_20140328.DescribeExportTasks" ::
Prelude.ByteString
),
"Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON DescribeExportTasks where
toJSON DescribeExportTasks' {..} =
Data.object
( Prelude.catMaybes
[ ("limit" Data..=) Prelude.<$> limit,
("nextToken" Data..=) Prelude.<$> nextToken,
("statusCode" Data..=) Prelude.<$> statusCode,
("taskId" Data..=) Prelude.<$> taskId
]
)
instance Data.ToPath DescribeExportTasks where
toPath = Prelude.const "/"
instance Data.ToQuery DescribeExportTasks where
toQuery = Prelude.const Prelude.mempty
-- | /See:/ 'newDescribeExportTasksResponse' smart constructor.
data DescribeExportTasksResponse = DescribeExportTasksResponse'
{ -- | The export tasks.
exportTasks :: Prelude.Maybe [ExportTask],
nextToken :: Prelude.Maybe Prelude.Text,
-- | The response's http status code.
httpStatus :: Prelude.Int
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'DescribeExportTasksResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'exportTasks', 'describeExportTasksResponse_exportTasks' - The export tasks.
--
-- 'nextToken', 'describeExportTasksResponse_nextToken' - Undocumented member.
--
-- 'httpStatus', 'describeExportTasksResponse_httpStatus' - The response's http status code.
newDescribeExportTasksResponse ::
-- | 'httpStatus'
Prelude.Int ->
DescribeExportTasksResponse
newDescribeExportTasksResponse pHttpStatus_ =
DescribeExportTasksResponse'
{ exportTasks =
Prelude.Nothing,
nextToken = Prelude.Nothing,
httpStatus = pHttpStatus_
}
-- | The export tasks.
describeExportTasksResponse_exportTasks :: Lens.Lens' DescribeExportTasksResponse (Prelude.Maybe [ExportTask])
describeExportTasksResponse_exportTasks = Lens.lens (\DescribeExportTasksResponse' {exportTasks} -> exportTasks) (\s@DescribeExportTasksResponse' {} a -> s {exportTasks = a} :: DescribeExportTasksResponse) Prelude.. Lens.mapping Lens.coerced
-- | Undocumented member.
describeExportTasksResponse_nextToken :: Lens.Lens' DescribeExportTasksResponse (Prelude.Maybe Prelude.Text)
describeExportTasksResponse_nextToken = Lens.lens (\DescribeExportTasksResponse' {nextToken} -> nextToken) (\s@DescribeExportTasksResponse' {} a -> s {nextToken = a} :: DescribeExportTasksResponse)
-- | The response's http status code.
describeExportTasksResponse_httpStatus :: Lens.Lens' DescribeExportTasksResponse Prelude.Int
describeExportTasksResponse_httpStatus = Lens.lens (\DescribeExportTasksResponse' {httpStatus} -> httpStatus) (\s@DescribeExportTasksResponse' {} a -> s {httpStatus = a} :: DescribeExportTasksResponse)
instance Prelude.NFData DescribeExportTasksResponse where
rnf DescribeExportTasksResponse' {..} =
Prelude.rnf exportTasks
`Prelude.seq` Prelude.rnf nextToken
`Prelude.seq` Prelude.rnf httpStatus