-- 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.6.0


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
data EncryptionStatus
Active :: EncryptionStatus
Updating :: EncryptionStatus
data EncryptionType
KMS :: EncryptionType
None :: EncryptionType

-- | 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> - A histogram that maps the spread
--   of client response times on an 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]

-- | A histogram that maps the spread of client response times on an 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)

-- | A configuration document that specifies encryption configuration
--   settings.
--   
--   <i>See:</i> <a>encryptionConfig</a> smart constructor.
data EncryptionConfig

-- | Creates a value of <a>EncryptionConfig</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>ecStatus</a> - The encryption status. After modifying
--   encryption configuration with <tt>PutEncryptionConfig</tt> , the
--   status can be <tt>UPDATING</tt> for up to one hour before X-Ray starts
--   encrypting data with the new key.</li>
--   <li><a>ecKeyId</a> - The ID of the customer master key (CMK) used for
--   encryption, if applicable.</li>
--   <li><a>ecType</a> - The type of encryption. Set to <tt>KMS</tt> for
--   encryption with CMKs. Set to <tt>NONE</tt> for default
--   encryption.</li>
--   </ul>
encryptionConfig :: EncryptionConfig

-- | The encryption status. After modifying encryption configuration with
--   <tt>PutEncryptionConfig</tt> , the status can be <tt>UPDATING</tt> for
--   up to one hour before X-Ray starts encrypting data with the new key.
ecStatus :: Lens' EncryptionConfig (Maybe EncryptionStatus)

-- | The ID of the customer master key (CMK) used for encryption, if
--   applicable.
ecKeyId :: Lens' EncryptionConfig (Maybe Text)

-- | The type of encryption. Set to <tt>KMS</tt> for encryption with CMKs.
--   Set to <tt>NONE</tt> for default encryption.
ecType :: Lens' EncryptionConfig (Maybe EncryptionType)

-- | 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)

-- | A segment from a trace that has been ingested by the X-Ray service.
--   The segment can be compiled from documents uploaded with
--   <tt>PutTraceSegments</tt> , or an <tt>inferred</tt> segment for a
--   downstream service, generated from a subsegment sent by the service
--   that called it.
--   
--   For the full segment document schema, see <a>AWS X-Ray Segment
--   Documents</a> in the <i>AWS X-Ray Developer Guide</i> .
--   
--   <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>sResponseTimeHistogram</a> - A histogram that maps the spread
--   of service response times.</li>
--   <li><a>sDurationHistogram</a> - A histogram that maps the spread of
--   service 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)

-- | A histogram that maps the spread of service response times.
sResponseTimeHistogram :: Lens' ServiceInfo [HistogramEntry]

-- | A histogram that maps the spread of service 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>trBackendConnectionErrors</a> -</li>
--   <li><a>trTimestamp</a> -</li>
--   </ul>
telemetryRecord :: UTCTime -> TelemetryRecord

trSegmentsReceivedCount :: Lens' TelemetryRecord (Maybe Int)

trSegmentsSentCount :: Lens' TelemetryRecord (Maybe Int)

trSegmentsSpilloverCount :: Lens' TelemetryRecord (Maybe Int)

trSegmentsRejectedCount :: Lens' TelemetryRecord (Maybe Int)

trBackendConnectionErrors :: Lens' TelemetryRecord (Maybe BackendConnectionErrors)

trTimestamp :: Lens' TelemetryRecord UTCTime

-- | 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)


-- | 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.
--   
--   Segments must include the following fields. For the full segment
--   document schema, see <a>AWS X-Ray Segment Documents</a> in the <i>AWS
--   X-Ray Developer Guide</i> .
--   
--   <b>Required Segment Document Fields</b>
--   
--   <ul>
--   <li><tt>name</tt> - The name of the service that handled the
--   request.</li>
--   <li><tt>id</tt> - A 64-bit identifier for the segment, unique among
--   segments in the same trace, in 16 hexadecimal digits.</li>
--   <li><tt>trace_id</tt> - A unique identifier that connects all segments
--   and subsegments originating from a single client request.</li>
--   <li><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> .</li>
--   <li><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> .</li>
--   <li><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.</li>
--   </ul>
--   
--   A <tt>trace_id</tt> consists of three numbers separated by hyphens.
--   For example, 1-58406520-a006649127e371903a2de979. This includes:
--   
--   <b>Trace ID Format</b>
--   
--   <ul>
--   <li>The version number, i.e. <tt>1</tt> .</li>
--   <li>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.</li>
--   <li>A 96-bit identifier for the trace, globally unique, in 24
--   hexadecimal digits.</li>
--   </ul>
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 string containing a JSON
--   document defining one or more segments or subsegments.</li>
--   </ul>
putTraceSegments :: PutTraceSegments

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

