@rathnasgala2/schemas 3.21.0 → 3.23.0

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.
Files changed (50) hide show
  1. package/THIRD_PARTY_LICENSES.json +1 -1
  2. package/diagnostics/diagnostic-map.json +236 -24
  3. package/docs/catalogs/app-components.json +1397 -95
  4. package/docs/catalogs/app-routes.json +413 -3
  5. package/docs/catalogs/schema-inventory.json +5 -5
  6. package/examples/valid/build-input/rules.json +229 -28
  7. package/examples/valid/interactions-config/rules.json +22 -0
  8. package/examples/valid/publication/rules.json +192 -13
  9. package/fixtures/boundary/build-input/rules.json +265 -33
  10. package/fixtures/boundary/interactions-config/rules.json +22 -0
  11. package/fixtures/boundary/publication/rules.json +243 -33
  12. package/fixtures/invalid/build-input/GRAPHEME_LENGTH_INVALID/cases.json +19 -8
  13. package/fixtures/invalid/build-input/REQUEST_FIELD_UNKNOWN/cases.json +80 -16
  14. package/fixtures/invalid/build-input/SCHEMA_ARRAY_DUPLICATE/cases.json +11 -0
  15. package/fixtures/invalid/build-input/SCHEMA_ARRAY_TOO_LONG/cases.json +15 -0
  16. package/fixtures/invalid/build-input/SCHEMA_CONSTANT_INVALID/cases.json +22 -0
  17. package/fixtures/invalid/build-input/SCHEMA_ENUM_INVALID/cases.json +22 -0
  18. package/fixtures/invalid/build-input/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +171 -39
  19. package/fixtures/invalid/build-input/SCHEMA_TYPE_INVALID/cases.json +122 -11
  20. package/fixtures/invalid/build-input/SCHEMA_UNION_INVALID/cases.json +9 -0
  21. package/fixtures/invalid/interactions-config/REQUEST_FIELD_UNKNOWN/cases.json +11 -0
  22. package/fixtures/invalid/interactions-config/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +11 -0
  23. package/fixtures/invalid/interactions-config/SCHEMA_TYPE_INVALID/cases.json +20 -0
  24. package/fixtures/invalid/publication/GRAPHEME_LENGTH_INVALID/cases.json +22 -11
  25. package/fixtures/invalid/publication/REQUEST_FIELD_UNKNOWN/cases.json +62 -9
  26. package/fixtures/invalid/publication/SCHEMA_ARRAY_DUPLICATE/cases.json +13 -0
  27. package/fixtures/invalid/publication/SCHEMA_ARRAY_TOO_LONG/cases.json +15 -0
  28. package/fixtures/invalid/publication/SCHEMA_CONSTANT_INVALID/cases.json +22 -0
  29. package/fixtures/invalid/publication/SCHEMA_ENUM_INVALID/cases.json +22 -0
  30. package/fixtures/invalid/publication/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +143 -20
  31. package/fixtures/invalid/publication/SCHEMA_TYPE_INVALID/cases.json +95 -4
  32. package/fixtures/invalid/publication/SCHEMA_UNION_INVALID/cases.json +11 -0
  33. package/fixtures/manifest.json +1827 -179
  34. package/fixtures/s2/empty-modules-placements.json +943 -0
  35. package/fixtures/s2/manifest.json +13 -1
  36. package/fixtures/s2/normalized-inputs.json +1704 -0
  37. package/fixtures/unknown-field/build-input/rules.json +118 -21
  38. package/fixtures/unknown-field/interactions-config/rules.json +14 -0
  39. package/fixtures/unknown-field/publication/rules.json +92 -9
  40. package/generated/browser/validator-core.mjs +3 -3
  41. package/generated/typescript/contracts/build-input.d.ts +46 -5
  42. package/generated/typescript/contracts/interactions-config.d.ts +3 -0
  43. package/generated/typescript/contracts/publication.d.ts +40 -5
  44. package/openapi/http-catalog.json +496 -2
  45. package/openapi/openapi.yaml +16725 -10691
  46. package/package.json +1 -1
  47. package/sbom.cdx.json +23 -23
  48. package/schemas/build-input.schema.json +91 -4
  49. package/schemas/interactions-config.schema.json +7 -0
  50. package/schemas/publication.schema.json +85 -7
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "2.0.0",
3
3
  "sourceDesignRevision": "a53052955ceb6c1aa10c886289dc832eedfe6de0a00004df07d353ac19c4403a",
