xray.d.ts
   1  import {Request} from '../lib/request';
   2  import {Response} from '../lib/response';
   3  import {AWSError} from '../lib/error';
   4  import {Service} from '../lib/service';
   5  import {ServiceConfigurationOptions} from '../lib/service';
   6  import {ConfigBase as Config} from '../lib/config-base';
   7  interface Blob {}
   8  declare class XRay extends Service {
   9    /**
  10     * Constructs a service object. This object has one method for each API operation.
  11     */
  12    constructor(options?: XRay.Types.ClientConfiguration)
  13    config: Config & XRay.Types.ClientConfiguration;
  14    /**
  15     * Retrieves a list of traces specified by ID. Each trace is a collection of segment documents that originates from a single request. Use GetTraceSummaries to get a list of trace IDs.
  16     */
  17    batchGetTraces(params: XRay.Types.BatchGetTracesRequest, callback?: (err: AWSError, data: XRay.Types.BatchGetTracesResult) => void): Request<XRay.Types.BatchGetTracesResult, AWSError>;
  18    /**
  19     * Retrieves a list of traces specified by ID. Each trace is a collection of segment documents that originates from a single request. Use GetTraceSummaries to get a list of trace IDs.
  20     */
  21    batchGetTraces(callback?: (err: AWSError, data: XRay.Types.BatchGetTracesResult) => void): Request<XRay.Types.BatchGetTracesResult, AWSError>;
  22    /**
  23     * Creates a group resource with a name and a filter expression. 
  24     */
  25    createGroup(params: XRay.Types.CreateGroupRequest, callback?: (err: AWSError, data: XRay.Types.CreateGroupResult) => void): Request<XRay.Types.CreateGroupResult, AWSError>;
  26    /**
  27     * Creates a group resource with a name and a filter expression. 
  28     */
  29    createGroup(callback?: (err: AWSError, data: XRay.Types.CreateGroupResult) => void): Request<XRay.Types.CreateGroupResult, AWSError>;
  30    /**
  31     * Creates a rule to control sampling behavior for instrumented applications. Services retrieve rules with GetSamplingRules, and evaluate each rule in ascending order of priority for each request. If a rule matches, the service records a trace, borrowing it from the reservoir size. After 10 seconds, the service reports back to X-Ray with GetSamplingTargets to get updated versions of each in-use rule. The updated rule contains a trace quota that the service can use instead of borrowing from the reservoir.
  32     */
  33    createSamplingRule(params: XRay.Types.CreateSamplingRuleRequest, callback?: (err: AWSError, data: XRay.Types.CreateSamplingRuleResult) => void): Request<XRay.Types.CreateSamplingRuleResult, AWSError>;
  34    /**
  35     * Creates a rule to control sampling behavior for instrumented applications. Services retrieve rules with GetSamplingRules, and evaluate each rule in ascending order of priority for each request. If a rule matches, the service records a trace, borrowing it from the reservoir size. After 10 seconds, the service reports back to X-Ray with GetSamplingTargets to get updated versions of each in-use rule. The updated rule contains a trace quota that the service can use instead of borrowing from the reservoir.
  36     */
  37    createSamplingRule(callback?: (err: AWSError, data: XRay.Types.CreateSamplingRuleResult) => void): Request<XRay.Types.CreateSamplingRuleResult, AWSError>;
  38    /**
  39     * Deletes a group resource.
  40     */
  41    deleteGroup(params: XRay.Types.DeleteGroupRequest, callback?: (err: AWSError, data: XRay.Types.DeleteGroupResult) => void): Request<XRay.Types.DeleteGroupResult, AWSError>;
  42    /**
  43     * Deletes a group resource.
  44     */
  45    deleteGroup(callback?: (err: AWSError, data: XRay.Types.DeleteGroupResult) => void): Request<XRay.Types.DeleteGroupResult, AWSError>;
  46    /**
  47     * Deletes a sampling rule.
  48     */
  49    deleteSamplingRule(params: XRay.Types.DeleteSamplingRuleRequest, callback?: (err: AWSError, data: XRay.Types.DeleteSamplingRuleResult) => void): Request<XRay.Types.DeleteSamplingRuleResult, AWSError>;
  50    /**
  51     * Deletes a sampling rule.
  52     */
  53    deleteSamplingRule(callback?: (err: AWSError, data: XRay.Types.DeleteSamplingRuleResult) => void): Request<XRay.Types.DeleteSamplingRuleResult, AWSError>;
  54    /**
  55     * Retrieves the current encryption configuration for X-Ray data.
  56     */
  57    getEncryptionConfig(params: XRay.Types.GetEncryptionConfigRequest, callback?: (err: AWSError, data: XRay.Types.GetEncryptionConfigResult) => void): Request<XRay.Types.GetEncryptionConfigResult, AWSError>;
  58    /**
  59     * Retrieves the current encryption configuration for X-Ray data.
  60     */
  61    getEncryptionConfig(callback?: (err: AWSError, data: XRay.Types.GetEncryptionConfigResult) => void): Request<XRay.Types.GetEncryptionConfigResult, AWSError>;
  62    /**
  63     * Retrieves group resource details.
  64     */
  65    getGroup(params: XRay.Types.GetGroupRequest, callback?: (err: AWSError, data: XRay.Types.GetGroupResult) => void): Request<XRay.Types.GetGroupResult, AWSError>;
  66    /**
  67     * Retrieves group resource details.
  68     */
  69    getGroup(callback?: (err: AWSError, data: XRay.Types.GetGroupResult) => void): Request<XRay.Types.GetGroupResult, AWSError>;
  70    /**
  71     * Retrieves all active group details.
  72     */
  73    getGroups(params: XRay.Types.GetGroupsRequest, callback?: (err: AWSError, data: XRay.Types.GetGroupsResult) => void): Request<XRay.Types.GetGroupsResult, AWSError>;
  74    /**
  75     * Retrieves all active group details.
  76     */
  77    getGroups(callback?: (err: AWSError, data: XRay.Types.GetGroupsResult) => void): Request<XRay.Types.GetGroupsResult, AWSError>;
  78    /**
  79     * Retrieves the summary information of an insight. This includes impact to clients and root cause services, the top anomalous services, the category, the state of the insight, and the start and end time of the insight.
  80     */
  81    getInsight(params: XRay.Types.GetInsightRequest, callback?: (err: AWSError, data: XRay.Types.GetInsightResult) => void): Request<XRay.Types.GetInsightResult, AWSError>;
  82    /**
  83     * Retrieves the summary information of an insight. This includes impact to clients and root cause services, the top anomalous services, the category, the state of the insight, and the start and end time of the insight.
  84     */
  85    getInsight(callback?: (err: AWSError, data: XRay.Types.GetInsightResult) => void): Request<XRay.Types.GetInsightResult, AWSError>;
  86    /**
  87     * X-Ray reevaluates insights periodically until they're resolved, and records each intermediate state as an event. You can review an insight's events in the Impact Timeline on the Inspect page in the X-Ray console.
  88     */
  89    getInsightEvents(params: XRay.Types.GetInsightEventsRequest, callback?: (err: AWSError, data: XRay.Types.GetInsightEventsResult) => void): Request<XRay.Types.GetInsightEventsResult, AWSError>;
  90    /**
  91     * X-Ray reevaluates insights periodically until they're resolved, and records each intermediate state as an event. You can review an insight's events in the Impact Timeline on the Inspect page in the X-Ray console.
  92     */
  93    getInsightEvents(callback?: (err: AWSError, data: XRay.Types.GetInsightEventsResult) => void): Request<XRay.Types.GetInsightEventsResult, AWSError>;
  94    /**
  95     * Retrieves a service graph structure filtered by the specified insight. The service graph is limited to only structural information. For a complete service graph, use this API with the GetServiceGraph API.
  96     */
  97    getInsightImpactGraph(params: XRay.Types.GetInsightImpactGraphRequest, callback?: (err: AWSError, data: XRay.Types.GetInsightImpactGraphResult) => void): Request<XRay.Types.GetInsightImpactGraphResult, AWSError>;
  98    /**
  99     * Retrieves a service graph structure filtered by the specified insight. The service graph is limited to only structural information. For a complete service graph, use this API with the GetServiceGraph API.
 100     */
 101    getInsightImpactGraph(callback?: (err: AWSError, data: XRay.Types.GetInsightImpactGraphResult) => void): Request<XRay.Types.GetInsightImpactGraphResult, AWSError>;
 102    /**
 103     * Retrieves the summaries of all insights in the specified group matching the provided filter values.
 104     */
 105    getInsightSummaries(params: XRay.Types.GetInsightSummariesRequest, callback?: (err: AWSError, data: XRay.Types.GetInsightSummariesResult) => void): Request<XRay.Types.GetInsightSummariesResult, AWSError>;
 106    /**
 107     * Retrieves the summaries of all insights in the specified group matching the provided filter values.
 108     */
 109    getInsightSummaries(callback?: (err: AWSError, data: XRay.Types.GetInsightSummariesResult) => void): Request<XRay.Types.GetInsightSummariesResult, AWSError>;
 110    /**
 111     * Retrieves all sampling rules.
 112     */
 113    getSamplingRules(params: XRay.Types.GetSamplingRulesRequest, callback?: (err: AWSError, data: XRay.Types.GetSamplingRulesResult) => void): Request<XRay.Types.GetSamplingRulesResult, AWSError>;
 114    /**
 115     * Retrieves all sampling rules.
 116     */
 117    getSamplingRules(callback?: (err: AWSError, data: XRay.Types.GetSamplingRulesResult) => void): Request<XRay.Types.GetSamplingRulesResult, AWSError>;
 118    /**
 119     * Retrieves information about recent sampling results for all sampling rules.
 120     */
 121    getSamplingStatisticSummaries(params: XRay.Types.GetSamplingStatisticSummariesRequest, callback?: (err: AWSError, data: XRay.Types.GetSamplingStatisticSummariesResult) => void): Request<XRay.Types.GetSamplingStatisticSummariesResult, AWSError>;
 122    /**
 123     * Retrieves information about recent sampling results for all sampling rules.
 124     */
 125    getSamplingStatisticSummaries(callback?: (err: AWSError, data: XRay.Types.GetSamplingStatisticSummariesResult) => void): Request<XRay.Types.GetSamplingStatisticSummariesResult, AWSError>;
 126    /**
 127     * Requests a sampling quota for rules that the service is using to sample requests. 
 128     */
 129    getSamplingTargets(params: XRay.Types.GetSamplingTargetsRequest, callback?: (err: AWSError, data: XRay.Types.GetSamplingTargetsResult) => void): Request<XRay.Types.GetSamplingTargetsResult, AWSError>;
 130    /**
 131     * Requests a sampling quota for rules that the service is using to sample requests. 
 132     */
 133    getSamplingTargets(callback?: (err: AWSError, data: XRay.Types.GetSamplingTargetsResult) => void): Request<XRay.Types.GetSamplingTargetsResult, AWSError>;
 134    /**
 135     * 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.
 136     */
 137    getServiceGraph(params: XRay.Types.GetServiceGraphRequest, callback?: (err: AWSError, data: XRay.Types.GetServiceGraphResult) => void): Request<XRay.Types.GetServiceGraphResult, AWSError>;
 138    /**
 139     * 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.
 140     */
 141    getServiceGraph(callback?: (err: AWSError, data: XRay.Types.GetServiceGraphResult) => void): Request<XRay.Types.GetServiceGraphResult, AWSError>;
 142    /**
 143     * Get an aggregation of service statistics defined by a specific time range.
 144     */
 145    getTimeSeriesServiceStatistics(params: XRay.Types.GetTimeSeriesServiceStatisticsRequest, callback?: (err: AWSError, data: XRay.Types.GetTimeSeriesServiceStatisticsResult) => void): Request<XRay.Types.GetTimeSeriesServiceStatisticsResult, AWSError>;
 146    /**
 147     * Get an aggregation of service statistics defined by a specific time range.
 148     */
 149    getTimeSeriesServiceStatistics(callback?: (err: AWSError, data: XRay.Types.GetTimeSeriesServiceStatisticsResult) => void): Request<XRay.Types.GetTimeSeriesServiceStatisticsResult, AWSError>;
 150    /**
 151     * Retrieves a service graph for one or more specific trace IDs.
 152     */
 153    getTraceGraph(params: XRay.Types.GetTraceGraphRequest, callback?: (err: AWSError, data: XRay.Types.GetTraceGraphResult) => void): Request<XRay.Types.GetTraceGraphResult, AWSError>;
 154    /**
 155     * Retrieves a service graph for one or more specific trace IDs.
 156     */
 157    getTraceGraph(callback?: (err: AWSError, data: XRay.Types.GetTraceGraphResult) => void): Request<XRay.Types.GetTraceGraphResult, AWSError>;
 158    /**
 159     * Retrieves IDs and annotations for traces available for a specified time frame using an optional filter. To get the full traces, pass the trace IDs to BatchGetTraces. 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 api.example.com:  service("api.example.com")  This filter expression finds traces that have an annotation named account with the value 12345:  annotation.account = "12345"  For a full list of indexed fields and keywords that you can use in filter expressions, see Using Filter Expressions in the AWS X-Ray Developer Guide.
 160     */
 161    getTraceSummaries(params: XRay.Types.GetTraceSummariesRequest, callback?: (err: AWSError, data: XRay.Types.GetTraceSummariesResult) => void): Request<XRay.Types.GetTraceSummariesResult, AWSError>;
 162    /**
 163     * Retrieves IDs and annotations for traces available for a specified time frame using an optional filter. To get the full traces, pass the trace IDs to BatchGetTraces. 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 api.example.com:  service("api.example.com")  This filter expression finds traces that have an annotation named account with the value 12345:  annotation.account = "12345"  For a full list of indexed fields and keywords that you can use in filter expressions, see Using Filter Expressions in the AWS X-Ray Developer Guide.
 164     */
 165    getTraceSummaries(callback?: (err: AWSError, data: XRay.Types.GetTraceSummariesResult) => void): Request<XRay.Types.GetTraceSummariesResult, AWSError>;
 166    /**
 167     * Returns a list of tags that are applied to the specified AWS X-Ray group or sampling rule.
 168     */
 169    listTagsForResource(params: XRay.Types.ListTagsForResourceRequest, callback?: (err: AWSError, data: XRay.Types.ListTagsForResourceResponse) => void): Request<XRay.Types.ListTagsForResourceResponse, AWSError>;
 170    /**
 171     * Returns a list of tags that are applied to the specified AWS X-Ray group or sampling rule.
 172     */
 173    listTagsForResource(callback?: (err: AWSError, data: XRay.Types.ListTagsForResourceResponse) => void): Request<XRay.Types.ListTagsForResourceResponse, AWSError>;
 174    /**
 175     * Updates the encryption configuration for X-Ray data.
 176     */
 177    putEncryptionConfig(params: XRay.Types.PutEncryptionConfigRequest, callback?: (err: AWSError, data: XRay.Types.PutEncryptionConfigResult) => void): Request<XRay.Types.PutEncryptionConfigResult, AWSError>;
 178    /**
 179     * Updates the encryption configuration for X-Ray data.
 180     */
 181    putEncryptionConfig(callback?: (err: AWSError, data: XRay.Types.PutEncryptionConfigResult) => void): Request<XRay.Types.PutEncryptionConfigResult, AWSError>;
 182    /**
 183     * Used by the AWS X-Ray daemon to upload telemetry.
 184     */
 185    putTelemetryRecords(params: XRay.Types.PutTelemetryRecordsRequest, callback?: (err: AWSError, data: XRay.Types.PutTelemetryRecordsResult) => void): Request<XRay.Types.PutTelemetryRecordsResult, AWSError>;
 186    /**
 187     * Used by the AWS X-Ray daemon to upload telemetry.
 188     */
 189    putTelemetryRecords(callback?: (err: AWSError, data: XRay.Types.PutTelemetryRecordsResult) => void): Request<XRay.Types.PutTelemetryRecordsResult, AWSError>;
 190    /**
 191     * 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 AWS X-Ray Segment Documents in the AWS X-Ray Developer Guide.  Required segment document fields     name - The name of the service that handled the request.    id - A 64-bit identifier for the segment, unique among segments in the same trace, in 16 hexadecimal digits.    trace_id - A unique identifier that connects all segments and subsegments originating from a single client request.    start_time - Time the segment or subsegment was created, in floating point seconds in epoch time, accurate to milliseconds. For example, 1480615200.010 or 1.480615200010E9.    end_time - Time the segment or subsegment was closed. For example, 1480615200.090 or 1.480615200090E9. Specify either an end_time or in_progress.    in_progress - Set to true instead of specifying an end_time 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 that the request was received. When the response is sent, send the complete segment to overwrite the in-progress segment.   A trace_id consists of three numbers separated by hyphens. For example, 1-58406520-a006649127e371903a2de979. This includes:  Trace ID Format    The version number, for instance, 1.   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 1480615200 seconds, or 58406520 in hexadecimal.   A 96-bit identifier for the trace, globally unique, in 24 hexadecimal digits.  
 192     */
 193    putTraceSegments(params: XRay.Types.PutTraceSegmentsRequest, callback?: (err: AWSError, data: XRay.Types.PutTraceSegmentsResult) => void): Request<XRay.Types.PutTraceSegmentsResult, AWSError>;
 194    /**
 195     * 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 AWS X-Ray Segment Documents in the AWS X-Ray Developer Guide.  Required segment document fields     name - The name of the service that handled the request.    id - A 64-bit identifier for the segment, unique among segments in the same trace, in 16 hexadecimal digits.    trace_id - A unique identifier that connects all segments and subsegments originating from a single client request.    start_time - Time the segment or subsegment was created, in floating point seconds in epoch time, accurate to milliseconds. For example, 1480615200.010 or 1.480615200010E9.    end_time - Time the segment or subsegment was closed. For example, 1480615200.090 or 1.480615200090E9. Specify either an end_time or in_progress.    in_progress - Set to true instead of specifying an end_time 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 that the request was received. When the response is sent, send the complete segment to overwrite the in-progress segment.   A trace_id consists of three numbers separated by hyphens. For example, 1-58406520-a006649127e371903a2de979. This includes:  Trace ID Format    The version number, for instance, 1.   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 1480615200 seconds, or 58406520 in hexadecimal.   A 96-bit identifier for the trace, globally unique, in 24 hexadecimal digits.  
 196     */
 197    putTraceSegments(callback?: (err: AWSError, data: XRay.Types.PutTraceSegmentsResult) => void): Request<XRay.Types.PutTraceSegmentsResult, AWSError>;
 198    /**
 199     * Applies tags to an existing AWS X-Ray group or sampling rule.
 200     */
 201    tagResource(params: XRay.Types.TagResourceRequest, callback?: (err: AWSError, data: XRay.Types.TagResourceResponse) => void): Request<XRay.Types.TagResourceResponse, AWSError>;
 202    /**
 203     * Applies tags to an existing AWS X-Ray group or sampling rule.
 204     */
 205    tagResource(callback?: (err: AWSError, data: XRay.Types.TagResourceResponse) => void): Request<XRay.Types.TagResourceResponse, AWSError>;
 206    /**
 207     * Removes tags from an AWS X-Ray group or sampling rule. You cannot edit or delete system tags (those with an aws: prefix).
 208     */
 209    untagResource(params: XRay.Types.UntagResourceRequest, callback?: (err: AWSError, data: XRay.Types.UntagResourceResponse) => void): Request<XRay.Types.UntagResourceResponse, AWSError>;
 210    /**
 211     * Removes tags from an AWS X-Ray group or sampling rule. You cannot edit or delete system tags (those with an aws: prefix).
 212     */
 213    untagResource(callback?: (err: AWSError, data: XRay.Types.UntagResourceResponse) => void): Request<XRay.Types.UntagResourceResponse, AWSError>;
 214    /**
 215     * Updates a group resource.
 216     */
 217    updateGroup(params: XRay.Types.UpdateGroupRequest, callback?: (err: AWSError, data: XRay.Types.UpdateGroupResult) => void): Request<XRay.Types.UpdateGroupResult, AWSError>;
 218    /**
 219     * Updates a group resource.
 220     */
 221    updateGroup(callback?: (err: AWSError, data: XRay.Types.UpdateGroupResult) => void): Request<XRay.Types.UpdateGroupResult, AWSError>;
 222    /**
 223     * Modifies a sampling rule's configuration.
 224     */
 225    updateSamplingRule(params: XRay.Types.UpdateSamplingRuleRequest, callback?: (err: AWSError, data: XRay.Types.UpdateSamplingRuleResult) => void): Request<XRay.Types.UpdateSamplingRuleResult, AWSError>;
 226    /**
 227     * Modifies a sampling rule's configuration.
 228     */
 229    updateSamplingRule(callback?: (err: AWSError, data: XRay.Types.UpdateSamplingRuleResult) => void): Request<XRay.Types.UpdateSamplingRuleResult, AWSError>;
 230  }
 231  declare namespace XRay {
 232    export interface Alias {
 233      /**
 234       * The canonical name of the alias.
 235       */
 236      Name?: String;
 237      /**
 238       * A list of names for the alias, including the canonical name.
 239       */
 240      Names?: AliasNames;
 241      /**
 242       * The type of the alias.
 243       */
 244      Type?: String;
 245    }
 246    export type AliasList = Alias[];
 247    export type AliasNames = String[];
 248    export type AmazonResourceName = string;
 249    export type AnnotationKey = string;
 250    export interface AnnotationValue {
 251      /**
 252       * Value for a Number annotation.
 253       */
 254      NumberValue?: NullableDouble;
 255      /**
 256       * Value for a Boolean annotation.
 257       */
 258      BooleanValue?: NullableBoolean;
 259      /**
 260       * Value for a String annotation.
 261       */
 262      StringValue?: String;
 263    }
 264    export type Annotations = {[key: string]: ValuesWithServiceIds};
 265    export interface AnomalousService {
 266      ServiceId?: ServiceId;
 267    }
 268    export type AnomalousServiceList = AnomalousService[];
 269    export type AttributeKey = string;
 270    export type AttributeMap = {[key: string]: AttributeValue};
 271    export type AttributeValue = string;
 272    export interface AvailabilityZoneDetail {
 273      /**
 274       * The name of a corresponding Availability Zone.
 275       */
 276      Name?: String;
 277    }
 278    export interface BackendConnectionErrors {
 279      /**
 280       * 
 281       */
 282      TimeoutCount?: NullableInteger;
 283      /**
 284       * 
 285       */
 286      ConnectionRefusedCount?: NullableInteger;
 287      /**
 288       * 
 289       */
 290      HTTPCode4XXCount?: NullableInteger;
 291      /**
 292       * 
 293       */
 294      HTTPCode5XXCount?: NullableInteger;
 295      /**
 296       * 
 297       */
 298      UnknownHostCount?: NullableInteger;
 299      /**
 300       * 
 301       */
 302      OtherCount?: NullableInteger;
 303    }
 304    export interface BatchGetTracesRequest {
 305      /**
 306       * Specify the trace IDs of requests for which to retrieve segments.
 307       */
 308      TraceIds: TraceIdList;
 309      /**
 310       * Pagination token.
 311       */
 312      NextToken?: String;
 313    }
 314    export interface BatchGetTracesResult {
 315      /**
 316       * Full traces for the specified requests.
 317       */
 318      Traces?: TraceList;
 319      /**
 320       * Trace IDs of requests that haven't been processed.
 321       */
 322      UnprocessedTraceIds?: UnprocessedTraceIdList;
 323      /**
 324       * Pagination token.
 325       */
 326      NextToken?: String;
 327    }
 328    export type Boolean = boolean;
 329    export type BorrowCount = number;
 330    export type ClientID = string;
 331    export interface CreateGroupRequest {
 332      /**
 333       * The case-sensitive name of the new group. Default is a reserved name and names must be unique.
 334       */
 335      GroupName: GroupName;
 336      /**
 337       * The filter expression defining criteria by which to group traces.
 338       */
 339      FilterExpression?: FilterExpression;
 340      /**
 341       * The structure containing configurations related to insights.   The InsightsEnabled boolean can be set to true to enable insights for the new group or false to disable insights for the new group.   The NotifcationsEnabled boolean can be set to true to enable insights notifications for the new group. Notifications may only be enabled on a group with InsightsEnabled set to true.  
 342       */
 343      InsightsConfiguration?: InsightsConfiguration;
 344      /**
 345       * A map that contains one or more tag keys and tag values to attach to an X-Ray group. For more information about ways to use tags, see Tagging AWS resources in the AWS General Reference. The following restrictions apply to tags:   Maximum number of user-applied tags per resource: 50   Maximum tag key length: 128 Unicode characters   Maximum tag value length: 256 Unicode characters   Valid values for key and value: a-z, A-Z, 0-9, space, and the following characters: _ . : / = + - and @   Tag keys and values are case sensitive.   Don't use aws: as a prefix for keys; it's reserved for AWS use.  
 346       */
 347      Tags?: TagList;
 348    }
 349    export interface CreateGroupResult {
 350      /**
 351       * The group that was created. Contains the name of the group that was created, the Amazon Resource Name (ARN) of the group that was generated based on the group name, the filter expression, and the insight configuration that was assigned to the group.
 352       */
 353      Group?: Group;
 354    }
 355    export interface CreateSamplingRuleRequest {
 356      /**
 357       * The rule definition.
 358       */
 359      SamplingRule: SamplingRule;
 360      /**
 361       * A map that contains one or more tag keys and tag values to attach to an X-Ray sampling rule. For more information about ways to use tags, see Tagging AWS resources in the AWS General Reference. The following restrictions apply to tags:   Maximum number of user-applied tags per resource: 50   Maximum tag key length: 128 Unicode characters   Maximum tag value length: 256 Unicode characters   Valid values for key and value: a-z, A-Z, 0-9, space, and the following characters: _ . : / = + - and @   Tag keys and values are case sensitive.   Don't use aws: as a prefix for keys; it's reserved for AWS use.  
 362       */
 363      Tags?: TagList;
 364    }
 365    export interface CreateSamplingRuleResult {
 366      /**
 367       * The saved rule definition and metadata.
 368       */
 369      SamplingRuleRecord?: SamplingRuleRecord;
 370    }
 371    export interface DeleteGroupRequest {
 372      /**
 373       * The case-sensitive name of the group.
 374       */
 375      GroupName?: GroupName;
 376      /**
 377       * The ARN of the group that was generated on creation.
 378       */
 379      GroupARN?: GroupARN;
 380    }
 381    export interface DeleteGroupResult {
 382    }
 383    export interface DeleteSamplingRuleRequest {
 384      /**
 385       * The name of the sampling rule. Specify a rule by either name or ARN, but not both.
 386       */
 387      RuleName?: String;
 388      /**
 389       * The ARN of the sampling rule. Specify a rule by either name or ARN, but not both.
 390       */
 391      RuleARN?: String;
 392    }
 393    export interface DeleteSamplingRuleResult {
 394      /**
 395       * The deleted rule definition and metadata.
 396       */
 397      SamplingRuleRecord?: SamplingRuleRecord;
 398    }
 399    export type Double = number;
 400    export type EC2InstanceId = string;
 401    export interface Edge {
 402      /**
 403       * Identifier of the edge. Unique within a service map.
 404       */
 405      ReferenceId?: NullableInteger;
 406      /**
 407       * The start time of the first segment on the edge.
 408       */
 409      StartTime?: Timestamp;
 410      /**
 411       * The end time of the last segment on the edge.
 412       */
 413      EndTime?: Timestamp;
 414      /**
 415       * Response statistics for segments on the edge.
 416       */
 417      SummaryStatistics?: EdgeStatistics;
 418      /**
 419       * A histogram that maps the spread of client response times on an edge.
 420       */
 421      ResponseTimeHistogram?: Histogram;
 422      /**
 423       * Aliases for the edge.
 424       */
 425      Aliases?: AliasList;
 426    }
 427    export type EdgeList = Edge[];
 428    export interface EdgeStatistics {
 429      /**
 430       * The number of requests that completed with a 2xx Success status code.
 431       */
 432      OkCount?: NullableLong;
 433      /**
 434       * Information about requests that failed with a 4xx Client Error status code.
 435       */
 436      ErrorStatistics?: ErrorStatistics;
 437      /**
 438       * Information about requests that failed with a 5xx Server Error status code.
 439       */
 440      FaultStatistics?: FaultStatistics;
 441      /**
 442       * The total number of completed requests.
 443       */
 444      TotalCount?: NullableLong;
 445      /**
 446       * The aggregate response time of completed requests.
 447       */
 448      TotalResponseTime?: NullableDouble;
 449    }
 450    export interface EncryptionConfig {
 451      /**
 452       * The ID of the customer master key (CMK) used for encryption, if applicable.
 453       */
 454      KeyId?: String;
 455      /**
 456       * The encryption status. While the status is UPDATING, X-Ray may encrypt data with a combination of the new and old settings.
 457       */
 458      Status?: EncryptionStatus;
 459      /**
 460       * The type of encryption. Set to KMS for encryption with CMKs. Set to NONE for default encryption.
 461       */
 462      Type?: EncryptionType;
 463    }
 464    export type EncryptionKeyId = string;
 465    export type EncryptionStatus = "UPDATING"|"ACTIVE"|string;
 466    export type EncryptionType = "NONE"|"KMS"|string;
 467    export type EntitySelectorExpression = string;
 468    export interface ErrorRootCause {
 469      /**
 470       * A list of services corresponding to an error. A service identifies a segment and it contains a name, account ID, type, and inferred flag.
 471       */
 472      Services?: ErrorRootCauseServices;
 473      /**
 474       * A flag that denotes that the root cause impacts the trace client.
 475       */
 476      ClientImpacting?: NullableBoolean;
 477    }
 478    export interface ErrorRootCauseEntity {
 479      /**
 480       * The name of the entity.
 481       */
 482      Name?: String;
 483      /**
 484       * The types and messages of the exceptions.
 485       */
 486      Exceptions?: RootCauseExceptions;
 487      /**
 488       * A flag that denotes a remote subsegment.
 489       */
 490      Remote?: NullableBoolean;
 491    }
 492    export type ErrorRootCauseEntityPath = ErrorRootCauseEntity[];
 493    export interface ErrorRootCauseService {
 494      /**
 495       * The service name.
 496       */
 497      Name?: String;
 498      /**
 499       * A collection of associated service names.
 500       */
 501      Names?: ServiceNames;
 502      /**
 503       * The type associated to the service.
 504       */
 505      Type?: String;
 506      /**
 507       * The account ID associated to the service.
 508       */
 509      AccountId?: String;
 510      /**
 511       * The path of root cause entities found on the service. 
 512       */
 513      EntityPath?: ErrorRootCauseEntityPath;
 514      /**
 515       * A Boolean value indicating if the service is inferred from the trace.
 516       */
 517      Inferred?: NullableBoolean;
 518    }
 519    export type ErrorRootCauseServices = ErrorRootCauseService[];
 520    export type ErrorRootCauses = ErrorRootCause[];
 521    export interface ErrorStatistics {
 522      /**
 523       * The number of requests that failed with a 419 throttling status code.
 524       */
 525      ThrottleCount?: NullableLong;
 526      /**
 527       * The number of requests that failed with untracked 4xx Client Error status codes.
 528       */
 529      OtherCount?: NullableLong;
 530      /**
 531       * The total number of requests that failed with a 4xx Client Error status code.
 532       */
 533      TotalCount?: NullableLong;
 534    }
 535    export type EventSummaryText = string;
 536    export interface FaultRootCause {
 537      /**
 538       * A list of corresponding services. A service identifies a segment and it contains a name, account ID, type, and inferred flag.
 539       */
 540      Services?: FaultRootCauseServices;
 541      /**
 542       * A flag that denotes that the root cause impacts the trace client.
 543       */
 544      ClientImpacting?: NullableBoolean;
 545    }
 546    export interface FaultRootCauseEntity {
 547      /**
 548       * The name of the entity.
 549       */
 550      Name?: String;
 551      /**
 552       * The types and messages of the exceptions.
 553       */
 554      Exceptions?: RootCauseExceptions;
 555      /**
 556       * A flag that denotes a remote subsegment.
 557       */
 558      Remote?: NullableBoolean;
 559    }
 560    export type FaultRootCauseEntityPath = FaultRootCauseEntity[];
 561    export interface FaultRootCauseService {
 562      /**
 563       * The service name.
 564       */
 565      Name?: String;
 566      /**
 567       * A collection of associated service names.
 568       */
 569      Names?: ServiceNames;
 570      /**
 571       * The type associated to the service.
 572       */
 573      Type?: String;
 574      /**
 575       * The account ID associated to the service.
 576       */
 577      AccountId?: String;
 578      /**
 579       * The path of root cause entities found on the service. 
 580       */
 581      EntityPath?: FaultRootCauseEntityPath;
 582      /**
 583       * A Boolean value indicating if the service is inferred from the trace.
 584       */
 585      Inferred?: NullableBoolean;
 586    }
 587    export type FaultRootCauseServices = FaultRootCauseService[];
 588    export type FaultRootCauses = FaultRootCause[];
 589    export interface FaultStatistics {
 590      /**
 591       * The number of requests that failed with untracked 5xx Server Error status codes.
 592       */
 593      OtherCount?: NullableLong;
 594      /**
 595       * The total number of requests that failed with a 5xx Server Error status code.
 596       */
 597      TotalCount?: NullableLong;
 598    }
 599    export type FilterExpression = string;
 600    export type FixedRate = number;
 601    export interface ForecastStatistics {
 602      /**
 603       * The upper limit of fault counts for a service.
 604       */
 605      FaultCountHigh?: NullableLong;
 606      /**
 607       * The lower limit of fault counts for a service.
 608       */
 609      FaultCountLow?: NullableLong;
 610    }
 611    export interface GetEncryptionConfigRequest {
 612    }
 613    export interface GetEncryptionConfigResult {
 614      /**
 615       * The encryption configuration document.
 616       */
 617      EncryptionConfig?: EncryptionConfig;
 618    }
 619    export interface GetGroupRequest {
 620      /**
 621       * The case-sensitive name of the group.
 622       */
 623      GroupName?: GroupName;
 624      /**
 625       * The ARN of the group that was generated on creation.
 626       */
 627      GroupARN?: GroupARN;
 628    }
 629    export interface GetGroupResult {
 630      /**
 631       * The group that was requested. Contains the name of the group, the ARN of the group, the filter expression, and the insight configuration assigned to the group.
 632       */
 633      Group?: Group;
 634    }
 635    export type GetGroupsNextToken = string;
 636    export interface GetGroupsRequest {
 637      /**
 638       * Pagination token.
 639       */
 640      NextToken?: GetGroupsNextToken;
 641    }
 642    export interface GetGroupsResult {
 643      /**
 644       * The collection of all active groups.
 645       */
 646      Groups?: GroupSummaryList;
 647      /**
 648       * Pagination token.
 649       */
 650      NextToken?: String;
 651    }
 652    export type GetInsightEventsMaxResults = number;
 653    export interface GetInsightEventsRequest {
 654      /**
 655       * The insight's unique identifier. Use the GetInsightSummaries action to retrieve an InsightId.
 656       */
 657      InsightId: InsightId;
 658      /**
 659       * Used to retrieve at most the specified value of events.
 660       */
 661      MaxResults?: GetInsightEventsMaxResults;
 662      /**
 663       * Specify the pagination token returned by a previous request to retrieve the next page of events. 
 664       */
 665      NextToken?: Token;
 666    }
 667    export interface GetInsightEventsResult {
 668      /**
 669       * A detailed description of the event. This includes the time of the event, client and root cause impact statistics, and the top anomalous service at the time of the event.
 670       */
 671      InsightEvents?: InsightEventList;
 672      /**
 673       * Use this token to retrieve the next page of insight events.
 674       */
 675      NextToken?: Token;
 676    }
 677    export interface GetInsightImpactGraphRequest {
 678      /**
 679       * The insight's unique identifier. Use the GetInsightSummaries action to retrieve an InsightId.
 680       */
 681      InsightId: InsightId;
 682      /**
 683       * The estimated start time of the insight, in Unix time seconds. The StartTime is inclusive of the value provided and can't be more than 30 days old.
 684       */
 685      StartTime: Timestamp;
 686      /**
 687       * The estimated end time of the insight, in Unix time seconds. The EndTime is exclusive of the value provided. The time range between the start time and end time can't be more than six hours. 
 688       */
 689      EndTime: Timestamp;
 690      /**
 691       * Specify the pagination token returned by a previous request to retrieve the next page of results. 
 692       */
 693      NextToken?: Token;
 694    }
 695    export interface GetInsightImpactGraphResult {
 696      /**
 697       * The insight's unique identifier.
 698       */
 699      InsightId?: InsightId;
 700      /**
 701       * The provided start time.
 702       */
 703      StartTime?: Timestamp;
 704      /**
 705       * The provided end time. 
 706       */
 707      EndTime?: Timestamp;
 708      /**
 709       * The time, in Unix seconds, at which the service graph started.
 710       */
 711      ServiceGraphStartTime?: Timestamp;
 712      /**
 713       * The time, in Unix seconds, at which the service graph ended.
 714       */
 715      ServiceGraphEndTime?: Timestamp;
 716      /**
 717       * The AWS instrumented services related to the insight.
 718       */
 719      Services?: InsightImpactGraphServiceList;
 720      /**
 721       * Pagination token.
 722       */
 723      NextToken?: Token;
 724    }
 725    export interface GetInsightRequest {
 726      /**
 727       * The insight's unique identifier. Use the GetInsightSummaries action to retrieve an InsightId.
 728       */
 729      InsightId: InsightId;
 730    }
 731    export interface GetInsightResult {
 732      /**
 733       * The summary information of an insight.
 734       */
 735      Insight?: Insight;
 736    }
 737    export type GetInsightSummariesMaxResults = number;
 738    export interface GetInsightSummariesRequest {
 739      /**
 740       * The list of insight states. 
 741       */
 742      States?: InsightStateList;
 743      /**
 744       * The Amazon Resource Name (ARN) of the group. Required if the GroupName isn't provided.
 745       */
 746      GroupARN?: GroupARN;
 747      /**
 748       * The name of the group. Required if the GroupARN isn't provided.
 749       */
 750      GroupName?: GroupName;
 751      /**
 752       * The beginning of the time frame in which the insights started. The start time can't be more than 30 days old.
 753       */
 754      StartTime: Timestamp;
 755      /**
 756       * The end of the time frame in which the insights ended. The end time can't be more than 30 days old.
 757       */
 758      EndTime: Timestamp;
 759      /**
 760       * The maximum number of results to display.
 761       */
 762      MaxResults?: GetInsightSummariesMaxResults;
 763      /**
 764       * Pagination token.
 765       */
 766      NextToken?: Token;
 767    }
 768    export interface GetInsightSummariesResult {
 769      /**
 770       * The summary of each insight within the group matching the provided filters. The summary contains the InsightID, start and end time, the root cause service, the root cause and client impact statistics, the top anomalous services, and the status of the insight.
 771       */
 772      InsightSummaries?: InsightSummaryList;
 773      /**
 774       * Pagination token.
 775       */
 776      NextToken?: Token;
 777    }
 778    export interface GetSamplingRulesRequest {
 779      /**
 780       * Pagination token.
 781       */
 782      NextToken?: String;
 783    }
 784    export interface GetSamplingRulesResult {
 785      /**
 786       * Rule definitions and metadata.
 787       */
 788      SamplingRuleRecords?: SamplingRuleRecordList;
 789      /**
 790       * Pagination token.
 791       */
 792      NextToken?: String;
 793    }
 794    export interface GetSamplingStatisticSummariesRequest {
 795      /**
 796       * Pagination token.
 797       */
 798      NextToken?: String;
 799    }
 800    export interface GetSamplingStatisticSummariesResult {
 801      /**
 802       * Information about the number of requests instrumented for each sampling rule.
 803       */
 804      SamplingStatisticSummaries?: SamplingStatisticSummaryList;
 805      /**
 806       * Pagination token.
 807       */
 808      NextToken?: String;
 809    }
 810    export interface GetSamplingTargetsRequest {
 811      /**
 812       * Information about rules that the service is using to sample requests.
 813       */
 814      SamplingStatisticsDocuments: SamplingStatisticsDocumentList;
 815    }
 816    export interface GetSamplingTargetsResult {
 817      /**
 818       * Updated rules that the service should use to sample requests.
 819       */
 820      SamplingTargetDocuments?: SamplingTargetDocumentList;
 821      /**
 822       * The last time a user changed the sampling rule configuration. If the sampling rule configuration changed since the service last retrieved it, the service should call GetSamplingRules to get the latest version.
 823       */
 824      LastRuleModification?: Timestamp;
 825      /**
 826       * Information about SamplingStatisticsDocument that X-Ray could not process.
 827       */
 828      UnprocessedStatistics?: UnprocessedStatisticsList;
 829    }
 830    export interface GetServiceGraphRequest {
 831      /**
 832       * The start of the time frame for which to generate a graph.
 833       */
 834      StartTime: Timestamp;
 835      /**
 836       * The end of the timeframe for which to generate a graph.
 837       */
 838      EndTime: Timestamp;
 839      /**
 840       * The name of a group based on which you want to generate a graph.
 841       */
 842      GroupName?: GroupName;
 843      /**
 844       * The Amazon Resource Name (ARN) of a group based on which you want to generate a graph.
 845       */
 846      GroupARN?: GroupARN;
 847      /**
 848       * Pagination token.
 849       */
 850      NextToken?: String;
 851    }
 852    export interface GetServiceGraphResult {
 853      /**
 854       * The start of the time frame for which the graph was generated.
 855       */
 856      StartTime?: Timestamp;
 857      /**
 858       * The end of the time frame for which the graph was generated.
 859       */
 860      EndTime?: Timestamp;
 861      /**
 862       * The services that have processed a traced request during the specified time frame.
 863       */
 864      Services?: ServiceList;
 865      /**
 866       * A flag indicating whether the group's filter expression has been consistent, or if the returned service graph may show traces from an older version of the group's filter expression.
 867       */
 868      ContainsOldGroupVersions?: Boolean;
 869      /**
 870       * Pagination token.
 871       */
 872      NextToken?: String;
 873    }
 874    export interface GetTimeSeriesServiceStatisticsRequest {
 875      /**
 876       * The start of the time frame for which to aggregate statistics.
 877       */
 878      StartTime: Timestamp;
 879      /**
 880       * The end of the time frame for which to aggregate statistics.
 881       */
 882      EndTime: Timestamp;
 883      /**
 884       * The case-sensitive name of the group for which to pull statistics from.
 885       */
 886      GroupName?: GroupName;
 887      /**
 888       * The Amazon Resource Name (ARN) of the group for which to pull statistics from.
 889       */
 890      GroupARN?: GroupARN;
 891      /**
 892       * A filter expression defining entities that will be aggregated for statistics. Supports ID, service, and edge functions. If no selector expression is specified, edge statistics are returned. 
 893       */
 894      EntitySelectorExpression?: EntitySelectorExpression;
 895      /**
 896       * Aggregation period in seconds.
 897       */
 898      Period?: NullableInteger;
 899      /**
 900       * The forecasted high and low fault count values. Forecast enabled requests require the EntitySelectorExpression ID be provided.
 901       */
 902      ForecastStatistics?: NullableBoolean;
 903      /**
 904       * Pagination token.
 905       */
 906      NextToken?: String;
 907    }
 908    export interface GetTimeSeriesServiceStatisticsResult {
 909      /**
 910       * The collection of statistics.
 911       */
 912      TimeSeriesServiceStatistics?: TimeSeriesServiceStatisticsList;
 913      /**
 914       * A flag indicating whether or not a group's filter expression has been consistent, or if a returned aggregation might show statistics from an older version of the group's filter expression.
 915       */
 916      ContainsOldGroupVersions?: Boolean;
 917      /**
 918       * Pagination token.
 919       */
 920      NextToken?: String;
 921    }
 922    export interface GetTraceGraphRequest {
 923      /**
 924       * Trace IDs of requests for which to generate a service graph.
 925       */
 926      TraceIds: TraceIdList;
 927      /**
 928       * Pagination token.
 929       */
 930      NextToken?: String;
 931    }
 932    export interface GetTraceGraphResult {
 933      /**
 934       * The services that have processed one of the specified requests.
 935       */
 936      Services?: ServiceList;
 937      /**
 938       * Pagination token.
 939       */
 940      NextToken?: String;
 941    }
 942    export interface GetTraceSummariesRequest {
 943      /**
 944       * The start of the time frame for which to retrieve traces.
 945       */
 946      StartTime: Timestamp;
 947      /**
 948       * The end of the time frame for which to retrieve traces.
 949       */
 950      EndTime: Timestamp;
 951      /**
 952       * A parameter to indicate whether to query trace summaries by TraceId or Event time.
 953       */
 954      TimeRangeType?: TimeRangeType;
 955      /**
 956       * Set to true to get summaries for only a subset of available traces.
 957       */
 958      Sampling?: NullableBoolean;
 959      /**
 960       * A parameter to indicate whether to enable sampling on trace summaries. Input parameters are Name and Value.
 961       */
 962      SamplingStrategy?: SamplingStrategy;
 963      /**
 964       * Specify a filter expression to retrieve trace summaries for services or requests that meet certain requirements.
 965       */
 966      FilterExpression?: FilterExpression;
 967      /**
 968       * Specify the pagination token returned by a previous request to retrieve the next page of results.
 969       */
 970      NextToken?: String;
 971    }
 972    export interface GetTraceSummariesResult {
 973      /**
 974       * Trace IDs and annotations for traces that were found in the specified time frame.
 975       */
 976      TraceSummaries?: TraceSummaryList;
 977      /**
 978       * The start time of this page of results.
 979       */
 980      ApproximateTime?: Timestamp;
 981      /**
 982       * The total number of traces processed, including traces that did not match the specified filter expression.
 983       */
 984      TracesProcessedCount?: NullableLong;
 985      /**
 986       * 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 recent results, closest to the end of the time frame.
 987       */
 988      NextToken?: String;
 989    }
 990    export interface Group {
 991      /**
 992       * The unique case-sensitive name of the group.
 993       */
 994      GroupName?: String;
 995      /**
 996       * The Amazon Resource Name (ARN) of the group generated based on the GroupName.
 997       */
 998      GroupARN?: String;
 999      /**
1000       * The filter expression defining the parameters to include traces.
1001       */
1002      FilterExpression?: String;
1003      /**
1004       * The structure containing configurations related to insights.   The InsightsEnabled boolean can be set to true to enable insights for the group or false to disable insights for the group.   The NotifcationsEnabled boolean can be set to true to enable insights notifications through Amazon EventBridge for the group.  
1005       */
1006      InsightsConfiguration?: InsightsConfiguration;
1007    }
1008    export type GroupARN = string;
1009    export type GroupName = string;
1010    export interface GroupSummary {
1011      /**
1012       * The unique case-sensitive name of the group.
1013       */
1014      GroupName?: String;
1015      /**
1016       * The ARN of the group generated based on the GroupName.
1017       */
1018      GroupARN?: String;
1019      /**
1020       * The filter expression defining the parameters to include traces.
1021       */
1022      FilterExpression?: String;
1023      /**
1024       * The structure containing configurations related to insights.   The InsightsEnabled boolean can be set to true to enable insights for the group or false to disable insights for the group.   The NotificationsEnabled boolean can be set to true to enable insights notifications. Notifications can only be enabled on a group with InsightsEnabled set to true.  
1025       */
1026      InsightsConfiguration?: InsightsConfiguration;
1027    }
1028    export type GroupSummaryList = GroupSummary[];
1029    export type HTTPMethod = string;
1030    export type Histogram = HistogramEntry[];
1031    export interface HistogramEntry {
1032      /**
1033       * The value of the entry.
1034       */
1035      Value?: Double;
1036      /**
1037       * The prevalence of the entry.
1038       */
1039      Count?: Integer;
1040    }
1041    export type Host = string;
1042    export type Hostname = string;
1043    export interface Http {
1044      /**
1045       * The request URL.
1046       */
1047      HttpURL?: String;
1048      /**
1049       * The response status.
1050       */
1051      HttpStatus?: NullableInteger;
1052      /**
1053       * The request method.
1054       */
1055      HttpMethod?: String;
1056      /**
1057       * The request's user agent string.
1058       */
1059      UserAgent?: String;
1060      /**
1061       * The IP address of the requestor.
1062       */
1063      ClientIp?: String;
1064    }
1065    export interface Insight {
1066      /**
1067       * The insights unique identifier. 
1068       */
1069      InsightId?: InsightId;
1070      /**
1071       * The Amazon Resource Name (ARN) of the group that the insight belongs to.
1072       */
1073      GroupARN?: GroupARN;
1074      /**
1075       * The name of the group that the insight belongs to.
1076       */
1077      GroupName?: GroupName;
1078      RootCauseServiceId?: ServiceId;
1079      /**
1080       * The categories that label and describe the type of insight.
1081       */
1082      Categories?: InsightCategoryList;
1083      /**
1084       * The current state of the insight.
1085       */
1086      State?: InsightState;
1087      /**
1088       * The time, in Unix seconds, at which the insight began.
1089       */
1090      StartTime?: Timestamp;
1091      /**
1092       * The time, in Unix seconds, at which the insight ended.
1093       */
1094      EndTime?: Timestamp;
1095      /**
1096       * A brief description of the insight.
1097       */
1098      Summary?: InsightSummaryText;
1099      /**
1100       * The impact statistics of the client side service. This includes the number of requests to the client service and whether the requests were faults or okay.
1101       */
1102      ClientRequestImpactStatistics?: RequestImpactStatistics;
1103      /**
1104       * The impact statistics of the root cause service. This includes the number of requests to the client service and whether the requests were faults or okay.
1105       */
1106      RootCauseServiceRequestImpactStatistics?: RequestImpactStatistics;
1107      /**
1108       * The service within the insight that is most impacted by the incident.
1109       */
1110      TopAnomalousServices?: AnomalousServiceList;
1111    }
1112    export type InsightCategory = "FAULT"|string;
1113    export type InsightCategoryList = InsightCategory[];
1114    export interface InsightEvent {
1115      /**
1116       * A brief description of the event.
1117       */
1118      Summary?: EventSummaryText;
1119      /**
1120       * The time, in Unix seconds, at which the event was recorded.
1121       */
1122      EventTime?: Timestamp;
1123      /**
1124       * The impact statistics of the client side service. This includes the number of requests to the client service and whether the requests were faults or okay.
1125       */
1126      ClientRequestImpactStatistics?: RequestImpactStatistics;
1127      /**
1128       * The impact statistics of the root cause service. This includes the number of requests to the client service and whether the requests were faults or okay.
1129       */
1130      RootCauseServiceRequestImpactStatistics?: RequestImpactStatistics;
1131      /**
1132       * The service during the event that is most impacted by the incident.
1133       */
1134      TopAnomalousServices?: AnomalousServiceList;
1135    }
1136    export type InsightEventList = InsightEvent[];
1137    export type InsightId = string;
1138    export interface InsightImpactGraphEdge {
1139      /**
1140       * Identifier of the edge. Unique within a service map.
1141       */
1142      ReferenceId?: NullableInteger;
1143    }
1144    export type InsightImpactGraphEdgeList = InsightImpactGraphEdge[];
1145    export interface InsightImpactGraphService {
1146      /**
1147       * Identifier for the service. Unique within the service map.
1148       */
1149      ReferenceId?: NullableInteger;
1150      /**
1151       * Identifier for the service. Unique within the service map.   AWS Resource - The type of an AWS resource. For example, AWS::EC2::Instance for an application running on Amazon EC2 or AWS::DynamoDB::Table for an Amazon DynamoDB table that the application used.    AWS Service - The type of an AWS service. For example, AWS::DynamoDB for downstream calls to Amazon DynamoDB that didn't target a specific table.    AWS Service - The type of an AWS service. For example, AWS::DynamoDB for downstream calls to Amazon DynamoDB that didn't target a specific table.    remote - A downstream service of indeterminate type.  
1152       */
1153      Type?: String;
1154      /**
1155       * The canonical name of the service.
1156       */
1157      Name?: String;
1158      /**
1159       * A list of names for the service, including the canonical name.
1160       */
1161      Names?: ServiceNames;
1162      /**
1163       * Identifier of the AWS account in which the service runs.
1164       */
1165      AccountId?: String;
1166      /**
1167       * Connections to downstream services.
1168       */
1169      Edges?: InsightImpactGraphEdgeList;
1170    }
1171    export type InsightImpactGraphServiceList = InsightImpactGraphService[];
1172    export type InsightState = "ACTIVE"|"CLOSED"|string;
1173    export type InsightStateList = InsightState[];
1174    export interface InsightSummary {
1175      /**
1176       * The insights unique identifier. 
1177       */
1178      InsightId?: InsightId;
1179      /**
1180       * The Amazon Resource Name (ARN) of the group that the insight belongs to.
1181       */
1182      GroupARN?: GroupARN;
1183      /**
1184       * The name of the group that the insight belongs to.
1185       */
1186      GroupName?: GroupName;
1187      RootCauseServiceId?: ServiceId;
1188      /**
1189       *  Categories The categories that label and describe the type of insight.
1190       */
1191      Categories?: InsightCategoryList;
1192      /**
1193       * The current state of the insight.
1194       */
1195      State?: InsightState;
1196      /**
1197       * The time, in Unix seconds, at which the insight began.
1198       */
1199      StartTime?: Timestamp;
1200      /**
1201       * The time, in Unix seconds, at which the insight ended.
1202       */
1203      EndTime?: Timestamp;
1204      /**
1205       * A brief description of the insight.
1206       */
1207      Summary?: InsightSummaryText;
1208      /**
1209       * The impact statistics of the client side service. This includes the number of requests to the client service and whether the requests were faults or okay. 
1210       */
1211      ClientRequestImpactStatistics?: RequestImpactStatistics;
1212      /**
1213       * The impact statistics of the root cause service. This includes the number of requests to the client service and whether the requests were faults or okay. 
1214       */
1215      RootCauseServiceRequestImpactStatistics?: RequestImpactStatistics;
1216      /**
1217       * The service within the insight that is most impacted by the incident.
1218       */
1219      TopAnomalousServices?: AnomalousServiceList;
1220      /**
1221       * The time, in Unix seconds, that the insight was last updated.
1222       */
1223      LastUpdateTime?: Timestamp;
1224    }
1225    export type InsightSummaryList = InsightSummary[];
1226    export type InsightSummaryText = string;
1227    export interface InsightsConfiguration {
1228      /**
1229       * Set the InsightsEnabled value to true to enable insights or false to disable insights.
1230       */
1231      InsightsEnabled?: NullableBoolean;
1232      /**
1233       * Set the NotificationsEnabled value to true to enable insights notifications. Notifications can only be enabled on a group with InsightsEnabled set to true.
1234       */
1235      NotificationsEnabled?: NullableBoolean;
1236    }
1237    export interface InstanceIdDetail {
1238      /**
1239       * The ID of a corresponding EC2 instance.
1240       */
1241      Id?: String;
1242    }
1243    export type Integer = number;
1244    export interface ListTagsForResourceRequest {
1245      /**
1246       * The Amazon Resource Number (ARN) of an X-Ray group or sampling rule.
1247       */
1248      ResourceARN: AmazonResourceName;
1249      /**
1250       * A pagination token. If multiple pages of results are returned, use the NextToken value returned with the current page of results as the value of this parameter to get the next page of results.
1251       */
1252      NextToken?: String;
1253    }
1254    export interface ListTagsForResourceResponse {
1255      /**
1256       * A list of tags, as key and value pairs, that is associated with the specified X-Ray group or sampling rule.
1257       */
1258      Tags?: TagList;
1259      /**
1260       * A pagination token. If multiple pages of results are returned, use the NextToken value returned with the current page of results to get the next page of results.
1261       */
1262      NextToken?: String;
1263    }
1264    export type NullableBoolean = boolean;
1265    export type NullableDouble = number;
1266    export type NullableInteger = number;
1267    export type NullableLong = number;
1268    export type Priority = number;
1269    export interface PutEncryptionConfigRequest {
1270      /**
1271       * An AWS KMS customer master key (CMK) in one of the following formats:    Alias - The name of the key. For example, alias/MyKey.    Key ID - The KMS key ID of the key. For example, ae4aa6d49-a4d8-9df9-a475-4ff6d7898456. AWS X-Ray does not support asymmetric CMKs.    ARN - The full Amazon Resource Name of the key ID or alias. For example, arn:aws:kms:us-east-2:123456789012:key/ae4aa6d49-a4d8-9df9-a475-4ff6d7898456. Use this format to specify a key in a different account.   Omit this key if you set Type to NONE.
1272       */
1273      KeyId?: EncryptionKeyId;
1274      /**
1275       * The type of encryption. Set to KMS to use your own key for encryption. Set to NONE for default encryption.
1276       */
1277      Type: EncryptionType;
1278    }
1279    export interface PutEncryptionConfigResult {
1280      /**
1281       * The new encryption configuration.
1282       */
1283      EncryptionConfig?: EncryptionConfig;
1284    }
1285    export interface PutTelemetryRecordsRequest {
1286      /**
1287       * 
1288       */
1289      TelemetryRecords: TelemetryRecordList;
1290      /**
1291       * 
1292       */
1293      EC2InstanceId?: EC2InstanceId;
1294      /**
1295       * 
1296       */
1297      Hostname?: Hostname;
1298      /**
1299       * 
1300       */
1301      ResourceARN?: ResourceARN;
1302    }
1303    export interface PutTelemetryRecordsResult {
1304    }
1305    export interface PutTraceSegmentsRequest {
1306      /**
1307       * A string containing a JSON document defining one or more segments or subsegments.
1308       */
1309      TraceSegmentDocuments: TraceSegmentDocumentList;
1310    }
1311    export interface PutTraceSegmentsResult {
1312      /**
1313       * Segments that failed processing.
1314       */
1315      UnprocessedTraceSegments?: UnprocessedTraceSegmentList;
1316    }
1317    export type RequestCount = number;
1318    export interface RequestImpactStatistics {
1319      /**
1320       * The number of requests that have resulted in a fault,
1321       */
1322      FaultCount?: NullableLong;
1323      /**
1324       * The number of successful requests.
1325       */
1326      OkCount?: NullableLong;
1327      /**
1328       * The total number of requests to the service.
1329       */
1330      TotalCount?: NullableLong;
1331    }
1332    export type ReservoirSize = number;
1333    export type ResourceARN = string;
1334    export interface ResourceARNDetail {
1335      /**
1336       * The ARN of a corresponding resource.
1337       */
1338      ARN?: String;
1339    }
1340    export interface ResponseTimeRootCause {
1341      /**
1342       * A list of corresponding services. A service identifies a segment and contains a name, account ID, type, and inferred flag.
1343       */
1344      Services?: ResponseTimeRootCauseServices;
1345      /**
1346       * A flag that denotes that the root cause impacts the trace client.
1347       */
1348      ClientImpacting?: NullableBoolean;
1349    }
1350    export interface ResponseTimeRootCauseEntity {
1351      /**
1352       * The name of the entity.
1353       */
1354      Name?: String;
1355      /**
1356       * The type and messages of the exceptions.
1357       */
1358      Coverage?: NullableDouble;
1359      /**
1360       * A flag that denotes a remote subsegment.
1361       */
1362      Remote?: NullableBoolean;
1363    }
1364    export type ResponseTimeRootCauseEntityPath = ResponseTimeRootCauseEntity[];
1365    export interface ResponseTimeRootCauseService {
1366      /**
1367       * The service name.
1368       */
1369      Name?: String;
1370      /**
1371       * A collection of associated service names.
1372       */
1373      Names?: ServiceNames;
1374      /**
1375       * The type associated to the service.
1376       */
1377      Type?: String;
1378      /**
1379       * The account ID associated to the service.
1380       */
1381      AccountId?: String;
1382      /**
1383       * The path of root cause entities found on the service. 
1384       */
1385      EntityPath?: ResponseTimeRootCauseEntityPath;
1386      /**
1387       * A Boolean value indicating if the service is inferred from the trace.
1388       */
1389      Inferred?: NullableBoolean;
1390    }
1391    export type ResponseTimeRootCauseServices = ResponseTimeRootCauseService[];
1392    export type ResponseTimeRootCauses = ResponseTimeRootCause[];
1393    export interface RootCauseException {
1394      /**
1395       * The name of the exception.
1396       */
1397      Name?: String;
1398      /**
1399       * The message of the exception.
1400       */
1401      Message?: String;
1402    }
1403    export type RootCauseExceptions = RootCauseException[];
1404    export type RuleName = string;
1405    export type SampledCount = number;
1406    export interface SamplingRule {
1407      /**
1408       * The name of the sampling rule. Specify a rule by either name or ARN, but not both.
1409       */
1410      RuleName?: RuleName;
1411      /**
1412       * The ARN of the sampling rule. Specify a rule by either name or ARN, but not both.
1413       */
1414      RuleARN?: String;
1415      /**
1416       * Matches the ARN of the AWS resource on which the service runs.
1417       */
1418      ResourceARN: ResourceARN;
1419      /**
1420       * The priority of the sampling rule.
1421       */
1422      Priority: Priority;
1423      /**
1424       * The percentage of matching requests to instrument, after the reservoir is exhausted.
1425       */
1426      FixedRate: FixedRate;
1427      /**
1428       * A fixed number of matching requests to instrument per second, prior to applying the fixed rate. The reservoir is not used directly by services, but applies to all services using the rule collectively.
1429       */
1430      ReservoirSize: ReservoirSize;
1431      /**
1432       * Matches the name that the service uses to identify itself in segments.
1433       */
1434      ServiceName: ServiceName;
1435      /**
1436       * Matches the origin that the service uses to identify its type in segments.
1437       */
1438      ServiceType: ServiceType;
1439      /**
1440       * Matches the hostname from a request URL.
1441       */
1442      Host: Host;
1443      /**
1444       * Matches the HTTP method of a request.
1445       */
1446      HTTPMethod: HTTPMethod;
1447      /**
1448       * Matches the path from a request URL.
1449       */
1450      URLPath: URLPath;
1451      /**
1452       * The version of the sampling rule format (1).
1453       */
1454      Version: Version;
1455      /**
1456       * Matches attributes derived from the request.
1457       */
1458      Attributes?: AttributeMap;
1459    }
1460    export interface SamplingRuleRecord {
1461      /**
1462       * The sampling rule.
1463       */
1464      SamplingRule?: SamplingRule;
1465      /**
1466       * When the rule was created.
1467       */
1468      CreatedAt?: Timestamp;
1469      /**
1470       * When the rule was last modified.
1471       */
1472      ModifiedAt?: Timestamp;
1473    }
1474    export type SamplingRuleRecordList = SamplingRuleRecord[];
1475    export interface SamplingRuleUpdate {
1476      /**
1477       * The name of the sampling rule. Specify a rule by either name or ARN, but not both.
1478       */
1479      RuleName?: RuleName;
1480      /**
1481       * The ARN of the sampling rule. Specify a rule by either name or ARN, but not both.
1482       */
1483      RuleARN?: String;
1484      /**
1485       * Matches the ARN of the AWS resource on which the service runs.
1486       */
1487      ResourceARN?: ResourceARN;
1488      /**
1489       * The priority of the sampling rule.
1490       */
1491      Priority?: NullableInteger;
1492      /**
1493       * The percentage of matching requests to instrument, after the reservoir is exhausted.
1494       */
1495      FixedRate?: NullableDouble;
1496      /**
1497       * A fixed number of matching requests to instrument per second, prior to applying the fixed rate. The reservoir is not used directly by services, but applies to all services using the rule collectively.
1498       */
1499      ReservoirSize?: NullableInteger;
1500      /**
1501       * Matches the hostname from a request URL.
1502       */
1503      Host?: Host;
1504      /**
1505       * Matches the name that the service uses to identify itself in segments.
1506       */
1507      ServiceName?: ServiceName;
1508      /**
1509       * Matches the origin that the service uses to identify its type in segments.
1510       */
1511      ServiceType?: ServiceType;
1512      /**
1513       * Matches the HTTP method of a request.
1514       */
1515      HTTPMethod?: HTTPMethod;
1516      /**
1517       * Matches the path from a request URL.
1518       */
1519      URLPath?: URLPath;
1520      /**
1521       * Matches attributes derived from the request.
1522       */
1523      Attributes?: AttributeMap;
1524    }
1525    export interface SamplingStatisticSummary {
1526      /**
1527       * The name of the sampling rule.
1528       */
1529      RuleName?: String;
1530      /**
1531       * The start time of the reporting window.
1532       */
1533      Timestamp?: Timestamp;
1534      /**
1535       * The number of requests that matched the rule.
1536       */
1537      RequestCount?: Integer;
1538      /**
1539       * The number of requests recorded with borrowed reservoir quota.
1540       */
1541      BorrowCount?: Integer;
1542      /**
1543       * The number of requests recorded.
1544       */
1545      SampledCount?: Integer;
1546    }
1547    export type SamplingStatisticSummaryList = SamplingStatisticSummary[];
1548    export interface SamplingStatisticsDocument {
1549      /**
1550       * The name of the sampling rule.
1551       */
1552      RuleName: RuleName;
1553      /**
1554       * A unique identifier for the service in hexadecimal.
1555       */
1556      ClientID: ClientID;
1557      /**
1558       * The current time.
1559       */
1560      Timestamp: Timestamp;
1561      /**
1562       * The number of requests that matched the rule.
1563       */
1564      RequestCount: RequestCount;
1565      /**
1566       * The number of requests recorded.
1567       */
1568      SampledCount: SampledCount;
1569      /**
1570       * The number of requests recorded with borrowed reservoir quota.
1571       */
1572      BorrowCount?: BorrowCount;
1573    }
1574    export type SamplingStatisticsDocumentList = SamplingStatisticsDocument[];
1575    export interface SamplingStrategy {
1576      /**
1577       * The name of a sampling rule.
1578       */
1579      Name?: SamplingStrategyName;
1580      /**
1581       * The value of a sampling rule.
1582       */
1583      Value?: NullableDouble;
1584    }
1585    export type SamplingStrategyName = "PartialScan"|"FixedRate"|string;
1586    export interface SamplingTargetDocument {
1587      /**
1588       * The name of the sampling rule.
1589       */
1590      RuleName?: String;
1591      /**
1592       * The percentage of matching requests to instrument, after the reservoir is exhausted.
1593       */
1594      FixedRate?: Double;
1595      /**
1596       * The number of requests per second that X-Ray allocated for this service.
1597       */
1598      ReservoirQuota?: NullableInteger;
1599      /**
1600       * When the reservoir quota expires.
1601       */
1602      ReservoirQuotaTTL?: Timestamp;
1603      /**
1604       * The number of seconds for the service to wait before getting sampling targets again.
1605       */
1606      Interval?: NullableInteger;
1607    }
1608    export type SamplingTargetDocumentList = SamplingTargetDocument[];
1609    export interface Segment {
1610      /**
1611       * The segment's ID.
1612       */
1613      Id?: SegmentId;
1614      /**
1615       * The segment document.
1616       */
1617      Document?: SegmentDocument;
1618    }
1619    export type SegmentDocument = string;
1620    export type SegmentId = string;
1621    export type SegmentList = Segment[];
1622    export interface Service {
1623      /**
1624       * Identifier for the service. Unique within the service map.
1625       */
1626      ReferenceId?: NullableInteger;
1627      /**
1628       * The canonical name of the service.
1629       */
1630      Name?: String;
1631      /**
1632       * A list of names for the service, including the canonical name.
1633       */
1634      Names?: ServiceNames;
1635      /**
1636       * Indicates that the service was the first service to process a request.
1637       */
1638      Root?: NullableBoolean;
1639      /**
1640       * Identifier of the AWS account in which the service runs.
1641       */
1642      AccountId?: String;
1643      /**
1644       * The type of service.   AWS Resource - The type of an AWS resource. For example, AWS::EC2::Instance for an application running on Amazon EC2 or AWS::DynamoDB::Table for an Amazon DynamoDB table that the application used.   AWS Service - The type of an AWS service. For example, AWS::DynamoDB for downstream calls to Amazon DynamoDB that didn't target a specific table.    client - Represents the clients that sent requests to a root service.    remote - A downstream service of indeterminate type.  
1645       */
1646      Type?: String;
1647      /**
1648       * The service's state.
1649       */
1650      State?: String;
1651      /**
1652       * The start time of the first segment that the service generated.
1653       */
1654      StartTime?: Timestamp;
1655      /**
1656       * The end time of the last segment that the service generated.
1657       */
1658      EndTime?: Timestamp;
1659      /**
1660       * Connections to downstream services.
1661       */
1662      Edges?: EdgeList;
1663      /**
1664       * Aggregated statistics for the service.
1665       */
1666      SummaryStatistics?: ServiceStatistics;
1667      /**
1668       * A histogram that maps the spread of service durations.
1669       */
1670      DurationHistogram?: Histogram;
1671      /**
1672       * A histogram that maps the spread of service response times.
1673       */
1674      ResponseTimeHistogram?: Histogram;
1675    }
1676    export interface ServiceId {
1677      /**
1678       * 
1679       */
1680      Name?: String;
1681      /**
1682       * 
1683       */
1684      Names?: ServiceNames;
1685      /**
1686       * 
1687       */
1688      AccountId?: String;
1689      /**
1690       * 
1691       */
1692      Type?: String;
1693    }
1694    export type ServiceIds = ServiceId[];
1695    export type ServiceList = Service[];
1696    export type ServiceName = string;
1697    export type ServiceNames = String[];
1698    export interface ServiceStatistics {
1699      /**
1700       * The number of requests that completed with a 2xx Success status code.
1701       */
1702      OkCount?: NullableLong;
1703      /**
1704       * Information about requests that failed with a 4xx Client Error status code.
1705       */
1706      ErrorStatistics?: ErrorStatistics;
1707      /**
1708       * Information about requests that failed with a 5xx Server Error status code.
1709       */
1710      FaultStatistics?: FaultStatistics;
1711      /**
1712       * The total number of completed requests.
1713       */
1714      TotalCount?: NullableLong;
1715      /**
1716       * The aggregate response time of completed requests.
1717       */
1718      TotalResponseTime?: NullableDouble;
1719    }
1720    export type ServiceType = string;
1721    export type String = string;
1722    export interface Tag {
1723      /**
1724       * A tag key, such as Stage or Name. A tag key cannot be empty. The key can be a maximum of 128 characters, and can contain only Unicode letters, numbers, or separators, or the following special characters: + - = . _ : / 
1725       */
1726      Key: TagKey;
1727      /**
1728       * An optional tag value, such as Production or test-only. The value can be a maximum of 255 characters, and contain only Unicode letters, numbers, or separators, or the following special characters: + - = . _ : / 
1729       */
1730      Value: TagValue;
1731    }
1732    export type TagKey = string;
1733    export type TagKeyList = TagKey[];
1734    export type TagList = Tag[];
1735    export interface TagResourceRequest {
1736      /**
1737       * The Amazon Resource Number (ARN) of an X-Ray group or sampling rule.
1738       */
1739      ResourceARN: AmazonResourceName;
1740      /**
1741       * A map that contains one or more tag keys and tag values to attach to an X-Ray group or sampling rule. For more information about ways to use tags, see Tagging AWS resources in the AWS General Reference. The following restrictions apply to tags:   Maximum number of user-applied tags per resource: 50   Maximum tag key length: 128 Unicode characters   Maximum tag value length: 256 Unicode characters   Valid values for key and value: a-z, A-Z, 0-9, space, and the following characters: _ . : / = + - and @   Tag keys and values are case sensitive.   Don't use aws: as a prefix for keys; it's reserved for AWS use. You cannot edit or delete system tags.  
1742       */
1743      Tags: TagList;
1744    }
1745    export interface TagResourceResponse {
1746    }
1747    export type TagValue = string;
1748    export interface TelemetryRecord {
1749      /**
1750       * 
1751       */
1752      Timestamp: Timestamp;
1753      /**
1754       * 
1755       */
1756      SegmentsReceivedCount?: NullableInteger;
1757      /**
1758       * 
1759       */
1760      SegmentsSentCount?: NullableInteger;
1761      /**
1762       * 
1763       */
1764      SegmentsSpilloverCount?: NullableInteger;
1765      /**
1766       * 
1767       */
1768      SegmentsRejectedCount?: NullableInteger;
1769      /**
1770       * 
1771       */
1772      BackendConnectionErrors?: BackendConnectionErrors;
1773    }
1774    export type TelemetryRecordList = TelemetryRecord[];
1775    export type TimeRangeType = "TraceId"|"Event"|string;
1776    export interface TimeSeriesServiceStatistics {
1777      /**
1778       * Timestamp of the window for which statistics are aggregated.
1779       */
1780      Timestamp?: Timestamp;
1781      EdgeSummaryStatistics?: EdgeStatistics;
1782      ServiceSummaryStatistics?: ServiceStatistics;
1783      /**
1784       * The forecasted high and low fault count values.
1785       */
1786      ServiceForecastStatistics?: ForecastStatistics;
1787      /**
1788       * The response time histogram for the selected entities.
1789       */
1790      ResponseTimeHistogram?: Histogram;
1791    }
1792    export type TimeSeriesServiceStatisticsList = TimeSeriesServiceStatistics[];
1793    export type Timestamp = Date;
1794    export type Token = string;
1795    export interface Trace {
1796      /**
1797       * The unique identifier for the request that generated the trace's segments and subsegments.
1798       */
1799      Id?: TraceId;
1800      /**
1801       * The length of time in seconds between the start time of the root segment and the end time of the last segment that completed.
1802       */
1803      Duration?: NullableDouble;
1804      /**
1805       * LimitExceeded is set to true when the trace has exceeded one of the defined quotas. For more information about quotas, see AWS X-Ray endpoints and quotas.
1806       */
1807      LimitExceeded?: NullableBoolean;
1808      /**
1809       * Segment documents for the segments and subsegments that comprise the trace.
1810       */
1811      Segments?: SegmentList;
1812    }
1813    export type TraceAvailabilityZones = AvailabilityZoneDetail[];
1814    export type TraceId = string;
1815    export type TraceIdList = TraceId[];
1816    export type TraceInstanceIds = InstanceIdDetail[];
1817    export type TraceList = Trace[];
1818    export type TraceResourceARNs = ResourceARNDetail[];
1819    export type TraceSegmentDocument = string;
1820    export type TraceSegmentDocumentList = TraceSegmentDocument[];
1821    export interface TraceSummary {
1822      /**
1823       * The unique identifier for the request that generated the trace's segments and subsegments.
1824       */
1825      Id?: TraceId;
1826      /**
1827       * The length of time in seconds between the start time of the root segment and the end time of the last segment that completed.
1828       */
1829      Duration?: NullableDouble;
1830      /**
1831       * 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.
1832       */
1833      ResponseTime?: NullableDouble;
1834      /**
1835       * The root segment document has a 500 series error.
1836       */
1837      HasFault?: NullableBoolean;
1838      /**
1839       * The root segment document has a 400 series error.
1840       */
1841      HasError?: NullableBoolean;
1842      /**
1843       * One or more of the segment documents has a 429 throttling error.
1844       */
1845      HasThrottle?: NullableBoolean;
1846      /**
1847       * One or more of the segment documents is in progress.
1848       */
1849      IsPartial?: NullableBoolean;
1850      /**
1851       * Information about the HTTP request served by the trace.
1852       */
1853      Http?: Http;
1854      /**
1855       * Annotations from the trace's segment documents.
1856       */
1857      Annotations?: Annotations;
1858      /**
1859       * Users from the trace's segment documents.
1860       */
1861      Users?: TraceUsers;
1862      /**
1863       * Service IDs from the trace's segment documents.
1864       */
1865      ServiceIds?: ServiceIds;
1866      /**
1867       * A list of resource ARNs for any resource corresponding to the trace segments.
1868       */
1869      ResourceARNs?: TraceResourceARNs;
1870      /**
1871       * A list of EC2 instance IDs for any instance corresponding to the trace segments.
1872       */
1873      InstanceIds?: TraceInstanceIds;
1874      /**
1875       * A list of Availability Zones for any zone corresponding to the trace segments.
1876       */
1877      AvailabilityZones?: TraceAvailabilityZones;
1878      /**
1879       * The root of a trace.
1880       */
1881      EntryPoint?: ServiceId;
1882      /**
1883       * A collection of FaultRootCause structures corresponding to the trace segments.
1884       */
1885      FaultRootCauses?: FaultRootCauses;
1886      /**
1887       * A collection of ErrorRootCause structures corresponding to the trace segments.
1888       */
1889      ErrorRootCauses?: ErrorRootCauses;
1890      /**
1891       * A collection of ResponseTimeRootCause structures corresponding to the trace segments.
1892       */
1893      ResponseTimeRootCauses?: ResponseTimeRootCauses;
1894      /**
1895       * The revision number of a trace.
1896       */
1897      Revision?: Integer;
1898      /**
1899       * The matched time stamp of a defined event.
1900       */
1901      MatchedEventTime?: Timestamp;
1902    }
1903    export type TraceSummaryList = TraceSummary[];
1904    export interface TraceUser {
1905      /**
1906       * The user's name.
1907       */
1908      UserName?: String;
1909      /**
1910       * Services that the user's request hit.
1911       */
1912      ServiceIds?: ServiceIds;
1913    }
1914    export type TraceUsers = TraceUser[];
1915    export type URLPath = string;
1916    export interface UnprocessedStatistics {
1917      /**
1918       * The name of the sampling rule.
1919       */
1920      RuleName?: String;
1921      /**
1922       * The error code.
1923       */
1924      ErrorCode?: String;
1925      /**
1926       * The error message.
1927       */
1928      Message?: String;
1929    }
1930    export type UnprocessedStatisticsList = UnprocessedStatistics[];
1931    export type UnprocessedTraceIdList = TraceId[];
1932    export interface UnprocessedTraceSegment {
1933      /**
1934       * The segment's ID.
1935       */
1936      Id?: String;
1937      /**
1938       * The error that caused processing to fail.
1939       */
1940      ErrorCode?: String;
1941      /**
1942       * The error message.
1943       */
1944      Message?: String;
1945    }
1946    export type UnprocessedTraceSegmentList = UnprocessedTraceSegment[];
1947    export interface UntagResourceRequest {
1948      /**
1949       * The Amazon Resource Number (ARN) of an X-Ray group or sampling rule.
1950       */
1951      ResourceARN: AmazonResourceName;
1952      /**
1953       * Keys for one or more tags that you want to remove from an X-Ray group or sampling rule.
1954       */
1955      TagKeys: TagKeyList;
1956    }
1957    export interface UntagResourceResponse {
1958    }
1959    export interface UpdateGroupRequest {
1960      /**
1961       * The case-sensitive name of the group.
1962       */
1963      GroupName?: GroupName;
1964      /**
1965       * The ARN that was generated upon creation.
1966       */
1967      GroupARN?: GroupARN;
1968      /**
1969       * The updated filter expression defining criteria by which to group traces.
1970       */
1971      FilterExpression?: FilterExpression;
1972      /**
1973       * The structure containing configurations related to insights.   The InsightsEnabled boolean can be set to true to enable insights for the group or false to disable insights for the group.   The NotifcationsEnabled boolean can be set to true to enable insights notifications for the group. Notifications can only be enabled on a group with InsightsEnabled set to true.  
1974       */
1975      InsightsConfiguration?: InsightsConfiguration;
1976    }
1977    export interface UpdateGroupResult {
1978      /**
1979       * The group that was updated. Contains the name of the group that was updated, the ARN of the group that was updated, the updated filter expression, and the updated insight configuration assigned to the group.
1980       */
1981      Group?: Group;
1982    }
1983    export interface UpdateSamplingRuleRequest {
1984      /**
1985       * The rule and fields to change.
1986       */
1987      SamplingRuleUpdate: SamplingRuleUpdate;
1988    }
1989    export interface UpdateSamplingRuleResult {
1990      /**
1991       * The updated rule definition and metadata.
1992       */
1993      SamplingRuleRecord?: SamplingRuleRecord;
1994    }
1995    export interface ValueWithServiceIds {
1996      /**
1997       * Values of the annotation.
1998       */
1999      AnnotationValue?: AnnotationValue;
2000      /**
2001       * Services to which the annotation applies.
2002       */
2003      ServiceIds?: ServiceIds;
2004    }
2005    export type ValuesWithServiceIds = ValueWithServiceIds[];
2006    export type Version = number;
2007    /**
2008     * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version.
2009     */
2010    export type apiVersion = "2016-04-12"|"latest"|string;
2011    export interface ClientApiVersions {
2012      /**
2013       * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version.
2014       */
2015      apiVersion?: apiVersion;
2016    }
2017    export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions;
2018    /**
2019     * Contains interfaces for use with the XRay client.
2020     */
2021    export import Types = XRay;
2022  }
2023  export = XRay;