-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Amazon X-Ray SDK.
--   
--   The types from this library are intended to be used with
--   <a>amazonka</a>, which provides mechanisms for specifying AuthN/AuthZ
--   information, sending requests, and receiving responses.
--   
--   Lenses are used for constructing and manipulating types, due to the
--   depth of nesting of AWS types and transparency regarding
--   de/serialisation into more palatable Haskell values. The provided
--   lenses should be compatible with any of the major lens libraries such
--   as <a>lens</a> or <a>lens-family-core</a>.
--   
--   See <a>Network.AWS.XRay</a> or <a>the AWS documentation</a> to get
--   started.
@package amazonka-xray
@version 1.4.5


module Network.AWS.XRay.Types

-- | API version <tt>2016-04-12</tt> of the Amazon X-Ray SDK configuration.
xRay :: Service

-- | The request is missing required parameters or has invalid parameters.
_InvalidRequestException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The request exceeds the maximum number of requests per second.
_ThrottledException :: AsError a => Getting (First ServiceError) a ServiceError

-- | An alias for an edge.
--   
--   <i>See:</i> <a>alias</a> smart constructor.
data Alias

-- | Creates a value of <a>Alias</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aNames</a> - A list of names for the alias, including the
--   canonical name.</li>
--   <li><a>aName</a> - The canonical name of the alias.</li>
--   <li><a>aType</a> - The type of the alias.</li>
--   </ul>
alias :: Alias

-- | A list of names for the alias, including the canonical name.
aNames :: Lens' Alias [Text]

-- | The canonical name of the alias.
aName :: Lens' Alias (Maybe Text)

-- | The type of the alias.
aType :: Lens' Alias (Maybe Text)

-- | Value of a segment annotation. Has one of three value types: Number,
--   Boolean or String.
--   
--   <i>See:</i> <a>annotationValue</a> smart constructor.
data AnnotationValue

-- | Creates a value of <a>AnnotationValue</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>avNumberValue</a> - Value for a Number annotation.</li>
--   <li><a>avStringValue</a> - Value for a String annotation.</li>
--   <li><a>avBooleanValue</a> - Value for a Boolean annotation.</li>
--   </ul>
annotationValue :: AnnotationValue

-- | Value for a Number annotation.
avNumberValue :: Lens' AnnotationValue (Maybe Double)

-- | Value for a String annotation.
avStringValue :: Lens' AnnotationValue (Maybe Text)

-- | Value for a Boolean annotation.
avBooleanValue :: Lens' AnnotationValue (Maybe Bool)

-- | <i>See:</i> <a>backendConnectionErrors</a> smart constructor.
data BackendConnectionErrors

-- | Creates a value of <a>BackendConnectionErrors</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bceOtherCount</a> -</li>
--   <li><a>bceTimeoutCount</a> -</li>
--   <li><a>bceHTTPCode5XXCount</a> -</li>
--   <li><a>bceConnectionRefusedCount</a> -</li>
--   <li><a>bceHTTPCode4XXCount</a> -</li>
--   <li><a>bceUnknownHostCount</a> -</li>
--   </ul>
backendConnectionErrors :: BackendConnectionErrors
bceOtherCount :: Lens' BackendConnectionErrors (Maybe Int)
bceTimeoutCount :: Lens' BackendConnectionErrors (Maybe Int)
bceHTTPCode5XXCount :: Lens' BackendConnectionErrors (Maybe Int)
bceConnectionRefusedCount :: Lens' BackendConnectionErrors (Maybe Int)
bceHTTPCode4XXCount :: Lens' BackendConnectionErrors (Maybe Int)
bceUnknownHostCount :: Lens' BackendConnectionErrors (Maybe Int)

-- | Information about a connection between two services.
--   
--   <i>See:</i> <a>edge</a> smart constructor.
data Edge

-- | Creates a value of <a>Edge</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eStartTime</a> - The start time of the first segment on the
--   edge.</li>
--   <li><a>eAliases</a> - Aliases for the edge.</li>
--   <li><a>eResponseTimeHistogram</a> - Histogram describing the
--   prominence of response times on the edge.</li>
--   <li><a>eReferenceId</a> - Identifier of the edge. Unique within a
--   service map.</li>
--   <li><a>eEndTime</a> - The end time of the last segment on the
--   edge.</li>
--   <li><a>eSummaryStatistics</a> - Response statistics for segments on
--   the edge.</li>
--   </ul>
edge :: Edge

-- | The start time of the first segment on the edge.
eStartTime :: Lens' Edge (Maybe UTCTime)

-- | Aliases for the edge.
eAliases :: Lens' Edge [Alias]

-- | Histogram describing the prominence of response times on the edge.
eResponseTimeHistogram :: Lens' Edge [HistogramEntry]

-- | Identifier of the edge. Unique within a service map.
eReferenceId :: Lens' Edge (Maybe Int)

-- | The end time of the last segment on the edge.
eEndTime :: Lens' Edge (Maybe UTCTime)

-- | Response statistics for segments on the edge.
eSummaryStatistics :: Lens' Edge (Maybe EdgeStatistics)

-- | Response statistics for an edge.
--   
--   <i>See:</i> <a>edgeStatistics</a> smart constructor.
data EdgeStatistics

-- | Creates a value of <a>EdgeStatistics</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>esFaultStatistics</a> - Information about requests that failed
--   with a 5xx Server Error status code.</li>
--   <li><a>esOKCount</a> - The number of requests that completed with a
--   2xx Success status code.</li>
--   <li><a>esTotalResponseTime</a> - The aggregate response time of
--   completed requests.</li>
--   <li><a>esErrorStatistics</a> - Information about requests that failed
--   with a 4xx Client Error status code.</li>
--   <li><a>esTotalCount</a> - The total number of completed requests.</li>
--   </ul>
edgeStatistics :: EdgeStatistics

-- | Information about requests that failed with a 5xx Server Error status
--   code.
esFaultStatistics :: Lens' EdgeStatistics (Maybe FaultStatistics)

-- | The number of requests that completed with a 2xx Success status code.
esOKCount :: Lens' EdgeStatistics (Maybe Integer)

-- | The aggregate response time of completed requests.
esTotalResponseTime :: Lens' EdgeStatistics (Maybe Double)

-- | Information about requests that failed with a 4xx Client Error status
--   code.
esErrorStatistics :: Lens' EdgeStatistics (Maybe ErrorStatistics)

-- | The total number of completed requests.
esTotalCount :: Lens' EdgeStatistics (Maybe Integer)

-- | Information about requests that failed with a 4xx Client Error status
--   code.
--   
--   <i>See:</i> <a>errorStatistics</a> smart constructor.
data ErrorStatistics

-- | Creates a value of <a>ErrorStatistics</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eOtherCount</a> - The number of requests that failed with
--   untracked 4xx Client Error status codes.</li>
--   <li><a>eThrottleCount</a> - The number of requests that failed with a
--   419 throttling status code.</li>
--   <li><a>eTotalCount</a> - The total number of requests that failed with
--   a 4xx Client Error status code.</li>
--   </ul>
errorStatistics :: ErrorStatistics

-- | The number of requests that failed with untracked 4xx Client Error
--   status codes.
eOtherCount :: Lens' ErrorStatistics (Maybe Integer)

-- | The number of requests that failed with a 419 throttling status code.
eThrottleCount :: Lens' ErrorStatistics (Maybe Integer)

-- | The total number of requests that failed with a 4xx Client Error
--   status code.
eTotalCount :: Lens' ErrorStatistics (Maybe Integer)

-- | Information about requests that failed with a 5xx Server Error status
--   code.
--   
--   <i>See:</i> <a>faultStatistics</a> smart constructor.
data FaultStatistics

-- | Creates a value of <a>FaultStatistics</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fsOtherCount</a> - The number of requests that failed with
--   untracked 5xx Server Error status codes.</li>
--   <li><a>fsTotalCount</a> - The total number of requests that failed
--   with a 5xx Server Error status code.</li>
--   </ul>
faultStatistics :: FaultStatistics

-- | The number of requests that failed with untracked 5xx Server Error
--   status codes.
fsOtherCount :: Lens' FaultStatistics (Maybe Integer)

-- | The total number of requests that failed with a 5xx Server Error
--   status code.
fsTotalCount :: Lens' FaultStatistics (Maybe Integer)

-- | Information about an HTTP request.
--   
--   <i>See:</i> <a>hTTP</a> smart constructor.
data HTTP

-- | Creates a value of <a>HTTP</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>httpHTTPMethod</a> - The request method.</li>
--   <li><a>httpHTTPStatus</a> - The response status.</li>
--   <li><a>httpClientIP</a> - The IP address of the requestor.</li>
--   <li><a>httpUserAgent</a> - The request's user agent string.</li>
--   <li><a>httpHTTPURL</a> - The request URL.</li>
--   </ul>
hTTP :: HTTP

-- | The request method.
httpHTTPMethod :: Lens' HTTP (Maybe Text)

-- | The response status.
httpHTTPStatus :: Lens' HTTP (Maybe Int)

-- | The IP address of the requestor.
httpClientIP :: Lens' HTTP (Maybe Text)

