AWS Support
AWS Support on fakecloud: the full 16-operation surface -- support cases, communications, attachment sets, severity levels, the service/category catalogue, and the Trusted Advisor check catalogue + refresh state machine -- with account-partitioned persistence. The Trusted Advisor analysis engine and the live support agent are documented gaps.
fakecloud implements AWS Support (support), the programmatic interface to AWS Support cases and AWS Trusted Advisor. All 16 operations from the AWS Smithy model ship now, backed by account-partitioned state that persists across restarts in persistent mode. The wire protocol is awsJson1.1 (x-amz-target AWSSupport_20130415.<Op>), signing as support.
This is the control plane: every case, communication, attachment set, and Trusted Advisor refresh status is real, validated, persisted state -- no stubbed success responses. Requests are validated against the model's required / length / range constraints before any handler runs, and an operation that dereferences a case that does not exist returns Support's CaseIdNotFound; an unknown attachment id returns AttachmentIdNotFound, and an unknown attachment set id returns AttachmentSetIdNotFound.
Supported features
Support cases
CreateCasemints an AWS-shaped case id (case-{account}-{year}-{hex}) and a numericdisplayId, opens the case withstatus: "opened", records thesubject/serviceCode/severityCode/categoryCode/ccEmailAddresses/language/issueType, and seeds the case's communication thread with the initialcommunicationBody. A suppliedattachmentSetIdis resolved onto the first communication (an unknown set id returnsAttachmentSetIdNotFound).DescribeCasesfilters bycaseIdList(an unknown id returnsCaseIdNotFound),displayId,afterTime/beforeTime,includeResolvedCases(resolved cases are hidden by default), andincludeCommunications(the recent-communications thread is embedded by default), and paginates with a round-trippingnextToken.AddCommunicationToCaseappends a communication to the thread and returnsresult: true.DescribeCommunicationsreturns the case's communication thread, filtered by time window and paginated with anextToken.ResolveCaseflips the case toresolvedand returns both theinitialCaseStatusand thefinalCaseStatus.
Attachment sets
AddAttachmentsToSetmints a newattachmentSetId(or extends an existing one) and returns it with anexpiryTimeone hour out. Each attachment is stored under a generatedattachmentId.DescribeAttachmentreturns a stored attachment (fileName+ base64data) by id.
Severity levels + case-creation reference data
DescribeSeverityLevelsreturns the five real severity levels (low,normal,high,urgent,critical).DescribeServicesreturns the support service/category catalogue, optionally filtered byserviceCodeList.DescribeCreateCaseOptionsandDescribeSupportedLanguagesreturn well-formed case-creation option and supported-language data.
Trusted Advisor
DescribeTrustedAdvisorChecksreturns the vendored catalogue of the well-known Trusted Advisor checks (id / name / description / category / metadata column headers) across all five categories -- cost optimising, security, fault tolerance, performance, and service limits. This is faithful static AWS reference data, not fabricated findings.DescribeTrustedAdvisorCheckResultandDescribeTrustedAdvisorCheckSummariesreturn well-formed result / summary shapes (status, timestamp,resourcesSummary,categorySpecificSummary,flaggedResources) reporting an all-clear account (zero flagged resources).RefreshTrustedAdvisorCheckenqueues a refresh andDescribeTrustedAdvisorCheckRefreshStatusesadvances the per-check state machine one step on each read:none->enqueued->processing->success, withmillisUntilNextRefreshable.
Honest gap: no Trusted Advisor engine, no live support agent
AWS Support's value is a human/automated support agent working your case and the Trusted Advisor analysis engine inspecting your account. fakecloud runs neither. Cases are real records with a real communication thread, but no automated agent reply is generated -- a case stays exactly as you and your own AddCommunicationToCase calls leave it. Trusted Advisor returns the real check catalogue and a real refresh state machine, but DescribeTrustedAdvisorCheckResult / DescribeTrustedAdvisorCheckSummaries report a structurally correct all-clear result (zero flagged resources) rather than inspecting your account and inventing findings. Everything around the analysis -- cases, communications, attachment sets, severity levels, the service catalogue, the check catalogue, the refresh lifecycle, validation, and persistence -- is faithful. If your workload needs the Support contract (open a case, thread communications, resolve it; enumerate checks and drive a refresh), fakecloud is a faithful stand-in; if it needs an actual agent reply or real account findings, that is out of scope.
Validation
Every request is validated against the Support Smithy model's required / length / range constraints before any handler runs. (@pattern is not enforced: the only patterned member, serviceCode, is taken by operations that declare no generic validation exception, so surfacing a pattern rejection would fall outside their Smithy error contract.) The declared exceptions CaseIdNotFound, AttachmentIdNotFound, AttachmentSetIdNotFound, AttachmentSetExpired, AttachmentSetSizeLimitExceeded, AttachmentLimitExceeded, DescribeAttachmentLimitExceeded, CaseCreationLimitExceeded, and InternalServerError model the service's error surface.
Persistence
Support state is account-partitioned and, in persistent mode, snapshotted to disk and restored on restart. Cases, communication threads, attachment sets, individual attachments, and Trusted Advisor refresh statuses all survive a restart.