← Files YCloud Developer KitARCHIVED FILE
references/capability-manifest.schema.json
9.87 KB · Oct 3, 2026 · 06:33 UTC
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://ycloud.com/schemas/developer-kit/capability-manifest-v3.json",
"title": "YCloud Developer Kit capability manifest",
"type": "object",
"additionalProperties": false,
"required": [
"$schema", "schemaVersion", "manifestVersion", "coverageProfile", "api",
"provenance", "coverage", "domains", "crosscuttingCapabilities", "operations", "messageTypes",
"messageConditionalRules", "templateContracts", "webhooks",
"runtimeSemantics", "publicSources", "unknowns"
],
"properties": {
"$schema": {"const": "./capability-manifest.schema.json"},
"schemaVersion": {"const": 3},
"manifestVersion": {"type": "string", "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$"},
"coverageProfile": {"const": "full-supported-operations-v1"},
"api": {
"type": "object",
"additionalProperties": false,
"required": ["openapiVersion", "apiVersion"],
"properties": {
"openapiVersion": {"const": "3.0.0"},
"apiVersion": {"const": "v2"}
}
},
"provenance": {
"type": "object",
"additionalProperties": false,
"required": ["canonicalRepository", "canonicalPath", "canonicalRevision", "pluginVersion", "snapshotSha256", "normalizedOpenapiSha256", "scopeOverlaySha256", "publicDocsFactsSha256", "publicDocsRetrievedAt"],
"properties": {
"canonicalRepository": {"type": "string", "minLength": 1},
"canonicalPath": {"type": "string", "minLength": 1},
"canonicalRevision": {"type": "string", "pattern": "^[0-9a-f]{40}$"},
"pluginVersion": {"type": "string", "minLength": 1},
"snapshotSha256": {"$ref": "#/$defs/sha256"},
"normalizedOpenapiSha256": {"$ref": "#/$defs/sha256"},
"scopeOverlaySha256": {"$ref": "#/$defs/sha256"},
"publicDocsFactsSha256": {"$ref": "#/$defs/sha256"},
"publicDocsRetrievedAt": {"type": "string", "format": "date"}
}
},
"coverage": {
"type": "object",
"additionalProperties": false,
"required": [
"operations", "firstWaveOperations", "secondWaveOperations", "thirdWaveOperations", "coveredOperations",
"futureOperations", "excludedOperations", "messageTypes", "templateComponentTypes",
"templateHeaderFormats", "templateButtonTypes", "webhookEvents",
"crosscuttingCapabilities", "firstWaveCapabilities", "coveredCapabilities",
"coverageRows", "webhookPayloads", "status", "exclusions"
],
"properties": {
"operations": {"const": 95},
"firstWaveOperations": {"const": 17},
"secondWaveOperations": {"const": 43},
"thirdWaveOperations": {"const": 28},
"coveredOperations": {"const": 88},
"futureOperations": {"const": 0},
"excludedOperations": {"const": 7},
"messageTypes": {"const": 11},
"templateComponentTypes": {"const": 7},
"templateHeaderFormats": {"const": 6},
"templateButtonTypes": {"const": 10},
"webhookEvents": {"const": 38},
"crosscuttingCapabilities": {"const": 2},
"firstWaveCapabilities": {"const": 19},
"coveredCapabilities": {"const": 90},
"coverageRows": {"const": 90},
"webhookPayloads": {
"type": "object",
"additionalProperties": false,
"required": ["typed", "shared", "unmodeled"],
"properties": {
"typed": {"const": 31},
"shared": {"const": 1},
"unmodeled": {"const": 6}
}
},
"status": {"const": "partial"},
"exclusions": {
"type": "array",
"minItems": 1,
"maxItems": 1,
"prefixItems": [
{"const": "7 OpenAPI operations are excluded by product decision; this is not provider deprecation."}
],
"items": false
}
}
},
"domains": {"type": "array", "items": {"type": "object"}},
"crosscuttingCapabilities": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "object",
"additionalProperties": false,
"required": ["capabilityId", "kind", "owner", "domain", "requiredSurfaces", "wave"],
"properties": {
"capabilityId": {"enum": ["crosscutting:api-authentication", "crosscutting:webhook-receiver"]},
"kind": {"enum": ["authentication", "webhook-receiver"]},
"owner": {"enum": ["ycloud-api-authentication", "ycloud-webhook-endpoints"]},
"domain": {"enum": ["authentication", "webhook-receiver"]},
"requiredSurfaces": {
"type": "array",
"minItems": 2,
"uniqueItems": true,
"items": {"enum": ["backend", "ui", "tests"]}
},
"wave": {"const": "first-wave"}
}
}
},
"operations": {
"type": "array",
"minItems": 95,
"maxItems": 95,
"items": {
"type": "object",
"additionalProperties": false,
"required": ["operationId", "method", "path", "tags", "wave", "roadmapStatus", "domainOwner", "sideEffect", "securitySchemes", "request", "declaredResponses", "sourcePointer"],
"properties": {
"operationId": {"type": "string", "minLength": 1},
"method": {"enum": ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS", "HEAD", "TRACE"]},
"path": {"type": "string", "pattern": "^/"},
"tags": {"type": "array", "items": {"type": "string"}},
"wave": {"enum": ["first-wave", "second-wave", "third-wave", "future", "excluded-by-product-decision"]},
"roadmapStatus": {"enum": ["covered", "future", "excluded-by-product-decision"]},
"exclusionReason": {"const": "Excluded from Developer Kit scope by product decision; the provider API remains available and is not deprecated."},
"domainOwner": {"type": "string", "minLength": 1},
"sideEffect": {"enum": ["read", "create", "update", "delete", "rotate", "send", "upload"]},
"securitySchemes": {"type": "array", "items": {"type": "string"}},
"request": {"type": ["object", "null"]},
"declaredResponses": {"type": "array", "items": {"type": "object"}},
"sourcePointer": {"type": "string", "pattern": "^#/paths/"}
},
"allOf": [
{
"if": {"properties": {"wave": {"const": "excluded-by-product-decision"}}, "required": ["wave"]},
"then": {
"properties": {"roadmapStatus": {"const": "excluded-by-product-decision"}},
"required": ["exclusionReason"]
},
"else": {"not": {"required": ["exclusionReason"]}}
},
{
"if": {"properties": {"wave": {"const": "future"}}, "required": ["wave"]},
"then": {"properties": {"roadmapStatus": {"const": "future"}}}
},
{
"if": {"properties": {"wave": {"enum": ["first-wave", "second-wave", "third-wave"]}}, "required": ["wave"]},
"then": {"properties": {"roadmapStatus": {"const": "covered"}}}
}
]
}
},
"messageTypes": {
"type": "array",
"minItems": 11,
"maxItems": 11,
"items": {
"type": "object",
"required": ["type", "payloadProperty", "payloadSchemaRef", "supportedOperations", "sourcePointers", "coverageStatus"],
"properties": {
"coverageStatus": {"const": "modeled"},
"type": {"type": "string"},
"payloadProperty": {"type": "string"},
"payloadSchemaRef": {"type": "string", "pattern": "^#/components/schemas/"},
"supportedOperations": {"type": "array", "items": {"type": "string"}},
"sourcePointers": {"type": "array", "items": {"type": "string"}}
}
}
},
"messageConditionalRules": {"type": "array", "items": {"type": "object"}},
"templateContracts": {
"type": "object",
"required": ["componentTypes", "headerFormats", "buttonTypes", "sourcePointers"],
"properties": {
"componentTypes": {"type": "array", "minItems": 7, "maxItems": 7, "items": {"type": "string"}},
"headerFormats": {"type": "array", "minItems": 6, "maxItems": 6, "items": {"type": "string"}},
"buttonTypes": {"type": "array", "minItems": 10, "maxItems": 10, "items": {"type": "string"}},
"sourcePointers": {"type": "array", "items": {"type": "string"}}
}
},
"webhooks": {
"type": "object",
"required": ["commonEnvelopeSchemaRef", "events"],
"properties": {
"commonEnvelopeSchemaRef": {"const": "#/components/schemas/Event"},
"events": {
"type": "array",
"minItems": 38,
"maxItems": 38,
"items": {
"type": "object",
"required": ["eventType", "payloadCoverage", "payloads", "reason", "sourcePointers"],
"properties": {
"eventType": {"type": "string"},
"payloadCoverage": {"enum": ["typed", "shared", "unmodeled"]},
"payloads": {"type": "array", "items": {"type": "object"}},
"reason": {"type": "string", "minLength": 1},
"sourcePointers": {"type": "array", "items": {"type": "string"}}
}
}
}
}
},
"runtimeSemantics": {
"type": "array",
"items": {
"type": "object",
"required": ["id", "authority", "kind", "appliesTo", "value", "sourceRefs"],
"properties": {
"id": {"type": "string"},
"authority": {"enum": ["provider-contract", "developer-kit-policy", "unknown"]},
"kind": {"type": "string"},
"appliesTo": {"type": "array", "items": {"type": "string"}},
"value": {"type": "string"},
"sourceRefs": {"type": "array", "items": {"type": "string"}}
}
}
},
"publicSources": {"type": "object"},
"unknowns": {"type": "array", "items": {"type": "string"}}
},
"$defs": {
"sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"}
}
}
SHA-256: d9543cf8196861dda6fe6040f6bca8540073b2a2034f775c08250166a21c7270