@rathnasgala2/schemas 3.25.1 → 3.27.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 +132 -0
- package/docs/catalogs/app-routes.json +3 -1
- package/docs/catalogs/schema-inventory.json +5 -5
- package/examples/valid/build-input/rules.json +147 -0
- package/examples/valid/content-frontmatter/rules.json +76 -0
- package/examples/valid/publication/rules.json +20 -0
- package/fixtures/boundary/build-input/rules.json +165 -0
- package/fixtures/boundary/content-frontmatter/rules.json +85 -0
- package/fixtures/boundary/publication/rules.json +20 -0
- package/fixtures/invalid/build-input/REQUEST_FIELD_UNKNOWN/cases.json +45 -0
- package/fixtures/invalid/build-input/SCHEMA_CONSTANT_INVALID/cases.json +11 -0
- package/fixtures/invalid/build-input/SCHEMA_ENUM_INVALID/cases.json +22 -0
- package/fixtures/invalid/build-input/SCHEMA_NUMBER_TOO_LARGE/cases.json +22 -0
- package/fixtures/invalid/build-input/SCHEMA_NUMBER_TOO_SMALL/cases.json +22 -0
- package/fixtures/invalid/build-input/SCHEMA_PATTERN_INVALID/cases.json +11 -0
- package/fixtures/invalid/build-input/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +132 -0
- package/fixtures/invalid/build-input/SCHEMA_TYPE_INVALID/cases.json +56 -0
- package/fixtures/invalid/content-frontmatter/REQUEST_FIELD_UNKNOWN/cases.json +16 -0
- package/fixtures/invalid/content-frontmatter/SCHEMA_CONSTANT_INVALID/cases.json +11 -0
- package/fixtures/invalid/content-frontmatter/SCHEMA_ENUM_INVALID/cases.json +11 -0
- package/fixtures/invalid/content-frontmatter/SCHEMA_NUMBER_TOO_LARGE/cases.json +11 -0
- package/fixtures/invalid/content-frontmatter/SCHEMA_NUMBER_TOO_SMALL/cases.json +11 -0
- package/fixtures/invalid/content-frontmatter/SCHEMA_PATTERN_INVALID/cases.json +11 -0
- package/fixtures/invalid/content-frontmatter/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +54 -0
- package/fixtures/invalid/content-frontmatter/SCHEMA_TYPE_INVALID/cases.json +20 -0
- package/fixtures/invalid/publication/REQUEST_FIELD_UNKNOWN/cases.json +9 -0
- package/fixtures/invalid/publication/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +9 -0
- package/fixtures/invalid/publication/SCHEMA_TYPE_INVALID/cases.json +18 -0
- package/fixtures/manifest.json +1018 -6
- package/fixtures/s2/manifest.json +16 -1
- package/fixtures/s2/normalized-inputs.json +3225 -0
- package/fixtures/unknown-field/build-input/rules.json +73 -0
- package/fixtures/unknown-field/content-frontmatter/rules.json +28 -0
- package/fixtures/unknown-field/publication/rules.json +14 -0
- package/generated/browser/validator-core.mjs +3 -3
- package/generated/typescript/contracts/build-input.d.ts +19 -0
- package/generated/typescript/contracts/content-frontmatter.d.ts +7 -0
- package/generated/typescript/contracts/publication.d.ts +5 -0
- package/openapi/http-catalog.json +28 -2
- package/openapi/openapi.yaml +523 -10
- package/package.json +1 -1
- package/sbom.cdx.json +23 -23
- package/schemas/build-input.schema.json +62 -1
- package/schemas/content-frontmatter.schema.json +31 -0
- package/schemas/publication.schema.json +8 -0
package/openapi/openapi.yaml
CHANGED
|
@@ -2486,7 +2486,11 @@ components:
|
|
|
2486
2486
|
type: object
|
|
2487
2487
|
FollowState:
|
|
2488
2488
|
additionalProperties: false
|
|
2489
|
+
description: "SCHEMA-3.27.0: whether the reader follows the author. `followers` is the number of readers following this author on this site; it is present only when the bearer token is for this publication and its principal holds `publication.audience.read` on it (the site's team, the same people who may open the Audience page), and absent for every other caller, including callers with no token."
|
|
2489
2490
|
properties:
|
|
2491
|
+
followers:
|
|
2492
|
+
minimum: 0
|
|
2493
|
+
type: integer
|
|
2490
2494
|
following:
|
|
2491
2495
|
type: boolean
|
|
2492
2496
|
required:
|
|
@@ -3805,6 +3809,8 @@ components:
|
|
|
3805
3809
|
- openChange
|
|
3806
3810
|
- setUp
|
|
3807
3811
|
type: object
|
|
3812
|
+
GetOrganizationsByOrganizationIdPublicationsByPublicationIdListenSettingsResponse:
|
|
3813
|
+
$ref: "#/components/schemas/ListenSettings"
|
|
3808
3814
|
GetOrganizationsByOrganizationIdPublicationsByPublicationIdModerationQueueResponse:
|
|
3809
3815
|
additionalProperties: false
|
|
3810
3816
|
properties:
|
|
@@ -6401,6 +6407,26 @@ components:
|
|
|
6401
6407
|
- observedAt
|
|
6402
6408
|
- evidenceDigest
|
|
6403
6409
|
type: object
|
|
6410
|
+
ListenSettings:
|
|
6411
|
+
additionalProperties: false
|
|
6412
|
+
description: "SCHEMA-3.26.0: the Listen setting of a site at the linked repository's main branch head: the `listen` member of `gala/publication.json` (`enabled`). A publication with no `listen` member reads `enabled` false. `planAllows` is read-only: false while the site's plan does not include Listen (the Free plan by default), in which case `enabled` cannot be turned on. `openChange` names an existing not-yet-published change of this publication that touches the file, or is null. `setUp` matches `GET .../repository/setup` `state`."
|
|
6413
|
+
properties:
|
|
6414
|
+
enabled:
|
|
6415
|
+
type: boolean
|
|
6416
|
+
openChange:
|
|
6417
|
+
oneOf:
|
|
6418
|
+
- $ref: "#/components/schemas/PublicationAppearanceOpenChange"
|
|
6419
|
+
- type: "null"
|
|
6420
|
+
planAllows:
|
|
6421
|
+
type: boolean
|
|
6422
|
+
setUp:
|
|
6423
|
+
type: boolean
|
|
6424
|
+
required:
|
|
6425
|
+
- enabled
|
|
6426
|
+
- planAllows
|
|
6427
|
+
- openChange
|
|
6428
|
+
- setUp
|
|
6429
|
+
type: object
|
|
6404
6430
|
ManagedDeploymentOperationResponse:
|
|
6405
6431
|
additionalProperties: false
|
|
6406
6432
|
allOf:
|
|
@@ -8680,6 +8706,9 @@ components:
|
|
|
8680
8706
|
contactForm:
|
|
8681
8707
|
description: "SCHEMA-3.23.0, whether sites on this plan may turn on the contact form. A site on a plan without it sees the form locked, and enabling it is `409 PLAN_REQUIRED`. Defaults of the first release: FREE 50 and no contact form, PRO 500 and a contact form, BUSINESS 2000 and a contact form."
|
|
8682
8708
|
type: boolean
|
|
8709
|
+
listen:
|
|
8710
|
+
description: "SCHEMA-3.26.0, whether sites on this plan may turn on Listen, the audio version of posts. A site on a plan without it sees the setting locked, and enabling it is `409 PLAN_REQUIRED`. Defaults: FREE no Listen, PRO and BUSINESS Listen."
|
|
8711
|
+
type: boolean
|
|
8683
8712
|
newsletterSubscriberLimit:
|
|
8684
8713
|
description: "SCHEMA-3.23.0, the confirmed newsletter subscribers one organization on this plan may hold across its sites; a confirmation past it is `409 NEWSLETTER_FULL`. 0 admits none. Defaults of the first release: FREE 50 and no contact form, PRO 500 and a contact form, BUSINESS 2000 and a contact form."
|
|
8685
8714
|
format: int64
|
|
@@ -8696,6 +8725,7 @@ components:
|
|
|
8696
8725
|
- publicationLimit
|
|
8697
8726
|
- newsletterSubscriberLimit
|
|
8698
8727
|
- contactForm
|
|
8728
|
+
- listen
|
|
8699
8729
|
type: object
|
|
8700
8730
|
PlatformPlanCapacityRelease:
|
|
8701
8731
|
additionalProperties: false
|
|
@@ -9167,6 +9197,31 @@ components:
|
|
|
9167
9197
|
- generation
|
|
9168
9198
|
- approvedAt
|
|
9169
9199
|
type: object
|
|
9200
|
+
PortableContentFrontmatterContentListen:
|
|
9201
|
+
additionalProperties: false
|
|
9202
|
+
description: "SCHEMA-3.26.0: the audio version of this article. All three members are required. `listen` is allowed only when `kind` is `article`. It has an effect only while the publication has `listen.enabled` true."
|
|
9203
|
+
properties:
|
|
9204
|
+
audio:
|
|
9205
|
+
$ref: "#/components/schemas/PortableContentFrontmatterRepoRelativePath"
|
|
9206
|
+
description: "Repository-relative path of the audio file: an `.mp3` or `.m4a` file that sits under one of the repository `assetRoots`. The schema fixes the shape and the extension; the publish toolchain checks the asset root, that the file exists and is a regular file, that it sniffs as MP3 or M4A and the size limits."
|
|
9207
|
+
pattern: ^.+\.(?:mp3|m4a)$
|
|
9208
|
+
durationSeconds:
|
|
9209
|
+
description: Length of the episode in whole seconds, 1 to 10800 (three hours).
|
|
9210
|
+
maximum: 10800
|
|
9211
|
+
minimum: 1
|
|
9212
|
+
type: integer
|
|
9213
|
+
format:
|
|
9214
|
+
description: "What the episode is: `conversation` (two voices talking the post over), `narration` (one voice reading it), `debate` (two voices taking sides) or `skit` (a scripted scene). The template words its invitation by format."
|
|
9215
|
+
enum:
|
|
9216
|
+
- conversation
|
|
9217
|
+
- narration
|
|
9218
|
+
- debate
|
|
9219
|
+
- skit
|
|
9220
|
+
required:
|
|
9221
|
+
- audio
|
|
9222
|
+
- durationSeconds
|
|
9223
|
+
- format
|
|
9224
|
+
type: object
|
|
9170
9225
|
PortableContentFrontmatterContentSeo:
|
|
9171
9226
|
additionalProperties: false
|
|
9172
9227
|
description: "SCHEMA-3.12.0: optional search overrides for one document. `title` replaces the page title in search results (the site suffix is still appended on non-home pages), `description` replaces the search description, `canonicalUrl` is an absolute HTTPS canonical for syndicated or moved content, and `noindex: true` keeps a listed document out of search engines. Every member is optional; absent members fall back to the document's own title and description."
|
|
@@ -9246,6 +9301,17 @@ components:
|
|
|
9246
9301
|
x-gala-const: article
|
|
9247
9302
|
required:
|
|
9248
9303
|
- kind
|
|
9304
|
+
- if:
|
|
9305
|
+
required:
|
|
9306
|
+
- listen
|
|
9307
|
+
then:
|
|
9308
|
+
properties:
|
|
9309
|
+
kind:
|
|
9310
|
+
pattern: ^article$
|
|
9311
|
+
type: string
|
|
9312
|
+
x-gala-const: article
|
|
9313
|
+
required:
|
|
9314
|
+
- kind
|
|
9249
9315
|
dependentRequired:
|
|
9250
9316
|
seriesOrder:
|
|
9251
9317
|
- series
|
|
@@ -9280,6 +9346,8 @@ components:
|
|
|
9280
9346
|
- edition
|
|
9281
9347
|
language:
|
|
9282
9348
|
$ref: "#/components/schemas/PortableContentFrontmatterBcp47"
|
|
9349
|
+
listen:
|
|
9350
|
+
$ref: "#/components/schemas/PortableContentFrontmatterContentListen"
|
|
9283
9351
|
newsletter:
|
|
9284
9352
|
enum:
|
|
9285
9353
|
- ineligible
|
|
@@ -19311,6 +19379,22 @@ components:
|
|
|
19311
19379
|
required:
|
|
19312
19380
|
- change
|
|
19313
19381
|
type: object
|
|
19382
|
+
PutOrganizationsByOrganizationIdPublicationsByPublicationIdListenSettingsRequest:
|
|
19383
|
+
additionalProperties: false
|
|
19384
|
+
properties:
|
|
19385
|
+
enabled:
|
|
19386
|
+
type: boolean
|
|
19387
|
+
required:
|
|
19388
|
+
- enabled
|
|
19389
|
+
type: object
|
|
19390
|
+
PutOrganizationsByOrganizationIdPublicationsByPublicationIdListenSettingsResponse:
|
|
19391
|
+
additionalProperties: false
|
|
19392
|
+
properties:
|
|
19393
|
+
change:
|
|
19394
|
+
$ref: "#/components/schemas/PostOrganizationsByOrganizationIdPublicationsByPublicationIdContentChangesPlanResponse"
|
|
19395
|
+
required:
|
|
19396
|
+
- change
|
|
19397
|
+
type: object
|
|
19314
19398
|
PutOrganizationsByOrganizationIdPublicationsByPublicationIdNewsletterSettingsRequest:
|
|
19315
19399
|
additionalProperties: false
|
|
19316
19400
|
allOf:
|
|
@@ -19410,6 +19494,9 @@ components:
|
|
|
19410
19494
|
contactForm:
|
|
19411
19495
|
description: SCHEMA-3.23.0, optional; absent keeps the plan's current value.
|
|
19412
19496
|
type: boolean
|
|
19497
|
+
listen:
|
|
19498
|
+
description: SCHEMA-3.26.0, optional; absent keeps the plan's current value.
|
|
19499
|
+
type: boolean
|
|
19413
19500
|
newsletterSubscriberLimit:
|
|
19414
19501
|
description: SCHEMA-3.23.0, optional; absent keeps the plan's current value.
|
|
19415
19502
|
format: int64
|
|
@@ -44939,6 +45026,424 @@ paths:
|
|
|
44939
45026
|
- RepositoryChange:REQUESTED -> PLANNED
|
|
44940
45027
|
x-gala-success-category: protocol
|
|
44941
45028
|
x-gala-tenant-scope: ORGANIZATION_AND_PUBLICATION_PATH
|
|
45029
|
+
/v2/organizations/{organizationId}/publications/{publicationId}/listen-settings:
|
|
45030
|
+
get:
|
|
45031
|
+
description: Reads the `listen` member of `gala/publication.json` at the linked repository's current main branch head. A publication with no `listen` member reads `enabled` false. `planAllows` is the API's own status and is never written to the repository.
|
|
45032
|
+
operationId: getOrganizationsByOrganizationIdPublicationsByPublicationIdListenSettings
|
|
45033
|
+
parameters:
|
|
45034
|
+
- $ref: "#/components/parameters/XCorrelationId"
|
|
45035
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
45036
|
+
in: path
|
|
45037
|
+
name: organizationId
|
|
45038
|
+
required: true
|
|
45039
|
+
schema:
|
|
45040
|
+
format: uuid
|
|
45041
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
45042
|
+
type: string
|
|
45043
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
45044
|
+
in: path
|
|
45045
|
+
name: publicationId
|
|
45046
|
+
required: true
|
|
45047
|
+
schema:
|
|
45048
|
+
format: uuid
|
|
45049
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
45050
|
+
type: string
|
|
45051
|
+
responses:
|
|
45052
|
+
"200":
|
|
45053
|
+
content:
|
|
45054
|
+
application/json:
|
|
45055
|
+
examples:
|
|
45056
|
+
nominal:
|
|
45057
|
+
summary: Nominal successful response
|
|
45058
|
+
value:
|
|
45059
|
+
enabled: false
|
|
45060
|
+
openChange: null
|
|
45061
|
+
planAllows: false
|
|
45062
|
+
setUp: true
|
|
45063
|
+
schema:
|
|
45064
|
+
$ref: "#/components/schemas/GetOrganizationsByOrganizationIdPublicationsByPublicationIdListenSettingsResponse"
|
|
45065
|
+
description: read this publication's listen settings at the main branch head succeeded
|
|
45066
|
+
headers:
|
|
45067
|
+
Cache-Control:
|
|
45068
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
45069
|
+
X-Correlation-Id:
|
|
45070
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
45071
|
+
"400":
|
|
45072
|
+
$ref: "#/components/responses/ValidationFailed"
|
|
45073
|
+
"401":
|
|
45074
|
+
content:
|
|
45075
|
+
application/problem+json:
|
|
45076
|
+
examples:
|
|
45077
|
+
AUTHENTICATION_REQUIRED:
|
|
45078
|
+
summary: AUTHENTICATION_REQUIRED
|
|
45079
|
+
value:
|
|
45080
|
+
code: AUTHENTICATION_REQUIRED
|
|
45081
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
45082
|
+
detail: See the operation contract.
|
|
45083
|
+
errors: []
|
|
45084
|
+
retryable: false
|
|
45085
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
45086
|
+
schemaVersion: 2.0.0
|
|
45087
|
+
status: 401
|
|
45088
|
+
title: AUTHENTICATION_REQUIRED
|
|
45089
|
+
type: urn:gala:problem:authentication-required
|
|
45090
|
+
schema:
|
|
45091
|
+
$ref: "#/components/schemas/Problem"
|
|
45092
|
+
description: AUTHENTICATION_REQUIRED
|
|
45093
|
+
headers:
|
|
45094
|
+
Cache-Control:
|
|
45095
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
45096
|
+
X-Correlation-Id:
|
|
45097
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
45098
|
+
x-gala-problem-codes:
|
|
45099
|
+
- AUTHENTICATION_REQUIRED
|
|
45100
|
+
"403":
|
|
45101
|
+
$ref: "#/components/responses/AuthorizationDenied"
|
|
45102
|
+
"404":
|
|
45103
|
+
$ref: "#/components/responses/ResourceNotFound"
|
|
45104
|
+
"429":
|
|
45105
|
+
content:
|
|
45106
|
+
application/problem+json:
|
|
45107
|
+
examples:
|
|
45108
|
+
RATE_LIMITED:
|
|
45109
|
+
summary: RATE_LIMITED
|
|
45110
|
+
value:
|
|
45111
|
+
code: RATE_LIMITED
|
|
45112
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
45113
|
+
detail: See the operation contract.
|
|
45114
|
+
errors: []
|
|
45115
|
+
retryable: true
|
|
45116
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
45117
|
+
schemaVersion: 2.0.0
|
|
45118
|
+
status: 429
|
|
45119
|
+
title: RATE_LIMITED
|
|
45120
|
+
type: urn:gala:problem:rate-limited
|
|
45121
|
+
schema:
|
|
45122
|
+
$ref: "#/components/schemas/Problem"
|
|
45123
|
+
description: RATE_LIMITED
|
|
45124
|
+
headers:
|
|
45125
|
+
Cache-Control:
|
|
45126
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
45127
|
+
Retry-After:
|
|
45128
|
+
$ref: "#/components/headers/RetryAfter"
|
|
45129
|
+
X-Correlation-Id:
|
|
45130
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
45131
|
+
x-gala-problem-codes:
|
|
45132
|
+
- RATE_LIMITED
|
|
45133
|
+
"503":
|
|
45134
|
+
content:
|
|
45135
|
+
application/problem+json:
|
|
45136
|
+
examples:
|
|
45137
|
+
CAPABILITY_UNAVAILABLE:
|
|
45138
|
+
summary: CAPABILITY_UNAVAILABLE
|
|
45139
|
+
value:
|
|
45140
|
+
code: CAPABILITY_UNAVAILABLE
|
|
45141
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
45142
|
+
detail: See the operation contract.
|
|
45143
|
+
errors: []
|
|
45144
|
+
retryable: false
|
|
45145
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
45146
|
+
schemaVersion: 2.0.0
|
|
45147
|
+
status: 503
|
|
45148
|
+
title: CAPABILITY_UNAVAILABLE
|
|
45149
|
+
type: urn:gala:problem:capability-unavailable
|
|
45150
|
+
DEPENDENCY_UNAVAILABLE:
|
|
45151
|
+
summary: DEPENDENCY_UNAVAILABLE
|
|
45152
|
+
value:
|
|
45153
|
+
code: DEPENDENCY_UNAVAILABLE
|
|
45154
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
45155
|
+
detail: See the operation contract.
|
|
45156
|
+
errors: []
|
|
45157
|
+
retryable: true
|
|
45158
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
45159
|
+
schemaVersion: 2.0.0
|
|
45160
|
+
status: 503
|
|
45161
|
+
title: DEPENDENCY_UNAVAILABLE
|
|
45162
|
+
type: urn:gala:problem:dependency-unavailable
|
|
45163
|
+
schema:
|
|
45164
|
+
$ref: "#/components/schemas/Problem"
|
|
45165
|
+
description: CAPABILITY_UNAVAILABLE, DEPENDENCY_UNAVAILABLE
|
|
45166
|
+
headers:
|
|
45167
|
+
Cache-Control:
|
|
45168
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
45169
|
+
X-Correlation-Id:
|
|
45170
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
45171
|
+
x-gala-problem-codes:
|
|
45172
|
+
- CAPABILITY_UNAVAILABLE
|
|
45173
|
+
- DEPENDENCY_UNAVAILABLE
|
|
45174
|
+
security:
|
|
45175
|
+
- browserSession: []
|
|
45176
|
+
summary: read this publication's listen settings at the main branch head
|
|
45177
|
+
tags:
|
|
45178
|
+
- interaction-settings
|
|
45179
|
+
x-gala-activation-gate: MVP
|
|
45180
|
+
x-gala-activation-guards:
|
|
45181
|
+
- Active repository binding and configured GitHub App identity capability
|
|
45182
|
+
x-gala-capability-key: publication.view
|
|
45183
|
+
x-gala-concurrency: binding-epoch
|
|
45184
|
+
x-gala-conditional-capabilities: []
|
|
45185
|
+
x-gala-example-profile: NOMINAL_SUCCESS_AND_EACH_REACHABLE_PROBLEM
|
|
45186
|
+
x-gala-nullability: required-and-nullable-are-explicit
|
|
45187
|
+
x-gala-purpose: read this publication's listen settings at the main branch head
|
|
45188
|
+
x-gala-reachable-problems:
|
|
45189
|
+
- AUTHENTICATION_REQUIRED
|
|
45190
|
+
- AUTHORIZATION_DENIED
|
|
45191
|
+
- CAPABILITY_UNAVAILABLE
|
|
45192
|
+
- DEPENDENCY_UNAVAILABLE
|
|
45193
|
+
- RATE_LIMITED
|
|
45194
|
+
- RESOURCE_NOT_FOUND
|
|
45195
|
+
- VALIDATION_FAILED
|
|
45196
|
+
x-gala-replay-identity: safe-query
|
|
45197
|
+
x-gala-state-guards:
|
|
45198
|
+
- NONE
|
|
45199
|
+
x-gala-success-category: query
|
|
45200
|
+
x-gala-tenant-scope: ORGANIZATION_AND_PUBLICATION_PATH
|
|
45201
|
+
put:
|
|
45202
|
+
description: The server writes the `listen` member of `gala/publication.json` as one repository change, the way `sharing-settings` writes the `sharing` member. Publishing the change uses the normal publish flow. `change` has the shape the theme-selection write returns. Turning `enabled` on while the plan does not include Listen is `409 PLAN_REQUIRED` pointed at `/enabled`. Saving it off, or unchanged, is always allowed.
|
|
45203
|
+
operationId: putOrganizationsByOrganizationIdPublicationsByPublicationIdListenSettings
|
|
45204
|
+
parameters:
|
|
45205
|
+
- $ref: "#/components/parameters/XCorrelationId"
|
|
45206
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
45207
|
+
in: path
|
|
45208
|
+
name: organizationId
|
|
45209
|
+
required: true
|
|
45210
|
+
schema:
|
|
45211
|
+
format: uuid
|
|
45212
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
45213
|
+
type: string
|
|
45214
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
45215
|
+
in: path
|
|
45216
|
+
name: publicationId
|
|
45217
|
+
required: true
|
|
45218
|
+
schema:
|
|
45219
|
+
format: uuid
|
|
45220
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
45221
|
+
type: string
|
|
45222
|
+
- $ref: "#/components/parameters/IdempotencyKey"
|
|
45223
|
+
- $ref: "#/components/parameters/XCsrfToken"
|
|
45224
|
+
requestBody:
|
|
45225
|
+
content:
|
|
45226
|
+
application/json:
|
|
45227
|
+
examples:
|
|
45228
|
+
nominal:
|
|
45229
|
+
summary: Nominal valid request
|
|
45230
|
+
value:
|
|
45231
|
+
enabled: true
|
|
45232
|
+
schema:
|
|
45233
|
+
$ref: "#/components/schemas/PutOrganizationsByOrganizationIdPublicationsByPublicationIdListenSettingsRequest"
|
|
45234
|
+
required: true
|
|
45235
|
+
responses:
|
|
45236
|
+
"200":
|
|
45237
|
+
content:
|
|
45238
|
+
application/json:
|
|
45239
|
+
examples:
|
|
45240
|
+
nominal:
|
|
45241
|
+
summary: Nominal successful response
|
|
45242
|
+
value:
|
|
45243
|
+
change:
|
|
45244
|
+
changeId: 018f0000-0000-7000-8000-000000000001
|
|
45245
|
+
diffDigest: sha256:0000000000000000000000000000000000000000000000000000000000000000
|
|
45246
|
+
expectedHead: sha1:0000000000000000000000000000000000000000
|
|
45247
|
+
state: REQUESTED
|
|
45248
|
+
version: 0
|
|
45249
|
+
schema:
|
|
45250
|
+
$ref: "#/components/schemas/PutOrganizationsByOrganizationIdPublicationsByPublicationIdListenSettingsResponse"
|
|
45251
|
+
description: save this publication's listen settings as a repository change succeeded
|
|
45252
|
+
headers:
|
|
45253
|
+
Cache-Control:
|
|
45254
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
45255
|
+
X-Correlation-Id:
|
|
45256
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
45257
|
+
"400":
|
|
45258
|
+
$ref: "#/components/responses/RequestInvalid"
|
|
45259
|
+
"401":
|
|
45260
|
+
content:
|
|
45261
|
+
application/problem+json:
|
|
45262
|
+
examples:
|
|
45263
|
+
AUTHENTICATION_REQUIRED:
|
|
45264
|
+
summary: AUTHENTICATION_REQUIRED
|
|
45265
|
+
value:
|
|
45266
|
+
code: AUTHENTICATION_REQUIRED
|
|
45267
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
45268
|
+
detail: See the operation contract.
|
|
45269
|
+
errors: []
|
|
45270
|
+
retryable: false
|
|
45271
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
45272
|
+
schemaVersion: 2.0.0
|
|
45273
|
+
status: 401
|
|
45274
|
+
title: AUTHENTICATION_REQUIRED
|
|
45275
|
+
type: urn:gala:problem:authentication-required
|
|
45276
|
+
schema:
|
|
45277
|
+
$ref: "#/components/schemas/Problem"
|
|
45278
|
+
description: AUTHENTICATION_REQUIRED
|
|
45279
|
+
headers:
|
|
45280
|
+
Cache-Control:
|
|
45281
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
45282
|
+
X-Correlation-Id:
|
|
45283
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
45284
|
+
x-gala-problem-codes:
|
|
45285
|
+
- AUTHENTICATION_REQUIRED
|
|
45286
|
+
"403":
|
|
45287
|
+
$ref: "#/components/responses/AuthorizationDenied"
|
|
45288
|
+
"404":
|
|
45289
|
+
$ref: "#/components/responses/ResourceNotFound"
|
|
45290
|
+
"409":
|
|
45291
|
+
content:
|
|
45292
|
+
application/problem+json:
|
|
45293
|
+
examples:
|
|
45294
|
+
COMMAND_REPLAY_CONFLICT:
|
|
45295
|
+
summary: COMMAND_REPLAY_CONFLICT
|
|
45296
|
+
value:
|
|
45297
|
+
code: COMMAND_REPLAY_CONFLICT
|
|
45298
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
45299
|
+
detail: See the operation contract.
|
|
45300
|
+
errors: []
|
|
45301
|
+
retryable: false
|
|
45302
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
45303
|
+
schemaVersion: 2.0.0
|
|
45304
|
+
status: 409
|
|
45305
|
+
title: COMMAND_REPLAY_CONFLICT
|
|
45306
|
+
type: urn:gala:problem:command-replay-conflict
|
|
45307
|
+
INVALID_SOURCE_STATE:
|
|
45308
|
+
summary: INVALID_SOURCE_STATE
|
|
45309
|
+
value:
|
|
45310
|
+
code: INVALID_SOURCE_STATE
|
|
45311
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
45312
|
+
detail: See the operation contract.
|
|
45313
|
+
errors: []
|
|
45314
|
+
retryable: false
|
|
45315
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
45316
|
+
schemaVersion: 2.0.0
|
|
45317
|
+
status: 409
|
|
45318
|
+
title: INVALID_SOURCE_STATE
|
|
45319
|
+
type: urn:gala:problem:invalid-source-state
|
|
45320
|
+
PLAN_REQUIRED:
|
|
45321
|
+
summary: PLAN_REQUIRED
|
|
45322
|
+
value:
|
|
45323
|
+
code: PLAN_REQUIRED
|
|
45324
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
45325
|
+
detail: The site's plan does not include Listen. See the operation contract.
|
|
45326
|
+
errors:
|
|
45327
|
+
- code: PLAN_REQUIRED
|
|
45328
|
+
pointer: /enabled
|
|
45329
|
+
retryable: false
|
|
45330
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
45331
|
+
schemaVersion: 2.0.0
|
|
45332
|
+
status: 409
|
|
45333
|
+
title: PLAN_REQUIRED
|
|
45334
|
+
type: urn:gala:problem:plan-required
|
|
45335
|
+
TRANSFER_PENDING:
|
|
45336
|
+
summary: TRANSFER_PENDING
|
|
45337
|
+
value:
|
|
45338
|
+
code: TRANSFER_PENDING
|
|
45339
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
45340
|
+
detail: See the operation contract.
|
|
45341
|
+
errors: []
|
|
45342
|
+
retryable: false
|
|
45343
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
45344
|
+
schemaVersion: 2.0.0
|
|
45345
|
+
status: 409
|
|
45346
|
+
title: TRANSFER_PENDING
|
|
45347
|
+
type: urn:gala:problem:transfer-pending
|
|
45348
|
+
schema:
|
|
45349
|
+
$ref: "#/components/schemas/Problem"
|
|
45350
|
+
description: COMMAND_REPLAY_CONFLICT, INVALID_SOURCE_STATE, PLAN_REQUIRED, TRANSFER_PENDING
|
|
45351
|
+
headers:
|
|
45352
|
+
Cache-Control:
|
|
45353
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
45354
|
+
X-Correlation-Id:
|
|
45355
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
45356
|
+
x-gala-problem-codes:
|
|
45357
|
+
- COMMAND_REPLAY_CONFLICT
|
|
45358
|
+
- INVALID_SOURCE_STATE
|
|
45359
|
+
- PLAN_REQUIRED
|
|
45360
|
+
- TRANSFER_PENDING
|
|
45361
|
+
"422":
|
|
45362
|
+
content:
|
|
45363
|
+
application/problem+json:
|
|
45364
|
+
examples:
|
|
45365
|
+
VALIDATION_FAILED:
|
|
45366
|
+
summary: VALIDATION_FAILED
|
|
45367
|
+
value:
|
|
45368
|
+
code: VALIDATION_FAILED
|
|
45369
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
45370
|
+
detail: See the operation contract.
|
|
45371
|
+
errors: []
|
|
45372
|
+
retryable: false
|
|
45373
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
45374
|
+
schemaVersion: 2.0.0
|
|
45375
|
+
status: 422
|
|
45376
|
+
title: VALIDATION_FAILED
|
|
45377
|
+
type: urn:gala:problem:validation-failed
|
|
45378
|
+
schema:
|
|
45379
|
+
$ref: "#/components/schemas/Problem"
|
|
45380
|
+
description: VALIDATION_FAILED
|
|
45381
|
+
headers:
|
|
45382
|
+
Cache-Control:
|
|
45383
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
45384
|
+
X-Correlation-Id:
|
|
45385
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
45386
|
+
x-gala-problem-codes:
|
|
45387
|
+
- VALIDATION_FAILED
|
|
45388
|
+
"503":
|
|
45389
|
+
content:
|
|
45390
|
+
application/problem+json:
|
|
45391
|
+
examples:
|
|
45392
|
+
CAPABILITY_UNAVAILABLE:
|
|
45393
|
+
summary: CAPABILITY_UNAVAILABLE
|
|
45394
|
+
value:
|
|
45395
|
+
code: CAPABILITY_UNAVAILABLE
|
|
45396
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
45397
|
+
detail: See the operation contract.
|
|
45398
|
+
errors: []
|
|
45399
|
+
retryable: false
|
|
45400
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
45401
|
+
schemaVersion: 2.0.0
|
|
45402
|
+
status: 503
|
|
45403
|
+
title: CAPABILITY_UNAVAILABLE
|
|
45404
|
+
type: urn:gala:problem:capability-unavailable
|
|
45405
|
+
schema:
|
|
45406
|
+
$ref: "#/components/schemas/Problem"
|
|
45407
|
+
description: CAPABILITY_UNAVAILABLE
|
|
45408
|
+
headers:
|
|
45409
|
+
Cache-Control:
|
|
45410
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
45411
|
+
X-Correlation-Id:
|
|
45412
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
45413
|
+
x-gala-problem-codes:
|
|
45414
|
+
- CAPABILITY_UNAVAILABLE
|
|
45415
|
+
security:
|
|
45416
|
+
- browserSession: []
|
|
45417
|
+
summary: save this publication's listen settings as a repository change
|
|
45418
|
+
tags:
|
|
45419
|
+
- interaction-settings
|
|
45420
|
+
x-gala-activation-gate: MVP
|
|
45421
|
+
x-gala-activation-guards:
|
|
45422
|
+
- Active repository binding and configured GitHub App identity capability
|
|
45423
|
+
x-gala-capability-key: publication.settings.manage
|
|
45424
|
+
x-gala-concurrency: expected-git-head-and-binding-epoch
|
|
45425
|
+
x-gala-conditional-capabilities: []
|
|
45426
|
+
x-gala-example-profile: NOMINAL_SUCCESS_AND_EACH_REACHABLE_PROBLEM
|
|
45427
|
+
x-gala-nullability: required-and-nullable-are-explicit
|
|
45428
|
+
x-gala-purpose: save this publication's listen settings as a repository change
|
|
45429
|
+
x-gala-reachable-problems:
|
|
45430
|
+
- AUTHENTICATION_REQUIRED
|
|
45431
|
+
- AUTHORIZATION_DENIED
|
|
45432
|
+
- CAPABILITY_UNAVAILABLE
|
|
45433
|
+
- COMMAND_REPLAY_CONFLICT
|
|
45434
|
+
- INVALID_SOURCE_STATE
|
|
45435
|
+
- PLAN_REQUIRED
|
|
45436
|
+
- REQUEST_FIELD_UNKNOWN
|
|
45437
|
+
- RESOURCE_NOT_FOUND
|
|
45438
|
+
- TRANSFER_PENDING
|
|
45439
|
+
- VALIDATION_FAILED
|
|
45440
|
+
x-gala-replay-identity: idempotency-key
|
|
45441
|
+
x-gala-state-guards:
|
|
45442
|
+
- Publication:ACTIVE
|
|
45443
|
+
- RepositoryBinding:ACTIVE
|
|
45444
|
+
- RepositoryChange:REQUESTED -> PLANNED
|
|
45445
|
+
x-gala-success-category: protocol
|
|
45446
|
+
x-gala-tenant-scope: ORGANIZATION_AND_PUBLICATION_PATH
|
|
44942
45447
|
/v2/organizations/{organizationId}/publications/{publicationId}/moderation/comments/{commentId}:decide:
|
|
44943
45448
|
post:
|
|
44944
45449
|
description: |
|
|
@@ -59960,10 +60465,12 @@ paths:
|
|
|
59960
60465
|
active publication-capacity release with its single optimistic-lock
|
|
59961
60466
|
version and the closed FREE, PRO, and BUSINESS plan catalog.
|
|
59962
60467
|
Each plan carries its `publicationLimit`, its `newsletterSubscriberLimit`
|
|
59963
|
-
(confirmed newsletter subscribers per organization)
|
|
59964
|
-
(whether its sites may turn on the contact form)
|
|
59965
|
-
|
|
59966
|
-
|
|
60468
|
+
(confirmed newsletter subscribers per organization), `contactForm`
|
|
60469
|
+
(whether its sites may turn on the contact form) and `listen` (whether
|
|
60470
|
+
its sites may turn on Listen, the audio version of posts). Defaults of
|
|
60471
|
+
the first release: FREE 50 and no contact form, PRO 500 and a contact
|
|
60472
|
+
form, BUSINESS 2000 and a contact form. Listen defaults: FREE no, PRO
|
|
60473
|
+
and BUSINESS yes.
|
|
59967
60474
|
operationId: getPlatformPlans
|
|
59968
60475
|
parameters:
|
|
59969
60476
|
- $ref: "#/components/parameters/XCorrelationId"
|
|
@@ -59978,14 +60485,17 @@ paths:
|
|
|
59978
60485
|
effectiveAt: "2026-10-10T00:00:04.000Z"
|
|
59979
60486
|
items:
|
|
59980
60487
|
- contactForm: false
|
|
60488
|
+
listen: false
|
|
59981
60489
|
newsletterSubscriberLimit: 50
|
|
59982
60490
|
planKey: FREE
|
|
59983
60491
|
publicationLimit: 1
|
|
59984
60492
|
- contactForm: true
|
|
60493
|
+
listen: true
|
|
59985
60494
|
newsletterSubscriberLimit: 500
|
|
59986
60495
|
planKey: PRO
|
|
59987
60496
|
publicationLimit: 10
|
|
59988
60497
|
- contactForm: true
|
|
60498
|
+
listen: true
|
|
59989
60499
|
newsletterSubscriberLimit: 2000
|
|
59990
60500
|
planKey: BUSINESS
|
|
59991
60501
|
publicationLimit: 50
|
|
@@ -60034,9 +60544,9 @@ paths:
|
|
|
60034
60544
|
Operators only, with recent authentication. Atomically replaces the
|
|
60035
60545
|
complete publication-capacity release, changing the named plan's limits
|
|
60036
60546
|
while retaining the other two, at the release version in `If-Match`.
|
|
60037
|
-
`newsletterSubscriberLimit` and `
|
|
60038
|
-
the plan's current value. The invariant FREE <= PRO <=
|
|
60039
|
-
enforced on `publicationLimit` only. `reason` is a
|
|
60547
|
+
`newsletterSubscriberLimit`, `contactForm` and `listen` are optional:
|
|
60548
|
+
absent keeps the plan's current value. The invariant FREE <= PRO <=
|
|
60549
|
+
BUSINESS is enforced on `publicationLimit` only. `reason` is a
|
|
60040
60550
|
non-sensitive operator reason code recorded in the audit event.
|
|
60041
60551
|
operationId: putPlatformPlansByPlanKey
|
|
60042
60552
|
parameters:
|
|
@@ -60073,14 +60583,17 @@ paths:
|
|
|
60073
60583
|
effectiveAt: "2026-10-10T12:00:00.000Z"
|
|
60074
60584
|
items:
|
|
60075
60585
|
- contactForm: false
|
|
60586
|
+
listen: false
|
|
60076
60587
|
newsletterSubscriberLimit: 50
|
|
60077
60588
|
planKey: FREE
|
|
60078
60589
|
publicationLimit: 1
|
|
60079
60590
|
- contactForm: true
|
|
60591
|
+
listen: true
|
|
60080
60592
|
newsletterSubscriberLimit: 500
|
|
60081
60593
|
planKey: PRO
|
|
60082
60594
|
publicationLimit: 12
|
|
60083
60595
|
- contactForm: true
|
|
60596
|
+
listen: true
|
|
60084
60597
|
newsletterSubscriberLimit: 2000
|
|
60085
60598
|
planKey: BUSINESS
|
|
60086
60599
|
publicationLimit: 50
|
|
@@ -63513,7 +64026,7 @@ paths:
|
|
|
63513
64026
|
x-gala-tenant-scope: NONE
|
|
63514
64027
|
/v2/public/publications/{publicationId}/authors/{authorId}/follow:
|
|
63515
64028
|
delete:
|
|
63516
|
-
description: Idempotent, and allowed whether or not the site still has follows turned on or is live, so a reader can always leave. `404 AUTHOR_NOT_FOUND` only when the site names no such author and the reader holds no follow of that id.
|
|
64029
|
+
description: Idempotent, and allowed whether or not the site still has follows turned on or is live, so a reader can always leave. `404 AUTHOR_NOT_FOUND` only when the site names no such author and the reader holds no follow of that id. On a site-team token (this publication's token whose principal holds `publication.audience.read`) the response also carries `followers`, the number of readers following the author; it is absent for every other caller, including callers with no token.
|
|
63517
64030
|
operationId: deletePublicPublicationsByPublicationIdAuthorsByAuthorIdFollow
|
|
63518
64031
|
parameters:
|
|
63519
64032
|
- $ref: "#/components/parameters/XCorrelationId"
|
|
@@ -63688,7 +64201,7 @@ paths:
|
|
|
63688
64201
|
x-gala-success-category: protocol
|
|
63689
64202
|
x-gala-tenant-scope: NONE
|
|
63690
64203
|
get:
|
|
63691
|
-
description: Public read with an optional reader bearer token. With a token, `following` says whether that reader follows the author; without one it is false. The site's Follow button decides whether to show itself from the `follows.enabled` setting it was built with, not from this read.
|
|
64204
|
+
description: Public read with an optional reader bearer token. With a token, `following` says whether that reader follows the author; without one it is false. The site's Follow button decides whether to show itself from the `follows.enabled` setting it was built with, not from this read. On a site-team token (this publication's token whose principal holds `publication.audience.read`) the response also carries `followers`, the number of readers following the author; it is absent for every other caller, including callers with no token.
|
|
63692
64205
|
operationId: getPublicPublicationsByPublicationIdAuthorsByAuthorIdFollow
|
|
63693
64206
|
parameters:
|
|
63694
64207
|
- $ref: "#/components/parameters/XCorrelationId"
|
|
@@ -63793,7 +64306,7 @@ paths:
|
|
|
63793
64306
|
x-gala-success-category: query
|
|
63794
64307
|
x-gala-tenant-scope: NONE
|
|
63795
64308
|
put:
|
|
63796
|
-
description: "Idempotent: following twice is the same as following once. A follow is a reader's own business: only that reader sees it, the site owner sees a display name in the follower list and there is no public follower count. `409 FOLLOWS_DISABLED` while the author has the Follow button off. `404 AUTHOR_NOT_FOUND` when the site names no such author."
|
|
64309
|
+
description: "Idempotent: following twice is the same as following once. A follow is a reader's own business: only that reader sees it, the site owner sees a display name in the follower list and there is no public follower count. `409 FOLLOWS_DISABLED` while the author has the Follow button off. `404 AUTHOR_NOT_FOUND` when the site names no such author. On a site-team token (this publication's token whose principal holds `publication.audience.read`) the response also carries `followers`, the number of readers following the author; it is absent for every other caller, including callers with no token."
|
|
63797
64310
|
operationId: putPublicPublicationsByPublicationIdAuthorsByAuthorIdFollow
|
|
63798
64311
|
parameters:
|
|
63799
64312
|
- $ref: "#/components/parameters/XCorrelationId"
|