-- | The request's user agent string.
httpUserAgent :: Lens' HTTP (Maybe Text)

-- | The request URL.
httpHTTPURL :: Lens' HTTP (Maybe Text)

-- | An entry in a histogram for a statistic. A histogram maps the range of
--   observed values on the X axis, and the prevalence of each value on the
--   Y axis.
--   
--   <i>See:</i> <a>histogramEntry</a> smart constructor.
data HistogramEntry

-- | Creates a value of <a>HistogramEntry</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>heCount</a> - The prevalence of the entry.</li>
--   <li><a>heValue</a> - The value of the entry.</li>
--   </ul>
histogramEntry :: HistogramEntry

-- | The prevalence of the entry.
heCount :: Lens' HistogramEntry (Maybe Int)

-- | The value of the entry.
heValue :: Lens' HistogramEntry (Maybe Double)

-- | Information about a segment
--   
--   <i>See:</i> <a>segment</a> smart constructor.
data Segment

-- | Creates a value of <a>Segment</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sDocument</a> - The segment document.</li>
--   <li><a>sId</a> - The segment's ID.</li>
--   </ul>
segment :: Segment

-- | The segment document.
sDocument :: Lens' Segment (Maybe Text)

-- | The segment's ID.
sId :: Lens' Segment (Maybe Text)

-- | <i>See:</i> <a>serviceId</a> smart constructor.
data ServiceId

-- | Creates a value of <a>ServiceId</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>siAccountId</a> -</li>
--   <li><a>siNames</a> -</li>
--   <li><a>siName</a> -</li>
--   <li><a>siType</a> -</li>
--   </ul>
serviceId :: ServiceId
siAccountId :: Lens' ServiceId (Maybe Text)
siNames :: Lens' ServiceId [Text]
siName :: Lens' ServiceId (Maybe Text)
siType :: Lens' ServiceId (Maybe Text)

-- | Information about an application that processed requests, users that
--   made requests, or downstream services, resources and applications that
--   an application used.
--   
--   <i>See:</i> <a>serviceInfo</a> smart constructor.
data ServiceInfo

-- | Creates a value of <a>ServiceInfo</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sState</a> - The service's state.</li>
--   <li><a>sStartTime</a> - The start time of the first segment that the
--   service generated.</li>
--   <li><a>sRoot</a> - Indicates that the service was the first service to
--   process a request.</li>
--   <li><a>sDurationHistogram</a> - Histogram mapping the spread of trace
--   durations</li>
--   <li><a>sReferenceId</a> - Identifier for the service. Unique within
--   the service map.</li>
--   <li><a>sAccountId</a> - Identifier of the AWS account in which the
--   service runs.</li>
--   <li><a>sNames</a> - A list of names for the service, including the
--   canonical name.</li>
--   <li><a>sName</a> - The canonical name of the service.</li>
--   <li><a>sEndTime</a> - The end time of the last segment that the
--   service generated.</li>
--   <li><a>sType</a> - The type of service. * AWS Resource - The type of
--   an AWS resource. For example, <tt>AWS::EC2::Instance</tt> for a
--   application running on Amazon EC2 or <tt>AWS::DynamoDB::Table</tt> for
--   an Amazon DynamoDB table that the application used. * AWS Service -
--   The type of an AWS service. For example, <tt>AWS::DynamoDB</tt> for
--   downstream calls to Amazon DynamoDB that didn't target a specific
--   table. * <tt>client</tt> - Represents the clients that sent requests
--   to a root service. * <tt>remote</tt> - A downstream service of
--   indeterminate type.</li>
--   <li><a>sEdges</a> - Connections to downstream services.</li>
--   <li><a>sSummaryStatistics</a> - Aggregated statistics for the
--   service.</li>
--   </ul>
serviceInfo :: ServiceInfo

-- | The service's state.
sState :: Lens' ServiceInfo (Maybe Text)

-- | The start time of the first segment that the service generated.
sStartTime :: Lens' ServiceInfo (Maybe UTCTime)

-- | Indicates that the service was the first service to process a request.
sRoot :: Lens' ServiceInfo (Maybe Bool)

-- | Histogram mapping the spread of trace durations
sDurationHistogram :: Lens' ServiceInfo [HistogramEntry]

-- | Identifier for the service. Unique within the service map.
sReferenceId :: Lens' ServiceInfo (Maybe Int)

-- | Identifier of the AWS account in which the service runs.
sAccountId :: Lens' ServiceInfo (Maybe Text)

-- | A list of names for the service, including the canonical name.
sNames :: Lens' ServiceInfo [Text]

-- | The canonical name of the service.
sName :: Lens' ServiceInfo (Maybe Text)

-- | The end time of the last segment that the service generated.
sEndTime :: Lens' ServiceInfo (Maybe UTCTime)

-- | The type of service. * AWS Resource - The type of an AWS resource. For
--   example, <tt>AWS::EC2::Instance</tt> for a application running on
--   Amazon EC2 or <tt>AWS::DynamoDB::Table</tt> for an Amazon DynamoDB
--   table that the application used. * AWS Service - The type of an AWS
--   service. For example, <tt>AWS::DynamoDB</tt> for downstream calls to
--   Amazon DynamoDB that didn't target a specific table. * <tt>client</tt>
--   - Represents the clients that sent requests to a root service. *
--   <tt>remote</tt> - A downstream service of indeterminate type.
sType :: Lens' ServiceInfo (Maybe Text)

-- | Connections to downstream services.
sEdges :: Lens' ServiceInfo [Edge]

-- | Aggregated statistics for the service.
sSummaryStatistics :: Lens' ServiceInfo (Maybe ServiceStatistics)

-- | Response statistics for a service.
--   
--   <i>See:</i> <a>serviceStatistics</a> smart constructor.
data ServiceStatistics

-- | Creates a value of <a>ServiceStatistics</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ssFaultStatistics</a> - Information about requests that failed
--   with a 5xx Server Error status code.</li>
--   <li><a>ssOKCount</a> - The number of requests that completed with a
--   2xx Success status code.</li>
--   <li><a>ssTotalResponseTime</a> - The aggregate response time of
--   completed requests.</li>
--   <li><a>ssErrorStatistics</a> - Information about requests that failed
--   with a 4xx Client Error status code.</li>
--   <li><a>ssTotalCount</a> - The total number of completed requests.</li>
--   </ul>
serviceStatistics :: ServiceStatistics

-- | Information about requests that failed with a 5xx Server Error status
--   code.
ssFaultStatistics :: Lens' ServiceStatistics (Maybe FaultStatistics)

-- | The number of requests that completed with a 2xx Success status code.
ssOKCount :: Lens' ServiceStatistics (Maybe Integer)

-- | The aggregate response time of completed requests.
ssTotalResponseTime :: Lens' ServiceStatistics (Maybe Double)

-- | Information about requests that failed with a 4xx Client Error status
--   code.
ssErrorStatistics :: Lens' ServiceStatistics (Maybe ErrorStatistics)

-- | The total number of completed requests.
ssTotalCount :: Lens' ServiceStatistics (Maybe Integer)

-- | <i>See:</i> <a>telemetryRecord</a> smart constructor.
data TelemetryRecord

-- | Creates a value of <a>TelemetryRecord</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>trSegmentsReceivedCount</a> -</li>
--   <li><a>trSegmentsSentCount</a> -</li>
--   <li><a>trSegmentsSpilloverCount</a> -</li>
--   <li><a>trSegmentsRejectedCount</a> -</li>
--   <li><a>trTimestamp</a> -</li>
--   <li><a>trBackendConnectionErrors</a> -</li>
--   </ul>
telemetryRecord :: TelemetryRecord
trSegmentsReceivedCount :: Lens' TelemetryRecord (Maybe Int)
trSegmentsSentCount :: Lens' TelemetryRecord (Maybe Int)
trSegmentsSpilloverCount :: Lens' TelemetryRecord (Maybe Int)
trSegmentsRejectedCount :: Lens' TelemetryRecord (Maybe Int)
trTimestamp :: Lens' TelemetryRecord (Maybe UTCTime)
trBackendConnectionErrors :: Lens' TelemetryRecord (Maybe BackendConnectionErrors)

-- | A collection of segment documents with matching trace IDs.
--   
--   <i>See:</i> <a>trace</a> smart constructor.
data Trace

-- | Creates a value of <a>Trace</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tId</a> - The unique identifier for the request that generated
--   the trace's segments and subsegments.</li>
--   <li><a>tSegments</a> - Segment documents for the segments and
--   subsegments that comprise the trace.</li>
--   <li><a>tDuration</a> - The length of time in seconds between the start
--   time of the root segment and the end time of the last segment that
--   completed.</li>
--   </ul>
trace :: Trace

-- | The unique identifier for the request that generated the trace's
--   segments and subsegments.
tId :: Lens' Trace (Maybe Text)

-- | Segment documents for the segments and subsegments that comprise the
--   trace.
tSegments :: Lens' Trace [Segment]

-- | The length of time in seconds between the start time of the root
--   segment and the end time of the last segment that completed.
tDuration :: Lens' Trace (Maybe Double)

-- | Metadata generated from the segment documents in a trace.
--   
--   <i>See:</i> <a>traceSummary</a> smart constructor.
data TraceSummary

