@atmem/architect 0.2.1 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1440 @@
1
+ {
2
+ "format": "atmem.ai-architect.project",
3
+ "formatVersion": "2.3.0",
4
+ "meta": {
5
+ "id": "atmem-ai-ready-example-v1",
6
+ "name": "AI knowledge assistant \u2014 complete example",
7
+ "createdAt": "2026-11-07T05:57:22.965Z",
8
+ "updatedAt": "2026-11-15T09:19:00.853Z",
9
+ "revision": 2,
10
+ "generator": "atmem-ai-architect 0.2.1"
11
+ },
12
+ "design": {
13
+ "provider": "aws",
14
+ "nodes": [
15
+ {
16
+ "id": "user",
17
+ "type": "resource",
18
+ "position": {
19
+ "x": 50,
20
+ "y": 60
21
+ },
22
+ "data": {
23
+ "inputPosition": "left",
24
+ "outputPosition": "right",
25
+ "label": "Staff browser",
26
+ "provider": "tools",
27
+ "kind": "tool",
28
+ "description": "Staff member's browser. This is a client reference, not a provisioned service.",
29
+ "config": {
30
+ "region": "To be selected",
31
+ "classification": "Internal",
32
+ "timeout": 5000
33
+ },
34
+ "origin": "existing",
35
+ "binding": "web-browser",
36
+ "role": "human"
37
+ }
38
+ },
39
+ {
40
+ "id": "web",
41
+ "type": "resource",
42
+ "position": {
43
+ "x": 470,
44
+ "y": 60
45
+ },
46
+ "data": {
47
+ "inputPosition": "left",
48
+ "outputPosition": "right",
49
+ "label": "Web app",
50
+ "provider": "aws",
51
+ "kind": "output",
52
+ "description": "Browser channel (required scope). It owns private S3 assets and CloudFront access control, uses authorization code with PKCE, and shows answers with citations.",
53
+ "config": {
54
+ "region": "ap-southeast-2",
55
+ "classification": "Internal",
56
+ "timeout": 5000
57
+ },
58
+ "origin": "proposed",
59
+ "poc": true,
60
+ "implementation": "rag-web-app",
61
+ "role": "app",
62
+ "service": "Amazon CloudFront"
63
+ }
64
+ },
65
+ {
66
+ "id": "cognito",
67
+ "type": "resource",
68
+ "position": {
69
+ "x": 890,
70
+ "y": 135
71
+ },
72
+ "data": {
73
+ "inputPosition": "left",
74
+ "outputPosition": "right",
75
+ "label": "User sign-in",
76
+ "provider": "aws",
77
+ "kind": "guard",
78
+ "description": "User pool with admin-created users, required software-token MFA, an access-token scope, and catalog-backed identity and employee-region mapping. Users are onboarded with the operator tool.",
79
+ "config": {
80
+ "region": "ap-southeast-2",
81
+ "classification": "Confidential",
82
+ "timeout": 5000
83
+ },
84
+ "origin": "proposed",
85
+ "poc": true,
86
+ "implementation": "rag-user-pool",
87
+ "service": "Amazon Cognito"
88
+ }
89
+ },
90
+ {
91
+ "id": "api",
92
+ "type": "resource",
93
+ "position": {
94
+ "x": 1310,
95
+ "y": 60
96
+ },
97
+ "data": {
98
+ "inputPosition": "left",
99
+ "outputPosition": "right",
100
+ "label": "RAG API",
101
+ "provider": "aws",
102
+ "kind": "tool",
103
+ "description": "Authenticated, bounded HTTP API with a JWT browser route. There is no anonymous access. Access logs support the audit trail.",
104
+ "config": {
105
+ "region": "ap-southeast-2",
106
+ "classification": "Internal",
107
+ "timeout": 5000
108
+ },
109
+ "origin": "proposed",
110
+ "poc": true,
111
+ "implementation": "iam-rag-api",
112
+ "service": "Amazon API Gateway"
113
+ }
114
+ },
115
+ {
116
+ "id": "rag-fn",
117
+ "type": "resource",
118
+ "position": {
119
+ "x": 1730,
120
+ "y": 60
121
+ },
122
+ "data": {
123
+ "inputPosition": "left",
124
+ "outputPosition": "right",
125
+ "label": "Keyword RAG function",
126
+ "provider": "aws",
127
+ "kind": "agent",
128
+ "description": "Keyword retrieval with ACL and region filtering and revision rechecks, then a cited answer that is returned through the API. It owns its execution role, logs, version and alias. Unknown identities fail closed.",
129
+ "config": {
130
+ "memoryMb": 256,
131
+ "region": "ap-southeast-2",
132
+ "classification": "Confidential",
133
+ "timeout": 5000
134
+ },
135
+ "origin": "proposed",
136
+ "poc": true,
137
+ "implementation": "bounded-keyword-rag",
138
+ "service": "AWS Lambda"
139
+ }
140
+ },
141
+ {
142
+ "id": "catalog",
143
+ "type": "resource",
144
+ "position": {
145
+ "x": 2150,
146
+ "y": 340
147
+ },
148
+ "data": {
149
+ "inputPosition": "left",
150
+ "outputPosition": "right",
151
+ "label": "Document catalog",
152
+ "provider": "aws",
153
+ "kind": "resource",
154
+ "description": "Holds up to 100 small UTF-8 documents with explicit ACLs, revisions, tombstones for deletes and a sync checkpoint. Writes are conditional.",
155
+ "config": {
156
+ "region": "ap-southeast-2",
157
+ "classification": "Confidential",
158
+ "timeout": 5000
159
+ },
160
+ "origin": "proposed",
161
+ "poc": true,
162
+ "implementation": "bounded-rag-catalog",
163
+ "service": "Amazon DynamoDB"
164
+ }
165
+ },
166
+ {
167
+ "id": "model",
168
+ "type": "resource",
169
+ "position": {
170
+ "x": 2150,
171
+ "y": 50
172
+ },
173
+ "data": {
174
+ "inputPosition": "left",
175
+ "outputPosition": "right",
176
+ "label": "Foundation model",
177
+ "provider": "aws",
178
+ "kind": "predict",
179
+ "description": "Existing Bedrock direct model, selected by a required model-ID input. Model access, Converse support, quotas and regional availability are not yet verified.",
180
+ "config": {
181
+ "modelId": "amazon.nova-lite-v1:0",
182
+ "region": "ap-southeast-2",
183
+ "classification": "Confidential",
184
+ "timeout": 5000
185
+ },
186
+ "origin": "existing",
187
+ "binding": "aws-bedrock-model",
188
+ "role": "llm",
189
+ "service": "Amazon Bedrock"
190
+ }
191
+ },
192
+ {
193
+ "id": "sp-src",
194
+ "type": "resource",
195
+ "position": {
196
+ "x": 1730,
197
+ "y": 340
198
+ },
199
+ "data": {
200
+ "inputPosition": "left",
201
+ "outputPosition": "right",
202
+ "label": "SharePoint (test server)",
203
+ "provider": "tools",
204
+ "kind": "source",
205
+ "description": "Existing SharePoint, represented here by the approved local normalized source-contract test server. It provides snapshots, ACLs, updates and deletes. The native API and real-tenant compatibility are not verified.",
206
+ "config": {
207
+ "region": "To be selected",
208
+ "classification": "Confidential",
209
+ "timeout": 5000
210
+ },
211
+ "origin": "existing",
212
+ "binding": "normalized-source-contract"
213
+ }
214
+ },
215
+ {
216
+ "id": "cf-src",
217
+ "type": "resource",
218
+ "position": {
219
+ "x": 1730,
220
+ "y": 620
221
+ },
222
+ "data": {
223
+ "inputPosition": "left",
224
+ "outputPosition": "right",
225
+ "label": "Confluence (test server)",
226
+ "provider": "tools",
227
+ "kind": "source",
228
+ "description": "Existing Confluence, represented here by the approved local normalized source-contract test server. The native API and real-tenant compatibility are not verified.",
229
+ "config": {
230
+ "region": "To be selected",
231
+ "classification": "Confidential",
232
+ "timeout": 5000
233
+ },
234
+ "origin": "existing",
235
+ "binding": "normalized-source-contract"
236
+ }
237
+ },
238
+ {
239
+ "id": "teams-note",
240
+ "type": "resource",
241
+ "position": {
242
+ "x": 50,
243
+ "y": 340
244
+ },
245
+ "data": {
246
+ "inputPosition": "left",
247
+ "outputPosition": "right",
248
+ "label": "Later: Microsoft Teams channel",
249
+ "provider": "tools",
250
+ "kind": "note",
251
+ "description": "Teams is a deferred channel for a later phase. It is not part of this deployment.",
252
+ "config": {
253
+ "region": "To be selected",
254
+ "classification": "Internal",
255
+ "timeout": 5000
256
+ },
257
+ "origin": "proposed"
258
+ }
259
+ }
260
+ ],
261
+ "edges": [
262
+ {
263
+ "id": "e-user-web",
264
+ "source": "user",
265
+ "target": "web",
266
+ "type": "smoothstep",
267
+ "label": "HTTPS",
268
+ "integration": "browser-https"
269
+ },
270
+ {
271
+ "id": "e-web-cognito",
272
+ "source": "web",
273
+ "target": "cognito",
274
+ "type": "smoothstep",
275
+ "label": "sign-in (PKCE + MFA)",
276
+ "integration": "oauth-pkce"
277
+ },
278
+ {
279
+ "id": "e-cognito-api",
280
+ "source": "cognito",
281
+ "target": "api",
282
+ "type": "smoothstep",
283
+ "label": "JWT authorizer",
284
+ "integration": "jwt-authorizer"
285
+ },
286
+ {
287
+ "id": "e-web-api",
288
+ "source": "web",
289
+ "target": "api",
290
+ "type": "smoothstep",
291
+ "label": "question \u2192 cited answer",
292
+ "integration": "web-rag-api"
293
+ },
294
+ {
295
+ "id": "e-api-fn",
296
+ "source": "api",
297
+ "target": "rag-fn",
298
+ "type": "smoothstep",
299
+ "label": "invoke",
300
+ "integration": "http-api-lambda"
301
+ },
302
+ {
303
+ "id": "e-fn-catalog",
304
+ "source": "rag-fn",
305
+ "target": "catalog",
306
+ "type": "smoothstep",
307
+ "label": "ACL-filtered keyword read",
308
+ "integration": "lambda-catalog-read"
309
+ },
310
+ {
311
+ "id": "e-fn-model",
312
+ "source": "rag-fn",
313
+ "target": "model",
314
+ "type": "smoothstep",
315
+ "label": "Converse (grounded prompt)",
316
+ "integration": "bedrock-converse"
317
+ },
318
+ {
319
+ "id": "e-sp-catalog",
320
+ "source": "sp-src",
321
+ "target": "catalog",
322
+ "type": "smoothstep",
323
+ "label": "snapshot sync, ACLs, deletes",
324
+ "integration": "source-catalog-sync"
325
+ },
326
+ {
327
+ "id": "e-cf-catalog",
328
+ "source": "cf-src",
329
+ "target": "catalog",
330
+ "type": "smoothstep",
331
+ "label": "snapshot sync, ACLs, deletes",
332
+ "integration": "source-catalog-sync"
333
+ }
334
+ ]
335
+ },
336
+ "discovery": {
337
+ "problem": "Cited answers from approved SharePoint/Confluence documents through a web app. Preserve permissions, updates and deletes. Include recovery and audit. Teams comes later.",
338
+ "brief": {
339
+ "application": "Design an AWS knowledge assistant that reads approved documents from existing SharePoint and Confluence systems and provides cited answers through a web application, with Teams as a later channel. Preserve source permissions, updates and deletes. For this stage use the approved local normalized source-contract test servers and bounded keyword retrieval. Keep the requested web application as required scope; an HTTP API alone does not complete that channel. Treat those existing systems as external dependencies; include recovery and audit behavior without claiming native vendor API or real tenant compatibility. Use AWS for this synthetic qualification design. Propose Sydney as a candidate region, but do not record that as an approved deployment region. Draw the architecture and identify the next missing decision. This is a test design, not an instruction to deploy.",
340
+ "data": "Review this same architecture and its generated Terraform. Keep the original scenario scope and preserve valid component IDs and existing systems. Validation findings: [{\"id\":\"application-not-qualified\",\"owner\":\"application\",\"message\":\"No executable application acceptance evidence for this artifact.\"},{\"id\":\"provider-schema-unverified\",\"owner\":\"validation\",\"message\":\"Run provider-schema validation against this exact export.\"},{\"id\":\"requirements-review-unverified\",\"owner\":\"review\",\"message\":\"Review requirements against emitted configuration, including identity, limits, region, costs and cleanup.\"}]. Correct architecture defects through a proposal where supported. For missing native resources, application code or integrations, explain the product implementation gap and next concrete engineering action; do not claim a diagram edit implemented it. Do not remove required components, weaken acceptance checks or clear unfinished-work gates to obtain a pass. Do not claim tests ran or request deployment. Identify what remains unverified.",
341
+ "users": "",
342
+ "systems": "",
343
+ "quality": "",
344
+ "cloud": "AWS",
345
+ "budget": ""
346
+ },
347
+ "useCases": [
348
+ {
349
+ "id": "example-browser",
350
+ "title": "Signed-in browser answers with citations and source permissions",
351
+ "value": "High",
352
+ "risk": "Medium",
353
+ "fit": "High",
354
+ "verdict": "Pursue",
355
+ "reason": "Implemented by the generated web/API/catalog/model path; local tests cover cited answers and authorization."
356
+ },
357
+ {
358
+ "id": "example-sync",
359
+ "title": "Local normalized source snapshots, updates and deletes",
360
+ "value": "High",
361
+ "risk": "Medium",
362
+ "fit": "High",
363
+ "verdict": "Pursue",
364
+ "reason": "The bundled contract fixtures qualify the normalized interface. Real Microsoft/Atlassian tenants are separate destination integration work."
365
+ },
366
+ {
367
+ "id": "example-native-tenants",
368
+ "title": "Native SharePoint and Confluence tenant adapters",
369
+ "value": "High",
370
+ "risk": "High",
371
+ "fit": "Medium",
372
+ "verdict": "Park",
373
+ "reason": "The original example explicitly uses approved normalized local test servers. No native tenant or permissions compatibility is claimed."
374
+ },
375
+ {
376
+ "id": "example-teams",
377
+ "title": "Microsoft Teams channel",
378
+ "value": "Medium",
379
+ "risk": "Medium",
380
+ "fit": "Medium",
381
+ "verdict": "Park",
382
+ "reason": "Retained from the original deferred-channel note; not part of this example."
383
+ }
384
+ ],
385
+ "facts": [
386
+ {
387
+ "id": "fact-6ea5a2af",
388
+ "name": "cloud.preference",
389
+ "value": "aws",
390
+ "unit": "provider",
391
+ "text": "Design an AWS knowledge assistant that reads approved documents from existing SharePoint and Confluence systems and provides cited answers through a web application, with Teams as a later channel. Preserve source permissions, updates and deletes. For this stage use the approved local normalized sour",
392
+ "madeAt": "2026-11-07"
393
+ },
394
+ {
395
+ "id": "example-budget",
396
+ "name": "budget.per_month",
397
+ "value": 20,
398
+ "unit": "USD/month",
399
+ "text": "Illustrative example-author budget target, not a client-approved budget.",
400
+ "madeAt": "2026-11-15"
401
+ }
402
+ ],
403
+ "workflow": "document-processing",
404
+ "asked": [
405
+ "knowledge-assistant:0"
406
+ ],
407
+ "lastAsked": {
408
+ "id": "document-processing:0",
409
+ "topic": "data",
410
+ "question": "What kinds of documents arrive, and how many a month?",
411
+ "beginner": "For example \u201cinvoices, about 3,000 a month, mostly PDF\u201d.",
412
+ "why": "It shapes the Document extraction design."
413
+ }
414
+ },
415
+ "requirements": [
416
+ {
417
+ "id": "req-104d29bf",
418
+ "kind": "functional",
419
+ "category": "other",
420
+ "statement": "Every answer shows its sources",
421
+ "basis": " Confirmed by the prepared-example author for the bounded local source-contract sample; not a client approval.",
422
+ "priority": "should",
423
+ "status": "open",
424
+ "source": "user",
425
+ "links": [
426
+ "web",
427
+ "api",
428
+ "rag-fn",
429
+ "model"
430
+ ]
431
+ },
432
+ {
433
+ "id": "ai-permission-trimmed-answers",
434
+ "kind": "nonfunctional",
435
+ "category": "security",
436
+ "statement": "Answers may use only documents the signed-in user is allowed to open, based on explicit ACLs copied from the source snapshot. Unknown identities or missing ACLs fail closed.",
437
+ "rationale": "Without this, the assistant could reveal restricted content. The test servers do not prove native group expansion or inherited permissions, so production stays blocked until those are verified.",
438
+ "basis": "User: \"Preserve source permissions, updates and deletes.\" Confirmed by the prepared-example author for the bounded local source-contract sample; not a client approval.",
439
+ "priority": "must",
440
+ "status": "open",
441
+ "source": "user",
442
+ "links": [
443
+ "catalog",
444
+ "rag-fn",
445
+ "sp-src",
446
+ "cf-src",
447
+ "cognito"
448
+ ]
449
+ },
450
+ {
451
+ "id": "ai-source-change-sync",
452
+ "kind": "functional",
453
+ "category": "reliability",
454
+ "statement": "Source updates and deletes reach the catalog through conditional writes and a recovery checkpoint, and revisions are rechecked before an answer is returned.",
455
+ "rationale": "Stale or deleted documents could otherwise be cited. The checkpoint lets an interrupted sync resume without losing changes.",
456
+ "basis": "User: \"Preserve source permissions, updates and deletes\" and \"include recovery and audit behavior\". Confirmed by the prepared-example author for the bounded local source-contract sample; not a client approval.",
457
+ "priority": "must",
458
+ "status": "open",
459
+ "source": "user",
460
+ "links": [
461
+ "sp-src",
462
+ "cf-src",
463
+ "catalog",
464
+ "rag-fn"
465
+ ]
466
+ },
467
+ {
468
+ "id": "ai-audit-trail",
469
+ "kind": "nonfunctional",
470
+ "category": "compliance",
471
+ "statement": "Proposed: record who asked, which documents were cited and sync outcomes in logs with a retention period to be agreed.",
472
+ "rationale": "An audit trail lets us show which sources supported an answer and investigate access questions. The retention period is still unknown.",
473
+ "basis": "User: \"include recovery and audit behavior\". Confirmed by the prepared-example author for the bounded local source-contract sample; not a client approval.",
474
+ "priority": "should",
475
+ "status": "open",
476
+ "source": "user",
477
+ "links": [
478
+ "rag-fn",
479
+ "api",
480
+ "sp-src",
481
+ "cf-src"
482
+ ]
483
+ },
484
+ {
485
+ "id": "example-australia",
486
+ "kind": "nonfunctional",
487
+ "category": "compliance",
488
+ "statement": "Example application data, model processing and audit logs stay in the selected Australia/Sydney region; source fixtures run locally.",
489
+ "basis": "Prepared-example author default; destination account/residency verification remains required.",
490
+ "priority": "must",
491
+ "status": "open",
492
+ "source": "user",
493
+ "links": [
494
+ "web",
495
+ "cognito",
496
+ "api",
497
+ "rag-fn",
498
+ "catalog",
499
+ "model"
500
+ ]
501
+ }
502
+ ],
503
+ "assumptions": [
504
+ {
505
+ "id": "example-usage",
506
+ "statement": "Monthly sample: 100 users, 10,000 answers, 2,000 input and 1,000 output tokens per answer, 256 MiB ARM Lambda for 5 seconds; no free-tier credits.",
507
+ "source": "user",
508
+ "owner": "",
509
+ "links": [],
510
+ "madeAt": "2026-11-15"
511
+ },
512
+ {
513
+ "id": "example-cost-scope",
514
+ "statement": "Incremental AWS costs only. Browser and existing normalized local source fixtures carry no new AWS resource cost. SaaS licenses, tax, support plans and labor are outside this sample.",
515
+ "source": "user",
516
+ "owner": "",
517
+ "links": [],
518
+ "madeAt": "2026-11-15"
519
+ }
520
+ ],
521
+ "openQuestions": [],
522
+ "decisions": [
523
+ {
524
+ "id": "adr-001",
525
+ "subject": "platform.cloud",
526
+ "title": "platform.cloud",
527
+ "owner": "",
528
+ "status": "Accepted",
529
+ "date": "2026-11-07",
530
+ "context": "User statement: Use AWS for this synthetic qualification design.",
531
+ "options": "",
532
+ "decision": "aws",
533
+ "consequences": "",
534
+ "revision": 1,
535
+ "supersedes": null,
536
+ "supersededBy": null,
537
+ "reason": "Chosen in the conversation"
538
+ },
539
+ {
540
+ "id": "adr-002",
541
+ "subject": "design.aws-bounded-keyword-rag-knowledge-assistant-qualification-design",
542
+ "title": "AWS bounded keyword RAG knowledge assistant (qualification design)",
543
+ "owner": "",
544
+ "status": "Superseded",
545
+ "date": "2026-11-07",
546
+ "context": "Scope: a web app with Cognito sign-in (PKCE and MFA) calls an IAM/JWT-protected HTTP API. The API calls a bounded keyword-RAG Lambda, which reads a DynamoDB catalog and calls an existing Bedrock model to produce cited answers. SharePoint and Confluence are existing external systems, reached only through the approved local normalized source-contract test servers. This does not verify native vendor APIs, real tenants, group expansion or inherited permissions, so production stays blocked. Teams is deferred and shown as a note. Assumptions: keyword retrieval, not vector search; up to 100 small UTF-8 documents. The region is unselected (Sydney ap-southeast-2 is only a candidate), and the model ID, quotas and availability are unverified. Nothing is deployed.",
547
+ "options": "",
548
+ "decision": "Drawn while talking as design revision 2.",
549
+ "consequences": "",
550
+ "revision": 1,
551
+ "supersedes": null,
552
+ "supersededBy": "example-region",
553
+ "reason": ""
554
+ },
555
+ {
556
+ "id": "example-region",
557
+ "subject": "cloud.region",
558
+ "title": "cloud.region",
559
+ "owner": "AtMem example defaults",
560
+ "status": "Accepted",
561
+ "date": "2026-11-15",
562
+ "context": "Sydney is selected by the example author for this sample, not as approval for a client deployment.",
563
+ "options": "",
564
+ "decision": "ap-southeast-2",
565
+ "consequences": "",
566
+ "revision": 1,
567
+ "supersedes": null,
568
+ "supersededBy": null,
569
+ "reason": "Prepared example configuration"
570
+ },
571
+ {
572
+ "id": "example-country",
573
+ "subject": "data.country",
574
+ "title": "data.country",
575
+ "owner": "AtMem example defaults",
576
+ "status": "Accepted",
577
+ "date": "2026-11-15",
578
+ "context": "Example data location; source fixtures run locally. Production residency requires destination review.",
579
+ "options": "",
580
+ "decision": "Australia",
581
+ "consequences": "",
582
+ "revision": 1,
583
+ "supersedes": null,
584
+ "supersededBy": null,
585
+ "reason": "Prepared example configuration"
586
+ },
587
+ {
588
+ "id": "example-model",
589
+ "subject": "model.bedrock",
590
+ "title": "model.bedrock",
591
+ "owner": "AtMem example defaults",
592
+ "status": "Accepted",
593
+ "date": "2026-11-15",
594
+ "context": "Direct Nova Lite in Sydney. Published regional/Converse support reviewed; account access and quotas remain destination checks.",
595
+ "options": "",
596
+ "decision": "amazon.nova-lite-v1:0",
597
+ "consequences": "",
598
+ "revision": 1,
599
+ "supersedes": null,
600
+ "supersededBy": null,
601
+ "reason": "Prepared example configuration"
602
+ },
603
+ {
604
+ "id": "example-retention",
605
+ "subject": "logs.retention",
606
+ "title": "logs.retention",
607
+ "owner": "AtMem example defaults",
608
+ "status": "Accepted",
609
+ "date": "2026-11-15",
610
+ "context": "CloudWatch retention for this bounded example. Confirm real client policy before deployment.",
611
+ "options": "",
612
+ "decision": "30 days",
613
+ "consequences": "",
614
+ "revision": 1,
615
+ "supersedes": null,
616
+ "supersededBy": null,
617
+ "reason": "Prepared example configuration"
618
+ }
619
+ ],
620
+ "estimate": {
621
+ "projectSize": "small",
622
+ "details": [
623
+ {
624
+ "id": "example-charge-1",
625
+ "componentId": "user",
626
+ "description": "Existing staff browser",
627
+ "quantity": 1,
628
+ "price": 0,
629
+ "unit": "existing reference",
630
+ "currency": "USD",
631
+ "source": "Example scope: existing browser or local normalized source-contract fixture; no incremental AWS resource.",
632
+ "date": "2026-11-15",
633
+ "region": "Local reference",
634
+ "service": "Existing reference"
635
+ },
636
+ {
637
+ "id": "example-charge-2",
638
+ "componentId": "web",
639
+ "description": "CloudFront Australia HTTPS requests",
640
+ "quantity": 10000,
641
+ "price": 1.25e-06,
642
+ "unit": "Requests",
643
+ "currency": "USD",
644
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonCloudFront/current/index.json#XXEA4SCG9TSQCDF2",
645
+ "date": "2026-11-15",
646
+ "region": "Australia / Global",
647
+ "service": "AmazonCloudFront"
648
+ },
649
+ {
650
+ "id": "example-charge-3",
651
+ "componentId": "web",
652
+ "description": "CloudFront Australia internet egress (GB)",
653
+ "quantity": 10,
654
+ "price": 0.114,
655
+ "unit": "GB",
656
+ "currency": "USD",
657
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonCloudFront/current/index.json#8JNNPNBQD9DSHV5K",
658
+ "date": "2026-11-15",
659
+ "region": "Australia / Global",
660
+ "service": "AmazonCloudFront"
661
+ },
662
+ {
663
+ "id": "example-charge-4",
664
+ "componentId": "web",
665
+ "description": "S3 assets and all retained object versions (GB-month)",
666
+ "quantity": 1,
667
+ "price": 0.025,
668
+ "unit": "GB-Mo",
669
+ "currency": "USD",
670
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonS3/current/ap-southeast-2/index.json#5QVJMK36NJC9G6DC",
671
+ "date": "2026-11-15",
672
+ "region": "ap-southeast-2",
673
+ "service": "AmazonS3"
674
+ },
675
+ {
676
+ "id": "example-charge-5",
677
+ "componentId": "web",
678
+ "description": "S3 asset uploads and listing requests",
679
+ "quantity": 1000,
680
+ "price": 5.5e-06,
681
+ "unit": "Requests",
682
+ "currency": "USD",
683
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonS3/current/ap-southeast-2/index.json#U4DFWUZRRJK76GFK",
684
+ "date": "2026-11-15",
685
+ "region": "ap-southeast-2",
686
+ "service": "AmazonS3"
687
+ },
688
+ {
689
+ "id": "example-charge-6",
690
+ "componentId": "web",
691
+ "description": "S3 origin GET requests",
692
+ "quantity": 10000,
693
+ "price": 4.4e-07,
694
+ "unit": "Requests",
695
+ "currency": "USD",
696
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonS3/current/ap-southeast-2/index.json#ZE67FX933AEQ43H2",
697
+ "date": "2026-11-15",
698
+ "region": "ap-southeast-2",
699
+ "service": "AmazonS3"
700
+ },
701
+ {
702
+ "id": "example-charge-7",
703
+ "componentId": "cognito",
704
+ "description": "Cognito Essentials monthly active users",
705
+ "quantity": 100,
706
+ "price": 0.015,
707
+ "unit": "CognitoUserPoolsMAU",
708
+ "currency": "USD",
709
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonCognito/current/ap-southeast-2/index.json#JVU799QJR37664RR",
710
+ "date": "2026-11-15",
711
+ "region": "ap-southeast-2",
712
+ "service": "AmazonCognito"
713
+ },
714
+ {
715
+ "id": "example-charge-8",
716
+ "componentId": "api",
717
+ "description": "HTTP API requests",
718
+ "quantity": 10000,
719
+ "price": 1.29e-06,
720
+ "unit": "Requests",
721
+ "currency": "USD",
722
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonApiGateway/current/ap-southeast-2/index.json#GHZQQPU8NMGFKBQZ",
723
+ "date": "2026-11-15",
724
+ "region": "ap-southeast-2",
725
+ "service": "AmazonApiGateway"
726
+ },
727
+ {
728
+ "id": "example-charge-9",
729
+ "componentId": "api",
730
+ "description": "API access log ingestion (GB)",
731
+ "quantity": 0.5,
732
+ "price": 0.67,
733
+ "unit": "GB",
734
+ "currency": "USD",
735
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonCloudWatch/current/ap-southeast-2/index.json#VSJ57WXDQXM2VKQK",
736
+ "date": "2026-11-15",
737
+ "region": "ap-southeast-2",
738
+ "service": "AmazonCloudWatch"
739
+ },
740
+ {
741
+ "id": "example-charge-10",
742
+ "componentId": "api",
743
+ "description": "API access log storage (GB-month)",
744
+ "quantity": 0.5,
745
+ "price": 0.033,
746
+ "unit": "GB-Mo",
747
+ "currency": "USD",
748
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonCloudWatch/current/ap-southeast-2/index.json#SXS5MH23MB3SHA9C",
749
+ "date": "2026-11-15",
750
+ "region": "ap-southeast-2",
751
+ "service": "AmazonCloudWatch"
752
+ },
753
+ {
754
+ "id": "example-charge-11",
755
+ "componentId": "rag-fn",
756
+ "description": "Lambda requests",
757
+ "quantity": 10000,
758
+ "price": 2e-07,
759
+ "unit": "Request",
760
+ "currency": "USD",
761
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSLambda/current/ap-southeast-2/index.json#ZW6UHD4Q6EPUCZWU",
762
+ "date": "2026-11-15",
763
+ "region": "ap-southeast-2",
764
+ "service": "AWSLambda"
765
+ },
766
+ {
767
+ "id": "example-charge-12",
768
+ "componentId": "rag-fn",
769
+ "description": "Lambda ARM 256 MiB \u00d7 5 seconds \u00d7 10,000 answers",
770
+ "quantity": 12500,
771
+ "price": 1.33334e-05,
772
+ "unit": "Lambda-GB-Second",
773
+ "currency": "USD",
774
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSLambda/current/ap-southeast-2/index.json#KDEJ26SV7QK2N7DW",
775
+ "date": "2026-11-15",
776
+ "region": "ap-southeast-2",
777
+ "service": "AWSLambda"
778
+ },
779
+ {
780
+ "id": "example-charge-13",
781
+ "componentId": "rag-fn",
782
+ "description": "Lambda log ingestion (GB)",
783
+ "quantity": 0.5,
784
+ "price": 0.67,
785
+ "unit": "GB",
786
+ "currency": "USD",
787
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonCloudWatch/current/ap-southeast-2/index.json#VSJ57WXDQXM2VKQK",
788
+ "date": "2026-11-15",
789
+ "region": "ap-southeast-2",
790
+ "service": "AmazonCloudWatch"
791
+ },
792
+ {
793
+ "id": "example-charge-14",
794
+ "componentId": "rag-fn",
795
+ "description": "Lambda log storage (GB-month)",
796
+ "quantity": 0.5,
797
+ "price": 0.033,
798
+ "unit": "GB-Mo",
799
+ "currency": "USD",
800
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonCloudWatch/current/ap-southeast-2/index.json#SXS5MH23MB3SHA9C",
801
+ "date": "2026-11-15",
802
+ "region": "ap-southeast-2",
803
+ "service": "AmazonCloudWatch"
804
+ },
805
+ {
806
+ "id": "example-charge-15",
807
+ "componentId": "catalog",
808
+ "description": "DynamoDB read request units; bounded scans and identity reads",
809
+ "quantity": 1050000,
810
+ "price": 1.425e-07,
811
+ "unit": "ReadRequestUnits",
812
+ "currency": "USD",
813
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonDynamoDB/current/ap-southeast-2/index.json#BQCZ4TYN2JVHEH4Z",
814
+ "date": "2026-11-15",
815
+ "region": "ap-southeast-2",
816
+ "service": "AmazonDynamoDB"
817
+ },
818
+ {
819
+ "id": "example-charge-16",
820
+ "componentId": "catalog",
821
+ "description": "DynamoDB conditional write request units",
822
+ "quantity": 10000,
823
+ "price": 7.1e-07,
824
+ "unit": "WriteRequestUnits",
825
+ "currency": "USD",
826
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonDynamoDB/current/ap-southeast-2/index.json#X43FXEDHFRVHHYQR",
827
+ "date": "2026-11-15",
828
+ "region": "ap-southeast-2",
829
+ "service": "AmazonDynamoDB"
830
+ },
831
+ {
832
+ "id": "example-charge-17",
833
+ "componentId": "catalog",
834
+ "description": "DynamoDB standard storage; free allowance assumed consumed",
835
+ "quantity": 0.1,
836
+ "price": 0.285,
837
+ "unit": "GB-Mo",
838
+ "currency": "USD",
839
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonDynamoDB/current/ap-southeast-2/index.json#NF4X2QKU7Y7QVY5C",
840
+ "date": "2026-11-15",
841
+ "region": "ap-southeast-2",
842
+ "service": "AmazonDynamoDB"
843
+ },
844
+ {
845
+ "id": "example-charge-18",
846
+ "componentId": "catalog",
847
+ "description": "DynamoDB point-in-time recovery storage (GB-month)",
848
+ "quantity": 0.1,
849
+ "price": 0.228,
850
+ "unit": "GB-Mo",
851
+ "currency": "USD",
852
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonDynamoDB/current/ap-southeast-2/index.json#KHP6CW3RY2FP49W3",
853
+ "date": "2026-11-15",
854
+ "region": "ap-southeast-2",
855
+ "service": "AmazonDynamoDB"
856
+ },
857
+ {
858
+ "id": "example-charge-19",
859
+ "componentId": "model",
860
+ "description": "Nova Lite input tokens (1,000-token units)",
861
+ "quantity": 20000,
862
+ "price": 6.3e-05,
863
+ "unit": "1K tokens",
864
+ "currency": "USD",
865
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/ap-southeast-2/index.json#VE26ZEBZ95PNKV6H",
866
+ "date": "2026-11-15",
867
+ "region": "ap-southeast-2",
868
+ "service": "AmazonBedrock"
869
+ },
870
+ {
871
+ "id": "example-charge-20",
872
+ "componentId": "model",
873
+ "description": "Nova Lite output tokens (1,000-token units)",
874
+ "quantity": 10000,
875
+ "price": 0.000252,
876
+ "unit": "1K tokens",
877
+ "currency": "USD",
878
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/ap-southeast-2/index.json#8QD3UNYB3WE6E2YA",
879
+ "date": "2026-11-15",
880
+ "region": "ap-southeast-2",
881
+ "service": "AmazonBedrock"
882
+ },
883
+ {
884
+ "id": "example-charge-21",
885
+ "componentId": "sp-src",
886
+ "description": "Existing local SharePoint contract fixture",
887
+ "quantity": 1,
888
+ "price": 0,
889
+ "unit": "existing reference",
890
+ "currency": "USD",
891
+ "source": "Example scope: existing browser or local normalized source-contract fixture; no incremental AWS resource.",
892
+ "date": "2026-11-15",
893
+ "region": "Local reference",
894
+ "service": "Existing reference"
895
+ },
896
+ {
897
+ "id": "example-charge-22",
898
+ "componentId": "cf-src",
899
+ "description": "Existing local Confluence contract fixture",
900
+ "quantity": 1,
901
+ "price": 0,
902
+ "unit": "existing reference",
903
+ "currency": "USD",
904
+ "source": "Example scope: existing browser or local normalized source-contract fixture; no incremental AWS resource.",
905
+ "date": "2026-11-15",
906
+ "region": "Local reference",
907
+ "service": "Existing reference"
908
+ }
909
+ ],
910
+ "usage": {
911
+ "requests_per_month": 10000,
912
+ "tokens_per_request": 3000,
913
+ "data_gb": 0.1,
914
+ "events_per_month": 10000,
915
+ "endpoint_hours": 0,
916
+ "training_hours": 0
917
+ },
918
+ "prices": {},
919
+ "low": 0.7,
920
+ "high": 1.5
921
+ },
922
+ "extensions": {
923
+ "requirementNumbers": {
924
+ "req-104d29bf": 1,
925
+ "drv-data-access": 2,
926
+ "drv-data-location": 3,
927
+ "ai-permission-trimmed-answers": 4,
928
+ "ai-source-change-sync": 5,
929
+ "ai-audit-trail": 6
930
+ },
931
+ "choices": {},
932
+ "conceptSig": null,
933
+ "originalExampleRequirements": [
934
+ {
935
+ "id": "req-104d29bf",
936
+ "kind": "functional",
937
+ "category": "other",
938
+ "statement": "Every answer shows its sources",
939
+ "priority": "should",
940
+ "status": "open",
941
+ "source": "user",
942
+ "links": []
943
+ },
944
+ {
945
+ "id": "ai-permission-trimmed-answers",
946
+ "kind": "nonfunctional",
947
+ "category": "security",
948
+ "statement": "Answers may use only documents the signed-in user is allowed to open, based on explicit ACLs copied from the source snapshot. Unknown identities or missing ACLs fail closed.",
949
+ "rationale": "Without this, the assistant could reveal restricted content. The test servers do not prove native group expansion or inherited permissions, so production stays blocked until those are verified.",
950
+ "basis": "User: \"Preserve source permissions, updates and deletes.\"",
951
+ "priority": "must",
952
+ "status": "open",
953
+ "source": "agent",
954
+ "links": [
955
+ "catalog",
956
+ "rag-fn",
957
+ "sp-src",
958
+ "cf-src",
959
+ "cognito"
960
+ ]
961
+ },
962
+ {
963
+ "id": "ai-source-change-sync",
964
+ "kind": "functional",
965
+ "category": "reliability",
966
+ "statement": "Source updates and deletes reach the catalog through conditional writes and a recovery checkpoint, and revisions are rechecked before an answer is returned.",
967
+ "rationale": "Stale or deleted documents could otherwise be cited. The checkpoint lets an interrupted sync resume without losing changes.",
968
+ "basis": "User: \"Preserve source permissions, updates and deletes\" and \"include recovery and audit behavior\".",
969
+ "priority": "must",
970
+ "status": "open",
971
+ "source": "agent",
972
+ "links": [
973
+ "sp-src",
974
+ "cf-src",
975
+ "catalog",
976
+ "rag-fn"
977
+ ]
978
+ },
979
+ {
980
+ "id": "ai-audit-trail",
981
+ "kind": "nonfunctional",
982
+ "category": "compliance",
983
+ "statement": "Proposed: record who asked, which documents were cited and sync outcomes in logs with a retention period to be agreed.",
984
+ "rationale": "An audit trail lets us show which sources supported an answer and investigate access questions. The retention period is still unknown.",
985
+ "basis": "User: \"include recovery and audit behavior\".",
986
+ "priority": "should",
987
+ "status": "open",
988
+ "source": "agent",
989
+ "links": [
990
+ "rag-fn",
991
+ "api",
992
+ "sp-src",
993
+ "cf-src"
994
+ ]
995
+ }
996
+ ],
997
+ "preparedExample": {
998
+ "version": 1,
999
+ "owner": "AtMem example author",
1000
+ "scope": "Bounded AWS knowledge assistant with local normalized source fixtures",
1001
+ "priceDate": "2026-11-15",
1002
+ "priceLedger": "evidence/price-ledger.json",
1003
+ "cloudDeployment": "not_run",
1004
+ "assumptionNotice": "Sample configuration and usage, not client approval or a quote."
1005
+ },
1006
+ "priceLedger": [
1007
+ {
1008
+ "id": "example-charge-1",
1009
+ "componentId": "user",
1010
+ "description": "Existing staff browser",
1011
+ "quantity": 1,
1012
+ "price": 0,
1013
+ "unit": "existing reference",
1014
+ "currency": "USD",
1015
+ "source": "Example scope: existing browser or local normalized source-contract fixture; no incremental AWS resource.",
1016
+ "date": "2026-11-15",
1017
+ "region": "Local reference",
1018
+ "service": "Existing reference",
1019
+ "note": "Existing paid tenant/license integrations are not part of this local contract example."
1020
+ },
1021
+ {
1022
+ "id": "example-charge-2",
1023
+ "componentId": "web",
1024
+ "description": "CloudFront Australia HTTPS requests",
1025
+ "quantity": 10000,
1026
+ "price": 1.25e-06,
1027
+ "unit": "Requests",
1028
+ "currency": "USD",
1029
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonCloudFront/current/index.json#XXEA4SCG9TSQCDF2",
1030
+ "date": "2026-11-15",
1031
+ "region": "Australia / Global",
1032
+ "service": "AmazonCloudFront",
1033
+ "sku": "XXEA4SCG9TSQCDF2",
1034
+ "meter": "XXEA4SCG9TSQCDF2.JRTCKXETXF.6YS6EN2CT7",
1035
+ "sourceSha256": "17e3e9aeb5add88d1f6ba78f7fdcfb2405a83a9388228adc46c8ae09da9ca2ce",
1036
+ "note": ""
1037
+ },
1038
+ {
1039
+ "id": "example-charge-3",
1040
+ "componentId": "web",
1041
+ "description": "CloudFront Australia internet egress (GB)",
1042
+ "quantity": 10,
1043
+ "price": 0.114,
1044
+ "unit": "GB",
1045
+ "currency": "USD",
1046
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonCloudFront/current/index.json#8JNNPNBQD9DSHV5K",
1047
+ "date": "2026-11-15",
1048
+ "region": "Australia / Global",
1049
+ "service": "AmazonCloudFront",
1050
+ "sku": "8JNNPNBQD9DSHV5K",
1051
+ "meter": "8JNNPNBQD9DSHV5K.JRTCKXETXF.Q3Z75P77EN",
1052
+ "sourceSha256": "17e3e9aeb5add88d1f6ba78f7fdcfb2405a83a9388228adc46c8ae09da9ca2ce",
1053
+ "note": ""
1054
+ },
1055
+ {
1056
+ "id": "example-charge-4",
1057
+ "componentId": "web",
1058
+ "description": "S3 assets and all retained object versions (GB-month)",
1059
+ "quantity": 1,
1060
+ "price": 0.025,
1061
+ "unit": "GB-Mo",
1062
+ "currency": "USD",
1063
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonS3/current/ap-southeast-2/index.json#5QVJMK36NJC9G6DC",
1064
+ "date": "2026-11-15",
1065
+ "region": "ap-southeast-2",
1066
+ "service": "AmazonS3",
1067
+ "sku": "5QVJMK36NJC9G6DC",
1068
+ "meter": "5QVJMK36NJC9G6DC.JRTCKXETXF.PGHJ3S3EYE",
1069
+ "sourceSha256": "77c43a9cc8b6c60ffb39c35ab05fe2526dea57fcfa838117a6b928de6e457af8",
1070
+ "note": ""
1071
+ },
1072
+ {
1073
+ "id": "example-charge-5",
1074
+ "componentId": "web",
1075
+ "description": "S3 asset uploads and listing requests",
1076
+ "quantity": 1000,
1077
+ "price": 5.5e-06,
1078
+ "unit": "Requests",
1079
+ "currency": "USD",
1080
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonS3/current/ap-southeast-2/index.json#U4DFWUZRRJK76GFK",
1081
+ "date": "2026-11-15",
1082
+ "region": "ap-southeast-2",
1083
+ "service": "AmazonS3",
1084
+ "sku": "U4DFWUZRRJK76GFK",
1085
+ "meter": "U4DFWUZRRJK76GFK.JRTCKXETXF.6YS6EN2CT7",
1086
+ "sourceSha256": "77c43a9cc8b6c60ffb39c35ab05fe2526dea57fcfa838117a6b928de6e457af8",
1087
+ "note": ""
1088
+ },
1089
+ {
1090
+ "id": "example-charge-6",
1091
+ "componentId": "web",
1092
+ "description": "S3 origin GET requests",
1093
+ "quantity": 10000,
1094
+ "price": 4.4e-07,
1095
+ "unit": "Requests",
1096
+ "currency": "USD",
1097
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonS3/current/ap-southeast-2/index.json#ZE67FX933AEQ43H2",
1098
+ "date": "2026-11-15",
1099
+ "region": "ap-southeast-2",
1100
+ "service": "AmazonS3",
1101
+ "sku": "ZE67FX933AEQ43H2",
1102
+ "meter": "ZE67FX933AEQ43H2.JRTCKXETXF.6YS6EN2CT7",
1103
+ "sourceSha256": "77c43a9cc8b6c60ffb39c35ab05fe2526dea57fcfa838117a6b928de6e457af8",
1104
+ "note": ""
1105
+ },
1106
+ {
1107
+ "id": "example-charge-7",
1108
+ "componentId": "cognito",
1109
+ "description": "Cognito Essentials monthly active users",
1110
+ "quantity": 100,
1111
+ "price": 0.015,
1112
+ "unit": "CognitoUserPoolsMAU",
1113
+ "currency": "USD",
1114
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonCognito/current/ap-southeast-2/index.json#JVU799QJR37664RR",
1115
+ "date": "2026-11-15",
1116
+ "region": "ap-southeast-2",
1117
+ "service": "AmazonCognito",
1118
+ "sku": "JVU799QJR37664RR",
1119
+ "meter": "JVU799QJR37664RR.JRTCKXETXF.6YS6EN2CT7",
1120
+ "sourceSha256": "351bee050447d176bc15bd5e47856f9e62bf356717ffd971eb633cdc93f56dc1",
1121
+ "note": ""
1122
+ },
1123
+ {
1124
+ "id": "example-charge-8",
1125
+ "componentId": "api",
1126
+ "description": "HTTP API requests",
1127
+ "quantity": 10000,
1128
+ "price": 1.29e-06,
1129
+ "unit": "Requests",
1130
+ "currency": "USD",
1131
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonApiGateway/current/ap-southeast-2/index.json#GHZQQPU8NMGFKBQZ",
1132
+ "date": "2026-11-15",
1133
+ "region": "ap-southeast-2",
1134
+ "service": "AmazonApiGateway",
1135
+ "sku": "GHZQQPU8NMGFKBQZ",
1136
+ "meter": "GHZQQPU8NMGFKBQZ.JRTCKXETXF.9NXBCPDZYR",
1137
+ "sourceSha256": "a51f2b47a8203fb6bc0ff10d7d19c28e29b84981cb2fa9f33be3064e46386dc1",
1138
+ "note": ""
1139
+ },
1140
+ {
1141
+ "id": "example-charge-9",
1142
+ "componentId": "api",
1143
+ "description": "API access log ingestion (GB)",
1144
+ "quantity": 0.5,
1145
+ "price": 0.67,
1146
+ "unit": "GB",
1147
+ "currency": "USD",
1148
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonCloudWatch/current/ap-southeast-2/index.json#VSJ57WXDQXM2VKQK",
1149
+ "date": "2026-11-15",
1150
+ "region": "ap-southeast-2",
1151
+ "service": "AmazonCloudWatch",
1152
+ "sku": "VSJ57WXDQXM2VKQK",
1153
+ "meter": "VSJ57WXDQXM2VKQK.JRTCKXETXF.6YS6EN2CT7",
1154
+ "sourceSha256": "41a1c77c3a62b48080d37dad91da22acf578f1d4d444de6786f1311802d78dcb",
1155
+ "note": ""
1156
+ },
1157
+ {
1158
+ "id": "example-charge-10",
1159
+ "componentId": "api",
1160
+ "description": "API access log storage (GB-month)",
1161
+ "quantity": 0.5,
1162
+ "price": 0.033,
1163
+ "unit": "GB-Mo",
1164
+ "currency": "USD",
1165
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonCloudWatch/current/ap-southeast-2/index.json#SXS5MH23MB3SHA9C",
1166
+ "date": "2026-11-15",
1167
+ "region": "ap-southeast-2",
1168
+ "service": "AmazonCloudWatch",
1169
+ "sku": "SXS5MH23MB3SHA9C",
1170
+ "meter": "SXS5MH23MB3SHA9C.JRTCKXETXF.6YS6EN2CT7",
1171
+ "sourceSha256": "41a1c77c3a62b48080d37dad91da22acf578f1d4d444de6786f1311802d78dcb",
1172
+ "note": ""
1173
+ },
1174
+ {
1175
+ "id": "example-charge-11",
1176
+ "componentId": "rag-fn",
1177
+ "description": "Lambda requests",
1178
+ "quantity": 10000,
1179
+ "price": 2e-07,
1180
+ "unit": "Request",
1181
+ "currency": "USD",
1182
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSLambda/current/ap-southeast-2/index.json#ZW6UHD4Q6EPUCZWU",
1183
+ "date": "2026-11-15",
1184
+ "region": "ap-southeast-2",
1185
+ "service": "AWSLambda",
1186
+ "sku": "ZW6UHD4Q6EPUCZWU",
1187
+ "meter": "ZW6UHD4Q6EPUCZWU.JRTCKXETXF.6YS6EN2CT7",
1188
+ "sourceSha256": "c05d058c61d691378a19a255a5087b4eea9a62dd8793aabf15338556ebb17a31",
1189
+ "note": ""
1190
+ },
1191
+ {
1192
+ "id": "example-charge-12",
1193
+ "componentId": "rag-fn",
1194
+ "description": "Lambda ARM 256 MiB \u00d7 5 seconds \u00d7 10,000 answers",
1195
+ "quantity": 12500,
1196
+ "price": 1.33334e-05,
1197
+ "unit": "Lambda-GB-Second",
1198
+ "currency": "USD",
1199
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSLambda/current/ap-southeast-2/index.json#KDEJ26SV7QK2N7DW",
1200
+ "date": "2026-11-15",
1201
+ "region": "ap-southeast-2",
1202
+ "service": "AWSLambda",
1203
+ "sku": "KDEJ26SV7QK2N7DW",
1204
+ "meter": "KDEJ26SV7QK2N7DW.JRTCKXETXF.6NBUNBXSC3",
1205
+ "sourceSha256": "c05d058c61d691378a19a255a5087b4eea9a62dd8793aabf15338556ebb17a31",
1206
+ "note": ""
1207
+ },
1208
+ {
1209
+ "id": "example-charge-13",
1210
+ "componentId": "rag-fn",
1211
+ "description": "Lambda log ingestion (GB)",
1212
+ "quantity": 0.5,
1213
+ "price": 0.67,
1214
+ "unit": "GB",
1215
+ "currency": "USD",
1216
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonCloudWatch/current/ap-southeast-2/index.json#VSJ57WXDQXM2VKQK",
1217
+ "date": "2026-11-15",
1218
+ "region": "ap-southeast-2",
1219
+ "service": "AmazonCloudWatch",
1220
+ "sku": "VSJ57WXDQXM2VKQK",
1221
+ "meter": "VSJ57WXDQXM2VKQK.JRTCKXETXF.6YS6EN2CT7",
1222
+ "sourceSha256": "41a1c77c3a62b48080d37dad91da22acf578f1d4d444de6786f1311802d78dcb",
1223
+ "note": ""
1224
+ },
1225
+ {
1226
+ "id": "example-charge-14",
1227
+ "componentId": "rag-fn",
1228
+ "description": "Lambda log storage (GB-month)",
1229
+ "quantity": 0.5,
1230
+ "price": 0.033,
1231
+ "unit": "GB-Mo",
1232
+ "currency": "USD",
1233
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonCloudWatch/current/ap-southeast-2/index.json#SXS5MH23MB3SHA9C",
1234
+ "date": "2026-11-15",
1235
+ "region": "ap-southeast-2",
1236
+ "service": "AmazonCloudWatch",
1237
+ "sku": "SXS5MH23MB3SHA9C",
1238
+ "meter": "SXS5MH23MB3SHA9C.JRTCKXETXF.6YS6EN2CT7",
1239
+ "sourceSha256": "41a1c77c3a62b48080d37dad91da22acf578f1d4d444de6786f1311802d78dcb",
1240
+ "note": ""
1241
+ },
1242
+ {
1243
+ "id": "example-charge-15",
1244
+ "componentId": "catalog",
1245
+ "description": "DynamoDB read request units; bounded scans and identity reads",
1246
+ "quantity": 1050000,
1247
+ "price": 1.425e-07,
1248
+ "unit": "ReadRequestUnits",
1249
+ "currency": "USD",
1250
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonDynamoDB/current/ap-southeast-2/index.json#BQCZ4TYN2JVHEH4Z",
1251
+ "date": "2026-11-15",
1252
+ "region": "ap-southeast-2",
1253
+ "service": "AmazonDynamoDB",
1254
+ "sku": "BQCZ4TYN2JVHEH4Z",
1255
+ "meter": "BQCZ4TYN2JVHEH4Z.JRTCKXETXF.6YS6EN2CT7",
1256
+ "sourceSha256": "d822fd12cc7b49c68f5a45d268e5bc3dca817d0170041d6fe1912bb6cc6f3417",
1257
+ "note": ""
1258
+ },
1259
+ {
1260
+ "id": "example-charge-16",
1261
+ "componentId": "catalog",
1262
+ "description": "DynamoDB conditional write request units",
1263
+ "quantity": 10000,
1264
+ "price": 7.1e-07,
1265
+ "unit": "WriteRequestUnits",
1266
+ "currency": "USD",
1267
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonDynamoDB/current/ap-southeast-2/index.json#X43FXEDHFRVHHYQR",
1268
+ "date": "2026-11-15",
1269
+ "region": "ap-southeast-2",
1270
+ "service": "AmazonDynamoDB",
1271
+ "sku": "X43FXEDHFRVHHYQR",
1272
+ "meter": "X43FXEDHFRVHHYQR.JRTCKXETXF.6YS6EN2CT7",
1273
+ "sourceSha256": "d822fd12cc7b49c68f5a45d268e5bc3dca817d0170041d6fe1912bb6cc6f3417",
1274
+ "note": ""
1275
+ },
1276
+ {
1277
+ "id": "example-charge-17",
1278
+ "componentId": "catalog",
1279
+ "description": "DynamoDB standard storage; free allowance assumed consumed",
1280
+ "quantity": 0.1,
1281
+ "price": 0.285,
1282
+ "unit": "GB-Mo",
1283
+ "currency": "USD",
1284
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonDynamoDB/current/ap-southeast-2/index.json#NF4X2QKU7Y7QVY5C",
1285
+ "date": "2026-11-15",
1286
+ "region": "ap-southeast-2",
1287
+ "service": "AmazonDynamoDB",
1288
+ "sku": "NF4X2QKU7Y7QVY5C",
1289
+ "meter": "NF4X2QKU7Y7QVY5C.JRTCKXETXF.VYAP54KATQ",
1290
+ "sourceSha256": "d822fd12cc7b49c68f5a45d268e5bc3dca817d0170041d6fe1912bb6cc6f3417",
1291
+ "note": "Conservative marginal cost with no free allowance applied."
1292
+ },
1293
+ {
1294
+ "id": "example-charge-18",
1295
+ "componentId": "catalog",
1296
+ "description": "DynamoDB point-in-time recovery storage (GB-month)",
1297
+ "quantity": 0.1,
1298
+ "price": 0.228,
1299
+ "unit": "GB-Mo",
1300
+ "currency": "USD",
1301
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonDynamoDB/current/ap-southeast-2/index.json#KHP6CW3RY2FP49W3",
1302
+ "date": "2026-11-15",
1303
+ "region": "ap-southeast-2",
1304
+ "service": "AmazonDynamoDB",
1305
+ "sku": "KHP6CW3RY2FP49W3",
1306
+ "meter": "KHP6CW3RY2FP49W3.JRTCKXETXF.6YS6EN2CT7",
1307
+ "sourceSha256": "d822fd12cc7b49c68f5a45d268e5bc3dca817d0170041d6fe1912bb6cc6f3417",
1308
+ "note": ""
1309
+ },
1310
+ {
1311
+ "id": "example-charge-19",
1312
+ "componentId": "model",
1313
+ "description": "Nova Lite input tokens (1,000-token units)",
1314
+ "quantity": 20000,
1315
+ "price": 6.3e-05,
1316
+ "unit": "1K tokens",
1317
+ "currency": "USD",
1318
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/ap-southeast-2/index.json#VE26ZEBZ95PNKV6H",
1319
+ "date": "2026-11-15",
1320
+ "region": "ap-southeast-2",
1321
+ "service": "AmazonBedrock",
1322
+ "sku": "VE26ZEBZ95PNKV6H",
1323
+ "meter": "VE26ZEBZ95PNKV6H.JRTCKXETXF.6YS6EN2CT7",
1324
+ "sourceSha256": "6a873b73dfa422e8e32f73a9d43cc2aaf4bb69a03a02030404186792cce98977",
1325
+ "note": ""
1326
+ },
1327
+ {
1328
+ "id": "example-charge-20",
1329
+ "componentId": "model",
1330
+ "description": "Nova Lite output tokens (1,000-token units)",
1331
+ "quantity": 10000,
1332
+ "price": 0.000252,
1333
+ "unit": "1K tokens",
1334
+ "currency": "USD",
1335
+ "source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/ap-southeast-2/index.json#8QD3UNYB3WE6E2YA",
1336
+ "date": "2026-11-15",
1337
+ "region": "ap-southeast-2",
1338
+ "service": "AmazonBedrock",
1339
+ "sku": "8QD3UNYB3WE6E2YA",
1340
+ "meter": "8QD3UNYB3WE6E2YA.JRTCKXETXF.6YS6EN2CT7",
1341
+ "sourceSha256": "6a873b73dfa422e8e32f73a9d43cc2aaf4bb69a03a02030404186792cce98977",
1342
+ "note": ""
1343
+ },
1344
+ {
1345
+ "id": "example-charge-21",
1346
+ "componentId": "sp-src",
1347
+ "description": "Existing local SharePoint contract fixture",
1348
+ "quantity": 1,
1349
+ "price": 0,
1350
+ "unit": "existing reference",
1351
+ "currency": "USD",
1352
+ "source": "Example scope: existing browser or local normalized source-contract fixture; no incremental AWS resource.",
1353
+ "date": "2026-11-15",
1354
+ "region": "Local reference",
1355
+ "service": "Existing reference",
1356
+ "note": "Existing paid tenant/license integrations are not part of this local contract example."
1357
+ },
1358
+ {
1359
+ "id": "example-charge-22",
1360
+ "componentId": "cf-src",
1361
+ "description": "Existing local Confluence contract fixture",
1362
+ "quantity": 1,
1363
+ "price": 0,
1364
+ "unit": "existing reference",
1365
+ "currency": "USD",
1366
+ "source": "Example scope: existing browser or local normalized source-contract fixture; no incremental AWS resource.",
1367
+ "date": "2026-11-15",
1368
+ "region": "Local reference",
1369
+ "service": "Existing reference",
1370
+ "note": "Existing paid tenant/license integrations are not part of this local contract example."
1371
+ }
1372
+ ],
1373
+ "priceSources": [
1374
+ {
1375
+ "service": "AmazonCloudFront",
1376
+ "url": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonCloudFront/current/index.json",
1377
+ "bytes": 226901,
1378
+ "sha256": "17e3e9aeb5add88d1f6ba78f7fdcfb2405a83a9388228adc46c8ae09da9ca2ce",
1379
+ "publicationDate": "2026-10-19T15:05:00Z",
1380
+ "products": 150
1381
+ },
1382
+ {
1383
+ "service": "AmazonApiGateway",
1384
+ "url": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonApiGateway/current/ap-southeast-2/index.json",
1385
+ "bytes": 19850,
1386
+ "sha256": "a51f2b47a8203fb6bc0ff10d7d19c28e29b84981cb2fa9f33be3064e46386dc1",
1387
+ "publicationDate": "2026-11-12T21:59:20Z",
1388
+ "products": 14
1389
+ },
1390
+ {
1391
+ "service": "AmazonDynamoDB",
1392
+ "url": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonDynamoDB/current/ap-southeast-2/index.json",
1393
+ "bytes": 50362,
1394
+ "sha256": "d822fd12cc7b49c68f5a45d268e5bc3dca817d0170041d6fe1912bb6cc6f3417",
1395
+ "publicationDate": "2026-11-11T15:36:12Z",
1396
+ "products": 32
1397
+ },
1398
+ {
1399
+ "service": "AmazonCognito",
1400
+ "url": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonCognito/current/ap-southeast-2/index.json",
1401
+ "bytes": 72152,
1402
+ "sha256": "351bee050447d176bc15bd5e47856f9e62bf356717ffd971eb633cdc93f56dc1",
1403
+ "publicationDate": "2026-10-20T23:38:14Z",
1404
+ "products": 45
1405
+ },
1406
+ {
1407
+ "service": "AmazonBedrock",
1408
+ "url": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/ap-southeast-2/index.json",
1409
+ "bytes": 801043,
1410
+ "sha256": "6a873b73dfa422e8e32f73a9d43cc2aaf4bb69a03a02030404186792cce98977",
1411
+ "publicationDate": "2026-11-11T01:30:37Z",
1412
+ "products": 575
1413
+ },
1414
+ {
1415
+ "service": "AmazonS3",
1416
+ "url": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonS3/current/ap-southeast-2/index.json",
1417
+ "bytes": 526665,
1418
+ "sha256": "77c43a9cc8b6c60ffb39c35ab05fe2526dea57fcfa838117a6b928de6e457af8",
1419
+ "publicationDate": "2026-11-09T15:43:10Z",
1420
+ "products": 386
1421
+ },
1422
+ {
1423
+ "service": "AWSLambda",
1424
+ "url": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSLambda/current/ap-southeast-2/index.json",
1425
+ "bytes": 643553,
1426
+ "sha256": "c05d058c61d691378a19a255a5087b4eea9a62dd8793aabf15338556ebb17a31",
1427
+ "publicationDate": "2026-11-11T22:30:04Z",
1428
+ "products": 489
1429
+ },
1430
+ {
1431
+ "service": "AmazonCloudWatch",
1432
+ "url": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonCloudWatch/current/ap-southeast-2/index.json",
1433
+ "bytes": 207680,
1434
+ "sha256": "41a1c77c3a62b48080d37dad91da22acf578f1d4d444de6786f1311802d78dcb",
1435
+ "publicationDate": "2026-11-04T21:35:32Z",
1436
+ "products": 114
1437
+ }
1438
+ ]
1439
+ }
1440
+ }