-- | A string containing a JSON document defining one or more segments or
--   subsegments.
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 Control.DeepSeq.NFData Network.AWS.XRay.PutTraceSegments.PutTraceSegmentsResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.XRay.PutTelemetryRecords.PutTelemetryRecordsResponse
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


-- | Updates the encryption configuration for X-Ray data.
module Network.AWS.XRay.PutEncryptionConfig

-- | Creates a value of <a>PutEncryptionConfig</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>pecKeyId</a> - An AWS KMS customer master key (CMK) in one of
--   the following formats: * <b>Alias</b> - The name of the key. For
--   example, <tt>alias/MyKey</tt> . * <b>Key ID</b> - The KMS key ID of
--   the key. For example, <tt>ae4aa6d49-a4d8-9df9-a475-4ff6d7898456</tt> .
--   * <b>ARN</b> - The full Amazon Resource Name of the key ID or alias.
--   For example,
--   <tt>arn:aws:kms:us-east-2:123456789012:key/ae4aa6d49-a4d8-9df9-a475-4ff6d7898456</tt>
--   . Use this format to specify a key in a different account. Omit this
--   key if you set <tt>Type</tt> to <tt>NONE</tt> .</li>
--   <li><a>pecType</a> - The type of encryption. Set to <tt>KMS</tt> to
--   use your own key for encryption. Set to <tt>NONE</tt> for default
--   encryption.</li>
--   </ul>
putEncryptionConfig :: EncryptionType -> PutEncryptionConfig

-- | <i>See:</i> <a>putEncryptionConfig</a> smart constructor.
data PutEncryptionConfig

-- | An AWS KMS customer master key (CMK) in one of the following formats:
--   * <b>Alias</b> - The name of the key. For example,
--   <tt>alias/MyKey</tt> . * <b>Key ID</b> - The KMS key ID of the key.
--   For example, <tt>ae4aa6d49-a4d8-9df9-a475-4ff6d7898456</tt> . *
--   <b>ARN</b> - The full Amazon Resource Name of the key ID or alias. For
--   example,
--   <tt>arn:aws:kms:us-east-2:123456789012:key/ae4aa6d49-a4d8-9df9-a475-4ff6d7898456</tt>
--   . Use this format to specify a key in a different account. Omit this
--   key if you set <tt>Type</tt> to <tt>NONE</tt> .
pecKeyId :: Lens' PutEncryptionConfig (Maybe Text)

-- | The type of encryption. Set to <tt>KMS</tt> to use your own key for
--   encryption. Set to <tt>NONE</tt> for default encryption.
pecType :: Lens' PutEncryptionConfig EncryptionType

-- | Creates a value of <a>PutEncryptionConfigResponse</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>pecrsEncryptionConfig</a> - The new encryption
--   configuration.</li>
--   <li><a>pecrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
putEncryptionConfigResponse :: Int -> PutEncryptionConfigResponse

-- | <i>See:</i> <a>putEncryptionConfigResponse</a> smart constructor.
data PutEncryptionConfigResponse

-- | The new encryption configuration.
pecrsEncryptionConfig :: Lens' PutEncryptionConfigResponse (Maybe EncryptionConfig)

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


-- | 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> .
--   
--   A filter expression can target traced requests that hit specific
--   service nodes or edges, have errors, or come from a known user. For
--   example, the following filter expression targets traces that pass
--   through <tt>api.example.com</tt> :
--   
--   <pre>
--   service("api.example.com")
--   </pre>
--   
--   This filter expression finds traces that have an annotation named
--   <tt>account</tt> with the value <tt>12345</tt> :
--   
--   <pre>
--   annotation.account = "12345"
--   </pre>
--   
--   For a full list of indexed fields and keywords that you can use in
--   filter expressions, see <a>Using Filter Expressions</a> in the <i>AWS
--   X-Ray Developer Guide</i> .
--   
--   This operation returns paginated results.
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 total number of traces
--   processed, including traces that did not match the specified filter
--   expression.</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 total number of traces processed, including traces that did not
--   match the specified filter expression.
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 Control.DeepSeq.NFData Network.AWS.XRay.GetTraceSummaries.GetTraceSummariesResponse
instance Network.AWS.Pager.AWSPager 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


-- | Retrieves a service graph for one or more specific trace IDs.
--   
--   This operation returns paginated results.
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 Control.DeepSeq.NFData Network.AWS.XRay.GetTraceGraph.GetTraceGraphResponse
instance Network.AWS.Pager.AWSPager 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


-- | 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.
--   
--   This operation returns paginated results.
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 Control.DeepSeq.NFData Network.AWS.XRay.GetServiceGraph.GetServiceGraphResponse
instance Network.AWS.Pager.AWSPager 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