-- | Creates a value of <a>TraceSummary</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tsAnnotations</a> - Annotations from the trace's segment
--   documents.</li>
--   <li><a>tsHasThrottle</a> - One or more of the segment documents has a
--   429 throttling error.</li>
--   <li><a>tsUsers</a> - Users from the trace's segment documents.</li>
--   <li><a>tsHasFault</a> - One or more of the segment documents has a 500
--   series error.</li>
--   <li><a>tsServiceIds</a> - Service IDs from the trace's segment
--   documents.</li>
--   <li><a>tsIsPartial</a> - One or more of the segment documents is in
--   progress.</li>
--   <li><a>tsHasError</a> - One or more of the segment documents has a 400
--   series error.</li>
--   <li><a>tsId</a> - The unique identifier for the request that generated
--   the trace's segments and subsegments.</li>
--   <li><a>tsHTTP</a> - Information about the HTTP request served by the
--   trace.</li>
--   <li><a>tsDuration</a> - The length of time in seconds between the
--   start time of the root segment and the end time of the last segment
--   that completed.</li>
--   <li><a>tsResponseTime</a> - The length of time in seconds between the
--   start and end times of the root segment. If the service performs work
--   asynchronously, the response time measures the time before the
--   response is sent to the user, while the duration measures the amount
--   of time before the last traced activity completes.</li>
--   </ul>
traceSummary :: TraceSummary

-- | Annotations from the trace's segment documents.
tsAnnotations :: Lens' TraceSummary (HashMap Text [ValueWithServiceIds])

-- | One or more of the segment documents has a 429 throttling error.
tsHasThrottle :: Lens' TraceSummary (Maybe Bool)

-- | Users from the trace's segment documents.
tsUsers :: Lens' TraceSummary [TraceUser]

-- | One or more of the segment documents has a 500 series error.
tsHasFault :: Lens' TraceSummary (Maybe Bool)

-- | Service IDs from the trace's segment documents.
tsServiceIds :: Lens' TraceSummary [ServiceId]

-- | One or more of the segment documents is in progress.
tsIsPartial :: Lens' TraceSummary (Maybe Bool)

-- | One or more of the segment documents has a 400 series error.
tsHasError :: Lens' TraceSummary (Maybe Bool)

-- | The unique identifier for the request that generated the trace's
--   segments and subsegments.
tsId :: Lens' TraceSummary (Maybe Text)

-- | Information about the HTTP request served by the trace.
tsHTTP :: Lens' TraceSummary (Maybe HTTP)

-- | The length of time in seconds between the start time of the root
--   segment and the end time of the last segment that completed.
tsDuration :: Lens' TraceSummary (Maybe Double)

-- | The length of time in seconds between the start and end times of the
--   root segment. If the service performs work asynchronously, the
--   response time measures the time before the response is sent to the
--   user, while the duration measures the amount of time before the last
--   traced activity completes.
tsResponseTime :: Lens' TraceSummary (Maybe Double)

-- | Information about a user recorded in segment documents.
--   
--   <i>See:</i> <a>traceUser</a> smart constructor.
data TraceUser

-- | Creates a value of <a>TraceUser</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tuServiceIds</a> - Services that the user's request hit.</li>
--   <li><a>tuUserName</a> - The user's name.</li>
--   </ul>
traceUser :: TraceUser

-- | Services that the user's request hit.
tuServiceIds :: Lens' TraceUser [ServiceId]

-- | The user's name.
tuUserName :: Lens' TraceUser (Maybe Text)

-- | Information about a segment that failed processing.
--   
--   <i>See:</i> <a>unprocessedTraceSegment</a> smart constructor.
data UnprocessedTraceSegment

-- | Creates a value of <a>UnprocessedTraceSegment</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>utsErrorCode</a> - The error that caused processing to
--   fail.</li>
--   <li><a>utsId</a> - The segment's ID.</li>
--   <li><a>utsMessage</a> - The error message.</li>
--   </ul>
unprocessedTraceSegment :: UnprocessedTraceSegment

-- | The error that caused processing to fail.
utsErrorCode :: Lens' UnprocessedTraceSegment (Maybe Text)

-- | The segment's ID.
utsId :: Lens' UnprocessedTraceSegment (Maybe Text)

-- | The error message.
utsMessage :: Lens' UnprocessedTraceSegment (Maybe Text)

-- | Information about a segment annotation.
--   
--   <i>See:</i> <a>valueWithServiceIds</a> smart constructor.
data ValueWithServiceIds

-- | Creates a value of <a>ValueWithServiceIds</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vwsiServiceIds</a> - Services to which the annotation
--   applies.</li>
--   <li><a>vwsiAnnotationValue</a> - Values of the annotation.</li>
--   </ul>
valueWithServiceIds :: ValueWithServiceIds

-- | Services to which the annotation applies.
vwsiServiceIds :: Lens' ValueWithServiceIds [ServiceId]

-- | Values of the annotation.
vwsiAnnotationValue :: Lens' ValueWithServiceIds (Maybe AnnotationValue)


module Network.AWS.XRay.Waiters


-- | Uploads segment documents to AWS X-Ray. The X-Ray SDK generates
--   segment documents and sends them to the X-Ray daemon, which uploads
--   them in batches. A segment document can be a completed segment, an
--   in-progress segment, or an array of subsegments.
module Network.AWS.XRay.PutTraceSegments

-- | Creates a value of <a>PutTraceSegments</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ptsTraceSegmentDocuments</a> - A JSON document defining one or
--   more segments or subsegments. Segments must include the following
--   fields. <b>Required Segment Document Fields</b> * <tt>name</tt> - The
--   name of the service that handled the request. * <tt>id</tt> - A 64-bit
--   identifier for the segment, unique among segments in the same trace,
--   in 16 hexadecimal digits. * <tt>trace_id</tt> - A unique identifier
--   that connects all segments and subsegments originating from a single
--   client request. * <tt>start_time</tt> - Time the segment or subsegment
--   was created, in floating point seconds in epoch time, accurate to
--   milliseconds. For example, <tt>1480615200.010</tt> or
--   <tt>1.480615200010E9</tt> . * <tt>end_time</tt> - Time the segment or
--   subsegment was closed. For example, <tt>1480615200.090</tt> or
--   <tt>1.480615200090E9</tt> . Specify either an <tt>end_time</tt> or
--   <tt>in_progress</tt> . * <tt>in_progress</tt> - Set to <tt>true</tt>
--   instead of specifying an <tt>end_time</tt> to record that a segment
--   has been started, but is not complete. Send an in progress segment
--   when your application receives a request that will take a long time to
--   serve, to trace the fact that the request was received. When the
--   response is sent, send the complete segment to overwrite the
--   in-progress segment. A <tt>trace_id</tt> consists of three numbers
--   separated by hyphens. For example,
--   1-58406520-a006649127e371903a2de979. This includes: <b>Trace ID
--   Format</b> * The version number, i.e. <tt>1</tt> . * The time of the
--   original request, in Unix epoch time, in 8 hexadecimal digits. For
--   example, 10:00AM December 2nd, 2016 PST in epoch time is
--   <tt>1480615200</tt> seconds, or <tt>58406520</tt> in hexadecimal. * A
--   96-bit identifier for the trace, globally unique, in 24 hexadecimal
--   digits.</li>
--   </ul>
putTraceSegments :: PutTraceSegments

-- | <i>See:</i> <a>putTraceSegments</a> smart constructor.
data PutTraceSegments

-- | A JSON document defining one or more segments or subsegments. Segments
--   must include the following fields. <b>Required Segment Document
--   Fields</b> * <tt>name</tt> - The name of the service that handled the
--   request. * <tt>id</tt> - A 64-bit identifier for the segment, unique
--   among segments in the same trace, in 16 hexadecimal digits. *
--   <tt>trace_id</tt> - A unique identifier that connects all segments and
--   subsegments originating from a single client request. *
--   <tt>start_time</tt> - Time the segment or subsegment was created, in
--   floating point seconds in epoch time, accurate to milliseconds. For
--   example, <tt>1480615200.010</tt> or <tt>1.480615200010E9</tt> . *
--   <tt>end_time</tt> - Time the segment or subsegment was closed. For
--   example, <tt>1480615200.090</tt> or <tt>1.480615200090E9</tt> .
--   Specify either an <tt>end_time</tt> or <tt>in_progress</tt> . *
--   <tt>in_progress</tt> - Set to <tt>true</tt> instead of specifying an
--   <tt>end_time</tt> to record that a segment has been started, but is
--   not complete. Send an in progress segment when your application
--   receives a request that will take a long time to serve, to trace the
--   fact that the request was received. When the response is sent, send
--   the complete segment to overwrite the in-progress segment. A
--   <tt>trace_id</tt> consists of three numbers separated by hyphens. For
--   example, 1-58406520-a006649127e371903a2de979. This includes: <b>Trace
--   ID Format</b> * The version number, i.e. <tt>1</tt> . * The time of
--   the original request, in Unix epoch time, in 8 hexadecimal digits. For
--   example, 10:00AM December 2nd, 2016 PST in epoch time is
--   <tt>1480615200</tt> seconds, or <tt>58406520</tt> in hexadecimal. * A
--   96-bit identifier for the trace, globally unique, in 24 hexadecimal
--   digits.
ptsTraceSegmentDocuments :: Lens' PutTraceSegments [Text]

