amazonka-xray-2.0: gen/Amazonka/XRay/BatchGetTraces.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.XRay.BatchGetTraces
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Retrieves a list of traces specified by ID. Each trace is a collection
-- of segment documents that originates from a single request. Use
-- @GetTraceSummaries@ to get a list of trace IDs.
--
-- This operation returns paginated results.
module Amazonka.XRay.BatchGetTraces
( -- * Creating a Request
BatchGetTraces (..),
newBatchGetTraces,
-- * Request Lenses
batchGetTraces_nextToken,
batchGetTraces_traceIds,
-- * Destructuring the Response
BatchGetTracesResponse (..),
newBatchGetTracesResponse,
-- * Response Lenses
batchGetTracesResponse_nextToken,
batchGetTracesResponse_traces,
batchGetTracesResponse_unprocessedTraceIds,
batchGetTracesResponse_httpStatus,
)
where
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
import Amazonka.XRay.Types
-- | /See:/ 'newBatchGetTraces' smart constructor.
data BatchGetTraces = BatchGetTraces'
{ -- | Pagination token.
nextToken :: Prelude.Maybe Prelude.Text,
-- | Specify the trace IDs of requests for which to retrieve segments.
traceIds :: [Prelude.Text]
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'BatchGetTraces' 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:
--
-- 'nextToken', 'batchGetTraces_nextToken' - Pagination token.
--
-- 'traceIds', 'batchGetTraces_traceIds' - Specify the trace IDs of requests for which to retrieve segments.
newBatchGetTraces ::
BatchGetTraces
newBatchGetTraces =
BatchGetTraces'
{ nextToken = Prelude.Nothing,
traceIds = Prelude.mempty
}
-- | Pagination token.
batchGetTraces_nextToken :: Lens.Lens' BatchGetTraces (Prelude.Maybe Prelude.Text)
batchGetTraces_nextToken = Lens.lens (\BatchGetTraces' {nextToken} -> nextToken) (\s@BatchGetTraces' {} a -> s {nextToken = a} :: BatchGetTraces)
-- | Specify the trace IDs of requests for which to retrieve segments.
batchGetTraces_traceIds :: Lens.Lens' BatchGetTraces [Prelude.Text]
batchGetTraces_traceIds = Lens.lens (\BatchGetTraces' {traceIds} -> traceIds) (\s@BatchGetTraces' {} a -> s {traceIds = a} :: BatchGetTraces) Prelude.. Lens.coerced
instance Core.AWSPager BatchGetTraces where
page rq rs
| Core.stop
( rs
Lens.^? batchGetTracesResponse_nextToken
Prelude.. Lens._Just
) =
Prelude.Nothing
| Core.stop
( rs
Lens.^? batchGetTracesResponse_traces
Prelude.. Lens._Just
) =
Prelude.Nothing
| Prelude.otherwise =
Prelude.Just
Prelude.$ rq
Prelude.& batchGetTraces_nextToken
Lens..~ rs
Lens.^? batchGetTracesResponse_nextToken
Prelude.. Lens._Just
instance Core.AWSRequest BatchGetTraces where
type
AWSResponse BatchGetTraces =
BatchGetTracesResponse
request overrides =
Request.postJSON (overrides defaultService)
response =
Response.receiveJSON
( \s h x ->
BatchGetTracesResponse'
Prelude.<$> (x Data..?> "NextToken")
Prelude.<*> (x Data..?> "Traces" Core..!@ Prelude.mempty)
Prelude.<*> ( x
Data..?> "UnprocessedTraceIds"
Core..!@ Prelude.mempty
)
Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
)
instance Prelude.Hashable BatchGetTraces where
hashWithSalt _salt BatchGetTraces' {..} =
_salt
`Prelude.hashWithSalt` nextToken
`Prelude.hashWithSalt` traceIds
instance Prelude.NFData BatchGetTraces where
rnf BatchGetTraces' {..} =
Prelude.rnf nextToken
`Prelude.seq` Prelude.rnf traceIds
instance Data.ToHeaders BatchGetTraces where
toHeaders = Prelude.const Prelude.mempty
instance Data.ToJSON BatchGetTraces where
toJSON BatchGetTraces' {..} =
Data.object
( Prelude.catMaybes
[ ("NextToken" Data..=) Prelude.<$> nextToken,
Prelude.Just ("TraceIds" Data..= traceIds)
]
)
instance Data.ToPath BatchGetTraces where
toPath = Prelude.const "/Traces"
instance Data.ToQuery BatchGetTraces where
toQuery = Prelude.const Prelude.mempty
-- | /See:/ 'newBatchGetTracesResponse' smart constructor.
data BatchGetTracesResponse = BatchGetTracesResponse'
{ -- | Pagination token.
nextToken :: Prelude.Maybe Prelude.Text,
-- | Full traces for the specified requests.
traces :: Prelude.Maybe [Trace],
-- | Trace IDs of requests that haven\'t been processed.
unprocessedTraceIds :: 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 'BatchGetTracesResponse' 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:
--
-- 'nextToken', 'batchGetTracesResponse_nextToken' - Pagination token.
--
-- 'traces', 'batchGetTracesResponse_traces' - Full traces for the specified requests.
--
-- 'unprocessedTraceIds', 'batchGetTracesResponse_unprocessedTraceIds' - Trace IDs of requests that haven\'t been processed.
--
-- 'httpStatus', 'batchGetTracesResponse_httpStatus' - The response's http status code.
newBatchGetTracesResponse ::
-- | 'httpStatus'
Prelude.Int ->
BatchGetTracesResponse
newBatchGetTracesResponse pHttpStatus_ =
BatchGetTracesResponse'
{ nextToken =
Prelude.Nothing,
traces = Prelude.Nothing,
unprocessedTraceIds = Prelude.Nothing,
httpStatus = pHttpStatus_
}
-- | Pagination token.
batchGetTracesResponse_nextToken :: Lens.Lens' BatchGetTracesResponse (Prelude.Maybe Prelude.Text)
batchGetTracesResponse_nextToken = Lens.lens (\BatchGetTracesResponse' {nextToken} -> nextToken) (\s@BatchGetTracesResponse' {} a -> s {nextToken = a} :: BatchGetTracesResponse)
-- | Full traces for the specified requests.
batchGetTracesResponse_traces :: Lens.Lens' BatchGetTracesResponse (Prelude.Maybe [Trace])
batchGetTracesResponse_traces = Lens.lens (\BatchGetTracesResponse' {traces} -> traces) (\s@BatchGetTracesResponse' {} a -> s {traces = a} :: BatchGetTracesResponse) Prelude.. Lens.mapping Lens.coerced
-- | Trace IDs of requests that haven\'t been processed.
batchGetTracesResponse_unprocessedTraceIds :: Lens.Lens' BatchGetTracesResponse (Prelude.Maybe [Prelude.Text])
batchGetTracesResponse_unprocessedTraceIds = Lens.lens (\BatchGetTracesResponse' {unprocessedTraceIds} -> unprocessedTraceIds) (\s@BatchGetTracesResponse' {} a -> s {unprocessedTraceIds = a} :: BatchGetTracesResponse) Prelude.. Lens.mapping Lens.coerced
-- | The response's http status code.
batchGetTracesResponse_httpStatus :: Lens.Lens' BatchGetTracesResponse Prelude.Int
batchGetTracesResponse_httpStatus = Lens.lens (\BatchGetTracesResponse' {httpStatus} -> httpStatus) (\s@BatchGetTracesResponse' {} a -> s {httpStatus = a} :: BatchGetTracesResponse)
instance Prelude.NFData BatchGetTracesResponse where
rnf BatchGetTracesResponse' {..} =
Prelude.rnf nextToken
`Prelude.seq` Prelude.rnf traces
`Prelude.seq` Prelude.rnf unprocessedTraceIds
`Prelude.seq` Prelude.rnf httpStatus