-- | Retrieves the current encryption configuration for X-Ray data.
module Network.AWS.XRay.GetEncryptionConfig

-- | Creates a value of <a>GetEncryptionConfig</a> with the minimum fields
--   required to make a request.
getEncryptionConfig :: GetEncryptionConfig

-- | <i>See:</i> <a>getEncryptionConfig</a> smart constructor.
data GetEncryptionConfig

-- | Creates a value of <a>GetEncryptionConfigResponse</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>gecrsEncryptionConfig</a> - The encryption configuration
--   document.</li>
--   <li><a>gecrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getEncryptionConfigResponse :: Int -> GetEncryptionConfigResponse

-- | <i>See:</i> <a>getEncryptionConfigResponse</a> smart constructor.
data GetEncryptionConfigResponse

-- | The encryption configuration document.
gecrsEncryptionConfig :: Lens' GetEncryptionConfigResponse (Maybe EncryptionConfig)

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


-- | 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.
--   
--   This operation returns paginated results.
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 Control.DeepSeq.NFData Network.AWS.XRay.BatchGetTraces.BatchGetTracesResponse
instance Network.AWS.Pager.AWSPager 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


module Network.AWS.XRay.Waiters


-- | 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
data EncryptionStatus
Active :: EncryptionStatus
Updating :: EncryptionStatus
data EncryptionType
KMS :: EncryptionType
None :: EncryptionType

-- | 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> - A histogram that maps the spread
--   of client response times on an 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]

-- | A histogram that maps the spread of client response times on an 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)

-- | A configuration document that specifies encryption configuration
--   settings.
--   
--   <i>See:</i> <a>encryptionConfig</a> smart constructor.
data EncryptionConfig

-- | Creates a value of <a>EncryptionConfig</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>ecStatus</a> - The encryption status. After modifying
--   encryption configuration with <tt>PutEncryptionConfig</tt> , the
--   status can be <tt>UPDATING</tt> for up to one hour before X-Ray starts
--   encrypting data with the new key.</li>
--   <li><a>ecKeyId</a> - The ID of the customer master key (CMK) used for
--   encryption, if applicable.</li>
--   <li><a>ecType</a> - The type of encryption. Set to <tt>KMS</tt> for
--   encryption with CMKs. Set to <tt>NONE</tt> for default
--   encryption.</li>
--   </ul>
encryptionConfig :: EncryptionConfig

-- | The encryption status. After modifying encryption configuration with
--   <tt>PutEncryptionConfig</tt> , the status can be <tt>UPDATING</tt> for
--   up to one hour before X-Ray starts encrypting data with the new key.
ecStatus :: Lens' EncryptionConfig (Maybe EncryptionStatus)

-- | The ID of the customer master key (CMK) used for encryption, if
--   applicable.
ecKeyId :: Lens' EncryptionConfig (Maybe Text)

-- | The type of encryption. Set to <tt>KMS</tt> for encryption with CMKs.
--   Set to <tt>NONE</tt> for default encryption.
ecType :: Lens' EncryptionConfig (Maybe EncryptionType)

-- | 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)

-- | A segment from a trace that has been ingested by the X-Ray service.
--   The segment can be compiled from documents uploaded with
--   <tt>PutTraceSegments</tt> , or an <tt>inferred</tt> segment for a
--   downstream service, generated from a subsegment sent by the service
--   that called it.
--   
--   For the full segment document schema, see <a>AWS X-Ray Segment
--   Documents</a> in the <i>AWS X-Ray Developer Guide</i> .
--   
--   <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>sResponseTimeHistogram</a> - A histogram that maps the spread
--   of service response times.</li>
--   <li><a>sDurationHistogram</a> - A histogram that maps the spread of
--   service 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)

-- | A histogram that maps the spread of service response times.
sResponseTimeHistogram :: Lens' ServiceInfo [HistogramEntry]

-- | A histogram that maps the spread of service 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>trBackendConnectionErrors</a> -</li>
--   <li><a>trTimestamp</a> -</li>
--   </ul>
telemetryRecord :: UTCTime -> TelemetryRecord

trSegmentsReceivedCount :: Lens' TelemetryRecord (Maybe Int)

trSegmentsSentCount :: Lens' TelemetryRecord (Maybe Int)

trSegmentsSpilloverCount :: Lens' TelemetryRecord (Maybe Int)

trSegmentsRejectedCount :: Lens' TelemetryRecord (Maybe Int)

trBackendConnectionErrors :: Lens' TelemetryRecord (Maybe BackendConnectionErrors)

trTimestamp :: Lens' TelemetryRecord UTCTime

-- | 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)