-- | Creates a value of <a>PutTraceSegmentsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ptsrsUnprocessedTraceSegments</a> - Segments that failed
--   processing.</li>
--   <li><a>ptsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
putTraceSegmentsResponse :: Int -> PutTraceSegmentsResponse

-- | <i>See:</i> <a>putTraceSegmentsResponse</a> smart constructor.
data PutTraceSegmentsResponse

-- | Segments that failed processing.
ptsrsUnprocessedTraceSegments :: Lens' PutTraceSegmentsResponse [UnprocessedTraceSegment]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ptsrsResponseStatus :: Lens' PutTraceSegmentsResponse Int
instance GHC.Generics.Generic Network.AWS.XRay.PutTraceSegments.PutTraceSegmentsResponse
instance Data.Data.Data Network.AWS.XRay.PutTraceSegments.PutTraceSegmentsResponse
instance GHC.Show.Show Network.AWS.XRay.PutTraceSegments.PutTraceSegmentsResponse
instance GHC.Read.Read Network.AWS.XRay.PutTraceSegments.PutTraceSegmentsResponse
instance GHC.Classes.Eq Network.AWS.XRay.PutTraceSegments.PutTraceSegmentsResponse
instance GHC.Generics.Generic Network.AWS.XRay.PutTraceSegments.PutTraceSegments
instance Data.Data.Data Network.AWS.XRay.PutTraceSegments.PutTraceSegments
instance GHC.Show.Show Network.AWS.XRay.PutTraceSegments.PutTraceSegments
instance GHC.Read.Read Network.AWS.XRay.PutTraceSegments.PutTraceSegments
instance GHC.Classes.Eq Network.AWS.XRay.PutTraceSegments.PutTraceSegments
instance Network.AWS.Types.AWSRequest Network.AWS.XRay.PutTraceSegments.PutTraceSegments
instance Data.Hashable.Class.Hashable Network.AWS.XRay.PutTraceSegments.PutTraceSegments
instance Control.DeepSeq.NFData Network.AWS.XRay.PutTraceSegments.PutTraceSegments
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.XRay.PutTraceSegments.PutTraceSegments
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.XRay.PutTraceSegments.PutTraceSegments
instance Network.AWS.Data.Path.ToPath Network.AWS.XRay.PutTraceSegments.PutTraceSegments
instance Network.AWS.Data.Query.ToQuery Network.AWS.XRay.PutTraceSegments.PutTraceSegments
instance Control.DeepSeq.NFData Network.AWS.XRay.PutTraceSegments.PutTraceSegmentsResponse


-- | Used by the AWS X-Ray daemon to upload telemetry.
module Network.AWS.XRay.PutTelemetryRecords

-- | Creates a value of <a>PutTelemetryRecords</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ptrHostname</a> -</li>
--   <li><a>ptrEC2InstanceId</a> -</li>
--   <li><a>ptrResourceARN</a> -</li>
--   <li><a>ptrTelemetryRecords</a> -</li>
--   </ul>
putTelemetryRecords :: PutTelemetryRecords

-- | <i>See:</i> <a>putTelemetryRecords</a> smart constructor.
data PutTelemetryRecords
ptrHostname :: Lens' PutTelemetryRecords (Maybe Text)
ptrEC2InstanceId :: Lens' PutTelemetryRecords (Maybe Text)
ptrResourceARN :: Lens' PutTelemetryRecords (Maybe Text)
ptrTelemetryRecords :: Lens' PutTelemetryRecords [TelemetryRecord]

-- | Creates a value of <a>PutTelemetryRecordsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ptrrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
putTelemetryRecordsResponse :: Int -> PutTelemetryRecordsResponse

-- | <i>See:</i> <a>putTelemetryRecordsResponse</a> smart constructor.
data PutTelemetryRecordsResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ptrrsResponseStatus :: Lens' PutTelemetryRecordsResponse Int
instance GHC.Generics.Generic Network.AWS.XRay.PutTelemetryRecords.PutTelemetryRecordsResponse
instance Data.Data.Data Network.AWS.XRay.PutTelemetryRecords.PutTelemetryRecordsResponse
instance GHC.Show.Show Network.AWS.XRay.PutTelemetryRecords.PutTelemetryRecordsResponse
instance GHC.Read.Read Network.AWS.XRay.PutTelemetryRecords.PutTelemetryRecordsResponse
instance GHC.Classes.Eq Network.AWS.XRay.PutTelemetryRecords.PutTelemetryRecordsResponse
instance GHC.Generics.Generic Network.AWS.XRay.PutTelemetryRecords.PutTelemetryRecords
instance Data.Data.Data Network.AWS.XRay.PutTelemetryRecords.PutTelemetryRecords
instance GHC.Show.Show Network.AWS.XRay.PutTelemetryRecords.PutTelemetryRecords
instance GHC.Read.Read Network.AWS.XRay.PutTelemetryRecords.PutTelemetryRecords
instance GHC.Classes.Eq Network.AWS.XRay.PutTelemetryRecords.PutTelemetryRecords
instance Network.AWS.Types.AWSRequest Network.AWS.XRay.PutTelemetryRecords.PutTelemetryRecords
instance Data.Hashable.Class.Hashable Network.AWS.XRay.PutTelemetryRecords.PutTelemetryRecords
instance Control.DeepSeq.NFData Network.AWS.XRay.PutTelemetryRecords.PutTelemetryRecords
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.XRay.PutTelemetryRecords.PutTelemetryRecords
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.XRay.PutTelemetryRecords.PutTelemetryRecords
instance Network.AWS.Data.Path.ToPath Network.AWS.XRay.PutTelemetryRecords.PutTelemetryRecords
instance Network.AWS.Data.Query.ToQuery Network.AWS.XRay.PutTelemetryRecords.PutTelemetryRecords
instance Control.DeepSeq.NFData Network.AWS.XRay.PutTelemetryRecords.PutTelemetryRecordsResponse


-- | Retrieves IDs and metadata for traces available for a specified time
--   frame using an optional filter. To get the full traces, pass the trace
--   IDs to <tt>BatchGetTraces</tt> .
module Network.AWS.XRay.GetTraceSummaries

-- | Creates a value of <a>GetTraceSummaries</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gtsFilterExpression</a> - Specify a filter expression to
--   retrieve trace summaries for services or requests that meet certain
--   requirements.</li>
--   <li><a>gtsNextToken</a> - Specify the pagination token returned by a
--   previous request to retrieve the next page of results.</li>
--   <li><a>gtsSampling</a> - Set to <tt>true</tt> to get summaries for
--   only a subset of available traces.</li>
--   <li><a>gtsStartTime</a> - The start of the time frame for which to
--   retrieve traces.</li>
--   <li><a>gtsEndTime</a> - The end of the time frame for which to
--   retrieve traces.</li>
--   </ul>
getTraceSummaries :: UTCTime -> UTCTime -> GetTraceSummaries

-- | <i>See:</i> <a>getTraceSummaries</a> smart constructor.
data GetTraceSummaries

-- | Specify a filter expression to retrieve trace summaries for services
--   or requests that meet certain requirements.
gtsFilterExpression :: Lens' GetTraceSummaries (Maybe Text)

-- | Specify the pagination token returned by a previous request to
--   retrieve the next page of results.
gtsNextToken :: Lens' GetTraceSummaries (Maybe Text)

-- | Set to <tt>true</tt> to get summaries for only a subset of available
--   traces.
gtsSampling :: Lens' GetTraceSummaries (Maybe Bool)

-- | The start of the time frame for which to retrieve traces.
gtsStartTime :: Lens' GetTraceSummaries UTCTime

-- | The end of the time frame for which to retrieve traces.
gtsEndTime :: Lens' GetTraceSummaries UTCTime

-- | Creates a value of <a>GetTraceSummariesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gtsrsTracesProcessedCount</a> - The number of traces that were
--   processed to get this set of summaries.</li>
--   <li><a>gtsrsNextToken</a> - If the requested time frame contained more
--   than one page of results, you can use this token to retrieve the next
--   page. The first page contains the most most recent results, closest to
--   the end of the time frame.</li>
--   <li><a>gtsrsApproximateTime</a> - The start time of this page of
--   results.</li>
--   <li><a>gtsrsTraceSummaries</a> - Trace IDs and metadata for traces
--   that were found in the specified time frame.</li>
--   <li><a>gtsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getTraceSummariesResponse :: Int -> GetTraceSummariesResponse

-- | <i>See:</i> <a>getTraceSummariesResponse</a> smart constructor.
data GetTraceSummariesResponse

-- | The number of traces that were processed to get this set of summaries.
gtsrsTracesProcessedCount :: Lens' GetTraceSummariesResponse (Maybe Integer)

-- | If the requested time frame contained more than one page of results,
--   you can use this token to retrieve the next page. The first page
--   contains the most most recent results, closest to the end of the time
--   frame.
gtsrsNextToken :: Lens' GetTraceSummariesResponse (Maybe Text)