4
- "openApiDigest": "sha256:f015c933c536a3a0030eeb06986d014debd8c929b968c82df9817976492fd6d3",
4
+ "openApiDigest": "sha256:a0c1baaa517f51014745dd3455da7376ff109de83a56d0bd76554a43900a9c45",
5
5
  "operations": [
6
6
  {
7
7
  "operationId": "getInternalHealth",
@@ -842,6 +842,84 @@
842
842
  "apiKeyScope": null,
843
843
  "sourceFragment": "organizations"
844
844
  },
845
+ {
846
+ "operationId": "getOrganizationsByOrganizationIdPublicationsByPublicationIdContactFormSettings",
847
+ "method": "GET",
848
+ "path": "/v2/organizations/{organizationId}/publications/{publicationId}/contact-form-settings",
849
+ "purpose": "read this publication's contact form settings at the main branch head",
850
+ "capabilityKey": "publication.view",
851
+ "conditionalCapabilityKeys": [],
852
+ "activationGate": "MVP",
853
+ "assuranceClass": "SESSION",
854
+ "actionGrant": "none",
855
+ "apiKeyScope": null,
856
+ "sourceFragment": "interaction-settings"
857
+ },
858
+ {
859
+ "operationId": "putOrganizationsByOrganizationIdPublicationsByPublicationIdContactFormSettings",
860
+ "method": "PUT",
861
+ "path": "/v2/organizations/{organizationId}/publications/{publicationId}/contact-form-settings",
862
+ "purpose": "save this publication's contact form settings as a repository change",
863
+ "capabilityKey": "publication.settings.manage",
864
+ "conditionalCapabilityKeys": [],
865
+ "activationGate": "MVP",
866
+ "assuranceClass": "SESSION",
867
+ "actionGrant": "none",
868
+ "apiKeyScope": null,
869
+ "sourceFragment": "interaction-settings"
870
+ },
871
+ {
872
+ "operationId": "getOrganizationsByOrganizationIdPublicationsByPublicationIdContactMessages",
873
+ "method": "GET",
874
+ "path": "/v2/organizations/{organizationId}/publications/{publicationId}/contact-messages",
875
+ "purpose": "list a site's contact-form messages",
876
+ "capabilityKey": "publication.audience.read",
877
+ "conditionalCapabilityKeys": [],
878
+ "activationGate": "MVP",
879
+ "assuranceClass": "SESSION",
880
+ "actionGrant": "none",
881
+ "apiKeyScope": null,
882
+ "sourceFragment": "audience"
883
+ },
884
+ {
885
+ "operationId": "postOrganizationsByOrganizationIdPublicationsByPublicationIdContactMessagesExport",
886
+ "method": "POST",
887
+ "path": "/v2/organizations/{organizationId}/publications/{publicationId}/contact-messages:export",
888
+ "purpose": "export a site's contact-form messages as CSV",
889
+ "capabilityKey": "publication.audience.export",
890
+ "conditionalCapabilityKeys": [],
891
+ "activationGate": "MVP",
892
+ "assuranceClass": "RECENT_AUTHENTICATION",
893
+ "actionGrant": "none",
894
+ "apiKeyScope": null,
895
+ "sourceFragment": "audience"
896
+ },
897
+ {
898
+ "operationId": "deleteOrganizationsByOrganizationIdPublicationsByPublicationIdContactMessagesByMessageId",
899
+ "method": "DELETE",
900
+ "path": "/v2/organizations/{organizationId}/publications/{publicationId}/contact-messages/{messageId}",
901
+ "purpose": "delete one contact-form message",
902
+ "capabilityKey": "publication.audience.manage",
903
+ "conditionalCapabilityKeys": [],
904
+ "activationGate": "MVP",
905
+ "assuranceClass": "SESSION",
906
+ "actionGrant": "none",
907
+ "apiKeyScope": null,
908
+ "sourceFragment": "audience"
909
+ },
910
+ {
911
+ "operationId": "patchOrganizationsByOrganizationIdPublicationsByPublicationIdContactMessagesByMessageId",
912
+ "method": "PATCH",
913
+ "path": "/v2/organizations/{organizationId}/publications/{publicationId}/contact-messages/{messageId}",
914
+ "purpose": "mark one contact-form message handled or new",
915
+ "capabilityKey": "publication.audience.manage",
916
+ "conditionalCapabilityKeys": [],
917
+ "activationGate": "MVP",
918
+ "assuranceClass": "SESSION",
919
+ "actionGrant": "none",
920
+ "apiKeyScope": null,
921
+ "sourceFragment": "audience"
922
+ },
845
923
  {
846
924
  "operationId": "getOrganizationsByOrganizationIdPublicationsByPublicationIdContent",
847
925
  "method": "GET",
@@ -1089,6 +1167,19 @@
1089
1167
  "apiKeyScope": null,
1090
1168
  "sourceFragment": "domains"
1091
1169
  },
1170
+ {
1171
+ "operationId": "getOrganizationsByOrganizationIdPublicationsByPublicationIdFollowers",
1172
+ "method": "GET",
1173
+ "path": "/v2/organizations/{organizationId}/publications/{publicationId}/followers",
1174
+ "purpose": "list the followers of a site's authors",
1175
+ "capabilityKey": "publication.audience.read",
1176
+ "conditionalCapabilityKeys": [],
1177
+ "activationGate": "MVP",
1178
+ "assuranceClass": "SESSION",
1179
+ "actionGrant": "none",
1180
+ "apiKeyScope": null,
1181
+ "sourceFragment": "audience"
1182
+ },
1092
1183
  {
1093
1184
  "operationId": "getOrganizationsByOrganizationIdPublicationsByPublicationIdGenerationPolicy",
1094
1185
  "method": "GET",
@@ -1258,6 +1349,84 @@
1258
1349
  "apiKeyScope": null,
1259
1350
  "sourceFragment": "moderation"
1260
1351
  },
1352
+ {
1353
+ "operationId": "getOrganizationsByOrganizationIdPublicationsByPublicationIdNewsletterIssues",
1354
+ "method": "GET",
1355
+ "path": "/v2/organizations/{organizationId}/publications/{publicationId}/newsletter-issues",
1356
+ "purpose": "list a site's newsletter send log",
1357
+ "capabilityKey": "publication.audience.read",
1358
+ "conditionalCapabilityKeys": [],
1359
+ "activationGate": "MVP",
1360
+ "assuranceClass": "SESSION",
1361
+ "actionGrant": "none",
1362
+ "apiKeyScope": null,
1363
+ "sourceFragment": "audience"
1364
+ },
1365
+ {
1366
+ "operationId": "getOrganizationsByOrganizationIdPublicationsByPublicationIdNewsletterSettings",
1367
+ "method": "GET",
1368
+ "path": "/v2/organizations/{organizationId}/publications/{publicationId}/newsletter-settings",
1369
+ "purpose": "read this publication's newsletter settings at the main branch head",
1370
+ "capabilityKey": "publication.view",
1371
+ "conditionalCapabilityKeys": [],
1372
+ "activationGate": "MVP",
1373
+ "assuranceClass": "SESSION",
1374
+ "actionGrant": "none",
1375
+ "apiKeyScope": null,
1376
+ "sourceFragment": "interaction-settings"
1377
+ },
1378
+ {
1379
+ "operationId": "putOrganizationsByOrganizationIdPublicationsByPublicationIdNewsletterSettings",
1380
+ "method": "PUT",
1381
+ "path": "/v2/organizations/{organizationId}/publications/{publicationId}/newsletter-settings",
1382
+ "purpose": "save this publication's newsletter settings as a repository change",
1383
+ "capabilityKey": "publication.settings.manage",
1384
+ "conditionalCapabilityKeys": [],
1385
+ "activationGate": "MVP",
1386
+ "assuranceClass": "SESSION",
1387
+ "actionGrant": "none",
1388
+ "apiKeyScope": null,
1389
+ "sourceFragment": "interaction-settings"
1390
+ },
1391
+ {
1392
+ "operationId": "getOrganizationsByOrganizationIdPublicationsByPublicationIdNewsletterSubscribers",
1393
+ "method": "GET",
1394
+ "path": "/v2/organizations/{organizationId}/publications/{publicationId}/newsletter-subscribers",
1395
+ "purpose": "list a site's newsletter subscribers",
1396
+ "capabilityKey": "publication.audience.read",
1397
+ "conditionalCapabilityKeys": [],
1398
+ "activationGate": "MVP",
1399
+ "assuranceClass": "SESSION",
1400
+ "actionGrant": "none",
1401
+ "apiKeyScope": null,
1402
+ "sourceFragment": "audience"
1403
+ },
1404
+ {
1405
+ "operationId": "postOrganizationsByOrganizationIdPublicationsByPublicationIdNewsletterSubscribersExport",
1406
+ "method": "POST",
1407
+ "path": "/v2/organizations/{organizationId}/publications/{publicationId}/newsletter-subscribers:export",
1408
+ "purpose": "export a site's newsletter subscribers as CSV",
1409
+ "capabilityKey": "publication.audience.export",
1410
+ "conditionalCapabilityKeys": [],
1411
+ "activationGate": "MVP",
1412
+ "assuranceClass": "RECENT_AUTHENTICATION",
1413
+ "actionGrant": "none",
1414
+ "apiKeyScope": null,
1415
+ "sourceFragment": "audience"
1416
+ },
1417
+ {
1418
+ "operationId": "deleteOrganizationsByOrganizationIdPublicationsByPublicationIdNewsletterSubscribersBySubscriberId",
1419
+ "method": "DELETE",
1420
+ "path": "/v2/organizations/{organizationId}/publications/{publicationId}/newsletter-subscribers/{subscriberId}",
1421
+ "purpose": "remove one newsletter subscriber",
1422
+ "capabilityKey": "publication.audience.manage",
1423
+ "conditionalCapabilityKeys": [],
1424
+ "activationGate": "MVP",
1425
+ "assuranceClass": "SESSION",
1426
+ "actionGrant": "none",
1427
+ "apiKeyScope": null,
1428
+ "sourceFragment": "audience"
1429
+ },
1261
1430
  {
1262
1431
  "operationId": "getOrganizationsByOrganizationIdPublicationsByPublicationIdPolicySettings",
1263
1432
  "method": "GET",
@@ -1619,6 +1788,32 @@
1619
1788
  "apiKeyScope": null,
1620
1789
  "sourceFragment": "organizations"
1621
1790
  },
1791
+ {
1792
+ "operationId": "getOrganizationsByOrganizationIdPublicationsByPublicationIdSharingSettings",
1793
+ "method": "GET",
1794
+ "path": "/v2/organizations/{organizationId}/publications/{publicationId}/sharing-settings",
1795
+ "purpose": "read this publication's share buttons at the main branch head",
1796
+ "capabilityKey": "publication.view",
1797
+ "conditionalCapabilityKeys": [],
1798
+ "activationGate": "MVP",
1799
+ "assuranceClass": "SESSION",
1800
+ "actionGrant": "none",
1801
+ "apiKeyScope": null,
1802
+ "sourceFragment": "interaction-settings"
1803
+ },
1804
+ {
1805
+ "operationId": "putOrganizationsByOrganizationIdPublicationsByPublicationIdSharingSettings",
1806
+ "method": "PUT",
1807
+ "path": "/v2/organizations/{organizationId}/publications/{publicationId}/sharing-settings",
1808
+ "purpose": "save this publication's share buttons as a repository change",
1809
+ "capabilityKey": "publication.settings.manage",
1810
+ "conditionalCapabilityKeys": [],
1811
+ "activationGate": "MVP",
1812
+ "assuranceClass": "SESSION",
1813
+ "actionGrant": "none",
1814
+ "apiKeyScope": null,
1815
+ "sourceFragment": "interaction-settings"
1816
+ },
1622
1817
  {
1623
1818
  "operationId": "getOrganizationsByOrganizationIdPublicationsByPublicationIdSite",
1624
1819
  "method": "GET",
@@ -2191,6 +2386,84 @@
2191
2386
  "apiKeyScope": null,
2192
2387
  "sourceFragment": "public-interactions"
2193
2388
  },
2389
+ {
2390
+ "operationId": "getPublicNewsletterConfirmationsByToken",
2391
+ "method": "GET",
2392
+ "path": "/v2/public/newsletter-confirmations/{token}",
2393
+ "purpose": "read one newsletter confirmation token",
2394
+ "capabilityKey": null,
2395
+ "conditionalCapabilityKeys": [],
2396
+ "activationGate": "MVP",
2397
+ "assuranceClass": "SESSION",
2398
+ "actionGrant": "none",
2399
+ "apiKeyScope": null,
2400
+ "sourceFragment": "audience"
2401
+ },
2402
+ {
2403
+ "operationId": "postPublicNewsletterConfirmationsByTokenConfirm",
2404
+ "method": "POST",
2405
+ "path": "/v2/public/newsletter-confirmations/{token}:confirm",
2406
+ "purpose": "confirm one newsletter subscription request",
2407
+ "capabilityKey": null,
2408
+ "conditionalCapabilityKeys": [],
2409
+ "activationGate": "MVP",
2410
+ "assuranceClass": "SESSION",
2411
+ "actionGrant": "none",
2412
+ "apiKeyScope": null,
2413
+ "sourceFragment": "audience"
2414
+ },
2415
+ {
2416
+ "operationId": "getPublicNewsletterSubscriptionsByToken",
2417
+ "method": "GET",
2418
+ "path": "/v2/public/newsletter-subscriptions/{token}",
2419
+ "purpose": "read one newsletter subscription by its manage token",
2420
+ "capabilityKey": null,
2421
+ "conditionalCapabilityKeys": [],
2422
+ "activationGate": "MVP",
2423
+ "assuranceClass": "SESSION",
2424
+ "actionGrant": "none",
2425
+ "apiKeyScope": null,
2426
+ "sourceFragment": "audience"
2427
+ },
2428
+ {
2429
+ "operationId": "postPublicNewsletterSubscriptionsByTokenResubscribe",
2430
+ "method": "POST",
2431
+ "path": "/v2/public/newsletter-subscriptions/{token}:resubscribe",
2432
+ "purpose": "resubscribe one newsletter subscription by its manage token",
2433
+ "capabilityKey": null,
2434
+ "conditionalCapabilityKeys": [],
2435
+ "activationGate": "MVP",
2436
+ "assuranceClass": "SESSION",
2437
+ "actionGrant": "none",
2438
+ "apiKeyScope": null,
2439
+ "sourceFragment": "audience"
2440
+ },
2441
+ {
2442
+ "operationId": "postPublicNewsletterSubscriptionsByTokenUnsubscribe",
2443
+ "method": "POST",
2444
+ "path": "/v2/public/newsletter-subscriptions/{token}:unsubscribe",
2445
+ "purpose": "unsubscribe one newsletter subscription by its manage token",
2446
+ "capabilityKey": null,
2447
+ "conditionalCapabilityKeys": [],
2448
+ "activationGate": "MVP",
2449
+ "assuranceClass": "SESSION",
2450
+ "actionGrant": "none",
2451
+ "apiKeyScope": null,
2452
+ "sourceFragment": "audience"
2453
+ },
2454
+ {
2455
+ "operationId": "postPublicNotificationUnsubscribesByToken",
2456
+ "method": "POST",
2457
+ "path": "/v2/public/notification-unsubscribes/{token}",
2458
+ "purpose": "turn one notification category off by its email unsubscribe link",
2459
+ "capabilityKey": null,
2460
+ "conditionalCapabilityKeys": [],
2461
+ "activationGate": "MVP",
2462
+ "assuranceClass": "SESSION",
2463
+ "actionGrant": "none",
2464
+ "apiKeyScope": null,
2465
+ "sourceFragment": "notifications"
2466
+ },
2194
2467
  {
2195
2468
  "operationId": "getPublicPublicationsByPublicationId",
2196
2469
  "method": "GET",
@@ -2204,6 +2477,58 @@
2204
2477
  "apiKeyScope": null,
2205
2478
  "sourceFragment": "public-interactions"
2206
2479
  },
2480
+ {
2481
+ "operationId": "deletePublicPublicationsByPublicationIdAuthorsByAuthorIdFollow",
2482
+ "method": "DELETE",
2483
+ "path": "/v2/public/publications/{publicationId}/authors/{authorId}/follow",
2484
+ "purpose": "unfollow one author of a site as the signed-in reader",
2485
+ "capabilityKey": null,
2486
+ "conditionalCapabilityKeys": [],
2487
+ "activationGate": "MVP",
2488
+ "assuranceClass": "SESSION",
2489
+ "actionGrant": "none",
2490
+ "apiKeyScope": null,
2491
+ "sourceFragment": "audience"
2492
+ },
2493
+ {
2494
+ "operationId": "getPublicPublicationsByPublicationIdAuthorsByAuthorIdFollow",
2495
+ "method": "GET",
2496
+ "path": "/v2/public/publications/{publicationId}/authors/{authorId}/follow",
2497
+ "purpose": "read whether the reader follows one author of a site",
2498
+ "capabilityKey": null,
2499
+ "conditionalCapabilityKeys": [],
2500
+ "activationGate": "MVP",
2501
+ "assuranceClass": "SESSION",
2502
+ "actionGrant": "none",
2503
+ "apiKeyScope": null,
2504
+ "sourceFragment": "audience"
2505
+ },
2506
+ {
2507
+ "operationId": "putPublicPublicationsByPublicationIdAuthorsByAuthorIdFollow",
2508
+ "method": "PUT",
2509
+ "path": "/v2/public/publications/{publicationId}/authors/{authorId}/follow",
2510
+ "purpose": "follow one author of a site as the signed-in reader",
2511
+ "capabilityKey": null,
2512
+ "conditionalCapabilityKeys": [],
2513
+ "activationGate": "MVP",
2514
+ "assuranceClass": "SESSION",
2515
+ "actionGrant": "none",
2516
+ "apiKeyScope": null,
2517
+ "sourceFragment": "audience"
2518
+ },
2519
+ {
2520
+ "operationId": "postPublicPublicationsByPublicationIdContactMessages",
2521
+ "method": "POST",
2522
+ "path": "/v2/public/publications/{publicationId}/contact-messages",
2523
+ "purpose": "send a message to a site's owners from its contact form",
2524
+ "capabilityKey": null,
2525
+ "conditionalCapabilityKeys": [],
2526
+ "activationGate": "MVP",
2527
+ "assuranceClass": "SESSION",
2528
+ "actionGrant": "none",
2529
+ "apiKeyScope": null,
2530
+ "sourceFragment": "audience"
2531
+ },
2207
2532
  {
2208
2533
  "operationId": "getPublicPublicationsByPublicationIdContentsByContentIdComments",
2209
2534
  "method": "GET",
@@ -2269,6 +2594,32 @@
2269
2594
  "apiKeyScope": null,
2270
2595
  "sourceFragment": "public-interactions"
2271
2596
  },
2597
+ {
2598
+ "operationId": "getPublicPublicationsByPublicationIdInteractionCounts",
2599
+ "method": "GET",
2600
+ "path": "/v2/public/publications/{publicationId}/interaction-counts",
2601
+ "purpose": "read the public reaction and comment counts of several posts",
2602
+ "capabilityKey": null,
2603
+ "conditionalCapabilityKeys": [],
2604
+ "activationGate": "MVP",
2605
+ "assuranceClass": "SESSION",
2606
+ "actionGrant": "none",
2607
+ "apiKeyScope": null,
2608
+ "sourceFragment": "audience"
2609
+ },
2610
+ {
2611
+ "operationId": "postPublicPublicationsByPublicationIdNewsletterSubscriptions",
2612
+ "method": "POST",
2613
+ "path": "/v2/public/publications/{publicationId}/newsletter-subscriptions",
2614
+ "purpose": "ask to subscribe an address to a site newsletter",
2615
+ "capabilityKey": null,
2616
+ "conditionalCapabilityKeys": [],
2617
+ "activationGate": "MVP",
2618
+ "assuranceClass": "SESSION",
2619
+ "actionGrant": "none",
2620
+ "apiKeyScope": null,
2621
+ "sourceFragment": "audience"
2622
+ },
2272
2623
  {
2273
2624
  "operationId": "postReaderAuthorizations",
2274
2625
  "method": "POST",
@@ -2464,6 +2815,45 @@
2464
2815
  "apiKeyScope": null,
2465
2816
  "sourceFragment": "self"
2466
2817
  },
2818
+ {
2819
+ "operationId": "getSelfFollowingFeed",
2820
+ "method": "GET",
2821
+ "path": "/v2/self/following-feed",
2822
+ "purpose": "list the announced posts of the authors the signed-in person follows",
2823
+ "capabilityKey": null,
2824
+ "conditionalCapabilityKeys": [],
2825
+ "activationGate": "MVP",
2826
+ "assuranceClass": "SESSION",
2827
+ "actionGrant": "none",
2828
+ "apiKeyScope": null,
2829
+ "sourceFragment": "audience"
2830
+ },
2831
+ {
2832
+ "operationId": "getSelfFollows",
2833
+ "method": "GET",
2834
+ "path": "/v2/self/follows",
2835
+ "purpose": "list the authors the signed-in person follows",
2836
+ "capabilityKey": null,
2837
+ "conditionalCapabilityKeys": [],
2838
+ "activationGate": "MVP",
2839
+ "assuranceClass": "SESSION",
2840
+ "actionGrant": "none",
2841
+ "apiKeyScope": null,
2842
+ "sourceFragment": "audience"
2843
+ },
2844
+ {
2845
+ "operationId": "deleteSelfFollowsByPublicationIdByAuthorId",
2846
+ "method": "DELETE",
2847
+ "path": "/v2/self/follows/{publicationId}/{authorId}",
2848
+ "purpose": "unfollow one author from the App",
2849
+ "capabilityKey": null,
2850
+ "conditionalCapabilityKeys": [],
2851
+ "activationGate": "MVP",
2852
+ "assuranceClass": "SESSION",
2853
+ "actionGrant": "none",
2854
+ "apiKeyScope": null,
2855
+ "sourceFragment": "audience"
2856
+ },
2467
2857
  {
2468
2858
  "operationId": "postSelfIdentityLinks",
2469
2859
  "method": "POST",
@@ -2490,6 +2880,71 @@
2490
2880
  "apiKeyScope": null,
2491
2881
  "sourceFragment": "self"
2492
2882
  },
2883
+ {
2884
+ "operationId": "getSelfNotificationPreferences",
2885
+ "method": "GET",
2886
+ "path": "/v2/self/notification-preferences",
2887
+ "purpose": "read the signed-in person's notification email preferences",
2888
+ "capabilityKey": null,
2889
+ "conditionalCapabilityKeys": [],
2890
+ "activationGate": "MVP",
2891
+ "assuranceClass": "SESSION",
2892
+ "actionGrant": "none",
2893
+ "apiKeyScope": null,
2894
+ "sourceFragment": "notifications"
2895
+ },
2896
+ {
2897
+ "operationId": "putSelfNotificationPreferences",
2898
+ "method": "PUT",
2899
+ "path": "/v2/self/notification-preferences",
2900
+ "purpose": "replace the signed-in person's notification email preferences",
2901
+ "capabilityKey": null,
2902
+ "conditionalCapabilityKeys": [],
2903
+ "activationGate": "MVP",
2904
+ "assuranceClass": "SESSION",
2905
+ "actionGrant": "none",
2906
+ "apiKeyScope": null,
2907
+ "sourceFragment": "notifications"
2908
+ },
2909
+ {
2910
+ "operationId": "getSelfNotifications",
2911
+ "method": "GET",
2912
+ "path": "/v2/self/notifications",
2913
+ "purpose": "list the signed-in person's notifications",
2914
+ "capabilityKey": null,
2915
+ "conditionalCapabilityKeys": [],
2916
+ "activationGate": "MVP",
2917
+ "assuranceClass": "SESSION",
2918
+ "actionGrant": "none",
2919
+ "apiKeyScope": null,
2920
+ "sourceFragment": "notifications"
2921
+ },
2922
+ {
2923
+ "operationId": "postSelfNotificationsMarkRead",
2924
+ "method": "POST",
2925
+ "path": "/v2/self/notifications:mark-read",
2926
+ "purpose": "mark notifications as read",
2927
+ "capabilityKey": null,
2928
+ "conditionalCapabilityKeys": [],
2929
+ "activationGate": "MVP",
2930
+ "assuranceClass": "SESSION",
2931
+ "actionGrant": "none",
2932
+ "apiKeyScope": null,
2933
+ "sourceFragment": "notifications"
2934
+ },
2935
+ {
2936
+ "operationId": "getSelfNotificationsUnreadCount",
2937
+ "method": "GET",
2938
+ "path": "/v2/self/notifications/unread-count",
2939
+ "purpose": "read the signed-in person's unread notification count",
2940
+ "capabilityKey": null,
2941
+ "conditionalCapabilityKeys": [],
2942
+ "activationGate": "MVP",
2943
+ "assuranceClass": "SESSION",
2944
+ "actionGrant": "none",
2945
+ "apiKeyScope": null,
2946
+ "sourceFragment": "notifications"
2947
+ },
2493
2948
  {
2494
2949
  "operationId": "getSelfOwnerTransfers",
2495
2950
  "method": "GET",
@@ -2555,6 +3010,45 @@
2555
3010
  "apiKeyScope": null,
2556
3011
  "sourceFragment": "self"
2557
3012
  },
3013
+ {
3014
+ "operationId": "deleteSelfPostalAddress",
3015
+ "method": "DELETE",
3016
+ "path": "/v2/self/postal-address",
3017
+ "purpose": "remove the signed-in person's postal address",
3018
+ "capabilityKey": null,
3019
+ "conditionalCapabilityKeys": [],
3020
+ "activationGate": "MVP",
3021
+ "assuranceClass": "SESSION",
3022
+ "actionGrant": "none",
3023
+ "apiKeyScope": null,
3024
+ "sourceFragment": "self"
3025
+ },
3026
+ {
3027
+ "operationId": "getSelfPostalAddress",
3028
+ "method": "GET",
3029
+ "path": "/v2/self/postal-address",
3030
+ "purpose": "read the signed-in person's postal address",
3031
+ "capabilityKey": null,
3032
+ "conditionalCapabilityKeys": [],
3033
+ "activationGate": "MVP",
3034
+ "assuranceClass": "SESSION",
3035
+ "actionGrant": "none",
3036
+ "apiKeyScope": null,
3037
+ "sourceFragment": "self"
3038
+ },
3039
+ {
3040
+ "operationId": "putSelfPostalAddress",
3041
+ "method": "PUT",
3042
+ "path": "/v2/self/postal-address",
3043
+ "purpose": "save the signed-in person's postal address",
3044
+ "capabilityKey": null,
3045
+ "conditionalCapabilityKeys": [],
3046
+ "activationGate": "MVP",
3047
+ "assuranceClass": "SESSION",
3048
+ "actionGrant": "none",
3049
+ "apiKeyScope": null,
3050
+ "sourceFragment": "self"
3051
+ },
2558
3052
  {
2559
3053
  "operationId": "getSelfReaderConnections",
2560
3054
  "method": "GET",
@@ -2699,5 +3193,5 @@
2699
3193
  "sourceFragment": "workloads"
2700
3194
  }
2701
3195
  ],
2702
- "digest": "sha256:02efa2a51a27ec6907da974e1d7b4b6baaf18efe8783dcdf8f432c8e91f2efea"
3196
+ "digest": "sha256:c773ad19dc4c37f82a457753130560293ef54438d227c29149b1113a8c725c86"
2703
3197
  }