diff --git a/Makefile b/Makefile index fb772eec..2ce963f7 100644 --- a/Makefile +++ b/Makefile @@ -47,7 +47,7 @@ regenerate-schemas: ## Download latest schemas and regenerate models @echo "Fixing schema references..." $(PYTHON) scripts/fix_schema_refs.py @echo "Generating Pydantic models..." - $(PYTHON) scripts/generate_models_simple.py + $(PYTHON) scripts/generate_types.py @echo "✓ Schemas regenerated successfully" validate-generated: ## Validate generated code (syntax and imports) @@ -99,7 +99,7 @@ check-schema-drift: ## Check if schemas are out of sync with upstream @echo "Checking for schema drift..." @$(PYTHON) scripts/sync_schemas.py @$(PYTHON) scripts/fix_schema_refs.py - @$(PYTHON) scripts/generate_models_simple.py + @$(PYTHON) scripts/generate_types.py @if git diff --exit-code src/adcp/types/generated.py schemas/cache/; then \ echo "✓ Schemas are up-to-date"; \ else \ diff --git a/schemas/cache/.hashes.json b/schemas/cache/.hashes.json index d2f60d4d..0e26fbb9 100644 --- a/schemas/cache/.hashes.json +++ b/schemas/cache/.hashes.json @@ -1,95 +1,129 @@ { - "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/index.json": "3d58e9a3c220f37b9245c8488f2d12291b787972dc3d069a5dd9f1ddcb2c377b", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/index.json": "e07ecdba0bc0d4fba3fe5f8d7ce39cb60330dcb4b76a8717f14d606a76911ca6", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/adagents.json": "f32e3778a454b7ae65f42952906f06466008bfd1208b83729e14d5f2164902d5", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/activation-key.json": "bb9c20c6200b651ce6db89f7160be60b9845dbbb4390a13363ea5b82c1c3c786", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/assets/audio-asset.json": "e25d688d22c8b130d9d1a2a09f9aa462cb7a5c83db6eea6f328cd937f8625a3f", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/assets/css-asset.json": "e0a3e3b668f564cf804d0b893833188203b8992cd5d118e4fd3d19c85cb501a1", - "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/assets/daast-asset.json": "9a4e469cf7d60b6ed31d250f669e5383161c55f5235b14fced4382c9374877b6", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/assets/daast-asset.json": "4e70c18e6794a4c69ca9ba0f4d8b0251cbebc4bfe8f64ab723e972f581729d19", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/assets/html-asset.json": "699902d22714940d9ae1e2fdbf079c7b83fff436f122cf6301bab48ead58bacc", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/assets/image-asset.json": "c2cd83306d071cf83bacf0c62479b262f247d089facba5480bf1fad571ab61b7", - "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/assets/javascript-asset.json": "09ec2b05977d7300c7b99416d295c3d6dfac064d50f03a639cd21d2e1df2420d", - "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/assets/markdown-asset.json": "430a7177a8c98ecc6d7fb133b9afd4dcc88dc347e49638495207383b6e86e1f8", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/assets/javascript-asset.json": "bddd14249dbce6683f4b56c4bc1ce5d17d395bde66ef07b87750b39a68ef67c9", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/assets/markdown-asset.json": "6f2e5feb9da9b821b1b5a6c38c095c85dc1a3a187610e87335d4a4b9690f901d", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/assets/text-asset.json": "62f7fdd0cff2800da53e73298cbd5394d4a332dd402ad354e49cfc95fd73d171", - "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/assets/url-asset.json": "b1c3fccdc649777a9eaf0383c256009b434ea21e0a6868583c4062e7203e83f4", - "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/assets/vast-asset.json": "d521be0b264a03e482bc432a42f8bef91cef0dc6302854e2f12ffad090116bd4", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/assets/url-asset.json": "9640ca952772b875dd63b8f97106fca3fe3480a65b987248f05e94bf34befb14", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/assets/vast-asset.json": "b12a0e0c7019a6da8d42cc92028146ced1ebb75c1667843637f697c811836711", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/assets/video-asset.json": "24e2e69c25e67ce48e5aaf9e3367b37796d0969530f1dfea93c36ff8194ebe6c", - "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/assets/webhook-asset.json": "ee8fe23b17b4150f02c13f5461b8d4618a041a345c48a356904c666078caf72d", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/assets/webhook-asset.json": "ebf4ca455163b67675b96213d4cb2c3338906db75d8bda6c1b09338ba5d651d3", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/brand-manifest-ref.json": "bf564ec2a537f7c931d52244a20549c493f151eda264de7487aa2d8bc25e184c", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/brand-manifest.json": "5b34ba67376c2ee38ea9221ebaf8ed825b98ca8089ef5b794cc8a7687f089e54", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/creative-asset.json": "f49b85b1fc82878e3d0227eda735fba3a4eb39008070a6ab2b9ceacea1c2c0db", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/creative-assignment.json": "1319ea89aedd48b5d354fa4b18668e2bb16a6e7e0ce640cdea63e55d3abf7941", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/creative-filters.json": "0fe8dda89a760dc8f16357510cf5c10fe05d37edbe3f62c10c166ee647585c08", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/creative-manifest.json": "160d56152c35f56dc9a26b6906e7e1f9d0e80826d25a006aba56487fa627e1eb", - "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/creative-policy.json": "f65903eae4ccf16b8c738be36b74edb31101698c30bf7e167a9c73c2a7417444", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/creative-policy.json": "2e2688fe18fa03d0193232ed237e37189fe5f1201fcebc4ebdba82ae8f3d4176", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/delivery-metrics.json": "4a2c3c6b684668d47eb954132ecc522dde989cec5e74bd9acaa10306b9e72d68", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/deployment.json": "7681b552be408d132cbbf431a09a49f06b34fb7c535fb8cece2ff80097c6e708", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/destination.json": "26dfdaae419537512e4fbe961317fd7386e76c2d33d6945ef43e00e074df8e17", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/error.json": "8ef7f825f398f28f63c3ec6a1631e49cd1fe08034d2e4c24b5153cad3e75e389", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/format-id.json": "13811721d182f84d2bfd28670c4ecc85cd15c0392a57ababd9d87fe7befd6b13", - "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/format.json": "bc3980756be32803fca4c293dfe17db8c3c75897e9c74d3e48b10e2c78c15466", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/format.json": "3ee4f73106e66cdfdc5d83c04d898cfd7035b5d252435d65bf779e35df57aa81", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/frequency-cap.json": "143c0cd68fec7247d9633c13fb1f6edf2f18756694e8a29f60a6c5c672e918c9", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/measurement.json": "c3cf5e4026cf1ef93ea3a145ebfa11a945927a556266d1ca9a78a0b53bbcdac1", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/media-buy.json": "20d4cb99b9f290856769cfe1e0ec2d198f68cace214fe3e6e6ea7f84d8b74780", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/package.json": "d99262f119d9f3bfebc91be7286c54ae1c7a0217b7fa8ef5c1de086c2c307dd0", - "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/performance-feedback.json": "80384474042b6cda08b1128859143ec5822d6dcc907ba1fa3ecf81719e7644a7", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/performance-feedback.json": "d80606c3ef6919c1489aa878acfdbe6ccbe21d53e2b54487d4f727dd386a1da4", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/placement.json": "ea814df6d878232bfdb1249fe199a1e32ec18598b7d3e3c57324d6e6120d9cf8", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/pricing-option.json": "cfaeff3d4fc49e0d3ae76364e246b3b7a772ef12cbda65b1cff400ab1f841bfa", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/product-filters.json": "15f4b7ca9f8e9eeb835b1ede82db697081044afc1d3bc366db7352e672cac1d0", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/product.json": "e1b4faa9029bd06baa537fbf534993e7830b1bdc2241279dea4806c134cea50d", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/promoted-offerings.json": "d8b4b92db0e2debc5c0ddbc0a8ff673f258f0bbc0348737df61be20a25827077", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/promoted-products.json": "77773b1dce91b219ec5043c091eb2977a82ba301e03aead3868ba704e625379e", - "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/property.json": "510458c96a93deb90d9fa3a4dfc11b63c113755dbec3de386690f6838213bc84", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/property.json": "770734efdb4e0867c2367d5f12994fe53193f51bd8d03cb35bbb7b9b8b3d0a74", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/protocol-envelope.json": "c6096b4ed4330c5e2045989bfd5cdc64fa6587cf8b0d1d2c19e33c7434cdacb8", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/publisher-property-selector.json": "3e4870d0446a5825c16365a99d49932517223c1d9d3d46a4fbf413d377ed43dd", - "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/push-notification-config.json": "be2af5dbf7d398c958e59c70ab61a845e4a7d1f1e076412589d06d53454b64b0", - "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/reporting-capabilities.json": "c463c8d512c17b8ac7afde34d782b5e5f700ed9cf73a52992a328f85ad24d568", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/push-notification-config.json": "d712ce49b101b83535dc7effcdeeb64ed2c07c67bcd9aa42ef3ffd450bf7112a", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/reporting-capabilities.json": "c84fa2a1ecc71181aa42b71e2960742ea05d3f4113c9f7a2269c0b0d7ab618c4", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/response.json": "0ac624a30da08e1aa90d2a9379f8c1ed29b704c3f5399224b9684672d3df9723", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/signal-filters.json": "8022b6e52328f69636631d2909653dbc7102cd81364b5dbe2fb0b9fa09ed16c9", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/start-timing.json": "dd3a8f60032781a0f8b5448f91bcf19d10e94658a76196cc2823704ab195fdc4", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/sub-asset.json": "c12c522dc4117bbcc831b58ab7fc3f3a8f2c17fc1e727de733d1df46a10add8a", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/targeting.json": "6abe40b7455c90b44d048a09d5b11b1c431a3bd25f74b4f7ee26e5f80c4997d8", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/tasks-get-request.json": "59521d574173660d53e8b3161a1879e29d47029d184c01d3fec2f0cee9b253d0", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/tasks-get-response.json": "551f9478f725d7a98f48a49be9c6a3088cc6e06fa1585aeb30e3085d85f9cfc5", - "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/tasks-list-request.json": "94048fb5a7eecdef061898a5a12c4a17bc794da2b4423d66c86ddeb6c3abf6c0", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/tasks-list-request.json": "7300ab55dc2e927a164cdead31d02ab79b58391c410205da353a8d8e59758f24", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/tasks-list-response.json": "529f093524948dc020fcfa3b6aaf9bf3f3fd5f4bec707e286350f86f4caea052", - "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/webhook-payload.json": "2a985b19a4ea232295a7e731dcb9318b435d5f45dd182baea893f4c75d3d2230", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/core/webhook-payload.json": "1636bd47754ffc71484448297f58a86559bf0d3de6bfba7c06a77a79bd8cf7fb", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/creative/asset-types/index.json": "6bdcf5d78558ab1ff75759ed7b0b1271daab828e2cd92e0e51154b7759e72fd9", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/creative/list-creative-formats-request.json": "0bc06b927aa7c1c48e49391232153a6dcdc978eb1df42f86837e1ce31e3ff9c2", - "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/creative/list-creative-formats-response.json": "f897a1358b0b0ac61d6bb3c99323f9b25f473278a79ee0ac10f382c031be4ff4", - "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/creative/preview-creative-request.json": "db8553c8c7f7194b87981a538b1f62a7b91e12bef732b34d6817cb05a523ca4b", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/creative/list-creative-formats-response.json": "16eed7a5b4f949b414354bb8b2ff1a881d8c704d3193a1fca48e650b3d4ebb5b", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/creative/preview-creative-request.json": "8fdfaeaab7d4c44352f17ac78a8ecef1749bbf4b79ab451c739e527d5f7d206f", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/creative/preview-creative-response.json": "361d824a0abe6c42c21bc1778ebc35dabf68dcb99b5b0e1e6ff8dfae4b319b05", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/creative/preview-render.json": "d9312c330425552f6f8aff32e9fb3d792face83141b9b62dbf79a4efac712c41", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/adcp-domain.json": "21a32551d493069a66c28bc1d4ed05757b4d4cf6d3257e0318d97713a0ac6351", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/asset-content-type.json": "94815898f629581d8dba307808538584c49a2803cfce545f73cefeee742d825c", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/auth-scheme.json": "f513e0416b9ba6eb7d30f819ba7e64df3216b0fc6a6e35237cc4d737c6808be5", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/available-metric.json": "c17a639d2ec95465fd1cb96a29f5bd688e4dc47855cd3c16643e7c1d6a1a5305", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/channels.json": "e3f7d6ca073a48ed156fe1a00a0f2772415743823aee877dedf7b0db183c58a7", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/co-branding-requirement.json": "503ebab1d2b8ce0591e9eb0f6f1342e3e2f8c164533cf6a15257a9b6fb8fbd51", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/creative-action.json": "67af3d29a1aff7406a9165e764d35c1f4f72c5bdfe56880e7c6850517c61792f", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/creative-agent-capability.json": "3cb80826a5e067b4665973b8f4e6f635fe0bd48c6a71ba167c8cc60b7839f240", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/creative-sort-field.json": "18408af28570224d3aad20187fe56644294ebd0aa064873006ebbab63502af1f", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/creative-status.json": "193e3ab2d6c6271c83bf48f19b39574600407767aac3e9b71dc6c5ef49c99f95", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/daast-tracking-event.json": "ca67cf65cf9de0c49d2ad148a6f2cb5dcdc239289e6267a39380221506837467", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/daast-version.json": "24e4e3eab4d73ee2d97396b9dae399d28a8ebcb18330718d37947713d37f3c0b", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/delivery-type.json": "4af6c09902eb7c74727a60ca28cdd2f5aec10c3b59d2c5b864fe8f6f83f07752", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/dimension-unit.json": "715f6d60703d3c04579ecd886ff8e4f5c2f7f53d3d9f6349da4eb9993c1bd09e", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/feed-format.json": "e5026d795ab5ff7659cd4bc64fda7a4b3fa27df500e1ce921e8edd9e88673d43", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/feedback-source.json": "c1afa6075f9a1e68b63890a9531f6f836e8714156b0f35d1064499b6a1e69152", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/format-category.json": "90924784874e5be4c9ef4180d0a8e2100e6e6db362cd5a3a98988e56d14f56db", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/frequency-cap-scope.json": "a243a31fa69803d6a6c2680f5465969f0d14ec79b6c0ac4ed89c55379a0d782e", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/history-entry-type.json": "c97b5ca1d75e1bcc59bf32ed0f58893cd4dffc67433d0fcef3709256b10efac5", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/http-method.json": "18e9dbfa7e19a64bf9fb43866e2f7d5918471952e461f2e5178ef910c0c2be29", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/identifier-types.json": "e9fedddebf8d09857b77094c36de32c619b7e47c667791a5d8ec837c2e672500", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/javascript-module-type.json": "2c5353147abec0ba213235913779cb60f56959e5a6fb2a34f41e2c23c9055a9f", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/landing-page-requirement.json": "389f38f120e970f4630235188e766ab849a4009f1c7a3f7eb6d6679af1b1d829", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/markdown-flavor.json": "f7269c05f517e9e5f16ccda0049710e223c6c9fbaa97546785bf6184e7f2f873", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/media-buy-status.json": "a459b9007750a4ce2151a09c82478179311543e17c3aef49d15c3b7b77c5029c", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/metric-type.json": "e2dd1f1bc3d77d7daa998ceb033dd819eb635b556cf38dbdb382e5d4e543f4c2", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/notification-type.json": "621742250bfa376b399df2c3f077102b48fc60a3cc9e96605fb19e25dc64e77b", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/pacing.json": "b8b12c9441fcde9a5e9f8a1fd2cae43bba8a2fda72de9f7f8ae0b34764ace965", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/package-status.json": "4806fa2598c8132cd2ea5167d67cfc663ad84a43771593ac022bdb34815cef44", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/preview-output-format.json": "dde7754ddb3dde65b6c4bd36c6bf6c2cf63a10a4199ec5c37dd9106fdb06ce84", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/pricing-model.json": "a254d66bdc46cd32f24b4b0e320c1c3609fbf51c2635199125051b46295a4394", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/property-type.json": "5032757e73adae4debfbeb0c195bf1d2657fe25f3e023d62930f3deb07ef6f7e", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/publisher-identifier-types.json": "c0bae035c3700c8687885a28f4ca0e89558dec715a061258018521cd1c5294be", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/reporting-frequency.json": "117338f513df1f1d53ef5ef1b9b32f0e60c8b6644e06aa7b9e99ce9601ea71d9", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/signal-catalog-type.json": "26f0d91fd00d65c5d9b4f935e7b0649ba23fc3e3be1e908add39a95d13254756", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/sort-direction.json": "094ccb93b14d1bca90e62a0ff88fabacb435a309790539673a2c0685365917b1", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/standard-format-ids.json": "848073552c20e2a837492835c200dc11c1a4a776502256aaf51a9903b0839cd3", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/task-status.json": "cf90da4dffe36693078a2e4d73971af4db550de2b92fa926f5b8edc2722eaf22", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/task-type.json": "73ecd6267c94cf4eafb7168bf50131cf0b1d5cdbf7e66a39f78fb380a5b83968", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/update-frequency.json": "8e17cf94618019e9c7c9d906188cd245f55bb7d635f6a5df6fb3587c6cdefc83", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/url-asset-type.json": "03b9eeb454fa96ede4a88495dd360d6c3b0393a5b022336e580d051a7cdb4d1c", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/validation-mode.json": "b478f75b412d7cd78c3539014a01f5dea837bd7a6fe658dd4363ae7c9fd069e2", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/vast-tracking-event.json": "638bca3e504bb5053b1c2e988c5cfb6bac7d43b5076b2dcc4093c2a3c66778a0", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/vast-version.json": "a199ba6c547ca76aeb9e8b812eeed555961184584a92c15c43922c88e5f74a5c", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/webhook-response-type.json": "48e26fef78c4d4b31e00143ba572461aacba65997decdb184a18b3b8f3ad5970", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/enums/webhook-security-method.json": "d690a0aaf961ae2d571f6cadc3d040ea585af966ecc47b826d02df9ef0a369fd", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/build-creative-request.json": "1356a721f29a5e82e144640183c57df24c4c68eab35f7f4e6e8c6e93a8c10499", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/build-creative-response.json": "89258fb28bedf6b95c9f6ee8810b0674965f1c49746376823c6fedc9b2634ad2", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/create-media-buy-request.json": "69abc79214995c77c590b24fe6ad7cd9c322b7651aa9e3c065c9c39cdeeac656", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/create-media-buy-response.json": "75e06a480a44575443d6ca0a14960c77725cfa9f878429e24dd09b1b151db0af", - "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/get-media-buy-delivery-request.json": "20464f0fa84ce3bed82ff18eeb8b5b3b46745a51e11e2393df58c0f309bf2cc6", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/get-media-buy-delivery-request.json": "57a51688063243a1ca13b0ab40dec5722c741d2bbab5ac6a36294f31ec406116", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/get-media-buy-delivery-response.json": "89f62b754d9d626ec9068a7b030808dc3eba316cbb9c86369a4a68a5b40d38f3", - "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/get-products-request.json": "5d01c326361c21ed0735ffaada036e3017ac75c318832d8607cd935ecaaa4698", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/get-products-request.json": "34364a4540ecf85abf012b5980b4864b81fdcf9147234fae719d651a25de62b2", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/get-products-response.json": "ddc64c84fa4d4aec43981927bf5d2d36130ed9ae5aa97bda48924f63e17752f4", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/list-authorized-properties-request.json": "b9b8bfbd7d549506f11cf46781f269402cdb72d19562f53643fd612fccd8dc16", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/list-authorized-properties-response.json": "0f4ec18c9e3fe5b3a9288177134df58deab44bdc5fcc61a0838e93ceefebbcd8", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/list-creative-formats-request.json": "e10a8431c46d8020b23d0daa5caad844fa21f52efdd99e4c38f878aee26d8646", - "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/list-creative-formats-response.json": "30ec1737d5b51f3d6920af5cc0a081efe09ba7b4e635eda26a45ca6be218e18d", - "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/list-creatives-request.json": "949b713c4b2a11f3230f1696694542b020547dfa1841a36ed46f009bd5559d5b", - "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/list-creatives-response.json": "8539e1d24b4671c9f1d3ee0f7aed247c832ada85eec23dece7041302571f2409", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/list-creative-formats-response.json": "4d93c6784041e8981326aa4acc2ccd9199a6123e69dec029d7bb60461d23bbb0", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/list-creatives-request.json": "821e52ea8c42fe78d333b75e6a4012a64c68b4d1a8bb55f4a0ff8f71362a0e71", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/list-creatives-response.json": "0916774bff1452b7d825dcf36ac483a7466198ce7cd6ab654e66d741d851ba87", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/package-request.json": "22360197b0cb6f1a29aa5dc27a0001d4dae3d38d6b5028464ce33855a16fff49", - "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/provide-performance-feedback-request.json": "1b9b6eb46237e6c13aef37afd9fe53387f3b6bf082546b6c3437801689883233", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/provide-performance-feedback-request.json": "c723ed5ed41e64db59ffe2c32a240755acaab7830b1dbc0eabbd5a6b90739014", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/provide-performance-feedback-response.json": "027956a411298fe8e6b4b9e7ddf07b9879bc9d03621946f98a91a06e4e3938cf", - "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/sync-creatives-request.json": "42ad6402161e0528b4ea1b6e75083437f200ce064ac2acef2adb57c0867fc658", - "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/sync-creatives-response.json": "c06c1296e4ddea110b8dee1b0e40289fea32f52c56ebf123512319008dfcc615", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/sync-creatives-request.json": "954f28624c90f605dead545b9fdf7bf4312372b86c1b57737f9e270ef2d4d408", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/sync-creatives-response.json": "903701587da2660aff4fb0e643c6ecd6a09c9e35161d69587930ed72084e5137", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/update-media-buy-request.json": "e907faefc302a58870554f8a1ac84de5529e4806c4da04879f153cade2372747", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/media-buy/update-media-buy-response.json": "643562faab311e237095d024cd1d4383b01effd3d9bff5af412837d9b85522b4", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/pricing-options/cpc-option.json": "8db2f8f68bff3e9f5c8c8a0843e307e7b40533883d14bab210c78ff73dd2de63", @@ -103,6 +137,6 @@ "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/pricing-options/vcpm-fixed-option.json": "b560ed8eb0196a793d6d1304a4dea62dc3a1fd06b1fb676b95aa93b68618fce9", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/signals/activate-signal-request.json": "bb4d0e0e3e767856f8541488d2f847161b6f6bfc620d7d98efad6b76558811cc", "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/signals/activate-signal-response.json": "efb5ed2da9088c421f0a8b4c2582e98e44a0d015917c0e8c1d172ef5330206a1", - "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/signals/get-signals-request.json": "5284a89c1b36f5ff17e0c638b5594b644eaf53e5c53b60dce58a7561025ba2c7", - "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/signals/get-signals-response.json": "28bf87189c808b1a5c3263e7b53a99407f9bf50e140974cdfc5feac582b9fe1b" + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/signals/get-signals-request.json": "20d8aaefde9c6c3a8880690e7cbd6100518e0233f7c17affeb680ff78b2b0996", + "https://raw.githubusercontent.com/adcontextprotocol/adcp/main/static/schemas/v1/signals/get-signals-response.json": "062b163b0f843240730a7dbd2e2e31d3c92a157a88a23e0e2e2221ba7e84e600" } \ No newline at end of file diff --git a/schemas/cache/1.0.0/activate-signal-request.json b/schemas/cache/1.0.0/activate-signal-request.json index 38d016c8..63e3b452 100644 --- a/schemas/cache/1.0.0/activate-signal-request.json +++ b/schemas/cache/1.0.0/activate-signal-request.json @@ -12,7 +12,7 @@ "deployments": { "description": "Target deployment(s) for activation. If the authenticated caller matches one of these deployment targets, activation keys will be included in the response.", "items": { - "$ref": "/schemas/v1/core/destination.json" + "$ref": "destination.json" }, "minItems": 1, "type": "array" diff --git a/schemas/cache/1.0.0/activate-signal-response.json b/schemas/cache/1.0.0/activate-signal-response.json index 02e982b7..06b8b14b 100644 --- a/schemas/cache/1.0.0/activate-signal-response.json +++ b/schemas/cache/1.0.0/activate-signal-response.json @@ -20,7 +20,7 @@ "deployments": { "description": "Array of deployment results for each deployment target", "items": { - "$ref": "/schemas/v1/core/deployment.json" + "$ref": "deployment.json" }, "type": "array" } @@ -47,7 +47,7 @@ "errors": { "description": "Array of errors explaining why activation failed (e.g., platform connectivity issues, signal definition problems, authentication failures)", "items": { - "$ref": "/schemas/v1/core/error.json" + "$ref": "error.json" }, "minItems": 1, "type": "array" diff --git a/schemas/cache/1.0.0/adagents.json b/schemas/cache/1.0.0/adagents.json index c50e6a85..83e1afde 100644 --- a/schemas/cache/1.0.0/adagents.json +++ b/schemas/cache/1.0.0/adagents.json @@ -318,7 +318,7 @@ "properties": { "description": "Specific properties this agent is authorized for (alternative to property_ids/property_tags)", "items": { - "$ref": "/schemas/v1/core/property.json" + "$ref": "property.json" }, "minItems": 1, "type": "array" @@ -354,7 +354,7 @@ "publisher_properties": { "description": "Properties from other publisher domains this agent is authorized for. Each entry specifies a publisher domain and which of their properties this agent can sell", "items": { - "$ref": "/schemas/v1/core/publisher-property-selector.json" + "$ref": "publisher-property-selector.json" }, "minItems": 1, "type": "array" @@ -426,7 +426,7 @@ "properties": { "description": "Array of all properties covered by this adagents.json file. Same structure as list_authorized_properties response.", "items": { - "$ref": "/schemas/v1/core/property.json" + "$ref": "property.json" }, "minItems": 1, "type": "array" diff --git a/schemas/cache/1.0.0/adcp-domain.json b/schemas/cache/1.0.0/adcp-domain.json new file mode 100644 index 00000000..f7ea388b --- /dev/null +++ b/schemas/cache/1.0.0/adcp-domain.json @@ -0,0 +1,11 @@ +{ + "$id": "/schemas/v1/enums/adcp-domain.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "AdCP protocol domains for task categorization", + "enum": [ + "media-buy", + "signals" + ], + "title": "AdCP Domain", + "type": "string" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/auth-scheme.json b/schemas/cache/1.0.0/auth-scheme.json new file mode 100644 index 00000000..b24f4f4b --- /dev/null +++ b/schemas/cache/1.0.0/auth-scheme.json @@ -0,0 +1,11 @@ +{ + "$id": "/schemas/v1/enums/auth-scheme.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Authentication schemes for push notification endpoints", + "enum": [ + "Bearer", + "HMAC-SHA256" + ], + "title": "Authentication Scheme", + "type": "string" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/available-metric.json b/schemas/cache/1.0.0/available-metric.json new file mode 100644 index 00000000..51130b4c --- /dev/null +++ b/schemas/cache/1.0.0/available-metric.json @@ -0,0 +1,18 @@ +{ + "$id": "/schemas/v1/enums/available-metric.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Standard delivery and performance metrics available for reporting", + "enum": [ + "impressions", + "spend", + "clicks", + "ctr", + "video_completions", + "completion_rate", + "conversions", + "viewability", + "engagement_rate" + ], + "title": "Available Metric", + "type": "string" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/brand-manifest.json b/schemas/cache/1.0.0/brand-manifest.json index e88953fb..2acaecf9 100644 --- a/schemas/cache/1.0.0/brand-manifest.json +++ b/schemas/cache/1.0.0/brand-manifest.json @@ -125,7 +125,7 @@ "type": "string" }, "asset_type": { - "$ref": "/schemas/v1/enums/asset-content-type.json", + "$ref": "asset-content-type.json", "description": "Type of asset. Note: Brand manifests typically contain basic media assets (image, video, audio, text). Code assets (html, javascript, css) and ad markup (vast, daast) are usually not part of brand asset libraries." }, "description": { diff --git a/schemas/cache/1.0.0/co-branding-requirement.json b/schemas/cache/1.0.0/co-branding-requirement.json new file mode 100644 index 00000000..9846de52 --- /dev/null +++ b/schemas/cache/1.0.0/co-branding-requirement.json @@ -0,0 +1,12 @@ +{ + "$id": "/schemas/v1/enums/co-branding-requirement.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Co-branding policy for creatives (retailer/publisher brand inclusion)", + "enum": [ + "required", + "optional", + "none" + ], + "title": "Co-Branding Requirement", + "type": "string" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/create-media-buy-response.json b/schemas/cache/1.0.0/create-media-buy-response.json index 3013fd76..21426d0a 100644 --- a/schemas/cache/1.0.0/create-media-buy-response.json +++ b/schemas/cache/1.0.0/create-media-buy-response.json @@ -33,7 +33,7 @@ "packages": { "description": "Array of created packages with complete state information", "items": { - "$ref": "/schemas/v1/core/package.json" + "$ref": "package.json" }, "type": "array" } @@ -76,7 +76,7 @@ "errors": { "description": "Array of errors explaining why the operation failed", "items": { - "$ref": "/schemas/v1/core/error.json" + "$ref": "error.json" }, "minItems": 1, "type": "array" diff --git a/schemas/cache/1.0.0/creative-action.json b/schemas/cache/1.0.0/creative-action.json new file mode 100644 index 00000000..e979637a --- /dev/null +++ b/schemas/cache/1.0.0/creative-action.json @@ -0,0 +1,14 @@ +{ + "$id": "/schemas/v1/enums/creative-action.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Action taken on a creative during sync operation", + "enum": [ + "created", + "updated", + "unchanged", + "failed", + "deleted" + ], + "title": "Creative Action", + "type": "string" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/creative-agent-capability.json b/schemas/cache/1.0.0/creative-agent-capability.json new file mode 100644 index 00000000..c7e7a88a --- /dev/null +++ b/schemas/cache/1.0.0/creative-agent-capability.json @@ -0,0 +1,13 @@ +{ + "$id": "/schemas/v1/enums/creative-agent-capability.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Capabilities supported by creative agents for format handling", + "enum": [ + "validation", + "assembly", + "generation", + "preview" + ], + "title": "Creative Agent Capability", + "type": "string" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/creative-filters.json b/schemas/cache/1.0.0/creative-filters.json new file mode 100644 index 00000000..1c71c978 --- /dev/null +++ b/schemas/cache/1.0.0/creative-filters.json @@ -0,0 +1,97 @@ +{ + "$id": "/schemas/v1/core/creative-filters.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "description": "Filter criteria for querying creative assets from the centralized library", + "properties": { + "assigned_to_package": { + "description": "Filter creatives assigned to this specific package", + "type": "string" + }, + "assigned_to_packages": { + "description": "Filter creatives assigned to any of these packages", + "items": { + "type": "string" + }, + "type": "array" + }, + "created_after": { + "description": "Filter creatives created after this date (ISO 8601)", + "format": "date-time", + "type": "string" + }, + "created_before": { + "description": "Filter creatives created before this date (ISO 8601)", + "format": "date-time", + "type": "string" + }, + "creative_ids": { + "description": "Filter by specific creative IDs", + "items": { + "type": "string" + }, + "maxItems": 100, + "type": "array" + }, + "format": { + "description": "Filter by creative format type (e.g., video, audio, display)", + "type": "string" + }, + "formats": { + "description": "Filter by multiple creative format types", + "items": { + "type": "string" + }, + "type": "array" + }, + "has_performance_data": { + "description": "Filter creatives that have performance data when true", + "type": "boolean" + }, + "name_contains": { + "description": "Filter by creative names containing this text (case-insensitive)", + "type": "string" + }, + "status": { + "$ref": "creative-status.json", + "description": "Filter by creative approval status" + }, + "statuses": { + "description": "Filter by multiple creative statuses", + "items": { + "$ref": "creative-status.json" + }, + "type": "array" + }, + "tags": { + "description": "Filter by creative tags (all tags must match)", + "items": { + "type": "string" + }, + "type": "array" + }, + "tags_any": { + "description": "Filter by creative tags (any tag must match)", + "items": { + "type": "string" + }, + "type": "array" + }, + "unassigned": { + "description": "Filter for unassigned creatives when true, assigned creatives when false", + "type": "boolean" + }, + "updated_after": { + "description": "Filter creatives last updated after this date (ISO 8601)", + "format": "date-time", + "type": "string" + }, + "updated_before": { + "description": "Filter creatives last updated before this date (ISO 8601)", + "format": "date-time", + "type": "string" + } + }, + "title": "Creative Filters", + "type": "object" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/creative-policy.json b/schemas/cache/1.0.0/creative-policy.json index d4ab6207..96be15e1 100644 --- a/schemas/cache/1.0.0/creative-policy.json +++ b/schemas/cache/1.0.0/creative-policy.json @@ -5,22 +5,12 @@ "description": "Creative requirements and restrictions for a product", "properties": { "co_branding": { - "description": "Co-branding requirement", - "enum": [ - "required", - "optional", - "none" - ], - "type": "string" + "$ref": "co-branding-requirement.json", + "description": "Co-branding requirement" }, "landing_page": { - "description": "Landing page requirements", - "enum": [ - "any", - "retailer_site_only", - "must_include_retailer" - ], - "type": "string" + "$ref": "landing-page-requirement.json", + "description": "Landing page requirements" }, "templates_available": { "description": "Whether creative templates are provided", diff --git a/schemas/cache/1.0.0/creative-sort-field.json b/schemas/cache/1.0.0/creative-sort-field.json new file mode 100644 index 00000000..f5a9f663 --- /dev/null +++ b/schemas/cache/1.0.0/creative-sort-field.json @@ -0,0 +1,15 @@ +{ + "$id": "/schemas/v1/enums/creative-sort-field.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Fields available for sorting creative library listings", + "enum": [ + "created_date", + "updated_date", + "name", + "status", + "assignment_count", + "performance_score" + ], + "title": "Creative Sort Field", + "type": "string" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/daast-asset.json b/schemas/cache/1.0.0/daast-asset.json index e945e87a..2db5c4f8 100644 --- a/schemas/cache/1.0.0/daast-asset.json +++ b/schemas/cache/1.0.0/daast-asset.json @@ -11,12 +11,8 @@ "type": "boolean" }, "daast_version": { - "description": "DAAST specification version", - "enum": [ - "1.0", - "1.1" - ], - "type": "string" + "$ref": "daast-version.json", + "description": "DAAST specification version" }, "delivery_type": { "const": "url", @@ -31,20 +27,7 @@ "tracking_events": { "description": "Tracking events supported by this DAAST tag", "items": { - "enum": [ - "start", - "firstQuartile", - "midpoint", - "thirdQuartile", - "complete", - "impression", - "pause", - "resume", - "skip", - "mute", - "unmute" - ], - "type": "string" + "$ref": "daast-tracking-event.json" }, "type": "array" }, @@ -72,12 +55,8 @@ "type": "string" }, "daast_version": { - "description": "DAAST specification version", - "enum": [ - "1.0", - "1.1" - ], - "type": "string" + "$ref": "daast-version.json", + "description": "DAAST specification version" }, "delivery_type": { "const": "inline", @@ -92,20 +71,7 @@ "tracking_events": { "description": "Tracking events supported by this DAAST tag", "items": { - "enum": [ - "start", - "firstQuartile", - "midpoint", - "thirdQuartile", - "complete", - "impression", - "pause", - "resume", - "skip", - "mute", - "unmute" - ], - "type": "string" + "$ref": "daast-tracking-event.json" }, "type": "array" } diff --git a/schemas/cache/1.0.0/daast-tracking-event.json b/schemas/cache/1.0.0/daast-tracking-event.json new file mode 100644 index 00000000..819a303e --- /dev/null +++ b/schemas/cache/1.0.0/daast-tracking-event.json @@ -0,0 +1,20 @@ +{ + "$id": "/schemas/v1/enums/daast-tracking-event.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Standard DAAST tracking events for audio ad playback and interaction", + "enum": [ + "start", + "firstQuartile", + "midpoint", + "thirdQuartile", + "complete", + "impression", + "pause", + "resume", + "skip", + "mute", + "unmute" + ], + "title": "DAAST Tracking Event", + "type": "string" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/daast-version.json b/schemas/cache/1.0.0/daast-version.json new file mode 100644 index 00000000..10816e3a --- /dev/null +++ b/schemas/cache/1.0.0/daast-version.json @@ -0,0 +1,11 @@ +{ + "$id": "/schemas/v1/enums/daast-version.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Supported DAAST (Digital Audio Ad Serving Template) specification versions", + "enum": [ + "1.0", + "1.1" + ], + "title": "DAAST Version", + "type": "string" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/deployment.json b/schemas/cache/1.0.0/deployment.json index f3dd8478..cfcd6784 100644 --- a/schemas/cache/1.0.0/deployment.json +++ b/schemas/cache/1.0.0/deployment.json @@ -11,7 +11,7 @@ "type": "string" }, "activation_key": { - "$ref": "/schemas/v1/core/activation-key.json", + "$ref": "activation-key.json", "description": "The key to use for targeting. Only present if is_live=true AND requester has access to this deployment." }, "deployed_at": { @@ -53,7 +53,7 @@ "type": "string" }, "activation_key": { - "$ref": "/schemas/v1/core/activation-key.json", + "$ref": "activation-key.json", "description": "The key to use for targeting. Only present if is_live=true AND requester has access to this deployment." }, "agent_url": { diff --git a/schemas/cache/1.0.0/dimension-unit.json b/schemas/cache/1.0.0/dimension-unit.json new file mode 100644 index 00000000..c5b003af --- /dev/null +++ b/schemas/cache/1.0.0/dimension-unit.json @@ -0,0 +1,13 @@ +{ + "$id": "/schemas/v1/enums/dimension-unit.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Units of measurement for creative format dimensions", + "enum": [ + "px", + "dp", + "inches", + "cm" + ], + "title": "Dimension Unit", + "type": "string" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/feed-format.json b/schemas/cache/1.0.0/feed-format.json new file mode 100644 index 00000000..af6da7f8 --- /dev/null +++ b/schemas/cache/1.0.0/feed-format.json @@ -0,0 +1,12 @@ +{ + "$id": "/schemas/v1/enums/feed-format.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Product catalog feed format types", + "enum": [ + "google_merchant_center", + "facebook_catalog", + "custom" + ], + "title": "Feed Format", + "type": "string" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/feedback-source.json b/schemas/cache/1.0.0/feedback-source.json new file mode 100644 index 00000000..2d04588c --- /dev/null +++ b/schemas/cache/1.0.0/feedback-source.json @@ -0,0 +1,13 @@ +{ + "$id": "/schemas/v1/enums/feedback-source.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Source of performance feedback data", + "enum": [ + "buyer_attribution", + "third_party_measurement", + "platform_analytics", + "verification_partner" + ], + "title": "Feedback Source", + "type": "string" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/format.json b/schemas/cache/1.0.0/format.json index 03215ac7..377c883d 100644 --- a/schemas/cache/1.0.0/format.json +++ b/schemas/cache/1.0.0/format.json @@ -20,7 +20,7 @@ "type": "string" }, "asset_type": { - "$ref": "/schemas/v1/enums/asset-content-type.json", + "$ref": "asset-content-type.json", "description": "Type of asset" }, "item_type": { @@ -65,7 +65,7 @@ "type": "string" }, "asset_type": { - "$ref": "/schemas/v1/enums/asset-content-type.json", + "$ref": "asset-content-type.json", "description": "Type of asset" }, "required": { @@ -134,7 +134,7 @@ "description": "Optional standard visual card (300x400px) for displaying this format in user interfaces. Can be rendered via preview_creative or pre-generated.", "properties": { "format_id": { - "$ref": "/schemas/v1/core/format-id.json", + "$ref": "format-id.json", "description": "Creative format defining the card layout (typically format_card_standard)" }, "manifest": { @@ -154,7 +154,7 @@ "description": "Optional detailed card with carousel and full specifications. Provides rich format documentation similar to ad spec pages.", "properties": { "format_id": { - "$ref": "/schemas/v1/core/format-id.json", + "$ref": "format-id.json", "description": "Creative format defining the detailed card layout (typically format_card_detailed)" }, "manifest": { @@ -170,7 +170,7 @@ "type": "object" }, "format_id": { - "$ref": "/schemas/v1/core/format-id.json", + "$ref": "format-id.json", "description": "Structured format identifier with agent URL and format name" }, "name": { @@ -180,7 +180,7 @@ "output_format_ids": { "description": "For generative formats: array of format IDs that this format can generate. When a format accepts inputs like brand_manifest and message, this specifies what concrete output formats can be produced (e.g., a generative banner format might output standard image banner formats).", "items": { - "$ref": "/schemas/v1/core/format-id.json" + "$ref": "format-id.json" }, "type": "array" }, @@ -243,15 +243,9 @@ "type": "object" }, "unit": { + "$ref": "dimension-unit.json", "default": "px", - "description": "Unit of measurement for dimensions", - "enum": [ - "px", - "dp", - "inches", - "cm" - ], - "type": "string" + "description": "Unit of measurement for dimensions" }, "width": { "description": "Fixed width in specified units", @@ -286,7 +280,7 @@ "type": "array" }, "type": { - "$ref": "/schemas/v1/enums/format-category.json", + "$ref": "format-category.json", "description": "Media type of this format - determines rendering method and asset requirements" } }, diff --git a/schemas/cache/1.0.0/get-media-buy-delivery-request.json b/schemas/cache/1.0.0/get-media-buy-delivery-request.json index 77c404ab..17f5a23c 100644 --- a/schemas/cache/1.0.0/get-media-buy-delivery-request.json +++ b/schemas/cache/1.0.0/get-media-buy-delivery-request.json @@ -37,26 +37,11 @@ "description": "Filter by status. Can be a single status or array of statuses", "oneOf": [ { - "enum": [ - "active", - "pending", - "paused", - "completed", - "failed", - "all" - ], - "type": "string" + "$ref": "media-buy-status.json" }, { "items": { - "enum": [ - "active", - "pending", - "paused", - "completed", - "failed" - ], - "type": "string" + "$ref": "media-buy-status.json" }, "type": "array" } diff --git a/schemas/cache/1.0.0/get-products-request.json b/schemas/cache/1.0.0/get-products-request.json index 18856ef8..edcf7f1d 100644 --- a/schemas/cache/1.0.0/get-products-request.json +++ b/schemas/cache/1.0.0/get-products-request.json @@ -18,46 +18,7 @@ "type": "object" }, "filters": { - "additionalProperties": false, - "description": "Structured filters for product discovery", - "properties": { - "delivery_type": { - "$ref": "delivery-type.json" - }, - "format_ids": { - "description": "Filter by specific format IDs", - "items": { - "$ref": "format-id.json" - }, - "type": "array" - }, - "format_types": { - "description": "Filter by format types", - "items": { - "enum": [ - "video", - "display", - "audio" - ], - "type": "string" - }, - "type": "array" - }, - "is_fixed_price": { - "description": "Filter for fixed price vs auction products", - "type": "boolean" - }, - "min_exposures": { - "description": "Minimum exposures/impressions needed for measurement validity", - "minimum": 1, - "type": "integer" - }, - "standard_formats_only": { - "description": "Only return products accepting IAB standard formats", - "type": "boolean" - } - }, - "type": "object" + "$ref": "product-filters.json" } }, "required": [], diff --git a/schemas/cache/1.0.0/get-signals-request.json b/schemas/cache/1.0.0/get-signals-request.json index 2982a57c..e70b7968 100644 --- a/schemas/cache/1.0.0/get-signals-request.json +++ b/schemas/cache/1.0.0/get-signals-request.json @@ -24,7 +24,7 @@ "deployments": { "description": "List of deployment targets (DSPs, sales agents, etc.). If the authenticated caller matches one of these deployment targets, activation keys will be included in the response.", "items": { - "$ref": "/schemas/v1/core/destination.json" + "$ref": "destination.json" }, "minItems": 1, "type": "array" @@ -37,41 +37,7 @@ "type": "object" }, "filters": { - "additionalProperties": false, - "description": "Filters to refine results", - "properties": { - "catalog_types": { - "description": "Filter by catalog type", - "items": { - "enum": [ - "marketplace", - "custom", - "owned" - ], - "type": "string" - }, - "type": "array" - }, - "data_providers": { - "description": "Filter by specific data providers", - "items": { - "type": "string" - }, - "type": "array" - }, - "max_cpm": { - "description": "Maximum CPM price filter", - "minimum": 0, - "type": "number" - }, - "min_coverage_percentage": { - "description": "Minimum coverage requirement", - "maximum": 100, - "minimum": 0, - "type": "number" - } - }, - "type": "object" + "$ref": "signal-filters.json" }, "max_results": { "description": "Maximum number of results to return", diff --git a/schemas/cache/1.0.0/get-signals-response.json b/schemas/cache/1.0.0/get-signals-response.json index 90266056..d79a3ebd 100644 --- a/schemas/cache/1.0.0/get-signals-response.json +++ b/schemas/cache/1.0.0/get-signals-response.json @@ -12,7 +12,7 @@ "errors": { "description": "Task-specific errors and warnings (e.g., signal discovery or pricing issues)", "items": { - "$ref": "/schemas/v1/core/error.json" + "$ref": "error.json" }, "type": "array" }, @@ -34,7 +34,7 @@ "deployments": { "description": "Array of deployment targets", "items": { - "$ref": "/schemas/v1/core/deployment.json" + "$ref": "deployment.json" }, "type": "array" }, @@ -72,13 +72,8 @@ "type": "string" }, "signal_type": { - "description": "Type of signal", - "enum": [ - "marketplace", - "custom", - "owned" - ], - "type": "string" + "$ref": "signal-catalog-type.json", + "description": "Type of signal" } }, "required": [ diff --git a/schemas/cache/1.0.0/history-entry-type.json b/schemas/cache/1.0.0/history-entry-type.json new file mode 100644 index 00000000..8e9b2df1 --- /dev/null +++ b/schemas/cache/1.0.0/history-entry-type.json @@ -0,0 +1,11 @@ +{ + "$id": "/schemas/v1/enums/history-entry-type.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Type of entry in task execution history", + "enum": [ + "request", + "response" + ], + "title": "History Entry Type", + "type": "string" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/http-method.json b/schemas/cache/1.0.0/http-method.json new file mode 100644 index 00000000..cd71627b --- /dev/null +++ b/schemas/cache/1.0.0/http-method.json @@ -0,0 +1,11 @@ +{ + "$id": "/schemas/v1/enums/http-method.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "HTTP methods supported for webhook requests", + "enum": [ + "GET", + "POST" + ], + "title": "HTTP Method", + "type": "string" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/index.json b/schemas/cache/1.0.0/index.json index 74c8acb3..a1fe872b 100644 --- a/schemas/cache/1.0.0/index.json +++ b/schemas/cache/1.0.0/index.json @@ -46,7 +46,7 @@ "lastUpdated": "2025-10-31", "schemas": { "adagents": { - "$ref": "/schemas/v1/adagents.json", + "$ref": "adagents.json", "description": "Authorized sales agents file format specification", "file_location": "/.well-known/adagents.json", "purpose": "Declares which sales agents are authorized to sell a publisher's advertising inventory" @@ -55,153 +55,165 @@ "description": "Core data models used throughout AdCP", "schemas": { "brand-manifest": { - "$ref": "/schemas/v1/core/brand-manifest.json", + "$ref": "brand-manifest.json", "description": "Standardized brand information manifest for creative generation and media buying" }, "brand-manifest-ref": { - "$ref": "/schemas/v1/core/brand-manifest-ref.json", + "$ref": "brand-manifest-ref.json", "description": "Brand manifest reference (inline object or URL)" }, "creative-asset": { - "$ref": "/schemas/v1/core/creative-asset.json", + "$ref": "creative-asset.json", "description": "Creative asset for upload to library - supports static assets, generative formats, and third-party ad serving (VAST, DAAST, HTML, JavaScript)" }, "creative-assignment": { - "$ref": "/schemas/v1/core/creative-assignment.json", + "$ref": "creative-assignment.json", "description": "Assignment of a creative asset to a package" }, + "creative-filters": { + "$ref": "creative-filters.json", + "description": "Filter criteria for querying creative assets from the centralized library" + }, "creative-manifest": { - "$ref": "/schemas/v1/core/creative-manifest.json", + "$ref": "creative-manifest.json", "description": "Complete specification of a creative with all assets needed for rendering" }, "creative-policy": { - "$ref": "/schemas/v1/core/creative-policy.json", + "$ref": "creative-policy.json", "description": "Creative requirements and restrictions for a product" }, "delivery-metrics": { - "$ref": "/schemas/v1/core/delivery-metrics.json", + "$ref": "delivery-metrics.json", "description": "Standard delivery metrics for reporting" }, "deployment": { - "$ref": "/schemas/v1/core/deployment.json", + "$ref": "deployment.json", "description": "A signal deployment to a specific destination platform with activation status and key" }, "destination": { - "$ref": "/schemas/v1/core/destination.json", + "$ref": "destination.json", "description": "A destination platform where signals can be activated (DSP, sales agent, etc.)" }, "error": { - "$ref": "/schemas/v1/core/error.json", + "$ref": "error.json", "description": "Standard error structure" }, "format": { - "$ref": "/schemas/v1/core/format.json", + "$ref": "format.json", "description": "Represents a creative format with its requirements" }, "frequency-cap": { - "$ref": "/schemas/v1/core/frequency-cap.json", + "$ref": "frequency-cap.json", "description": "Frequency capping settings" }, "measurement": { - "$ref": "/schemas/v1/core/measurement.json", + "$ref": "measurement.json", "description": "Measurement capabilities included with a product" }, "media-buy": { - "$ref": "/schemas/v1/core/media-buy.json", + "$ref": "media-buy.json", "description": "Represents a purchased advertising campaign" }, "package": { - "$ref": "/schemas/v1/core/package.json", + "$ref": "package.json", "description": "A specific product within a media buy (line item)" }, "performance-feedback": { - "$ref": "/schemas/v1/core/performance-feedback.json", + "$ref": "performance-feedback.json", "description": "Performance feedback data for a media buy or package" }, "placement": { - "$ref": "/schemas/v1/core/placement.json", + "$ref": "placement.json", "description": "Represents a specific ad placement within a product's inventory" }, "pricing-option": { - "$ref": "/schemas/v1/core/pricing-option.json", + "$ref": "pricing-option.json", "description": "A pricing model option offered by a publisher for a product" }, "product": { - "$ref": "/schemas/v1/core/product.json", + "$ref": "product.json", "description": "Represents available advertising inventory" }, + "product-filters": { + "$ref": "product-filters.json", + "description": "Structured filters for product discovery" + }, "promoted-products": { - "$ref": "/schemas/v1/core/promoted-products.json", + "$ref": "promoted-products.json", "description": "Product or offering selection for campaigns with multiple selection methods" }, "property": { - "$ref": "/schemas/v1/core/property.json", + "$ref": "property.json", "description": "An advertising property that can be validated via adagents.json" }, "protocol-envelope": { - "$ref": "/schemas/v1/core/protocol-envelope.json", + "$ref": "protocol-envelope.json", "description": "Standard envelope structure added by protocol layer (MCP, A2A, REST) that wraps task response payloads with protocol-level fields like status, context_id, task_id, and message" }, "publisher-property-selector": { - "$ref": "/schemas/v1/core/publisher-property-selector.json", + "$ref": "publisher-property-selector.json", "description": "Selects properties from a publisher's adagents.json - supports three patterns: all properties, specific IDs, or by tags" }, "response": { - "$ref": "/schemas/v1/core/response.json", + "$ref": "response.json", "description": "Standard response structure (MCP)" }, + "signal-filters": { + "$ref": "signal-filters.json", + "description": "Filters to refine signal discovery results" + }, "start-timing": { - "$ref": "/schemas/v1/core/start-timing.json", + "$ref": "start-timing.json", "description": "Campaign start timing: 'asap' or ISO 8601 date-time" }, "sub-asset": { - "$ref": "/schemas/v1/core/sub-asset.json", + "$ref": "sub-asset.json", "description": "Sub-asset for multi-asset creative formats" }, "targeting": { - "$ref": "/schemas/v1/core/targeting.json", + "$ref": "targeting.json", "description": "Audience targeting criteria" }, "webhook-payload": { - "$ref": "/schemas/v1/core/webhook-payload.json", + "$ref": "webhook-payload.json", "description": "Webhook payload structure sent when async task status changes - protocol-level fields at top-level (operation_id, task_type, status, etc.) and task-specific payload nested under 'result'" } } }, "creative": { "asset_types": { - "$ref": "/schemas/v1/creative/asset-types/index.json", + "$ref": "index.json", "description": "Asset type definitions for creative manifests" }, "description": "Creative protocol task request/response schemas and asset type definitions", "tasks": { "build-creative": { "request": { - "$ref": "/schemas/v1/media-buy/build-creative-request.json", + "$ref": "build-creative-request.json", "description": "Request parameters for AI-powered creative generation" }, "response": { - "$ref": "/schemas/v1/media-buy/build-creative-response.json", + "$ref": "build-creative-response.json", "description": "Response payload for build_creative task" } }, "list-creative-formats": { "request": { - "$ref": "/schemas/v1/creative/list-creative-formats-request.json", + "$ref": "list-creative-formats-request.json", "description": "Request parameters for discovering creative formats from this creative agent" }, "response": { - "$ref": "/schemas/v1/creative/list-creative-formats-response.json", + "$ref": "list-creative-formats-response.json", "description": "Response payload with full format definitions - this is the authoritative source for format specifications" } }, "preview-creative": { "request": { - "$ref": "/schemas/v1/creative/preview-creative-request.json", + "$ref": "preview-creative-request.json", "description": "Request parameters for generating creative previews" }, "response": { - "$ref": "/schemas/v1/creative/preview-creative-response.json", + "$ref": "preview-creative-response.json", "description": "Response payload for preview_creative task" } } @@ -210,65 +222,189 @@ "enums": { "description": "Enumerated types and constants", "schemas": { + "adcp-domain": { + "$ref": "adcp-domain.json", + "description": "AdCP protocol domains (media-buy, signals)" + }, "asset-content-type": { - "$ref": "/schemas/v1/enums/asset-content-type.json", + "$ref": "asset-content-type.json", "description": "Types of content that can be used as creative assets (image, video, html, etc.)" }, + "auth-scheme": { + "$ref": "auth-scheme.json", + "description": "Authentication schemes for push notifications" + }, + "available-metric": { + "$ref": "available-metric.json", + "description": "Standard delivery and performance metrics for reporting" + }, "channels": { - "$ref": "/schemas/v1/enums/channels.json", + "$ref": "channels.json", "description": "Advertising channels (display, video, dooh, ctv, audio, etc.)" }, + "co-branding-requirement": { + "$ref": "co-branding-requirement.json", + "description": "Co-branding policy for creatives (required, optional, none)" + }, + "creative-action": { + "$ref": "creative-action.json", + "description": "Actions taken on creatives during sync (created, updated, unchanged, failed, deleted)" + }, + "creative-agent-capability": { + "$ref": "creative-agent-capability.json", + "description": "Capabilities supported by creative agents (validation, assembly, generation, preview)" + }, + "creative-sort-field": { + "$ref": "creative-sort-field.json", + "description": "Fields available for sorting creative listings" + }, "creative-status": { - "$ref": "/schemas/v1/enums/creative-status.json", + "$ref": "creative-status.json", "description": "Status of a creative asset" }, + "daast-tracking-event": { + "$ref": "daast-tracking-event.json", + "description": "Standard DAAST tracking events for audio playback and interaction" + }, + "daast-version": { + "$ref": "daast-version.json", + "description": "Supported DAAST specification versions (1.0, 1.1)" + }, "delivery-type": { - "$ref": "/schemas/v1/enums/delivery-type.json", + "$ref": "delivery-type.json", "description": "Type of inventory delivery" }, + "dimension-unit": { + "$ref": "dimension-unit.json", + "description": "Units of measurement for creative format dimensions (px, dp, inches, cm)" + }, + "feed-format": { + "$ref": "feed-format.json", + "description": "Product catalog feed formats" + }, + "feedback-source": { + "$ref": "feedback-source.json", + "description": "Source of performance feedback data" + }, "format-category": { - "$ref": "/schemas/v1/enums/format-category.json", + "$ref": "format-category.json", "description": "High-level categories for creative formats (audio, video, display, native, dooh, rich_media, universal)" }, "frequency-cap-scope": { - "$ref": "/schemas/v1/enums/frequency-cap-scope.json", + "$ref": "frequency-cap-scope.json", "description": "Scope for frequency cap application" }, + "history-entry-type": { + "$ref": "history-entry-type.json", + "description": "Type of task history entry (request, response)" + }, + "http-method": { + "$ref": "http-method.json", + "description": "HTTP methods for webhook requests (GET, POST)" + }, "identifier-types": { - "$ref": "/schemas/v1/enums/identifier-types.json", + "$ref": "identifier-types.json", "description": "Valid identifier types for property identification across different media types" }, + "javascript-module-type": { + "$ref": "javascript-module-type.json", + "description": "JavaScript module format types (esm, commonjs, script)" + }, + "landing-page-requirement": { + "$ref": "landing-page-requirement.json", + "description": "Landing page policy for creative destinations (any, retailer_site_only, must_include_retailer)" + }, + "markdown-flavor": { + "$ref": "markdown-flavor.json", + "description": "Markdown specification flavors (commonmark, gfm)" + }, "media-buy-status": { - "$ref": "/schemas/v1/enums/media-buy-status.json", + "$ref": "media-buy-status.json", "description": "Status of a media buy" }, + "metric-type": { + "$ref": "metric-type.json", + "description": "Performance metric types for feedback and optimization" + }, + "notification-type": { + "$ref": "notification-type.json", + "description": "Types of delivery notifications (scheduled, final, delayed, adjusted)" + }, "pacing": { - "$ref": "/schemas/v1/enums/pacing.json", + "$ref": "pacing.json", "description": "Budget pacing strategy" }, "package-status": { - "$ref": "/schemas/v1/enums/package-status.json", + "$ref": "package-status.json", "description": "Status of a package" }, + "preview-output-format": { + "$ref": "preview-output-format.json", + "description": "Output formats for creative previews (url, html)" + }, "pricing-model": { - "$ref": "/schemas/v1/enums/pricing-model.json", + "$ref": "pricing-model.json", "description": "Supported pricing models for advertising products" }, + "property-type": { + "$ref": "property-type.json", + "description": "Types of advertising properties (website, mobile_app, ctv_app, dooh, podcast, radio, streaming_audio)" + }, "publisher-identifier-types": { - "$ref": "/schemas/v1/enums/publisher-identifier-types.json", + "$ref": "publisher-identifier-types.json", "description": "Valid identifier types for publisher/legal entity identification (TAG ID, DUNS, LEI, seller_id, GLN)" }, + "reporting-frequency": { + "$ref": "reporting-frequency.json", + "description": "Frequencies for delivery reports (hourly, daily, monthly)" + }, + "signal-catalog-type": { + "$ref": "signal-catalog-type.json", + "description": "Types of signal catalogs (marketplace, custom, owned)" + }, + "sort-direction": { + "$ref": "sort-direction.json", + "description": "Sort direction for list queries (asc, desc)" + }, "standard-format-ids": { - "$ref": "/schemas/v1/enums/standard-format-ids.json", + "$ref": "standard-format-ids.json", "description": "Enumeration of all standard creative format identifiers" }, "task-status": { - "$ref": "/schemas/v1/enums/task-status.json", + "$ref": "task-status.json", "description": "Standardized task status values based on A2A TaskState enum" }, "task-type": { - "$ref": "/schemas/v1/enums/task-type.json", + "$ref": "task-type.json", "description": "Valid AdCP task types across all domains (create_media_buy, update_media_buy, sync_creatives, activate_signal, get_signals)" + }, + "update-frequency": { + "$ref": "update-frequency.json", + "description": "Frequency of product catalog updates" + }, + "url-asset-type": { + "$ref": "url-asset-type.json", + "description": "Types of URL assets (clickthrough, tracker_pixel, tracker_script)" + }, + "validation-mode": { + "$ref": "validation-mode.json", + "description": "Creative validation strictness levels (strict, lenient)" + }, + "vast-tracking-event": { + "$ref": "vast-tracking-event.json", + "description": "Standard VAST tracking events for video playback and interaction" + }, + "vast-version": { + "$ref": "vast-version.json", + "description": "Supported VAST specification versions (2.0, 3.0, 4.0, 4.1, 4.2)" + }, + "webhook-response-type": { + "$ref": "webhook-response-type.json", + "description": "Expected response content types from webhooks" + }, + "webhook-security-method": { + "$ref": "webhook-security-method.json", + "description": "Security methods for webhook authentication" } } }, @@ -276,98 +412,98 @@ "description": "Media buy task request/response schemas", "supporting-schemas": { "package-request": { - "$ref": "/schemas/v1/media-buy/package-request.json", + "$ref": "package-request.json", "description": "Package configuration for media buy creation - used within create_media_buy request" } }, "tasks": { "create-media-buy": { "request": { - "$ref": "/schemas/v1/media-buy/create-media-buy-request.json", + "$ref": "create-media-buy-request.json", "description": "Request parameters for creating a media buy" }, "response": { - "$ref": "/schemas/v1/media-buy/create-media-buy-response.json", + "$ref": "create-media-buy-response.json", "description": "Response payload for create_media_buy task" } }, "get-media-buy-delivery": { "request": { - "$ref": "/schemas/v1/media-buy/get-media-buy-delivery-request.json", + "$ref": "get-media-buy-delivery-request.json", "description": "Request parameters for retrieving comprehensive delivery metrics" }, "response": { - "$ref": "/schemas/v1/media-buy/get-media-buy-delivery-response.json", + "$ref": "get-media-buy-delivery-response.json", "description": "Response payload for get_media_buy_delivery task" } }, "get-products": { "request": { - "$ref": "/schemas/v1/media-buy/get-products-request.json", + "$ref": "get-products-request.json", "description": "Request parameters for discovering available advertising products" }, "response": { - "$ref": "/schemas/v1/media-buy/get-products-response.json", + "$ref": "get-products-response.json", "description": "Response payload for get_products task" } }, "list-authorized-properties": { "request": { - "$ref": "/schemas/v1/media-buy/list-authorized-properties-request.json", + "$ref": "list-authorized-properties-request.json", "description": "Request parameters for discovering all properties this agent is authorized to represent" }, "response": { - "$ref": "/schemas/v1/media-buy/list-authorized-properties-response.json", + "$ref": "list-authorized-properties-response.json", "description": "Response payload for list_authorized_properties task" } }, "list-creative-formats": { "request": { - "$ref": "/schemas/v1/media-buy/list-creative-formats-request.json", + "$ref": "list-creative-formats-request.json", "description": "Request parameters for discovering format IDs and creative agents supported by this sales agent" }, "response": { - "$ref": "/schemas/v1/media-buy/list-creative-formats-response.json", + "$ref": "list-creative-formats-response.json", "description": "Response payload with format_ids and creative_agents list. Sales agent returns which formats it supports and which creative agents provide those formats. Buyers query creative agents for full format specifications." } }, "list-creatives": { "request": { - "$ref": "/schemas/v1/media-buy/list-creatives-request.json", + "$ref": "list-creatives-request.json", "description": "Request parameters for querying creative library with filtering and pagination" }, "response": { - "$ref": "/schemas/v1/media-buy/list-creatives-response.json", + "$ref": "list-creatives-response.json", "description": "Response payload for list_creatives task" } }, "provide-performance-feedback": { "request": { - "$ref": "/schemas/v1/media-buy/provide-performance-feedback-request.json", + "$ref": "provide-performance-feedback-request.json", "description": "Request parameters for sharing performance outcomes with publishers" }, "response": { - "$ref": "/schemas/v1/media-buy/provide-performance-feedback-response.json", + "$ref": "provide-performance-feedback-response.json", "description": "Response payload for provide_performance_feedback task" } }, "sync-creatives": { "request": { - "$ref": "/schemas/v1/media-buy/sync-creatives-request.json", + "$ref": "sync-creatives-request.json", "description": "Request parameters for syncing creative assets with upsert semantics" }, "response": { - "$ref": "/schemas/v1/media-buy/sync-creatives-response.json", + "$ref": "sync-creatives-response.json", "description": "Response payload for sync_creatives task" } }, "update-media-buy": { "request": { - "$ref": "/schemas/v1/media-buy/update-media-buy-request.json", + "$ref": "update-media-buy-request.json", "description": "Request parameters for updating campaign and package settings" }, "response": { - "$ref": "/schemas/v1/media-buy/update-media-buy-response.json", + "$ref": "update-media-buy-response.json", "description": "Response payload for update_media_buy task" } } @@ -377,39 +513,39 @@ "description": "Individual pricing model schemas with model-specific validation. CPM and vCPM support both fixed and auction pricing; all other models are fixed-rate only.", "schemas": { "cpc-option": { - "$ref": "/schemas/v1/pricing-options/cpc-option.json", + "$ref": "cpc-option.json", "description": "Cost Per Click (CPC) fixed-rate pricing for performance campaigns" }, "cpcv-option": { - "$ref": "/schemas/v1/pricing-options/cpcv-option.json", + "$ref": "cpcv-option.json", "description": "Cost Per Completed View (CPCV) fixed-rate pricing for video/audio" }, "cpm-auction-option": { - "$ref": "/schemas/v1/pricing-options/cpm-auction-option.json", + "$ref": "cpm-auction-option.json", "description": "Cost Per Mille (CPM) auction-based pricing for programmatic/non-guaranteed inventory" }, "cpm-fixed-option": { - "$ref": "/schemas/v1/pricing-options/cpm-fixed-option.json", + "$ref": "cpm-fixed-option.json", "description": "Cost Per Mille (CPM) fixed-rate pricing for direct/guaranteed deals" }, "cpp-option": { - "$ref": "/schemas/v1/pricing-options/cpp-option.json", + "$ref": "cpp-option.json", "description": "Cost Per Point (CPP) fixed-rate pricing for TV/audio with demographic measurement" }, "cpv-option": { - "$ref": "/schemas/v1/pricing-options/cpv-option.json", + "$ref": "cpv-option.json", "description": "Cost Per View (CPV) fixed-rate pricing with threshold" }, "flat-rate-option": { - "$ref": "/schemas/v1/pricing-options/flat-rate-option.json", + "$ref": "flat-rate-option.json", "description": "Flat rate pricing for DOOH and sponsorships" }, "vcpm-auction-option": { - "$ref": "/schemas/v1/pricing-options/vcpm-auction-option.json", + "$ref": "vcpm-auction-option.json", "description": "Viewable Cost Per Mille (vCPM) auction-based pricing for programmatic inventory with viewability guarantee" }, "vcpm-fixed-option": { - "$ref": "/schemas/v1/pricing-options/vcpm-fixed-option.json", + "$ref": "vcpm-fixed-option.json", "description": "Viewable Cost Per Mille (vCPM) fixed-rate pricing for viewability-guaranteed deals" } } @@ -419,21 +555,21 @@ "tasks": { "activate-signal": { "request": { - "$ref": "/schemas/v1/signals/activate-signal-request.json", + "$ref": "activate-signal-request.json", "description": "Request parameters for activating a signal on a specific platform/account" }, "response": { - "$ref": "/schemas/v1/signals/activate-signal-response.json", + "$ref": "activate-signal-response.json", "description": "Response payload for activate_signal task" } }, "get-signals": { "request": { - "$ref": "/schemas/v1/signals/get-signals-request.json", + "$ref": "get-signals-request.json", "description": "Request parameters for discovering signals based on description" }, "response": { - "$ref": "/schemas/v1/signals/get-signals-response.json", + "$ref": "get-signals-response.json", "description": "Response payload for get_signals task" } } diff --git a/schemas/cache/1.0.0/javascript-asset.json b/schemas/cache/1.0.0/javascript-asset.json index 519b2b43..b8ebe840 100644 --- a/schemas/cache/1.0.0/javascript-asset.json +++ b/schemas/cache/1.0.0/javascript-asset.json @@ -9,13 +9,8 @@ "type": "string" }, "module_type": { - "description": "JavaScript module type", - "enum": [ - "esm", - "commonjs", - "script" - ], - "type": "string" + "$ref": "javascript-module-type.json", + "description": "JavaScript module type" } }, "required": [ diff --git a/schemas/cache/1.0.0/javascript-module-type.json b/schemas/cache/1.0.0/javascript-module-type.json new file mode 100644 index 00000000..102db3c9 --- /dev/null +++ b/schemas/cache/1.0.0/javascript-module-type.json @@ -0,0 +1,12 @@ +{ + "$id": "/schemas/v1/enums/javascript-module-type.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "JavaScript module format types for creative assets", + "enum": [ + "esm", + "commonjs", + "script" + ], + "title": "JavaScript Module Type", + "type": "string" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/landing-page-requirement.json b/schemas/cache/1.0.0/landing-page-requirement.json new file mode 100644 index 00000000..096eec92 --- /dev/null +++ b/schemas/cache/1.0.0/landing-page-requirement.json @@ -0,0 +1,12 @@ +{ + "$id": "/schemas/v1/enums/landing-page-requirement.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Landing page policy for creative click-through destinations", + "enum": [ + "any", + "retailer_site_only", + "must_include_retailer" + ], + "title": "Landing Page Requirement", + "type": "string" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/list-creative-formats-request.json b/schemas/cache/1.0.0/list-creative-formats-request.json index 5950a599..25175a7a 100644 --- a/schemas/cache/1.0.0/list-creative-formats-request.json +++ b/schemas/cache/1.0.0/list-creative-formats-request.json @@ -7,7 +7,7 @@ "asset_types": { "description": "Filter to formats that include these asset types. For third-party tags, search for 'html' or 'javascript'. E.g., ['image', 'text'] returns formats with images and text, ['javascript'] returns formats accepting JavaScript tags.", "items": { - "$ref": "/schemas/v1/enums/asset-content-type.json" + "$ref": "asset-content-type.json" }, "type": "array" }, @@ -19,7 +19,7 @@ "format_ids": { "description": "Return only these specific format IDs (e.g., from get_products response)", "items": { - "$ref": "/schemas/v1/core/format-id.json" + "$ref": "format-id.json" }, "type": "array" }, @@ -48,7 +48,7 @@ "type": "string" }, "type": { - "$ref": "/schemas/v1/enums/format-category.json", + "$ref": "format-category.json", "description": "Filter by format type (technical categories with distinct requirements)" } }, diff --git a/schemas/cache/1.0.0/list-creative-formats-response.json b/schemas/cache/1.0.0/list-creative-formats-response.json index c89b1d64..5ae027c2 100644 --- a/schemas/cache/1.0.0/list-creative-formats-response.json +++ b/schemas/cache/1.0.0/list-creative-formats-response.json @@ -25,13 +25,7 @@ "capabilities": { "description": "Capabilities this creative agent provides", "items": { - "enum": [ - "validation", - "assembly", - "generation", - "preview" - ], - "type": "string" + "$ref": "creative-agent-capability.json" }, "type": "array" } diff --git a/schemas/cache/1.0.0/list-creatives-request.json b/schemas/cache/1.0.0/list-creatives-request.json index 406ffea0..e92dceda 100644 --- a/schemas/cache/1.0.0/list-creatives-request.json +++ b/schemas/cache/1.0.0/list-creatives-request.json @@ -76,98 +76,7 @@ "type": "array" }, "filters": { - "additionalProperties": false, - "description": "Filter criteria for querying creatives", - "properties": { - "assigned_to_package": { - "description": "Filter creatives assigned to this specific package", - "type": "string" - }, - "assigned_to_packages": { - "description": "Filter creatives assigned to any of these packages", - "items": { - "type": "string" - }, - "type": "array" - }, - "created_after": { - "description": "Filter creatives created after this date (ISO 8601)", - "format": "date-time", - "type": "string" - }, - "created_before": { - "description": "Filter creatives created before this date (ISO 8601)", - "format": "date-time", - "type": "string" - }, - "creative_ids": { - "description": "Filter by specific creative IDs", - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "format": { - "description": "Filter by creative format type (e.g., video, audio, display)", - "type": "string" - }, - "formats": { - "description": "Filter by multiple creative format types", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_performance_data": { - "description": "Filter creatives that have performance data when true", - "type": "boolean" - }, - "name_contains": { - "description": "Filter by creative names containing this text (case-insensitive)", - "type": "string" - }, - "status": { - "$ref": "creative-status.json", - "description": "Filter by creative approval status" - }, - "statuses": { - "description": "Filter by multiple creative statuses", - "items": { - "$ref": "creative-status.json" - }, - "type": "array" - }, - "tags": { - "description": "Filter by creative tags (all tags must match)", - "items": { - "type": "string" - }, - "type": "array" - }, - "tags_any": { - "description": "Filter by creative tags (any tag must match)", - "items": { - "type": "string" - }, - "type": "array" - }, - "unassigned": { - "description": "Filter for unassigned creatives when true, assigned creatives when false", - "type": "boolean" - }, - "updated_after": { - "description": "Filter creatives last updated after this date (ISO 8601)", - "format": "date-time", - "type": "string" - }, - "updated_before": { - "description": "Filter creatives last updated before this date (ISO 8601)", - "format": "date-time", - "type": "string" - } - }, - "type": "object" + "$ref": "creative-filters.json" }, "include_assignments": { "default": true, @@ -209,26 +118,14 @@ "description": "Sorting parameters", "properties": { "direction": { + "$ref": "sort-direction.json", "default": "desc", - "description": "Sort direction", - "enum": [ - "asc", - "desc" - ], - "type": "string" + "description": "Sort direction" }, "field": { + "$ref": "creative-sort-field.json", "default": "created_date", - "description": "Field to sort by", - "enum": [ - "created_date", - "updated_date", - "name", - "status", - "assignment_count", - "performance_score" - ], - "type": "string" + "description": "Field to sort by" } }, "type": "object" diff --git a/schemas/cache/1.0.0/list-creatives-response.json b/schemas/cache/1.0.0/list-creatives-response.json index 3a8ff9f5..62d4b126 100644 --- a/schemas/cache/1.0.0/list-creatives-response.json +++ b/schemas/cache/1.0.0/list-creatives-response.json @@ -125,37 +125,37 @@ "^[a-zA-Z0-9_-]+$": { "oneOf": [ { - "$ref": "/schemas/v1/core/assets/image-asset.json" + "$ref": "image-asset.json" }, { - "$ref": "/schemas/v1/core/assets/video-asset.json" + "$ref": "video-asset.json" }, { - "$ref": "/schemas/v1/core/assets/audio-asset.json" + "$ref": "audio-asset.json" }, { - "$ref": "/schemas/v1/core/assets/text-asset.json" + "$ref": "text-asset.json" }, { - "$ref": "/schemas/v1/core/assets/html-asset.json" + "$ref": "html-asset.json" }, { - "$ref": "/schemas/v1/core/assets/css-asset.json" + "$ref": "css-asset.json" }, { - "$ref": "/schemas/v1/core/assets/javascript-asset.json" + "$ref": "javascript-asset.json" }, { - "$ref": "/schemas/v1/core/assets/vast-asset.json" + "$ref": "vast-asset.json" }, { - "$ref": "/schemas/v1/core/assets/daast-asset.json" + "$ref": "daast-asset.json" }, { - "$ref": "/schemas/v1/core/promoted-offerings.json" + "$ref": "promoted-offerings.json" }, { - "$ref": "/schemas/v1/core/assets/url-asset.json" + "$ref": "url-asset.json" } ] } @@ -224,7 +224,7 @@ "type": "string" }, "format_id": { - "$ref": "/schemas/v1/core/format-id.json", + "$ref": "format-id.json", "description": "Format identifier specifying which format this creative conforms to" }, "name": { @@ -275,13 +275,13 @@ "type": "object" }, "status": { - "$ref": "/schemas/v1/enums/creative-status.json", + "$ref": "creative-status.json", "description": "Current approval status of the creative" }, "sub_assets": { "description": "Sub-assets for multi-asset formats (included when include_sub_assets=true)", "items": { - "$ref": "/schemas/v1/core/sub-asset.json" + "$ref": "sub-asset.json" }, "type": "array" }, @@ -378,11 +378,7 @@ "description": "Sort order that was applied", "properties": { "direction": { - "enum": [ - "asc", - "desc" - ], - "type": "string" + "$ref": "sort-direction.json" }, "field": { "type": "string" diff --git a/schemas/cache/1.0.0/markdown-asset.json b/schemas/cache/1.0.0/markdown-asset.json index 2ca2da7f..10bc4afc 100644 --- a/schemas/cache/1.0.0/markdown-asset.json +++ b/schemas/cache/1.0.0/markdown-asset.json @@ -18,13 +18,9 @@ "type": "string" }, "markdown_flavor": { + "$ref": "markdown-flavor.json", "default": "commonmark", - "description": "Markdown flavor used. CommonMark for strict compatibility, GFM for tables/task lists/strikethrough.", - "enum": [ - "commonmark", - "gfm" - ], - "type": "string" + "description": "Markdown flavor used. CommonMark for strict compatibility, GFM for tables/task lists/strikethrough." } }, "required": [ diff --git a/schemas/cache/1.0.0/markdown-flavor.json b/schemas/cache/1.0.0/markdown-flavor.json new file mode 100644 index 00000000..1524b82a --- /dev/null +++ b/schemas/cache/1.0.0/markdown-flavor.json @@ -0,0 +1,11 @@ +{ + "$id": "/schemas/v1/enums/markdown-flavor.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Markdown specification flavors supported for text assets", + "enum": [ + "commonmark", + "gfm" + ], + "title": "Markdown Flavor", + "type": "string" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/metric-type.json b/schemas/cache/1.0.0/metric-type.json new file mode 100644 index 00000000..23b97cec --- /dev/null +++ b/schemas/cache/1.0.0/metric-type.json @@ -0,0 +1,17 @@ +{ + "$id": "/schemas/v1/enums/metric-type.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Performance metric types for feedback and optimization", + "enum": [ + "overall_performance", + "conversion_rate", + "brand_lift", + "click_through_rate", + "completion_rate", + "viewability", + "brand_safety", + "cost_efficiency" + ], + "title": "Metric Type", + "type": "string" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/notification-type.json b/schemas/cache/1.0.0/notification-type.json new file mode 100644 index 00000000..3e05cc5a --- /dev/null +++ b/schemas/cache/1.0.0/notification-type.json @@ -0,0 +1,13 @@ +{ + "$id": "/schemas/v1/enums/notification-type.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Type of delivery notification for media buy reporting", + "enum": [ + "scheduled", + "final", + "delayed", + "adjusted" + ], + "title": "Notification Type", + "type": "string" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/performance-feedback.json b/schemas/cache/1.0.0/performance-feedback.json index 6ea7e5cf..508213a5 100644 --- a/schemas/cache/1.0.0/performance-feedback.json +++ b/schemas/cache/1.0.0/performance-feedback.json @@ -18,14 +18,8 @@ "type": "string" }, "feedback_source": { - "description": "Source of the performance data", - "enum": [ - "buyer_attribution", - "third_party_measurement", - "platform_analytics", - "verification_partner" - ], - "type": "string" + "$ref": "feedback-source.json", + "description": "Source of the performance data" }, "measurement_period": { "additionalProperties": false, @@ -53,18 +47,8 @@ "type": "string" }, "metric_type": { - "description": "The business metric being measured", - "enum": [ - "overall_performance", - "conversion_rate", - "brand_lift", - "click_through_rate", - "completion_rate", - "viewability", - "brand_safety", - "cost_efficiency" - ], - "type": "string" + "$ref": "metric-type.json", + "description": "The business metric being measured" }, "package_id": { "description": "Specific package within the media buy (if feedback is package-specific)", diff --git a/schemas/cache/1.0.0/preview-creative-request.json b/schemas/cache/1.0.0/preview-creative-request.json index a676eacb..9b50f613 100644 --- a/schemas/cache/1.0.0/preview-creative-request.json +++ b/schemas/cache/1.0.0/preview-creative-request.json @@ -49,13 +49,9 @@ "type": "array" }, "output_format": { + "$ref": "preview-output-format.json", "default": "url", - "description": "Output format for previews. 'url' returns preview_url (iframe-embeddable URL), 'html' returns preview_html (raw HTML for direct embedding). Default: 'url' for backward compatibility.", - "enum": [ - "url", - "html" - ], - "type": "string" + "description": "Output format for previews. 'url' returns preview_url (iframe-embeddable URL), 'html' returns preview_html (raw HTML for direct embedding). Default: 'url' for backward compatibility." }, "request_type": { "const": "single", @@ -84,13 +80,9 @@ "type": "object" }, "output_format": { + "$ref": "preview-output-format.json", "default": "url", - "description": "Default output format for all requests in this batch. Individual requests can override this. 'url' returns preview_url (iframe-embeddable URL), 'html' returns preview_html (raw HTML for direct embedding).", - "enum": [ - "url", - "html" - ], - "type": "string" + "description": "Default output format for all requests in this batch. Individual requests can override this. 'url' returns preview_url (iframe-embeddable URL), 'html' returns preview_html (raw HTML for direct embedding)." }, "request_type": { "const": "batch", @@ -139,13 +131,9 @@ "type": "array" }, "output_format": { + "$ref": "preview-output-format.json", "default": "url", - "description": "Output format for this preview. 'url' returns preview_url, 'html' returns preview_html.", - "enum": [ - "url", - "html" - ], - "type": "string" + "description": "Output format for this preview. 'url' returns preview_url, 'html' returns preview_html." }, "template_id": { "description": "Specific template ID for custom format rendering", diff --git a/schemas/cache/1.0.0/preview-output-format.json b/schemas/cache/1.0.0/preview-output-format.json new file mode 100644 index 00000000..e32ab49f --- /dev/null +++ b/schemas/cache/1.0.0/preview-output-format.json @@ -0,0 +1,11 @@ +{ + "$id": "/schemas/v1/enums/preview-output-format.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Output format for creative previews", + "enum": [ + "url", + "html" + ], + "title": "Preview Output Format", + "type": "string" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/product-filters.json b/schemas/cache/1.0.0/product-filters.json new file mode 100644 index 00000000..e98e5925 --- /dev/null +++ b/schemas/cache/1.0.0/product-filters.json @@ -0,0 +1,40 @@ +{ + "$id": "/schemas/v1/core/product-filters.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "description": "Structured filters for product discovery", + "properties": { + "delivery_type": { + "$ref": "delivery-type.json" + }, + "format_ids": { + "description": "Filter by specific format IDs", + "items": { + "$ref": "format-id.json" + }, + "type": "array" + }, + "format_types": { + "description": "Filter by format types", + "items": { + "$ref": "format-category.json" + }, + "type": "array" + }, + "is_fixed_price": { + "description": "Filter for fixed price vs auction products", + "type": "boolean" + }, + "min_exposures": { + "description": "Minimum exposures/impressions needed for measurement validity", + "minimum": 1, + "type": "integer" + }, + "standard_formats_only": { + "description": "Only return products accepting IAB standard formats", + "type": "boolean" + } + }, + "title": "Product Filters", + "type": "object" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/product.json b/schemas/cache/1.0.0/product.json index 9f762d9f..b5ac9ae8 100644 --- a/schemas/cache/1.0.0/product.json +++ b/schemas/cache/1.0.0/product.json @@ -9,7 +9,7 @@ "type": "string" }, "creative_policy": { - "$ref": "/schemas/v1/core/creative-policy.json" + "$ref": "creative-policy.json" }, "delivery_measurement": { "description": "Measurement provider and methodology for delivery metrics. The buyer accepts the declared provider as the source of truth for the buy. REQUIRED for all products.", @@ -29,7 +29,7 @@ "type": "object" }, "delivery_type": { - "$ref": "/schemas/v1/enums/delivery-type.json" + "$ref": "delivery-type.json" }, "description": { "description": "Detailed description of the product and its inventory", @@ -48,7 +48,7 @@ "format_ids": { "description": "Array of supported creative format IDs - structured format_id objects with agent_url and id", "items": { - "$ref": "/schemas/v1/core/format-id.json" + "$ref": "format-id.json" }, "type": "array" }, @@ -57,7 +57,7 @@ "type": "boolean" }, "measurement": { - "$ref": "/schemas/v1/core/measurement.json" + "$ref": "measurement.json" }, "name": { "description": "Human-readable product name", @@ -66,7 +66,7 @@ "placements": { "description": "Optional array of specific placements within this product. When provided, buyers can target specific placements when assigning creatives.", "items": { - "$ref": "/schemas/v1/core/placement.json" + "$ref": "placement.json" }, "minItems": 1, "type": "array" @@ -74,7 +74,7 @@ "pricing_options": { "description": "Available pricing models for this product", "items": { - "$ref": "/schemas/v1/core/pricing-option.json" + "$ref": "pricing-option.json" }, "minItems": 1, "type": "array" @@ -84,7 +84,7 @@ "description": "Optional standard visual card (300x400px) for displaying this product in user interfaces. Can be rendered via preview_creative or pre-generated.", "properties": { "format_id": { - "$ref": "/schemas/v1/core/format-id.json", + "$ref": "format-id.json", "description": "Creative format defining the card layout (typically product_card_standard)" }, "manifest": { @@ -104,7 +104,7 @@ "description": "Optional detailed card with carousel and full specifications. Provides rich product presentation similar to media kit pages.", "properties": { "format_id": { - "$ref": "/schemas/v1/core/format-id.json", + "$ref": "format-id.json", "description": "Creative format defining the detailed card layout (typically product_card_detailed)" }, "manifest": { @@ -126,13 +126,13 @@ "publisher_properties": { "description": "Publisher properties covered by this product. Buyers fetch actual property definitions from each publisher's adagents.json and validate agent authorization. Selection patterns mirror the authorization patterns in adagents.json for consistency.", "items": { - "$ref": "/schemas/v1/core/publisher-property-selector.json" + "$ref": "publisher-property-selector.json" }, "minItems": 1, "type": "array" }, "reporting_capabilities": { - "$ref": "/schemas/v1/core/reporting-capabilities.json" + "$ref": "reporting-capabilities.json" } }, "required": [ diff --git a/schemas/cache/1.0.0/promoted-offerings.json b/schemas/cache/1.0.0/promoted-offerings.json index 0cbe189f..8b2c9d45 100644 --- a/schemas/cache/1.0.0/promoted-offerings.json +++ b/schemas/cache/1.0.0/promoted-offerings.json @@ -69,7 +69,7 @@ "type": "object" }, "brand_manifest": { - "$ref": "/schemas/v1/core/brand-manifest-ref.json", + "$ref": "brand-manifest-ref.json", "description": "Brand information manifest containing assets, themes, and guidelines. Can be provided inline or as a URL reference to a hosted manifest." }, "offerings": { @@ -103,7 +103,7 @@ "type": "array" }, "product_selectors": { - "$ref": "/schemas/v1/core/promoted-products.json", + "$ref": "promoted-products.json", "description": "Selectors to choose which products/offerings from the brand manifest product catalog to promote" } }, diff --git a/schemas/cache/1.0.0/property-type.json b/schemas/cache/1.0.0/property-type.json new file mode 100644 index 00000000..70a56be7 --- /dev/null +++ b/schemas/cache/1.0.0/property-type.json @@ -0,0 +1,16 @@ +{ + "$id": "/schemas/v1/enums/property-type.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Types of advertising properties that can be represented in AdCP", + "enum": [ + "website", + "mobile_app", + "ctv_app", + "dooh", + "podcast", + "radio", + "streaming_audio" + ], + "title": "Property Type", + "type": "string" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/property.json b/schemas/cache/1.0.0/property.json index 701a74f6..1eced51f 100644 --- a/schemas/cache/1.0.0/property.json +++ b/schemas/cache/1.0.0/property.json @@ -37,17 +37,8 @@ "type": "string" }, "property_type": { - "description": "Type of advertising property", - "enum": [ - "website", - "mobile_app", - "ctv_app", - "dooh", - "podcast", - "radio", - "streaming_audio" - ], - "type": "string" + "$ref": "property-type.json", + "description": "Type of advertising property" }, "publisher_domain": { "description": "Domain where adagents.json should be checked for authorization validation. Required for list_authorized_properties response. Optional in adagents.json (file location implies domain).", diff --git a/schemas/cache/1.0.0/provide-performance-feedback-request.json b/schemas/cache/1.0.0/provide-performance-feedback-request.json index d25df02c..e424f669 100644 --- a/schemas/cache/1.0.0/provide-performance-feedback-request.json +++ b/schemas/cache/1.0.0/provide-performance-feedback-request.json @@ -15,15 +15,9 @@ "type": "string" }, "feedback_source": { + "$ref": "feedback-source.json", "default": "buyer_attribution", - "description": "Source of the performance data", - "enum": [ - "buyer_attribution", - "third_party_measurement", - "platform_analytics", - "verification_partner" - ], - "type": "string" + "description": "Source of the performance data" }, "measurement_period": { "additionalProperties": false, @@ -52,19 +46,9 @@ "type": "string" }, "metric_type": { + "$ref": "metric-type.json", "default": "overall_performance", - "description": "The business metric being measured", - "enum": [ - "overall_performance", - "conversion_rate", - "brand_lift", - "click_through_rate", - "completion_rate", - "viewability", - "brand_safety", - "cost_efficiency" - ], - "type": "string" + "description": "The business metric being measured" }, "package_id": { "description": "Specific package within the media buy (if feedback is package-specific)", diff --git a/schemas/cache/1.0.0/push-notification-config.json b/schemas/cache/1.0.0/push-notification-config.json index 34053a91..108317a4 100644 --- a/schemas/cache/1.0.0/push-notification-config.json +++ b/schemas/cache/1.0.0/push-notification-config.json @@ -16,11 +16,7 @@ "schemes": { "description": "Array of authentication schemes. Supported: ['Bearer'] for simple token auth, ['HMAC-SHA256'] for signature verification (recommended for production)", "items": { - "enum": [ - "Bearer", - "HMAC-SHA256" - ], - "type": "string" + "$ref": "auth-scheme.json" }, "maxItems": 1, "minItems": 1, diff --git a/schemas/cache/1.0.0/reporting-capabilities.json b/schemas/cache/1.0.0/reporting-capabilities.json index b9463870..2b5fad13 100644 --- a/schemas/cache/1.0.0/reporting-capabilities.json +++ b/schemas/cache/1.0.0/reporting-capabilities.json @@ -20,18 +20,7 @@ ] ], "items": { - "enum": [ - "impressions", - "spend", - "clicks", - "ctr", - "video_completions", - "completion_rate", - "conversions", - "viewability", - "engagement_rate" - ], - "type": "string" + "$ref": "available-metric.json" }, "type": "array", "uniqueItems": true @@ -39,12 +28,7 @@ "available_reporting_frequencies": { "description": "Supported reporting frequency options", "items": { - "enum": [ - "hourly", - "daily", - "monthly" - ], - "type": "string" + "$ref": "reporting-frequency.json" }, "minItems": 1, "type": "array", diff --git a/schemas/cache/1.0.0/reporting-frequency.json b/schemas/cache/1.0.0/reporting-frequency.json new file mode 100644 index 00000000..bdb1dcac --- /dev/null +++ b/schemas/cache/1.0.0/reporting-frequency.json @@ -0,0 +1,12 @@ +{ + "$id": "/schemas/v1/enums/reporting-frequency.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Available frequencies for delivery reports and metrics updates", + "enum": [ + "hourly", + "daily", + "monthly" + ], + "title": "Reporting Frequency", + "type": "string" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/signal-catalog-type.json b/schemas/cache/1.0.0/signal-catalog-type.json new file mode 100644 index 00000000..d8a08d55 --- /dev/null +++ b/schemas/cache/1.0.0/signal-catalog-type.json @@ -0,0 +1,12 @@ +{ + "$id": "/schemas/v1/enums/signal-catalog-type.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Types of signal catalogs available for audience targeting", + "enum": [ + "marketplace", + "custom", + "owned" + ], + "title": "Signal Catalog Type", + "type": "string" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/signal-filters.json b/schemas/cache/1.0.0/signal-filters.json new file mode 100644 index 00000000..e0b8cb13 --- /dev/null +++ b/schemas/cache/1.0.0/signal-filters.json @@ -0,0 +1,35 @@ +{ + "$id": "/schemas/v1/core/signal-filters.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "description": "Filters to refine signal discovery results", + "properties": { + "catalog_types": { + "description": "Filter by catalog type", + "items": { + "$ref": "signal-catalog-type.json" + }, + "type": "array" + }, + "data_providers": { + "description": "Filter by specific data providers", + "items": { + "type": "string" + }, + "type": "array" + }, + "max_cpm": { + "description": "Maximum CPM price filter", + "minimum": 0, + "type": "number" + }, + "min_coverage_percentage": { + "description": "Minimum coverage requirement", + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "title": "Signal Filters", + "type": "object" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/sort-direction.json b/schemas/cache/1.0.0/sort-direction.json new file mode 100644 index 00000000..9458b0d4 --- /dev/null +++ b/schemas/cache/1.0.0/sort-direction.json @@ -0,0 +1,11 @@ +{ + "$id": "/schemas/v1/enums/sort-direction.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Sort direction for list queries", + "enum": [ + "asc", + "desc" + ], + "title": "Sort Direction", + "type": "string" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/sync-creatives-request.json b/schemas/cache/1.0.0/sync-creatives-request.json index 6e0baebc..604a4e9b 100644 --- a/schemas/cache/1.0.0/sync-creatives-request.json +++ b/schemas/cache/1.0.0/sync-creatives-request.json @@ -119,13 +119,9 @@ "description": "Optional webhook configuration for async sync notifications. Publisher will send webhook when sync completes if operation takes longer than immediate response time (typically for large bulk operations or manual approval/HITL)." }, "validation_mode": { + "$ref": "validation-mode.json", "default": "strict", - "description": "Validation strictness. 'strict' fails entire sync on any validation error. 'lenient' processes valid creatives and reports errors.", - "enum": [ - "strict", - "lenient" - ], - "type": "string" + "description": "Validation strictness. 'strict' fails entire sync on any validation error. 'lenient' processes valid creatives and reports errors." } }, "required": [ diff --git a/schemas/cache/1.0.0/sync-creatives-response.json b/schemas/cache/1.0.0/sync-creatives-response.json index fd5df269..37f57372 100644 --- a/schemas/cache/1.0.0/sync-creatives-response.json +++ b/schemas/cache/1.0.0/sync-creatives-response.json @@ -23,15 +23,8 @@ "additionalProperties": false, "properties": { "action": { - "description": "Action taken for this creative", - "enum": [ - "created", - "updated", - "unchanged", - "failed", - "deleted" - ], - "type": "string" + "$ref": "creative-action.json", + "description": "Action taken for this creative" }, "assigned_to": { "description": "Package IDs this creative was successfully assigned to (only present when assignments were requested)", diff --git a/schemas/cache/1.0.0/tasks-list-request.json b/schemas/cache/1.0.0/tasks-list-request.json index 0d50ac2f..9298d875 100644 --- a/schemas/cache/1.0.0/tasks-list-request.json +++ b/schemas/cache/1.0.0/tasks-list-request.json @@ -79,21 +79,13 @@ "type": "string" }, "domain": { - "description": "Filter by single AdCP domain", - "enum": [ - "media-buy", - "signals" - ], - "type": "string" + "$ref": "adcp-domain.json", + "description": "Filter by single AdCP domain" }, "domains": { "description": "Filter by multiple AdCP domains", "items": { - "enum": [ - "media-buy", - "signals" - ], - "type": "string" + "$ref": "adcp-domain.json" }, "type": "array" }, @@ -174,13 +166,9 @@ "description": "Sorting parameters", "properties": { "direction": { + "$ref": "sort-direction.json", "default": "desc", - "description": "Sort direction", - "enum": [ - "asc", - "desc" - ], - "type": "string" + "description": "Sort direction" }, "field": { "default": "created_at", diff --git a/schemas/cache/1.0.0/update-frequency.json b/schemas/cache/1.0.0/update-frequency.json new file mode 100644 index 00000000..00909275 --- /dev/null +++ b/schemas/cache/1.0.0/update-frequency.json @@ -0,0 +1,13 @@ +{ + "$id": "/schemas/v1/enums/update-frequency.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Frequency of product catalog updates", + "enum": [ + "realtime", + "hourly", + "daily", + "weekly" + ], + "title": "Update Frequency", + "type": "string" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/update-media-buy-response.json b/schemas/cache/1.0.0/update-media-buy-response.json index 7dacf2bc..66423362 100644 --- a/schemas/cache/1.0.0/update-media-buy-response.json +++ b/schemas/cache/1.0.0/update-media-buy-response.json @@ -15,7 +15,7 @@ "affected_packages": { "description": "Array of packages that were modified with complete state information", "items": { - "$ref": "/schemas/v1/core/package.json" + "$ref": "package.json" }, "type": "array" }, @@ -78,7 +78,7 @@ "errors": { "description": "Array of errors explaining why the operation failed", "items": { - "$ref": "/schemas/v1/core/error.json" + "$ref": "error.json" }, "minItems": 1, "type": "array" diff --git a/schemas/cache/1.0.0/url-asset-type.json b/schemas/cache/1.0.0/url-asset-type.json new file mode 100644 index 00000000..e0605571 --- /dev/null +++ b/schemas/cache/1.0.0/url-asset-type.json @@ -0,0 +1,12 @@ +{ + "$id": "/schemas/v1/enums/url-asset-type.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Types of URL assets for tracking and click-through purposes", + "enum": [ + "clickthrough", + "tracker_pixel", + "tracker_script" + ], + "title": "URL Asset Type", + "type": "string" +} \ No newline at end of file diff --git a/schemas/cache/1.0.0/url-asset.json b/schemas/cache/1.0.0/url-asset.json index 83fa84e8..f4fdb3e3 100644 --- a/schemas/cache/1.0.0/url-asset.json +++ b/schemas/cache/1.0.0/url-asset.json @@ -14,13 +14,8 @@ "type": "string" }, "url_type": { - "description": "Type of URL asset: 'clickthrough' for user click destination (landing page), 'tracker_pixel' for impression/event tracking via HTTP request (fires GET, expects pixel/204 response), 'tracker_script' for measurement SDKs that must load as