-- | The start time of this page of results.
gtsrsApproximateTime :: Lens' GetTraceSummariesResponse (Maybe UTCTime)

-- | Trace IDs and metadata for traces that were found in the specified
--   time frame.
gtsrsTraceSummaries :: Lens' GetTraceSummariesResponse [TraceSummary]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gtsrsResponseStatus :: Lens' GetTraceSummariesResponse Int
instance GHC.Generics.Generic Network.AWS.XRay.GetTraceSummaries.GetTraceSummariesResponse
instance Data.Data.Data Network.AWS.XRay.GetTraceSummaries.GetTraceSummariesResponse
instance GHC.Show.Show Network.AWS.XRay.GetTraceSummaries.GetTraceSummariesResponse
instance GHC.Read.Read Network.AWS.XRay.GetTraceSummaries.GetTraceSummariesResponse
instance GHC.Classes.Eq Network.AWS.XRay.GetTraceSummaries.GetTraceSummariesResponse
instance GHC.Generics.Generic Network.AWS.XRay.GetTraceSummaries.GetTraceSummaries
instance Data.Data.Data Network.AWS.XRay.GetTraceSummaries.GetTraceSummaries
instance GHC.Show.Show Network.AWS.XRay.GetTraceSummaries.GetTraceSummaries
instance GHC.Read.Read Network.AWS.XRay.GetTraceSummaries.GetTraceSummaries
instance GHC.Classes.Eq Network.AWS.XRay.GetTraceSummaries.GetTraceSummaries
instance Network.AWS.Types.AWSRequest Network.AWS.XRay.GetTraceSummaries.GetTraceSummaries
instance Data.Hashable.Class.Hashable Network.AWS.XRay.GetTraceSummaries.GetTraceSummaries
instance Control.DeepSeq.NFData Network.AWS.XRay.GetTraceSummaries.GetTraceSummaries
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.XRay.GetTraceSummaries.GetTraceSummaries
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.XRay.GetTraceSummaries.GetTraceSummaries
instance Network.AWS.Data.Path.ToPath Network.AWS.XRay.GetTraceSummaries.GetTraceSummaries
instance Network.AWS.Data.Query.ToQuery Network.AWS.XRay.GetTraceSummaries.GetTraceSummaries
instance Control.DeepSeq.NFData Network.AWS.XRay.GetTraceSummaries.GetTraceSummariesResponse


-- | Retrieves a service graph for one or more specific trace IDs.
module Network.AWS.XRay.GetTraceGraph

-- | Creates a value of <a>GetTraceGraph</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gtgNextToken</a> - Pagination token. Not used.</li>
--   <li><a>gtgTraceIds</a> - Trace IDs of requests for which to generate a
--   service graph.</li>
--   </ul>
getTraceGraph :: GetTraceGraph

-- | <i>See:</i> <a>getTraceGraph</a> smart constructor.
data GetTraceGraph

-- | Pagination token. Not used.
gtgNextToken :: Lens' GetTraceGraph (Maybe Text)

-- | Trace IDs of requests for which to generate a service graph.
gtgTraceIds :: Lens' GetTraceGraph [Text]

-- | Creates a value of <a>GetTraceGraphResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gtgrsNextToken</a> - Pagination token. Not used.</li>
--   <li><a>gtgrsServices</a> - The services that have processed one of the
--   specified requests.</li>
--   <li><a>gtgrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getTraceGraphResponse :: Int -> GetTraceGraphResponse

-- | <i>See:</i> <a>getTraceGraphResponse</a> smart constructor.
data GetTraceGraphResponse

-- | Pagination token. Not used.
gtgrsNextToken :: Lens' GetTraceGraphResponse (Maybe Text)

-- | The services that have processed one of the specified requests.
gtgrsServices :: Lens' GetTraceGraphResponse [ServiceInfo]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gtgrsResponseStatus :: Lens' GetTraceGraphResponse Int
instance GHC.Generics.Generic Network.AWS.XRay.GetTraceGraph.GetTraceGraphResponse
instance Data.Data.Data Network.AWS.XRay.GetTraceGraph.GetTraceGraphResponse
instance GHC.Show.Show Network.AWS.XRay.GetTraceGraph.GetTraceGraphResponse
instance GHC.Read.Read Network.AWS.XRay.GetTraceGraph.GetTraceGraphResponse
instance GHC.Classes.Eq Network.AWS.XRay.GetTraceGraph.GetTraceGraphResponse
instance GHC.Generics.Generic Network.AWS.XRay.GetTraceGraph.GetTraceGraph
instance Data.Data.Data Network.AWS.XRay.GetTraceGraph.GetTraceGraph
instance GHC.Show.Show Network.AWS.XRay.GetTraceGraph.GetTraceGraph
instance GHC.Read.Read Network.AWS.XRay.GetTraceGraph.GetTraceGraph
instance GHC.Classes.Eq Network.AWS.XRay.GetTraceGraph.GetTraceGraph
instance Network.AWS.Types.AWSRequest Network.AWS.XRay.GetTraceGraph.GetTraceGraph
instance Data.Hashable.Class.Hashable Network.AWS.XRay.GetTraceGraph.GetTraceGraph
instance Control.DeepSeq.NFData Network.AWS.XRay.GetTraceGraph.GetTraceGraph
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.XRay.GetTraceGraph.GetTraceGraph
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.XRay.GetTraceGraph.GetTraceGraph
instance Network.AWS.Data.Path.ToPath Network.AWS.XRay.GetTraceGraph.GetTraceGraph
instance Network.AWS.Data.Query.ToQuery Network.AWS.XRay.GetTraceGraph.GetTraceGraph
instance Control.DeepSeq.NFData Network.AWS.XRay.GetTraceGraph.GetTraceGraphResponse


-- | Retrieves a document that describes services that process incoming
--   requests, and downstream services that they call as a result. Root
--   services process incoming requests and make calls to downstream
--   services. Root services are applications that use the AWS X-Ray SDK.
--   Downstream services can be other applications, AWS resources, HTTP web
--   APIs, or SQL databases.
module Network.AWS.XRay.GetServiceGraph

-- | Creates a value of <a>GetServiceGraph</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsgNextToken</a> - Pagination token. Not used.</li>
--   <li><a>gsgStartTime</a> - The start of the time frame for which to
--   generate a graph.</li>
--   <li><a>gsgEndTime</a> - The end of the time frame for which to
--   generate a graph.</li>
--   </ul>
getServiceGraph :: UTCTime -> UTCTime -> GetServiceGraph

-- | <i>See:</i> <a>getServiceGraph</a> smart constructor.
data GetServiceGraph

-- | Pagination token. Not used.
gsgNextToken :: Lens' GetServiceGraph (Maybe Text)

-- | The start of the time frame for which to generate a graph.
gsgStartTime :: Lens' GetServiceGraph UTCTime

-- | The end of the time frame for which to generate a graph.
gsgEndTime :: Lens' GetServiceGraph UTCTime

-- | Creates a value of <a>GetServiceGraphResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsgrsStartTime</a> - The start of the time frame for which the
--   graph was generated.</li>
--   <li><a>gsgrsNextToken</a> - Pagination token. Not used.</li>
--   <li><a>gsgrsEndTime</a> - The end of the time frame for which the
--   graph was generated.</li>
--   <li><a>gsgrsServices</a> - The services that have processed a traced
--   request during the specified time frame.</li>
--   <li><a>gsgrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getServiceGraphResponse :: Int -> GetServiceGraphResponse

-- | <i>See:</i> <a>getServiceGraphResponse</a> smart constructor.
data GetServiceGraphResponse

-- | The start of the time frame for which the graph was generated.
gsgrsStartTime :: Lens' GetServiceGraphResponse (Maybe UTCTime)

-- | Pagination token. Not used.
gsgrsNextToken :: Lens' GetServiceGraphResponse (Maybe Text)

-- | The end of the time frame for which the graph was generated.
gsgrsEndTime :: Lens' GetServiceGraphResponse (Maybe UTCTime)

-- | The services that have processed a traced request during the specified
--   time frame.
gsgrsServices :: Lens' GetServiceGraphResponse [ServiceInfo]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gsgrsResponseStatus :: Lens' GetServiceGraphResponse Int
instance GHC.Generics.Generic Network.AWS.XRay.GetServiceGraph.GetServiceGraphResponse
instance Data.Data.Data Network.AWS.XRay.GetServiceGraph.GetServiceGraphResponse
instance GHC.Show.Show Network.AWS.XRay.GetServiceGraph.GetServiceGraphResponse
instance GHC.Read.Read Network.AWS.XRay.GetServiceGraph.GetServiceGraphResponse
instance GHC.Classes.Eq Network.AWS.XRay.GetServiceGraph.GetServiceGraphResponse
instance GHC.Generics.Generic Network.AWS.XRay.GetServiceGraph.GetServiceGraph
instance Data.Data.Data Network.AWS.XRay.GetServiceGraph.GetServiceGraph
instance GHC.Show.Show Network.AWS.XRay.GetServiceGraph.GetServiceGraph
instance GHC.Read.Read Network.AWS.XRay.GetServiceGraph.GetServiceGraph
instance GHC.Classes.Eq Network.AWS.XRay.GetServiceGraph.GetServiceGraph
instance Network.AWS.Types.AWSRequest Network.AWS.XRay.GetServiceGraph.GetServiceGraph
instance Data.Hashable.Class.Hashable Network.AWS.XRay.GetServiceGraph.GetServiceGraph
instance Control.DeepSeq.NFData Network.AWS.XRay.GetServiceGraph.GetServiceGraph
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.XRay.GetServiceGraph.GetServiceGraph
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.XRay.GetServiceGraph.GetServiceGraph
instance Network.AWS.Data.Path.ToPath Network.AWS.XRay.GetServiceGraph.GetServiceGraph
instance Network.AWS.Data.Query.ToQuery Network.AWS.XRay.GetServiceGraph.GetServiceGraph
instance Control.DeepSeq.NFData Network.AWS.XRay.GetServiceGraph.GetServiceGraphResponse


