@rathnasgala2/schemas 3.30.0 → 3.32.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.
- package/THIRD_PARTY_LICENSES.json +1 -1
- package/diagnostics/diagnostic-map.json +119 -0
- package/docs/catalogs/schema-inventory.json +7 -7
- package/examples/valid/build-input/rules.json +126 -0
- package/examples/valid/interactions-config/rules.json +10 -0
- package/examples/valid/publication/rules.json +86 -0
- package/fixtures/boundary/build-input/rules.json +176 -0
- package/fixtures/boundary/interactions-config/rules.json +10 -0
- package/fixtures/boundary/publication/rules.json +132 -0
- package/fixtures/invalid/build-input/GRAPHEME_LENGTH_INVALID/cases.json +33 -0
- package/fixtures/invalid/build-input/REQUEST_FIELD_UNKNOWN/cases.json +30 -0
- package/fixtures/invalid/build-input/SCHEMA_ARRAY_DUPLICATE/cases.json +11 -0
- package/fixtures/invalid/build-input/SCHEMA_ARRAY_TOO_LONG/cases.json +15 -0
- package/fixtures/invalid/build-input/SCHEMA_ENUM_INVALID/cases.json +11 -0
- package/fixtures/invalid/build-input/SCHEMA_NUMBER_TOO_LARGE/cases.json +11 -0
- package/fixtures/invalid/build-input/SCHEMA_PATTERN_INVALID/cases.json +22 -0
- package/fixtures/invalid/build-input/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +51 -0
- package/fixtures/invalid/build-input/SCHEMA_TYPE_INVALID/cases.json +53 -0
- package/fixtures/invalid/interactions-config/SCHEMA_TYPE_INVALID/cases.json +11 -0
- package/fixtures/invalid/publication/GRAPHEME_LENGTH_INVALID/cases.json +33 -0
- package/fixtures/invalid/publication/REQUEST_FIELD_UNKNOWN/cases.json +30 -0
- package/fixtures/invalid/publication/SCHEMA_ARRAY_DUPLICATE/cases.json +9 -0
- package/fixtures/invalid/publication/SCHEMA_ARRAY_TOO_LONG/cases.json +13 -0
- package/fixtures/invalid/publication/SCHEMA_PATTERN_INVALID/cases.json +22 -0
- package/fixtures/invalid/publication/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +40 -0
- package/fixtures/invalid/publication/SCHEMA_TYPE_INVALID/cases.json +40 -0
- package/fixtures/manifest.json +943 -8
- package/fixtures/unknown-field/build-input/rules.json +50 -0
- package/fixtures/unknown-field/interactions-config/rules.json +1 -0
- package/fixtures/unknown-field/publication/rules.json +46 -0
- package/generated/browser/validator-core.mjs +3 -3
- package/generated/typescript/contracts/artifact-manifest.d.ts +4 -2
- package/generated/typescript/contracts/build-input.d.ts +16 -1
- package/generated/typescript/contracts/build-provenance.d.ts +4 -2
- package/generated/typescript/contracts/interactions-config.d.ts +1 -0
- package/generated/typescript/contracts/publication.d.ts +13 -0
- package/openapi/http-catalog.json +80 -2
- package/openapi/openapi.yaml +1721 -253
- package/package.json +1 -1
- package/sbom.cdx.json +23 -23
- package/schemas/artifact-manifest.schema.json +4 -2
- package/schemas/build-input.schema.json +64 -3
- package/schemas/build-provenance.schema.json +4 -2
- package/schemas/interactions-config.schema.json +6 -1
- package/schemas/publication.schema.json +48 -0
package/openapi/openapi.yaml
CHANGED
|
@@ -927,6 +927,14 @@ components:
|
|
|
927
927
|
format: uuid
|
|
928
928
|
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
929
929
|
type: string
|
|
930
|
+
likeCount:
|
|
931
|
+
description: "SCHEMA-3.32.0: how many readers like the comment; absent counts as 0."
|
|
932
|
+
format: int64
|
|
933
|
+
minimum: 0
|
|
934
|
+
type: integer
|
|
935
|
+
likedByMe:
|
|
936
|
+
description: "SCHEMA-3.32.0: true when the signed-in reader likes the comment; absent counts as false."
|
|
937
|
+
type: boolean
|
|
930
938
|
moreReplies:
|
|
931
939
|
type: boolean
|
|
932
940
|
own:
|
|
@@ -937,6 +945,9 @@ components:
|
|
|
937
945
|
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
938
946
|
type: string
|
|
939
947
|
- type: "null"
|
|
948
|
+
pinned:
|
|
949
|
+
description: "SCHEMA-3.32.0: true for the one root comment the site owner pinned to the top of the article; absent counts as false."
|
|
950
|
+
type: boolean
|
|
940
951
|
replies:
|
|
941
952
|
items:
|
|
942
953
|
$ref: "#/components/schemas/CommentViewLevel1"
|
|
@@ -990,6 +1001,14 @@ components:
|
|
|
990
1001
|
format: uuid
|
|
991
1002
|
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
992
1003
|
type: string
|
|
1004
|
+
likeCount:
|
|
1005
|
+
description: "SCHEMA-3.32.0: how many readers like the comment; absent counts as 0."
|
|
1006
|
+
format: int64
|
|
1007
|
+
minimum: 0
|
|
1008
|
+
type: integer
|
|
1009
|
+
likedByMe:
|
|
1010
|
+
description: "SCHEMA-3.32.0: true when the signed-in reader likes the comment; absent counts as false."
|
|
1011
|
+
type: boolean
|
|
993
1012
|
moreReplies:
|
|
994
1013
|
type: boolean
|
|
995
1014
|
own:
|
|
@@ -1000,6 +1019,9 @@ components:
|
|
|
1000
1019
|
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
1001
1020
|
type: string
|
|
1002
1021
|
- type: "null"
|
|
1022
|
+
pinned:
|
|
1023
|
+
description: "SCHEMA-3.32.0: true for the one root comment the site owner pinned to the top of the article; absent counts as false."
|
|
1024
|
+
type: boolean
|
|
1003
1025
|
replies:
|
|
1004
1026
|
items:
|
|
1005
1027
|
$ref: "#/components/schemas/CommentViewLevel2"
|
|
@@ -1053,6 +1075,14 @@ components:
|
|
|
1053
1075
|
format: uuid
|
|
1054
1076
|
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
1055
1077
|
type: string
|
|
1078
|
+
likeCount:
|
|
1079
|
+
description: "SCHEMA-3.32.0: how many readers like the comment; absent counts as 0."
|
|
1080
|
+
format: int64
|
|
1081
|
+
minimum: 0
|
|
1082
|
+
type: integer
|
|
1083
|
+
likedByMe:
|
|
1084
|
+
description: "SCHEMA-3.32.0: true when the signed-in reader likes the comment; absent counts as false."
|
|
1085
|
+
type: boolean
|
|
1056
1086
|
moreReplies:
|
|
1057
1087
|
type: boolean
|
|
1058
1088
|
own:
|
|
@@ -1063,6 +1093,9 @@ components:
|
|
|
1063
1093
|
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
1064
1094
|
type: string
|
|
1065
1095
|
- type: "null"
|
|
1096
|
+
pinned:
|
|
1097
|
+
description: "SCHEMA-3.32.0: true for the one root comment the site owner pinned to the top of the article; absent counts as false."
|
|
1098
|
+
type: boolean
|
|
1066
1099
|
replies:
|
|
1067
1100
|
items:
|
|
1068
1101
|
$ref: "#/components/schemas/CommentViewLevel3"
|
|
@@ -1116,6 +1149,14 @@ components:
|
|
|
1116
1149
|
format: uuid
|
|
1117
1150
|
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
1118
1151
|
type: string
|
|
1152
|
+
likeCount:
|
|
1153
|
+
description: "SCHEMA-3.32.0: how many readers like the comment; absent counts as 0."
|
|
1154
|
+
format: int64
|
|
1155
|
+
minimum: 0
|
|
1156
|
+
type: integer
|
|
1157
|
+
likedByMe:
|
|
1158
|
+
description: "SCHEMA-3.32.0: true when the signed-in reader likes the comment; absent counts as false."
|
|
1159
|
+
type: boolean
|
|
1119
1160
|
moreReplies:
|
|
1120
1161
|
type: boolean
|
|
1121
1162
|
own:
|
|
@@ -1126,6 +1167,9 @@ components:
|
|
|
1126
1167
|
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
1127
1168
|
type: string
|
|
1128
1169
|
- type: "null"
|
|
1170
|
+
pinned:
|
|
1171
|
+
description: "SCHEMA-3.32.0: true for the one root comment the site owner pinned to the top of the article; absent counts as false."
|
|
1172
|
+
type: boolean
|
|
1129
1173
|
replies:
|
|
1130
1174
|
maxItems: 0
|
|
1131
1175
|
type: array
|
|
@@ -1494,7 +1538,10 @@ components:
|
|
|
1494
1538
|
keeps the stored value, an object replaces it whole, `null` clears it.
|
|
1495
1539
|
`title`, `defaultLanguage` and `socialLinks` cannot be cleared.
|
|
1496
1540
|
`socialLinks` (max 32, the publication file's own limit) replaces
|
|
1497
|
-
the whole list. `
|
|
1541
|
+
the whole list. SCHEMA-3.32.0: `recommendations` (the sites the author
|
|
1542
|
+
recommends, max 24, `url` unique within the list) follows `crawlers`
|
|
1543
|
+
and not `socialLinks`: absent keeps the stored list, an array replaces
|
|
1544
|
+
the whole list, `null` clears it. `canonicalBase` is never client-settable: it changes
|
|
1498
1545
|
only through domain attach and detach. A profile that changes nothing is
|
|
1499
1546
|
`422 VALIDATION_FAILED` pointed at `/publicationProfile`; member
|
|
1500
1547
|
failures point at `/publicationProfile/<member>`.
|
|
@@ -1530,6 +1577,13 @@ components:
|
|
|
1530
1577
|
oneOf:
|
|
1531
1578
|
- $ref: "#/components/schemas/PortablePublicationPerformance"
|
|
1532
1579
|
- type: "null"
|
|
1580
|
+
recommendations:
|
|
1581
|
+
oneOf:
|
|
1582
|
+
- items:
|
|
1583
|
+
$ref: "#/components/schemas/Recommendation"
|
|
1584
|
+
maxItems: 24
|
|
1585
|
+
type: array
|
|
1586
|
+
- type: "null"
|
|
1533
1587
|
socialLinks:
|
|
1534
1588
|
items:
|
|
1535
1589
|
$ref: "#/components/schemas/PortablePublicationSocialLink"
|
|
@@ -1541,6 +1595,35 @@ components:
|
|
|
1541
1595
|
maximum: 120
|
|
1542
1596
|
minimum: 1
|
|
1543
1597
|
type: object
|
|
1598
|
+
ContentDocumentHistoryEntry:
|
|
1599
|
+
additionalProperties: false
|
|
1600
|
+
description: "SCHEMA-3.32.0: one commit that changed a content document. `source` is `draft` (saved from the editor), `publish` (a publish of the site), `import` (an import) or `unknown` (a commit Galascribe did not make). `authorLogin` is present only when GitHub names the committer."
|
|
1601
|
+
properties:
|
|
1602
|
+
authorLogin:
|
|
1603
|
+
maxLength: 39
|
|
1604
|
+
minLength: 1
|
|
1605
|
+
type: string
|
|
1606
|
+
committedAt:
|
|
1607
|
+
"": ../schemas/problem.schema.json#/$defs/rfc3339
|
|
1608
|
+
message:
|
|
1609
|
+
maxLength: 200
|
|
1610
|
+
type: string
|
|
1611
|
+
revision:
|
|
1612
|
+
pattern: ^(?:sha1:[0-9a-f]{40}|sha256:[0-9a-f]{64})$
|
|
1613
|
+
type: string
|
|
1614
|
+
source:
|
|
1615
|
+
enum:
|
|
1616
|
+
- draft
|
|
1617
|
+
- publish
|
|
1618
|
+
- import
|
|
1619
|
+
- unknown
|
|
1620
|
+
type: string
|
|
1621
|
+
required:
|
|
1622
|
+
- revision
|
|
1623
|
+
- committedAt
|
|
1624
|
+
- message
|
|
1625
|
+
- source
|
|
1626
|
+
type: object
|
|
1544
1627
|
ContentFrontmatter:
|
|
1545
1628
|
$ref: "#/components/schemas/PortableContentFrontmatterDocument"
|
|
1546
1629
|
ContentInventoryItem:
|
|
@@ -1745,7 +1828,9 @@ components:
|
|
|
1745
1828
|
page it opened. Carries no personal data beyond what each author
|
|
1746
1829
|
file itself already publishes. `listing`, `aiRights` and `performance`
|
|
1747
1830
|
(SCHEMA-3.25.1, optional) are the publication file's 3.25.0 members,
|
|
1748
|
-
absent when the file carries none.
|
|
1831
|
+
absent when the file carries none. `recommendations` (SCHEMA-3.32.0,
|
|
1832
|
+
optional) is the publication file's list of recommended sites, absent
|
|
1833
|
+
when the file carries none.
|
|
1749
1834
|
properties:
|
|
1750
1835
|
aiRights:
|
|
1751
1836
|
$ref: "#/components/schemas/PortablePublicationAiRights"
|
|
@@ -1769,6 +1854,11 @@ components:
|
|
|
1769
1854
|
$ref: "#/components/schemas/PortablePublicationListing"
|
|
1770
1855
|
performance:
|
|
1771
1856
|
$ref: "#/components/schemas/PortablePublicationPerformance"
|
|
1857
|
+
recommendations:
|
|
1858
|
+
items:
|
|
1859
|
+
$ref: "#/components/schemas/Recommendation"
|
|
1860
|
+
maxItems: 24
|
|
1861
|
+
type: array
|
|
1772
1862
|
socialLinks:
|
|
1773
1863
|
items:
|
|
1774
1864
|
$ref: "#/components/schemas/PortablePublicationSocialLink"
|
|
@@ -3595,6 +3685,18 @@ components:
|
|
|
3595
3685
|
- items
|
|
3596
3686
|
- nextCursor
|
|
3597
3687
|
type: object
|
|
3688
|
+
GetOrganizationsByOrganizationIdPublicationsByPublicationIdContentDocumentsHistoryResponse:
|
|
3689
|
+
additionalProperties: false
|
|
3690
|
+
description: "SCHEMA-3.32.0: the commits on the linked repository's main branch that changed one path, newest first, at most 50."
|
|
3691
|
+
properties:
|
|
3692
|
+
entries:
|
|
3693
|
+
items:
|
|
3694
|
+
"": "#/components/schemas/ContentDocumentHistoryEntry"
|
|
3695
|
+
maxItems: 50
|
|
3696
|
+
type: array
|
|
3697
|
+
required:
|
|
3698
|
+
- entries
|
|
3699
|
+
type: object
|
|
3598
3700
|
GetOrganizationsByOrganizationIdPublicationsByPublicationIdContentDocumentsResponse:
|
|
3599
3701
|
additionalProperties: false
|
|
3600
3702
|
properties:
|
|
@@ -7396,12 +7498,15 @@ components:
|
|
|
7396
7498
|
- state
|
|
7397
7499
|
type: object
|
|
7398
7500
|
ModerationDecision:
|
|
7501
|
+
description: "SCHEMA-3.32.0: `PIN` and `UNPIN` pin a visible root comment to the top of its article's comments, or release it. They apply to a visible root comment only, and change nothing else about it."
|
|
7399
7502
|
enum:
|
|
7400
7503
|
- HOLD
|
|
7401
7504
|
- RESTORE
|
|
7402
7505
|
- REMOVE
|
|
7403
7506
|
- DISMISS_REPORTS
|
|
7404
7507
|
- DENY_APPEAL
|
|
7508
|
+
- PIN
|
|
7509
|
+
- UNPIN
|
|
7405
7510
|
type: string
|
|
7406
7511
|
ModerationQueueItem:
|
|
7407
7512
|
additionalProperties: false
|
|
@@ -7551,10 +7656,17 @@ components:
|
|
|
7551
7656
|
type: object
|
|
7552
7657
|
NewsletterConfirmation:
|
|
7553
7658
|
additionalProperties: false
|
|
7554
|
-
description: "SCHEMA-3.23.0: what the confirmation page shows for one confirmation token."
|
|
7659
|
+
description: "SCHEMA-3.23.0: what the confirmation page shows for one confirmation token. SCHEMA-3.32.0: `afterSignupUrl` (the site's own after-signup address, when set) and `recommendations` (the sites the author recommends, when any) are present only when the site has them."
|
|
7555
7660
|
properties:
|
|
7661
|
+
afterSignupUrl:
|
|
7662
|
+
$ref: "#/components/schemas/PortablePublicationUrlHttps"
|
|
7556
7663
|
publication:
|
|
7557
7664
|
$ref: "#/components/schemas/AudiencePublication"
|
|
7665
|
+
recommendations:
|
|
7666
|
+
items:
|
|
7667
|
+
$ref: "#/components/schemas/Recommendation"
|
|
7668
|
+
maxItems: 24
|
|
7669
|
+
type: array
|
|
7558
7670
|
state:
|
|
7559
7671
|
$ref: "#/components/schemas/NewsletterConfirmationState"
|
|
7560
7672
|
required:
|
|
@@ -7578,6 +7690,13 @@ components:
|
|
|
7578
7690
|
additionalProperties: false
|
|
7579
7691
|
description: "SCHEMA-3.23.0: the send log of one post: when it went out and how many addresses it reached. `recipients` is the confirmed subscribers at send time; `sent`, `failed` and `deferred` (held back by a daily ceiling, retried later) account for them."
|
|
7580
7692
|
properties:
|
|
7693
|
+
clicked:
|
|
7694
|
+
description: "SCHEMA-3.32.0: addresses that clicked a link in the issue, from the mail provider; null when not yet known."
|
|
7695
|
+
format: int64
|
|
7696
|
+
minimum: 0
|
|
7697
|
+
type:
|
|
7698
|
+
- integer
|
|
7699
|
+
- "null"
|
|
7581
7700
|
contentId:
|
|
7582
7701
|
format: uuid
|
|
7583
7702
|
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
@@ -7586,6 +7705,13 @@ components:
|
|
|
7586
7705
|
format: int64
|
|
7587
7706
|
minimum: 0
|
|
7588
7707
|
type: integer
|
|
7708
|
+
delivered:
|
|
7709
|
+
description: "SCHEMA-3.32.0: addresses the receiving server accepted the issue for, from the mail provider; null when not yet known."
|
|
7710
|
+
format: int64
|
|
7711
|
+
minimum: 0
|
|
7712
|
+
type:
|
|
7713
|
+
- integer
|
|
7714
|
+
- "null"
|
|
7589
7715
|
failed:
|
|
7590
7716
|
format: int64
|
|
7591
7717
|
minimum: 0
|
|
@@ -7594,6 +7720,13 @@ components:
|
|
|
7594
7720
|
format: uuid
|
|
7595
7721
|
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
7596
7722
|
type: string
|
|
7723
|
+
opened:
|
|
7724
|
+
description: "SCHEMA-3.32.0: addresses that opened the issue, from the mail provider; an estimate, because open tracking is pixel-based and mail clients can load or block the pixel for the reader. Null when not yet known."
|
|
7725
|
+
format: int64
|
|
7726
|
+
minimum: 0
|
|
7727
|
+
type:
|
|
7728
|
+
- integer
|
|
7729
|
+
- "null"
|
|
7597
7730
|
recipients:
|
|
7598
7731
|
format: int64
|
|
7599
7732
|
minimum: 0
|
|
@@ -7627,8 +7760,12 @@ components:
|
|
|
7627
7760
|
type: string
|
|
7628
7761
|
NewsletterSettings:
|
|
7629
7762
|
additionalProperties: false
|
|
7630
|
-
description: "SCHEMA-3.23.0: the newsletter configuration of a site at the linked repository's main branch head, as `gala/publication.json` carries it, plus read-only status. `url` is set in `link` mode only; `emailContent` and `replyToOwner` in `galascribe` mode only; `title` and `text` in both modes; every one is null otherwise. `ownerPostalAddressSet` says whether the site owner has saved a postal address (`GET /v2/self/postal-address`); the Galascribe newsletter cannot be turned on without one. `paused` is true while sends are stopped for the site: the platform newsletter kill switch is on, or the owner has no postal address. `capacity` is the organization's subscriber allowance. `openChange` names an existing not-yet-published change of this publication that touches the file, or is null. `setUp` matches `GET .../repository/setup` `state`."
|
|
7763
|
+
description: "SCHEMA-3.23.0: the newsletter configuration of a site at the linked repository's main branch head, as `gala/publication.json` carries it, plus read-only status. `url` is set in `link` mode only; `emailContent` and `replyToOwner` in `galascribe` mode only; `title` and `text` in both modes; every one is null otherwise. `ownerPostalAddressSet` says whether the site owner has saved a postal address (`GET /v2/self/postal-address`); the Galascribe newsletter cannot be turned on without one. `paused` is true while sends are stopped for the site: the platform newsletter kill switch is on, or the owner has no postal address. `capacity` is the organization's subscriber allowance. `openChange` names an existing not-yet-published change of this publication that touches the file, or is null. `setUp` matches `GET .../repository/setup` `state`. SCHEMA-3.32.0: `welcome` and `afterSignupUrl` (`galascribe` mode only; null when unset or in another mode) are optional members, so a 3.31 reader ignores them."
|
|
7631
7764
|
properties:
|
|
7765
|
+
afterSignupUrl:
|
|
7766
|
+
oneOf:
|
|
7767
|
+
- $ref: "#/components/schemas/PortablePublicationUrlHttps"
|
|
7768
|
+
- type: "null"
|
|
7632
7769
|
capacity:
|
|
7633
7770
|
$ref: "#/components/schemas/NewsletterCapacity"
|
|
7634
7771
|
emailContent:
|
|
@@ -7666,6 +7803,10 @@ components:
|
|
|
7666
7803
|
oneOf:
|
|
7667
7804
|
- $ref: "#/components/schemas/PortablePublicationUrlHttps"
|
|
7668
7805
|
- type: "null"
|
|
7806
|
+
welcome:
|
|
7807
|
+
oneOf:
|
|
7808
|
+
- $ref: "#/components/schemas/NewsletterWelcome"
|
|
7809
|
+
- type: "null"
|
|
7669
7810
|
required:
|
|
7670
7811
|
- mode
|
|
7671
7812
|
- url
|
|
@@ -7729,11 +7870,12 @@ components:
|
|
|
7729
7870
|
- confirmedAt
|
|
7730
7871
|
type: object
|
|
7731
7872
|
NewsletterSubscriberState:
|
|
7732
|
-
description: "SCHEMA-3.23.0: `pending` (asked, not yet confirmed), `confirmed`, or `unsubscribed` (the address is kept only as a suppression digest, so its row has no `email`)."
|
|
7873
|
+
description: "SCHEMA-3.23.0: `pending` (asked, not yet confirmed), `confirmed`, or `unsubscribed` (the address is kept only as a suppression digest, so its row has no `email`). SCHEMA-3.32.0: `suppressed` is an address mail to which bounced or drew a spam complaint; it receives nothing further and cannot be re-imported or re-subscribed by the owner."
|
|
7733
7874
|
enum:
|
|
7734
7875
|
- pending
|
|
7735
7876
|
- confirmed
|
|
7736
7877
|
- unsubscribed
|
|
7878
|
+
- suppressed
|
|
7737
7879
|
type: string
|
|
7738
7880
|
NewsletterSubscription:
|
|
7739
7881
|
additionalProperties: false
|
|
@@ -7758,6 +7900,25 @@ components:
|
|
|
7758
7900
|
- subscribed
|
|
7759
7901
|
- unsubscribed
|
|
7760
7902
|
type: string
|
|
7903
|
+
NewsletterWelcome:
|
|
7904
|
+
additionalProperties: false
|
|
7905
|
+
description: "SCHEMA-3.32.0: the welcome email mailed once to a new subscriber after they confirm: a one-line subject of 1 to 120 graphemes and a plain-text body of 1 to 2000 graphemes."
|
|
7906
|
+
properties:
|
|
7907
|
+
body:
|
|
7908
|
+
$ref: "#/components/schemas/PortablePublicationPlainText"
|
|
7909
|
+
x-gala-graphemeLength:
|
|
7910
|
+
maximum: 2000
|
|
7911
|
+
minimum: 1
|
|
7912
|
+
subject:
|
|
7913
|
+
$ref: "#/components/schemas/PortablePublicationPlainText"
|
|
7914
|
+
pattern: ^[^\r\n\u2028\u2029]+$
|
|
7915
|
+
x-gala-graphemeLength:
|
|
7916
|
+
maximum: 120
|
|
7917
|
+
minimum: 1
|
|
7918
|
+
required:
|
|
7919
|
+
- subject
|
|
7920
|
+
- body
|
|
7921
|
+
type: object
|
|
7761
7922
|
NotificationCadence:
|
|
7762
7923
|
description: "SCHEMA-3.23.0: how often a category is emailed. `instant` sends one email per notification, `daily` one digest per day, `off` none. The inbox row exists whatever the cadence."
|
|
7763
7924
|
enum:
|
|
@@ -9602,8 +9763,14 @@ components:
|
|
|
9602
9763
|
PlatformUser:
|
|
9603
9764
|
additionalProperties: false
|
|
9604
9765
|
properties:
|
|
9766
|
+
contactEmail:
|
|
9767
|
+
description: SCHEMA-3.31.0, the contact email address the person agreed to share. Returned only when one is on file and the caller holds `platform.users.contact`; null otherwise.
|
|
9768
|
+
maxLength: 320
|
|
9769
|
+
type:
|
|
9770
|
+
- string
|
|
9771
|
+
- "null"
|
|
9605
9772
|
contactEmailOnFile:
|
|
9606
|
-
description: Whether a contact email the person agreed to is on file.
|
|
9773
|
+
description: Whether a contact email the person agreed to is on file. True whenever an agreed address is on file, whether or not the caller may see it.
|
|
9607
9774
|
type: boolean
|
|
9608
9775
|
createdAt:
|
|
9609
9776
|
$ref: "#/components/schemas/PortableProblemRfc3339"
|
|
@@ -9648,6 +9815,7 @@ components:
|
|
|
9648
9815
|
- publicationCount
|
|
9649
9816
|
- planTiers
|
|
9650
9817
|
- contactEmailOnFile
|
|
9818
|
+
- contactEmail
|
|
9651
9819
|
type: object
|
|
9652
9820
|
PlatformWebhookEvent:
|
|
9653
9821
|
additionalProperties: false
|
|
@@ -15682,6 +15850,10 @@ components:
|
|
|
15682
15850
|
type: boolean
|
|
15683
15851
|
enabled:
|
|
15684
15852
|
type: boolean
|
|
15853
|
+
likes:
|
|
15854
|
+
default: false
|
|
15855
|
+
description: "SCHEMA-3.32.0: when true, signed-in readers can like a comment. An absent member means false, so every 3.31 configuration still validates."
|
|
15856
|
+
type: boolean
|
|
15685
15857
|
maxDepth:
|
|
15686
15858
|
maximum: 4
|
|
15687
15859
|
minimum: 1
|
|
@@ -16273,6 +16445,14 @@ components:
|
|
|
16273
16445
|
$ref: "#/components/schemas/PortablePublicationPublicationPolicies"
|
|
16274
16446
|
profile:
|
|
16275
16447
|
$ref: "#/components/schemas/PortablePublicationPublicationProfile"
|
|
16448
|
+
recommendations:
|
|
16449
|
+
description: "SCHEMA-3.32.0: the sites the author recommends, shown to readers after they subscribe and published as `/.well-known/recommendations.json`. At most 24; `url` is unique within the array. JSON Schema cannot express uniqueness by one member, so consumers enforce it. An absent member means no recommendations."
|
|
16450
|
+
items:
|
|
16451
|
+
$ref: "#/components/schemas/PortablePublicationRecommendation"
|
|
16452
|
+
maxItems: 24
|
|
16453
|
+
minItems: 0
|
|
16454
|
+
type: array
|
|
16455
|
+
uniqueItems: true
|
|
16276
16456
|
schemaId:
|
|
16277
16457
|
pattern: ^urn:gala:schema:publication:2\.0\.0$
|
|
16278
16458
|
type: string
|
|
@@ -16392,6 +16572,9 @@ components:
|
|
|
16392
16572
|
- additionalProperties: false
|
|
16393
16573
|
description: "Galascribe mode: the panel is an email field and a Subscribe button. `title` and `text` are the panel heading and sentence; there is no `url`. The API refuses to turn this mode on until the site owner has a postal address in their Account."
|
|
16394
16574
|
properties:
|
|
16575
|
+
afterSignupUrl:
|
|
16576
|
+
$ref: "#/components/schemas/PortablePublicationUrlHttps"
|
|
16577
|
+
description: "SCHEMA-3.32.0: where the subscriber is sent after they confirm. It must be an https URL; the API applies its own open-redirect rules. An absent member shows the Galascribe confirmation page."
|
|
16395
16578
|
emailContent:
|
|
16396
16579
|
description: "`card` mails the post title, description, image and a Read the post button; the template renders no email fragment. `full` mails the whole post: for each published post the template renders an email-safe HTML fragment at `/_gala/email/<content id>.html` (`<content id>` is the post's front-matter `id`; absolute URLs and inline-safe markup only; `noindex`; absent from the sitemap, the feeds, the search index and the llms files), which the API fetches after the generation is certified live."
|
|
16397
16580
|
enum:
|
|
@@ -16411,6 +16594,25 @@ components:
|
|
|
16411
16594
|
minimum: 1
|
|
16412
16595
|
title:
|
|
16413
16596
|
$ref: "#/components/schemas/PortablePublicationPlainLabel"
|
|
16597
|
+
welcome:
|
|
16598
|
+
additionalProperties: false
|
|
16599
|
+
description: "SCHEMA-3.32.0: the welcome email mailed once to a new subscriber after they confirm. `subject` is one line (no line break) of 1 to 120 graphemes; `body` is plain text of 1 to 2000 graphemes. An absent `welcome` member means no welcome email."
|
|
16600
|
+
properties:
|
|
16601
|
+
body:
|
|
16602
|
+
$ref: "#/components/schemas/PortablePublicationPlainText"
|
|
16603
|
+
x-gala-graphemeLength:
|
|
16604
|
+
maximum: 2000
|
|
16605
|
+
minimum: 1
|
|
16606
|
+
subject:
|
|
16607
|
+
$ref: "#/components/schemas/PortablePublicationPlainText"
|
|
16608
|
+
pattern: ^[^\r\n\u2028\u2029]+$
|
|
16609
|
+
x-gala-graphemeLength:
|
|
16610
|
+
maximum: 120
|
|
16611
|
+
minimum: 1
|
|
16612
|
+
required:
|
|
16613
|
+
- subject
|
|
16614
|
+
- body
|
|
16615
|
+
type: object
|
|
16414
16616
|
required:
|
|
16415
16617
|
- mode
|
|
16416
16618
|
- title
|
|
@@ -16486,6 +16688,26 @@ components:
|
|
|
16486
16688
|
- route
|
|
16487
16689
|
- body
|
|
16488
16690
|
type: object
|
|
16691
|
+
PortablePublicationRecommendation:
|
|
16692
|
+
additionalProperties: false
|
|
16693
|
+
description: "SCHEMA-3.32.0: one site the author recommends to readers."
|
|
16694
|
+
properties:
|
|
16695
|
+
addedOn:
|
|
16696
|
+
description: The day the recommendation was added, YYYY-MM-DD (UTC). It feeds the `created_at` and `updated_at` members of the site's `/.well-known/recommendations.json` entry.
|
|
16697
|
+
pattern: ^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12][0-9]|3[01])$
|
|
16698
|
+
type: string
|
|
16699
|
+
description:
|
|
16700
|
+
$ref: "#/components/schemas/PortablePublicationPlainText"
|
|
16701
|
+
x-gala-graphemeLength:
|
|
16702
|
+
maximum: 300
|
|
16703
|
+
title:
|
|
16704
|
+
$ref: "#/components/schemas/PortablePublicationPlainLabel"
|
|
16705
|
+
url:
|
|
16706
|
+
$ref: "#/components/schemas/PortablePublicationUrlHttps"
|
|
16707
|
+
required:
|
|
16708
|
+
- url
|
|
16709
|
+
- title
|
|
16710
|
+
type: object
|
|
16489
16711
|
PortablePublicationRepoRelativePath:
|
|
16490
16712
|
description: NFC UTF-8 repository-relative path using slash separators, with no leading slash, dot segment, NUL, backslash, or percent-decoded traversal.
|
|
16491
16713
|
format: gala-repository-relative-path
|
|
@@ -16842,6 +17064,28 @@ components:
|
|
|
16842
17064
|
- organizations
|
|
16843
17065
|
- capabilities
|
|
16844
17066
|
type: object
|
|
17067
|
+
PostCallbacksBrevoRequest:
|
|
17068
|
+
description: Raw Brevo webhook JSON authenticated by the X-Gala-Webhook-Token header. Brevo posts one event per call; an object or an array of objects is accepted and every member is opaque to the contract.
|
|
17069
|
+
oneOf:
|
|
17070
|
+
- additionalProperties: true
|
|
17071
|
+
type: object
|
|
17072
|
+
- items:
|
|
17073
|
+
additionalProperties: true
|
|
17074
|
+
type: object
|
|
17075
|
+
maxItems: 1000
|
|
17076
|
+
type: array
|
|
17077
|
+
PostCallbacksBrevoResponse:
|
|
17078
|
+
additionalProperties: false
|
|
17079
|
+
properties:
|
|
17080
|
+
accepted:
|
|
17081
|
+
not:
|
|
17082
|
+
enum:
|
|
17083
|
+
- false
|
|
17084
|
+
type: boolean
|
|
17085
|
+
x-gala-const: true
|
|
17086
|
+
required:
|
|
17087
|
+
- accepted
|
|
17088
|
+
type: object
|
|
16845
17089
|
PostCallbacksGithubAppRequest:
|
|
16846
17090
|
additionalProperties: true
|
|
16847
17091
|
description: Raw GitHub webhook JSON authenticated over the exact received bytes; event and delivery identities are carried in required GitHub headers.
|
|
@@ -17530,6 +17774,31 @@ components:
|
|
|
17530
17774
|
- expectedHead
|
|
17531
17775
|
- diffDigest
|
|
17532
17776
|
type: object
|
|
17777
|
+
PostOrganizationsByOrganizationIdPublicationsByPublicationIdContentLinkPreviewRequest:
|
|
17778
|
+
additionalProperties: false
|
|
17779
|
+
description: "SCHEMA-3.32.0: the page to preview. Only https addresses are fetched."
|
|
17780
|
+
properties:
|
|
17781
|
+
url:
|
|
17782
|
+
$ref: "#/components/schemas/PortablePublicationUrlHttps"
|
|
17783
|
+
required:
|
|
17784
|
+
- url
|
|
17785
|
+
type: object
|
|
17786
|
+
PostOrganizationsByOrganizationIdPublicationsByPublicationIdContentLinkPreviewResponse:
|
|
17787
|
+
additionalProperties: false
|
|
17788
|
+
description: "SCHEMA-3.32.0: what the page says about itself. Every member is omitted when the page does not give one; there is no image."
|
|
17789
|
+
properties:
|
|
17790
|
+
canonicalUrl:
|
|
17791
|
+
$ref: "#/components/schemas/PortablePublicationUrlHttps"
|
|
17792
|
+
description:
|
|
17793
|
+
maxLength: 500
|
|
17794
|
+
type: string
|
|
17795
|
+
siteName:
|
|
17796
|
+
maxLength: 200
|
|
17797
|
+
type: string
|
|
17798
|
+
title:
|
|
17799
|
+
maxLength: 300
|
|
17800
|
+
type: string
|
|
17801
|
+
type: object
|
|
17533
17802
|
PostOrganizationsByOrganizationIdPublicationsByPublicationIdDeploymentsByGenerationIdReconcileRequest:
|
|
17534
17803
|
additionalProperties: false
|
|
17535
17804
|
properties:
|
|
@@ -17719,6 +17988,55 @@ components:
|
|
|
17719
17988
|
type: object
|
|
17720
17989
|
PostOrganizationsByOrganizationIdPublicationsByPublicationIdModerationCommentsByCommentIdDecideResponse:
|
|
17721
17990
|
$ref: "#/components/schemas/ModerationQueueItem"
|
|
17991
|
+
PostOrganizationsByOrganizationIdPublicationsByPublicationIdNewsletterSubscribersImportRequest:
|
|
17992
|
+
additionalProperties: false
|
|
17993
|
+
description: "SCHEMA-3.32.0: the addresses to invite, already parsed from the owner's file. `attestation` must be true: the owner states that every address agreed to hear from them. Each new address becomes a `pending` subscriber and is sent the confirmation email; nobody is subscribed without confirming."
|
|
17994
|
+
properties:
|
|
17995
|
+
addresses:
|
|
17996
|
+
items:
|
|
17997
|
+
format: email
|
|
17998
|
+
maxLength: 320
|
|
17999
|
+
minLength: 3
|
|
18000
|
+
type: string
|
|
18001
|
+
maxItems: 5000
|
|
18002
|
+
minItems: 1
|
|
18003
|
+
type: array
|
|
18004
|
+
attestation:
|
|
18005
|
+
not:
|
|
18006
|
+
enum:
|
|
18007
|
+
- false
|
|
18008
|
+
type: boolean
|
|
18009
|
+
x-gala-const: true
|
|
18010
|
+
required:
|
|
18011
|
+
- addresses
|
|
18012
|
+
- attestation
|
|
18013
|
+
type: object
|
|
18014
|
+
PostOrganizationsByOrganizationIdPublicationsByPublicationIdNewsletterSubscribersImportResponse:
|
|
18015
|
+
additionalProperties: false
|
|
18016
|
+
description: "SCHEMA-3.32.0: what the import did. `queued` addresses were new and had a confirmation email queued; `skippedKnown` were already pending, confirmed, unsubscribed or suppressed; `invalid` were not usable addresses; `overCapacity` were left out because the organization's subscriber allowance was reached."
|
|
18017
|
+
properties:
|
|
18018
|
+
invalid:
|
|
18019
|
+
format: int64
|
|
18020
|
+
minimum: 0
|
|
18021
|
+
type: integer
|
|
18022
|
+
overCapacity:
|
|
18023
|
+
format: int64
|
|
18024
|
+
minimum: 0
|
|
18025
|
+
type: integer
|
|
18026
|
+
queued:
|
|
18027
|
+
format: int64
|
|
18028
|
+
minimum: 0
|
|
18029
|
+
type: integer
|
|
18030
|
+
skippedKnown:
|
|
18031
|
+
format: int64
|
|
18032
|
+
minimum: 0
|
|
18033
|
+
type: integer
|
|
18034
|
+
required:
|
|
18035
|
+
- queued
|
|
18036
|
+
- skippedKnown
|
|
18037
|
+
- invalid
|
|
18038
|
+
- overCapacity
|
|
18039
|
+
type: object
|
|
17722
18040
|
PostOrganizationsByOrganizationIdPublicationsByPublicationIdOverviewRefreshResponse:
|
|
17723
18041
|
$ref: "#/components/schemas/PublicationOverview"
|
|
17724
18042
|
PostOrganizationsByOrganizationIdPublicationsByPublicationIdPreviewRetirementResponse:
|
|
@@ -20846,8 +21164,12 @@ components:
|
|
|
20846
21164
|
- text
|
|
20847
21165
|
- emailContent
|
|
20848
21166
|
- replyToOwner
|
|
20849
|
-
description: "Members by mode: `off` takes none besides `mode`; `link` takes `url`, `title` and `text` (all required); `galascribe` takes `title`, `text`, `emailContent` and `replyToOwner` (all required). A member that does not belong to the chosen mode is `422 VALIDATION_FAILED` pointed at that member."
|
|
21167
|
+
description: "Members by mode: `off` takes none besides `mode`; `link` takes `url`, `title` and `text` (all required); `galascribe` takes `title`, `text`, `emailContent` and `replyToOwner` (all required). A member that does not belong to the chosen mode is `422 VALIDATION_FAILED` pointed at that member. SCHEMA-3.32.0: `welcome` and `afterSignupUrl` are optional in `galascribe` mode (an absent member leaves the stored value as it is and null removes it)."
|
|
20850
21168
|
properties:
|
|
21169
|
+
afterSignupUrl:
|
|
21170
|
+
oneOf:
|
|
21171
|
+
- $ref: "#/components/schemas/PortablePublicationUrlHttps"
|
|
21172
|
+
- type: "null"
|
|
20851
21173
|
emailContent:
|
|
20852
21174
|
$ref: "#/components/schemas/NewsletterEmailContent"
|
|
20853
21175
|
mode:
|
|
@@ -20863,6 +21185,10 @@ components:
|
|
|
20863
21185
|
$ref: "#/components/schemas/PortablePublicationPlainLabel"
|
|
20864
21186
|
url:
|
|
20865
21187
|
$ref: "#/components/schemas/PortablePublicationUrlHttps"
|
|
21188
|
+
welcome:
|
|
21189
|
+
oneOf:
|
|
21190
|
+
- $ref: "#/components/schemas/NewsletterWelcome"
|
|
21191
|
+
- type: "null"
|
|
20866
21192
|
required:
|
|
20867
21193
|
- mode
|
|
20868
21194
|
type: object
|
|
@@ -21785,6 +22111,25 @@ components:
|
|
|
21785
22111
|
required:
|
|
21786
22112
|
- origin
|
|
21787
22113
|
type: object
|
|
22114
|
+
Recommendation:
|
|
22115
|
+
additionalProperties: false
|
|
22116
|
+
description: "SCHEMA-3.32.0: one site the author recommends to readers. `addedOn` is the day it was added (YYYY-MM-DD, UTC) and feeds the `created_at` and `updated_at` of the site's `/.well-known/recommendations.json` entry."
|
|
22117
|
+
properties:
|
|
22118
|
+
addedOn:
|
|
22119
|
+
pattern: ^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12][0-9]|3[01])$
|
|
22120
|
+
type: string
|
|
22121
|
+
description:
|
|
22122
|
+
$ref: "#/components/schemas/PortablePublicationPlainText"
|
|
22123
|
+
x-gala-graphemeLength:
|
|
22124
|
+
maximum: 300
|
|
22125
|
+
title:
|
|
22126
|
+
$ref: "#/components/schemas/PortablePublicationPlainLabel"
|
|
22127
|
+
url:
|
|
22128
|
+
$ref: "#/components/schemas/PortablePublicationUrlHttps"
|
|
22129
|
+
required:
|
|
22130
|
+
- url
|
|
22131
|
+
- title
|
|
22132
|
+
type: object
|
|
21788
22133
|
RecoveryCodeStatus:
|
|
21789
22134
|
additionalProperties: false
|
|
21790
22135
|
description: How many codes of the current recovery code set are still unused.
|
|
@@ -22809,6 +23154,10 @@ components:
|
|
|
22809
23154
|
description: Scoped credential an operator creates; acts as that operator within its scopes. Refused for every operation without `x-gala-api-key-scope`.
|
|
22810
23155
|
scheme: bearer
|
|
22811
23156
|
type: http
|
|
23157
|
+
brevoWebhookToken:
|
|
23158
|
+
in: header
|
|
23159
|
+
name: X-Gala-Webhook-Token
|
|
23160
|
+
type: apiKey
|
|
22812
23161
|
browserSession:
|
|
22813
23162
|
in: cookie
|
|
22814
23163
|
name: __Host-gala-session
|
|
@@ -23483,6 +23832,103 @@ paths:
|
|
|
23483
23832
|
- NONE
|
|
23484
23833
|
x-gala-success-category: protocol
|
|
23485
23834
|
x-gala-tenant-scope: NONE
|
|
23835
|
+
/v2/callbacks/brevo:
|
|
23836
|
+
post:
|
|
23837
|
+
description: |
|
|
23838
|
+
Brevo transactional-email event webhook (delivered, opened, clicked, bounced, complaint and similar). Brevo posts one event per call; the body is an opaque JSON object or an array of such objects and the contract does not describe Brevo's own fields. The call is authenticated by the shared token in the `X-Gala-Webhook-Token` header, which the deployment configures in Brevo's webhook headers. `202` means the body was admitted for asynchronous processing, including an event the API ignores or has already seen. `400` is a malformed body, `401` is a missing or wrong token.
|
|
23839
|
+
operationId: postCallbacksBrevo
|
|
23840
|
+
parameters:
|
|
23841
|
+
- $ref: "#/components/parameters/XCorrelationId"
|
|
23842
|
+
- example: wh_0000000000000000000000000000000000000000
|
|
23843
|
+
in: header
|
|
23844
|
+
name: X-Gala-Webhook-Token
|
|
23845
|
+
required: true
|
|
23846
|
+
schema:
|
|
23847
|
+
maxLength: 1024
|
|
23848
|
+
minLength: 1
|
|
23849
|
+
type: string
|
|
23850
|
+
requestBody:
|
|
23851
|
+
content:
|
|
23852
|
+
application/json:
|
|
23853
|
+
examples:
|
|
23854
|
+
nominal:
|
|
23855
|
+
summary: Nominal valid request
|
|
23856
|
+
value: {}
|
|
23857
|
+
schema:
|
|
23858
|
+
$ref: "#/components/schemas/PostCallbacksBrevoRequest"
|
|
23859
|
+
required: true
|
|
23860
|
+
responses:
|
|
23861
|
+
"202":
|
|
23862
|
+
content:
|
|
23863
|
+
application/json:
|
|
23864
|
+
examples:
|
|
23865
|
+
nominal:
|
|
23866
|
+
summary: Nominal successful response
|
|
23867
|
+
value:
|
|
23868
|
+
accepted: true
|
|
23869
|
+
schema:
|
|
23870
|
+
$ref: "#/components/schemas/PostCallbacksBrevoResponse"
|
|
23871
|
+
description: admit an authenticated Brevo email event succeeded
|
|
23872
|
+
headers:
|
|
23873
|
+
Cache-Control:
|
|
23874
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
23875
|
+
X-Correlation-Id:
|
|
23876
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
23877
|
+
"400":
|
|
23878
|
+
$ref: "#/components/responses/ValidationFailed"
|
|
23879
|
+
"401":
|
|
23880
|
+
content:
|
|
23881
|
+
application/problem+json:
|
|
23882
|
+
examples:
|
|
23883
|
+
AUTHENTICATION_REQUIRED:
|
|
23884
|
+
summary: AUTHENTICATION_REQUIRED
|
|
23885
|
+
value:
|
|
23886
|
+
code: AUTHENTICATION_REQUIRED
|
|
23887
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
23888
|
+
detail: See the operation contract.
|
|
23889
|
+
errors: []
|
|
23890
|
+
retryable: false
|
|
23891
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
23892
|
+
schemaVersion: 2.0.0
|
|
23893
|
+
status: 401
|
|
23894
|
+
title: AUTHENTICATION_REQUIRED
|
|
23895
|
+
type: urn:gala:problem:authentication-required
|
|
23896
|
+
schema:
|
|
23897
|
+
$ref: "#/components/schemas/Problem"
|
|
23898
|
+
description: AUTHENTICATION_REQUIRED
|
|
23899
|
+
headers:
|
|
23900
|
+
Cache-Control:
|
|
23901
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
23902
|
+
X-Correlation-Id:
|
|
23903
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
23904
|
+
x-gala-problem-codes:
|
|
23905
|
+
- AUTHENTICATION_REQUIRED
|
|
23906
|
+
"413":
|
|
23907
|
+
$ref: "#/components/responses/RequestTooLarge"
|
|
23908
|
+
"415":
|
|
23909
|
+
$ref: "#/components/responses/UnsupportedMediaType"
|
|
23910
|
+
security:
|
|
23911
|
+
- brevoWebhookToken: []
|
|
23912
|
+
summary: admit an authenticated Brevo email event
|
|
23913
|
+
tags:
|
|
23914
|
+
- callbacks
|
|
23915
|
+
x-gala-activation-gate: MVP
|
|
23916
|
+
x-gala-activation-guards:
|
|
23917
|
+
- NONE
|
|
23918
|
+
x-gala-capability-key: null
|
|
23919
|
+
x-gala-concurrency: provider-event-idempotency-and-event-time-ordering
|
|
23920
|
+
x-gala-conditional-capabilities: []
|
|
23921
|
+
x-gala-example-profile: NOMINAL_SUCCESS_AND_EACH_REACHABLE_PROBLEM
|
|
23922
|
+
x-gala-nullability: required-and-nullable-are-explicit
|
|
23923
|
+
x-gala-purpose: admit an authenticated Brevo email event
|
|
23924
|
+
x-gala-reachable-problems:
|
|
23925
|
+
- AUTHENTICATION_REQUIRED
|
|
23926
|
+
- VALIDATION_FAILED
|
|
23927
|
+
x-gala-replay-identity: brevo-message-id-and-event-time
|
|
23928
|
+
x-gala-state-guards:
|
|
23929
|
+
- NONE
|
|
23930
|
+
x-gala-success-category: provider-callback
|
|
23931
|
+
x-gala-tenant-scope: NONE
|
|
23486
23932
|
/v2/callbacks/cloudflare/oauth:
|
|
23487
23933
|
get:
|
|
23488
23934
|
description: |
|
|
@@ -40051,6 +40497,534 @@ paths:
|
|
|
40051
40497
|
- NONE
|
|
40052
40498
|
x-gala-success-category: query
|
|
40053
40499
|
x-gala-tenant-scope: ORGANIZATION_AND_PUBLICATION_PATH
|
|
40500
|
+
/v2/organizations/{organizationId}/publications/{publicationId}/content/documents/history:
|
|
40501
|
+
get:
|
|
40502
|
+
description: |
|
|
40503
|
+
Needs `publication.view`. Lists the commits on the linked repository's
|
|
40504
|
+
main branch that changed `path`, newest first, at most 50. Each entry
|
|
40505
|
+
carries the `revision` (the commit to pass as `revision` to `GET
|
|
40506
|
+
.../content/documents`), when it was committed, the committer's GitHub
|
|
40507
|
+
login when GitHub names one, the first line of the commit message and
|
|
40508
|
+
`source`: `draft` (saved from the editor), `publish` (a publish of the
|
|
40509
|
+
site), `import` (an import) or `unknown` (a commit Galascribe did not
|
|
40510
|
+
make). A path with no commit on main, or an unknown path, is `404
|
|
40511
|
+
RESOURCE_NOT_FOUND`.
|
|
40512
|
+
operationId: getOrganizationsByOrganizationIdPublicationsByPublicationIdContentDocumentsHistory
|
|
40513
|
+
parameters:
|
|
40514
|
+
- $ref: "#/components/parameters/XCorrelationId"
|
|
40515
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
40516
|
+
in: path
|
|
40517
|
+
name: organizationId
|
|
40518
|
+
required: true
|
|
40519
|
+
schema:
|
|
40520
|
+
format: uuid
|
|
40521
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
40522
|
+
type: string
|
|
40523
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
40524
|
+
in: path
|
|
40525
|
+
name: publicationId
|
|
40526
|
+
required: true
|
|
40527
|
+
schema:
|
|
40528
|
+
format: uuid
|
|
40529
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
40530
|
+
type: string
|
|
40531
|
+
- example: content/articles/example.md
|
|
40532
|
+
in: query
|
|
40533
|
+
name: path
|
|
40534
|
+
required: true
|
|
40535
|
+
schema:
|
|
40536
|
+
maxLength: 512
|
|
40537
|
+
minLength: 1
|
|
40538
|
+
pattern: ^(?!/)(?!.*(?:^|/)\.)(?!gala\.lock\.json$)(?:gala/theme-pages/[^\x00-\x1f\x7f\\/]+|(?!gala(?:/|$))[^\x00-\x1f\x7f\\]+)$
|
|
40539
|
+
type: string
|
|
40540
|
+
responses:
|
|
40541
|
+
"200":
|
|
40542
|
+
content:
|
|
40543
|
+
application/json:
|
|
40544
|
+
examples:
|
|
40545
|
+
nominal:
|
|
40546
|
+
summary: Nominal successful response
|
|
40547
|
+
value:
|
|
40548
|
+
entries:
|
|
40549
|
+
- authorLogin: octocat
|
|
40550
|
+
committedAt: "2026-11-03T09:30:00.000Z"
|
|
40551
|
+
message: Update example
|
|
40552
|
+
revision: sha1:0000000000000000000000000000000000000000
|
|
40553
|
+
source: draft
|
|
40554
|
+
schema:
|
|
40555
|
+
$ref: "#/components/schemas/GetOrganizationsByOrganizationIdPublicationsByPublicationIdContentDocumentsHistoryResponse"
|
|
40556
|
+
description: list the history of one content document succeeded
|
|
40557
|
+
headers:
|
|
40558
|
+
Cache-Control:
|
|
40559
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
40560
|
+
X-Correlation-Id:
|
|
40561
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
40562
|
+
"400":
|
|
40563
|
+
content:
|
|
40564
|
+
application/problem+json:
|
|
40565
|
+
examples:
|
|
40566
|
+
VALIDATION_FAILED:
|
|
40567
|
+
summary: VALIDATION_FAILED
|
|
40568
|
+
value:
|
|
40569
|
+
code: VALIDATION_FAILED
|
|
40570
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
40571
|
+
detail: See the operation contract.
|
|
40572
|
+
errors: []
|
|
40573
|
+
retryable: false
|
|
40574
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
40575
|
+
schemaVersion: 2.0.0
|
|
40576
|
+
status: 400
|
|
40577
|
+
title: VALIDATION_FAILED
|
|
40578
|
+
type: urn:gala:problem:validation-failed
|
|
40579
|
+
schema:
|
|
40580
|
+
$ref: "#/components/schemas/Problem"
|
|
40581
|
+
description: VALIDATION_FAILED
|
|
40582
|
+
headers:
|
|
40583
|
+
Cache-Control:
|
|
40584
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
40585
|
+
X-Correlation-Id:
|
|
40586
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
40587
|
+
x-gala-problem-codes:
|
|
40588
|
+
- VALIDATION_FAILED
|
|
40589
|
+
"401":
|
|
40590
|
+
content:
|
|
40591
|
+
application/problem+json:
|
|
40592
|
+
examples:
|
|
40593
|
+
AUTHENTICATION_REQUIRED:
|
|
40594
|
+
summary: AUTHENTICATION_REQUIRED
|
|
40595
|
+
value:
|
|
40596
|
+
code: AUTHENTICATION_REQUIRED
|
|
40597
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
40598
|
+
detail: See the operation contract.
|
|
40599
|
+
errors: []
|
|
40600
|
+
retryable: false
|
|
40601
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
40602
|
+
schemaVersion: 2.0.0
|
|
40603
|
+
status: 401
|
|
40604
|
+
title: AUTHENTICATION_REQUIRED
|
|
40605
|
+
type: urn:gala:problem:authentication-required
|
|
40606
|
+
schema:
|
|
40607
|
+
$ref: "#/components/schemas/Problem"
|
|
40608
|
+
description: AUTHENTICATION_REQUIRED
|
|
40609
|
+
headers:
|
|
40610
|
+
Cache-Control:
|
|
40611
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
40612
|
+
X-Correlation-Id:
|
|
40613
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
40614
|
+
x-gala-problem-codes:
|
|
40615
|
+
- AUTHENTICATION_REQUIRED
|
|
40616
|
+
"403":
|
|
40617
|
+
content:
|
|
40618
|
+
application/problem+json:
|
|
40619
|
+
examples:
|
|
40620
|
+
AUTHORIZATION_DENIED:
|
|
40621
|
+
summary: AUTHORIZATION_DENIED
|
|
40622
|
+
value:
|
|
40623
|
+
code: AUTHORIZATION_DENIED
|
|
40624
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
40625
|
+
detail: See the operation contract.
|
|
40626
|
+
errors: []
|
|
40627
|
+
retryable: false
|
|
40628
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
40629
|
+
schemaVersion: 2.0.0
|
|
40630
|
+
status: 403
|
|
40631
|
+
title: AUTHORIZATION_DENIED
|
|
40632
|
+
type: urn:gala:problem:authorization-denied
|
|
40633
|
+
schema:
|
|
40634
|
+
$ref: "#/components/schemas/Problem"
|
|
40635
|
+
description: AUTHORIZATION_DENIED
|
|
40636
|
+
headers:
|
|
40637
|
+
Cache-Control:
|
|
40638
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
40639
|
+
X-Correlation-Id:
|
|
40640
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
40641
|
+
x-gala-problem-codes:
|
|
40642
|
+
- AUTHORIZATION_DENIED
|
|
40643
|
+
"404":
|
|
40644
|
+
content:
|
|
40645
|
+
application/problem+json:
|
|
40646
|
+
examples:
|
|
40647
|
+
RESOURCE_NOT_FOUND:
|
|
40648
|
+
summary: RESOURCE_NOT_FOUND
|
|
40649
|
+
value:
|
|
40650
|
+
code: RESOURCE_NOT_FOUND
|
|
40651
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
40652
|
+
detail: See the operation contract.
|
|
40653
|
+
errors: []
|
|
40654
|
+
retryable: false
|
|
40655
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
40656
|
+
schemaVersion: 2.0.0
|
|
40657
|
+
status: 404
|
|
40658
|
+
title: RESOURCE_NOT_FOUND
|
|
40659
|
+
type: urn:gala:problem:resource-not-found
|
|
40660
|
+
schema:
|
|
40661
|
+
$ref: "#/components/schemas/Problem"
|
|
40662
|
+
description: RESOURCE_NOT_FOUND
|
|
40663
|
+
headers:
|
|
40664
|
+
Cache-Control:
|
|
40665
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
40666
|
+
X-Correlation-Id:
|
|
40667
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
40668
|
+
x-gala-problem-codes:
|
|
40669
|
+
- RESOURCE_NOT_FOUND
|
|
40670
|
+
"429":
|
|
40671
|
+
content:
|
|
40672
|
+
application/problem+json:
|
|
40673
|
+
examples:
|
|
40674
|
+
RATE_LIMITED:
|
|
40675
|
+
summary: RATE_LIMITED
|
|
40676
|
+
value:
|
|
40677
|
+
code: RATE_LIMITED
|
|
40678
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
40679
|
+
detail: See the operation contract.
|
|
40680
|
+
errors: []
|
|
40681
|
+
retryable: true
|
|
40682
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
40683
|
+
schemaVersion: 2.0.0
|
|
40684
|
+
status: 429
|
|
40685
|
+
title: RATE_LIMITED
|
|
40686
|
+
type: urn:gala:problem:rate-limited
|
|
40687
|
+
schema:
|
|
40688
|
+
$ref: "#/components/schemas/Problem"
|
|
40689
|
+
description: RATE_LIMITED
|
|
40690
|
+
headers:
|
|
40691
|
+
Cache-Control:
|
|
40692
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
40693
|
+
Retry-After:
|
|
40694
|
+
$ref: "#/components/headers/RetryAfter"
|
|
40695
|
+
X-Correlation-Id:
|
|
40696
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
40697
|
+
x-gala-problem-codes:
|
|
40698
|
+
- RATE_LIMITED
|
|
40699
|
+
"503":
|
|
40700
|
+
content:
|
|
40701
|
+
application/problem+json:
|
|
40702
|
+
examples:
|
|
40703
|
+
CAPABILITY_UNAVAILABLE:
|
|
40704
|
+
summary: CAPABILITY_UNAVAILABLE
|
|
40705
|
+
value:
|
|
40706
|
+
code: CAPABILITY_UNAVAILABLE
|
|
40707
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
40708
|
+
detail: See the operation contract.
|
|
40709
|
+
errors: []
|
|
40710
|
+
retryable: false
|
|
40711
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
40712
|
+
schemaVersion: 2.0.0
|
|
40713
|
+
status: 503
|
|
40714
|
+
title: CAPABILITY_UNAVAILABLE
|
|
40715
|
+
type: urn:gala:problem:capability-unavailable
|
|
40716
|
+
DEPENDENCY_UNAVAILABLE:
|
|
40717
|
+
summary: DEPENDENCY_UNAVAILABLE
|
|
40718
|
+
value:
|
|
40719
|
+
code: DEPENDENCY_UNAVAILABLE
|
|
40720
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
40721
|
+
detail: See the operation contract.
|
|
40722
|
+
errors: []
|
|
40723
|
+
retryable: true
|
|
40724
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
40725
|
+
schemaVersion: 2.0.0
|
|
40726
|
+
status: 503
|
|
40727
|
+
title: DEPENDENCY_UNAVAILABLE
|
|
40728
|
+
type: urn:gala:problem:dependency-unavailable
|
|
40729
|
+
schema:
|
|
40730
|
+
$ref: "#/components/schemas/Problem"
|
|
40731
|
+
description: CAPABILITY_UNAVAILABLE, DEPENDENCY_UNAVAILABLE
|
|
40732
|
+
headers:
|
|
40733
|
+
Cache-Control:
|
|
40734
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
40735
|
+
X-Correlation-Id:
|
|
40736
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
40737
|
+
x-gala-problem-codes:
|
|
40738
|
+
- CAPABILITY_UNAVAILABLE
|
|
40739
|
+
- DEPENDENCY_UNAVAILABLE
|
|
40740
|
+
security:
|
|
40741
|
+
- browserSession: []
|
|
40742
|
+
summary: list the history of one content document
|
|
40743
|
+
tags:
|
|
40744
|
+
- organizations
|
|
40745
|
+
x-gala-activation-gate: MVP
|
|
40746
|
+
x-gala-activation-guards:
|
|
40747
|
+
- Active repository binding and configured GitHub App identity capability
|
|
40748
|
+
x-gala-capability-key: publication.view
|
|
40749
|
+
x-gala-concurrency: binding-epoch
|
|
40750
|
+
x-gala-conditional-capabilities: []
|
|
40751
|
+
x-gala-example-profile: NOMINAL_SUCCESS_AND_EACH_REACHABLE_PROBLEM
|
|
40752
|
+
x-gala-nullability: required-and-nullable-are-explicit
|
|
40753
|
+
x-gala-purpose: list the history of one content document
|
|
40754
|
+
x-gala-reachable-problems:
|
|
40755
|
+
- AUTHENTICATION_REQUIRED
|
|
40756
|
+
- AUTHORIZATION_DENIED
|
|
40757
|
+
- CAPABILITY_UNAVAILABLE
|
|
40758
|
+
- DEPENDENCY_UNAVAILABLE
|
|
40759
|
+
- RATE_LIMITED
|
|
40760
|
+
- RESOURCE_NOT_FOUND
|
|
40761
|
+
- VALIDATION_FAILED
|
|
40762
|
+
x-gala-replay-identity: safe-query
|
|
40763
|
+
x-gala-state-guards:
|
|
40764
|
+
- NONE
|
|
40765
|
+
x-gala-success-category: query
|
|
40766
|
+
x-gala-tenant-scope: ORGANIZATION_AND_PUBLICATION_PATH
|
|
40767
|
+
/v2/organizations/{organizationId}/publications/{publicationId}/content/link-preview:
|
|
40768
|
+
post:
|
|
40769
|
+
description: |
|
|
40770
|
+
Needs `publication.source.write`. The server fetches `url` (https only; never an address on a private or internal network, and at most a few redirects, each re-checked) and returns what the page says about itself, for the editor's bookmark card: `title`, `description`, `siteName` and `canonicalUrl`, from Open Graph or standard metadata. Each member is omitted when the page does not give one. No image is returned or fetched. A page that cannot be reached, is not HTML or is too large is `422 VALIDATION_FAILED` pointed at `/url`. Calls are rate-limited per caller (`429 RATE_LIMITED`).
|
|
40771
|
+
operationId: postOrganizationsByOrganizationIdPublicationsByPublicationIdContentLinkPreview
|
|
40772
|
+
parameters:
|
|
40773
|
+
- $ref: "#/components/parameters/XCorrelationId"
|
|
40774
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
40775
|
+
in: path
|
|
40776
|
+
name: organizationId
|
|
40777
|
+
required: true
|
|
40778
|
+
schema:
|
|
40779
|
+
format: uuid
|
|
40780
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
40781
|
+
type: string
|
|
40782
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
40783
|
+
in: path
|
|
40784
|
+
name: publicationId
|
|
40785
|
+
required: true
|
|
40786
|
+
schema:
|
|
40787
|
+
format: uuid
|
|
40788
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
40789
|
+
type: string
|
|
40790
|
+
- $ref: "#/components/parameters/XCsrfToken"
|
|
40791
|
+
requestBody:
|
|
40792
|
+
content:
|
|
40793
|
+
application/json:
|
|
40794
|
+
examples:
|
|
40795
|
+
nominal:
|
|
40796
|
+
summary: Nominal valid request
|
|
40797
|
+
value:
|
|
40798
|
+
url: https://example.com/article
|
|
40799
|
+
schema:
|
|
40800
|
+
$ref: "#/components/schemas/PostOrganizationsByOrganizationIdPublicationsByPublicationIdContentLinkPreviewRequest"
|
|
40801
|
+
required: true
|
|
40802
|
+
responses:
|
|
40803
|
+
"200":
|
|
40804
|
+
content:
|
|
40805
|
+
application/json:
|
|
40806
|
+
examples:
|
|
40807
|
+
nominal:
|
|
40808
|
+
summary: Nominal successful response
|
|
40809
|
+
value:
|
|
40810
|
+
canonicalUrl: https://example.com/article
|
|
40811
|
+
description: A short description of the page.
|
|
40812
|
+
siteName: Example
|
|
40813
|
+
title: Example article
|
|
40814
|
+
schema:
|
|
40815
|
+
$ref: "#/components/schemas/PostOrganizationsByOrganizationIdPublicationsByPublicationIdContentLinkPreviewResponse"
|
|
40816
|
+
description: preview one linked page succeeded
|
|
40817
|
+
headers:
|
|
40818
|
+
Cache-Control:
|
|
40819
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
40820
|
+
X-Correlation-Id:
|
|
40821
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
40822
|
+
"400":
|
|
40823
|
+
content:
|
|
40824
|
+
application/problem+json:
|
|
40825
|
+
examples:
|
|
40826
|
+
REQUEST_FIELD_UNKNOWN:
|
|
40827
|
+
summary: REQUEST_FIELD_UNKNOWN
|
|
40828
|
+
value:
|
|
40829
|
+
code: REQUEST_FIELD_UNKNOWN
|
|
40830
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
40831
|
+
detail: See the operation contract.
|
|
40832
|
+
errors: []
|
|
40833
|
+
retryable: false
|
|
40834
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
40835
|
+
schemaVersion: 2.0.0
|
|
40836
|
+
status: 400
|
|
40837
|
+
title: REQUEST_FIELD_UNKNOWN
|
|
40838
|
+
type: urn:gala:problem:request-field-unknown
|
|
40839
|
+
VALIDATION_FAILED:
|
|
40840
|
+
summary: VALIDATION_FAILED
|
|
40841
|
+
value:
|
|
40842
|
+
code: VALIDATION_FAILED
|
|
40843
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
40844
|
+
detail: See the operation contract.
|
|
40845
|
+
errors: []
|
|
40846
|
+
retryable: false
|
|
40847
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
40848
|
+
schemaVersion: 2.0.0
|
|
40849
|
+
status: 400
|
|
40850
|
+
title: VALIDATION_FAILED
|
|
40851
|
+
type: urn:gala:problem:validation-failed
|
|
40852
|
+
schema:
|
|
40853
|
+
$ref: "#/components/schemas/Problem"
|
|
40854
|
+
description: REQUEST_FIELD_UNKNOWN, VALIDATION_FAILED
|
|
40855
|
+
headers:
|
|
40856
|
+
Cache-Control:
|
|
40857
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
40858
|
+
X-Correlation-Id:
|
|
40859
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
40860
|
+
x-gala-problem-codes:
|
|
40861
|
+
- REQUEST_FIELD_UNKNOWN
|
|
40862
|
+
- VALIDATION_FAILED
|
|
40863
|
+
"401":
|
|
40864
|
+
content:
|
|
40865
|
+
application/problem+json:
|
|
40866
|
+
examples:
|
|
40867
|
+
AUTHENTICATION_REQUIRED:
|
|
40868
|
+
summary: AUTHENTICATION_REQUIRED
|
|
40869
|
+
value:
|
|
40870
|
+
code: AUTHENTICATION_REQUIRED
|
|
40871
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
40872
|
+
detail: See the operation contract.
|
|
40873
|
+
errors: []
|
|
40874
|
+
retryable: false
|
|
40875
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
40876
|
+
schemaVersion: 2.0.0
|
|
40877
|
+
status: 401
|
|
40878
|
+
title: AUTHENTICATION_REQUIRED
|
|
40879
|
+
type: urn:gala:problem:authentication-required
|
|
40880
|
+
schema:
|
|
40881
|
+
$ref: "#/components/schemas/Problem"
|
|
40882
|
+
description: AUTHENTICATION_REQUIRED
|
|
40883
|
+
headers:
|
|
40884
|
+
Cache-Control:
|
|
40885
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
40886
|
+
X-Correlation-Id:
|
|
40887
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
40888
|
+
x-gala-problem-codes:
|
|
40889
|
+
- AUTHENTICATION_REQUIRED
|
|
40890
|
+
"403":
|
|
40891
|
+
content:
|
|
40892
|
+
application/problem+json:
|
|
40893
|
+
examples:
|
|
40894
|
+
AUTHORIZATION_DENIED:
|
|
40895
|
+
summary: AUTHORIZATION_DENIED
|
|
40896
|
+
value:
|
|
40897
|
+
code: AUTHORIZATION_DENIED
|
|
40898
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
40899
|
+
detail: See the operation contract.
|
|
40900
|
+
errors: []
|
|
40901
|
+
retryable: false
|
|
40902
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
40903
|
+
schemaVersion: 2.0.0
|
|
40904
|
+
status: 403
|
|
40905
|
+
title: AUTHORIZATION_DENIED
|
|
40906
|
+
type: urn:gala:problem:authorization-denied
|
|
40907
|
+
schema:
|
|
40908
|
+
$ref: "#/components/schemas/Problem"
|
|
40909
|
+
description: AUTHORIZATION_DENIED
|
|
40910
|
+
headers:
|
|
40911
|
+
Cache-Control:
|
|
40912
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
40913
|
+
X-Correlation-Id:
|
|
40914
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
40915
|
+
x-gala-problem-codes:
|
|
40916
|
+
- AUTHORIZATION_DENIED
|
|
40917
|
+
"404":
|
|
40918
|
+
content:
|
|
40919
|
+
application/problem+json:
|
|
40920
|
+
examples:
|
|
40921
|
+
RESOURCE_NOT_FOUND:
|
|
40922
|
+
summary: RESOURCE_NOT_FOUND
|
|
40923
|
+
value:
|
|
40924
|
+
code: RESOURCE_NOT_FOUND
|
|
40925
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
40926
|
+
detail: See the operation contract.
|
|
40927
|
+
errors: []
|
|
40928
|
+
retryable: false
|
|
40929
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
40930
|
+
schemaVersion: 2.0.0
|
|
40931
|
+
status: 404
|
|
40932
|
+
title: RESOURCE_NOT_FOUND
|
|
40933
|
+
type: urn:gala:problem:resource-not-found
|
|
40934
|
+
schema:
|
|
40935
|
+
$ref: "#/components/schemas/Problem"
|
|
40936
|
+
description: RESOURCE_NOT_FOUND
|
|
40937
|
+
headers:
|
|
40938
|
+
Cache-Control:
|
|
40939
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
40940
|
+
X-Correlation-Id:
|
|
40941
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
40942
|
+
x-gala-problem-codes:
|
|
40943
|
+
- RESOURCE_NOT_FOUND
|
|
40944
|
+
"422":
|
|
40945
|
+
content:
|
|
40946
|
+
application/problem+json:
|
|
40947
|
+
examples:
|
|
40948
|
+
VALIDATION_FAILED:
|
|
40949
|
+
summary: VALIDATION_FAILED
|
|
40950
|
+
value:
|
|
40951
|
+
code: VALIDATION_FAILED
|
|
40952
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
40953
|
+
detail: The page could not be reached, is not an HTML page or is too large. See the operation contract.
|
|
40954
|
+
errors:
|
|
40955
|
+
- code: VALIDATION_FAILED
|
|
40956
|
+
pointer: /url
|
|
40957
|
+
retryable: false
|
|
40958
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
40959
|
+
schemaVersion: 2.0.0
|
|
40960
|
+
status: 422
|
|
40961
|
+
title: VALIDATION_FAILED
|
|
40962
|
+
type: urn:gala:problem:validation-failed
|
|
40963
|
+
schema:
|
|
40964
|
+
$ref: "#/components/schemas/Problem"
|
|
40965
|
+
description: VALIDATION_FAILED
|
|
40966
|
+
headers:
|
|
40967
|
+
Cache-Control:
|
|
40968
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
40969
|
+
X-Correlation-Id:
|
|
40970
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
40971
|
+
x-gala-problem-codes:
|
|
40972
|
+
- VALIDATION_FAILED
|
|
40973
|
+
"429":
|
|
40974
|
+
content:
|
|
40975
|
+
application/problem+json:
|
|
40976
|
+
examples:
|
|
40977
|
+
RATE_LIMITED:
|
|
40978
|
+
summary: RATE_LIMITED
|
|
40979
|
+
value:
|
|
40980
|
+
code: RATE_LIMITED
|
|
40981
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
40982
|
+
detail: See the operation contract.
|
|
40983
|
+
errors: []
|
|
40984
|
+
retryable: true
|
|
40985
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
40986
|
+
schemaVersion: 2.0.0
|
|
40987
|
+
status: 429
|
|
40988
|
+
title: RATE_LIMITED
|
|
40989
|
+
type: urn:gala:problem:rate-limited
|
|
40990
|
+
schema:
|
|
40991
|
+
$ref: "#/components/schemas/Problem"
|
|
40992
|
+
description: RATE_LIMITED
|
|
40993
|
+
headers:
|
|
40994
|
+
Cache-Control:
|
|
40995
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
40996
|
+
Retry-After:
|
|
40997
|
+
$ref: "#/components/headers/RetryAfter"
|
|
40998
|
+
X-Correlation-Id:
|
|
40999
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
41000
|
+
x-gala-problem-codes:
|
|
41001
|
+
- RATE_LIMITED
|
|
41002
|
+
security:
|
|
41003
|
+
- browserSession: []
|
|
41004
|
+
summary: preview one linked page
|
|
41005
|
+
tags:
|
|
41006
|
+
- organizations
|
|
41007
|
+
x-gala-activation-gate: MVP
|
|
41008
|
+
x-gala-activation-guards:
|
|
41009
|
+
- NONE
|
|
41010
|
+
x-gala-capability-key: publication.source.write
|
|
41011
|
+
x-gala-concurrency: authorization-and-publication-epochs
|
|
41012
|
+
x-gala-conditional-capabilities: []
|
|
41013
|
+
x-gala-example-profile: NOMINAL_SUCCESS_AND_EACH_REACHABLE_PROBLEM
|
|
41014
|
+
x-gala-nullability: required-and-nullable-are-explicit
|
|
41015
|
+
x-gala-purpose: preview one linked page
|
|
41016
|
+
x-gala-reachable-problems:
|
|
41017
|
+
- AUTHENTICATION_REQUIRED
|
|
41018
|
+
- AUTHORIZATION_DENIED
|
|
41019
|
+
- RATE_LIMITED
|
|
41020
|
+
- REQUEST_FIELD_UNKNOWN
|
|
41021
|
+
- RESOURCE_NOT_FOUND
|
|
41022
|
+
- VALIDATION_FAILED
|
|
41023
|
+
x-gala-replay-identity: natural-idempotent-state
|
|
41024
|
+
x-gala-state-guards:
|
|
41025
|
+
- NONE
|
|
41026
|
+
x-gala-success-category: query
|
|
41027
|
+
x-gala-tenant-scope: ORGANIZATION_AND_PUBLICATION_PATH
|
|
40054
41028
|
/v2/organizations/{organizationId}/publications/{publicationId}/content/preview-context:
|
|
40055
41029
|
get:
|
|
40056
41030
|
description: |
|
|
@@ -48721,6 +49695,11 @@ paths:
|
|
|
48721
49695
|
removed and settles the appeal `DENIED` (`note` optional, at most 1000
|
|
48722
49696
|
characters). `DENY_APPEAL` without a pending appeal is `409
|
|
48723
49697
|
INVALID_DECISION`. Only a person decides an appeal.
|
|
49698
|
+
SCHEMA-3.32.0: `PIN` pins a visible root comment to the top of its
|
|
49699
|
+
article's comments (at most one pinned comment per article; pinning
|
|
49700
|
+
another moves the pin) and `UNPIN` releases it; on any other comment, or
|
|
49701
|
+
when the comment is already in the asked state, they are `409
|
|
49702
|
+
INVALID_DECISION`.
|
|
48724
49703
|
operationId: postOrganizationsByOrganizationIdPublicationsByPublicationIdModerationCommentsByCommentIdDecide
|
|
48725
49704
|
parameters:
|
|
48726
49705
|
- $ref: "#/components/parameters/XCorrelationId"
|
|
@@ -50054,6 +51033,164 @@ paths:
|
|
|
50054
51033
|
- NONE
|
|
50055
51034
|
x-gala-success-category: protocol
|
|
50056
51035
|
x-gala-tenant-scope: ORGANIZATION_AND_PUBLICATION_PATH
|
|
51036
|
+
/v2/organizations/{organizationId}/publications/{publicationId}/newsletter-subscribers:import:
|
|
51037
|
+
post:
|
|
51038
|
+
description: |
|
|
51039
|
+
Needs `publication.audience.manage`. The body is the addresses the owner's file held, already parsed by the App (at most 5000 per call), with `attestation: true`: the owner states that every address agreed to hear from them. Each address that is new becomes a `pending` subscriber and is sent the same confirmation email a reader who signs up receives; nobody is subscribed until they confirm. An address that is already known (`pending`, `confirmed`, `unsubscribed` or `suppressed`) is skipped and counted in `skippedKnown`, so repeating a call is harmless. `invalid` counts entries that are not usable addresses and `overCapacity` those left out because the organization's subscriber allowance was reached. A call without `attestation: true` is `400 VALIDATION_FAILED`.
|
|
51040
|
+
operationId: postOrganizationsByOrganizationIdPublicationsByPublicationIdNewsletterSubscribersImport
|
|
51041
|
+
parameters:
|
|
51042
|
+
- $ref: "#/components/parameters/XCorrelationId"
|
|
51043
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
51044
|
+
in: path
|
|
51045
|
+
name: organizationId
|
|
51046
|
+
required: true
|
|
51047
|
+
schema:
|
|
51048
|
+
format: uuid
|
|
51049
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
51050
|
+
type: string
|
|
51051
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
51052
|
+
in: path
|
|
51053
|
+
name: publicationId
|
|
51054
|
+
required: true
|
|
51055
|
+
schema:
|
|
51056
|
+
format: uuid
|
|
51057
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
51058
|
+
type: string
|
|
51059
|
+
- $ref: "#/components/parameters/XCsrfToken"
|
|
51060
|
+
requestBody:
|
|
51061
|
+
content:
|
|
51062
|
+
application/json:
|
|
51063
|
+
examples:
|
|
51064
|
+
nominal:
|
|
51065
|
+
summary: Nominal valid request
|
|
51066
|
+
value:
|
|
51067
|
+
addresses:
|
|
51068
|
+
- reader@example.com
|
|
51069
|
+
attestation: true
|
|
51070
|
+
schema:
|
|
51071
|
+
$ref: "#/components/schemas/PostOrganizationsByOrganizationIdPublicationsByPublicationIdNewsletterSubscribersImportRequest"
|
|
51072
|
+
required: true
|
|
51073
|
+
responses:
|
|
51074
|
+
"202":
|
|
51075
|
+
content:
|
|
51076
|
+
application/json:
|
|
51077
|
+
examples:
|
|
51078
|
+
nominal:
|
|
51079
|
+
summary: Nominal successful response
|
|
51080
|
+
value:
|
|
51081
|
+
invalid: 0
|
|
51082
|
+
overCapacity: 0
|
|
51083
|
+
queued: 1
|
|
51084
|
+
skippedKnown: 0
|
|
51085
|
+
schema:
|
|
51086
|
+
$ref: "#/components/schemas/PostOrganizationsByOrganizationIdPublicationsByPublicationIdNewsletterSubscribersImportResponse"
|
|
51087
|
+
description: import a site's newsletter subscribers succeeded
|
|
51088
|
+
headers:
|
|
51089
|
+
Cache-Control:
|
|
51090
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
51091
|
+
X-Correlation-Id:
|
|
51092
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
51093
|
+
"400":
|
|
51094
|
+
content:
|
|
51095
|
+
application/problem+json:
|
|
51096
|
+
examples:
|
|
51097
|
+
REQUEST_FIELD_UNKNOWN:
|
|
51098
|
+
summary: REQUEST_FIELD_UNKNOWN
|
|
51099
|
+
value:
|
|
51100
|
+
code: REQUEST_FIELD_UNKNOWN
|
|
51101
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
51102
|
+
detail: See the operation contract.
|
|
51103
|
+
errors: []
|
|
51104
|
+
retryable: false
|
|
51105
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
51106
|
+
schemaVersion: 2.0.0
|
|
51107
|
+
status: 400
|
|
51108
|
+
title: REQUEST_FIELD_UNKNOWN
|
|
51109
|
+
type: urn:gala:problem:request-field-unknown
|
|
51110
|
+
VALIDATION_FAILED:
|
|
51111
|
+
summary: VALIDATION_FAILED
|
|
51112
|
+
value:
|
|
51113
|
+
code: VALIDATION_FAILED
|
|
51114
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
51115
|
+
detail: See the operation contract.
|
|
51116
|
+
errors: []
|
|
51117
|
+
retryable: false
|
|
51118
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
51119
|
+
schemaVersion: 2.0.0
|
|
51120
|
+
status: 400
|
|
51121
|
+
title: VALIDATION_FAILED
|
|
51122
|
+
type: urn:gala:problem:validation-failed
|
|
51123
|
+
schema:
|
|
51124
|
+
$ref: "#/components/schemas/Problem"
|
|
51125
|
+
description: REQUEST_FIELD_UNKNOWN, VALIDATION_FAILED
|
|
51126
|
+
headers:
|
|
51127
|
+
Cache-Control:
|
|
51128
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
51129
|
+
X-Correlation-Id:
|
|
51130
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
51131
|
+
x-gala-problem-codes:
|
|
51132
|
+
- REQUEST_FIELD_UNKNOWN
|
|
51133
|
+
- VALIDATION_FAILED
|
|
51134
|
+
"401":
|
|
51135
|
+
content:
|
|
51136
|
+
application/problem+json:
|
|
51137
|
+
examples:
|
|
51138
|
+
AUTHENTICATION_REQUIRED:
|
|
51139
|
+
summary: AUTHENTICATION_REQUIRED
|
|
51140
|
+
value:
|
|
51141
|
+
code: AUTHENTICATION_REQUIRED
|
|
51142
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
51143
|
+
detail: See the operation contract.
|
|
51144
|
+
errors: []
|
|
51145
|
+
retryable: false
|
|
51146
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
51147
|
+
schemaVersion: 2.0.0
|
|
51148
|
+
status: 401
|
|
51149
|
+
title: AUTHENTICATION_REQUIRED
|
|
51150
|
+
type: urn:gala:problem:authentication-required
|
|
51151
|
+
schema:
|
|
51152
|
+
$ref: "#/components/schemas/Problem"
|
|
51153
|
+
description: AUTHENTICATION_REQUIRED
|
|
51154
|
+
headers:
|
|
51155
|
+
Cache-Control:
|
|
51156
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
51157
|
+
X-Correlation-Id:
|
|
51158
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
51159
|
+
x-gala-problem-codes:
|
|
51160
|
+
- AUTHENTICATION_REQUIRED
|
|
51161
|
+
"403":
|
|
51162
|
+
$ref: "#/components/responses/AuthorizationDenied"
|
|
51163
|
+
"404":
|
|
51164
|
+
$ref: "#/components/responses/ResourceNotFound"
|
|
51165
|
+
"413":
|
|
51166
|
+
$ref: "#/components/responses/RequestTooLarge"
|
|
51167
|
+
"415":
|
|
51168
|
+
$ref: "#/components/responses/UnsupportedMediaType"
|
|
51169
|
+
security:
|
|
51170
|
+
- browserSession: []
|
|
51171
|
+
summary: import a site's newsletter subscribers
|
|
51172
|
+
tags:
|
|
51173
|
+
- audience
|
|
51174
|
+
x-gala-activation-gate: MVP
|
|
51175
|
+
x-gala-activation-guards:
|
|
51176
|
+
- NONE
|
|
51177
|
+
x-gala-capability-key: publication.audience.manage
|
|
51178
|
+
x-gala-concurrency: authorization-and-publication-epochs
|
|
51179
|
+
x-gala-conditional-capabilities: []
|
|
51180
|
+
x-gala-example-profile: NOMINAL_SUCCESS_AND_EACH_REACHABLE_PROBLEM
|
|
51181
|
+
x-gala-nullability: required-and-nullable-are-explicit
|
|
51182
|
+
x-gala-purpose: import a site's newsletter subscribers
|
|
51183
|
+
x-gala-reachable-problems:
|
|
51184
|
+
- AUTHENTICATION_REQUIRED
|
|
51185
|
+
- AUTHORIZATION_DENIED
|
|
51186
|
+
- REQUEST_FIELD_UNKNOWN
|
|
51187
|
+
- RESOURCE_NOT_FOUND
|
|
51188
|
+
- VALIDATION_FAILED
|
|
51189
|
+
x-gala-replay-identity: natural-idempotent-state
|
|
51190
|
+
x-gala-state-guards:
|
|
51191
|
+
- NONE
|
|
51192
|
+
x-gala-success-category: async
|
|
51193
|
+
x-gala-tenant-scope: ORGANIZATION_AND_PUBLICATION_PATH
|
|
50057
51194
|
/v2/organizations/{organizationId}/publications/{publicationId}/overview:
|
|
50058
51195
|
get:
|
|
50059
51196
|
description: |
|
|
@@ -65946,7 +67083,7 @@ paths:
|
|
|
65946
67083
|
required: false
|
|
65947
67084
|
schema:
|
|
65948
67085
|
$ref: "#/components/schemas/PlatformPersonState"
|
|
65949
|
-
- description: Case-insensitive match against person id, display name, or login.
|
|
67086
|
+
- description: Case-insensitive match against person id, display name, or login. A search containing "@" also matches a person whose contact email on file equals it exactly (case-insensitive).
|
|
65950
67087
|
example: ada
|
|
65951
67088
|
in: query
|
|
65952
67089
|
name: search
|
|
@@ -65967,7 +67104,8 @@ paths:
|
|
|
65967
67104
|
value:
|
|
65968
67105
|
hasMore: false
|
|
65969
67106
|
items:
|
|
65970
|
-
-
|
|
67107
|
+
- contactEmail: ada@example.com
|
|
67108
|
+
contactEmailOnFile: true
|
|
65971
67109
|
createdAt: "2026-09-01T12:00:00.000Z"
|
|
65972
67110
|
displayName: Ada Reader
|
|
65973
67111
|
lastSignInAt: "2026-10-10T11:30:00.000Z"
|
|
@@ -66392,10 +67530,550 @@ paths:
|
|
|
66392
67530
|
content:
|
|
66393
67531
|
application/problem+json:
|
|
66394
67532
|
examples:
|
|
66395
|
-
NOT_COMMENT_AUTHOR:
|
|
66396
|
-
summary: NOT_COMMENT_AUTHOR
|
|
67533
|
+
NOT_COMMENT_AUTHOR:
|
|
67534
|
+
summary: NOT_COMMENT_AUTHOR
|
|
67535
|
+
value:
|
|
67536
|
+
code: NOT_COMMENT_AUTHOR
|
|
67537
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
67538
|
+
detail: See the operation contract.
|
|
67539
|
+
errors: []
|
|
67540
|
+
retryable: false
|
|
67541
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
67542
|
+
schemaVersion: 2.0.0
|
|
67543
|
+
status: 403
|
|
67544
|
+
title: NOT_COMMENT_AUTHOR
|
|
67545
|
+
type: urn:gala:problem:not-comment-author
|
|
67546
|
+
READER_TOKEN_SCOPE:
|
|
67547
|
+
summary: READER_TOKEN_SCOPE
|
|
67548
|
+
value:
|
|
67549
|
+
code: READER_TOKEN_SCOPE
|
|
67550
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
67551
|
+
detail: See the operation contract.
|
|
67552
|
+
errors: []
|
|
67553
|
+
retryable: false
|
|
67554
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
67555
|
+
schemaVersion: 2.0.0
|
|
67556
|
+
status: 403
|
|
67557
|
+
title: READER_TOKEN_SCOPE
|
|
67558
|
+
type: urn:gala:problem:reader-token-scope
|
|
67559
|
+
schema:
|
|
67560
|
+
$ref: "#/components/schemas/Problem"
|
|
67561
|
+
description: NOT_COMMENT_AUTHOR, READER_TOKEN_SCOPE
|
|
67562
|
+
headers:
|
|
67563
|
+
Cache-Control:
|
|
67564
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
67565
|
+
X-Correlation-Id:
|
|
67566
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
67567
|
+
x-gala-problem-codes:
|
|
67568
|
+
- NOT_COMMENT_AUTHOR
|
|
67569
|
+
- READER_TOKEN_SCOPE
|
|
67570
|
+
"404":
|
|
67571
|
+
content:
|
|
67572
|
+
application/problem+json:
|
|
67573
|
+
examples:
|
|
67574
|
+
COMMENT_NOT_FOUND:
|
|
67575
|
+
summary: COMMENT_NOT_FOUND
|
|
67576
|
+
value:
|
|
67577
|
+
code: COMMENT_NOT_FOUND
|
|
67578
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
67579
|
+
detail: See the operation contract.
|
|
67580
|
+
errors: []
|
|
67581
|
+
retryable: false
|
|
67582
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
67583
|
+
schemaVersion: 2.0.0
|
|
67584
|
+
status: 404
|
|
67585
|
+
title: COMMENT_NOT_FOUND
|
|
67586
|
+
type: urn:gala:problem:comment-not-found
|
|
67587
|
+
schema:
|
|
67588
|
+
$ref: "#/components/schemas/Problem"
|
|
67589
|
+
description: COMMENT_NOT_FOUND
|
|
67590
|
+
headers:
|
|
67591
|
+
Cache-Control:
|
|
67592
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
67593
|
+
X-Correlation-Id:
|
|
67594
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
67595
|
+
x-gala-problem-codes:
|
|
67596
|
+
- COMMENT_NOT_FOUND
|
|
67597
|
+
security:
|
|
67598
|
+
- readerBearer: []
|
|
67599
|
+
summary: delete the reader's own comment
|
|
67600
|
+
tags:
|
|
67601
|
+
- public-interactions
|
|
67602
|
+
x-gala-activation-gate: MVP
|
|
67603
|
+
x-gala-activation-guards:
|
|
67604
|
+
- NONE
|
|
67605
|
+
x-gala-capability-key: null
|
|
67606
|
+
x-gala-concurrency: none
|
|
67607
|
+
x-gala-conditional-capabilities: []
|
|
67608
|
+
x-gala-example-profile: NOMINAL_SUCCESS_AND_EACH_REACHABLE_PROBLEM
|
|
67609
|
+
x-gala-nullability: required-and-nullable-are-explicit
|
|
67610
|
+
x-gala-purpose: delete the reader's own comment
|
|
67611
|
+
x-gala-reachable-problems:
|
|
67612
|
+
- COMMENT_NOT_FOUND
|
|
67613
|
+
- NOT_COMMENT_AUTHOR
|
|
67614
|
+
- READER_AUTHENTICATION_REQUIRED
|
|
67615
|
+
- READER_TOKEN_SCOPE
|
|
67616
|
+
- VALIDATION_FAILED
|
|
67617
|
+
x-gala-replay-identity: natural-idempotent-state
|
|
67618
|
+
x-gala-state-guards:
|
|
67619
|
+
- NONE
|
|
67620
|
+
x-gala-success-category: delete
|
|
67621
|
+
x-gala-tenant-scope: NONE
|
|
67622
|
+
/v2/public/comments/{commentId}/appeals:
|
|
67623
|
+
post:
|
|
67624
|
+
description: |
|
|
67625
|
+
The comment's author asks the moderators to look again at a removal or
|
|
67626
|
+
hold. One appeal per removal: `409 APPEAL_EXISTS` when one was already
|
|
67627
|
+
made against the current removal; `409 APPEAL_NOT_ALLOWED` when the
|
|
67628
|
+
comment is not removed or held, or the reader is not its author. At most
|
|
67629
|
+
5 appeals a day per reader (`429 RATE_LIMITED`). A human decides; the
|
|
67630
|
+
answer shows under the comment.
|
|
67631
|
+
operationId: postPublicCommentsByCommentIdAppeals
|
|
67632
|
+
parameters:
|
|
67633
|
+
- $ref: "#/components/parameters/XCorrelationId"
|
|
67634
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
67635
|
+
in: path
|
|
67636
|
+
name: commentId
|
|
67637
|
+
required: true
|
|
67638
|
+
schema:
|
|
67639
|
+
format: uuid
|
|
67640
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
67641
|
+
type: string
|
|
67642
|
+
requestBody:
|
|
67643
|
+
content:
|
|
67644
|
+
application/json:
|
|
67645
|
+
examples:
|
|
67646
|
+
nominal:
|
|
67647
|
+
summary: Nominal valid request
|
|
67648
|
+
value:
|
|
67649
|
+
note: The link was to my own project page, not spam.
|
|
67650
|
+
schema:
|
|
67651
|
+
$ref: "#/components/schemas/PostPublicCommentsByCommentIdAppealsRequest"
|
|
67652
|
+
required: true
|
|
67653
|
+
responses:
|
|
67654
|
+
"202":
|
|
67655
|
+
content:
|
|
67656
|
+
application/json:
|
|
67657
|
+
examples:
|
|
67658
|
+
nominal:
|
|
67659
|
+
summary: Nominal successful response
|
|
67660
|
+
value:
|
|
67661
|
+
status: RECEIVED
|
|
67662
|
+
schema:
|
|
67663
|
+
$ref: "#/components/schemas/PostPublicCommentsByCommentIdAppealsResponse"
|
|
67664
|
+
description: appeal the removal of my comment succeeded
|
|
67665
|
+
headers:
|
|
67666
|
+
Cache-Control:
|
|
67667
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
67668
|
+
X-Correlation-Id:
|
|
67669
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
67670
|
+
"400":
|
|
67671
|
+
content:
|
|
67672
|
+
application/problem+json:
|
|
67673
|
+
examples:
|
|
67674
|
+
REQUEST_FIELD_UNKNOWN:
|
|
67675
|
+
summary: REQUEST_FIELD_UNKNOWN
|
|
67676
|
+
value:
|
|
67677
|
+
code: REQUEST_FIELD_UNKNOWN
|
|
67678
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
67679
|
+
detail: See the operation contract.
|
|
67680
|
+
errors: []
|
|
67681
|
+
retryable: false
|
|
67682
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
67683
|
+
schemaVersion: 2.0.0
|
|
67684
|
+
status: 400
|
|
67685
|
+
title: REQUEST_FIELD_UNKNOWN
|
|
67686
|
+
type: urn:gala:problem:request-field-unknown
|
|
67687
|
+
VALIDATION_FAILED:
|
|
67688
|
+
summary: VALIDATION_FAILED
|
|
67689
|
+
value:
|
|
67690
|
+
code: VALIDATION_FAILED
|
|
67691
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
67692
|
+
detail: See the operation contract.
|
|
67693
|
+
errors: []
|
|
67694
|
+
retryable: false
|
|
67695
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
67696
|
+
schemaVersion: 2.0.0
|
|
67697
|
+
status: 400
|
|
67698
|
+
title: VALIDATION_FAILED
|
|
67699
|
+
type: urn:gala:problem:validation-failed
|
|
67700
|
+
schema:
|
|
67701
|
+
$ref: "#/components/schemas/Problem"
|
|
67702
|
+
description: REQUEST_FIELD_UNKNOWN, VALIDATION_FAILED
|
|
67703
|
+
headers:
|
|
67704
|
+
Cache-Control:
|
|
67705
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
67706
|
+
X-Correlation-Id:
|
|
67707
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
67708
|
+
x-gala-problem-codes:
|
|
67709
|
+
- REQUEST_FIELD_UNKNOWN
|
|
67710
|
+
- VALIDATION_FAILED
|
|
67711
|
+
"401":
|
|
67712
|
+
content:
|
|
67713
|
+
application/problem+json:
|
|
67714
|
+
examples:
|
|
67715
|
+
READER_AUTHENTICATION_REQUIRED:
|
|
67716
|
+
summary: READER_AUTHENTICATION_REQUIRED
|
|
67717
|
+
value:
|
|
67718
|
+
code: READER_AUTHENTICATION_REQUIRED
|
|
67719
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
67720
|
+
detail: See the operation contract.
|
|
67721
|
+
errors: []
|
|
67722
|
+
retryable: false
|
|
67723
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
67724
|
+
schemaVersion: 2.0.0
|
|
67725
|
+
status: 401
|
|
67726
|
+
title: READER_AUTHENTICATION_REQUIRED
|
|
67727
|
+
type: urn:gala:problem:reader-authentication-required
|
|
67728
|
+
schema:
|
|
67729
|
+
$ref: "#/components/schemas/Problem"
|
|
67730
|
+
description: READER_AUTHENTICATION_REQUIRED
|
|
67731
|
+
headers:
|
|
67732
|
+
Cache-Control:
|
|
67733
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
67734
|
+
X-Correlation-Id:
|
|
67735
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
67736
|
+
x-gala-problem-codes:
|
|
67737
|
+
- READER_AUTHENTICATION_REQUIRED
|
|
67738
|
+
"403":
|
|
67739
|
+
content:
|
|
67740
|
+
application/problem+json:
|
|
67741
|
+
examples:
|
|
67742
|
+
READER_TOKEN_SCOPE:
|
|
67743
|
+
summary: READER_TOKEN_SCOPE
|
|
67744
|
+
value:
|
|
67745
|
+
code: READER_TOKEN_SCOPE
|
|
67746
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
67747
|
+
detail: See the operation contract.
|
|
67748
|
+
errors: []
|
|
67749
|
+
retryable: false
|
|
67750
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
67751
|
+
schemaVersion: 2.0.0
|
|
67752
|
+
status: 403
|
|
67753
|
+
title: READER_TOKEN_SCOPE
|
|
67754
|
+
type: urn:gala:problem:reader-token-scope
|
|
67755
|
+
schema:
|
|
67756
|
+
$ref: "#/components/schemas/Problem"
|
|
67757
|
+
description: READER_TOKEN_SCOPE
|
|
67758
|
+
headers:
|
|
67759
|
+
Cache-Control:
|
|
67760
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
67761
|
+
X-Correlation-Id:
|
|
67762
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
67763
|
+
x-gala-problem-codes:
|
|
67764
|
+
- READER_TOKEN_SCOPE
|
|
67765
|
+
"404":
|
|
67766
|
+
content:
|
|
67767
|
+
application/problem+json:
|
|
67768
|
+
examples:
|
|
67769
|
+
COMMENT_NOT_FOUND:
|
|
67770
|
+
summary: COMMENT_NOT_FOUND
|
|
67771
|
+
value:
|
|
67772
|
+
code: COMMENT_NOT_FOUND
|
|
67773
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
67774
|
+
detail: See the operation contract.
|
|
67775
|
+
errors: []
|
|
67776
|
+
retryable: false
|
|
67777
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
67778
|
+
schemaVersion: 2.0.0
|
|
67779
|
+
status: 404
|
|
67780
|
+
title: COMMENT_NOT_FOUND
|
|
67781
|
+
type: urn:gala:problem:comment-not-found
|
|
67782
|
+
schema:
|
|
67783
|
+
$ref: "#/components/schemas/Problem"
|
|
67784
|
+
description: COMMENT_NOT_FOUND
|
|
67785
|
+
headers:
|
|
67786
|
+
Cache-Control:
|
|
67787
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
67788
|
+
X-Correlation-Id:
|
|
67789
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
67790
|
+
x-gala-problem-codes:
|
|
67791
|
+
- COMMENT_NOT_FOUND
|
|
67792
|
+
"409":
|
|
67793
|
+
content:
|
|
67794
|
+
application/problem+json:
|
|
67795
|
+
examples:
|
|
67796
|
+
APPEAL_EXISTS:
|
|
67797
|
+
summary: APPEAL_EXISTS
|
|
67798
|
+
value:
|
|
67799
|
+
code: APPEAL_EXISTS
|
|
67800
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
67801
|
+
detail: See the operation contract.
|
|
67802
|
+
errors: []
|
|
67803
|
+
retryable: false
|
|
67804
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
67805
|
+
schemaVersion: 2.0.0
|
|
67806
|
+
status: 409
|
|
67807
|
+
title: APPEAL_EXISTS
|
|
67808
|
+
type: urn:gala:problem:appeal-exists
|
|
67809
|
+
APPEAL_NOT_ALLOWED:
|
|
67810
|
+
summary: APPEAL_NOT_ALLOWED
|
|
67811
|
+
value:
|
|
67812
|
+
code: APPEAL_NOT_ALLOWED
|
|
67813
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
67814
|
+
detail: See the operation contract.
|
|
67815
|
+
errors: []
|
|
67816
|
+
retryable: false
|
|
67817
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
67818
|
+
schemaVersion: 2.0.0
|
|
67819
|
+
status: 409
|
|
67820
|
+
title: APPEAL_NOT_ALLOWED
|
|
67821
|
+
type: urn:gala:problem:appeal-not-allowed
|
|
67822
|
+
schema:
|
|
67823
|
+
$ref: "#/components/schemas/Problem"
|
|
67824
|
+
description: APPEAL_EXISTS, APPEAL_NOT_ALLOWED
|
|
67825
|
+
headers:
|
|
67826
|
+
Cache-Control:
|
|
67827
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
67828
|
+
X-Correlation-Id:
|
|
67829
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
67830
|
+
x-gala-problem-codes:
|
|
67831
|
+
- APPEAL_EXISTS
|
|
67832
|
+
- APPEAL_NOT_ALLOWED
|
|
67833
|
+
"429":
|
|
67834
|
+
content:
|
|
67835
|
+
application/problem+json:
|
|
67836
|
+
examples:
|
|
67837
|
+
RATE_LIMITED:
|
|
67838
|
+
summary: RATE_LIMITED
|
|
67839
|
+
value:
|
|
67840
|
+
code: RATE_LIMITED
|
|
67841
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
67842
|
+
detail: See the operation contract.
|
|
67843
|
+
errors: []
|
|
67844
|
+
retryable: true
|
|
67845
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
67846
|
+
schemaVersion: 2.0.0
|
|
67847
|
+
status: 429
|
|
67848
|
+
title: RATE_LIMITED
|
|
67849
|
+
type: urn:gala:problem:rate-limited
|
|
67850
|
+
schema:
|
|
67851
|
+
$ref: "#/components/schemas/Problem"
|
|
67852
|
+
description: RATE_LIMITED
|
|
67853
|
+
headers:
|
|
67854
|
+
Cache-Control:
|
|
67855
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
67856
|
+
Retry-After:
|
|
67857
|
+
$ref: "#/components/headers/RetryAfter"
|
|
67858
|
+
X-Correlation-Id:
|
|
67859
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
67860
|
+
x-gala-problem-codes:
|
|
67861
|
+
- RATE_LIMITED
|
|
67862
|
+
security:
|
|
67863
|
+
- readerBearer: []
|
|
67864
|
+
summary: appeal the removal of my comment
|
|
67865
|
+
tags:
|
|
67866
|
+
- public-interactions
|
|
67867
|
+
x-gala-activation-gate: MVP
|
|
67868
|
+
x-gala-activation-guards:
|
|
67869
|
+
- NONE
|
|
67870
|
+
x-gala-capability-key: null
|
|
67871
|
+
x-gala-concurrency: none
|
|
67872
|
+
x-gala-conditional-capabilities: []
|
|
67873
|
+
x-gala-example-profile: NOMINAL_SUCCESS_AND_EACH_REACHABLE_PROBLEM
|
|
67874
|
+
x-gala-nullability: required-and-nullable-are-explicit
|
|
67875
|
+
x-gala-purpose: appeal the removal of my comment
|
|
67876
|
+
x-gala-reachable-problems:
|
|
67877
|
+
- APPEAL_EXISTS
|
|
67878
|
+
- APPEAL_NOT_ALLOWED
|
|
67879
|
+
- COMMENT_NOT_FOUND
|
|
67880
|
+
- RATE_LIMITED
|
|
67881
|
+
- READER_AUTHENTICATION_REQUIRED
|
|
67882
|
+
- READER_TOKEN_SCOPE
|
|
67883
|
+
- REQUEST_FIELD_UNKNOWN
|
|
67884
|
+
- VALIDATION_FAILED
|
|
67885
|
+
x-gala-replay-identity: one-appeal-per-removal
|
|
67886
|
+
x-gala-state-guards:
|
|
67887
|
+
- NONE
|
|
67888
|
+
x-gala-success-category: async
|
|
67889
|
+
x-gala-tenant-scope: NONE
|
|
67890
|
+
/v2/public/comments/{commentId}/like:
|
|
67891
|
+
delete:
|
|
67892
|
+
description: "SCHEMA-3.32.0: the signed-in reader withdraws their like. Always allowed, even when likes have since been turned off, and harmless when there is no like (`204` both times)."
|
|
67893
|
+
operationId: deletePublicCommentsByCommentIdLike
|
|
67894
|
+
parameters:
|
|
67895
|
+
- $ref: "#/components/parameters/XCorrelationId"
|
|
67896
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
67897
|
+
in: path
|
|
67898
|
+
name: commentId
|
|
67899
|
+
required: true
|
|
67900
|
+
schema:
|
|
67901
|
+
format: uuid
|
|
67902
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
67903
|
+
type: string
|
|
67904
|
+
responses:
|
|
67905
|
+
"204":
|
|
67906
|
+
description: withdraw the signed-in reader's like on one comment succeeded
|
|
67907
|
+
headers:
|
|
67908
|
+
Cache-Control:
|
|
67909
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
67910
|
+
X-Correlation-Id:
|
|
67911
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
67912
|
+
"400":
|
|
67913
|
+
$ref: "#/components/responses/ValidationFailed"
|
|
67914
|
+
"401":
|
|
67915
|
+
content:
|
|
67916
|
+
application/problem+json:
|
|
67917
|
+
examples:
|
|
67918
|
+
READER_AUTHENTICATION_REQUIRED:
|
|
67919
|
+
summary: READER_AUTHENTICATION_REQUIRED
|
|
67920
|
+
value:
|
|
67921
|
+
code: READER_AUTHENTICATION_REQUIRED
|
|
67922
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
67923
|
+
detail: See the operation contract.
|
|
67924
|
+
errors: []
|
|
67925
|
+
retryable: false
|
|
67926
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
67927
|
+
schemaVersion: 2.0.0
|
|
67928
|
+
status: 401
|
|
67929
|
+
title: READER_AUTHENTICATION_REQUIRED
|
|
67930
|
+
type: urn:gala:problem:reader-authentication-required
|
|
67931
|
+
schema:
|
|
67932
|
+
$ref: "#/components/schemas/Problem"
|
|
67933
|
+
description: READER_AUTHENTICATION_REQUIRED
|
|
67934
|
+
headers:
|
|
67935
|
+
Cache-Control:
|
|
67936
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
67937
|
+
X-Correlation-Id:
|
|
67938
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
67939
|
+
x-gala-problem-codes:
|
|
67940
|
+
- READER_AUTHENTICATION_REQUIRED
|
|
67941
|
+
"403":
|
|
67942
|
+
content:
|
|
67943
|
+
application/problem+json:
|
|
67944
|
+
examples:
|
|
67945
|
+
READER_TOKEN_SCOPE:
|
|
67946
|
+
summary: READER_TOKEN_SCOPE
|
|
67947
|
+
value:
|
|
67948
|
+
code: READER_TOKEN_SCOPE
|
|
67949
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
67950
|
+
detail: See the operation contract.
|
|
67951
|
+
errors: []
|
|
67952
|
+
retryable: false
|
|
67953
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
67954
|
+
schemaVersion: 2.0.0
|
|
67955
|
+
status: 403
|
|
67956
|
+
title: READER_TOKEN_SCOPE
|
|
67957
|
+
type: urn:gala:problem:reader-token-scope
|
|
67958
|
+
schema:
|
|
67959
|
+
$ref: "#/components/schemas/Problem"
|
|
67960
|
+
description: READER_TOKEN_SCOPE
|
|
67961
|
+
headers:
|
|
67962
|
+
Cache-Control:
|
|
67963
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
67964
|
+
X-Correlation-Id:
|
|
67965
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
67966
|
+
x-gala-problem-codes:
|
|
67967
|
+
- READER_TOKEN_SCOPE
|
|
67968
|
+
"404":
|
|
67969
|
+
content:
|
|
67970
|
+
application/problem+json:
|
|
67971
|
+
examples:
|
|
67972
|
+
COMMENT_NOT_FOUND:
|
|
67973
|
+
summary: COMMENT_NOT_FOUND
|
|
67974
|
+
value:
|
|
67975
|
+
code: COMMENT_NOT_FOUND
|
|
67976
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
67977
|
+
detail: See the operation contract.
|
|
67978
|
+
errors: []
|
|
67979
|
+
retryable: false
|
|
67980
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
67981
|
+
schemaVersion: 2.0.0
|
|
67982
|
+
status: 404
|
|
67983
|
+
title: COMMENT_NOT_FOUND
|
|
67984
|
+
type: urn:gala:problem:comment-not-found
|
|
67985
|
+
schema:
|
|
67986
|
+
$ref: "#/components/schemas/Problem"
|
|
67987
|
+
description: COMMENT_NOT_FOUND
|
|
67988
|
+
headers:
|
|
67989
|
+
Cache-Control:
|
|
67990
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
67991
|
+
X-Correlation-Id:
|
|
67992
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
67993
|
+
x-gala-problem-codes:
|
|
67994
|
+
- COMMENT_NOT_FOUND
|
|
67995
|
+
security:
|
|
67996
|
+
- readerBearer: []
|
|
67997
|
+
summary: withdraw the signed-in reader's like on one comment
|
|
67998
|
+
tags:
|
|
67999
|
+
- public-interactions
|
|
68000
|
+
x-gala-activation-gate: MVP
|
|
68001
|
+
x-gala-activation-guards:
|
|
68002
|
+
- NONE
|
|
68003
|
+
x-gala-capability-key: null
|
|
68004
|
+
x-gala-concurrency: none
|
|
68005
|
+
x-gala-conditional-capabilities: []
|
|
68006
|
+
x-gala-example-profile: NOMINAL_SUCCESS_AND_EACH_REACHABLE_PROBLEM
|
|
68007
|
+
x-gala-nullability: required-and-nullable-are-explicit
|
|
68008
|
+
x-gala-purpose: withdraw the signed-in reader's like on one comment
|
|
68009
|
+
x-gala-reachable-problems:
|
|
68010
|
+
- COMMENT_NOT_FOUND
|
|
68011
|
+
- READER_AUTHENTICATION_REQUIRED
|
|
68012
|
+
- READER_TOKEN_SCOPE
|
|
68013
|
+
- VALIDATION_FAILED
|
|
68014
|
+
x-gala-replay-identity: natural-idempotent-state
|
|
68015
|
+
x-gala-state-guards:
|
|
68016
|
+
- NONE
|
|
68017
|
+
x-gala-success-category: delete
|
|
68018
|
+
x-gala-tenant-scope: NONE
|
|
68019
|
+
put:
|
|
68020
|
+
description: "SCHEMA-3.32.0: the signed-in reader likes the comment. Liking again is harmless (`204` both times). Needs `comments.likes` on in the site's interactions configuration, otherwise `404 INTERACTIONS_DISABLED`. A removed, held or deleted comment cannot be liked (`404 COMMENT_NOT_FOUND`)."
|
|
68021
|
+
operationId: putPublicCommentsByCommentIdLike
|
|
68022
|
+
parameters:
|
|
68023
|
+
- $ref: "#/components/parameters/XCorrelationId"
|
|
68024
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
68025
|
+
in: path
|
|
68026
|
+
name: commentId
|
|
68027
|
+
required: true
|
|
68028
|
+
schema:
|
|
68029
|
+
format: uuid
|
|
68030
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
68031
|
+
type: string
|
|
68032
|
+
responses:
|
|
68033
|
+
"204":
|
|
68034
|
+
description: like one comment as the signed-in reader succeeded
|
|
68035
|
+
headers:
|
|
68036
|
+
Cache-Control:
|
|
68037
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
68038
|
+
X-Correlation-Id:
|
|
68039
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
68040
|
+
"400":
|
|
68041
|
+
$ref: "#/components/responses/ValidationFailed"
|
|
68042
|
+
"401":
|
|
68043
|
+
content:
|
|
68044
|
+
application/problem+json:
|
|
68045
|
+
examples:
|
|
68046
|
+
READER_AUTHENTICATION_REQUIRED:
|
|
68047
|
+
summary: READER_AUTHENTICATION_REQUIRED
|
|
68048
|
+
value:
|
|
68049
|
+
code: READER_AUTHENTICATION_REQUIRED
|
|
68050
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
68051
|
+
detail: See the operation contract.
|
|
68052
|
+
errors: []
|
|
68053
|
+
retryable: false
|
|
68054
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
68055
|
+
schemaVersion: 2.0.0
|
|
68056
|
+
status: 401
|
|
68057
|
+
title: READER_AUTHENTICATION_REQUIRED
|
|
68058
|
+
type: urn:gala:problem:reader-authentication-required
|
|
68059
|
+
schema:
|
|
68060
|
+
$ref: "#/components/schemas/Problem"
|
|
68061
|
+
description: READER_AUTHENTICATION_REQUIRED
|
|
68062
|
+
headers:
|
|
68063
|
+
Cache-Control:
|
|
68064
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
68065
|
+
X-Correlation-Id:
|
|
68066
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
68067
|
+
x-gala-problem-codes:
|
|
68068
|
+
- READER_AUTHENTICATION_REQUIRED
|
|
68069
|
+
"403":
|
|
68070
|
+
content:
|
|
68071
|
+
application/problem+json:
|
|
68072
|
+
examples:
|
|
68073
|
+
READER_RESTRICTED:
|
|
68074
|
+
summary: READER_RESTRICTED
|
|
66397
68075
|
value:
|
|
66398
|
-
code:
|
|
68076
|
+
code: READER_RESTRICTED
|
|
66399
68077
|
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
66400
68078
|
detail: See the operation contract.
|
|
66401
68079
|
errors: []
|
|
@@ -66403,8 +68081,8 @@ paths:
|
|
|
66403
68081
|
schemaId: urn:gala:schema:problem:2.0.0
|
|
66404
68082
|
schemaVersion: 2.0.0
|
|
66405
68083
|
status: 403
|
|
66406
|
-
title:
|
|
66407
|
-
type: urn:gala:problem:
|
|
68084
|
+
title: READER_RESTRICTED
|
|
68085
|
+
type: urn:gala:problem:reader-restricted
|
|
66408
68086
|
READER_TOKEN_SCOPE:
|
|
66409
68087
|
summary: READER_TOKEN_SCOPE
|
|
66410
68088
|
value:
|
|
@@ -66420,14 +68098,14 @@ paths:
|
|
|
66420
68098
|
type: urn:gala:problem:reader-token-scope
|
|
66421
68099
|
schema:
|
|
66422
68100
|
$ref: "#/components/schemas/Problem"
|
|
66423
|
-
description:
|
|
68101
|
+
description: READER_RESTRICTED, READER_TOKEN_SCOPE
|
|
66424
68102
|
headers:
|
|
66425
68103
|
Cache-Control:
|
|
66426
68104
|
$ref: "#/components/headers/CacheControlNoStore"
|
|
66427
68105
|
X-Correlation-Id:
|
|
66428
68106
|
$ref: "#/components/headers/XCorrelationId"
|
|
66429
68107
|
x-gala-problem-codes:
|
|
66430
|
-
-
|
|
68108
|
+
- READER_RESTRICTED
|
|
66431
68109
|
- READER_TOKEN_SCOPE
|
|
66432
68110
|
"404":
|
|
66433
68111
|
content:
|
|
@@ -66446,192 +68124,10 @@ paths:
|
|
|
66446
68124
|
status: 404
|
|
66447
68125
|
title: COMMENT_NOT_FOUND
|
|
66448
68126
|
type: urn:gala:problem:comment-not-found
|
|
66449
|
-
|
|
66450
|
-
|
|
66451
|
-
description: COMMENT_NOT_FOUND
|
|
66452
|
-
headers:
|
|
66453
|
-
Cache-Control:
|
|
66454
|
-
$ref: "#/components/headers/CacheControlNoStore"
|
|
66455
|
-
X-Correlation-Id:
|
|
66456
|
-
$ref: "#/components/headers/XCorrelationId"
|
|
66457
|
-
x-gala-problem-codes:
|
|
66458
|
-
- COMMENT_NOT_FOUND
|
|
66459
|
-
security:
|
|
66460
|
-
- readerBearer: []
|
|
66461
|
-
summary: delete the reader's own comment
|
|
66462
|
-
tags:
|
|
66463
|
-
- public-interactions
|
|
66464
|
-
x-gala-activation-gate: MVP
|
|
66465
|
-
x-gala-activation-guards:
|
|
66466
|
-
- NONE
|
|
66467
|
-
x-gala-capability-key: null
|
|
66468
|
-
x-gala-concurrency: none
|
|
66469
|
-
x-gala-conditional-capabilities: []
|
|
66470
|
-
x-gala-example-profile: NOMINAL_SUCCESS_AND_EACH_REACHABLE_PROBLEM
|
|
66471
|
-
x-gala-nullability: required-and-nullable-are-explicit
|
|
66472
|
-
x-gala-purpose: delete the reader's own comment
|
|
66473
|
-
x-gala-reachable-problems:
|
|
66474
|
-
- COMMENT_NOT_FOUND
|
|
66475
|
-
- NOT_COMMENT_AUTHOR
|
|
66476
|
-
- READER_AUTHENTICATION_REQUIRED
|
|
66477
|
-
- READER_TOKEN_SCOPE
|
|
66478
|
-
- VALIDATION_FAILED
|
|
66479
|
-
x-gala-replay-identity: natural-idempotent-state
|
|
66480
|
-
x-gala-state-guards:
|
|
66481
|
-
- NONE
|
|
66482
|
-
x-gala-success-category: delete
|
|
66483
|
-
x-gala-tenant-scope: NONE
|
|
66484
|
-
/v2/public/comments/{commentId}/appeals:
|
|
66485
|
-
post:
|
|
66486
|
-
description: |
|
|
66487
|
-
The comment's author asks the moderators to look again at a removal or
|
|
66488
|
-
hold. One appeal per removal: `409 APPEAL_EXISTS` when one was already
|
|
66489
|
-
made against the current removal; `409 APPEAL_NOT_ALLOWED` when the
|
|
66490
|
-
comment is not removed or held, or the reader is not its author. At most
|
|
66491
|
-
5 appeals a day per reader (`429 RATE_LIMITED`). A human decides; the
|
|
66492
|
-
answer shows under the comment.
|
|
66493
|
-
operationId: postPublicCommentsByCommentIdAppeals
|
|
66494
|
-
parameters:
|
|
66495
|
-
- $ref: "#/components/parameters/XCorrelationId"
|
|
66496
|
-
- example: 018f0000-0000-7000-8000-000000000001
|
|
66497
|
-
in: path
|
|
66498
|
-
name: commentId
|
|
66499
|
-
required: true
|
|
66500
|
-
schema:
|
|
66501
|
-
format: uuid
|
|
66502
|
-
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
66503
|
-
type: string
|
|
66504
|
-
requestBody:
|
|
66505
|
-
content:
|
|
66506
|
-
application/json:
|
|
66507
|
-
examples:
|
|
66508
|
-
nominal:
|
|
66509
|
-
summary: Nominal valid request
|
|
66510
|
-
value:
|
|
66511
|
-
note: The link was to my own project page, not spam.
|
|
66512
|
-
schema:
|
|
66513
|
-
$ref: "#/components/schemas/PostPublicCommentsByCommentIdAppealsRequest"
|
|
66514
|
-
required: true
|
|
66515
|
-
responses:
|
|
66516
|
-
"202":
|
|
66517
|
-
content:
|
|
66518
|
-
application/json:
|
|
66519
|
-
examples:
|
|
66520
|
-
nominal:
|
|
66521
|
-
summary: Nominal successful response
|
|
66522
|
-
value:
|
|
66523
|
-
status: RECEIVED
|
|
66524
|
-
schema:
|
|
66525
|
-
$ref: "#/components/schemas/PostPublicCommentsByCommentIdAppealsResponse"
|
|
66526
|
-
description: appeal the removal of my comment succeeded
|
|
66527
|
-
headers:
|
|
66528
|
-
Cache-Control:
|
|
66529
|
-
$ref: "#/components/headers/CacheControlNoStore"
|
|
66530
|
-
X-Correlation-Id:
|
|
66531
|
-
$ref: "#/components/headers/XCorrelationId"
|
|
66532
|
-
"400":
|
|
66533
|
-
content:
|
|
66534
|
-
application/problem+json:
|
|
66535
|
-
examples:
|
|
66536
|
-
REQUEST_FIELD_UNKNOWN:
|
|
66537
|
-
summary: REQUEST_FIELD_UNKNOWN
|
|
66538
|
-
value:
|
|
66539
|
-
code: REQUEST_FIELD_UNKNOWN
|
|
66540
|
-
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
66541
|
-
detail: See the operation contract.
|
|
66542
|
-
errors: []
|
|
66543
|
-
retryable: false
|
|
66544
|
-
schemaId: urn:gala:schema:problem:2.0.0
|
|
66545
|
-
schemaVersion: 2.0.0
|
|
66546
|
-
status: 400
|
|
66547
|
-
title: REQUEST_FIELD_UNKNOWN
|
|
66548
|
-
type: urn:gala:problem:request-field-unknown
|
|
66549
|
-
VALIDATION_FAILED:
|
|
66550
|
-
summary: VALIDATION_FAILED
|
|
66551
|
-
value:
|
|
66552
|
-
code: VALIDATION_FAILED
|
|
66553
|
-
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
66554
|
-
detail: See the operation contract.
|
|
66555
|
-
errors: []
|
|
66556
|
-
retryable: false
|
|
66557
|
-
schemaId: urn:gala:schema:problem:2.0.0
|
|
66558
|
-
schemaVersion: 2.0.0
|
|
66559
|
-
status: 400
|
|
66560
|
-
title: VALIDATION_FAILED
|
|
66561
|
-
type: urn:gala:problem:validation-failed
|
|
66562
|
-
schema:
|
|
66563
|
-
$ref: "#/components/schemas/Problem"
|
|
66564
|
-
description: REQUEST_FIELD_UNKNOWN, VALIDATION_FAILED
|
|
66565
|
-
headers:
|
|
66566
|
-
Cache-Control:
|
|
66567
|
-
$ref: "#/components/headers/CacheControlNoStore"
|
|
66568
|
-
X-Correlation-Id:
|
|
66569
|
-
$ref: "#/components/headers/XCorrelationId"
|
|
66570
|
-
x-gala-problem-codes:
|
|
66571
|
-
- REQUEST_FIELD_UNKNOWN
|
|
66572
|
-
- VALIDATION_FAILED
|
|
66573
|
-
"401":
|
|
66574
|
-
content:
|
|
66575
|
-
application/problem+json:
|
|
66576
|
-
examples:
|
|
66577
|
-
READER_AUTHENTICATION_REQUIRED:
|
|
66578
|
-
summary: READER_AUTHENTICATION_REQUIRED
|
|
66579
|
-
value:
|
|
66580
|
-
code: READER_AUTHENTICATION_REQUIRED
|
|
66581
|
-
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
66582
|
-
detail: See the operation contract.
|
|
66583
|
-
errors: []
|
|
66584
|
-
retryable: false
|
|
66585
|
-
schemaId: urn:gala:schema:problem:2.0.0
|
|
66586
|
-
schemaVersion: 2.0.0
|
|
66587
|
-
status: 401
|
|
66588
|
-
title: READER_AUTHENTICATION_REQUIRED
|
|
66589
|
-
type: urn:gala:problem:reader-authentication-required
|
|
66590
|
-
schema:
|
|
66591
|
-
$ref: "#/components/schemas/Problem"
|
|
66592
|
-
description: READER_AUTHENTICATION_REQUIRED
|
|
66593
|
-
headers:
|
|
66594
|
-
Cache-Control:
|
|
66595
|
-
$ref: "#/components/headers/CacheControlNoStore"
|
|
66596
|
-
X-Correlation-Id:
|
|
66597
|
-
$ref: "#/components/headers/XCorrelationId"
|
|
66598
|
-
x-gala-problem-codes:
|
|
66599
|
-
- READER_AUTHENTICATION_REQUIRED
|
|
66600
|
-
"403":
|
|
66601
|
-
content:
|
|
66602
|
-
application/problem+json:
|
|
66603
|
-
examples:
|
|
66604
|
-
READER_TOKEN_SCOPE:
|
|
66605
|
-
summary: READER_TOKEN_SCOPE
|
|
66606
|
-
value:
|
|
66607
|
-
code: READER_TOKEN_SCOPE
|
|
66608
|
-
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
66609
|
-
detail: See the operation contract.
|
|
66610
|
-
errors: []
|
|
66611
|
-
retryable: false
|
|
66612
|
-
schemaId: urn:gala:schema:problem:2.0.0
|
|
66613
|
-
schemaVersion: 2.0.0
|
|
66614
|
-
status: 403
|
|
66615
|
-
title: READER_TOKEN_SCOPE
|
|
66616
|
-
type: urn:gala:problem:reader-token-scope
|
|
66617
|
-
schema:
|
|
66618
|
-
$ref: "#/components/schemas/Problem"
|
|
66619
|
-
description: READER_TOKEN_SCOPE
|
|
66620
|
-
headers:
|
|
66621
|
-
Cache-Control:
|
|
66622
|
-
$ref: "#/components/headers/CacheControlNoStore"
|
|
66623
|
-
X-Correlation-Id:
|
|
66624
|
-
$ref: "#/components/headers/XCorrelationId"
|
|
66625
|
-
x-gala-problem-codes:
|
|
66626
|
-
- READER_TOKEN_SCOPE
|
|
66627
|
-
"404":
|
|
66628
|
-
content:
|
|
66629
|
-
application/problem+json:
|
|
66630
|
-
examples:
|
|
66631
|
-
COMMENT_NOT_FOUND:
|
|
66632
|
-
summary: COMMENT_NOT_FOUND
|
|
68127
|
+
INTERACTIONS_DISABLED:
|
|
68128
|
+
summary: INTERACTIONS_DISABLED
|
|
66633
68129
|
value:
|
|
66634
|
-
code:
|
|
68130
|
+
code: INTERACTIONS_DISABLED
|
|
66635
68131
|
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
66636
68132
|
detail: See the operation contract.
|
|
66637
68133
|
errors: []
|
|
@@ -66639,11 +68135,11 @@ paths:
|
|
|
66639
68135
|
schemaId: urn:gala:schema:problem:2.0.0
|
|
66640
68136
|
schemaVersion: 2.0.0
|
|
66641
68137
|
status: 404
|
|
66642
|
-
title:
|
|
66643
|
-
type: urn:gala:problem:
|
|
68138
|
+
title: INTERACTIONS_DISABLED
|
|
68139
|
+
type: urn:gala:problem:interactions-disabled
|
|
66644
68140
|
schema:
|
|
66645
68141
|
$ref: "#/components/schemas/Problem"
|
|
66646
|
-
description: COMMENT_NOT_FOUND
|
|
68142
|
+
description: COMMENT_NOT_FOUND, INTERACTIONS_DISABLED
|
|
66647
68143
|
headers:
|
|
66648
68144
|
Cache-Control:
|
|
66649
68145
|
$ref: "#/components/headers/CacheControlNoStore"
|
|
@@ -66651,47 +68147,7 @@ paths:
|
|
|
66651
68147
|
$ref: "#/components/headers/XCorrelationId"
|
|
66652
68148
|
x-gala-problem-codes:
|
|
66653
68149
|
- COMMENT_NOT_FOUND
|
|
66654
|
-
|
|
66655
|
-
content:
|
|
66656
|
-
application/problem+json:
|
|
66657
|
-
examples:
|
|
66658
|
-
APPEAL_EXISTS:
|
|
66659
|
-
summary: APPEAL_EXISTS
|
|
66660
|
-
value:
|
|
66661
|
-
code: APPEAL_EXISTS
|
|
66662
|
-
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
66663
|
-
detail: See the operation contract.
|
|
66664
|
-
errors: []
|
|
66665
|
-
retryable: false
|
|
66666
|
-
schemaId: urn:gala:schema:problem:2.0.0
|
|
66667
|
-
schemaVersion: 2.0.0
|
|
66668
|
-
status: 409
|
|
66669
|
-
title: APPEAL_EXISTS
|
|
66670
|
-
type: urn:gala:problem:appeal-exists
|
|
66671
|
-
APPEAL_NOT_ALLOWED:
|
|
66672
|
-
summary: APPEAL_NOT_ALLOWED
|
|
66673
|
-
value:
|
|
66674
|
-
code: APPEAL_NOT_ALLOWED
|
|
66675
|
-
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
66676
|
-
detail: See the operation contract.
|
|
66677
|
-
errors: []
|
|
66678
|
-
retryable: false
|
|
66679
|
-
schemaId: urn:gala:schema:problem:2.0.0
|
|
66680
|
-
schemaVersion: 2.0.0
|
|
66681
|
-
status: 409
|
|
66682
|
-
title: APPEAL_NOT_ALLOWED
|
|
66683
|
-
type: urn:gala:problem:appeal-not-allowed
|
|
66684
|
-
schema:
|
|
66685
|
-
$ref: "#/components/schemas/Problem"
|
|
66686
|
-
description: APPEAL_EXISTS, APPEAL_NOT_ALLOWED
|
|
66687
|
-
headers:
|
|
66688
|
-
Cache-Control:
|
|
66689
|
-
$ref: "#/components/headers/CacheControlNoStore"
|
|
66690
|
-
X-Correlation-Id:
|
|
66691
|
-
$ref: "#/components/headers/XCorrelationId"
|
|
66692
|
-
x-gala-problem-codes:
|
|
66693
|
-
- APPEAL_EXISTS
|
|
66694
|
-
- APPEAL_NOT_ALLOWED
|
|
68150
|
+
- INTERACTIONS_DISABLED
|
|
66695
68151
|
"429":
|
|
66696
68152
|
content:
|
|
66697
68153
|
application/problem+json:
|
|
@@ -66723,7 +68179,7 @@ paths:
|
|
|
66723
68179
|
- RATE_LIMITED
|
|
66724
68180
|
security:
|
|
66725
68181
|
- readerBearer: []
|
|
66726
|
-
summary:
|
|
68182
|
+
summary: like one comment as the signed-in reader
|
|
66727
68183
|
tags:
|
|
66728
68184
|
- public-interactions
|
|
66729
68185
|
x-gala-activation-gate: MVP
|
|
@@ -66734,20 +68190,19 @@ paths:
|
|
|
66734
68190
|
x-gala-conditional-capabilities: []
|
|
66735
68191
|
x-gala-example-profile: NOMINAL_SUCCESS_AND_EACH_REACHABLE_PROBLEM
|
|
66736
68192
|
x-gala-nullability: required-and-nullable-are-explicit
|
|
66737
|
-
x-gala-purpose:
|
|
68193
|
+
x-gala-purpose: like one comment as the signed-in reader
|
|
66738
68194
|
x-gala-reachable-problems:
|
|
66739
|
-
- APPEAL_EXISTS
|
|
66740
|
-
- APPEAL_NOT_ALLOWED
|
|
66741
68195
|
- COMMENT_NOT_FOUND
|
|
68196
|
+
- INTERACTIONS_DISABLED
|
|
66742
68197
|
- RATE_LIMITED
|
|
66743
68198
|
- READER_AUTHENTICATION_REQUIRED
|
|
68199
|
+
- READER_RESTRICTED
|
|
66744
68200
|
- READER_TOKEN_SCOPE
|
|
66745
|
-
- REQUEST_FIELD_UNKNOWN
|
|
66746
68201
|
- VALIDATION_FAILED
|
|
66747
|
-
x-gala-replay-identity:
|
|
68202
|
+
x-gala-replay-identity: natural-idempotent-state
|
|
66748
68203
|
x-gala-state-guards:
|
|
66749
68204
|
- NONE
|
|
66750
|
-
x-gala-success-category:
|
|
68205
|
+
x-gala-success-category: delete
|
|
66751
68206
|
x-gala-tenant-scope: NONE
|
|
66752
68207
|
/v2/public/comments/{commentId}/reports:
|
|
66753
68208
|
post:
|
|
@@ -68611,7 +70066,7 @@ paths:
|
|
|
68611
70066
|
x-gala-tenant-scope: NONE
|
|
68612
70067
|
/v2/public/publications/{publicationId}/contents/{contentId}/comments:
|
|
68613
70068
|
get:
|
|
68614
|
-
description: "Without `parentId`: 20 roots per page, newest first, each with its descendants inline oldest first (at most 50 per root; `moreReplies` is true beyond that). With `parentId`: the children of that comment, oldest first, 50 per page. Removed and deleted comments appear as tombstones only when they have visible descendants."
|
|
70069
|
+
description: "Without `parentId`: 20 roots per page, newest first, each with its descendants inline oldest first (at most 50 per root; `moreReplies` is true beyond that). With `parentId`: the children of that comment, oldest first, 50 per page. Removed and deleted comments appear as tombstones only when they have visible descendants. SCHEMA-3.32.0: `sort` orders the roots, `newest` (the default) or `oldest`; replies stay oldest first. On the first page of a `newest` or `oldest` list, the one pinned root comment, if any, comes first, whatever the sort. A `cursor` is valid only with the `sort` it was issued for."
|
|
68615
70070
|
operationId: getPublicPublicationsByPublicationIdContentsByContentIdComments
|
|
68616
70071
|
parameters:
|
|
68617
70072
|
- $ref: "#/components/parameters/XCorrelationId"
|
|
@@ -68640,6 +70095,16 @@ paths:
|
|
|
68640
70095
|
format: uuid
|
|
68641
70096
|
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
68642
70097
|
type: string
|
|
70098
|
+
- example: newest
|
|
70099
|
+
in: query
|
|
70100
|
+
name: sort
|
|
70101
|
+
required: false
|
|
70102
|
+
schema:
|
|
70103
|
+
default: newest
|
|
70104
|
+
enum:
|
|
70105
|
+
- newest
|
|
70106
|
+
- oldest
|
|
70107
|
+
type: string
|
|
68643
70108
|
responses:
|
|
68644
70109
|
"200":
|
|
68645
70110
|
content:
|
|
@@ -68661,8 +70126,11 @@ paths:
|
|
|
68661
70126
|
depth: 0
|
|
68662
70127
|
editedAt: null
|
|
68663
70128
|
id: 018f0000-0000-7000-8000-000000000001
|
|
70129
|
+
likeCount: 3
|
|
70130
|
+
likedByMe: false
|
|
68664
70131
|
moreReplies: false
|
|
68665
70132
|
parentId: null
|
|
70133
|
+
pinned: false
|
|
68666
70134
|
replies: []
|
|
68667
70135
|
state: VISIBLE
|
|
68668
70136
|
viewer:
|