Skip to content

madoo.media-policy/v1

Madoo media policy — Deterministic technical constraints evaluated against media facts.

Reference madoo.media-policy/v1
Schema id urn:madoo:schema:media-policy:v1
Version 1.0.0
Served at GET /api/v1/json-schemas/madoo.media-policy/v1 · MCP get_json_schema
  • Read by: media/technical_info → policy
  • Saved in the parameter: media/technical_info → policy
Field Type Required Rules Description
schema "madoo.media-policy/v1" yes
policyId string yes min length 1; max length 128
allowedMediaKinds array or null min items 1
allowedContentTypes array or null min items 1
maximumSizeBytes integer or null ≥ 1
minimumDurationMilliseconds integer or null ≥ 0
maximumDurationMilliseconds integer or null ≥ 0
minimumWidth integer or null ≥ 1
maximumWidth integer or null ≥ 1
minimumHeight integer or null ≥ 1
maximumHeight integer or null ≥ 1
allowedVideoCodecs array or null min items 1
minimumFrameRate number or null > 0
maximumFrameRate number or null > 0
allowedRotationDegrees array or null min items 1
requireAudio boolean or null
minimumAudioStreams integer or null ≥ 0; ≤ 64
maximumAudioStreams integer or null ≥ 0; ≤ 64
allowedAudioCodecs array or null min items 1
allowedChannelCounts array or null min items 1
minimumSampleRateHz integer or null ≥ 1
madoo.media-policy/v1 (JSON Schema)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "urn:madoo:schema:media-policy:v1",
"title": "Madoo Media Policy v1",
"description": "Deterministic constraints evaluated against Madoo media technical facts.",
"type": "object",
"required": [
"schema",
"policyId"
],
"properties": {
"schema": {
"const": "madoo.media-policy/v1"
},
"policyId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"allowedMediaKinds": {
"type": [
"array",
"null"
],
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"image",
"audio",
"video"
]
}
},
"allowedContentTypes": {
"type": [
"array",
"null"
],
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 255
}
},
"maximumSizeBytes": {
"type": [
"integer",
"null"
],
"minimum": 1
},
"minimumDurationMilliseconds": {
"type": [
"integer",
"null"
],
"minimum": 0
},
"maximumDurationMilliseconds": {
"type": [
"integer",
"null"
],
"minimum": 0
},
"minimumWidth": {
"type": [
"integer",
"null"
],
"minimum": 1
},
"maximumWidth": {
"type": [
"integer",
"null"
],
"minimum": 1
},
"minimumHeight": {
"type": [
"integer",
"null"
],
"minimum": 1
},
"maximumHeight": {
"type": [
"integer",
"null"
],
"minimum": 1
},
"allowedVideoCodecs": {
"type": [
"array",
"null"
],
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"minimumFrameRate": {
"type": [
"number",
"null"
],
"exclusiveMinimum": 0
},
"maximumFrameRate": {
"type": [
"number",
"null"
],
"exclusiveMinimum": 0
},
"allowedRotationDegrees": {
"type": [
"array",
"null"
],
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "integer",
"enum": [
0,
90,
180,
270
]
}
},
"requireAudio": {
"type": [
"boolean",
"null"
]
},
"minimumAudioStreams": {
"type": [
"integer",
"null"
],
"minimum": 0,
"maximum": 64
},
"maximumAudioStreams": {
"type": [
"integer",
"null"
],
"minimum": 0,
"maximum": 64
},
"allowedAudioCodecs": {
"type": [
"array",
"null"
],
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"allowedChannelCounts": {
"type": [
"array",
"null"
],
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "integer",
"minimum": 1,
"maximum": 64
}
},
"minimumSampleRateHz": {
"type": [
"integer",
"null"
],
"minimum": 1
}
},
"additionalProperties": false
}