-- | Retrieves a list of traces specified by ID. Each trace is a collection
--   of segment documents that originates from a single request. Use
--   <tt>GetTraceSummaries</tt> to get a list of trace IDs.
module Network.AWS.XRay.BatchGetTraces

-- | Creates a value of <a>BatchGetTraces</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bgtNextToken</a> - Pagination token. Not used.</li>
--   <li><a>bgtTraceIds</a> - Specify the trace IDs of requests for which
--   to retrieve segments.</li>
--   </ul>
batchGetTraces :: BatchGetTraces

-- | <i>See:</i> <a>batchGetTraces</a> smart constructor.
data BatchGetTraces

-- | Pagination token. Not used.
bgtNextToken :: Lens' BatchGetTraces (Maybe Text)

-- | Specify the trace IDs of requests for which to retrieve segments.
bgtTraceIds :: Lens' BatchGetTraces [Text]

-- | Creates a value of <a>BatchGetTracesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bgtrsNextToken</a> - Pagination token. Not used.</li>
--   <li><a>bgtrsTraces</a> - Full traces for the specified requests.</li>
--   <li><a>bgtrsUnprocessedTraceIds</a> - Trace IDs of requests that
--   haven't been processed.</li>
--   <li><a>bgtrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
batchGetTracesResponse :: Int -> BatchGetTracesResponse

-- | <i>See:</i> <a>batchGetTracesResponse</a> smart constructor.
data BatchGetTracesResponse

-- | Pagination token. Not used.
bgtrsNextToken :: Lens' BatchGetTracesResponse (Maybe Text)

-- | Full traces for the specified requests.
bgtrsTraces :: Lens' BatchGetTracesResponse [Trace]

-- | Trace IDs of requests that haven't been processed.
bgtrsUnprocessedTraceIds :: Lens' BatchGetTracesResponse [Text]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
bgtrsResponseStatus :: Lens' BatchGetTracesResponse Int
instance GHC.Generics.Generic Network.AWS.XRay.BatchGetTraces.BatchGetTracesResponse
instance Data.Data.Data Network.AWS.XRay.BatchGetTraces.BatchGetTracesResponse
instance GHC.Show.Show Network.AWS.XRay.BatchGetTraces.BatchGetTracesResponse
instance GHC.Read.Read Network.AWS.XRay.BatchGetTraces.BatchGetTracesResponse
instance GHC.Classes.Eq Network.AWS.XRay.BatchGetTraces.BatchGetTracesResponse
instance GHC.Generics.Generic Network.AWS.XRay.BatchGetTraces.BatchGetTraces
instance Data.Data.Data Network.AWS.XRay.BatchGetTraces.BatchGetTraces
instance GHC.Show.Show Network.AWS.XRay.BatchGetTraces.BatchGetTraces
instance GHC.Read.Read Network.AWS.XRay.BatchGetTraces.BatchGetTraces
instance GHC.Classes.Eq Network.AWS.XRay.BatchGetTraces.BatchGetTraces
instance Network.AWS.Types.AWSRequest Network.AWS.XRay.BatchGetTraces.BatchGetTraces
instance Data.Hashable.Class.Hashable Network.AWS.XRay.BatchGetTraces.BatchGetTraces
instance Control.DeepSeq.NFData Network.AWS.XRay.BatchGetTraces.BatchGetTraces
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.XRay.BatchGetTraces.BatchGetTraces
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.XRay.BatchGetTraces.BatchGetTraces
instance Network.AWS.Data.Path.ToPath Network.AWS.XRay.BatchGetTraces.BatchGetTraces
instance Network.AWS.Data.Query.ToQuery Network.AWS.XRay.BatchGetTraces.BatchGetTraces
instance Control.DeepSeq.NFData Network.AWS.XRay.BatchGetTraces.BatchGetTracesResponse


-- | AWS X-Ray provides APIs for managing debug traces and retrieving
--   service maps and other data created by processing those traces.
module Network.AWS.XRay

-- | API version <tt>2016-04-12</tt> of the Amazon X-Ray SDK configuration.
xRay :: Service

-- | The request is missing required parameters or has invalid parameters.
_InvalidRequestException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The request exceeds the maximum number of requests per second.
_ThrottledException :: AsError a => Getting (First ServiceError) a ServiceError

-- | An alias for an edge.
--   
--   <i>See:</i> <a>alias</a> smart constructor.
data Alias

-- | Creates a value of <a>Alias</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aNames</a> - A list of names for the alias, including the
--   canonical name.</li>
--   <li><a>aName</a> - The canonical name of the alias.</li>
--   <li><a>aType</a> - The type of the alias.</li>
--   </ul>
alias :: Alias

-- | A list of names for the alias, including the canonical name.
aNames :: Lens' Alias [Text]

-- | The canonical name of the alias.
aName :: Lens' Alias (Maybe Text)

-- | The type of the alias.
aType :: Lens' Alias (Maybe Text)

-- | Value of a segment annotation. Has one of three value types: Number,
--   Boolean or String.
--   
--   <i>See:</i> <a>annotationValue</a> smart constructor.
data AnnotationValue

-- | Creates a value of <a>AnnotationValue</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>avNumberValue</a> - Value for a Number annotation.</li>
--   <li><a>avStringValue</a> - Value for a String annotation.</li>
--   <li><a>avBooleanValue</a> - Value for a Boolean annotation.</li>
--   </ul>
annotationValue :: AnnotationValue

-- | Value for a Number annotation.
avNumberValue :: Lens' AnnotationValue (Maybe Double)

-- | Value for a String annotation.
avStringValue :: Lens' AnnotationValue (Maybe Text)

-- | Value for a Boolean annotation.
avBooleanValue :: Lens' AnnotationValue (Maybe Bool)

-- | <i>See:</i> <a>backendConnectionErrors</a> smart constructor.
data BackendConnectionErrors

-- | Creates a value of <a>BackendConnectionErrors</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bceOtherCount</a> -</li>
--   <li><a>bceTimeoutCount</a> -</li>
--   <li><a>bceHTTPCode5XXCount</a> -</li>
--   <li><a>bceConnectionRefusedCount</a> -</li>
--   <li><a>bceHTTPCode4XXCount</a> -</li>
--   <li><a>bceUnknownHostCount</a> -</li>
--   </ul>
backendConnectionErrors :: BackendConnectionErrors
bceOtherCount :: Lens' BackendConnectionErrors (Maybe Int)
bceTimeoutCount :: Lens' BackendConnectionErrors (Maybe Int)
bceHTTPCode5XXCount :: Lens' BackendConnectionErrors (Maybe Int)
bceConnectionRefusedCount :: Lens' BackendConnectionErrors (Maybe Int)
bceHTTPCode4XXCount :: Lens' BackendConnectionErrors (Maybe Int)
bceUnknownHostCount :: Lens' BackendConnectionErrors (Maybe Int)

-- | Information about a connection between two services.
--   
--   <i>See:</i> <a>edge</a> smart constructor.
data Edge

-- | Creates a value of <a>Edge</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eStartTime</a> - The start time of the first segment on the
--   edge.</li>
--   <li><a>eAliases</a> - Aliases for the edge.</li>
--   <li><a>eResponseTimeHistogram</a> - Histogram describing the
--   prominence of response times on the edge.</li>
--   <li><a>eReferenceId</a> - Identifier of the edge. Unique within a
--   service map.</li>
--   <li><a>eEndTime</a> - The end time of the last segment on the
--   edge.</li>
--   <li><a>eSummaryStatistics</a> - Response statistics for segments on
--   the edge.</li>
--   </ul>
edge :: Edge

-- | The start time of the first segment on the edge.
eStartTime :: Lens' Edge (Maybe UTCTime)

-- | Aliases for the edge.
eAliases :: Lens' Edge [Alias]

-- | Histogram describing the prominence of response times on the edge.
eResponseTimeHistogram :: Lens' Edge [HistogramEntry]

-- | Identifier of the edge. Unique within a service map.
eReferenceId :: Lens' Edge (Maybe Int)

-- | The end time of the last segment on the edge.
eEndTime :: Lens' Edge (Maybe UTCTime)

-- | Response statistics for segments on the edge.
eSummaryStatistics :: Lens' Edge (Maybe EdgeStatistics)

