@shoalrun/cli 0.1.0-alpha.12 → 0.1.0-alpha.13
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/CHANGELOG.md +45 -0
- package/README.md +45 -5
- package/agent-docs/.well-known/shoalrun/navigation/project-updates-50f26fe22670.txt +3 -1
- package/agent-docs/SNAPSHOT.json +5 -5
- package/agent-docs/api-docs/support.md +11 -10
- package/agent-docs/author/components.md +13 -1
- package/agent-docs/author/frontmatter-reference.md +28 -25
- package/agent-docs/author/frontmatter-reference.sections/choose-a-publication-and-visibility.md +3 -1
- package/agent-docs/author/frontmatter-reference.sections/control-output-details.md +3 -1
- package/agent-docs/author/frontmatter-reference.sections/global-defaults-and-enforced-values.md +3 -1
- package/agent-docs/author/frontmatter-reference.sections/html-markdown-and-agents.md +3 -1
- package/agent-docs/author/frontmatter-reference.sections/identify-and-route-a-page.md +3 -1
- package/agent-docs/author/frontmatter-reference.sections/point-agents-to-it.md +3 -1
- package/agent-docs/author/frontmatter-reference.sections/project-defined-fields.md +3 -1
- package/agent-docs/author/frontmatter-reference.sections/related-reading.md +3 -1
- package/agent-docs/author/frontmatter-reference.sections/use-the-local-files-while-authoring.md +3 -1
- package/agent-docs/author/frontmatter-reference.sections/when-the-files-update.md +3 -1
- package/agent-docs/author/frontmatter.md +5 -2
- package/agent-docs/author/frontmatter.sections/audience-badges.md +1 -1
- package/agent-docs/author/frontmatter.sections/give-deprecation-guidance.md +1 -1
- package/agent-docs/author/frontmatter.sections/global-defaults-and-enforced-values.md +1 -1
- package/agent-docs/author/frontmatter.sections/optional-native-fields.md +5 -2
- package/agent-docs/author/frontmatter.sections/publication-fields.md +1 -1
- package/agent-docs/author/frontmatter.sections/publishing-policy.md +1 -1
- package/agent-docs/author/frontmatter.sections/related-metadata-tasks.md +1 -1
- package/agent-docs/author/frontmatter.sections/related-reading.md +1 -1
- package/agent-docs/author/frontmatter.sections/required-after-inheritance.md +1 -1
- package/agent-docs/author/frontmatter.sections/seo-fields.md +1 -1
- package/agent-docs/author/frontmatter.sections/validation-rules.md +1 -1
- package/agent-docs/author/markdown-metadata.md +13 -5
- package/agent-docs/author/navigation.md +12 -1
- package/agent-docs/author/navigation.sections/arrange-authored-pages.md +1 -1
- package/agent-docs/author/navigation.sections/fill-an-api-tag-group.md +1 -1
- package/agent-docs/author/navigation.sections/hide-group-page-counts.md +12 -1
- package/agent-docs/author/navigation.sections/html-markdown-and-agents.md +1 -1
- package/agent-docs/author/navigation.sections/local-api-preview.md +1 -1
- package/agent-docs/author/navigation.sections/mix-guides-and-api-references.md +1 -1
- package/agent-docs/author/navigation.sections/optionally-split-a-large-menu-into-files.md +1 -1
- package/agent-docs/author/navigation.sections/reach-navigation-while-reading.md +1 -1
- package/agent-docs/author/navigation.sections/related-reading.md +1 -1
- package/agent-docs/author/navigation.sections/split-navigation-into-tabs.md +1 -1
- package/agent-docs/author/navigation.sections/subject-lifecycle-labels.md +1 -1
- package/agent-docs/author/templates.md +10 -2
- package/agent-docs/author/templates.sections/built-in-feature-templates.md +1 -1
- package/agent-docs/author/templates.sections/built-in-templates.md +1 -1
- package/agent-docs/author/templates.sections/choose-formatting-enforcement-for-your-project.md +1 -1
- package/agent-docs/author/templates.sections/create-or-edit-a-project-template.md +10 -2
- package/agent-docs/author/templates.sections/keep-the-four-shapes-distinct.md +1 -1
- package/agent-docs/author/templates.sections/project-added-templates.md +1 -1
- package/agent-docs/author/templates.sections/related-reading.md +1 -1
- package/agent-docs/author/templates.sections/scaffold-a-page.md +1 -1
- package/agent-docs/author/templates.sections/short-cli-and-derived-values.md +1 -1
- package/agent-docs/author/templates.sections/what-every-template-gives-you.md +1 -1
- package/agent-docs/author/workspace.md +7 -1
- package/agent-docs/author/writing-style.md +13 -1
- package/agent-docs/author/writing-style.sections/adapt-this-example.md +1 -1
- package/agent-docs/author/writing-style.sections/choose-components-by-reader-need.md +1 -1
- package/agent-docs/author/writing-style.sections/evidence-and-uncertainty.md +1 -1
- package/agent-docs/author/writing-style.sections/example-audience-and-scope.md +1 -1
- package/agent-docs/author/writing-style.sections/feature-availability.md +36 -0
- package/agent-docs/author/writing-style.sections/ingredients-recipes-and-cookbooks.md +1 -1
- package/agent-docs/author/writing-style.sections/page-purpose-and-structure.md +1 -1
- package/agent-docs/author/writing-style.sections/procedures-and-examples.md +1 -1
- package/agent-docs/author/writing-style.sections/related-reading.md +1 -1
- package/agent-docs/author/writing-style.sections/review-a-draft.md +1 -1
- package/agent-docs/author/writing-style.sections/reviewed-writing-examples.md +1 -1
- package/agent-docs/author/writing-style.sections/voice-and-explanations.md +1 -1
- package/agent-docs/changelog/2026-10-28.md +89 -0
- package/agent-docs/changelog.md +9 -1
- package/agent-docs/config/outputs.md +15 -11
- package/agent-docs/config/outputs.sections/exports.md +14 -11
- package/agent-docs/config/outputs.sections/metadata.md +1 -1
- package/agent-docs/config/outputs.sections/related-reading.md +1 -1
- package/agent-docs/content-delivery/agents.md +86 -0
- package/agent-docs/content-delivery/api.md +130 -0
- package/agent-docs/content-delivery/client.md +79 -0
- package/agent-docs/content-delivery/http-api/operations/get-content-representation-fa1d2e3f.md +394 -0
- package/agent-docs/content-delivery/http-api/operations/get-content-representation-head-4052375c.md +256 -0
- package/agent-docs/content-delivery/http-api/operations/get-content-resource-849f1c49.md +911 -0
- package/agent-docs/content-delivery/http-api/operations/get-content-resource-head-0a352acd.md +246 -0
- package/agent-docs/content-delivery/http-api/operations/list-content-resources-8e977ec7.md +913 -0
- package/agent-docs/content-delivery/http-api/operations/list-content-resources-head-b67cbad9.md +236 -0
- package/agent-docs/content-delivery/http-api.md +78 -0
- package/agent-docs/content-delivery/manifest.md +79 -0
- package/agent-docs/content-delivery/publish.md +72 -0
- package/agent-docs/content-delivery/render.md +73 -0
- package/agent-docs/content-delivery/rest.md +108 -0
- package/agent-docs/content-delivery/sections.md +110 -0
- package/agent-docs/content-delivery/select.md +100 -0
- package/agent-docs/content-delivery.md +79 -0
- package/agent-docs/documents.json +6748 -5073
- package/agent-docs/provenance.json +4 -4
- package/agent-docs/publish/content-export.md +32 -16
- package/agent-docs/publish/content-export.sections/assets-downloads-and-notices.md +3 -3
- package/agent-docs/publish/content-export.sections/check-the-result.md +2 -2
- package/agent-docs/publish/content-export.sections/export-selected-pages.md +12 -9
- package/agent-docs/publish/content-export.sections/inspect-the-manifest.md +5 -3
- package/agent-docs/publish/content-export.sections/prerequisites.md +3 -3
- package/agent-docs/publish/content-export.sections/related-reading.md +2 -2
- package/agent-docs/publish/content-export.sections/review-exported-api-material.md +3 -3
- package/agent-docs/publish/content-export.sections/try-the-help-drawer-example.md +3 -3
- package/agent-docs/publish/content-export.sections/upgrade-an-existing-integration.md +34 -0
- package/agent-docs/publish/content-export.sections/what-the-representations-retain.md +4 -4
- package/agent-docs/publish/mcp.md +3 -1
- package/agent-docs/publish/mcp.sections/check-budgets-and-errors.md +1 -1
- package/agent-docs/publish/mcp.sections/choose-the-documentation-source.md +1 -1
- package/agent-docs/publish/mcp.sections/configure-the-client.md +1 -1
- package/agent-docs/publish/mcp.sections/generate-a-vercel-endpoint.md +1 -1
- package/agent-docs/publish/mcp.sections/related-reading.md +3 -1
- package/agent-docs/publish/mcp.sections/search-then-read.md +1 -1
- package/agent-docs/publish/mcp.sections/serve-a-public-endpoint-on-node.md +1 -1
- package/agent-docs/publish/mcp.sections/verify-the-connection.md +1 -1
- package/agent-docs/publish/mcp.sections/why-offer-mcp-for-public-docs.md +1 -1
- package/agent-docs/publish/seo.md +16 -2
- package/agent-docs/publish/seo.sections/related-reading.md +28 -0
- package/agent-docs/publish/seo.sections/set-the-public-address.md +36 -0
- package/agent-docs/publish/seo.sections/what-agents-receive.md +28 -0
- package/agent-docs/publish/seo.sections/what-the-build-adds.md +42 -0
- package/agent-docs/publish/seo.sections/write-the-page-title-and-summary.md +43 -0
- package/agent-docs/search-index.json +1 -1
- package/agent-docs/styling/layouts.md +21 -3
- package/agent-docs/styling/layouts.sections/build-a-landing-page.md +6 -3
- package/agent-docs/styling/layouts.sections/build-a-splash-page.md +6 -3
- package/agent-docs/styling/layouts.sections/control-navigation-tabs.md +6 -3
- package/agent-docs/styling/layouts.sections/customize-the-hero.md +6 -3
- package/agent-docs/styling/layouts.sections/hero.md +6 -3
- package/agent-docs/styling/layouts.sections/hide-the-table-of-contents-or-give-content-more-room.md +54 -0
- package/agent-docs/styling/layouts.sections/html-markdown-and-agents.md +6 -3
- package/agent-docs/styling/layouts.sections/related-reading.md +6 -3
- package/dist/api.js +70 -3
- package/dist/authoring-hints.d.ts +3 -0
- package/dist/authoring-hints.js +35 -0
- package/dist/authoring-project.d.ts +1 -1
- package/dist/authoring-project.js +2 -0
- package/dist/authoring-validation.js +2 -0
- package/dist/code-samples.js +22 -11
- package/dist/compiler-config.d.ts +1 -0
- package/dist/compiler-config.js +13 -0
- package/dist/compiler.js +2 -1
- package/dist/component-names.js +1 -1
- package/dist/component-transform.js +7 -1
- package/dist/content-delivery-contract.d.ts +108 -0
- package/dist/content-delivery-contract.js +15 -0
- package/dist/content-delivery-transport.d.ts +3 -0
- package/dist/content-delivery-transport.js +47 -0
- package/dist/content-delivery-validation.d.ts +7 -0
- package/dist/content-delivery-validation.js +122 -0
- package/dist/content-delivery.d.ts +21 -0
- package/dist/content-delivery.js +119 -0
- package/dist/content-export-anchors.d.ts +11 -0
- package/dist/content-export-anchors.js +79 -0
- package/dist/content-export-command.d.ts +4 -2
- package/dist/content-export-command.js +15 -2
- package/dist/content-export-comparison.d.ts +16 -0
- package/dist/content-export-comparison.js +48 -0
- package/dist/content-export-config.d.ts +17 -0
- package/dist/content-export-config.js +47 -3
- package/dist/content-export-render.js +20 -1
- package/dist/content-export.d.ts +5 -1
- package/dist/content-export.js +193 -40
- package/dist/content-mount.d.ts +11 -0
- package/dist/content-mount.js +73 -0
- package/dist/content-rest-client.d.ts +12 -0
- package/dist/content-rest-client.js +162 -0
- package/dist/content-rest-contract.d.ts +27 -0
- package/dist/content-rest-contract.js +9 -0
- package/dist/content-rest-server.d.ts +7 -0
- package/dist/content-rest-server.js +99 -0
- package/dist/content-source.d.ts +3 -1
- package/dist/frontmatter.js +8 -7
- package/dist/html-renderer.js +25 -0
- package/dist/markdown-sections.d.ts +2 -1
- package/dist/markdown-sections.js +8 -18
- package/dist/page-renderer.js +5 -3
- package/dist/publication-plan.js +2 -1
- package/dist/scaffold-placeholders.d.ts +2 -0
- package/dist/scaffold-placeholders.js +19 -0
- package/dist/section-identity.d.ts +24 -0
- package/dist/section-identity.js +137 -0
- package/examples/content-delivery/README.md +87 -0
- package/examples/content-delivery/app.js +91 -0
- package/examples/content-delivery/content/billing.mdx +22 -0
- package/examples/content-delivery/docs.config.yaml +36 -0
- package/examples/content-delivery/index.html +25 -0
- package/examples/content-delivery/preview.mjs +86 -0
- package/examples/content-delivery/snippets/refund-window.mdx +3 -0
- package/examples/help-drawer/README.md +2 -2
- package/examples/help-drawer/app.js +3 -3
- package/package.json +6 -3
- package/schemas/content-export.schema.json +469 -33
- package/schemas/content-rest.openapi.json +1627 -0
- package/skills/shoalrun-author/SKILL.md +2 -0
- package/styles/site.css +4 -1
|
@@ -0,0 +1,1627 @@
|
|
|
1
|
+
{
|
|
2
|
+
"openapi": "3.1.0",
|
|
3
|
+
"info": {
|
|
4
|
+
"title": "Shoalrun content REST API",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"description": "Read-only delivery of reviewed content snapshots. This is HTTP contract v1, independent of the Shoalrun package version. The reference adapter serves one supplied revision per publication. It retains no revision history. Exported HTML/Markdown bytes are unchanged: host their original static asset and link mount alongside the API."
|
|
7
|
+
},
|
|
8
|
+
"servers": [
|
|
9
|
+
{
|
|
10
|
+
"url": "/content/v1"
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
"paths": {
|
|
14
|
+
"/resources": {
|
|
15
|
+
"get": {
|
|
16
|
+
"operationId": "listContentResources",
|
|
17
|
+
"summary": "List resource metadata",
|
|
18
|
+
"description": "Query parameters are single-valued; unknown or duplicate parameters are rejected. Publication and revision checks run before conditional ETag checks. No pagination, search, writes, authentication, or cross-origin policy is supplied by this reference adapter.",
|
|
19
|
+
"parameters": [
|
|
20
|
+
{
|
|
21
|
+
"$ref": "#/components/parameters/channel"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"$ref": "#/components/parameters/version"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"$ref": "#/components/parameters/language"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"$ref": "#/components/parameters/optionalRevision"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"$ref": "#/components/parameters/ifNoneMatch"
|
|
34
|
+
}
|
|
35
|
+
],
|
|
36
|
+
"responses": {
|
|
37
|
+
"200": {
|
|
38
|
+
"description": "The selected resource or inventory.",
|
|
39
|
+
"headers": {
|
|
40
|
+
"ETag": {
|
|
41
|
+
"description": "Strong SHA-256 validator of the exact UTF-8 response bytes.",
|
|
42
|
+
"schema": {
|
|
43
|
+
"type": "string"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"Cache-Control": {
|
|
47
|
+
"description": "Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.",
|
|
48
|
+
"schema": {
|
|
49
|
+
"type": "string"
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"content": {
|
|
54
|
+
"application/json": {
|
|
55
|
+
"schema": {
|
|
56
|
+
"$ref": "#/components/schemas/ResourceList"
|
|
57
|
+
},
|
|
58
|
+
"examples": {
|
|
59
|
+
"illustrative": {
|
|
60
|
+
"summary": "Illustrative content; discover keys and revision from your own host.",
|
|
61
|
+
"value": {
|
|
62
|
+
"schemaVersion": 1,
|
|
63
|
+
"revision": "0770e6d70db51967fac8dcc7bb4ff5a5bff87378eb2e2bbb63dea93d090c82e8",
|
|
64
|
+
"publication": {
|
|
65
|
+
"channel": "production",
|
|
66
|
+
"version": "current",
|
|
67
|
+
"language": "en"
|
|
68
|
+
},
|
|
69
|
+
"resources": [
|
|
70
|
+
{
|
|
71
|
+
"key": "k_WyJwYWdlIiwiZ3VpZGUuYmlsbGluZyJd",
|
|
72
|
+
"resource": {
|
|
73
|
+
"ref": {
|
|
74
|
+
"kind": "page",
|
|
75
|
+
"documentId": "guide.billing"
|
|
76
|
+
},
|
|
77
|
+
"publication": {
|
|
78
|
+
"channel": "production",
|
|
79
|
+
"version": "current",
|
|
80
|
+
"language": "en"
|
|
81
|
+
},
|
|
82
|
+
"title": "Billing",
|
|
83
|
+
"summary": "Contact billing support.",
|
|
84
|
+
"type": "guide",
|
|
85
|
+
"representations": {
|
|
86
|
+
"html": {
|
|
87
|
+
"path": "content/resource-example.html",
|
|
88
|
+
"mediaType": "text/html",
|
|
89
|
+
"bytes": 24,
|
|
90
|
+
"digest": "0a97b73701c659be016f97a7be571c14c1cdad440cf79dfc1c8a0238a8b4787f",
|
|
91
|
+
"anchors": [],
|
|
92
|
+
"links": []
|
|
93
|
+
},
|
|
94
|
+
"markdown": {
|
|
95
|
+
"path": "content/resource-example.md",
|
|
96
|
+
"mediaType": "text/markdown",
|
|
97
|
+
"bytes": 17,
|
|
98
|
+
"digest": "d37729e92d86a1133926632326a5d61a3e65610a169d65211726924af02dac5c",
|
|
99
|
+
"anchors": [],
|
|
100
|
+
"links": []
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"assets": [],
|
|
104
|
+
"externalDependencies": []
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
]
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
"304": {
|
|
115
|
+
"description": "The validated selected response matches If-None-Match. No response body.",
|
|
116
|
+
"headers": {
|
|
117
|
+
"ETag": {
|
|
118
|
+
"description": "Strong SHA-256 validator of the exact UTF-8 response bytes.",
|
|
119
|
+
"schema": {
|
|
120
|
+
"type": "string"
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
"Cache-Control": {
|
|
124
|
+
"description": "Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.",
|
|
125
|
+
"schema": {
|
|
126
|
+
"type": "string"
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"400": {
|
|
132
|
+
"description": "invalid_request: missing, duplicate, unknown, or malformed query parameter.",
|
|
133
|
+
"headers": {
|
|
134
|
+
"Cache-Control": {
|
|
135
|
+
"schema": {
|
|
136
|
+
"const": "no-store"
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
"content": {
|
|
141
|
+
"application/json": {
|
|
142
|
+
"schema": {
|
|
143
|
+
"$ref": "#/components/schemas/Error"
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
"404": {
|
|
149
|
+
"description": "not_found: unknown publication, resource, or route.",
|
|
150
|
+
"headers": {
|
|
151
|
+
"Cache-Control": {
|
|
152
|
+
"schema": {
|
|
153
|
+
"const": "no-store"
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
"content": {
|
|
158
|
+
"application/json": {
|
|
159
|
+
"schema": {
|
|
160
|
+
"$ref": "#/components/schemas/Error"
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
"405": {
|
|
166
|
+
"description": "method_not_allowed: only GET and HEAD are supported; Allow lists both.",
|
|
167
|
+
"headers": {
|
|
168
|
+
"Cache-Control": {
|
|
169
|
+
"schema": {
|
|
170
|
+
"const": "no-store"
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
"Allow": {
|
|
174
|
+
"schema": {
|
|
175
|
+
"const": "GET, HEAD"
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
"content": {
|
|
180
|
+
"application/json": {
|
|
181
|
+
"schema": {
|
|
182
|
+
"$ref": "#/components/schemas/Error"
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
"406": {
|
|
188
|
+
"description": "unsupported_format: unsupported or unavailable representation format.",
|
|
189
|
+
"headers": {
|
|
190
|
+
"Cache-Control": {
|
|
191
|
+
"schema": {
|
|
192
|
+
"const": "no-store"
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
"content": {
|
|
197
|
+
"application/json": {
|
|
198
|
+
"schema": {
|
|
199
|
+
"$ref": "#/components/schemas/Error"
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
"409": {
|
|
205
|
+
"description": "stale_revision: revision unavailable, or source bytes no longer match the pinned snapshot.",
|
|
206
|
+
"headers": {
|
|
207
|
+
"Cache-Control": {
|
|
208
|
+
"schema": {
|
|
209
|
+
"const": "no-store"
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
"content": {
|
|
214
|
+
"application/json": {
|
|
215
|
+
"schema": {
|
|
216
|
+
"$ref": "#/components/schemas/Error"
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
},
|
|
221
|
+
"500": {
|
|
222
|
+
"description": "internal_error: the source could not complete the request.",
|
|
223
|
+
"headers": {
|
|
224
|
+
"Cache-Control": {
|
|
225
|
+
"schema": {
|
|
226
|
+
"const": "no-store"
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
"content": {
|
|
231
|
+
"application/json": {
|
|
232
|
+
"schema": {
|
|
233
|
+
"$ref": "#/components/schemas/Error"
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
"head": {
|
|
241
|
+
"operationId": "listContentResourcesHead",
|
|
242
|
+
"summary": "List resource metadata headers",
|
|
243
|
+
"description": "Query parameters are single-valued; unknown or duplicate parameters are rejected. Publication and revision checks run before conditional ETag checks. No pagination, search, writes, authentication, or cross-origin policy is supplied by this reference adapter. HEAD returns the GET status and headers without a response body.",
|
|
244
|
+
"parameters": [
|
|
245
|
+
{
|
|
246
|
+
"$ref": "#/components/parameters/channel"
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
"$ref": "#/components/parameters/version"
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
"$ref": "#/components/parameters/language"
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"$ref": "#/components/parameters/optionalRevision"
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
"$ref": "#/components/parameters/ifNoneMatch"
|
|
259
|
+
}
|
|
260
|
+
],
|
|
261
|
+
"responses": {
|
|
262
|
+
"200": {
|
|
263
|
+
"description": "The selected resource or inventory.",
|
|
264
|
+
"headers": {
|
|
265
|
+
"ETag": {
|
|
266
|
+
"description": "Strong SHA-256 validator of the exact UTF-8 response bytes.",
|
|
267
|
+
"schema": {
|
|
268
|
+
"type": "string"
|
|
269
|
+
}
|
|
270
|
+
},
|
|
271
|
+
"Cache-Control": {
|
|
272
|
+
"description": "Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.",
|
|
273
|
+
"schema": {
|
|
274
|
+
"type": "string"
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
},
|
|
279
|
+
"304": {
|
|
280
|
+
"description": "The validated selected response matches If-None-Match. No response body.",
|
|
281
|
+
"headers": {
|
|
282
|
+
"ETag": {
|
|
283
|
+
"description": "Strong SHA-256 validator of the exact UTF-8 response bytes.",
|
|
284
|
+
"schema": {
|
|
285
|
+
"type": "string"
|
|
286
|
+
}
|
|
287
|
+
},
|
|
288
|
+
"Cache-Control": {
|
|
289
|
+
"description": "Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.",
|
|
290
|
+
"schema": {
|
|
291
|
+
"type": "string"
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
},
|
|
296
|
+
"400": {
|
|
297
|
+
"description": "invalid_request: missing, duplicate, unknown, or malformed query parameter.",
|
|
298
|
+
"headers": {
|
|
299
|
+
"Cache-Control": {
|
|
300
|
+
"schema": {
|
|
301
|
+
"const": "no-store"
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
},
|
|
306
|
+
"404": {
|
|
307
|
+
"description": "not_found: unknown publication, resource, or route.",
|
|
308
|
+
"headers": {
|
|
309
|
+
"Cache-Control": {
|
|
310
|
+
"schema": {
|
|
311
|
+
"const": "no-store"
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
},
|
|
316
|
+
"405": {
|
|
317
|
+
"description": "method_not_allowed: only GET and HEAD are supported; Allow lists both.",
|
|
318
|
+
"headers": {
|
|
319
|
+
"Cache-Control": {
|
|
320
|
+
"schema": {
|
|
321
|
+
"const": "no-store"
|
|
322
|
+
}
|
|
323
|
+
},
|
|
324
|
+
"Allow": {
|
|
325
|
+
"schema": {
|
|
326
|
+
"const": "GET, HEAD"
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
},
|
|
331
|
+
"406": {
|
|
332
|
+
"description": "unsupported_format: unsupported or unavailable representation format.",
|
|
333
|
+
"headers": {
|
|
334
|
+
"Cache-Control": {
|
|
335
|
+
"schema": {
|
|
336
|
+
"const": "no-store"
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
},
|
|
341
|
+
"409": {
|
|
342
|
+
"description": "stale_revision: revision unavailable, or source bytes no longer match the pinned snapshot.",
|
|
343
|
+
"headers": {
|
|
344
|
+
"Cache-Control": {
|
|
345
|
+
"schema": {
|
|
346
|
+
"const": "no-store"
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
},
|
|
351
|
+
"500": {
|
|
352
|
+
"description": "internal_error: the source could not complete the request.",
|
|
353
|
+
"headers": {
|
|
354
|
+
"Cache-Control": {
|
|
355
|
+
"schema": {
|
|
356
|
+
"const": "no-store"
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
},
|
|
364
|
+
"/resources/{key}": {
|
|
365
|
+
"get": {
|
|
366
|
+
"operationId": "getContentResource",
|
|
367
|
+
"summary": "Read resource metadata",
|
|
368
|
+
"description": "Query parameters are single-valued; unknown or duplicate parameters are rejected. Publication and revision checks run before conditional ETag checks. No pagination, search, writes, authentication, or cross-origin policy is supplied by this reference adapter.",
|
|
369
|
+
"parameters": [
|
|
370
|
+
{
|
|
371
|
+
"$ref": "#/components/parameters/channel"
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
"$ref": "#/components/parameters/version"
|
|
375
|
+
},
|
|
376
|
+
{
|
|
377
|
+
"$ref": "#/components/parameters/language"
|
|
378
|
+
},
|
|
379
|
+
{
|
|
380
|
+
"$ref": "#/components/parameters/revision"
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
"$ref": "#/components/parameters/key"
|
|
384
|
+
},
|
|
385
|
+
{
|
|
386
|
+
"$ref": "#/components/parameters/ifNoneMatch"
|
|
387
|
+
}
|
|
388
|
+
],
|
|
389
|
+
"responses": {
|
|
390
|
+
"200": {
|
|
391
|
+
"description": "The selected resource or inventory.",
|
|
392
|
+
"headers": {
|
|
393
|
+
"ETag": {
|
|
394
|
+
"description": "Strong SHA-256 validator of the exact UTF-8 response bytes.",
|
|
395
|
+
"schema": {
|
|
396
|
+
"type": "string"
|
|
397
|
+
}
|
|
398
|
+
},
|
|
399
|
+
"Cache-Control": {
|
|
400
|
+
"description": "Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.",
|
|
401
|
+
"schema": {
|
|
402
|
+
"type": "string"
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
},
|
|
406
|
+
"content": {
|
|
407
|
+
"application/json": {
|
|
408
|
+
"schema": {
|
|
409
|
+
"$ref": "#/components/schemas/ResourceMetadata"
|
|
410
|
+
},
|
|
411
|
+
"examples": {
|
|
412
|
+
"illustrative": {
|
|
413
|
+
"summary": "Illustrative content; discover keys and revision from your own host.",
|
|
414
|
+
"value": {
|
|
415
|
+
"schemaVersion": 1,
|
|
416
|
+
"revision": "0770e6d70db51967fac8dcc7bb4ff5a5bff87378eb2e2bbb63dea93d090c82e8",
|
|
417
|
+
"publication": {
|
|
418
|
+
"channel": "production",
|
|
419
|
+
"version": "current",
|
|
420
|
+
"language": "en"
|
|
421
|
+
},
|
|
422
|
+
"key": "k_WyJwYWdlIiwiZ3VpZGUuYmlsbGluZyJd",
|
|
423
|
+
"resource": {
|
|
424
|
+
"ref": {
|
|
425
|
+
"kind": "page",
|
|
426
|
+
"documentId": "guide.billing"
|
|
427
|
+
},
|
|
428
|
+
"publication": {
|
|
429
|
+
"channel": "production",
|
|
430
|
+
"version": "current",
|
|
431
|
+
"language": "en"
|
|
432
|
+
},
|
|
433
|
+
"title": "Billing",
|
|
434
|
+
"summary": "Contact billing support.",
|
|
435
|
+
"type": "guide",
|
|
436
|
+
"representations": {
|
|
437
|
+
"html": {
|
|
438
|
+
"path": "content/resource-example.html",
|
|
439
|
+
"mediaType": "text/html",
|
|
440
|
+
"bytes": 24,
|
|
441
|
+
"digest": "0a97b73701c659be016f97a7be571c14c1cdad440cf79dfc1c8a0238a8b4787f",
|
|
442
|
+
"anchors": [],
|
|
443
|
+
"links": []
|
|
444
|
+
},
|
|
445
|
+
"markdown": {
|
|
446
|
+
"path": "content/resource-example.md",
|
|
447
|
+
"mediaType": "text/markdown",
|
|
448
|
+
"bytes": 17,
|
|
449
|
+
"digest": "d37729e92d86a1133926632326a5d61a3e65610a169d65211726924af02dac5c",
|
|
450
|
+
"anchors": [],
|
|
451
|
+
"links": []
|
|
452
|
+
}
|
|
453
|
+
},
|
|
454
|
+
"assets": [],
|
|
455
|
+
"externalDependencies": []
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
},
|
|
463
|
+
"304": {
|
|
464
|
+
"description": "The validated selected response matches If-None-Match. No response body.",
|
|
465
|
+
"headers": {
|
|
466
|
+
"ETag": {
|
|
467
|
+
"description": "Strong SHA-256 validator of the exact UTF-8 response bytes.",
|
|
468
|
+
"schema": {
|
|
469
|
+
"type": "string"
|
|
470
|
+
}
|
|
471
|
+
},
|
|
472
|
+
"Cache-Control": {
|
|
473
|
+
"description": "Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.",
|
|
474
|
+
"schema": {
|
|
475
|
+
"type": "string"
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
},
|
|
480
|
+
"400": {
|
|
481
|
+
"description": "invalid_request: missing, duplicate, unknown, or malformed query parameter.",
|
|
482
|
+
"headers": {
|
|
483
|
+
"Cache-Control": {
|
|
484
|
+
"schema": {
|
|
485
|
+
"const": "no-store"
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
},
|
|
489
|
+
"content": {
|
|
490
|
+
"application/json": {
|
|
491
|
+
"schema": {
|
|
492
|
+
"$ref": "#/components/schemas/Error"
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
},
|
|
497
|
+
"404": {
|
|
498
|
+
"description": "not_found: unknown publication, resource, or route.",
|
|
499
|
+
"headers": {
|
|
500
|
+
"Cache-Control": {
|
|
501
|
+
"schema": {
|
|
502
|
+
"const": "no-store"
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
},
|
|
506
|
+
"content": {
|
|
507
|
+
"application/json": {
|
|
508
|
+
"schema": {
|
|
509
|
+
"$ref": "#/components/schemas/Error"
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
},
|
|
514
|
+
"405": {
|
|
515
|
+
"description": "method_not_allowed: only GET and HEAD are supported; Allow lists both.",
|
|
516
|
+
"headers": {
|
|
517
|
+
"Cache-Control": {
|
|
518
|
+
"schema": {
|
|
519
|
+
"const": "no-store"
|
|
520
|
+
}
|
|
521
|
+
},
|
|
522
|
+
"Allow": {
|
|
523
|
+
"schema": {
|
|
524
|
+
"const": "GET, HEAD"
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
},
|
|
528
|
+
"content": {
|
|
529
|
+
"application/json": {
|
|
530
|
+
"schema": {
|
|
531
|
+
"$ref": "#/components/schemas/Error"
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
},
|
|
536
|
+
"406": {
|
|
537
|
+
"description": "unsupported_format: unsupported or unavailable representation format.",
|
|
538
|
+
"headers": {
|
|
539
|
+
"Cache-Control": {
|
|
540
|
+
"schema": {
|
|
541
|
+
"const": "no-store"
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
},
|
|
545
|
+
"content": {
|
|
546
|
+
"application/json": {
|
|
547
|
+
"schema": {
|
|
548
|
+
"$ref": "#/components/schemas/Error"
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
},
|
|
553
|
+
"409": {
|
|
554
|
+
"description": "stale_revision: revision unavailable, or source bytes no longer match the pinned snapshot.",
|
|
555
|
+
"headers": {
|
|
556
|
+
"Cache-Control": {
|
|
557
|
+
"schema": {
|
|
558
|
+
"const": "no-store"
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
},
|
|
562
|
+
"content": {
|
|
563
|
+
"application/json": {
|
|
564
|
+
"schema": {
|
|
565
|
+
"$ref": "#/components/schemas/Error"
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
},
|
|
570
|
+
"500": {
|
|
571
|
+
"description": "internal_error: the source could not complete the request.",
|
|
572
|
+
"headers": {
|
|
573
|
+
"Cache-Control": {
|
|
574
|
+
"schema": {
|
|
575
|
+
"const": "no-store"
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
},
|
|
579
|
+
"content": {
|
|
580
|
+
"application/json": {
|
|
581
|
+
"schema": {
|
|
582
|
+
"$ref": "#/components/schemas/Error"
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
},
|
|
589
|
+
"head": {
|
|
590
|
+
"operationId": "getContentResourceHead",
|
|
591
|
+
"summary": "Read resource metadata headers",
|
|
592
|
+
"description": "Query parameters are single-valued; unknown or duplicate parameters are rejected. Publication and revision checks run before conditional ETag checks. No pagination, search, writes, authentication, or cross-origin policy is supplied by this reference adapter. HEAD returns the GET status and headers without a response body.",
|
|
593
|
+
"parameters": [
|
|
594
|
+
{
|
|
595
|
+
"$ref": "#/components/parameters/channel"
|
|
596
|
+
},
|
|
597
|
+
{
|
|
598
|
+
"$ref": "#/components/parameters/version"
|
|
599
|
+
},
|
|
600
|
+
{
|
|
601
|
+
"$ref": "#/components/parameters/language"
|
|
602
|
+
},
|
|
603
|
+
{
|
|
604
|
+
"$ref": "#/components/parameters/revision"
|
|
605
|
+
},
|
|
606
|
+
{
|
|
607
|
+
"$ref": "#/components/parameters/key"
|
|
608
|
+
},
|
|
609
|
+
{
|
|
610
|
+
"$ref": "#/components/parameters/ifNoneMatch"
|
|
611
|
+
}
|
|
612
|
+
],
|
|
613
|
+
"responses": {
|
|
614
|
+
"200": {
|
|
615
|
+
"description": "The selected resource or inventory.",
|
|
616
|
+
"headers": {
|
|
617
|
+
"ETag": {
|
|
618
|
+
"description": "Strong SHA-256 validator of the exact UTF-8 response bytes.",
|
|
619
|
+
"schema": {
|
|
620
|
+
"type": "string"
|
|
621
|
+
}
|
|
622
|
+
},
|
|
623
|
+
"Cache-Control": {
|
|
624
|
+
"description": "Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.",
|
|
625
|
+
"schema": {
|
|
626
|
+
"type": "string"
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
},
|
|
631
|
+
"304": {
|
|
632
|
+
"description": "The validated selected response matches If-None-Match. No response body.",
|
|
633
|
+
"headers": {
|
|
634
|
+
"ETag": {
|
|
635
|
+
"description": "Strong SHA-256 validator of the exact UTF-8 response bytes.",
|
|
636
|
+
"schema": {
|
|
637
|
+
"type": "string"
|
|
638
|
+
}
|
|
639
|
+
},
|
|
640
|
+
"Cache-Control": {
|
|
641
|
+
"description": "Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.",
|
|
642
|
+
"schema": {
|
|
643
|
+
"type": "string"
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
},
|
|
648
|
+
"400": {
|
|
649
|
+
"description": "invalid_request: missing, duplicate, unknown, or malformed query parameter.",
|
|
650
|
+
"headers": {
|
|
651
|
+
"Cache-Control": {
|
|
652
|
+
"schema": {
|
|
653
|
+
"const": "no-store"
|
|
654
|
+
}
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
},
|
|
658
|
+
"404": {
|
|
659
|
+
"description": "not_found: unknown publication, resource, or route.",
|
|
660
|
+
"headers": {
|
|
661
|
+
"Cache-Control": {
|
|
662
|
+
"schema": {
|
|
663
|
+
"const": "no-store"
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
},
|
|
668
|
+
"405": {
|
|
669
|
+
"description": "method_not_allowed: only GET and HEAD are supported; Allow lists both.",
|
|
670
|
+
"headers": {
|
|
671
|
+
"Cache-Control": {
|
|
672
|
+
"schema": {
|
|
673
|
+
"const": "no-store"
|
|
674
|
+
}
|
|
675
|
+
},
|
|
676
|
+
"Allow": {
|
|
677
|
+
"schema": {
|
|
678
|
+
"const": "GET, HEAD"
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
},
|
|
683
|
+
"406": {
|
|
684
|
+
"description": "unsupported_format: unsupported or unavailable representation format.",
|
|
685
|
+
"headers": {
|
|
686
|
+
"Cache-Control": {
|
|
687
|
+
"schema": {
|
|
688
|
+
"const": "no-store"
|
|
689
|
+
}
|
|
690
|
+
}
|
|
691
|
+
}
|
|
692
|
+
},
|
|
693
|
+
"409": {
|
|
694
|
+
"description": "stale_revision: revision unavailable, or source bytes no longer match the pinned snapshot.",
|
|
695
|
+
"headers": {
|
|
696
|
+
"Cache-Control": {
|
|
697
|
+
"schema": {
|
|
698
|
+
"const": "no-store"
|
|
699
|
+
}
|
|
700
|
+
}
|
|
701
|
+
}
|
|
702
|
+
},
|
|
703
|
+
"500": {
|
|
704
|
+
"description": "internal_error: the source could not complete the request.",
|
|
705
|
+
"headers": {
|
|
706
|
+
"Cache-Control": {
|
|
707
|
+
"schema": {
|
|
708
|
+
"const": "no-store"
|
|
709
|
+
}
|
|
710
|
+
}
|
|
711
|
+
}
|
|
712
|
+
}
|
|
713
|
+
}
|
|
714
|
+
}
|
|
715
|
+
},
|
|
716
|
+
"/resources/{key}/representations/{format}": {
|
|
717
|
+
"get": {
|
|
718
|
+
"operationId": "getContentRepresentation",
|
|
719
|
+
"summary": "Read HTML or Markdown",
|
|
720
|
+
"description": "Query parameters are single-valued; unknown or duplicate parameters are rejected. Publication and revision checks run before conditional ETag checks. No pagination, search, writes, authentication, or cross-origin policy is supplied by this reference adapter.",
|
|
721
|
+
"parameters": [
|
|
722
|
+
{
|
|
723
|
+
"$ref": "#/components/parameters/channel"
|
|
724
|
+
},
|
|
725
|
+
{
|
|
726
|
+
"$ref": "#/components/parameters/version"
|
|
727
|
+
},
|
|
728
|
+
{
|
|
729
|
+
"$ref": "#/components/parameters/language"
|
|
730
|
+
},
|
|
731
|
+
{
|
|
732
|
+
"$ref": "#/components/parameters/revision"
|
|
733
|
+
},
|
|
734
|
+
{
|
|
735
|
+
"$ref": "#/components/parameters/key"
|
|
736
|
+
},
|
|
737
|
+
{
|
|
738
|
+
"$ref": "#/components/parameters/format"
|
|
739
|
+
},
|
|
740
|
+
{
|
|
741
|
+
"$ref": "#/components/parameters/ifNoneMatch"
|
|
742
|
+
}
|
|
743
|
+
],
|
|
744
|
+
"responses": {
|
|
745
|
+
"200": {
|
|
746
|
+
"description": "The selected resource or inventory.",
|
|
747
|
+
"headers": {
|
|
748
|
+
"ETag": {
|
|
749
|
+
"description": "Strong SHA-256 validator of the exact UTF-8 response bytes.",
|
|
750
|
+
"schema": {
|
|
751
|
+
"type": "string"
|
|
752
|
+
}
|
|
753
|
+
},
|
|
754
|
+
"Cache-Control": {
|
|
755
|
+
"description": "Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.",
|
|
756
|
+
"schema": {
|
|
757
|
+
"type": "string"
|
|
758
|
+
}
|
|
759
|
+
}
|
|
760
|
+
},
|
|
761
|
+
"content": {
|
|
762
|
+
"text/html": {
|
|
763
|
+
"schema": {
|
|
764
|
+
"type": "string"
|
|
765
|
+
},
|
|
766
|
+
"examples": {
|
|
767
|
+
"illustrative": {
|
|
768
|
+
"summary": "Illustrative content; discover keys and revision from your own host.",
|
|
769
|
+
"value": "<p>Contact support.</p>\n"
|
|
770
|
+
}
|
|
771
|
+
}
|
|
772
|
+
},
|
|
773
|
+
"text/markdown": {
|
|
774
|
+
"schema": {
|
|
775
|
+
"type": "string"
|
|
776
|
+
},
|
|
777
|
+
"examples": {
|
|
778
|
+
"illustrative": {
|
|
779
|
+
"summary": "Illustrative content; discover keys and revision from your own host.",
|
|
780
|
+
"value": "Contact support.\n"
|
|
781
|
+
}
|
|
782
|
+
}
|
|
783
|
+
}
|
|
784
|
+
}
|
|
785
|
+
},
|
|
786
|
+
"304": {
|
|
787
|
+
"description": "The validated selected response matches If-None-Match. No response body.",
|
|
788
|
+
"headers": {
|
|
789
|
+
"ETag": {
|
|
790
|
+
"description": "Strong SHA-256 validator of the exact UTF-8 response bytes.",
|
|
791
|
+
"schema": {
|
|
792
|
+
"type": "string"
|
|
793
|
+
}
|
|
794
|
+
},
|
|
795
|
+
"Cache-Control": {
|
|
796
|
+
"description": "Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.",
|
|
797
|
+
"schema": {
|
|
798
|
+
"type": "string"
|
|
799
|
+
}
|
|
800
|
+
}
|
|
801
|
+
}
|
|
802
|
+
},
|
|
803
|
+
"400": {
|
|
804
|
+
"description": "invalid_request: missing, duplicate, unknown, or malformed query parameter.",
|
|
805
|
+
"headers": {
|
|
806
|
+
"Cache-Control": {
|
|
807
|
+
"schema": {
|
|
808
|
+
"const": "no-store"
|
|
809
|
+
}
|
|
810
|
+
}
|
|
811
|
+
},
|
|
812
|
+
"content": {
|
|
813
|
+
"application/json": {
|
|
814
|
+
"schema": {
|
|
815
|
+
"$ref": "#/components/schemas/Error"
|
|
816
|
+
}
|
|
817
|
+
}
|
|
818
|
+
}
|
|
819
|
+
},
|
|
820
|
+
"404": {
|
|
821
|
+
"description": "not_found: unknown publication, resource, or route.",
|
|
822
|
+
"headers": {
|
|
823
|
+
"Cache-Control": {
|
|
824
|
+
"schema": {
|
|
825
|
+
"const": "no-store"
|
|
826
|
+
}
|
|
827
|
+
}
|
|
828
|
+
},
|
|
829
|
+
"content": {
|
|
830
|
+
"application/json": {
|
|
831
|
+
"schema": {
|
|
832
|
+
"$ref": "#/components/schemas/Error"
|
|
833
|
+
}
|
|
834
|
+
}
|
|
835
|
+
}
|
|
836
|
+
},
|
|
837
|
+
"405": {
|
|
838
|
+
"description": "method_not_allowed: only GET and HEAD are supported; Allow lists both.",
|
|
839
|
+
"headers": {
|
|
840
|
+
"Cache-Control": {
|
|
841
|
+
"schema": {
|
|
842
|
+
"const": "no-store"
|
|
843
|
+
}
|
|
844
|
+
},
|
|
845
|
+
"Allow": {
|
|
846
|
+
"schema": {
|
|
847
|
+
"const": "GET, HEAD"
|
|
848
|
+
}
|
|
849
|
+
}
|
|
850
|
+
},
|
|
851
|
+
"content": {
|
|
852
|
+
"application/json": {
|
|
853
|
+
"schema": {
|
|
854
|
+
"$ref": "#/components/schemas/Error"
|
|
855
|
+
}
|
|
856
|
+
}
|
|
857
|
+
}
|
|
858
|
+
},
|
|
859
|
+
"406": {
|
|
860
|
+
"description": "unsupported_format: unsupported or unavailable representation format.",
|
|
861
|
+
"headers": {
|
|
862
|
+
"Cache-Control": {
|
|
863
|
+
"schema": {
|
|
864
|
+
"const": "no-store"
|
|
865
|
+
}
|
|
866
|
+
}
|
|
867
|
+
},
|
|
868
|
+
"content": {
|
|
869
|
+
"application/json": {
|
|
870
|
+
"schema": {
|
|
871
|
+
"$ref": "#/components/schemas/Error"
|
|
872
|
+
}
|
|
873
|
+
}
|
|
874
|
+
}
|
|
875
|
+
},
|
|
876
|
+
"409": {
|
|
877
|
+
"description": "stale_revision: revision unavailable, or source bytes no longer match the pinned snapshot.",
|
|
878
|
+
"headers": {
|
|
879
|
+
"Cache-Control": {
|
|
880
|
+
"schema": {
|
|
881
|
+
"const": "no-store"
|
|
882
|
+
}
|
|
883
|
+
}
|
|
884
|
+
},
|
|
885
|
+
"content": {
|
|
886
|
+
"application/json": {
|
|
887
|
+
"schema": {
|
|
888
|
+
"$ref": "#/components/schemas/Error"
|
|
889
|
+
}
|
|
890
|
+
}
|
|
891
|
+
}
|
|
892
|
+
},
|
|
893
|
+
"500": {
|
|
894
|
+
"description": "internal_error: the source could not complete the request.",
|
|
895
|
+
"headers": {
|
|
896
|
+
"Cache-Control": {
|
|
897
|
+
"schema": {
|
|
898
|
+
"const": "no-store"
|
|
899
|
+
}
|
|
900
|
+
}
|
|
901
|
+
},
|
|
902
|
+
"content": {
|
|
903
|
+
"application/json": {
|
|
904
|
+
"schema": {
|
|
905
|
+
"$ref": "#/components/schemas/Error"
|
|
906
|
+
}
|
|
907
|
+
}
|
|
908
|
+
}
|
|
909
|
+
}
|
|
910
|
+
}
|
|
911
|
+
},
|
|
912
|
+
"head": {
|
|
913
|
+
"operationId": "getContentRepresentationHead",
|
|
914
|
+
"summary": "Read HTML or Markdown headers",
|
|
915
|
+
"description": "Query parameters are single-valued; unknown or duplicate parameters are rejected. Publication and revision checks run before conditional ETag checks. No pagination, search, writes, authentication, or cross-origin policy is supplied by this reference adapter. HEAD returns the GET status and headers without a response body.",
|
|
916
|
+
"parameters": [
|
|
917
|
+
{
|
|
918
|
+
"$ref": "#/components/parameters/channel"
|
|
919
|
+
},
|
|
920
|
+
{
|
|
921
|
+
"$ref": "#/components/parameters/version"
|
|
922
|
+
},
|
|
923
|
+
{
|
|
924
|
+
"$ref": "#/components/parameters/language"
|
|
925
|
+
},
|
|
926
|
+
{
|
|
927
|
+
"$ref": "#/components/parameters/revision"
|
|
928
|
+
},
|
|
929
|
+
{
|
|
930
|
+
"$ref": "#/components/parameters/key"
|
|
931
|
+
},
|
|
932
|
+
{
|
|
933
|
+
"$ref": "#/components/parameters/format"
|
|
934
|
+
},
|
|
935
|
+
{
|
|
936
|
+
"$ref": "#/components/parameters/ifNoneMatch"
|
|
937
|
+
}
|
|
938
|
+
],
|
|
939
|
+
"responses": {
|
|
940
|
+
"200": {
|
|
941
|
+
"description": "The selected resource or inventory.",
|
|
942
|
+
"headers": {
|
|
943
|
+
"ETag": {
|
|
944
|
+
"description": "Strong SHA-256 validator of the exact UTF-8 response bytes.",
|
|
945
|
+
"schema": {
|
|
946
|
+
"type": "string"
|
|
947
|
+
}
|
|
948
|
+
},
|
|
949
|
+
"Cache-Control": {
|
|
950
|
+
"description": "Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.",
|
|
951
|
+
"schema": {
|
|
952
|
+
"type": "string"
|
|
953
|
+
}
|
|
954
|
+
}
|
|
955
|
+
}
|
|
956
|
+
},
|
|
957
|
+
"304": {
|
|
958
|
+
"description": "The validated selected response matches If-None-Match. No response body.",
|
|
959
|
+
"headers": {
|
|
960
|
+
"ETag": {
|
|
961
|
+
"description": "Strong SHA-256 validator of the exact UTF-8 response bytes.",
|
|
962
|
+
"schema": {
|
|
963
|
+
"type": "string"
|
|
964
|
+
}
|
|
965
|
+
},
|
|
966
|
+
"Cache-Control": {
|
|
967
|
+
"description": "Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.",
|
|
968
|
+
"schema": {
|
|
969
|
+
"type": "string"
|
|
970
|
+
}
|
|
971
|
+
}
|
|
972
|
+
}
|
|
973
|
+
},
|
|
974
|
+
"400": {
|
|
975
|
+
"description": "invalid_request: missing, duplicate, unknown, or malformed query parameter.",
|
|
976
|
+
"headers": {
|
|
977
|
+
"Cache-Control": {
|
|
978
|
+
"schema": {
|
|
979
|
+
"const": "no-store"
|
|
980
|
+
}
|
|
981
|
+
}
|
|
982
|
+
}
|
|
983
|
+
},
|
|
984
|
+
"404": {
|
|
985
|
+
"description": "not_found: unknown publication, resource, or route.",
|
|
986
|
+
"headers": {
|
|
987
|
+
"Cache-Control": {
|
|
988
|
+
"schema": {
|
|
989
|
+
"const": "no-store"
|
|
990
|
+
}
|
|
991
|
+
}
|
|
992
|
+
}
|
|
993
|
+
},
|
|
994
|
+
"405": {
|
|
995
|
+
"description": "method_not_allowed: only GET and HEAD are supported; Allow lists both.",
|
|
996
|
+
"headers": {
|
|
997
|
+
"Cache-Control": {
|
|
998
|
+
"schema": {
|
|
999
|
+
"const": "no-store"
|
|
1000
|
+
}
|
|
1001
|
+
},
|
|
1002
|
+
"Allow": {
|
|
1003
|
+
"schema": {
|
|
1004
|
+
"const": "GET, HEAD"
|
|
1005
|
+
}
|
|
1006
|
+
}
|
|
1007
|
+
}
|
|
1008
|
+
},
|
|
1009
|
+
"406": {
|
|
1010
|
+
"description": "unsupported_format: unsupported or unavailable representation format.",
|
|
1011
|
+
"headers": {
|
|
1012
|
+
"Cache-Control": {
|
|
1013
|
+
"schema": {
|
|
1014
|
+
"const": "no-store"
|
|
1015
|
+
}
|
|
1016
|
+
}
|
|
1017
|
+
}
|
|
1018
|
+
},
|
|
1019
|
+
"409": {
|
|
1020
|
+
"description": "stale_revision: revision unavailable, or source bytes no longer match the pinned snapshot.",
|
|
1021
|
+
"headers": {
|
|
1022
|
+
"Cache-Control": {
|
|
1023
|
+
"schema": {
|
|
1024
|
+
"const": "no-store"
|
|
1025
|
+
}
|
|
1026
|
+
}
|
|
1027
|
+
}
|
|
1028
|
+
},
|
|
1029
|
+
"500": {
|
|
1030
|
+
"description": "internal_error: the source could not complete the request.",
|
|
1031
|
+
"headers": {
|
|
1032
|
+
"Cache-Control": {
|
|
1033
|
+
"schema": {
|
|
1034
|
+
"const": "no-store"
|
|
1035
|
+
}
|
|
1036
|
+
}
|
|
1037
|
+
}
|
|
1038
|
+
}
|
|
1039
|
+
}
|
|
1040
|
+
}
|
|
1041
|
+
}
|
|
1042
|
+
},
|
|
1043
|
+
"components": {
|
|
1044
|
+
"schemas": {
|
|
1045
|
+
"digest": {
|
|
1046
|
+
"type": "string",
|
|
1047
|
+
"pattern": "^[a-f0-9]{64}$"
|
|
1048
|
+
},
|
|
1049
|
+
"path": {
|
|
1050
|
+
"type": "string",
|
|
1051
|
+
"pattern": "^(?:NOTICES\\.txt|(?:content|assets)/(?!\\.{1,2}(?:/|$))[A-Za-z0-9_.-]+(?:/(?!\\.{1,2}(?:/|$))[A-Za-z0-9_.-]+)*)$"
|
|
1052
|
+
},
|
|
1053
|
+
"publication": {
|
|
1054
|
+
"type": "object",
|
|
1055
|
+
"additionalProperties": false,
|
|
1056
|
+
"required": [
|
|
1057
|
+
"channel",
|
|
1058
|
+
"version",
|
|
1059
|
+
"language"
|
|
1060
|
+
],
|
|
1061
|
+
"properties": {
|
|
1062
|
+
"channel": {
|
|
1063
|
+
"type": "string",
|
|
1064
|
+
"minLength": 1
|
|
1065
|
+
},
|
|
1066
|
+
"version": {
|
|
1067
|
+
"type": "string",
|
|
1068
|
+
"minLength": 1
|
|
1069
|
+
},
|
|
1070
|
+
"language": {
|
|
1071
|
+
"type": "string",
|
|
1072
|
+
"minLength": 1
|
|
1073
|
+
}
|
|
1074
|
+
}
|
|
1075
|
+
},
|
|
1076
|
+
"file": {
|
|
1077
|
+
"type": "object",
|
|
1078
|
+
"required": [
|
|
1079
|
+
"path",
|
|
1080
|
+
"bytes",
|
|
1081
|
+
"digest"
|
|
1082
|
+
],
|
|
1083
|
+
"properties": {
|
|
1084
|
+
"path": {
|
|
1085
|
+
"$ref": "#/components/schemas/path"
|
|
1086
|
+
},
|
|
1087
|
+
"bytes": {
|
|
1088
|
+
"type": "integer",
|
|
1089
|
+
"minimum": 0
|
|
1090
|
+
},
|
|
1091
|
+
"digest": {
|
|
1092
|
+
"$ref": "#/components/schemas/digest"
|
|
1093
|
+
}
|
|
1094
|
+
},
|
|
1095
|
+
"additionalProperties": false
|
|
1096
|
+
},
|
|
1097
|
+
"asset": {
|
|
1098
|
+
"type": "object",
|
|
1099
|
+
"required": [
|
|
1100
|
+
"path",
|
|
1101
|
+
"bytes",
|
|
1102
|
+
"digest",
|
|
1103
|
+
"mediaType"
|
|
1104
|
+
],
|
|
1105
|
+
"properties": {
|
|
1106
|
+
"path": {
|
|
1107
|
+
"$ref": "#/components/schemas/path"
|
|
1108
|
+
},
|
|
1109
|
+
"bytes": {
|
|
1110
|
+
"type": "integer",
|
|
1111
|
+
"minimum": 0
|
|
1112
|
+
},
|
|
1113
|
+
"digest": {
|
|
1114
|
+
"$ref": "#/components/schemas/digest"
|
|
1115
|
+
},
|
|
1116
|
+
"mediaType": {
|
|
1117
|
+
"type": "string"
|
|
1118
|
+
}
|
|
1119
|
+
},
|
|
1120
|
+
"additionalProperties": false
|
|
1121
|
+
},
|
|
1122
|
+
"representation": {
|
|
1123
|
+
"type": "object",
|
|
1124
|
+
"required": [
|
|
1125
|
+
"path",
|
|
1126
|
+
"bytes",
|
|
1127
|
+
"digest",
|
|
1128
|
+
"mediaType",
|
|
1129
|
+
"anchors",
|
|
1130
|
+
"links"
|
|
1131
|
+
],
|
|
1132
|
+
"properties": {
|
|
1133
|
+
"path": {
|
|
1134
|
+
"$ref": "#/components/schemas/path"
|
|
1135
|
+
},
|
|
1136
|
+
"bytes": {
|
|
1137
|
+
"type": "integer",
|
|
1138
|
+
"minimum": 0
|
|
1139
|
+
},
|
|
1140
|
+
"digest": {
|
|
1141
|
+
"$ref": "#/components/schemas/digest"
|
|
1142
|
+
},
|
|
1143
|
+
"mediaType": {
|
|
1144
|
+
"type": "string"
|
|
1145
|
+
},
|
|
1146
|
+
"anchors": {
|
|
1147
|
+
"type": "array",
|
|
1148
|
+
"items": {
|
|
1149
|
+
"type": "object",
|
|
1150
|
+
"additionalProperties": false,
|
|
1151
|
+
"required": [
|
|
1152
|
+
"id",
|
|
1153
|
+
"exportedId"
|
|
1154
|
+
],
|
|
1155
|
+
"properties": {
|
|
1156
|
+
"id": {
|
|
1157
|
+
"type": "string"
|
|
1158
|
+
},
|
|
1159
|
+
"exportedId": {
|
|
1160
|
+
"type": "string"
|
|
1161
|
+
},
|
|
1162
|
+
"title": {
|
|
1163
|
+
"type": "string"
|
|
1164
|
+
}
|
|
1165
|
+
}
|
|
1166
|
+
}
|
|
1167
|
+
},
|
|
1168
|
+
"links": {
|
|
1169
|
+
"type": "array",
|
|
1170
|
+
"items": {
|
|
1171
|
+
"oneOf": [
|
|
1172
|
+
{
|
|
1173
|
+
"type": "object",
|
|
1174
|
+
"additionalProperties": false,
|
|
1175
|
+
"required": [
|
|
1176
|
+
"key",
|
|
1177
|
+
"kind",
|
|
1178
|
+
"href",
|
|
1179
|
+
"ref"
|
|
1180
|
+
],
|
|
1181
|
+
"properties": {
|
|
1182
|
+
"key": {
|
|
1183
|
+
"type": "string"
|
|
1184
|
+
},
|
|
1185
|
+
"kind": {
|
|
1186
|
+
"enum": [
|
|
1187
|
+
"resource"
|
|
1188
|
+
]
|
|
1189
|
+
},
|
|
1190
|
+
"href": {
|
|
1191
|
+
"type": "string"
|
|
1192
|
+
},
|
|
1193
|
+
"fragment": {
|
|
1194
|
+
"type": "string"
|
|
1195
|
+
},
|
|
1196
|
+
"query": {
|
|
1197
|
+
"type": "string"
|
|
1198
|
+
},
|
|
1199
|
+
"ref": {
|
|
1200
|
+
"$ref": "#/components/schemas/contentRef"
|
|
1201
|
+
}
|
|
1202
|
+
}
|
|
1203
|
+
},
|
|
1204
|
+
{
|
|
1205
|
+
"type": "object",
|
|
1206
|
+
"additionalProperties": false,
|
|
1207
|
+
"required": [
|
|
1208
|
+
"key",
|
|
1209
|
+
"kind",
|
|
1210
|
+
"href",
|
|
1211
|
+
"asset"
|
|
1212
|
+
],
|
|
1213
|
+
"properties": {
|
|
1214
|
+
"key": {
|
|
1215
|
+
"type": "string"
|
|
1216
|
+
},
|
|
1217
|
+
"kind": {
|
|
1218
|
+
"enum": [
|
|
1219
|
+
"asset"
|
|
1220
|
+
]
|
|
1221
|
+
},
|
|
1222
|
+
"href": {
|
|
1223
|
+
"type": "string"
|
|
1224
|
+
},
|
|
1225
|
+
"fragment": {
|
|
1226
|
+
"type": "string"
|
|
1227
|
+
},
|
|
1228
|
+
"query": {
|
|
1229
|
+
"type": "string"
|
|
1230
|
+
},
|
|
1231
|
+
"asset": {
|
|
1232
|
+
"$ref": "#/components/schemas/path"
|
|
1233
|
+
}
|
|
1234
|
+
}
|
|
1235
|
+
},
|
|
1236
|
+
{
|
|
1237
|
+
"type": "object",
|
|
1238
|
+
"additionalProperties": false,
|
|
1239
|
+
"required": [
|
|
1240
|
+
"key",
|
|
1241
|
+
"kind",
|
|
1242
|
+
"href"
|
|
1243
|
+
],
|
|
1244
|
+
"properties": {
|
|
1245
|
+
"key": {
|
|
1246
|
+
"type": "string"
|
|
1247
|
+
},
|
|
1248
|
+
"kind": {
|
|
1249
|
+
"enum": [
|
|
1250
|
+
"canonical",
|
|
1251
|
+
"external"
|
|
1252
|
+
]
|
|
1253
|
+
},
|
|
1254
|
+
"href": {
|
|
1255
|
+
"type": "string"
|
|
1256
|
+
},
|
|
1257
|
+
"fragment": {
|
|
1258
|
+
"type": "string"
|
|
1259
|
+
},
|
|
1260
|
+
"query": {
|
|
1261
|
+
"type": "string"
|
|
1262
|
+
}
|
|
1263
|
+
}
|
|
1264
|
+
}
|
|
1265
|
+
]
|
|
1266
|
+
}
|
|
1267
|
+
}
|
|
1268
|
+
},
|
|
1269
|
+
"additionalProperties": false
|
|
1270
|
+
},
|
|
1271
|
+
"contentRef": {
|
|
1272
|
+
"oneOf": [
|
|
1273
|
+
{
|
|
1274
|
+
"type": "object",
|
|
1275
|
+
"additionalProperties": false,
|
|
1276
|
+
"required": [
|
|
1277
|
+
"kind",
|
|
1278
|
+
"documentId"
|
|
1279
|
+
],
|
|
1280
|
+
"properties": {
|
|
1281
|
+
"kind": {
|
|
1282
|
+
"const": "page"
|
|
1283
|
+
},
|
|
1284
|
+
"documentId": {
|
|
1285
|
+
"type": "string",
|
|
1286
|
+
"minLength": 1
|
|
1287
|
+
}
|
|
1288
|
+
}
|
|
1289
|
+
},
|
|
1290
|
+
{
|
|
1291
|
+
"type": "object",
|
|
1292
|
+
"additionalProperties": false,
|
|
1293
|
+
"required": [
|
|
1294
|
+
"kind",
|
|
1295
|
+
"documentId",
|
|
1296
|
+
"sectionId"
|
|
1297
|
+
],
|
|
1298
|
+
"properties": {
|
|
1299
|
+
"kind": {
|
|
1300
|
+
"const": "section"
|
|
1301
|
+
},
|
|
1302
|
+
"documentId": {
|
|
1303
|
+
"type": "string",
|
|
1304
|
+
"minLength": 1
|
|
1305
|
+
},
|
|
1306
|
+
"sectionId": {
|
|
1307
|
+
"type": "string",
|
|
1308
|
+
"pattern": "^[a-z0-9][a-z0-9-]{0,511}$"
|
|
1309
|
+
}
|
|
1310
|
+
}
|
|
1311
|
+
},
|
|
1312
|
+
{
|
|
1313
|
+
"type": "object",
|
|
1314
|
+
"additionalProperties": false,
|
|
1315
|
+
"required": [
|
|
1316
|
+
"kind",
|
|
1317
|
+
"id"
|
|
1318
|
+
],
|
|
1319
|
+
"properties": {
|
|
1320
|
+
"kind": {
|
|
1321
|
+
"const": "snippet"
|
|
1322
|
+
},
|
|
1323
|
+
"id": {
|
|
1324
|
+
"type": "string",
|
|
1325
|
+
"pattern": "^[A-Za-z_][A-Za-z0-9_.-]*$"
|
|
1326
|
+
}
|
|
1327
|
+
}
|
|
1328
|
+
}
|
|
1329
|
+
]
|
|
1330
|
+
},
|
|
1331
|
+
"ContentResource": {
|
|
1332
|
+
"type": "object",
|
|
1333
|
+
"additionalProperties": false,
|
|
1334
|
+
"required": [
|
|
1335
|
+
"ref",
|
|
1336
|
+
"publication",
|
|
1337
|
+
"title",
|
|
1338
|
+
"summary",
|
|
1339
|
+
"type",
|
|
1340
|
+
"representations",
|
|
1341
|
+
"assets",
|
|
1342
|
+
"externalDependencies"
|
|
1343
|
+
],
|
|
1344
|
+
"properties": {
|
|
1345
|
+
"publication": {
|
|
1346
|
+
"$ref": "#/components/schemas/publication"
|
|
1347
|
+
},
|
|
1348
|
+
"title": {
|
|
1349
|
+
"type": "string"
|
|
1350
|
+
},
|
|
1351
|
+
"summary": {
|
|
1352
|
+
"type": "string"
|
|
1353
|
+
},
|
|
1354
|
+
"type": {
|
|
1355
|
+
"type": "string"
|
|
1356
|
+
},
|
|
1357
|
+
"canonicalUrl": {
|
|
1358
|
+
"type": "string",
|
|
1359
|
+
"format": "uri"
|
|
1360
|
+
},
|
|
1361
|
+
"representations": {
|
|
1362
|
+
"type": "object",
|
|
1363
|
+
"minProperties": 1,
|
|
1364
|
+
"additionalProperties": false,
|
|
1365
|
+
"properties": {
|
|
1366
|
+
"html": {
|
|
1367
|
+
"$ref": "#/components/schemas/representation"
|
|
1368
|
+
},
|
|
1369
|
+
"markdown": {
|
|
1370
|
+
"$ref": "#/components/schemas/representation"
|
|
1371
|
+
}
|
|
1372
|
+
}
|
|
1373
|
+
},
|
|
1374
|
+
"assets": {
|
|
1375
|
+
"type": "array",
|
|
1376
|
+
"uniqueItems": true,
|
|
1377
|
+
"items": {
|
|
1378
|
+
"$ref": "#/components/schemas/path"
|
|
1379
|
+
}
|
|
1380
|
+
},
|
|
1381
|
+
"externalDependencies": {
|
|
1382
|
+
"type": "array",
|
|
1383
|
+
"items": {
|
|
1384
|
+
"type": "object",
|
|
1385
|
+
"additionalProperties": false,
|
|
1386
|
+
"required": [
|
|
1387
|
+
"url",
|
|
1388
|
+
"kind"
|
|
1389
|
+
],
|
|
1390
|
+
"properties": {
|
|
1391
|
+
"url": {
|
|
1392
|
+
"type": "string",
|
|
1393
|
+
"format": "uri"
|
|
1394
|
+
},
|
|
1395
|
+
"kind": {
|
|
1396
|
+
"const": "image"
|
|
1397
|
+
}
|
|
1398
|
+
}
|
|
1399
|
+
}
|
|
1400
|
+
},
|
|
1401
|
+
"ref": {
|
|
1402
|
+
"$ref": "#/components/schemas/contentRef"
|
|
1403
|
+
},
|
|
1404
|
+
"source": {
|
|
1405
|
+
"type": "object",
|
|
1406
|
+
"additionalProperties": false,
|
|
1407
|
+
"minProperties": 1,
|
|
1408
|
+
"properties": {
|
|
1409
|
+
"documentId": {
|
|
1410
|
+
"type": "string",
|
|
1411
|
+
"minLength": 1
|
|
1412
|
+
},
|
|
1413
|
+
"snippetId": {
|
|
1414
|
+
"type": "string",
|
|
1415
|
+
"minLength": 1
|
|
1416
|
+
},
|
|
1417
|
+
"valuesDigest": {
|
|
1418
|
+
"$ref": "#/components/schemas/digest"
|
|
1419
|
+
}
|
|
1420
|
+
}
|
|
1421
|
+
}
|
|
1422
|
+
}
|
|
1423
|
+
},
|
|
1424
|
+
"ResourceKey": {
|
|
1425
|
+
"type": "string",
|
|
1426
|
+
"pattern": "^k_[A-Za-z0-9_-]+$",
|
|
1427
|
+
"description": "Opaque stable typed-reference key. Use the returned key. It is k_ followed by unpadded base64url of UTF-8 JSON for [\"page\",documentId], [\"section\",documentId,sectionId], or [\"snippet\",id]. Publication and revision are separate selectors."
|
|
1428
|
+
},
|
|
1429
|
+
"Error": {
|
|
1430
|
+
"type": "object",
|
|
1431
|
+
"additionalProperties": false,
|
|
1432
|
+
"required": [
|
|
1433
|
+
"error"
|
|
1434
|
+
],
|
|
1435
|
+
"properties": {
|
|
1436
|
+
"error": {
|
|
1437
|
+
"type": "object",
|
|
1438
|
+
"additionalProperties": false,
|
|
1439
|
+
"required": [
|
|
1440
|
+
"code",
|
|
1441
|
+
"message"
|
|
1442
|
+
],
|
|
1443
|
+
"properties": {
|
|
1444
|
+
"code": {
|
|
1445
|
+
"enum": [
|
|
1446
|
+
"invalid_request",
|
|
1447
|
+
"not_found",
|
|
1448
|
+
"unsupported_format",
|
|
1449
|
+
"stale_revision",
|
|
1450
|
+
"method_not_allowed",
|
|
1451
|
+
"internal_error"
|
|
1452
|
+
]
|
|
1453
|
+
},
|
|
1454
|
+
"message": {
|
|
1455
|
+
"type": "string"
|
|
1456
|
+
}
|
|
1457
|
+
}
|
|
1458
|
+
}
|
|
1459
|
+
}
|
|
1460
|
+
},
|
|
1461
|
+
"ResourceEntry": {
|
|
1462
|
+
"type": "object",
|
|
1463
|
+
"additionalProperties": false,
|
|
1464
|
+
"required": [
|
|
1465
|
+
"key",
|
|
1466
|
+
"resource"
|
|
1467
|
+
],
|
|
1468
|
+
"properties": {
|
|
1469
|
+
"key": {
|
|
1470
|
+
"$ref": "#/components/schemas/ResourceKey"
|
|
1471
|
+
},
|
|
1472
|
+
"resource": {
|
|
1473
|
+
"$ref": "#/components/schemas/ContentResource"
|
|
1474
|
+
}
|
|
1475
|
+
}
|
|
1476
|
+
},
|
|
1477
|
+
"ResourceList": {
|
|
1478
|
+
"type": "object",
|
|
1479
|
+
"additionalProperties": false,
|
|
1480
|
+
"required": [
|
|
1481
|
+
"schemaVersion",
|
|
1482
|
+
"revision",
|
|
1483
|
+
"publication",
|
|
1484
|
+
"resources"
|
|
1485
|
+
],
|
|
1486
|
+
"properties": {
|
|
1487
|
+
"schemaVersion": {
|
|
1488
|
+
"const": 1
|
|
1489
|
+
},
|
|
1490
|
+
"revision": {
|
|
1491
|
+
"$ref": "#/components/schemas/digest"
|
|
1492
|
+
},
|
|
1493
|
+
"publication": {
|
|
1494
|
+
"$ref": "#/components/schemas/publication"
|
|
1495
|
+
},
|
|
1496
|
+
"resources": {
|
|
1497
|
+
"type": "array",
|
|
1498
|
+
"items": {
|
|
1499
|
+
"$ref": "#/components/schemas/ResourceEntry"
|
|
1500
|
+
}
|
|
1501
|
+
}
|
|
1502
|
+
}
|
|
1503
|
+
},
|
|
1504
|
+
"ResourceMetadata": {
|
|
1505
|
+
"type": "object",
|
|
1506
|
+
"additionalProperties": false,
|
|
1507
|
+
"required": [
|
|
1508
|
+
"schemaVersion",
|
|
1509
|
+
"revision",
|
|
1510
|
+
"publication",
|
|
1511
|
+
"key",
|
|
1512
|
+
"resource"
|
|
1513
|
+
],
|
|
1514
|
+
"properties": {
|
|
1515
|
+
"schemaVersion": {
|
|
1516
|
+
"const": 1
|
|
1517
|
+
},
|
|
1518
|
+
"revision": {
|
|
1519
|
+
"$ref": "#/components/schemas/digest"
|
|
1520
|
+
},
|
|
1521
|
+
"publication": {
|
|
1522
|
+
"$ref": "#/components/schemas/publication"
|
|
1523
|
+
},
|
|
1524
|
+
"key": {
|
|
1525
|
+
"$ref": "#/components/schemas/ResourceKey"
|
|
1526
|
+
},
|
|
1527
|
+
"resource": {
|
|
1528
|
+
"$ref": "#/components/schemas/ContentResource"
|
|
1529
|
+
}
|
|
1530
|
+
}
|
|
1531
|
+
}
|
|
1532
|
+
},
|
|
1533
|
+
"parameters": {
|
|
1534
|
+
"channel": {
|
|
1535
|
+
"name": "channel",
|
|
1536
|
+
"in": "query",
|
|
1537
|
+
"required": true,
|
|
1538
|
+
"description": "Exact publication channel. No default or fallback.",
|
|
1539
|
+
"example": "production",
|
|
1540
|
+
"schema": {
|
|
1541
|
+
"type": "string",
|
|
1542
|
+
"minLength": 1,
|
|
1543
|
+
"maxLength": 2048
|
|
1544
|
+
}
|
|
1545
|
+
},
|
|
1546
|
+
"version": {
|
|
1547
|
+
"name": "version",
|
|
1548
|
+
"in": "query",
|
|
1549
|
+
"required": true,
|
|
1550
|
+
"description": "Exact publication version. No default or fallback.",
|
|
1551
|
+
"example": "current",
|
|
1552
|
+
"schema": {
|
|
1553
|
+
"type": "string",
|
|
1554
|
+
"minLength": 1,
|
|
1555
|
+
"maxLength": 2048
|
|
1556
|
+
}
|
|
1557
|
+
},
|
|
1558
|
+
"language": {
|
|
1559
|
+
"name": "language",
|
|
1560
|
+
"in": "query",
|
|
1561
|
+
"required": true,
|
|
1562
|
+
"description": "Exact publication language. No default or fallback.",
|
|
1563
|
+
"example": "en",
|
|
1564
|
+
"schema": {
|
|
1565
|
+
"type": "string",
|
|
1566
|
+
"minLength": 1,
|
|
1567
|
+
"maxLength": 2048
|
|
1568
|
+
}
|
|
1569
|
+
},
|
|
1570
|
+
"revision": {
|
|
1571
|
+
"name": "revision",
|
|
1572
|
+
"in": "query",
|
|
1573
|
+
"required": true,
|
|
1574
|
+
"description": "Exact revision returned by the list endpoint. A different revision returns 409; it never silently reads newer content.",
|
|
1575
|
+
"schema": {
|
|
1576
|
+
"$ref": "#/components/schemas/digest"
|
|
1577
|
+
},
|
|
1578
|
+
"example": "0770e6d70db51967fac8dcc7bb4ff5a5bff87378eb2e2bbb63dea93d090c82e8"
|
|
1579
|
+
},
|
|
1580
|
+
"optionalRevision": {
|
|
1581
|
+
"name": "revision",
|
|
1582
|
+
"in": "query",
|
|
1583
|
+
"required": false,
|
|
1584
|
+
"description": "Omit to discover the currently supplied snapshot. Supply to require that exact revision.",
|
|
1585
|
+
"schema": {
|
|
1586
|
+
"$ref": "#/components/schemas/digest"
|
|
1587
|
+
},
|
|
1588
|
+
"example": "0770e6d70db51967fac8dcc7bb4ff5a5bff87378eb2e2bbb63dea93d090c82e8"
|
|
1589
|
+
},
|
|
1590
|
+
"key": {
|
|
1591
|
+
"name": "key",
|
|
1592
|
+
"in": "path",
|
|
1593
|
+
"required": true,
|
|
1594
|
+
"schema": {
|
|
1595
|
+
"$ref": "#/components/schemas/ResourceKey"
|
|
1596
|
+
},
|
|
1597
|
+
"example": "k_WyJwYWdlIiwiZ3VpZGUuYmlsbGluZyJd"
|
|
1598
|
+
},
|
|
1599
|
+
"format": {
|
|
1600
|
+
"name": "format",
|
|
1601
|
+
"in": "path",
|
|
1602
|
+
"required": true,
|
|
1603
|
+
"schema": {
|
|
1604
|
+
"type": "string",
|
|
1605
|
+
"enum": [
|
|
1606
|
+
"html",
|
|
1607
|
+
"markdown"
|
|
1608
|
+
]
|
|
1609
|
+
},
|
|
1610
|
+
"example": "markdown"
|
|
1611
|
+
},
|
|
1612
|
+
"ifNoneMatch": {
|
|
1613
|
+
"name": "If-None-Match",
|
|
1614
|
+
"in": "header",
|
|
1615
|
+
"required": false,
|
|
1616
|
+
"description": "An ETag, comma-separated ETags, or *. Weak comparison is supported for GET and HEAD.",
|
|
1617
|
+
"schema": {
|
|
1618
|
+
"type": "string"
|
|
1619
|
+
}
|
|
1620
|
+
}
|
|
1621
|
+
}
|
|
1622
|
+
},
|
|
1623
|
+
"externalDocs": {
|
|
1624
|
+
"description": "HTTP conditional request semantics",
|
|
1625
|
+
"url": "https://www.rfc-editor.org/rfc/rfc9110.html#name-if-none-match"
|
|
1626
|
+
}
|
|
1627
|
+
}
|