From bd84fec099e14dc9434329173db9c48fee60b7eb Mon Sep 17 00:00:00 2001 From: Brian O'Kelley Date: Fri, 21 Nov 2025 10:53:53 -0500 Subject: [PATCH 1/4] feat: sync AdCP schema updates and simplify type architecture MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Sync 140 schemas from upstream (61 updated) including filter ref splits - Regenerate all Pydantic types with new schema structure - Add backward compatibility aliases for renamed types (e.g., Action → CreativeAction) - Export filter types (CreativeFilters, ProductFilters, SignalFilters) - Consolidate stable.py into types/__init__.py (eliminate redundant layer) - Update all imports from adcp.types.stable → adcp.types 🤖 Generated with Claude Code Co-Authored-By: Claude --- CLAUDE.md | 16 +- schemas/cache/.hashes.json | 88 ++- schemas/cache/1.0.0/adcp-domain.json | 11 + schemas/cache/1.0.0/auth-scheme.json | 11 + schemas/cache/1.0.0/available-metric.json | 18 + .../cache/1.0.0/co-branding-requirement.json | 12 + schemas/cache/1.0.0/creative-action.json | 14 + .../1.0.0/creative-agent-capability.json | 13 + schemas/cache/1.0.0/creative-filters.json | 97 +++ schemas/cache/1.0.0/creative-policy.json | 18 +- schemas/cache/1.0.0/creative-sort-field.json | 15 + schemas/cache/1.0.0/daast-asset.json | 46 +- schemas/cache/1.0.0/daast-tracking-event.json | 20 + schemas/cache/1.0.0/daast-version.json | 11 + schemas/cache/1.0.0/dimension-unit.json | 13 + schemas/cache/1.0.0/feed-format.json | 12 + schemas/cache/1.0.0/feedback-source.json | 13 + schemas/cache/1.0.0/format.json | 10 +- .../1.0.0/get-media-buy-delivery-request.json | 19 +- schemas/cache/1.0.0/get-products-request.json | 43 +- schemas/cache/1.0.0/get-signals-request.json | 36 +- schemas/cache/1.0.0/get-signals-response.json | 9 +- schemas/cache/1.0.0/history-entry-type.json | 11 + schemas/cache/1.0.0/http-method.json | 11 + schemas/cache/1.0.0/index.json | 136 ++++ schemas/cache/1.0.0/javascript-asset.json | 9 +- .../cache/1.0.0/javascript-module-type.json | 12 + .../cache/1.0.0/landing-page-requirement.json | 12 + .../1.0.0/list-creative-formats-response.json | 12 +- .../cache/1.0.0/list-creatives-request.json | 113 +--- .../cache/1.0.0/list-creatives-response.json | 6 +- schemas/cache/1.0.0/markdown-asset.json | 8 +- schemas/cache/1.0.0/markdown-flavor.json | 11 + schemas/cache/1.0.0/metric-type.json | 17 + schemas/cache/1.0.0/notification-type.json | 13 + schemas/cache/1.0.0/performance-feedback.json | 24 +- .../cache/1.0.0/preview-creative-request.json | 32 +- .../cache/1.0.0/preview-output-format.json | 11 + schemas/cache/1.0.0/product-filters.json | 40 ++ schemas/cache/1.0.0/property-type.json | 16 + schemas/cache/1.0.0/property.json | 15 +- .../provide-performance-feedback-request.json | 24 +- .../cache/1.0.0/push-notification-config.json | 6 +- .../cache/1.0.0/reporting-capabilities.json | 20 +- schemas/cache/1.0.0/reporting-frequency.json | 12 + schemas/cache/1.0.0/signal-catalog-type.json | 12 + schemas/cache/1.0.0/signal-filters.json | 35 + schemas/cache/1.0.0/sort-direction.json | 11 + .../cache/1.0.0/sync-creatives-request.json | 12 +- .../cache/1.0.0/sync-creatives-response.json | 13 +- schemas/cache/1.0.0/tasks-list-request.json | 30 +- schemas/cache/1.0.0/update-frequency.json | 13 + schemas/cache/1.0.0/url-asset-type.json | 12 + schemas/cache/1.0.0/url-asset.json | 9 +- schemas/cache/1.0.0/validation-mode.json | 11 + schemas/cache/1.0.0/vast-asset.json | 62 +- schemas/cache/1.0.0/vast-tracking-event.json | 25 + schemas/cache/1.0.0/vast-version.json | 14 + schemas/cache/1.0.0/webhook-asset.json | 27 +- schemas/cache/1.0.0/webhook-payload.json | 8 +- .../cache/1.0.0/webhook-response-type.json | 13 + .../cache/1.0.0/webhook-security-method.json | 12 + src/adcp/__init__.py | 12 +- src/adcp/client.py | 4 +- src/adcp/simple.py | 2 +- src/adcp/types/__init__.py | 630 +++++++++--------- src/adcp/types/_generated.py | 161 +++-- src/adcp/types/generated_poc/adcp_domain.py | 12 + src/adcp/types/generated_poc/auth_scheme.py | 12 + .../types/generated_poc/available_metric.py | 19 + .../generated_poc/co_branding_requirement.py | 13 + .../types/generated_poc/creative_action.py | 15 + .../creative_agent_capability.py | 14 + .../types/generated_poc/creative_filters.py | 77 +++ .../types/generated_poc/creative_policy.py | 24 +- .../generated_poc/creative_sort_field.py | 16 + src/adcp/types/generated_poc/daast_asset.py | 33 +- .../generated_poc/daast_tracking_event.py | 21 + src/adcp/types/generated_poc/daast_version.py | 12 + .../types/generated_poc/dimension_unit.py | 14 + src/adcp/types/generated_poc/feed_format.py | 13 + .../types/generated_poc/feedback_source.py | 14 + src/adcp/types/generated_poc/format.py | 16 +- .../get_media_buy_delivery_request.py | 22 +- .../generated_poc/get_products_request.py | 39 +- .../generated_poc/get_signals_request.py | 29 +- .../generated_poc/get_signals_response.py | 15 +- .../types/generated_poc/history_entry_type.py | 12 + src/adcp/types/generated_poc/http_method.py | 12 + .../types/generated_poc/javascript_asset.py | 14 +- .../generated_poc/javascript_module_type.py | 13 + .../generated_poc/landing_page_requirement.py | 13 + .../list_creative_formats_response.py | 15 +- .../generated_poc/list_creatives_request.py | 97 +-- .../generated_poc/list_creatives_response.py | 30 +- .../types/generated_poc/markdown_asset.py | 12 +- .../types/generated_poc/markdown_flavor.py | 12 + src/adcp/types/generated_poc/metric_type.py | 18 + .../types/generated_poc/notification_type.py | 14 + .../generated_poc/performance_feedback.py | 29 +- .../generated_poc/preview_creative_request.py | 21 +- .../generated_poc/preview_output_format.py | 12 + .../types/generated_poc/product_filters.py | 36 + src/adcp/types/generated_poc/property.py | 18 +- src/adcp/types/generated_poc/property_type.py | 17 + .../provide_performance_feedback_request.py | 30 +- .../generated_poc/push_notification_config.py | 10 +- .../generated_poc/reporting_capabilities.py | 25 +- .../generated_poc/reporting_frequency.py | 13 + .../generated_poc/signal_catalog_type.py | 13 + .../types/generated_poc/signal_filters.py | 29 + .../types/generated_poc/sort_direction.py | 12 + .../generated_poc/sync_creatives_request.py | 13 +- .../generated_poc/sync_creatives_response.py | 17 +- .../types/generated_poc/tasks_list_request.py | 24 +- .../types/generated_poc/update_frequency.py | 14 + src/adcp/types/generated_poc/url_asset.py | 11 +- .../types/generated_poc/url_asset_type.py | 13 + .../types/generated_poc/validation_mode.py | 12 + src/adcp/types/generated_poc/vast_asset.py | 49 +- .../generated_poc/vast_tracking_event.py | 26 + src/adcp/types/generated_poc/vast_version.py | 15 + src/adcp/types/generated_poc/webhook_asset.py | 32 +- .../types/generated_poc/webhook_payload.py | 12 +- .../generated_poc/webhook_response_type.py | 14 + .../generated_poc/webhook_security_method.py | 13 + src/adcp/types/stable.py | 449 ------------- src/adcp/utils/preview_cache.py | 10 +- tests/test_type_aliases.py | 4 +- 129 files changed, 2063 insertions(+), 1866 deletions(-) create mode 100644 schemas/cache/1.0.0/adcp-domain.json create mode 100644 schemas/cache/1.0.0/auth-scheme.json create mode 100644 schemas/cache/1.0.0/available-metric.json create mode 100644 schemas/cache/1.0.0/co-branding-requirement.json create mode 100644 schemas/cache/1.0.0/creative-action.json create mode 100644 schemas/cache/1.0.0/creative-agent-capability.json create mode 100644 schemas/cache/1.0.0/creative-filters.json create mode 100644 schemas/cache/1.0.0/creative-sort-field.json create mode 100644 schemas/cache/1.0.0/daast-tracking-event.json create mode 100644 schemas/cache/1.0.0/daast-version.json create mode 100644 schemas/cache/1.0.0/dimension-unit.json create mode 100644 schemas/cache/1.0.0/feed-format.json create mode 100644 schemas/cache/1.0.0/feedback-source.json create mode 100644 schemas/cache/1.0.0/history-entry-type.json create mode 100644 schemas/cache/1.0.0/http-method.json create mode 100644 schemas/cache/1.0.0/javascript-module-type.json create mode 100644 schemas/cache/1.0.0/landing-page-requirement.json create mode 100644 schemas/cache/1.0.0/markdown-flavor.json create mode 100644 schemas/cache/1.0.0/metric-type.json create mode 100644 schemas/cache/1.0.0/notification-type.json create mode 100644 schemas/cache/1.0.0/preview-output-format.json create mode 100644 schemas/cache/1.0.0/product-filters.json create mode 100644 schemas/cache/1.0.0/property-type.json create mode 100644 schemas/cache/1.0.0/reporting-frequency.json create mode 100644 schemas/cache/1.0.0/signal-catalog-type.json create mode 100644 schemas/cache/1.0.0/signal-filters.json create mode 100644 schemas/cache/1.0.0/sort-direction.json create mode 100644 schemas/cache/1.0.0/update-frequency.json create mode 100644 schemas/cache/1.0.0/url-asset-type.json create mode 100644 schemas/cache/1.0.0/validation-mode.json create mode 100644 schemas/cache/1.0.0/vast-tracking-event.json create mode 100644 schemas/cache/1.0.0/vast-version.json create mode 100644 schemas/cache/1.0.0/webhook-response-type.json create mode 100644 schemas/cache/1.0.0/webhook-security-method.json create mode 100644 src/adcp/types/generated_poc/adcp_domain.py create mode 100644 src/adcp/types/generated_poc/auth_scheme.py create mode 100644 src/adcp/types/generated_poc/available_metric.py create mode 100644 src/adcp/types/generated_poc/co_branding_requirement.py create mode 100644 src/adcp/types/generated_poc/creative_action.py create mode 100644 src/adcp/types/generated_poc/creative_agent_capability.py create mode 100644 src/adcp/types/generated_poc/creative_filters.py create mode 100644 src/adcp/types/generated_poc/creative_sort_field.py create mode 100644 src/adcp/types/generated_poc/daast_tracking_event.py create mode 100644 src/adcp/types/generated_poc/daast_version.py create mode 100644 src/adcp/types/generated_poc/dimension_unit.py create mode 100644 src/adcp/types/generated_poc/feed_format.py create mode 100644 src/adcp/types/generated_poc/feedback_source.py create mode 100644 src/adcp/types/generated_poc/history_entry_type.py create mode 100644 src/adcp/types/generated_poc/http_method.py create mode 100644 src/adcp/types/generated_poc/javascript_module_type.py create mode 100644 src/adcp/types/generated_poc/landing_page_requirement.py create mode 100644 src/adcp/types/generated_poc/markdown_flavor.py create mode 100644 src/adcp/types/generated_poc/metric_type.py create mode 100644 src/adcp/types/generated_poc/notification_type.py create mode 100644 src/adcp/types/generated_poc/preview_output_format.py create mode 100644 src/adcp/types/generated_poc/product_filters.py create mode 100644 src/adcp/types/generated_poc/property_type.py create mode 100644 src/adcp/types/generated_poc/reporting_frequency.py create mode 100644 src/adcp/types/generated_poc/signal_catalog_type.py create mode 100644 src/adcp/types/generated_poc/signal_filters.py create mode 100644 src/adcp/types/generated_poc/sort_direction.py create mode 100644 src/adcp/types/generated_poc/update_frequency.py create mode 100644 src/adcp/types/generated_poc/url_asset_type.py create mode 100644 src/adcp/types/generated_poc/validation_mode.py create mode 100644 src/adcp/types/generated_poc/vast_tracking_event.py create mode 100644 src/adcp/types/generated_poc/vast_version.py create mode 100644 src/adcp/types/generated_poc/webhook_response_type.py create mode 100644 src/adcp/types/generated_poc/webhook_security_method.py delete mode 100644 src/adcp/types/stable.py diff --git a/CLAUDE.md b/CLAUDE.md index 83568140..7b44bb42 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -19,7 +19,7 @@ PackageRequest = dict[str, Any] **Stable Public API Layer - Import Architecture** -**CRITICAL**: Both `generated_poc/` and `_generated.py` are internal implementation. Source code must ONLY import from `stable.py` or `aliases.py`. +**CRITICAL**: Both `generated_poc/` and `_generated.py` are internal implementation. Source code must ONLY import from `types/__init__.py` or `aliases.py`. ### Import Architecture @@ -30,9 +30,9 @@ generated_poc/*.py (internal, auto-generated from schemas) ↓ _generated.py (internal consolidation, handles name collisions) ↓ -stable.py (public API for base types) + aliases.py (public API for discriminated unions) +types/__init__.py (public API for base types) + aliases.py (public API for discriminated unions) ↓ -__init__.py (user-facing exports) +adcp/__init__.py (user-facing convenience exports) ``` ### Import Rules for Source Code @@ -40,7 +40,7 @@ __init__.py (user-facing exports) **✅ CORRECT - Public API only:** ```python # For base types (requests, responses, domain models) -from adcp.types.stable import ( +from adcp.types import ( GetProductsRequest, GetProductsResponse, Product, @@ -83,18 +83,18 @@ from adcp.types._generated import CreateMediaBuyResponse1 - Internal consolidation logic - Changes when collision handling evolves -3. **`stable.py` and `aliases.py`** provide: +3. **`types/__init__.py` and `aliases.py`** provide: - Clean, semantic names - Stability guarantees within major versions - Explicit public API ### Special Cases -**Only `stable.py` and `aliases.py` may import from `_generated.py`:** -- `stable.py`: Imports base types and re-exports with clean names +**Only `types/__init__.py` and `aliases.py` may import from `_generated.py`:** +- `types/__init__.py`: Imports base types and re-exports with clean names - `aliases.py`: Imports numbered discriminated union types and creates semantic aliases -**All other source files must import from `stable.py` or `aliases.py`.** +**All other source files must import from `types/__init__.py` or `aliases.py`.** **NEVER Modify Generated Files Directly** 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/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/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/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..1d764466 --- /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": "/schemas/v1/enums/creative-status.json", + "description": "Filter by creative approval status" + }, + "statuses": { + "description": "Filter by multiple creative statuses", + "items": { + "$ref": "/schemas/v1/enums/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..74f03d89 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": "/schemas/v1/enums/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": "/schemas/v1/enums/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..f2ed416b 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": "/schemas/v1/enums/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": "/schemas/v1/enums/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": "/schemas/v1/enums/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": "/schemas/v1/enums/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/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..d8932dc1 100644 --- a/schemas/cache/1.0.0/format.json +++ b/schemas/cache/1.0.0/format.json @@ -243,15 +243,9 @@ "type": "object" }, "unit": { + "$ref": "/schemas/v1/enums/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", 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..d9bf3009 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": "/schemas/v1/enums/media-buy-status.json" }, { "items": { - "enum": [ - "active", - "pending", - "paused", - "completed", - "failed" - ], - "type": "string" + "$ref": "/schemas/v1/enums/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..050878a4 100644 --- a/schemas/cache/1.0.0/get-products-request.json +++ b/schemas/cache/1.0.0/get-products-request.json @@ -5,7 +5,7 @@ "description": "Request parameters for discovering available advertising products", "properties": { "brand_manifest": { - "$ref": "brand-manifest-ref.json", + "$ref": "/schemas/v1/core/brand-manifest-ref.json", "description": "Brand information manifest providing brand context, assets, and product catalog. Can be provided inline or as a URL reference to a hosted manifest." }, "brief": { @@ -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": "/schemas/v1/core/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..b07b12ad 100644 --- a/schemas/cache/1.0.0/get-signals-request.json +++ b/schemas/cache/1.0.0/get-signals-request.json @@ -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": "/schemas/v1/core/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..c327dcc3 100644 --- a/schemas/cache/1.0.0/get-signals-response.json +++ b/schemas/cache/1.0.0/get-signals-response.json @@ -72,13 +72,8 @@ "type": "string" }, "signal_type": { - "description": "Type of signal", - "enum": [ - "marketplace", - "custom", - "owned" - ], - "type": "string" + "$ref": "/schemas/v1/enums/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..6c0256b4 100644 --- a/schemas/cache/1.0.0/index.json +++ b/schemas/cache/1.0.0/index.json @@ -70,6 +70,10 @@ "$ref": "/schemas/v1/core/creative-assignment.json", "description": "Assignment of a creative asset to a package" }, + "creative-filters": { + "$ref": "/schemas/v1/core/creative-filters.json", + "description": "Filter criteria for querying creative assets from the centralized library" + }, "creative-manifest": { "$ref": "/schemas/v1/core/creative-manifest.json", "description": "Complete specification of a creative with all assets needed for rendering" @@ -130,6 +134,10 @@ "$ref": "/schemas/v1/core/product.json", "description": "Represents available advertising inventory" }, + "product-filters": { + "$ref": "/schemas/v1/core/product-filters.json", + "description": "Structured filters for product discovery" + }, "promoted-products": { "$ref": "/schemas/v1/core/promoted-products.json", "description": "Product or offering selection for campaigns with multiple selection methods" @@ -150,6 +158,10 @@ "$ref": "/schemas/v1/core/response.json", "description": "Standard response structure (MCP)" }, + "signal-filters": { + "$ref": "/schemas/v1/core/signal-filters.json", + "description": "Filters to refine signal discovery results" + }, "start-timing": { "$ref": "/schemas/v1/core/start-timing.json", "description": "Campaign start timing: 'asap' or ISO 8601 date-time" @@ -210,22 +222,70 @@ "enums": { "description": "Enumerated types and constants", "schemas": { + "adcp-domain": { + "$ref": "/schemas/v1/enums/adcp-domain.json", + "description": "AdCP protocol domains (media-buy, signals)" + }, "asset-content-type": { "$ref": "/schemas/v1/enums/asset-content-type.json", "description": "Types of content that can be used as creative assets (image, video, html, etc.)" }, + "auth-scheme": { + "$ref": "/schemas/v1/enums/auth-scheme.json", + "description": "Authentication schemes for push notifications" + }, + "available-metric": { + "$ref": "/schemas/v1/enums/available-metric.json", + "description": "Standard delivery and performance metrics for reporting" + }, "channels": { "$ref": "/schemas/v1/enums/channels.json", "description": "Advertising channels (display, video, dooh, ctv, audio, etc.)" }, + "co-branding-requirement": { + "$ref": "/schemas/v1/enums/co-branding-requirement.json", + "description": "Co-branding policy for creatives (required, optional, none)" + }, + "creative-action": { + "$ref": "/schemas/v1/enums/creative-action.json", + "description": "Actions taken on creatives during sync (created, updated, unchanged, failed, deleted)" + }, + "creative-agent-capability": { + "$ref": "/schemas/v1/enums/creative-agent-capability.json", + "description": "Capabilities supported by creative agents (validation, assembly, generation, preview)" + }, + "creative-sort-field": { + "$ref": "/schemas/v1/enums/creative-sort-field.json", + "description": "Fields available for sorting creative listings" + }, "creative-status": { "$ref": "/schemas/v1/enums/creative-status.json", "description": "Status of a creative asset" }, + "daast-tracking-event": { + "$ref": "/schemas/v1/enums/daast-tracking-event.json", + "description": "Standard DAAST tracking events for audio playback and interaction" + }, + "daast-version": { + "$ref": "/schemas/v1/enums/daast-version.json", + "description": "Supported DAAST specification versions (1.0, 1.1)" + }, "delivery-type": { "$ref": "/schemas/v1/enums/delivery-type.json", "description": "Type of inventory delivery" }, + "dimension-unit": { + "$ref": "/schemas/v1/enums/dimension-unit.json", + "description": "Units of measurement for creative format dimensions (px, dp, inches, cm)" + }, + "feed-format": { + "$ref": "/schemas/v1/enums/feed-format.json", + "description": "Product catalog feed formats" + }, + "feedback-source": { + "$ref": "/schemas/v1/enums/feedback-source.json", + "description": "Source of performance feedback data" + }, "format-category": { "$ref": "/schemas/v1/enums/format-category.json", "description": "High-level categories for creative formats (audio, video, display, native, dooh, rich_media, universal)" @@ -234,14 +294,42 @@ "$ref": "/schemas/v1/enums/frequency-cap-scope.json", "description": "Scope for frequency cap application" }, + "history-entry-type": { + "$ref": "/schemas/v1/enums/history-entry-type.json", + "description": "Type of task history entry (request, response)" + }, + "http-method": { + "$ref": "/schemas/v1/enums/http-method.json", + "description": "HTTP methods for webhook requests (GET, POST)" + }, "identifier-types": { "$ref": "/schemas/v1/enums/identifier-types.json", "description": "Valid identifier types for property identification across different media types" }, + "javascript-module-type": { + "$ref": "/schemas/v1/enums/javascript-module-type.json", + "description": "JavaScript module format types (esm, commonjs, script)" + }, + "landing-page-requirement": { + "$ref": "/schemas/v1/enums/landing-page-requirement.json", + "description": "Landing page policy for creative destinations (any, retailer_site_only, must_include_retailer)" + }, + "markdown-flavor": { + "$ref": "/schemas/v1/enums/markdown-flavor.json", + "description": "Markdown specification flavors (commonmark, gfm)" + }, "media-buy-status": { "$ref": "/schemas/v1/enums/media-buy-status.json", "description": "Status of a media buy" }, + "metric-type": { + "$ref": "/schemas/v1/enums/metric-type.json", + "description": "Performance metric types for feedback and optimization" + }, + "notification-type": { + "$ref": "/schemas/v1/enums/notification-type.json", + "description": "Types of delivery notifications (scheduled, final, delayed, adjusted)" + }, "pacing": { "$ref": "/schemas/v1/enums/pacing.json", "description": "Budget pacing strategy" @@ -250,14 +338,34 @@ "$ref": "/schemas/v1/enums/package-status.json", "description": "Status of a package" }, + "preview-output-format": { + "$ref": "/schemas/v1/enums/preview-output-format.json", + "description": "Output formats for creative previews (url, html)" + }, "pricing-model": { "$ref": "/schemas/v1/enums/pricing-model.json", "description": "Supported pricing models for advertising products" }, + "property-type": { + "$ref": "/schemas/v1/enums/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", "description": "Valid identifier types for publisher/legal entity identification (TAG ID, DUNS, LEI, seller_id, GLN)" }, + "reporting-frequency": { + "$ref": "/schemas/v1/enums/reporting-frequency.json", + "description": "Frequencies for delivery reports (hourly, daily, monthly)" + }, + "signal-catalog-type": { + "$ref": "/schemas/v1/enums/signal-catalog-type.json", + "description": "Types of signal catalogs (marketplace, custom, owned)" + }, + "sort-direction": { + "$ref": "/schemas/v1/enums/sort-direction.json", + "description": "Sort direction for list queries (asc, desc)" + }, "standard-format-ids": { "$ref": "/schemas/v1/enums/standard-format-ids.json", "description": "Enumeration of all standard creative format identifiers" @@ -269,6 +377,34 @@ "task-type": { "$ref": "/schemas/v1/enums/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": "/schemas/v1/enums/update-frequency.json", + "description": "Frequency of product catalog updates" + }, + "url-asset-type": { + "$ref": "/schemas/v1/enums/url-asset-type.json", + "description": "Types of URL assets (clickthrough, tracker_pixel, tracker_script)" + }, + "validation-mode": { + "$ref": "/schemas/v1/enums/validation-mode.json", + "description": "Creative validation strictness levels (strict, lenient)" + }, + "vast-tracking-event": { + "$ref": "/schemas/v1/enums/vast-tracking-event.json", + "description": "Standard VAST tracking events for video playback and interaction" + }, + "vast-version": { + "$ref": "/schemas/v1/enums/vast-version.json", + "description": "Supported VAST specification versions (2.0, 3.0, 4.0, 4.1, 4.2)" + }, + "webhook-response-type": { + "$ref": "/schemas/v1/enums/webhook-response-type.json", + "description": "Expected response content types from webhooks" + }, + "webhook-security-method": { + "$ref": "/schemas/v1/enums/webhook-security-method.json", + "description": "Security methods for webhook authentication" } } }, diff --git a/schemas/cache/1.0.0/javascript-asset.json b/schemas/cache/1.0.0/javascript-asset.json index 519b2b43..b501d480 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": "/schemas/v1/enums/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-response.json b/schemas/cache/1.0.0/list-creative-formats-response.json index c89b1d64..666a7a23 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": "/schemas/v1/enums/creative-agent-capability.json" }, "type": "array" } @@ -46,14 +40,14 @@ "errors": { "description": "Task-specific errors and warnings (e.g., format availability issues)", "items": { - "$ref": "error.json" + "$ref": "/schemas/v1/core/error.json" }, "type": "array" }, "formats": { "description": "Full format definitions for all formats this agent supports. Each format's authoritative source is indicated by its agent_url field.", "items": { - "$ref": "format.json" + "$ref": "/schemas/v1/core/format.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..3807b089 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": "/schemas/v1/core/creative-filters.json" }, "include_assignments": { "default": true, @@ -209,26 +118,14 @@ "description": "Sorting parameters", "properties": { "direction": { + "$ref": "/schemas/v1/enums/sort-direction.json", "default": "desc", - "description": "Sort direction", - "enum": [ - "asc", - "desc" - ], - "type": "string" + "description": "Sort direction" }, "field": { + "$ref": "/schemas/v1/enums/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..1dc06013 100644 --- a/schemas/cache/1.0.0/list-creatives-response.json +++ b/schemas/cache/1.0.0/list-creatives-response.json @@ -378,11 +378,7 @@ "description": "Sort order that was applied", "properties": { "direction": { - "enum": [ - "asc", - "desc" - ], - "type": "string" + "$ref": "/schemas/v1/enums/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..62208ded 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": "/schemas/v1/enums/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..a54dbf45 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": "/schemas/v1/enums/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": "/schemas/v1/enums/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..28d4e385 100644 --- a/schemas/cache/1.0.0/preview-creative-request.json +++ b/schemas/cache/1.0.0/preview-creative-request.json @@ -13,11 +13,11 @@ "type": "object" }, "creative_manifest": { - "$ref": "creative-manifest.json", + "$ref": "/schemas/v1/core/creative-manifest.json", "description": "Complete creative manifest with all required assets (including promoted_offerings if required by the format)" }, "format_id": { - "$ref": "format-id.json", + "$ref": "/schemas/v1/core/format-id.json", "description": "Format identifier for rendering the preview" }, "inputs": { @@ -49,13 +49,9 @@ "type": "array" }, "output_format": { + "$ref": "/schemas/v1/enums/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": "/schemas/v1/enums/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", @@ -103,11 +95,11 @@ "additionalProperties": false, "properties": { "creative_manifest": { - "$ref": "creative-manifest.json", + "$ref": "/schemas/v1/core/creative-manifest.json", "description": "Complete creative manifest with all required assets" }, "format_id": { - "$ref": "format-id.json", + "$ref": "/schemas/v1/core/format-id.json", "description": "Format identifier for rendering the preview" }, "inputs": { @@ -139,13 +131,9 @@ "type": "array" }, "output_format": { + "$ref": "/schemas/v1/enums/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..038725f4 --- /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": "/schemas/v1/enums/delivery-type.json" + }, + "format_ids": { + "description": "Filter by specific format IDs", + "items": { + "$ref": "/schemas/v1/core/format-id.json" + }, + "type": "array" + }, + "format_types": { + "description": "Filter by format types", + "items": { + "$ref": "/schemas/v1/enums/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/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..f57739df 100644 --- a/schemas/cache/1.0.0/property.json +++ b/schemas/cache/1.0.0/property.json @@ -10,7 +10,7 @@ "additionalProperties": false, "properties": { "type": { - "$ref": "identifier-types.json", + "$ref": "/schemas/v1/enums/identifier-types.json", "description": "Type of identifier for this property" }, "value": { @@ -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": "/schemas/v1/enums/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..40a70014 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": "/schemas/v1/enums/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": "/schemas/v1/enums/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..6371d6bd 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": "/schemas/v1/enums/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..253b5992 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": "/schemas/v1/enums/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": "/schemas/v1/enums/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..8f868ad4 --- /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": "/schemas/v1/enums/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..f51f9c6a 100644 --- a/schemas/cache/1.0.0/sync-creatives-request.json +++ b/schemas/cache/1.0.0/sync-creatives-request.json @@ -94,7 +94,7 @@ "creatives": { "description": "Array of creative assets to sync (create or update)", "items": { - "$ref": "creative-asset.json" + "$ref": "/schemas/v1/core/creative-asset.json" }, "maxItems": 100, "type": "array" @@ -115,17 +115,13 @@ "type": "boolean" }, "push_notification_config": { - "$ref": "push-notification-config.json", + "$ref": "/schemas/v1/core/push-notification-config.json", "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": "/schemas/v1/enums/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..6dd7281e 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": "/schemas/v1/enums/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)", @@ -135,7 +128,7 @@ "errors": { "description": "Operation-level errors that prevented processing any creatives (e.g., authentication failure, service unavailable, invalid request format)", "items": { - "$ref": "error.json" + "$ref": "/schemas/v1/core/error.json" }, "minItems": 1, "type": "array" diff --git a/schemas/cache/1.0.0/tasks-list-request.json b/schemas/cache/1.0.0/tasks-list-request.json index 0d50ac2f..e84fb215 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": "/schemas/v1/enums/adcp-domain.json", + "description": "Filter by single AdCP domain" }, "domains": { "description": "Filter by multiple AdCP domains", "items": { - "enum": [ - "media-buy", - "signals" - ], - "type": "string" + "$ref": "/schemas/v1/enums/adcp-domain.json" }, "type": "array" }, @@ -102,13 +94,13 @@ "type": "boolean" }, "status": { - "$ref": "task-status.json", + "$ref": "/schemas/v1/enums/task-status.json", "description": "Filter by single task status" }, "statuses": { "description": "Filter by multiple task statuses", "items": { - "$ref": "task-status.json" + "$ref": "/schemas/v1/enums/task-status.json" }, "type": "array" }, @@ -121,13 +113,13 @@ "type": "array" }, "task_type": { - "$ref": "task-type.json", + "$ref": "/schemas/v1/enums/task-type.json", "description": "Filter by single task type" }, "task_types": { "description": "Filter by multiple task types", "items": { - "$ref": "task-type.json" + "$ref": "/schemas/v1/enums/task-type.json" }, "type": "array" }, @@ -174,13 +166,9 @@ "description": "Sorting parameters", "properties": { "direction": { + "$ref": "/schemas/v1/enums/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/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..696a6b0c 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