-- | Response statistics for an edge.
--   
--   <i>See:</i> <a>edgeStatistics</a> smart constructor.
data EdgeStatistics

-- | Creates a value of <a>EdgeStatistics</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>esFaultStatistics</a> - Information about requests that failed
--   with a 5xx Server Error status code.</li>
--   <li><a>esOKCount</a> - The number of requests that completed with a
--   2xx Success status code.</li>
--   <li><a>esTotalResponseTime</a> - The aggregate response time of
--   completed requests.</li>
--   <li><a>esErrorStatistics</a> - Information about requests that failed
--   with a 4xx Client Error status code.</li>
--   <li><a>esTotalCount</a> - The total number of completed requests.</li>
--   </ul>
edgeStatistics :: EdgeStatistics

-- | Information about requests that failed with a 5xx Server Error status
--   code.
esFaultStatistics :: Lens' EdgeStatistics (Maybe FaultStatistics)

-- | The number of requests that completed with a 2xx Success status code.
esOKCount :: Lens' EdgeStatistics (Maybe Integer)

-- | The aggregate response time of completed requests.
esTotalResponseTime :: Lens' EdgeStatistics (Maybe Double)

-- | Information about requests that failed with a 4xx Client Error status
--   code.
esErrorStatistics :: Lens' EdgeStatistics (Maybe ErrorStatistics)

-- | The total number of completed requests.
esTotalCount :: Lens' EdgeStatistics (Maybe Integer)

-- | Information about requests that failed with a 4xx Client Error status
--   code.
--   
--   <i>See:</i> <a>errorStatistics</a> smart constructor.
data ErrorStatistics

-- | Creates a value of <a>ErrorStatistics</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eOtherCount</a> - The number of requests that failed with
--   untracked 4xx Client Error status codes.</li>
--   <li><a>eThrottleCount</a> - The number of requests that failed with a
--   419 throttling status code.</li>
--   <li><a>eTotalCount</a> - The total number of requests that failed with
--   a 4xx Client Error status code.</li>
--   </ul>
errorStatistics :: ErrorStatistics

-- | The number of requests that failed with untracked 4xx Client Error
--   status codes.
eOtherCount :: Lens' ErrorStatistics (Maybe Integer)

-- | The number of requests that failed with a 419 throttling status code.
eThrottleCount :: Lens' ErrorStatistics (Maybe Integer)

-- | The total number of requests that failed with a 4xx Client Error
--   status code.
eTotalCount :: Lens' ErrorStatistics (Maybe Integer)

-- | Information about requests that failed with a 5xx Server Error status
--   code.
--   
--   <i>See:</i> <a>faultStatistics</a> smart constructor.
data FaultStatistics

-- | Creates a value of <a>FaultStatistics</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fsOtherCount</a> - The number of requests that failed with
--   untracked 5xx Server Error status codes.</li>
--   <li><a>fsTotalCount</a> - The total number of requests that failed
--   with a 5xx Server Error status code.</li>
--   </ul>
faultStatistics :: FaultStatistics

-- | The number of requests that failed with untracked 5xx Server Error
--   status codes.
fsOtherCount :: Lens' FaultStatistics (Maybe Integer)

-- | The total number of requests that failed with a 5xx Server Error
--   status code.
fsTotalCount :: Lens' FaultStatistics (Maybe Integer)

-- | Information about an HTTP request.
--   
--   <i>See:</i> <a>hTTP</a> smart constructor.
data HTTP

-- | Creates a value of <a>HTTP</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>httpHTTPMethod</a> - The request method.</li>
--   <li><a>httpHTTPStatus</a> - The response status.</li>
--   <li><a>httpClientIP</a> - The IP address of the requestor.</li>
--   <li><a>httpUserAgent</a> - The request's user agent string.</li>
--   <li><a>httpHTTPURL</a> - The request URL.</li>
--   </ul>
hTTP :: HTTP

-- | The request method.
httpHTTPMethod :: Lens' HTTP (Maybe Text)

-- | The response status.
httpHTTPStatus :: Lens' HTTP (Maybe Int)

-- | The IP address of the requestor.
httpClientIP :: Lens' HTTP (Maybe Text)

-- | The request's user agent string.
httpUserAgent :: Lens' HTTP (Maybe Text)

-- | The request URL.
httpHTTPURL :: Lens' HTTP (Maybe Text)

-- | An entry in a histogram for a statistic. A histogram maps the range of
--   observed values on the X axis, and the prevalence of each value on the
--   Y axis.
--   
--   <i>See:</i> <a>histogramEntry</a> smart constructor.
data HistogramEntry

-- | Creates a value of <a>HistogramEntry</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>heCount</a> - The prevalence of the entry.</li>
--   <li><a>heValue</a> - The value of the entry.</li>
--   </ul>
histogramEntry :: HistogramEntry

-- | The prevalence of the entry.
heCount :: Lens' HistogramEntry (Maybe Int)

-- | The value of the entry.
heValue :: Lens' HistogramEntry (Maybe Double)

-- | Information about a segment
--   
--   <i>See:</i> <a>segment</a> smart constructor.
data Segment

-- | Creates a value of <a>Segment</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sDocument</a> - The segment document.</li>
--   <li><a>sId</a> - The segment's ID.</li>
--   </ul>
segment :: Segment

-- | The segment document.
sDocument :: Lens' Segment (Maybe Text)

-- | The segment's ID.
sId :: Lens' Segment (Maybe Text)

-- | <i>See:</i> <a>serviceId</a> smart constructor.
data ServiceId

-- | Creates a value of <a>ServiceId</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>siAccountId</a> -</li>
--   <li><a>siNames</a> -</li>
--   <li><a>siName</a> -</li>
--   <li><a>siType</a> -</li>
--   </ul>
serviceId :: ServiceId
siAccountId :: Lens' ServiceId (Maybe Text)
siNames :: Lens' ServiceId [Text]
siName :: Lens' ServiceId (Maybe Text)
siType :: Lens' ServiceId (Maybe Text)

-- | Information about an application that processed requests, users that
--   made requests, or downstream services, resources and applications that
--   an application used.
--   
--   <i>See:</i> <a>serviceInfo</a> smart constructor.
data ServiceInfo

-- | Creates a value of <a>ServiceInfo</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sState</a> - The service's state.</li>
--   <li><a>sStartTime</a> - The start time of the first segment that the
--   service generated.</li>
--   <li><a>sRoot</a> - Indicates that the service was the first service to
--   process a request.</li>
--   <li><a>sDurationHistogram</a> - Histogram mapping the spread of trace
--   durations</li>
--   <li><a>sReferenceId</a> - Identifier for the service. Unique within
--   the service map.</li>
--   <li><a>sAccountId</a> - Identifier of the AWS account in which the
--   service runs.</li>
--   <li><a>sNames</a> - A list of names for the service, including the
--   canonical name.</li>
--   <li><a>sName</a> - The canonical name of the service.</li>
--   <li><a>sEndTime</a> - The end time of the last segment that the
--   service generated.</li>
--   <li><a>sType</a> - The type of service. * AWS Resource - The type of
--   an AWS resource. For example, <tt>AWS::EC2::Instance</tt> for a
--   application running on Amazon EC2 or <tt>AWS::DynamoDB::Table</tt> for
--   an Amazon DynamoDB table that the application used. * AWS Service -
--   The type of an AWS service. For example, <tt>AWS::DynamoDB</tt> for
--   downstream calls to Amazon DynamoDB that didn't target a specific
--   table. * <tt>client</tt> - Represents the clients that sent requests
--   to a root service. * <tt>remote</tt> - A downstream service of
--   indeterminate type.</li>
--   <li><a>sEdges</a> - Connections to downstream services.</li>
--   <li><a>sSummaryStatistics</a> - Aggregated statistics for the
--   service.</li>
--   </ul>
serviceInfo :: ServiceInfo

-- | The service's state.
sState :: Lens' ServiceInfo (Maybe Text)

-- | The start time of the first segment that the service generated.
sStartTime :: Lens' ServiceInfo (Maybe UTCTime)

-- | Indicates that the service was the first service to process a request.
sRoot :: Lens' ServiceInfo (Maybe Bool)

-- | Histogram mapping the spread of trace durations
sDurationHistogram :: Lens' ServiceInfo [HistogramEntry]

-- | Identifier for the service. Unique within the service map.
sReferenceId :: Lens' ServiceInfo (Maybe Int)

-- | Identifier of the AWS account in which the service runs.
sAccountId :: Lens' ServiceInfo (Maybe Text)

-- | A list of names for the service, including the canonical name.
sNames :: Lens' ServiceInfo [Text]

-- | The canonical name of the service.
sName :: Lens' ServiceInfo (Maybe Text)

-- | The end time of the last segment that the service generated.
sEndTime :: Lens' ServiceInfo (Maybe UTCTime)

-- | The type of service. * AWS Resource - The type of an AWS resource. For
--   example, <tt>AWS::EC2::Instance</tt> for a application running on
--   Amazon EC2 or <tt>AWS::DynamoDB::Table</tt> for an Amazon DynamoDB
--   table that the application used. * AWS Service - The type of an AWS
--   service. For example, <tt>AWS::DynamoDB</tt> for downstream calls to
--   Amazon DynamoDB that didn't target a specific table. * <tt>client</tt>
--   - Represents the clients that sent requests to a root service. *
--   <tt>remote</tt> - A downstream service of indeterminate type.
sType :: Lens' ServiceInfo (Maybe Text)

