1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//! AWS X-Ray (`xray`) restJson1 control plane + in-memory trace data plane for
//! fakecloud.
//!
//! The full 38-operation AWS X-Ray Smithy model. X-Ray signs SigV4 with the
//! `xray` scope and speaks restJson1; every operation is a `POST /<UriPath>`
//! (e.g. `POST /TraceSegments`, `POST /Traces`, `POST /ServiceGraph`), so
//! requests are routed by their `@http` URI path.
//!
//! This is real, persisted, account-partitioned state, not a set of stubs:
//!
//! * **Data plane.** `PutTraceSegments` ingests X-Ray trace segment documents
//! (JSON), parsing each document's `trace_id` / `id` / `name` / `start_time` /
//! `end_time` / `http` / `error`/`fault`/`throttle` flags and its nested
//! `subsegments` (including `namespace: "remote"` downstream calls). Segments
//! are stored keyed by trace id. `BatchGetTraces` reassembles stored traces,
//! `GetTraceSummaries` filters them by time range (plus a documented
//! filter-expression subset), and `GetServiceGraph` / `GetTraceGraph` /
//! `GetTimeSeriesServiceStatistics` derive a service graph (nodes + edges with
//! Ok/Error/Fault statistics and response time) computed deterministically
//! from the ingested segments. See [`graph`] and [`segment`].
//! * **Control plane.** Sampling rules (with the built-in, undeletable `Default`
//! rule seeded per account), groups, the account encryption config, resource
//! policies, the indexing rule, the trace-segment destination, and ARN-keyed
//! resource tagging are straightforward CRUD, persisted via snapshot/restore.
//!
//! Model-driven validation rejects contract violations with the error codes each
//! operation declares (`InvalidRequestException` universally,
//! `ResourceNotFoundException` on the ops that declare it, plus
//! `RuleLimitExceededException` / `TooManyTagsException`).
pub use ;
pub use ;