diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index eb98e539..bc182a08 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -106,13 +106,30 @@ jobs: python -m pip install --upgrade pip pip install -e ".[dev]" + - name: Check ADCP version + id: version-check + run: | + VERSION=$(cat src/adcp/ADCP_VERSION) + echo "ADCP_VERSION=$VERSION" + # Check if version contains pre-release identifiers (alpha, beta, rc) + if echo "$VERSION" | grep -qE '(alpha|beta|rc)'; then + echo "is_prerelease=true" >> $GITHUB_OUTPUT + echo "Pre-release version detected - will skip schema sync (may not be publicly accessible)" + else + echo "is_prerelease=false" >> $GITHUB_OUTPUT + echo "Stable version - will sync schemas from upstream" + fi + - name: Download latest schemas + if: steps.version-check.outputs.is_prerelease != 'true' run: python scripts/sync_schemas.py - name: Fix schema references + if: steps.version-check.outputs.is_prerelease != 'true' run: python scripts/fix_schema_refs.py - name: Generate models + if: steps.version-check.outputs.is_prerelease != 'true' run: python scripts/generate_types.py - name: Validate generated code syntax @@ -132,6 +149,7 @@ jobs: pytest tests/test_code_generation.py -v --tb=short - name: Check for schema drift + if: steps.version-check.outputs.is_prerelease != 'true' run: | # Check if only generation timestamp changed (expected when CI regenerates) if git diff --exit-code src/adcp/types/_generated.py schemas/cache/ | grep -v "^[-+]Generation date:"; then diff --git a/docs/examples/testing_patterns.py b/docs/examples/testing_patterns.py index 7cdb940b..4c5db883 100644 --- a/docs/examples/testing_patterns.py +++ b/docs/examples/testing_patterns.py @@ -68,9 +68,10 @@ def test_get_products_response_deserializes_from_protocol_json(self): ], "pricing_options": [ { - "model": "cpm_fixed_rate", - "is_fixed": true, - "cpm": 5.50 + "pricing_model": "cpm", + "pricing_option_id": "po-premium-1", + "currency": "USD", + "fixed_price": 5.50 } ] } @@ -182,7 +183,14 @@ async def test_buyer_discovers_products_for_coffee_campaign(self, mocker): "property_tags": ["morning", "lifestyle"], } ], - "pricing_options": [{"model": "cpm_fixed_rate", "is_fixed": True, "cpm": 4.50}], + "pricing_options": [ + { + "pricing_model": "cpm", + "pricing_option_id": "po-breakfast-1", + "currency": "USD", + "fixed_price": 4.50, + } + ], } ] } @@ -207,7 +215,9 @@ async def test_buyer_discovers_products_for_coffee_campaign(self, mocker): # Assert: Can plan budget from pricing pricing = product.pricing_options[0] - assert pricing.model in ["cpm_fixed_rate", "cpm_auction"] + assert pricing.pricing_model == "cpm" + # Fixed pricing has fixed_price, auction pricing has floor_price + assert pricing.fixed_price is not None or pricing.floor_price is not None @pytest.mark.asyncio async def test_buyer_handles_no_products_available(self, mocker): @@ -412,7 +422,14 @@ def test_anti_pattern_importing_generated_poc(self): "property_ids": ["site1"], } ], - "pricing_options": [{"model": "cpm_fixed_rate", "is_fixed": True, "cpm": 5.0}], + "pricing_options": [ + { + "pricing_model": "cpm", + "pricing_option_id": "po-test-1", + "currency": "USD", + "fixed_price": 5.0, + } + ], } product = Product.model_validate(product_json) @@ -510,7 +527,14 @@ def sample_product_json(): "property_ids": ["homepage", "mobile_app"], } ], - "pricing_options": [{"model": "cpm_fixed_rate", "is_fixed": True, "cpm": 5.50}], + "pricing_options": [ + { + "pricing_model": "cpm", + "pricing_option_id": "po-premium-1", + "currency": "USD", + "fixed_price": 5.50, + } + ], } diff --git a/docs/testing-guide.md b/docs/testing-guide.md index 6aff2fa7..b19a0c90 100644 --- a/docs/testing-guide.md +++ b/docs/testing-guide.md @@ -76,9 +76,10 @@ def test_get_products_response_deserializes_from_protocol_json(): ], "pricing_options": [ { - "model": "cpm_fixed_rate", - "is_fixed": true, - "cpm": 5.50 + "pricing_model": "cpm", + "pricing_option_id": "po-premium-1", + "currency": "USD", + "fixed_price": 5.50 } ] } @@ -191,7 +192,12 @@ async def test_buyer_discovers_products_for_coffee_campaign(mocker): } ], "pricing_options": [ - {"model": "cpm_fixed_rate", "is_fixed": True, "cpm": 4.50} + { + "pricing_model": "cpm", + "pricing_option_id": "po-breakfast-1", + "currency": "USD", + "fixed_price": 4.50, + } ], } ] @@ -221,7 +227,9 @@ async def test_buyer_discovers_products_for_coffee_campaign(mocker): # Assert: Can plan budget from pricing pricing = product.pricing_options[0] - assert pricing.model in ["cpm_fixed_rate", "cpm_auction"] + assert pricing.pricing_model == "cpm" + # Fixed pricing has fixed_price, auction pricing has floor_price + assert pricing.fixed_price is not None or pricing.floor_price is not None ``` ### Example: Handle Empty Results @@ -410,7 +418,12 @@ def sample_product_json(): } ], "pricing_options": [ - {"model": "cpm_fixed_rate", "is_fixed": True, "cpm": 5.50} + { + "pricing_model": "cpm", + "pricing_option_id": "po-premium-1", + "currency": "USD", + "fixed_price": 5.50, + } ], } ``` @@ -440,7 +453,12 @@ product_json = { "property_ids": ["site1"], }], "pricing_options": [ - {"model": "cpm_fixed_rate", "is_fixed": True, "cpm": 5.0} + { + "pricing_model": "cpm", + "pricing_option_id": "po-test-1", + "currency": "USD", + "fixed_price": 5.0, + } ], } diff --git a/schemas/cache/.hashes.json b/schemas/cache/.hashes.json index c92198b1..70d3b5e5 100644 --- a/schemas/cache/.hashes.json +++ b/schemas/cache/.hashes.json @@ -1,179 +1,208 @@ { - "https://adcontextprotocol.org/schemas/2.6.0/index.json": "1537f09a2322b856d4ba9d8a3d6ad53410001aeaadd0787d2f18108114410d37", - "https://adcontextprotocol.org/schemas/2.6.0/adagents.json": "3f6f73cdc071a70029c360335e2172a36ad80873bcfa76f9e3222cbcfd81674e", - "https://adcontextprotocol.org/schemas/2.6.0/core/activation-key.json": "bd518951d02618c71fbb7b986612e8eb407ff1e42e56e6425ff72fe62de6e398", - "https://adcontextprotocol.org/schemas/2.6.0/core/assets/audio-asset.json": "8f58b0eaab323f37148586ca6c6053c3837beb1f4e11bd90643d65493906fd9b", - "https://adcontextprotocol.org/schemas/2.6.0/core/assets/css-asset.json": "58b4d0e37c5c50de3aa0634e68782cb980243972effdbbbb031c9fed7909fcd6", - "https://adcontextprotocol.org/schemas/2.6.0/core/assets/daast-asset.json": "18f64de4f4364f2b088553022dde888e1bc6ae901c2aba7a1b92a5077a9953e5", - "https://adcontextprotocol.org/schemas/2.6.0/core/assets/html-asset.json": "b37af64a11db31323ae31507eb777db79faf3d1c3b66cefb8dbf464f6b95baf3", - "https://adcontextprotocol.org/schemas/2.6.0/core/assets/image-asset.json": "9c47dc5885925dada5edfe8fffa14b70f95d97f642d0273b6905cb3e080db96e", - "https://adcontextprotocol.org/schemas/2.6.0/core/assets/javascript-asset.json": "3ad5e2a3c9819e6e555a2963aa5bf3e027fc72510638e6d2d541142b6682fd75", - "https://adcontextprotocol.org/schemas/2.6.0/core/assets/text-asset.json": "c8fd0ccf60e36f96051ed39d29df5ad740af8bce2cf78b15586d2f1e9802d628", - "https://adcontextprotocol.org/schemas/2.6.0/core/assets/url-asset.json": "2ea5873ce10b2fa3c9974b336567ddf3f1d268845964dcbd1cb0491360ec41f8", - "https://adcontextprotocol.org/schemas/2.6.0/core/assets/vast-asset.json": "6afb68b10d96efea99e5df28636f26c12189660c73e3afd03b4b2434d87192b5", - "https://adcontextprotocol.org/schemas/2.6.0/core/assets/video-asset.json": "335d3757fd7e754915b36cb663ea512c253cd91f2300a31cc0f165147c5c482b", - "https://adcontextprotocol.org/schemas/2.6.0/core/assets/webhook-asset.json": "c2b54eaad6c73c993056f98640b1fefa10600e25d33db47b4c6950ea855f7bec", - "https://adcontextprotocol.org/schemas/2.6.0/core/async-response-data.json": "0504ab3c32e4c595fc8c08f6959ab7888d0418e0a3c529c6db54bfc3ec725958", - "https://adcontextprotocol.org/schemas/2.6.0/core/brand-manifest-ref.json": "b42d89abb6bbc3d94f778e4ca50db2afbc44abdc323ff6d023b0991bcf5c636d", - "https://adcontextprotocol.org/schemas/2.6.0/core/brand-manifest.json": "84d9894ee5ffa030faae0f1ef8ded063672646b9d2d93a3f95274e9b4d0d7e8f", - "https://adcontextprotocol.org/schemas/2.6.0/core/context.json": "c667cb6656a09b519e0149894c71892dc0b41058286330a7abec1c6be06d1dd5", - "https://adcontextprotocol.org/schemas/2.6.0/core/creative-asset.json": "54796fa16fdab4e27292a3046927f3fa4e3c0a31100d0193e5a9037ba325d7b8", - "https://adcontextprotocol.org/schemas/2.6.0/core/creative-assignment.json": "c974290891741554ed6cf52e90f8cd849ca42dc93945f93a0e1131db184f1dd3", - "https://adcontextprotocol.org/schemas/2.6.0/core/creative-filters.json": "2561da12331c8fe8fbc5b51a0548c63bea0dcbf8e6a4ef33e750177588f7bfd0", - "https://adcontextprotocol.org/schemas/2.6.0/core/creative-manifest.json": "5b1741e6c1f28afdc7809ab4e0b46e7e0f60c8c6fb60f4180c0137f62f424da5", - "https://adcontextprotocol.org/schemas/2.6.0/core/creative-policy.json": "3d21944d2d8cb3d8547ab1ab4e8039126ed59c927769390b6e88a37741a95c3c", - "https://adcontextprotocol.org/schemas/2.6.0/core/delivery-metrics.json": "d1f66f1e536857c3636ac1bc0f5d3cf4566a3d291489e2e957e857379dff5f20", - "https://adcontextprotocol.org/schemas/2.6.0/core/deployment.json": "abd117816662f22d2ca04e9d59e3ecf3a4d89e67cf00c42eb208d3e00b85da99", - "https://adcontextprotocol.org/schemas/2.6.0/core/destination.json": "9561298e4b57b864e3db61466d7779dfd504c5f0e4c7a57184b4dc4de802e08b", - "https://adcontextprotocol.org/schemas/2.6.0/core/error.json": "9ce9217be88ac6f84b26b93438ea5e79c5e57b3cf9ad3f7008977d751aa12111", - "https://adcontextprotocol.org/schemas/2.6.0/core/ext.json": "5f7140fa267fd56e02547bf89e13cbb7c9ba54d2cd763de4f29f09e50896f952", - "https://adcontextprotocol.org/schemas/2.6.0/core/format-id.json": "d9a14c1a435444d54c9f9367ae9c8c4e6587cb05f1548e98df3a003bc3aaf8bc", - "https://adcontextprotocol.org/schemas/2.6.0/core/format.json": "9031bcb6669c5bb78692f50fa16641ccd99fd314e566275ef012468b2daca587", - "https://adcontextprotocol.org/schemas/2.6.0/core/frequency-cap.json": "6a089fbfdbcdeb15f0f51341ddee9eb75e451ac03324b75bf3d6eb769f5964a1", - "https://adcontextprotocol.org/schemas/2.6.0/core/identifier.json": "0ab83432a7e5a4cf006e8e66e3daed37bb3762ced5e9c2bedf38a2f48864f98d", - "https://adcontextprotocol.org/schemas/2.6.0/core/mcp-webhook-payload.json": "b70c73f858af7128459f5cec9ae6eca8cca7201c0b0c5390622de9626abf243e", - "https://adcontextprotocol.org/schemas/2.6.0/core/measurement.json": "e69b4089087d788015d031db446ac96f338e1c1d404d26efc5e3d2333252552c", - "https://adcontextprotocol.org/schemas/2.6.0/core/media-buy.json": "d63e59bb894cfc0229118b1c20165b10755016ac24042d3d3d0ef268947ce482", - "https://adcontextprotocol.org/schemas/2.6.0/core/package.json": "3e95d5fc435f2a4ed9a68a9e4c8f2c02449669b0a770d41ffea91a6f91e4adb5", - "https://adcontextprotocol.org/schemas/2.6.0/core/performance-feedback.json": "499617d218e4ef538db7fabdc274f27bee659acc8f40c942d1decd093f78c6c9", - "https://adcontextprotocol.org/schemas/2.6.0/core/placement.json": "223fc39b7f5c4c39c79b871322130deb71e66675329d099769302b699a84dde4", - "https://adcontextprotocol.org/schemas/2.6.0/core/pricing-option.json": "971e4143584c5dc230d01931965f0560c4622c30af0ac596b13c00c7b3a947f8", - "https://adcontextprotocol.org/schemas/2.6.0/core/product-filters.json": "e7ed65699713c48a9a08edc3a183582365217cd7bcac3019795e81d432dcf22b", - "https://adcontextprotocol.org/schemas/2.6.0/core/product.json": "3366b26bdd6af8f6029a736c90097b0326d6cd92b3dc4b34fc0645a1364c6231", - "https://adcontextprotocol.org/schemas/2.6.0/core/promoted-offerings.json": "89904b5f4ac756cbb1344024a9962ef0e7dbfa32c6fac59379cd2e5876ae96a1", - "https://adcontextprotocol.org/schemas/2.6.0/core/promoted-products.json": "2e709fc90b776ece5907503ae83ca79af14dc0cc240a41782ddd9421aa13426f", - "https://adcontextprotocol.org/schemas/2.6.0/core/property-id.json": "875cc214bd58ddd8d480a7a5c76776f07e7e834daed4dc2a099fbceb973bdb97", - "https://adcontextprotocol.org/schemas/2.6.0/core/property-list-ref.json": "fb08094a2e7de7840303bc62a31777109d810c2838be2040fd411fb36568556d", - "https://adcontextprotocol.org/schemas/2.6.0/core/property-tag.json": "1a8a753226b02dbd359fb33abefb97dbdc13fd88b8eecf7321d5dd6d2942e6fe", - "https://adcontextprotocol.org/schemas/2.6.0/core/property.json": "a7d1be9f0813386f0061174810170bcc64731c06e9e8e436fd888f880c8edd3f", - "https://adcontextprotocol.org/schemas/2.6.0/core/protocol-envelope.json": "9a70425bdb28bbd69cf103f0826be514ba418f8186e244c22f6e0b5c2f966383", - "https://adcontextprotocol.org/schemas/2.6.0/core/publisher-property-selector.json": "a68ee6ebd20dc2f2195bce885d33785f91d325de48aee3316ead326b6cfc1289", - "https://adcontextprotocol.org/schemas/2.6.0/core/push-notification-config.json": "f43cac5b538808162bf51a49853a288f3d877dc29aba8cba71579a2d681d1d89", - "https://adcontextprotocol.org/schemas/2.6.0/core/reporting-capabilities.json": "e54e47a846197790b4d79e1d9ef978b13f4743f370d7562425e3b192b510b47f", - "https://adcontextprotocol.org/schemas/2.6.0/core/response.json": "91ea9185f3b317a5b1db21335e3662b98fd4266336ec2eba3dcdff7928881c48", - "https://adcontextprotocol.org/schemas/2.6.0/core/signal-filters.json": "2955477372ae338762a0f0af9f8af0f5e4deb183cdb4c486292d879e36f243bd", - "https://adcontextprotocol.org/schemas/2.6.0/core/start-timing.json": "64ff8e6fae2b1cf490c2d274f13f66813b0c1b8e6ce051bd4c6adbfdf45c5488", - "https://adcontextprotocol.org/schemas/2.6.0/core/sub-asset.json": "62cd6b334bb246504c927d7ef3e60b5d5624ae8d810fedb6301be87f710d3573", - "https://adcontextprotocol.org/schemas/2.6.0/core/targeting.json": "af891f2c882f3975e4a4c2fd3d2e04796fa7a401f19dbc6e39f6a00308a6dd01", - "https://adcontextprotocol.org/schemas/2.6.0/creative/asset-types/index.json": "389b7ff1ccd02d78a27e78a66dc05f9349a4213adf0fa022ac48d11ac1d61fbd", - "https://adcontextprotocol.org/schemas/2.6.0/creative/list-creative-formats-request.json": "f45d84c60e795a69cd51bccea0c8f4a8aa265ae219d7207f411bf1a0342ace7f", - "https://adcontextprotocol.org/schemas/2.6.0/creative/list-creative-formats-response.json": "a10637f93ab28ac03b78b8e5b5b8e129554ad907331695a766670b1d854d5fc2", - "https://adcontextprotocol.org/schemas/2.6.0/creative/preview-creative-request.json": "4d1cda6561ce2ff645724076f10b70ff7b1e3b17655e660b12efdbffa6852584", - "https://adcontextprotocol.org/schemas/2.6.0/creative/preview-creative-response.json": "1e7175be27ad98eb685e53ab6595796bad0950ea5425c4b8da45bfe20a9986b8", - "https://adcontextprotocol.org/schemas/2.6.0/creative/preview-render.json": "b40d4e01eeb98942db2b9bf4802b78f6596295f8c7dbf0c3bac90b3e8bd4ec23", - "https://adcontextprotocol.org/schemas/2.6.0/enums/adcp-domain.json": "ebcdc01f4c00aa50b156abc59d7d9f14674b01ccf935d8bf863ae5c517171b63", - "https://adcontextprotocol.org/schemas/2.6.0/enums/asset-content-type.json": "a62ab210987be79ca430e0b40ddf91ae65db2bf83465470515d5c263f1dac2bb", - "https://adcontextprotocol.org/schemas/2.6.0/enums/auth-scheme.json": "1a8e9be46cce2432d7f58be1888d140f9783f73bb97a20c10dfcf9070161d2f4", - "https://adcontextprotocol.org/schemas/2.6.0/enums/available-metric.json": "b9beb1e79930ddd6d0f32ce41feee89ca10615fc61291d1f2227142fbfd47ddf", - "https://adcontextprotocol.org/schemas/2.6.0/enums/channels.json": "a77c405af340905ff47aaafdb766f38c0f041ed2e2e01970954edbe7282a0fa3", - "https://adcontextprotocol.org/schemas/2.6.0/enums/co-branding-requirement.json": "9340337b34e18abc0c2a73eed9ca1932deab734c055730e332c491daf8957f11", - "https://adcontextprotocol.org/schemas/2.6.0/enums/creative-action.json": "fc5c1ebbffd46c7a408aaa59e89c63c81bb61b5ecbbc032a60d93246403d4346", - "https://adcontextprotocol.org/schemas/2.6.0/enums/creative-agent-capability.json": "9b40c5c8d696a0b53ea22fade765e1d1aaf8ce161d575cf84b5bdf1b1448cb6d", - "https://adcontextprotocol.org/schemas/2.6.0/enums/creative-sort-field.json": "95cbb824bc189f9d5b4e6082d7f6ca003a43ca2da643725e60a173ea4f4c6081", - "https://adcontextprotocol.org/schemas/2.6.0/enums/creative-status.json": "b14c4aa8cfa3ea2fc9fb62763ae5dc482db9fb167eb33808438b0bfe8345cd3d", - "https://adcontextprotocol.org/schemas/2.6.0/enums/daast-tracking-event.json": "de04a339007b22b71b0d775df05aeaab052dc7fffbcab1655d8598e293035d70", - "https://adcontextprotocol.org/schemas/2.6.0/enums/daast-version.json": "32f5fcf31e87627d7f3f96e50232ff62557263534a3a476e298cf4c7c3695f73", - "https://adcontextprotocol.org/schemas/2.6.0/enums/delivery-type.json": "f7e6f2f9d63dba975614d37be5dc45cb6829ed77ad9732b7b95dc845e735cb66", - "https://adcontextprotocol.org/schemas/2.6.0/enums/dimension-unit.json": "db0027875a27109507d4a7ed9dc6e050c9a2a6d96433fa98ccce8ff1f37b1d20", - "https://adcontextprotocol.org/schemas/2.6.0/enums/feed-format.json": "67298ba035f9b095c6b4ae94fd318238a4d4f6edab175947f96f989b0db65ffd", - "https://adcontextprotocol.org/schemas/2.6.0/enums/feedback-source.json": "1f1059f2f2a64a6bcfedc8fc653f2def8b1b6cd544923ddd2ca697dc7f89526c", - "https://adcontextprotocol.org/schemas/2.6.0/enums/format-category.json": "587516d32b0455e0b44c86dbb01a3724033393899947b024302193ba0e4974ad", - "https://adcontextprotocol.org/schemas/2.6.0/enums/format-id-parameter.json": "ded3a4d0231e30709548086156867a3f27752d793fd1f504c62e15e193a9ba96", - "https://adcontextprotocol.org/schemas/2.6.0/enums/frequency-cap-scope.json": "4518e7b779353f0403a6e8ab7b8da5d1c775c745a8399d1e118fb0ac15893b9f", - "https://adcontextprotocol.org/schemas/2.6.0/enums/history-entry-type.json": "b46fee7bcd5f978347a5458b0209c176aa81a8be5bd06a23c4e6ac8574fc2c59", - "https://adcontextprotocol.org/schemas/2.6.0/enums/http-method.json": "b2f7e41876231efdc447ea58fa57a8e45933f6334aa2fcc17984f8007c6ba04f", - "https://adcontextprotocol.org/schemas/2.6.0/enums/identifier-types.json": "ce71e52ed324f17d51c57e8cae4976777a4a24f2701329e7808857676ca0e360", - "https://adcontextprotocol.org/schemas/2.6.0/enums/javascript-module-type.json": "227746528d3c02aeb31435b2dc7acc0502506313802ecec3a5022f4cd3cbf226", - "https://adcontextprotocol.org/schemas/2.6.0/enums/landing-page-requirement.json": "1cd39e922ce52a8710e0ba2db1430736c37ced565eca69e7a949f25b1a98f47a", - "https://adcontextprotocol.org/schemas/2.6.0/enums/markdown-flavor.json": "872bc5111d2397fc18c897b7f81c339be6604dbb3f88137ff278489d8ca89d60", - "https://adcontextprotocol.org/schemas/2.6.0/enums/media-buy-status.json": "7add3ed9ada1f4e867f1fab201d9be2f9a99eac110777f5a1932e16082f8358b", - "https://adcontextprotocol.org/schemas/2.6.0/enums/metric-type.json": "cab969ccc0fc057922cd89152977bbc9880370cf8a07aa4c7f7bee7a24ecb381", - "https://adcontextprotocol.org/schemas/2.6.0/enums/notification-type.json": "6dd5e835219c69ae289bb0261370a36b54e0b616cf9a7e2dfa88bd85e4761bd1", - "https://adcontextprotocol.org/schemas/2.6.0/enums/pacing.json": "730b6ff468ac9ec536b41fc93c6abc60d87acbbdc8cb67db9b8bc866acf89507", - "https://adcontextprotocol.org/schemas/2.6.0/enums/preview-output-format.json": "dcf5cad1d6b0878f92c981719786816ee9ce9c94d0ff28946920b9db3c168d94", - "https://adcontextprotocol.org/schemas/2.6.0/enums/pricing-model.json": "4db3c61a96392a200aef52fc6b0c87095c18855e150695b66a45d92e33c2de73", - "https://adcontextprotocol.org/schemas/2.6.0/enums/property-type.json": "4fafa162288a4ebf2dfcfe15d6d51c7c2886fa61873d0723525ea9d9aafa4911", - "https://adcontextprotocol.org/schemas/2.6.0/enums/publisher-identifier-types.json": "31d5d719846f3c697bef9581e849627099e13b6fe71663debcea04012b784b00", - "https://adcontextprotocol.org/schemas/2.6.0/enums/reporting-frequency.json": "7b8ec2d2f6e6bb68fccc782b1d05de274cf90c5f1873fc5982d39b3427817626", - "https://adcontextprotocol.org/schemas/2.6.0/enums/signal-catalog-type.json": "40692e383cb134b5e5d0159255ebc4ec426a65beeea55ebec1ab462525e6b314", - "https://adcontextprotocol.org/schemas/2.6.0/enums/sort-direction.json": "f1d72dfbdcff421cb81349b1c5209b5f6747b0d3a124f93ead7a325ba758309b", - "https://adcontextprotocol.org/schemas/2.6.0/enums/standard-format-ids.json": "9fd7f60107a25be0a66bd57f8bb3aa82122f554ab185686a7eccbc753749c40d", - "https://adcontextprotocol.org/schemas/2.6.0/enums/task-status.json": "7baa27e10078fec73b64b223170c39f3db89d818a82ad41ca9f02b6fd5c4b77b", - "https://adcontextprotocol.org/schemas/2.6.0/enums/task-type.json": "3f0f97cfa6e8c11d3f352d4c6bdc67b1cb53ff03ff49d8ff3b9a1464af0df9ac", - "https://adcontextprotocol.org/schemas/2.6.0/enums/update-frequency.json": "ada6745eb5c7edaebec2693478da6fd93fb807c48413332132b1d7df97e31688", - "https://adcontextprotocol.org/schemas/2.6.0/enums/url-asset-type.json": "39e064861db8b50e41bef2dfa373f8309a2a14b27e65a93a6c3bb369d6f795f4", - "https://adcontextprotocol.org/schemas/2.6.0/enums/validation-mode.json": "437dc25f290358d95ff5352fc26bdda5a992dfe8f04a191e16b2106e3d21071e", - "https://adcontextprotocol.org/schemas/2.6.0/enums/vast-tracking-event.json": "f275ebe947d5609175550935989891819cc19e6c3b64a631a8b0927a9144b715", - "https://adcontextprotocol.org/schemas/2.6.0/enums/vast-version.json": "5734bcc344af47e3ad4dcf68f155538614babaec7788326f5d82cec3129559ec", - "https://adcontextprotocol.org/schemas/2.6.0/enums/webhook-response-type.json": "d81db53c78b4ae5ff32287746903ab9bbaf848859ef222dd9ed8d7c0ed17ed60", - "https://adcontextprotocol.org/schemas/2.6.0/enums/webhook-security-method.json": "f74d763f720823948e5ade72a3a139e95675247e25a2671cfea6643d9a8f4872", - "https://adcontextprotocol.org/schemas/2.6.0/extensions/extension-meta.json": "1b4fc8ef344b08789514f86c2fa5d265cd47528e27b619aa5015ddaebd33075e", - "https://adcontextprotocol.org/schemas/2.6.0/extensions/index.json": "294f00ad72c90fb79810757cf23c1a770316a8fb9ef956da4a69483d5e5325ae", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/build-creative-request.json": "2633ac57f3a70c5ff82c2c240ca8066191d1778164c1415c4411593c9a7d4086", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/build-creative-response.json": "1b57abef495014331fe2e50a337048034c3b95d4a4e57c862664e40ce8a198d0", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/create-media-buy-async-response-input-required.json": "74c43004e366b5af309ebf2fcf2d757b181efe7124a09e36b09ea85a92fb3a86", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/create-media-buy-async-response-submitted.json": "c61193abebcf766bf587ae01c46303a7387c8fcdf79c1b5efd246535662d96a3", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/create-media-buy-async-response-working.json": "c61630024e3803e09840f059ff95c257b247e0fda5c1a33dca5bea5fd1bfc890", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/create-media-buy-request.json": "01740da777f9468703c2856f8f76d3ed4beca21b2782a6e4109c73fe51d4bb4d", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/create-media-buy-response.json": "f9778d117dcd2db8705b01c511ee612231006102e5c1d9379b229bddd9fd439c", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/get-media-buy-delivery-request.json": "0da39fd5d7220b501694ff8e8950e254479e336bbe6ad4c0fc6e78a82941f63d", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/get-media-buy-delivery-response.json": "7a135f8998c29800959a39b7b8e929a80e907654d08a34e22becd9d7dba5f2c8", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/get-products-async-response-input-required.json": "00630687e7f8876e0fa14c14ad7f4989ce244b147cafdffe3089c62a062927eb", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/get-products-async-response-submitted.json": "1a02a09edfb86e4cbd677d161b1ee208427593b4e85c68930e565cf2b849dd30", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/get-products-async-response-working.json": "eab7913469420a43c9461e20bfe6bd057a139d49cfae08b59b71d7445cf0dab8", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/get-products-request.json": "7c690fac3a26d4b6211661429a01edaa55ccb3c7b1eff6e7808ef91cbf271443", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/get-products-response.json": "501bf6f8aaaa18f7efe10a865612d56167e2b56196bd6daae29e59c781607f22", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/list-authorized-properties-request.json": "b13aa3eddcb4cb3e5efe64dca2dd520d5e83dfaa542587b5d88c360ddfa56178", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/list-authorized-properties-response.json": "11520ba350e4af718dbdb4f0122f3a4d9e278a460b4eeaffad265772446d43b3", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/list-creative-formats-request.json": "91990929c6c46a1d232bfb96a06d9ea9984b30de66d73d67a57744b7c3e90ad1", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/list-creative-formats-response.json": "9237034591d0c325367d9530ae843f809a7927424a9c3ffca42a96b3826e3803", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/list-creatives-request.json": "0788f951ff430c8cea3a012bd7c4ad64568385fa8f3ebf31e5930bad55702e09", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/list-creatives-response.json": "4ce8932d0a9d03a2d3268e486367f1b6e9bf8b8e4811fe54cb8b0cfd1ed9943a", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/package-request.json": "b9670c860d2b3ee6e09bfd5d246b33f75ce8c36fd407a936edf0773be6533d3e", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/provide-performance-feedback-request.json": "a75a015151b0bb2dea2eb5a38b4277b5ce610c6f73a6e36985742d1ca155d905", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/provide-performance-feedback-response.json": "221b7abdf0ba2765e498cc26d3f0bd91457e38a0c721d845a07465f87340bbf1", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/sync-creatives-async-response-input-required.json": "e47eb69105a4c390b37a15c5097343d8b8a7491342e721bc7ddcab780de241de", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/sync-creatives-async-response-submitted.json": "6a715ca5966419ac98eb709a78a2f6790fe573ac487190316935a72c8c533576", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/sync-creatives-async-response-working.json": "ae2d75d062fd633e0661ef6fa10f712b1a88ddea237f4df8178b18110eece5f6", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/sync-creatives-request.json": "972112985ae62cfc4f15e7083ed0c1992afa4bc5c377abaa063e5e02f2a27de9", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/sync-creatives-response.json": "fba9d521d1a57ee8839a80f5cf7ac38bc0c5b4b719aff50d6fbe9074a50c95a7", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/update-media-buy-async-response-input-required.json": "ec4b8fedaeba9a5343a858b540a390703381f93f13ba6842cdf334f3d1ce300f", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/update-media-buy-async-response-submitted.json": "61c4b236551201ce1f2af4be0f91b75dc3ab51731e282e3c9cd6cb74011b72de", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/update-media-buy-async-response-working.json": "bda5f4df3faf1b0468ac2492b965bd20828a9fafa1c891b3673e68596c5d342e", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/update-media-buy-request.json": "495f250df3f3fec67bcb8561ea84e55acddf2b376ce23d30778d2d391692a9d3", - "https://adcontextprotocol.org/schemas/2.6.0/media-buy/update-media-buy-response.json": "19c8537f9f734363820f52a96fc815344fb9cb70eb8e3e88c73296297ffa5a68", - "https://adcontextprotocol.org/schemas/2.6.0/pricing-options/cpc-option.json": "34c1a9b76b94065d48c9a5d45534ce81f088c7c3b385f783a8afca8b73da24c9", - "https://adcontextprotocol.org/schemas/2.6.0/pricing-options/cpcv-option.json": "ea756831fda6ab8dcad3a1e1d956fe96733e11005926e871c5272050fb0f11fb", - "https://adcontextprotocol.org/schemas/2.6.0/pricing-options/cpm-auction-option.json": "fdc3f30491967fe78586cfd69a1042164b0abf6e87d9c606e2090c17b828e306", - "https://adcontextprotocol.org/schemas/2.6.0/pricing-options/cpm-fixed-option.json": "0dad3b1aa255a79fba2256b40641420293865ccb93345841207a717e06f9accd", - "https://adcontextprotocol.org/schemas/2.6.0/pricing-options/cpp-option.json": "9efebfce87458ae552ad5bc2a0923bfb10d1e55d6c1709312e009c2655209fce", - "https://adcontextprotocol.org/schemas/2.6.0/pricing-options/cpv-option.json": "732165490aa7cba55c135fd2560dc02fac68a906b1e76369be7ecd894067ebb4", - "https://adcontextprotocol.org/schemas/2.6.0/pricing-options/flat-rate-option.json": "2c100f26341acc170df6dd705754c45619be538cfdec790cf08dd8e8e6098d00", - "https://adcontextprotocol.org/schemas/2.6.0/pricing-options/vcpm-auction-option.json": "6fe3ad592309cf85138b09c86703c212fe4d165fd60d0b6e52356eb17783d304", - "https://adcontextprotocol.org/schemas/2.6.0/pricing-options/vcpm-fixed-option.json": "7b16a9382043bc7968d0c86db3ef513027bcc931f42550ca218b62e6e5c2e41a", - "https://adcontextprotocol.org/schemas/2.6.0/property/base-property-source.json": "8fc741ef7dc8c91edfc3d78802a7bdd2066a46a49b8ad68a8a7a8380085d0bee", - "https://adcontextprotocol.org/schemas/2.6.0/property/create-property-list-request.json": "5526ea26f57c711588e68751dd07775e1d96d4eea16e42ba600520b171cf07e8", - "https://adcontextprotocol.org/schemas/2.6.0/property/create-property-list-response.json": "0699046c948ce95337af76e2f152ec088ae125b829fc06c1d47e829c621ab528", - "https://adcontextprotocol.org/schemas/2.6.0/property/delete-property-list-request.json": "05b691930949c8a037795b3cfb5866c017669c205ad5fa22d8eefab40c824067", - "https://adcontextprotocol.org/schemas/2.6.0/property/delete-property-list-response.json": "d60093f095905dceaff553eab0dd3356202bfb1d6b96fa7c20195996ba66db82", - "https://adcontextprotocol.org/schemas/2.6.0/property/feature-requirement.json": "d46f3d3c74be646f52102524f5b3c162069af20c42eb025885ee6e965f3b9acc", - "https://adcontextprotocol.org/schemas/2.6.0/property/get-property-list-request.json": "604073eaf53a68d8a16204a28a2468592c19b267950d5fce4e1e3671b3e3246f", - "https://adcontextprotocol.org/schemas/2.6.0/property/get-property-list-response.json": "3410564dc6a05475dd46ba9ad4ddb2c78c40ebfddf1e6f139e4e30fe43932897", - "https://adcontextprotocol.org/schemas/2.6.0/property/list-property-features-request.json": "e53044fb80952bc2de02fc71bc3143563c6b50183e6a18b060b7b493ca2ca8b0", - "https://adcontextprotocol.org/schemas/2.6.0/property/list-property-features-response.json": "1a9b61a83176e8cfe1cffc13cd06b0ac4d6a383ca08d5c0ea601f421cf327707", - "https://adcontextprotocol.org/schemas/2.6.0/property/list-property-lists-request.json": "216874121f7efb29daaea1aae44bb21c25cc4819a3ab6c7e4fa97b8868c0b31c", - "https://adcontextprotocol.org/schemas/2.6.0/property/list-property-lists-response.json": "93e16d4819fcd299ac2ced111455afe2509dfabc0edce0127bf236fa1d917e6c", - "https://adcontextprotocol.org/schemas/2.6.0/property/property-error.json": "fb15030e22d36039fb579d16ce911076d678fdd92e6e234a5f55e4b02872d267", - "https://adcontextprotocol.org/schemas/2.6.0/property/property-feature-definition.json": "512640079410580aabb43f2526e7e0741511f0297730088bddfc5ffaf53f9d4b", - "https://adcontextprotocol.org/schemas/2.6.0/property/property-feature.json": "b1d8d1c033292e265b3314b1a3cc826bb3cbf4ff63921b3c8597bcd6521bb3c1", - "https://adcontextprotocol.org/schemas/2.6.0/property/property-list-changed-webhook.json": "af5f96b649c98a879d3d12f6068c060fb2e31a82a39fcd4e86fdd60ba79793ea", - "https://adcontextprotocol.org/schemas/2.6.0/property/property-list-filters.json": "0a122f5ece612f15e1fd3f37d70b916c3dffb89a697a83f94e011464a7649598", - "https://adcontextprotocol.org/schemas/2.6.0/property/property-list.json": "a79fbddeca1b5b3ff2dfe7eb02a6db4e4125da356fe6a9b68489a344f7404efa", - "https://adcontextprotocol.org/schemas/2.6.0/property/update-property-list-request.json": "b3831277ca98805fbb3ba9ea6aceeb54d6b1694ff470a770feaae6897aeb4054", - "https://adcontextprotocol.org/schemas/2.6.0/property/update-property-list-response.json": "08983661fd168907f4899d1f972c064fd192684d3cf93bfae57289b28d19c084", - "https://adcontextprotocol.org/schemas/2.6.0/protocols/adcp-extension.json": "72f179773a44305914c7439f7a47a209c2294b08087b157210a42da0a8eacb23", - "https://adcontextprotocol.org/schemas/2.6.0/signals/activate-signal-request.json": "afa9b3023801fe0589e6bf54c26f9df0dda30362dcf5d59c90693db4f2b7c55a", - "https://adcontextprotocol.org/schemas/2.6.0/signals/activate-signal-response.json": "6710d1ee820f9f887ceaf34cbafffc5cc93441caeaaf9a3cc91742ad60c00d52", - "https://adcontextprotocol.org/schemas/2.6.0/signals/get-signals-request.json": "2df5b4b6e1eed5a5df373a255cda5549bd84eb1dca9a1bb4a5449656be2992ea", - "https://adcontextprotocol.org/schemas/2.6.0/signals/get-signals-response.json": "d6037997c5beae4a7043769f8b8c56530f27357d6fc3bd349a6377e6d886be43" + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/index.json": "9d979c2d90456406431201d6274483838f2a8c02d3152604eb03edd3d63e8858", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/adagents.json": "0f6d876abe50bc6daf41091bd2ad97d897dcab41aa052f68bd4759a702161b54", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/content-standards/artifact-webhook-payload.json": "f6f71303a21172ac2cad2d39154d4f5c28ccc32714b37b1139531d51df517ca5", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/content-standards/artifact.json": "06c4687c503f6c481a28d5be896ca81c30ca236ca2fc07b7a87d100408d455f0", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/content-standards/calibrate-content-request.json": "80cb0d5eaed46bf0d089537902ef42966a02ab5912517a3a23008f692bc4fb15", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/content-standards/calibrate-content-response.json": "cbfce23313c9d41be565e08c81af169bec7fb903ecb286d9a9873e67b4d7aef9", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/content-standards/content-standards.json": "c07e0d644835a81ee04df56fcf8b0358979258aae06202b50b423b32cbadce07", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/content-standards/create-content-standards-request.json": "593964f9a9d0abc35a91a1e3cef6b631332b44fdb028a3285258348be7559ca5", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/content-standards/create-content-standards-response.json": "36afcd20b99d353dbf588a7b6a95921a84782265d866427c5687ede0a855597c", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/content-standards/get-content-standards-response.json": "52b3b92120e8ece1b4d7eaab5a4f25ca40d74d638f7e337951607a64b23b14e5", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/content-standards/get-media-buy-artifacts-request.json": "7293dbeefd6a8a3e405305561c8f0b0c7e24e5c7b710472c01cafd714f09faac", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/content-standards/get-media-buy-artifacts-response.json": "af8e49e40a505d8111631135c94f05610cd4057f4ee1836b34b2b04a70a362b6", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/content-standards/list-content-standards-request.json": "0da1d2c1e33b7233f36008819391526f3a218a0b1dc673e84bfb0651c1a93352", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/content-standards/list-content-standards-response.json": "5300147c68c19ac3b34f84e2a97d5a20ba79b48f2731215b1856dcbf4ed2c360", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/content-standards/update-content-standards-request.json": "7c198c176e296ce9fe6f622a4a7e7253c11557b7cd5c313d96b8772cce1360a9", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/content-standards/update-content-standards-response.json": "4c78aeb3c4178bd8093656e3963738e5b59756730a636d80d635bf2c3fb83f24", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/content-standards/validate-content-delivery-request.json": "e8a42e686dce80a816de2ad27c8d99efc8019e46d82fe97e58d9721617e55298", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/content-standards/validate-content-delivery-response.json": "ffbc63e90dfe094b9007e4be3fa13940e4b8c12b9757e2e6ca5297f2449a81b9", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/activation-key.json": "5e7b1ae6d8d6b05588ed6df69ba4def04cd8e5467b39a9e2c4a603c1fb39faba", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/assets/audio-asset.json": "202ec4afb6dd7e5dd20a1ed7c14ea8007519fe68949ee7f8a0faf3e74a8a724e", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/assets/css-asset.json": "d891232ebfb041161ca2d623dbd6f97ec47088bd8a4755a8c5efb80b28390e82", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/assets/daast-asset.json": "b9890c567eb80e7755222071bb5747e6752cc8cad030d1decfcd385e715cf562", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/assets/html-asset.json": "8ebd38e9928471eea9c97f296d8dd34f190a920843533d4b6aa3ab9de129ba2e", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/assets/image-asset.json": "9ebdbb5f7d70eb16615f7f3c49f81f7a8241647aa4acf545bbbb3e78c26bff96", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/assets/javascript-asset.json": "11a083cacd528cd15024c4ce3539a0bb1acde04fe069edc573ba147af83de5e4", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/assets/text-asset.json": "9e19c95c04d6a7c72eb6b34047755f59ca6d859fcc39c847ac7ad842b25ad943", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/assets/url-asset.json": "f77f0520ab66036b45314f37a4e1c31f40170a68e9f3a4d7240abd5c3cb6aa22", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/assets/vast-asset.json": "d646ccf268d94bd3c15b4dc2f554638e9b84e86e757e7f4cb6a4f6dacd31dc4e", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/assets/video-asset.json": "8f89448d0920b1a98572435bce5bbafc72b9676ac36ed57d24ca615995b6ce9b", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/assets/webhook-asset.json": "efab5a3138a894ac1cc5f5106af4b3424f1469e79c76d7f232afa2aa74c2525b", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/async-response-data.json": "9e4021b74f189e570dd7a38b7d64d20f6f40087cbf856de0d78deb1e4602450c", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/brand-manifest-ref.json": "2c634181949b18a9805ed5c8a3eb6d4bd029723452f78711ccf1c58979758144", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/brand-manifest.json": "d195564b27ec07fbe2471ed46424eb84455387ec3f60645279f0276968367e04", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/creative-asset.json": "87c2a3b12f480ff594c8c7cc0c2969cd5bd4078760cac088a8a0e4392e2f7566", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/creative-assignment.json": "bb787157caf85223b0fd7679d84af9533babd09a0d0482105416701ca53d724f", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/creative-filters.json": "436ad38657932675960c87388eeac26a8bd2dd4d8ec98f47aa1ee74d8e5100a6", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/creative-manifest.json": "1df44e6e78717704c00ca36d17d4293c43255b5612edd515679bf8347b2b241f", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/creative-policy.json": "657fac9b77f50e22447e929c6d0f14a41c1ef201e46a38da03a731d73ffa7b72", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/delivery-metrics.json": "591fa823466e089131b3bf75ea40827c3e3880946421e05a10a886f613949947", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/deployment.json": "846667cb60792c44f9ad273b98fd906fec919f81571669f442176c9cf16a7112", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/destination.json": "f98945a898644a02d3f056b79b25e93f34d064b79d9c83c505815564e1c6d62c", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/error.json": "2c27fcbd268ed8c2a1e2ce6a2a7434a7ba061c30906a3053ee273af8c70a45d9", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/ext.json": "79ef66bdd40c3c179555e1c4677e03fb9300d4873783de283bd7330a95c2112f", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/format-id.json": "ab8d2839a2c8a21075a8abf6558d5fa92f198d2ff6471e8a76daca8d34ca347a", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/format.json": "7d3984558cde01ad6e565983487e3c2d0c67cf74037da1a937b766ac22da52b2", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/frequency-cap.json": "2bbaddddd14ae6b72821d5dbd4adf4dee54492a81408b266dd13c423e4e99b44", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/identifier.json": "b97ca0cbbad51f040f6e43c9114ce7cb4a24d18405713f616d645c093035ad93", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/mcp-webhook-payload.json": "cc43d8159dce97197a0ebcfb5f03b1ff56588ba8646340dd518cef6a1f8719f8", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/measurement.json": "6704501c519f1e5c06a2b3d627842fc6781f547d864155e93e8f2982daf94b2e", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/media-buy-features.json": "b8a5f4525e8fe0ecbe5a80c4c43088989fc376f88b8f8fb91b959dd2c6e758af", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/media-buy.json": "58a71fe8f9806eaed3a7cb06f7a70c4eceb225801a1f3b12bb6c1d3ec79c27ee", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/offering.json": "b6a8d2e3f166e80fbeb6923e2a1ff62235db7db708059ffafbe7a9df8b3b09b6", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/package.json": "a36233b6d8a26e3a337d4d44b97875b43c1076bbc5967b29c1a09d289d7d1d72", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/performance-feedback.json": "c75f36b07f56b523c89e9c82e43e72a6d824c63fa4bb1fa441cff76b7c81c012", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/placement.json": "10b228fdfc22396012d47c552ecb34dfc8b8fc3191de454bd64c7a3cea840e00", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/pricing-option.json": "d7a7d48ff112b3981d438cbedfc500190b47ccc542d2d446ee92737933034016", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/product-allocation.json": "4520779e9a5720262e1d0787635ff67806161ebf6bddd8d2d78eaf27a146dc63", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/product-filters.json": "df195d7a137ac29ec0523f17a64fedb0df2165da615345542a695d82336f2e0e", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/product.json": "c77f0dba92401ff688b164d12620f2b0bcad8e3c7e903b038164cc50c96c30e5", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/promoted-offerings.json": "547239991de9c499a1380b7301f1da36dfc7ca6559733928374754ad52807161", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/promoted-products.json": "4504b9ae6394ab8574b6819512370593279fc43d1b8bd4feb582ef6dfe91cfa2", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/property-id.json": "b0b5c021ea4e645bda79881f7602254918d1fd6b91585d98a703edfe85b86192", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/property-list-ref.json": "9063dcdeac9ef66a25a60a60104ea27f0ad336ec694f2d41e9e13b600529c3b4", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/property-tag.json": "07792e665fc17d3c3f13f7945be75243a55da7c23785126ce09f70b1d40413ea", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/property.json": "1d6fc7b41c52809c9b73f81e1730b51da4439549ab0184f716d58ba819fd91a9", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/proposal.json": "16df645992f2deb0325de4c76ad118541dd8434892cdf395b8a0fa1b658de22d", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/protocol-envelope.json": "02876b10831902d11116ff08687e67c64e4f3c425f8cf17abea8bc2d38acf02e", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/publisher-property-selector.json": "e4259871029f6422dde39f6bfdfca54bb20288fe31d642be772a5bef4b3daf74", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/push-notification-config.json": "cf4d33445c6b72f54d296c67bba47277d4705abbc6c0f8e055bd0f2d3c2d8b04", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/reporting-capabilities.json": "5ea4e6ad327622da062b158d2e48ec419a760a06348794be503e719fa8f48968", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/reporting-webhook.json": "70520816e31e192e9d80659527fe0c1cd3e729d3a504bfe14b4002499d3f96e4", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/response.json": "c7a020ca4670cb6a93e51e84b8520732fab00cab9e1d115aa1f811abf6a7e321", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/signal-filters.json": "6403a36ae84beeda9ac0e15a0ec3eaa5387e5306f5145c90955266e0092af4a9", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/start-timing.json": "a52b1bbe65b89116fbba11bf74869713fbd110eb183e393e65ad1e09216e5a35", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/sub-asset.json": "fa958671f564b6afdd4cb3494bbb34def5c3cc1a7b75e07aa661c2f6ef85d48b", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/core/targeting.json": "e466a3b9dc974414fd8a66c8008b3d4ea6c1f31f2edd62858bc474a07ea94b5a", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/creative/asset-types/index.json": "f34bc35428fd352093cdc574de65375d0b80f8e18b98ce3265700ef153b8ff7a", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/creative/list-creative-formats-request.json": "6279b699fe7009ccc83647f11f35453c4bd5a978f93b29f7ce11b90fa1c26994", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/creative/list-creative-formats-response.json": "b7ecc8e8d59fe758357c76a5bcc17d854bdc371d1c5ba213ea872a5f509231a7", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/creative/preview-creative-request.json": "1f89f7acff647bbb994cc7bee2b78385f87d2b61965b71ce0802ac6e1a518649", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/creative/preview-creative-response.json": "5cff55473e3711e149941c72eb18c4466f5854bef18cdc75f0cdc35d6146d6ed", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/creative/preview-render.json": "1eea9df495cb7f4feffe3bb43e88228a447dddc76d5952e5e4924c4985093229", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/adcp-domain.json": "175f1a15b71106c2d6da8c4bae9bfe5a1172b110805378602ccbeadd6e93c2f5", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/asset-content-type.json": "dd1cbd77f2c7db6fa2a126ed1e75bc7b3203fb38eb04dde06424442ec0f9995b", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/auth-scheme.json": "da6a1446e19d48cbbf30be0b526c182e111277762e3b7d84560d5a6b59f20021", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/available-metric.json": "9dbf5ad6abb0217e45c73f0297f80598307ec61a523a2e743d69869abb3d89eb", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/channels.json": "951d9ff47be8fb747a7999db0b545a03a2ca71d258b13f4d2b31653e374d78d8", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/co-branding-requirement.json": "180d100448050f8e7f84a5e22499e63d70e52cd6fbc3ebaf8fd613ba78d33ca6", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/creative-action.json": "4179ce8c153c167c706a423f7aaca5bb53f0197616e2ed045fe1ffb52a539643", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/creative-agent-capability.json": "4387c53b040c263061c8c4a3a2f97bbf8a93720d5043c6311e97d98e073eedc8", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/creative-sort-field.json": "2a9e4864c854876f84d6cf509733a6cc80f156071a85167634bb235a88e47971", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/creative-status.json": "c568387605cfcd4318a3840f8c98a38e7dbf49194162876a0223306d4c8458c8", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/daast-tracking-event.json": "0f52be6aac84835c27efa17fa57b2d771b87a44259b88fce15f80301ade5451c", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/daast-version.json": "b71c01911ed4b6a7371669425942a10a6f7fe737cb013ec04bb93d59e05afd6e", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/delivery-type.json": "cca9682955c425adb4e80db7e2d51d287a8dd9d0b10040399e7f68e2f57f0a27", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/dimension-unit.json": "242cc7dfaf02dca10b301165b75639f6b6a70eca0bac9ed1c38df99b7dacd02e", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/feed-format.json": "f65995c103f9ecd9e155dd7a69f31b16e646a0a2aeb09e7adbff45350b70d884", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/feedback-source.json": "8bb82d8e44b466c179e1aa855469866a58ab63eee26390e534c1ae6d1db52ba3", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/format-category.json": "74cf0d81bcdc81f0895570057e2a417d34484c31024df99de1bd3554f99c96d6", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/format-id-parameter.json": "31370a2027fd46b972664282d85007a7dfc1c4d8466479ec6a9988ee6d393c50", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/frequency-cap-scope.json": "14aa36f3a072335ef68e392906004c1ed33ffc63c456102f75639317513c566b", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/geo-level.json": "1104919f54cb2c28e4c085686cfc236e458c23592d7bd56c4c5b31bbf6157200", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/history-entry-type.json": "d1e7bcdb54c7620edeef26a1d5a0c6bd7aaacd2ed289ba1ad8f669208fcb09bd", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/http-method.json": "8867b9639f69f9f88e62758ce3bed7cacd2df784348d570a6225e25c1665dc33", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/identifier-types.json": "2f2d6ec5d0395717be8c0d4e2d5726c79a06d29f0250d6f1df85ba502d62d0e0", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/javascript-module-type.json": "a3424ce1d2e28712542c23f0a58dc6bf81a66f646b1627fedc38cf6c7b329a90", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/landing-page-requirement.json": "3ce50cc78768ea72acacc7a96cb7cd9cf2a51d8482486d03e0b3f719ebd10827", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/markdown-flavor.json": "de33b6c389b276186792e58314581c295a9631d3240cdeecf17fb3573de052ff", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/media-buy-status.json": "4231281df830f3185ad5f8811db38618fc27c435899b22d1f70c8baea168f2bf", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/metric-type.json": "33d2060e338d099140c7606395c49e7ee916fc967013b871adae2bd404f820a6", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/metro-system.json": "37d580a783eeb1cf98ec36aaa7b6bf74dfc3bc71f0ade458571592433e6c5daa", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/notification-type.json": "39b3565ce4618abd872dc32ff0df91c30fc2d90300787c222cea99f96ae9f61b", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/pacing.json": "336f215a6cd2e8ef8c9cac009943da768ff7878019fa885f27b7ecb99f871b77", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/postal-system.json": "7241e1bc1a8ce3968ef69f4fcfffb85f0f3583f34614a8d097b138e1bb84cd2c", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/preview-output-format.json": "a3b6823f3cfada2350b278bf6055887c1b564c760696b7592968a13d3f563f0f", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/pricing-model.json": "cfccdf8900ca8ac21fb50e7cafc714fe57bc1a49ab88093b1c34b86369bb8937", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/property-type.json": "e63b15a6825ca35c57fa37e919438265b398082ba6e2993cbdc8760e738bf654", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/publisher-identifier-types.json": "f37f3ce28b593648f7e8c0eb760a649ed5a9d6f9fd41e86c010687e5682227aa", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/reporting-frequency.json": "fa1ed519b271825ebd28a5c441ca7ab3f03bbbf835e500817648853f52a38cfa", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/signal-catalog-type.json": "0555fdc1098e5059494904b28e11898de3d089a0d70dcefd0fb95bf783cbef0e", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/sort-direction.json": "8ddb4e4d8793f33dc1608382afac4d2e03c34531280e488b1dc532b69963c3ba", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/task-status.json": "87bc8409dc62ca839d4cd8412b7455fa11f122f727a865cfd962f7ef5b751d74", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/task-type.json": "c8d3a00c4f0153649cc74a5f5511e41cbed3853a0e1c31619cc89ee3a75da992", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/update-frequency.json": "cf13d5d399dad35a73c429859beec2b3450b66862998b50edd8f26fbc57fafae", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/url-asset-type.json": "7033f56f3727a3f31cf3b35c4b25388c89c4de82b80a16a82a5f28e33b8fa247", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/validation-mode.json": "3581fae8d2a1c21bb0e6fbb05f22d4c279ad888d77e9433bd99c08442779e013", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/vast-tracking-event.json": "695b27177ed4fd6e4608ededcc42c14d9b238879824a6de109d0ce181a5c2d23", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/vast-version.json": "a6fc5677054c3691d1c074f8f349f1f2da897d6e8e7895515a2745caecb1de8d", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/webhook-response-type.json": "524f7c5e0cb7213815910c8ce5651cc03b6b5e7f6058e09a6b048a94887c82a5", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/enums/webhook-security-method.json": "945a5e3f6294a9ebeb09675e1fbe6bd3fda6998b820d0498ee1bb38d1609867b", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/extensions/extension-meta.json": "639103027d657206b40a9bdfff0baded2588835e6f15e5b0f7acfec748e94423", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/extensions/index.json": "dc355cf73630bebbf216afa68fd9927ffe52a3b650133d4b78ed2febc8f00fe0", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/build-creative-request.json": "55c67da08c2ddd6b7d36ef19907f0a4613ba686dceb62afe9c3009ec5c1baf81", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/build-creative-response.json": "f2c6ada849144aec851acfc12b4e10ff4ec57b465f29c26bc2960efc6b36ed25", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/create-media-buy-async-response-input-required.json": "9926408f1e17bc6b1d01b464e5164807a5862debf9f01c37131d012a61fb71f4", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/create-media-buy-async-response-submitted.json": "b21f8ed2bc17b3fadc004240611acb6b591a2eee709f00910fcacd0d47ffc7ce", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/create-media-buy-async-response-working.json": "3862cbe05a2354ea7ee47b2ea3387163dc39657ee1b4ffccb14070a17a57fb7e", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/create-media-buy-request.json": "517df2eb2ab8f4c93df805c30739815e482a63092439f67173f3d15b7fe6953f", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/create-media-buy-response.json": "6ae8132b9b02d35255da6aa5fc419643b891aa5215d48476da722e29b673759f", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/get-media-buy-delivery-request.json": "2f7cb602f1eebf14cc2a0a53eec8138edec823aa06a4f0f56a03aaca165e5f95", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/get-media-buy-delivery-response.json": "351487215a419517994cc7d6e6e47ed77f437f3f861a4d00d22c4e3280fb60cf", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/get-products-async-response-input-required.json": "4a01f5def95e6f8ded27afec1f6f73afeda142f627eddeb0d19b95066ab0ec64", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/get-products-async-response-submitted.json": "56e7f4acaeb4ccb3046939ab0178e93a140c904e763a625b4c8b32fc0d940a09", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/get-products-async-response-working.json": "717c65bf462bc70c20c3d141a16684a4c7968d44a0754ee6ee5784e30db3936f", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/get-products-request.json": "b581c3df80409cb030a1ff9c2147eead2580b0327edccbea453582f98ea29d3c", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/get-products-response.json": "4fa1e1a117f4ded54903d569d836b2bae0021b37faaf2d7579ef6789fc258894", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/list-authorized-properties-request.json": "e3a6dc81390d087a317fd4f023df208476d470e7bca866c875435e1dd95144ec", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/list-authorized-properties-response.json": "46525ae6ef3bf4bfc860c295d0abd8188270db1781bd5d5427d1a0b788f4a1ee", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/list-creative-formats-request.json": "61cd9e5b90f89c79654bb441263857aac78a5f3b90c04275948e06b402496d40", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/list-creative-formats-response.json": "cee26e59b32aeb41bc666f448e9f4c463279448dbe34bc67182dc98e64914eff", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/list-creatives-request.json": "46fdd347a0c33169f40c03fb5f803664de82b4aa093f8f58a468f4b26413bf07", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/list-creatives-response.json": "0f8680c746162bf88127176a01001045e18daa80fac810bfee2a8b66f09892b2", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/package-request.json": "89e3a9a3dfbccd90d09731e958431edd6abaeda0c62af6ea2c339dd36d7d8aa1", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/package-update.json": "801a4d1a847c00c68d945265a9cc235e59dbca2016de6c3f10f50d787faaf54a", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/provide-performance-feedback-request.json": "8a8f25b6d90883a34a5fb8a26ce4ae614a5f6bd12777273d51ba6e63ebcacb50", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/provide-performance-feedback-response.json": "77c0f1e1c107f3922275bd6a01c92f14fd913a67d633a66982695ae2b4a4ac14", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/sync-creatives-async-response-input-required.json": "bd7457bc5b813ebf6bf468f3d4dd817530e8b0a324f5f309b02bde9b4effa38c", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/sync-creatives-async-response-submitted.json": "f2c0bc44b9ac051c5634c2223e604cd554c252d08c45d4203be4bcf9d0ba2493", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/sync-creatives-async-response-working.json": "c93338906fbe3b9df01e1c34e5a771b30e2f7a35e065d8eeeaf48c094ce8c1bd", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/sync-creatives-request.json": "f3eabb29d385abf782fdc928f6c4bb11f8db91c479621d5ee3267703b59aa067", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/sync-creatives-response.json": "8f744395edca1c1e21fff174cf31e82d20bff1c6814755a2208237721dad8f92", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/update-media-buy-async-response-input-required.json": "562d9054c98ba780b1bf31bda2f9d40dd493bca2446ce7c793193bdaa85d4adf", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/update-media-buy-async-response-submitted.json": "011a3765566c4e3059072f2c5c6d454b74ecbe447c2007eec27a06c8481df941", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/update-media-buy-async-response-working.json": "bcdb10ac932121181cb19f7ca75c576f2fe86d83563feaba57b290a1785674fa", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/update-media-buy-request.json": "60c62ec9ead6bf6bc96198aeab368311d7e62d9afb63224787d312b61431cf5b", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/media-buy/update-media-buy-response.json": "6a0caa34dc9af742adbce3e4cd79397a4e49c9c754442f956e20340aec8d4b0e", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/pricing-options/cpc-option.json": "8f85171cecd17f7782982c2a565103e6745bf16c8b9db217e55af46873bd4725", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/pricing-options/cpcv-option.json": "d20dce0bdff257bb66003e4f3cb6837984b98af1d2dc202c856ad6b9b556dc50", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/pricing-options/cpm-option.json": "5c8802c3c60c3af891aadc1ce3d5e8f16a6eb43a4098065bf3c179c0c140d214", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/pricing-options/cpp-option.json": "974a99d103aa783a64b1a2ea418a030e520f6e3124dd2265ed898153369a318b", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/pricing-options/flat-rate-option.json": "66d3c2b4f56da01abb01c8cf902710bba981def3452721c148aa2addf84aaf80", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/pricing-options/vcpm-option.json": "4ecb0b2074b01490e1c17a3916ba6dbb9ef451cb6a4789ac93560ad722108436", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/property/base-property-source.json": "b1d1b99d3f1b6ac42cb0bc44512b535110e2d38fc86328b3e7ff18db32e4d631", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/property/create-property-list-request.json": "afc8e0b4b8f3c51dbb863a60e1f6c9a9b905fb91b8359202e8e0790d36c28947", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/property/create-property-list-response.json": "faed8efd8c2893b9814a42de7089965425e298340191cd0e42a964384585c6fd", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/property/delete-property-list-request.json": "5014a9dc58df8ea4693359408997dbb83598f5799beee60f400514201de3eca5", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/property/delete-property-list-response.json": "d97c0c22d69149fa1ab5b3c2949ca07354bce7b7c2228942b29d712542ca178f", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/property/feature-requirement.json": "1e08621984f6131733ee8dea9240d74f37218927ddaa7265628666b87201795c", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/property/get-property-list-request.json": "f7b5fa0c174236fb1e865793f87722e2eb3811d8c7c8af37c2939c04c7234504", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/property/get-property-list-response.json": "eae50c5719c3667a49f2421a691dff953e541f9b6903d573de4db61f5aa15828", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/property/list-property-lists-response.json": "c7d2d41225959fef7226e0efe44a21341c8b8672c4c25f7b0872629ca2fdca5f", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/property/property-error.json": "0318b773b47c30c898561a5c1c2dd9bd673c3996de4b5cb15f8d751eaa2abca7", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/property/property-feature-definition.json": "b0afceb2a7df746e1448c67826de19aeae58f0534890644904015fe8ddc53ae5", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/property/property-feature.json": "5eac17d7971096cf9c0fa0c146aaed602e5d5112e93c7edd7920928ae78e78f3", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/property/property-list-changed-webhook.json": "0aef173a9d667dada4392cbe3029552a5edd9918f9d6005f55d8ba1881822b75", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/property/property-list-filters.json": "915e112c12cbc36fa790b8d4265eb1326ba1f386d6305033b9dd14bd9b12e76e", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/property/property-list.json": "e36f44cb1bb00f7684b681a5c1a15021927337e4ccddf08c89204cdb3392b46d", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/property/update-property-list-request.json": "3ba7d18c83f1600eaa263170a83825b86246693002c737dc20249b94e8dc5f7c", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/property/update-property-list-response.json": "f76d8b9bb284ef07c071af8abcac1961d73fcc171abb372d3120752a020e8aa8", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/protocol/get-adcp-capabilities-request.json": "d2adca6a9db9254f3ae3daf39fa16ec0bf898d5596e9641a899fde47b9729e5f", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/protocol/get-adcp-capabilities-response.json": "a9a62998e07929684d5b20c0940e9522694507db4a4e35d5e1694e188659899b", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/protocols/adcp-extension.json": "028b8093407fb7da3a2c97ed1d94246fbf1a1b805f7638e5f07119652bd0e134", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/signals/activate-signal-request.json": "ec0e42a0d69651541d1cf9cbfbd94fda9564749c246ba2a2967ad372158375fc", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/signals/activate-signal-response.json": "4bbf05cb846daec11ece49f5225923c75baa21d03c538085b4bc02739c63d15f", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/signals/get-signals-request.json": "2c5b25ac32516fdaa37d4546178e88222d3df19217fd008cb11c662b2e72ef87", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/signals/get-signals-response.json": "4468718314e0a3081c47dc27a164b1286de3680fc810f573d5fb03fda247f1f2", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/sponsored-intelligence/si-capabilities.json": "b062365507914f5b90f5245690ea14931a71e347ba0aeae4705caa232df6f8af", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/sponsored-intelligence/si-get-offering-request.json": "9e7fc69e09508722024693b477b3081d1cd8bc33c7b7f2a1d6e3e25720b4baec", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/sponsored-intelligence/si-get-offering-response.json": "3d63820da540cfcf1d4fa9709bcae343cd0311fe391068f071ef923436d89ff3", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/sponsored-intelligence/si-identity.json": "1b48e952c6adfefaeabfb80023c7783eda48a879a97fb9793da7eccce50c3813", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/sponsored-intelligence/si-initiate-session-request.json": "49b292a18f1a0e9be820aad88612257afe1694f32941d13da13d1d498cab5c9f", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/sponsored-intelligence/si-initiate-session-response.json": "e828811611a2a20bba38de1beae09fa7fd017a13271257fd8edabca3de527244", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/sponsored-intelligence/si-send-message-request.json": "1b8dc2f8cbccdc74705e59548ee4a73ca93588b607de9e95cdbd7e5718969a2a", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/sponsored-intelligence/si-send-message-response.json": "7dbe275399f10b37e691686cf239fa5acf2a9919a34d61a6f6bce62bc5919fc6", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/sponsored-intelligence/si-terminate-session-response.json": "61a10e263569e9555ab745d805b201000a18bff0008f27d7a79d3f912885a896", + "https://adcontextprotocol.org/schemas/3.0.0-beta.1/sponsored-intelligence/si-ui-element.json": "d5e1c9583a8256889b0b4d5307ea8a267cf41465ed37d588eec9aff3026fe4de" } \ No newline at end of file diff --git a/schemas/cache/adagents.json b/schemas/cache/adagents.json index 0097e626..ab65b1c9 100644 --- a/schemas/cache/adagents.json +++ b/schemas/cache/adagents.json @@ -1,14 +1,15 @@ { + "$id": "/schemas/3.0.0-beta.1/adagents.json", "$schema": "http://json-schema.org/draft-07/schema#", "description": "Declaration of authorized sales agents for advertising inventory. Hosted at /.well-known/adagents.json on publisher domains. Can either contain the full structure inline or reference an authoritative URL.", "examples": [ { - "$schema": "/schemas/2.6.0/adagents.json", + "$schema": "/schemas/3.0.0-beta.1/adagents.json", "authoritative_location": "https://cdn.example.com/adagents/v2/adagents.json", "last_updated": "2025-01-15T10:00:00Z" }, { - "$schema": "/schemas/2.6.0/adagents.json", + "$schema": "/schemas/3.0.0-beta.1/adagents.json", "authorized_agents": [ { "authorization_type": "property_tags", @@ -41,7 +42,7 @@ } }, { - "$schema": "/schemas/2.6.0/adagents.json", + "$schema": "/schemas/3.0.0-beta.1/adagents.json", "authorized_agents": [ { "authorization_type": "property_tags", @@ -56,6 +57,7 @@ "domain": "meta.com", "email": "adops@meta.com", "name": "Meta Advertising Operations", + "privacy_policy_url": "https://www.meta.com/privacy/policy", "seller_id": "pub-meta-12345", "tag_id": "12345" }, @@ -135,7 +137,7 @@ } }, { - "$schema": "/schemas/2.6.0/adagents.json", + "$schema": "/schemas/3.0.0-beta.1/adagents.json", "authorized_agents": [ { "authorization_type": "property_tags", @@ -174,7 +176,7 @@ } }, { - "$schema": "/schemas/2.6.0/adagents.json", + "$schema": "/schemas/3.0.0-beta.1/adagents.json", "authorized_agents": [ { "authorization_type": "publisher_properties", @@ -220,7 +222,7 @@ "last_updated": "2025-01-10T17:00:00Z" }, { - "$schema": "/schemas/2.6.0/adagents.json", + "$schema": "/schemas/3.0.0-beta.1/adagents.json", "authorized_agents": [ { "authorization_type": "property_tags", @@ -350,7 +352,7 @@ "property_ids": { "description": "Property IDs this agent is authorized for. Resolved against the top-level properties array in this file", "items": { - "$ref": "core/property-id.json" + "$ref": "/schemas/3.0.0-beta.1/core/property-id.json" }, "minItems": 1, "type": "array" @@ -386,7 +388,7 @@ "property_tags": { "description": "Tags identifying which properties this agent is authorized for. Resolved against the top-level properties array in this file using tag matching", "items": { - "$ref": "core/property-tag.json" + "$ref": "/schemas/3.0.0-beta.1/core/property-tag.json" }, "minItems": 1, "type": "array" @@ -422,7 +424,7 @@ "properties": { "description": "Specific properties this agent is authorized for (alternative to property_ids/property_tags)", "items": { - "$ref": "core/property.json" + "$ref": "/schemas/3.0.0-beta.1/core/property.json" }, "minItems": 1, "type": "array" @@ -458,7 +460,7 @@ "publisher_properties": { "description": "Properties from other publisher domains this agent is authorized for. Each entry specifies a publisher domain and which of their properties this agent can sell", "items": { - "$ref": "core/publisher-property-selector.json" + "$ref": "/schemas/3.0.0-beta.1/core/publisher-property-selector.json" }, "minItems": 1, "type": "array" @@ -504,6 +506,11 @@ "minLength": 1, "type": "string" }, + "privacy_policy_url": { + "description": "URL to the entity's privacy policy. Used for consumer consent flows when interacting with this sales agent.", + "format": "uri", + "type": "string" + }, "seller_id": { "description": "Seller ID from IAB Tech Lab sellers.json (if applicable)", "maxLength": 255, @@ -530,7 +537,7 @@ "properties": { "description": "Array of all properties covered by this adagents.json file. Defines the canonical property list that authorized agents reference.", "items": { - "$ref": "core/property.json" + "$ref": "/schemas/3.0.0-beta.1/core/property.json" }, "minItems": 1, "type": "array" diff --git a/schemas/cache/content-standards/artifact-webhook-payload.json b/schemas/cache/content-standards/artifact-webhook-payload.json new file mode 100644 index 00000000..2c58f6c2 --- /dev/null +++ b/schemas/cache/content-standards/artifact-webhook-payload.json @@ -0,0 +1,80 @@ +{ + "$id": "/schemas/3.0.0-beta.1/content-standards/artifact-webhook-payload.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "description": "Payload sent by sales agents to orchestrators when pushing content artifacts for governance validation. Complements get_media_buy_artifacts for push-based artifact delivery.", + "properties": { + "artifacts": { + "description": "Content artifacts from delivered impressions", + "items": { + "properties": { + "artifact": { + "$ref": "/schemas/3.0.0-beta.1/content-standards/artifact.json", + "description": "The content artifact" + }, + "delivered_at": { + "description": "When the impression was delivered (ISO 8601)", + "format": "date-time", + "type": "string" + }, + "impression_id": { + "description": "Optional impression identifier for correlation with delivery reports", + "type": "string" + }, + "package_id": { + "description": "Package within the media buy this artifact relates to", + "type": "string" + } + }, + "required": [ + "artifact", + "delivered_at" + ], + "type": "object" + }, + "type": "array" + }, + "batch_id": { + "description": "Unique identifier for this batch of artifacts. Use for deduplication and acknowledgment.", + "type": "string" + }, + "ext": { + "$ref": "/schemas/3.0.0-beta.1/core/ext.json" + }, + "media_buy_id": { + "description": "Media buy identifier these artifacts belong to", + "type": "string" + }, + "pagination": { + "description": "Pagination info when batching large artifact sets", + "properties": { + "batch_number": { + "description": "Current batch number (1-indexed)", + "type": "integer" + }, + "total_artifacts": { + "description": "Total artifacts in the delivery period", + "type": "integer" + }, + "total_batches": { + "description": "Total batches for this delivery period", + "type": "integer" + } + }, + "type": "object" + }, + "timestamp": { + "description": "When this batch was generated (ISO 8601)", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "media_buy_id", + "batch_id", + "timestamp", + "artifacts" + ], + "title": "Artifact Webhook Payload", + "type": "object" +} \ No newline at end of file diff --git a/schemas/cache/content-standards/artifact.json b/schemas/cache/content-standards/artifact.json new file mode 100644 index 00000000..e7e4e4d2 --- /dev/null +++ b/schemas/cache/content-standards/artifact.json @@ -0,0 +1,352 @@ +{ + "$defs": { + "asset_access": { + "description": "Authentication for accessing secured asset URLs", + "oneOf": [ + { + "description": "Bearer token authentication", + "properties": { + "method": { + "const": "bearer_token", + "type": "string" + }, + "token": { + "description": "OAuth2 bearer token for Authorization header", + "type": "string" + } + }, + "required": [ + "method", + "token" + ], + "type": "object" + }, + { + "description": "Service account authentication (GCP, AWS)", + "properties": { + "credentials": { + "additionalProperties": true, + "description": "Service account credentials", + "type": "object" + }, + "method": { + "const": "service_account", + "type": "string" + }, + "provider": { + "description": "Cloud provider", + "enum": [ + "gcp", + "aws" + ], + "type": "string" + } + }, + "required": [ + "method", + "provider" + ], + "type": "object" + }, + { + "description": "Pre-signed URL (credentials embedded in URL)", + "properties": { + "method": { + "const": "signed_url", + "type": "string" + } + }, + "required": [ + "method" + ], + "type": "object" + } + ], + "type": "object" + } + }, + "$id": "/schemas/3.0.0-beta.1/content-standards/artifact.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "description": "Content artifact for safety and suitability evaluation. An artifact represents content adjacent to an ad placement - a news article, podcast segment, video chapter, or social post. Artifacts are collections of assets (text, images, video, audio) plus metadata and signals.", + "properties": { + "artifact_id": { + "description": "Identifier for this artifact within the property. The property owner defines the scheme (e.g., 'article_12345', 'episode_42_segment_3', 'post_abc123').", + "type": "string" + }, + "assets": { + "description": "Artifact assets in document flow order - text blocks, images, video, audio", + "items": { + "oneOf": [ + { + "description": "Text block (paragraph, heading, etc.)", + "properties": { + "content": { + "description": "Text content", + "type": "string" + }, + "heading_level": { + "description": "Heading level (1-6), only for role=heading", + "maximum": 6, + "minimum": 1, + "type": "integer" + }, + "language": { + "description": "BCP 47 language tag for this text (e.g., 'en', 'es-MX'). Useful when artifact contains mixed-language content.", + "type": "string" + }, + "role": { + "description": "Role of this text in the document. Use 'title' for the main artifact title, 'description' for summaries.", + "enum": [ + "title", + "paragraph", + "heading", + "caption", + "quote", + "list_item", + "description" + ], + "type": "string" + }, + "type": { + "const": "text", + "type": "string" + } + }, + "required": [ + "type", + "content" + ], + "type": "object" + }, + { + "description": "Image asset", + "properties": { + "access": { + "$ref": "#/$defs/asset_access", + "description": "Authentication for secured URLs" + }, + "alt_text": { + "description": "Alt text or image description", + "type": "string" + }, + "caption": { + "description": "Image caption", + "type": "string" + }, + "height": { + "description": "Image height in pixels", + "type": "integer" + }, + "type": { + "const": "image", + "type": "string" + }, + "url": { + "description": "Image URL", + "format": "uri", + "type": "string" + }, + "width": { + "description": "Image width in pixels", + "type": "integer" + } + }, + "required": [ + "type", + "url" + ], + "type": "object" + }, + { + "description": "Video asset", + "properties": { + "access": { + "$ref": "#/$defs/asset_access", + "description": "Authentication for secured URLs" + }, + "duration_ms": { + "description": "Video duration in milliseconds", + "type": "integer" + }, + "thumbnail_url": { + "description": "Video thumbnail URL", + "format": "uri", + "type": "string" + }, + "transcript": { + "description": "Video transcript", + "type": "string" + }, + "transcript_source": { + "description": "How the transcript was generated", + "enum": [ + "original_script", + "subtitles", + "closed_captions", + "dub", + "generated" + ], + "type": "string" + }, + "type": { + "const": "video", + "type": "string" + }, + "url": { + "description": "Video URL", + "format": "uri", + "type": "string" + } + }, + "required": [ + "type", + "url" + ], + "type": "object" + }, + { + "description": "Audio asset", + "properties": { + "access": { + "$ref": "#/$defs/asset_access", + "description": "Authentication for secured URLs" + }, + "duration_ms": { + "description": "Audio duration in milliseconds", + "type": "integer" + }, + "transcript": { + "description": "Audio transcript", + "type": "string" + }, + "transcript_source": { + "description": "How the transcript was generated", + "enum": [ + "original_script", + "closed_captions", + "generated" + ], + "type": "string" + }, + "type": { + "const": "audio", + "type": "string" + }, + "url": { + "description": "Audio URL", + "format": "uri", + "type": "string" + } + }, + "required": [ + "type", + "url" + ], + "type": "object" + } + ] + }, + "type": "array" + }, + "format_id": { + "$ref": "/schemas/3.0.0-beta.1/core/format-id.json", + "description": "Optional reference to a format definition. Uses the same format registry as creative formats." + }, + "identifiers": { + "additionalProperties": true, + "description": "Platform-specific identifiers for this artifact", + "properties": { + "apple_podcast_id": { + "description": "Apple Podcasts ID", + "type": "string" + }, + "podcast_guid": { + "description": "Podcast GUID (from RSS feed)", + "type": "string" + }, + "rss_url": { + "description": "RSS feed URL", + "format": "uri", + "type": "string" + }, + "spotify_show_id": { + "description": "Spotify show ID", + "type": "string" + }, + "youtube_video_id": { + "description": "YouTube video ID", + "type": "string" + } + }, + "type": "object" + }, + "last_update_time": { + "description": "When the artifact was last modified (ISO 8601 format)", + "format": "date-time", + "type": "string" + }, + "metadata": { + "additionalProperties": true, + "description": "Rich metadata extracted from the artifact", + "properties": { + "author": { + "description": "Artifact author name", + "type": "string" + }, + "canonical": { + "description": "Canonical URL", + "format": "uri", + "type": "string" + }, + "json_ld": { + "description": "JSON-LD structured data (schema.org)", + "items": { + "type": "object" + }, + "type": "array" + }, + "keywords": { + "description": "Artifact keywords", + "type": "string" + }, + "open_graph": { + "additionalProperties": true, + "description": "Open Graph protocol metadata", + "type": "object" + }, + "twitter_card": { + "additionalProperties": true, + "description": "Twitter Card metadata", + "type": "object" + } + }, + "type": "object" + }, + "property_id": { + "$ref": "/schemas/3.0.0-beta.1/core/identifier.json", + "description": "Identifier for the property where this artifact appears" + }, + "published_time": { + "description": "When the artifact was published (ISO 8601 format)", + "format": "date-time", + "type": "string" + }, + "url": { + "description": "Optional URL for this artifact (web page, podcast feed, video page). Not all artifacts have URLs (e.g., Instagram content, podcast segments, TV scenes).", + "format": "uri", + "type": "string" + }, + "variant_id": { + "description": "Identifies a specific variant of this artifact. Use for A/B tests, translations, or temporal versions. Examples: 'en', 'es-MX', 'v2', 'headline_test_b'. The combination of artifact_id + variant_id must be unique.", + "type": "string" + } + }, + "required": [ + "property_id", + "artifact_id", + "assets" + ], + "title": "Artifact", + "type": "object" +} \ No newline at end of file diff --git a/schemas/cache/content-standards/calibrate-content-request.json b/schemas/cache/content-standards/calibrate-content-request.json new file mode 100644 index 00000000..e62d0745 --- /dev/null +++ b/schemas/cache/content-standards/calibrate-content-request.json @@ -0,0 +1,21 @@ +{ + "$id": "/schemas/3.0.0-beta.1/content-standards/calibrate-content-request.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Request parameters for evaluating content during calibration. Multi-turn dialogue is handled at the protocol layer via contextId.", + "properties": { + "artifact": { + "$ref": "/schemas/3.0.0-beta.1/content-standards/artifact.json", + "description": "Artifact to evaluate" + }, + "standards_id": { + "description": "Standards configuration to calibrate against", + "type": "string" + } + }, + "required": [ + "standards_id", + "artifact" + ], + "title": "Calibrate Content Request", + "type": "object" +} \ No newline at end of file diff --git a/schemas/cache/content-standards/calibrate-content-response.json b/schemas/cache/content-standards/calibrate-content-response.json new file mode 100644 index 00000000..6d305724 --- /dev/null +++ b/schemas/cache/content-standards/calibrate-content-response.json @@ -0,0 +1,90 @@ +{ + "$id": "/schemas/3.0.0-beta.1/content-standards/calibrate-content-response.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Response payload with verdict and detailed explanations for collaborative calibration", + "oneOf": [ + { + "description": "Success response with detailed calibration feedback", + "properties": { + "confidence": { + "description": "Model confidence in the verdict (0-1)", + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "errors": { + "description": "Field must not be present in success response", + "not": {} + }, + "explanation": { + "description": "Detailed natural language explanation of the decision", + "type": "string" + }, + "features": { + "description": "Per-feature breakdown with explanations", + "items": { + "properties": { + "explanation": { + "description": "Human-readable explanation of why this feature passed or failed", + "type": "string" + }, + "feature_id": { + "description": "Which feature was evaluated (e.g., brand_safety, brand_suitability, competitor_adjacency)", + "type": "string" + }, + "status": { + "description": "Evaluation status for this feature", + "enum": [ + "passed", + "failed", + "warning", + "unevaluated" + ], + "type": "string" + } + }, + "required": [ + "feature_id", + "status" + ], + "type": "object" + }, + "type": "array" + }, + "verdict": { + "description": "Overall pass/fail verdict for the content evaluation", + "enum": [ + "pass", + "fail" + ], + "type": "string" + } + }, + "required": [ + "verdict" + ], + "type": "object" + }, + { + "description": "Error response", + "properties": { + "errors": { + "items": { + "$ref": "/schemas/3.0.0-beta.1/core/error.json" + }, + "type": "array" + }, + "verdict": { + "description": "Field must not be present in error response", + "not": {} + } + }, + "required": [ + "errors" + ], + "type": "object" + } + ], + "title": "Calibrate Content Response", + "type": "object" +} \ No newline at end of file diff --git a/schemas/cache/content-standards/content-standards.json b/schemas/cache/content-standards/content-standards.json new file mode 100644 index 00000000..226a434f --- /dev/null +++ b/schemas/cache/content-standards/content-standards.json @@ -0,0 +1,69 @@ +{ + "$id": "/schemas/3.0.0-beta.1/content-standards/content-standards.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "A content standards configuration defining brand safety and suitability policies. Standards are scoped by brand, geography, and channel. Multiple standards can be active simultaneously for different scopes.", + "properties": { + "calibration_exemplars": { + "description": "Training/test set to calibrate policy interpretation. Provides concrete examples of pass/fail decisions.", + "properties": { + "fail": { + "description": "Artifacts that fail the content standards", + "items": { + "$ref": "/schemas/3.0.0-beta.1/content-standards/artifact.json" + }, + "type": "array" + }, + "pass": { + "description": "Artifacts that pass the content standards", + "items": { + "$ref": "/schemas/3.0.0-beta.1/content-standards/artifact.json" + }, + "type": "array" + } + }, + "type": "object" + }, + "channels_any": { + "description": "Advertising channels. Standards apply to ANY of the listed channels (OR logic).", + "items": { + "$ref": "/schemas/3.0.0-beta.1/enums/channels.json" + }, + "type": "array" + }, + "countries_all": { + "description": "ISO 3166-1 alpha-2 country codes. Standards apply in ALL listed countries (AND logic).", + "items": { + "type": "string" + }, + "type": "array" + }, + "ext": { + "$ref": "/schemas/3.0.0-beta.1/core/ext.json" + }, + "languages_any": { + "description": "BCP 47 language tags (e.g., 'en', 'de', 'fr'). Standards apply to content in ANY of these languages (OR logic). Content in unlisted languages is not covered by these standards.", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "name": { + "description": "Human-readable name for this standards configuration", + "type": "string" + }, + "policy": { + "description": "Natural language policy describing acceptable and unacceptable content contexts. Used by LLMs and human reviewers to make judgments.", + "type": "string" + }, + "standards_id": { + "description": "Unique identifier for this standards configuration", + "type": "string" + } + }, + "required": [ + "standards_id" + ], + "title": "Content Standards", + "type": "object" +} \ No newline at end of file diff --git a/schemas/cache/content-standards/create-content-standards-request.json b/schemas/cache/content-standards/create-content-standards-request.json new file mode 100644 index 00000000..b25ac293 --- /dev/null +++ b/schemas/cache/content-standards/create-content-standards-request.json @@ -0,0 +1,137 @@ +{ + "$id": "/schemas/3.0.0-beta.1/content-standards/create-content-standards-request.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "description": "Request parameters for creating a new content standards configuration", + "properties": { + "calibration_exemplars": { + "description": "Training/test set to calibrate policy interpretation. Use URL references for pages to be fetched and analyzed, or full artifacts for pre-extracted content.", + "properties": { + "fail": { + "description": "Content that fails the standards", + "items": { + "oneOf": [ + { + "description": "URL reference - specific page to fetch and evaluate", + "properties": { + "language": { + "description": "BCP 47 language tag for content at this URL", + "type": "string" + }, + "type": { + "const": "url", + "description": "Indicates this is a URL reference", + "type": "string" + }, + "value": { + "description": "Full URL to a specific page (e.g., 'https://news.example.com/controversial-article')", + "format": "uri", + "type": "string" + } + }, + "required": [ + "type", + "value" + ], + "type": "object" + }, + { + "$ref": "/schemas/3.0.0-beta.1/content-standards/artifact.json", + "description": "Full artifact with pre-extracted content (text, images, video, audio)" + } + ] + }, + "type": "array" + }, + "pass": { + "description": "Content that passes the standards", + "items": { + "oneOf": [ + { + "description": "URL reference - specific page to fetch and evaluate", + "properties": { + "language": { + "description": "BCP 47 language tag for content at this URL", + "type": "string" + }, + "type": { + "const": "url", + "description": "Indicates this is a URL reference", + "type": "string" + }, + "value": { + "description": "Full URL to a specific page (e.g., 'https://espn.com/nba/story/_/id/12345/lakers-win')", + "format": "uri", + "type": "string" + } + }, + "required": [ + "type", + "value" + ], + "type": "object" + }, + { + "$ref": "/schemas/3.0.0-beta.1/content-standards/artifact.json", + "description": "Full artifact with pre-extracted content (text, images, video, audio)" + } + ] + }, + "type": "array" + } + }, + "type": "object" + }, + "context": { + "$ref": "/schemas/3.0.0-beta.1/core/context.json" + }, + "ext": { + "$ref": "/schemas/3.0.0-beta.1/core/ext.json" + }, + "policy": { + "description": "Natural language policy describing acceptable and unacceptable content contexts. Used by LLMs and human reviewers to make judgments.", + "type": "string" + }, + "scope": { + "description": "Where this standards configuration applies", + "properties": { + "channels_any": { + "description": "Advertising channels. Standards apply to ANY of the listed channels (OR logic).", + "items": { + "$ref": "/schemas/3.0.0-beta.1/enums/channels.json" + }, + "type": "array" + }, + "countries_all": { + "description": "ISO 3166-1 alpha-2 country codes. Standards apply in ALL listed countries (AND logic).", + "items": { + "type": "string" + }, + "type": "array" + }, + "description": { + "description": "Human-readable description of this scope", + "type": "string" + }, + "languages_any": { + "description": "BCP 47 language tags (e.g., 'en', 'de', 'fr'). Standards apply to content in ANY of these languages (OR logic). Content in unlisted languages is not covered by these standards.", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "languages_any" + ], + "type": "object" + } + }, + "required": [ + "scope", + "policy" + ], + "title": "Create Content Standards Request", + "type": "object" +} \ No newline at end of file diff --git a/schemas/cache/content-standards/create-content-standards-response.json b/schemas/cache/content-standards/create-content-standards-response.json new file mode 100644 index 00000000..daf223df --- /dev/null +++ b/schemas/cache/content-standards/create-content-standards-response.json @@ -0,0 +1,61 @@ +{ + "$id": "/schemas/3.0.0-beta.1/content-standards/create-content-standards-response.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Response payload for creating a content standards configuration", + "oneOf": [ + { + "description": "Success response - returns the created standards identifier", + "properties": { + "context": { + "$ref": "/schemas/3.0.0-beta.1/core/context.json" + }, + "errors": { + "description": "Field must not be present in success response", + "not": {} + }, + "ext": { + "$ref": "/schemas/3.0.0-beta.1/core/ext.json" + }, + "standards_id": { + "description": "Unique identifier for the created standards configuration", + "type": "string" + } + }, + "required": [ + "standards_id" + ], + "type": "object" + }, + { + "description": "Error response", + "properties": { + "conflicting_standards_id": { + "description": "If the error is a scope conflict, the ID of the existing standards that conflict", + "type": "string" + }, + "context": { + "$ref": "/schemas/3.0.0-beta.1/core/context.json" + }, + "errors": { + "items": { + "$ref": "/schemas/3.0.0-beta.1/core/error.json" + }, + "type": "array" + }, + "ext": { + "$ref": "/schemas/3.0.0-beta.1/core/ext.json" + }, + "standards_id": { + "description": "Field must not be present in error response", + "not": {} + } + }, + "required": [ + "errors" + ], + "type": "object" + } + ], + "title": "Create Content Standards Response", + "type": "object" +} \ No newline at end of file diff --git a/schemas/cache/content-standards/get-content-standards-request.json b/schemas/cache/content-standards/get-content-standards-request.json new file mode 100644 index 00000000..d4f756d7 --- /dev/null +++ b/schemas/cache/content-standards/get-content-standards-request.json @@ -0,0 +1,22 @@ +{ + "$id": "/schemas/latest/content-standards/get-content-standards-request.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Request parameters for retrieving content safety policies", + "properties": { + "context": { + "$ref": "/schemas/latest/core/context.json" + }, + "ext": { + "$ref": "/schemas/latest/core/ext.json" + }, + "standards_id": { + "description": "Identifier for the standards configuration to retrieve", + "type": "string" + } + }, + "required": [ + "standards_id" + ], + "title": "Get Content Standards Request", + "type": "object" +} \ No newline at end of file diff --git a/schemas/cache/content-standards/get-content-standards-response.json b/schemas/cache/content-standards/get-content-standards-response.json new file mode 100644 index 00000000..4a2efd85 --- /dev/null +++ b/schemas/cache/content-standards/get-content-standards-response.json @@ -0,0 +1,52 @@ +{ + "$id": "/schemas/3.0.0-beta.1/content-standards/get-content-standards-response.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Response payload with content safety policies", + "oneOf": [ + { + "allOf": [ + { + "$ref": "/schemas/3.0.0-beta.1/content-standards/content-standards.json" + } + ], + "description": "Success response - returns the content standards configuration", + "properties": { + "context": { + "$ref": "/schemas/3.0.0-beta.1/core/context.json" + }, + "errors": { + "description": "Field must not be present in success response", + "not": {} + } + }, + "type": "object" + }, + { + "description": "Error response", + "properties": { + "context": { + "$ref": "/schemas/3.0.0-beta.1/core/context.json" + }, + "errors": { + "items": { + "$ref": "/schemas/3.0.0-beta.1/core/error.json" + }, + "type": "array" + }, + "ext": { + "$ref": "/schemas/3.0.0-beta.1/core/ext.json" + }, + "standards_id": { + "description": "Field must not be present in error response", + "not": {} + } + }, + "required": [ + "errors" + ], + "type": "object" + } + ], + "title": "Get Content Standards Response", + "type": "object" +} \ No newline at end of file diff --git a/schemas/cache/content-standards/get-media-buy-artifacts-request.json b/schemas/cache/content-standards/get-media-buy-artifacts-request.json new file mode 100644 index 00000000..a8e7792d --- /dev/null +++ b/schemas/cache/content-standards/get-media-buy-artifacts-request.json @@ -0,0 +1,78 @@ +{ + "$id": "/schemas/3.0.0-beta.1/content-standards/get-media-buy-artifacts-request.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Request parameters for retrieving content artifacts from a media buy for validation", + "properties": { + "context": { + "$ref": "/schemas/3.0.0-beta.1/core/context.json" + }, + "cursor": { + "description": "Pagination cursor for fetching subsequent pages", + "type": "string" + }, + "ext": { + "$ref": "/schemas/3.0.0-beta.1/core/ext.json" + }, + "limit": { + "default": 1000, + "description": "Maximum artifacts to return per request", + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "media_buy_id": { + "description": "Media buy to get artifacts from", + "type": "string" + }, + "package_ids": { + "description": "Filter to specific packages within the media buy", + "items": { + "type": "string" + }, + "type": "array" + }, + "sampling": { + "description": "Sampling parameters. Defaults to the sampling rate agreed in the media buy.", + "properties": { + "method": { + "description": "How to select the sample", + "enum": [ + "random", + "stratified", + "recent", + "failures_only" + ], + "type": "string" + }, + "rate": { + "description": "Sampling rate (0-1). 1.0 = all deliveries, 0.25 = 25% sample.", + "maximum": 1, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "time_range": { + "description": "Filter to specific time period", + "properties": { + "end": { + "description": "End of time range (exclusive)", + "format": "date-time", + "type": "string" + }, + "start": { + "description": "Start of time range (inclusive)", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "media_buy_id" + ], + "title": "Get Media Buy Artifacts Request", + "type": "object" +} \ No newline at end of file diff --git a/schemas/cache/content-standards/get-media-buy-artifacts-response.json b/schemas/cache/content-standards/get-media-buy-artifacts-response.json new file mode 100644 index 00000000..4b0801f8 --- /dev/null +++ b/schemas/cache/content-standards/get-media-buy-artifacts-response.json @@ -0,0 +1,161 @@ +{ + "$id": "/schemas/3.0.0-beta.1/content-standards/get-media-buy-artifacts-response.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Response containing content artifacts from a media buy for validation", + "oneOf": [ + { + "description": "Success response with artifacts", + "properties": { + "artifacts": { + "description": "Delivery records with full artifact content", + "items": { + "properties": { + "artifact": { + "$ref": "/schemas/3.0.0-beta.1/content-standards/artifact.json", + "description": "Full artifact with content assets" + }, + "brand_context": { + "description": "Brand information for policy evaluation. Schema TBD - placeholder for brand identifiers.", + "properties": { + "brand_id": { + "description": "Brand identifier", + "type": "string" + }, + "sku_id": { + "description": "Product/SKU identifier if applicable", + "type": "string" + } + }, + "type": "object" + }, + "channel": { + "description": "Channel type (e.g., display, video, audio, social)", + "type": "string" + }, + "country": { + "description": "ISO 3166-1 alpha-2 country code where delivery occurred", + "type": "string" + }, + "local_verdict": { + "description": "Seller's local model verdict for this artifact", + "enum": [ + "pass", + "fail", + "unevaluated" + ], + "type": "string" + }, + "package_id": { + "description": "Which package this delivery belongs to", + "type": "string" + }, + "record_id": { + "description": "Unique identifier for this delivery record", + "type": "string" + }, + "timestamp": { + "description": "When the delivery occurred", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "record_id", + "artifact" + ], + "type": "object" + }, + "type": "array" + }, + "context": { + "$ref": "/schemas/3.0.0-beta.1/core/context.json" + }, + "errors": { + "description": "Field must not be present in success response", + "not": {} + }, + "ext": { + "$ref": "/schemas/3.0.0-beta.1/core/ext.json" + }, + "media_buy_id": { + "description": "Media buy these artifacts belong to", + "type": "string" + }, + "pagination": { + "description": "Pagination information for large result sets", + "properties": { + "cursor": { + "description": "Cursor for fetching the next page", + "type": "string" + }, + "has_more": { + "description": "Whether more results are available", + "type": "boolean" + } + }, + "type": "object" + }, + "sampling_info": { + "description": "Information about how the sample was generated", + "properties": { + "effective_rate": { + "description": "Actual sampling rate achieved", + "type": "number" + }, + "method": { + "description": "Sampling method used", + "enum": [ + "random", + "stratified", + "recent", + "failures_only" + ], + "type": "string" + }, + "sampled_count": { + "description": "Number of artifacts in this response", + "type": "integer" + }, + "total_deliveries": { + "description": "Total deliveries in the time range", + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "media_buy_id", + "artifacts" + ], + "type": "object" + }, + { + "description": "Error response", + "properties": { + "context": { + "$ref": "/schemas/3.0.0-beta.1/core/context.json" + }, + "errors": { + "items": { + "$ref": "/schemas/3.0.0-beta.1/core/error.json" + }, + "type": "array" + }, + "ext": { + "$ref": "/schemas/3.0.0-beta.1/core/ext.json" + }, + "media_buy_id": { + "description": "Field must not be present in error response", + "not": {} + } + }, + "required": [ + "errors" + ], + "type": "object" + } + ], + "title": "Get Media Buy Artifacts Response", + "type": "object" +} \ No newline at end of file diff --git a/schemas/cache/content-standards/list-content-standards-request.json b/schemas/cache/content-standards/list-content-standards-request.json new file mode 100644 index 00000000..f4b9dbd7 --- /dev/null +++ b/schemas/cache/content-standards/list-content-standards-request.json @@ -0,0 +1,37 @@ +{ + "$id": "/schemas/3.0.0-beta.1/content-standards/list-content-standards-request.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "description": "Request parameters for listing content standards configurations", + "properties": { + "channels": { + "description": "Filter by channel", + "items": { + "$ref": "/schemas/3.0.0-beta.1/enums/channels.json" + }, + "type": "array" + }, + "context": { + "$ref": "/schemas/3.0.0-beta.1/core/context.json" + }, + "countries": { + "description": "Filter by ISO 3166-1 alpha-2 country codes", + "items": { + "type": "string" + }, + "type": "array" + }, + "ext": { + "$ref": "/schemas/3.0.0-beta.1/core/ext.json" + }, + "languages": { + "description": "Filter by BCP 47 language tags", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "List Content Standards Request", + "type": "object" +} \ No newline at end of file diff --git a/schemas/cache/content-standards/list-content-standards-response.json b/schemas/cache/content-standards/list-content-standards-response.json new file mode 100644 index 00000000..47dd4d32 --- /dev/null +++ b/schemas/cache/content-standards/list-content-standards-response.json @@ -0,0 +1,60 @@ +{ + "$id": "/schemas/3.0.0-beta.1/content-standards/list-content-standards-response.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Response payload with list of content standards configurations", + "oneOf": [ + { + "description": "Success response - returns array of content standards", + "properties": { + "context": { + "$ref": "/schemas/3.0.0-beta.1/core/context.json" + }, + "errors": { + "description": "Field must not be present in success response", + "not": {} + }, + "ext": { + "$ref": "/schemas/3.0.0-beta.1/core/ext.json" + }, + "standards": { + "description": "Array of content standards configurations matching the filter criteria", + "items": { + "$ref": "/schemas/3.0.0-beta.1/content-standards/content-standards.json" + }, + "type": "array" + } + }, + "required": [ + "standards" + ], + "type": "object" + }, + { + "description": "Error response", + "properties": { + "context": { + "$ref": "/schemas/3.0.0-beta.1/core/context.json" + }, + "errors": { + "items": { + "$ref": "/schemas/3.0.0-beta.1/core/error.json" + }, + "type": "array" + }, + "ext": { + "$ref": "/schemas/3.0.0-beta.1/core/ext.json" + }, + "standards": { + "description": "Field must not be present in error response", + "not": {} + } + }, + "required": [ + "errors" + ], + "type": "object" + } + ], + "title": "List Content Standards Response", + "type": "object" +} \ No newline at end of file diff --git a/schemas/cache/content-standards/update-content-standards-request.json b/schemas/cache/content-standards/update-content-standards-request.json new file mode 100644 index 00000000..22003430 --- /dev/null +++ b/schemas/cache/content-standards/update-content-standards-request.json @@ -0,0 +1,137 @@ +{ + "$id": "/schemas/3.0.0-beta.1/content-standards/update-content-standards-request.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "description": "Request parameters for updating an existing content standards configuration. Creates a new version.", + "properties": { + "calibration_exemplars": { + "description": "Updated training/test set to calibrate policy interpretation. Use URL references for pages to be fetched and analyzed, or full artifacts for pre-extracted content.", + "properties": { + "fail": { + "description": "Content that fails the standards", + "items": { + "oneOf": [ + { + "description": "URL reference - specific page to fetch and evaluate", + "properties": { + "language": { + "description": "BCP 47 language tag for content at this URL", + "type": "string" + }, + "type": { + "const": "url", + "description": "Indicates this is a URL reference", + "type": "string" + }, + "value": { + "description": "Full URL to a specific page (e.g., 'https://news.example.com/controversial-article')", + "format": "uri", + "type": "string" + } + }, + "required": [ + "type", + "value" + ], + "type": "object" + }, + { + "$ref": "/schemas/3.0.0-beta.1/content-standards/artifact.json", + "description": "Full artifact with pre-extracted content (text, images, video, audio)" + } + ] + }, + "type": "array" + }, + "pass": { + "description": "Content that passes the standards", + "items": { + "oneOf": [ + { + "description": "URL reference - specific page to fetch and evaluate", + "properties": { + "language": { + "description": "BCP 47 language tag for content at this URL", + "type": "string" + }, + "type": { + "const": "url", + "description": "Indicates this is a URL reference", + "type": "string" + }, + "value": { + "description": "Full URL to a specific page (e.g., 'https://espn.com/nba/story/_/id/12345/lakers-win')", + "format": "uri", + "type": "string" + } + }, + "required": [ + "type", + "value" + ], + "type": "object" + }, + { + "$ref": "/schemas/3.0.0-beta.1/content-standards/artifact.json", + "description": "Full artifact with pre-extracted content (text, images, video, audio)" + } + ] + }, + "type": "array" + } + }, + "type": "object" + }, + "context": { + "$ref": "/schemas/3.0.0-beta.1/core/context.json" + }, + "ext": { + "$ref": "/schemas/3.0.0-beta.1/core/ext.json" + }, + "policy": { + "description": "Updated natural language policy describing acceptable and unacceptable content contexts.", + "type": "string" + }, + "scope": { + "description": "Updated scope for where this standards configuration applies", + "properties": { + "channels_any": { + "description": "Advertising channels. Standards apply to ANY of the listed channels (OR logic).", + "items": { + "$ref": "/schemas/3.0.0-beta.1/enums/channels.json" + }, + "type": "array" + }, + "countries_all": { + "description": "ISO 3166-1 alpha-2 country codes. Standards apply in ALL listed countries (AND logic).", + "items": { + "type": "string" + }, + "type": "array" + }, + "description": { + "description": "Human-readable description of this scope", + "type": "string" + }, + "languages_any": { + "description": "BCP 47 language tags (e.g., 'en', 'de', 'fr'). Standards apply to content in ANY of these languages (OR logic). Content in unlisted languages is not covered by these standards.", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "standards_id": { + "description": "ID of the standards configuration to update", + "type": "string" + } + }, + "required": [ + "standards_id" + ], + "title": "Update Content Standards Request", + "type": "object" +} \ No newline at end of file diff --git a/schemas/cache/content-standards/update-content-standards-response.json b/schemas/cache/content-standards/update-content-standards-response.json new file mode 100644 index 00000000..6e1bae17 --- /dev/null +++ b/schemas/cache/content-standards/update-content-standards-response.json @@ -0,0 +1,31 @@ +{ + "$id": "/schemas/3.0.0-beta.1/content-standards/update-content-standards-response.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "description": "Response from updating a content standards configuration", + "properties": { + "conflicting_standards_id": { + "description": "If scope change conflicts with another configuration, the ID of the conflicting standards", + "type": "string" + }, + "context": { + "$ref": "/schemas/3.0.0-beta.1/core/context.json" + }, + "errors": { + "description": "Errors that occurred during the update", + "items": { + "$ref": "/schemas/3.0.0-beta.1/core/error.json" + }, + "type": "array" + }, + "ext": { + "$ref": "/schemas/3.0.0-beta.1/core/ext.json" + }, + "standards_id": { + "description": "ID of the updated standards configuration", + "type": "string" + } + }, + "title": "Update Content Standards Response", + "type": "object" +} \ No newline at end of file diff --git a/schemas/cache/content-standards/validate-content-delivery-request.json b/schemas/cache/content-standards/validate-content-delivery-request.json new file mode 100644 index 00000000..9730040f --- /dev/null +++ b/schemas/cache/content-standards/validate-content-delivery-request.json @@ -0,0 +1,88 @@ +{ + "$id": "/schemas/3.0.0-beta.1/content-standards/validate-content-delivery-request.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Request parameters for batch validating delivery records against content safety policies", + "properties": { + "context": { + "$ref": "/schemas/3.0.0-beta.1/core/context.json" + }, + "ext": { + "$ref": "/schemas/3.0.0-beta.1/core/ext.json" + }, + "feature_ids": { + "description": "Specific features to evaluate (defaults to all)", + "items": { + "type": "string" + }, + "type": "array" + }, + "include_passed": { + "default": true, + "description": "Include passed records in results", + "type": "boolean" + }, + "records": { + "description": "Delivery records to validate (max 10,000)", + "items": { + "properties": { + "artifact": { + "$ref": "/schemas/3.0.0-beta.1/content-standards/artifact.json", + "description": "Artifact where ad was delivered" + }, + "brand_context": { + "description": "Brand information for policy evaluation. Schema TBD - placeholder for brand identifiers.", + "properties": { + "brand_id": { + "description": "Brand identifier", + "type": "string" + }, + "sku_id": { + "description": "Product/SKU identifier if applicable", + "type": "string" + } + }, + "type": "object" + }, + "channel": { + "description": "Channel type (e.g., display, video, audio, social)", + "type": "string" + }, + "country": { + "description": "ISO 3166-1 alpha-2 country code where delivery occurred", + "type": "string" + }, + "media_buy_id": { + "description": "Media buy this record belongs to (when batching across multiple buys)", + "type": "string" + }, + "record_id": { + "description": "Unique identifier for this delivery record", + "type": "string" + }, + "timestamp": { + "description": "When the delivery occurred", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "record_id", + "artifact" + ], + "type": "object" + }, + "maxItems": 10000, + "type": "array" + }, + "standards_id": { + "description": "Standards configuration to validate against", + "type": "string" + } + }, + "required": [ + "standards_id", + "records" + ], + "title": "Validate Content Delivery Request", + "type": "object" +} \ No newline at end of file diff --git a/schemas/cache/content-standards/validate-content-delivery-response.json b/schemas/cache/content-standards/validate-content-delivery-response.json new file mode 100644 index 00000000..a5348f81 --- /dev/null +++ b/schemas/cache/content-standards/validate-content-delivery-response.json @@ -0,0 +1,132 @@ +{ + "$id": "/schemas/3.0.0-beta.1/content-standards/validate-content-delivery-response.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Response payload with per-record verdicts and optional feature breakdown", + "oneOf": [ + { + "description": "Success response", + "properties": { + "context": { + "$ref": "/schemas/3.0.0-beta.1/core/context.json" + }, + "errors": { + "description": "Field must not be present in success response", + "not": {} + }, + "ext": { + "$ref": "/schemas/3.0.0-beta.1/core/ext.json" + }, + "results": { + "description": "Per-record evaluation results", + "items": { + "properties": { + "features": { + "description": "Optional feature-level breakdown", + "items": { + "properties": { + "feature_id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "rule_id": { + "description": "Which rule triggered this result (e.g., GARM category, Scope3 standard)", + "type": "string" + }, + "status": { + "enum": [ + "passed", + "failed", + "warning", + "unevaluated" + ], + "type": "string" + }, + "value": {} + }, + "required": [ + "feature_id", + "status" + ], + "type": "object" + }, + "type": "array" + }, + "record_id": { + "description": "Which delivery record was evaluated", + "type": "string" + }, + "verdict": { + "description": "Overall pass/fail verdict for this record", + "enum": [ + "pass", + "fail" + ], + "type": "string" + } + }, + "required": [ + "record_id", + "verdict" + ], + "type": "object" + }, + "type": "array" + }, + "summary": { + "description": "Summary counts across all records", + "properties": { + "failed_records": { + "type": "integer" + }, + "passed_records": { + "type": "integer" + }, + "total_records": { + "type": "integer" + } + }, + "required": [ + "total_records", + "passed_records", + "failed_records" + ], + "type": "object" + } + }, + "required": [ + "summary", + "results" + ], + "type": "object" + }, + { + "description": "Error response", + "properties": { + "context": { + "$ref": "/schemas/3.0.0-beta.1/core/context.json" + }, + "errors": { + "items": { + "$ref": "/schemas/3.0.0-beta.1/core/error.json" + }, + "type": "array" + }, + "ext": { + "$ref": "/schemas/3.0.0-beta.1/core/ext.json" + }, + "summary": { + "description": "Field must not be present in error response", + "not": {} + } + }, + "required": [ + "errors" + ], + "type": "object" + } + ], + "title": "Validate Content Delivery Response", + "type": "object" +} \ No newline at end of file diff --git a/schemas/cache/core/activation-key.json b/schemas/cache/core/activation-key.json index 6ad5331b..f85817d3 100644 --- a/schemas/cache/core/activation-key.json +++ b/schemas/cache/core/activation-key.json @@ -1,4 +1,5 @@ { + "$id": "/schemas/3.0.0-beta.1/core/activation-key.json", "$schema": "http://json-schema.org/draft-07/schema#", "description": "Universal identifier for using a signal on a destination platform. Can be either a segment ID or a key-value pair depending on the platform's targeting mechanism.", "oneOf": [ diff --git a/schemas/cache/core/assets/audio-asset.json b/schemas/cache/core/assets/audio-asset.json index 4fd73b6f..9b601680 100644 --- a/schemas/cache/core/assets/audio-asset.json +++ b/schemas/cache/core/assets/audio-asset.json @@ -1,4 +1,5 @@ { + "$id": "/schemas/3.0.0-beta.1/core/assets/audio-asset.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "Audio asset with URL and specifications", diff --git a/schemas/cache/core/assets/css-asset.json b/schemas/cache/core/assets/css-asset.json index 2327c516..1c962d45 100644 --- a/schemas/cache/core/assets/css-asset.json +++ b/schemas/cache/core/assets/css-asset.json @@ -1,4 +1,5 @@ { + "$id": "/schemas/3.0.0-beta.1/core/assets/css-asset.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "CSS stylesheet asset", diff --git a/schemas/cache/core/assets/daast-asset.json b/schemas/cache/core/assets/daast-asset.json index 6e25a751..124c1713 100644 --- a/schemas/cache/core/assets/daast-asset.json +++ b/schemas/cache/core/assets/daast-asset.json @@ -1,4 +1,5 @@ { + "$id": "/schemas/3.0.0-beta.1/core/assets/daast-asset.json", "$schema": "http://json-schema.org/draft-07/schema#", "description": "DAAST (Digital Audio Ad Serving Template) tag for third-party audio ad serving", "oneOf": [ @@ -10,7 +11,7 @@ "type": "boolean" }, "daast_version": { - "$ref": "../../enums/daast-version.json", + "$ref": "/schemas/3.0.0-beta.1/enums/daast-version.json", "description": "DAAST specification version" }, "delivery_type": { @@ -26,7 +27,7 @@ "tracking_events": { "description": "Tracking events supported by this DAAST tag", "items": { - "$ref": "../../enums/daast-tracking-event.json" + "$ref": "/schemas/3.0.0-beta.1/enums/daast-tracking-event.json" }, "type": "array" }, @@ -54,7 +55,7 @@ "type": "string" }, "daast_version": { - "$ref": "../../enums/daast-version.json", + "$ref": "/schemas/3.0.0-beta.1/enums/daast-version.json", "description": "DAAST specification version" }, "delivery_type": { @@ -70,7 +71,7 @@ "tracking_events": { "description": "Tracking events supported by this DAAST tag", "items": { - "$ref": "../../enums/daast-tracking-event.json" + "$ref": "/schemas/3.0.0-beta.1/enums/daast-tracking-event.json" }, "type": "array" } diff --git a/schemas/cache/core/assets/html-asset.json b/schemas/cache/core/assets/html-asset.json index 0442fa79..1a744fa6 100644 --- a/schemas/cache/core/assets/html-asset.json +++ b/schemas/cache/core/assets/html-asset.json @@ -1,4 +1,5 @@ { + "$id": "/schemas/3.0.0-beta.1/core/assets/html-asset.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "HTML content asset", diff --git a/schemas/cache/core/assets/image-asset.json b/schemas/cache/core/assets/image-asset.json index 68aa14df..f01f678d 100644 --- a/schemas/cache/core/assets/image-asset.json +++ b/schemas/cache/core/assets/image-asset.json @@ -1,4 +1,5 @@ { + "$id": "/schemas/3.0.0-beta.1/core/assets/image-asset.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "Image asset with URL and dimensions", diff --git a/schemas/cache/core/assets/javascript-asset.json b/schemas/cache/core/assets/javascript-asset.json index a43cd804..239620ac 100644 --- a/schemas/cache/core/assets/javascript-asset.json +++ b/schemas/cache/core/assets/javascript-asset.json @@ -1,4 +1,5 @@ { + "$id": "/schemas/3.0.0-beta.1/core/assets/javascript-asset.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "JavaScript code asset", @@ -8,7 +9,7 @@ "type": "string" }, "module_type": { - "$ref": "../../enums/javascript-module-type.json", + "$ref": "/schemas/3.0.0-beta.1/enums/javascript-module-type.json", "description": "JavaScript module type" } }, diff --git a/schemas/cache/core/assets/text-asset.json b/schemas/cache/core/assets/text-asset.json index 7f4b2d40..b4d97bdc 100644 --- a/schemas/cache/core/assets/text-asset.json +++ b/schemas/cache/core/assets/text-asset.json @@ -1,4 +1,5 @@ { + "$id": "/schemas/3.0.0-beta.1/core/assets/text-asset.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "Text content asset", diff --git a/schemas/cache/core/assets/url-asset.json b/schemas/cache/core/assets/url-asset.json index ac5ea5bb..26f3b9f4 100644 --- a/schemas/cache/core/assets/url-asset.json +++ b/schemas/cache/core/assets/url-asset.json @@ -1,4 +1,5 @@ { + "$id": "/schemas/3.0.0-beta.1/core/assets/url-asset.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "URL reference asset", @@ -13,7 +14,7 @@ "type": "string" }, "url_type": { - "$ref": "../../enums/url-asset-type.json", + "$ref": "/schemas/3.0.0-beta.1/enums/url-asset-type.json", "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