-- | Connections to downstream services.
sEdges :: Lens' ServiceInfo [Edge]

-- | Aggregated statistics for the service.
sSummaryStatistics :: Lens' ServiceInfo (Maybe ServiceStatistics)

-- | Response statistics for a service.
--   
--   <i>See:</i> <a>serviceStatistics</a> smart constructor.
data ServiceStatistics

-- | Creates a value of <a>ServiceStatistics</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ssFaultStatistics</a> - Information about requests that failed
--   with a 5xx Server Error status code.</li>
--   <li><a>ssOKCount</a> - The number of requests that completed with a
--   2xx Success status code.</li>
--   <li><a>ssTotalResponseTime</a> - The aggregate response time of
--   completed requests.</li>
--   <li><a>ssErrorStatistics</a> - Information about requests that failed
--   with a 4xx Client Error status code.</li>
--   <li><a>ssTotalCount</a> - The total number of completed requests.</li>
--   </ul>
serviceStatistics :: ServiceStatistics

-- | Information about requests that failed with a 5xx Server Error status
--   code.
ssFaultStatistics :: Lens' ServiceStatistics (Maybe FaultStatistics)

-- | The number of requests that completed with a 2xx Success status code.
ssOKCount :: Lens' ServiceStatistics (Maybe Integer)

-- | The aggregate response time of completed requests.
ssTotalResponseTime :: Lens' ServiceStatistics (Maybe Double)

-- | Information about requests that failed with a 4xx Client Error status
--   code.
ssErrorStatistics :: Lens' ServiceStatistics (Maybe ErrorStatistics)

-- | The total number of completed requests.
ssTotalCount :: Lens' ServiceStatistics (Maybe Integer)

-- | <i>See:</i> <a>telemetryRecord</a> smart constructor.
data TelemetryRecord

-- | Creates a value of <a>TelemetryRecord</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>trSegmentsReceivedCount</a> -</li>
--   <li><a>trSegmentsSentCount</a> -</li>
--   <li><a>trSegmentsSpilloverCount</a> -</li>
--   <li><a>trSegmentsRejectedCount</a> -</li>
--   <li><a>trTimestamp</a> -</li>
--   <li><a>trBackendConnectionErrors</a> -</li>
--   </ul>
telemetryRecord :: TelemetryRecord
trSegmentsReceivedCount :: Lens' TelemetryRecord (Maybe Int)
trSegmentsSentCount :: Lens' TelemetryRecord (Maybe Int)
trSegmentsSpilloverCount :: Lens' TelemetryRecord (Maybe Int)
trSegmentsRejectedCount :: Lens' TelemetryRecord (Maybe Int)
trTimestamp :: Lens' TelemetryRecord (Maybe UTCTime)
trBackendConnectionErrors :: Lens' TelemetryRecord (Maybe BackendConnectionErrors)

-- | A collection of segment documents with matching trace IDs.
--   
--   <i>See:</i> <a>trace</a> smart constructor.
data Trace

-- | Creates a value of <a>Trace</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tId</a> - The unique identifier for the request that generated
--   the trace's segments and subsegments.</li>
--   <li><a>tSegments</a> - Segment documents for the segments and
--   subsegments that comprise the trace.</li>
--   <li><a>tDuration</a> - The length of time in seconds between the start
--   time of the root segment and the end time of the last segment that
--   completed.</li>
--   </ul>
trace :: Trace

-- | The unique identifier for the request that generated the trace's
--   segments and subsegments.
tId :: Lens' Trace (Maybe Text)

-- | Segment documents for the segments and subsegments that comprise the
--   trace.
tSegments :: Lens' Trace [Segment]

-- | The length of time in seconds between the start time of the root
--   segment and the end time of the last segment that completed.
tDuration :: Lens' Trace (Maybe Double)

-- | Metadata generated from the segment documents in a trace.
--   
--   <i>See:</i> <a>traceSummary</a> smart constructor.
data TraceSummary

-- | Creates a value of <a>TraceSummary</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tsAnnotations</a> - Annotations from the trace's segment
--   documents.</li>
--   <li><a>tsHasThrottle</a> - One or more of the segment documents has a
--   429 throttling error.</li>
--   <li><a>tsUsers</a> - Users from the trace's segment documents.</li>
--   <li><a>tsHasFault</a> - One or more of the segment documents has a 500
--   series error.</li>
--   <li><a>tsServiceIds</a> - Service IDs from the trace's segment
--   documents.</li>
--   <li><a>tsIsPartial</a> - One or more of the segment documents is in
--   progress.</li>
--   <li><a>tsHasError</a> - One or more of the segment documents has a 400
--   series error.</li>
--   <li><a>tsId</a> - The unique identifier for the request that generated
--   the trace's segments and subsegments.</li>
--   <li><a>tsHTTP</a> - Information about the HTTP request served by the
--   trace.</li>
--   <li><a>tsDuration</a> - The length of time in seconds between the
--   start time of the root segment and the end time of the last segment
--   that completed.</li>
--   <li><a>tsResponseTime</a> - The length of time in seconds between the
--   start and end times of the root segment. If the service performs work
--   asynchronously, the response time measures the time before the
--   response is sent to the user, while the duration measures the amount
--   of time before the last traced activity completes.</li>
--   </ul>
traceSummary :: TraceSummary

-- | Annotations from the trace's segment documents.
tsAnnotations :: Lens' TraceSummary (HashMap Text [ValueWithServiceIds])

-- | One or more of the segment documents has a 429 throttling error.
tsHasThrottle :: Lens' TraceSummary (Maybe Bool)

-- | Users from the trace's segment documents.
tsUsers :: Lens' TraceSummary [TraceUser]

-- | One or more of the segment documents has a 500 series error.
tsHasFault :: Lens' TraceSummary (Maybe Bool)

-- | Service IDs from the trace's segment documents.
tsServiceIds :: Lens' TraceSummary [ServiceId]

-- | One or more of the segment documents is in progress.
tsIsPartial :: Lens' TraceSummary (Maybe Bool)

-- | One or more of the segment documents has a 400 series error.
tsHasError :: Lens' TraceSummary (Maybe Bool)

-- | The unique identifier for the request that generated the trace's
--   segments and subsegments.
tsId :: Lens' TraceSummary (Maybe Text)

-- | Information about the HTTP request served by the trace.
tsHTTP :: Lens' TraceSummary (Maybe HTTP)

-- | The length of time in seconds between the start time of the root
--   segment and the end time of the last segment that completed.
tsDuration :: Lens' TraceSummary (Maybe Double)

-- | The length of time in seconds between the start and end times of the
--   root segment. If the service performs work asynchronously, the
--   response time measures the time before the response is sent to the
--   user, while the duration measures the amount of time before the last
--   traced activity completes.
tsResponseTime :: Lens' TraceSummary (Maybe Double)

-- | Information about a user recorded in segment documents.
--   
--   <i>See:</i> <a>traceUser</a> smart constructor.
data TraceUser

-- | Creates a value of <a>TraceUser</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tuServiceIds</a> - Services that the user's request hit.</li>
--   <li><a>tuUserName</a> - The user's name.</li>
--   </ul>
traceUser :: TraceUser

-- | Services that the user's request hit.
tuServiceIds :: Lens' TraceUser [ServiceId]

-- | The user's name.
tuUserName :: Lens' TraceUser (Maybe Text)

-- | Information about a segment that failed processing.
--   
--   <i>See:</i> <a>unprocessedTraceSegment</a> smart constructor.
data UnprocessedTraceSegment

-- | Creates a value of <a>UnprocessedTraceSegment</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>utsErrorCode</a> - The error that caused processing to
--   fail.</li>
--   <li><a>utsId</a> - The segment's ID.</li>
--   <li><a>utsMessage</a> - The error message.</li>
--   </ul>
unprocessedTraceSegment :: UnprocessedTraceSegment

-- | The error that caused processing to fail.
utsErrorCode :: Lens' UnprocessedTraceSegment (Maybe Text)

-- | The segment's ID.
utsId :: Lens' UnprocessedTraceSegment (Maybe Text)

-- | The error message.
utsMessage :: Lens' UnprocessedTraceSegment (Maybe Text)

-- | Information about a segment annotation.
--   
--   <i>See:</i> <a>valueWithServiceIds</a> smart constructor.
data ValueWithServiceIds

-- | Creates a value of <a>ValueWithServiceIds</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vwsiServiceIds</a> - Services to which the annotation
--   applies.</li>
--   <li><a>vwsiAnnotationValue</a> - Values of the annotation.</li>
--   </ul>
valueWithServiceIds :: ValueWithServiceIds

-- | Services to which the annotation applies.
vwsiServiceIds :: Lens' ValueWithServiceIds [ServiceId]

-- | Values of the annotation.
vwsiAnnotationValue :: Lens' ValueWithServiceIds (Maybe AnnotationValue)
