@adcp/sdk 7.11.0 → 7.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ADCP_VERSION +1 -1
- package/compliance/cache/{3.0.12 → 3.0.18}/domains/creative/index.yaml +2 -1
- package/compliance/cache/{3.0.12/protocols → 3.0.18/domains}/media-buy/creative-reception.yaml +1 -0
- package/compliance/cache/{3.0.12/protocols → 3.0.18/domains}/media-buy/scenarios/measurement_terms_rejected.yaml +19 -11
- package/compliance/cache/{3.0.12.previous → 3.0.18}/domains/media-buy/scenarios/proposal_finalize.yaml +6 -0
- package/compliance/cache/{3.0.12.previous/protocols → 3.0.18/domains}/media-buy/state-machine.yaml +82 -13
- package/compliance/cache/{3.0.12 → 3.0.18}/index.json +3 -2
- package/compliance/cache/{3.0.12 → 3.0.18}/protocols/creative/index.yaml +2 -1
- package/compliance/cache/{3.0.12.previous/domains → 3.0.18/protocols}/media-buy/creative-reception.yaml +1 -0
- package/compliance/cache/{3.0.12.previous → 3.0.18}/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +19 -11
- package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/scenarios/proposal_finalize.yaml +6 -0
- package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/state-machine.yaml +82 -13
- package/compliance/cache/{3.0.12.previous → 3.0.18}/specialisms/creative-template/index.yaml +1 -0
- package/compliance/cache/{3.0.12 → 3.0.18}/test-kits/webhook-receiver-runner.yaml +9 -9
- package/compliance/cache/{3.0.12.previous → 3.0.18}/universal/idempotency.yaml +327 -124
- package/compliance/cache/{3.0.12 → 3.0.18}/universal/schema-validation.yaml +52 -13
- package/compliance/cache/{3.0.12.previous → 3.0.18}/universal/security.yaml +170 -61
- package/compliance/cache/{3.0.12 → 3.0.18}/universal/storyboard-schema.yaml +43 -23
- package/compliance/cache/{3.0.12 → 3.0.18}/universal/v3-envelope-integrity.yaml +20 -1
- package/compliance/cache/3.0.18/universal/webhook-emission.yaml +751 -0
- package/compliance/cache/{3.0.12.previous/protocols → 3.0.18.previous/domains}/creative/index.yaml +2 -1
- package/compliance/cache/{3.0.12.previous/protocols → 3.0.18.previous/domains}/media-buy/creative-reception.yaml +1 -0
- package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/scenarios/measurement_terms_rejected.yaml +19 -11
- package/compliance/cache/{3.0.12.previous/protocols → 3.0.18.previous/domains}/media-buy/scenarios/proposal_finalize.yaml +6 -0
- package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/state-machine.yaml +82 -13
- package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/index.json +3 -2
- package/compliance/cache/{3.0.12.previous/domains → 3.0.18.previous/protocols}/creative/index.yaml +2 -1
- package/compliance/cache/{3.0.12/domains → 3.0.18.previous/protocols}/media-buy/creative-reception.yaml +1 -0
- package/compliance/cache/{3.0.12/domains → 3.0.18.previous/protocols}/media-buy/scenarios/measurement_terms_rejected.yaml +19 -11
- package/compliance/cache/{3.0.12/domains → 3.0.18.previous/protocols}/media-buy/scenarios/proposal_finalize.yaml +6 -0
- package/compliance/cache/{3.0.12/domains → 3.0.18.previous/protocols}/media-buy/state-machine.yaml +82 -13
- package/compliance/cache/{3.0.12 → 3.0.18.previous}/specialisms/creative-template/index.yaml +1 -0
- package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-kits/webhook-receiver-runner.yaml +9 -9
- package/compliance/cache/{3.0.12 → 3.0.18.previous}/universal/idempotency.yaml +327 -124
- package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/schema-validation.yaml +52 -13
- package/compliance/cache/{3.0.12 → 3.0.18.previous}/universal/security.yaml +170 -61
- package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/storyboard-schema.yaml +43 -23
- package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/v3-envelope-integrity.yaml +20 -1
- package/compliance/cache/3.0.18.previous/universal/webhook-emission.yaml +751 -0
- package/dist/lib/core/AgentClient.d.ts +1 -1
- package/dist/lib/core/AgentClient.d.ts.map +1 -1
- package/dist/lib/core/AgentClient.js.map +1 -1
- package/dist/lib/core/ResponseValidator.d.ts +2 -0
- package/dist/lib/core/ResponseValidator.d.ts.map +1 -1
- package/dist/lib/core/ResponseValidator.js +3 -3
- package/dist/lib/core/ResponseValidator.js.map +1 -1
- package/dist/lib/core/SingleAgentClient.d.ts +6 -0
- package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
- package/dist/lib/core/SingleAgentClient.js +1 -0
- package/dist/lib/core/SingleAgentClient.js.map +1 -1
- package/dist/lib/core/TaskExecutor.d.ts +6 -0
- package/dist/lib/core/TaskExecutor.d.ts.map +1 -1
- package/dist/lib/core/TaskExecutor.js +15 -1
- package/dist/lib/core/TaskExecutor.js.map +1 -1
- package/dist/lib/protocols/index.d.ts +10 -2
- package/dist/lib/protocols/index.d.ts.map +1 -1
- package/dist/lib/protocols/index.js +14 -6
- package/dist/lib/protocols/index.js.map +1 -1
- package/dist/lib/schemas-data/3.0/a2ui/bound-value.json +1 -1
- package/dist/lib/schemas-data/3.0/a2ui/component.json +1 -1
- package/dist/lib/schemas-data/3.0/a2ui/si-catalog.json +25 -25
- package/dist/lib/schemas-data/3.0/a2ui/surface.json +2 -2
- package/dist/lib/schemas-data/3.0/a2ui/user-action.json +1 -1
- package/dist/lib/schemas-data/3.0/account/get-account-financials-request.json +5 -5
- package/dist/lib/schemas-data/3.0/account/get-account-financials-response.json +10 -10
- package/dist/lib/schemas-data/3.0/account/list-accounts-request.json +4 -4
- package/dist/lib/schemas-data/3.0/account/list-accounts-response.json +6 -6
- package/dist/lib/schemas-data/3.0/account/report-usage-request.json +5 -5
- package/dist/lib/schemas-data/3.0/account/report-usage-response.json +4 -4
- package/dist/lib/schemas-data/3.0/account/sync-accounts-request.json +9 -9
- package/dist/lib/schemas-data/3.0/account/sync-accounts-response.json +12 -12
- package/dist/lib/schemas-data/3.0/account/sync-governance-request.json +5 -5
- package/dist/lib/schemas-data/3.0/account/sync-governance-response.json +8 -8
- package/dist/lib/schemas-data/3.0/adagents.json +32 -32
- package/dist/lib/schemas-data/3.0/brand/acquire-rights-request.json +8 -8
- package/dist/lib/schemas-data/3.0/brand/acquire-rights-response.json +14 -14
- package/dist/lib/schemas-data/3.0/brand/creative-approval-request.json +4 -4
- package/dist/lib/schemas-data/3.0/brand/creative-approval-response.json +10 -10
- package/dist/lib/schemas-data/3.0/brand/get-brand-identity-request.json +3 -3
- package/dist/lib/schemas-data/3.0/brand/get-brand-identity-response.json +8 -8
- package/dist/lib/schemas-data/3.0/brand/get-rights-request.json +7 -7
- package/dist/lib/schemas-data/3.0/brand/get-rights-response.json +9 -9
- package/dist/lib/schemas-data/3.0/brand/revocation-notification.json +4 -4
- package/dist/lib/schemas-data/3.0/brand/rights-pricing-option.json +5 -5
- package/dist/lib/schemas-data/3.0/brand/rights-terms.json +3 -3
- package/dist/lib/schemas-data/3.0/brand/update-rights-request.json +4 -4
- package/dist/lib/schemas-data/3.0/brand/update-rights-response.json +9 -9
- package/dist/lib/schemas-data/3.0/brand.json +14 -14
- package/dist/lib/schemas-data/3.0/bundled/content-standards/calibrate-content-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/calibrate-content-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/create-content-standards-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/create-content-standards-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/get-content-standards-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/get-content-standards-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/get-media-buy-artifacts-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/get-media-buy-artifacts-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/list-content-standards-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/list-content-standards-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/update-content-standards-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/update-content-standards-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/validate-content-delivery-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/validate-content-delivery-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/core/tasks-get-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/core/tasks-get-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/core/tasks-list-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/core/tasks-list-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-delivery-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-delivery-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-features-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-features-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/list-creative-formats-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/list-creative-formats-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/list-creatives-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/list-creatives-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/preview-creative-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/preview-creative-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/sync-creatives-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/sync-creatives-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/build-creative-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/build-creative-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/create-media-buy-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/create-media-buy-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buy-delivery-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buy-delivery-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buys-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buys-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/get-products-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/get-products-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/list-creative-formats-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/list-creative-formats-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/log-event-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/log-event-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/package-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/provide-performance-feedback-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/provide-performance-feedback-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-audiences-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-audiences-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-catalogs-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-catalogs-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-event-sources-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-event-sources-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/update-media-buy-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/update-media-buy-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/create-property-list-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/create-property-list-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/delete-property-list-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/delete-property-list-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/get-property-list-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/get-property-list-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/list-property-lists-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/list-property-lists-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/update-property-list-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/update-property-list-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/validate-property-delivery-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/validate-property-delivery-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/protocol/get-adcp-capabilities-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/protocol/get-adcp-capabilities-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/signals/activate-signal-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/signals/activate-signal-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/signals/get-signals-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/signals/get-signals-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-get-offering-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-get-offering-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-initiate-session-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-initiate-session-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-send-message-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-send-message-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-terminate-session-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-terminate-session-response.json +2 -2
- package/dist/lib/schemas-data/3.0/collection/base-collection-source.json +3 -3
- package/dist/lib/schemas-data/3.0/collection/collection-list-changed-webhook.json +2 -2
- package/dist/lib/schemas-data/3.0/collection/collection-list-filters.json +7 -7
- package/dist/lib/schemas-data/3.0/collection/collection-list.json +5 -5
- package/dist/lib/schemas-data/3.0/collection/create-collection-list-request.json +7 -7
- package/dist/lib/schemas-data/3.0/collection/create-collection-list-response.json +4 -4
- package/dist/lib/schemas-data/3.0/collection/delete-collection-list-request.json +4 -4
- package/dist/lib/schemas-data/3.0/collection/delete-collection-list-response.json +3 -3
- package/dist/lib/schemas-data/3.0/collection/get-collection-list-request.json +4 -4
- package/dist/lib/schemas-data/3.0/collection/get-collection-list-response.json +10 -10
- package/dist/lib/schemas-data/3.0/collection/list-collection-lists-request.json +5 -5
- package/dist/lib/schemas-data/3.0/collection/list-collection-lists-response.json +5 -5
- package/dist/lib/schemas-data/3.0/collection/update-collection-list-request.json +7 -7
- package/dist/lib/schemas-data/3.0/collection/update-collection-list-response.json +4 -4
- package/dist/lib/schemas-data/3.0/content-standards/artifact-webhook-payload.json +3 -3
- package/dist/lib/schemas-data/3.0/content-standards/artifact.json +7 -7
- package/dist/lib/schemas-data/3.0/content-standards/calibrate-content-request.json +4 -4
- package/dist/lib/schemas-data/3.0/content-standards/calibrate-content-response.json +8 -8
- package/dist/lib/schemas-data/3.0/content-standards/content-standards.json +7 -7
- package/dist/lib/schemas-data/3.0/content-standards/create-content-standards-request.json +7 -7
- package/dist/lib/schemas-data/3.0/content-standards/create-content-standards-response.json +6 -6
- package/dist/lib/schemas-data/3.0/content-standards/get-content-standards-request.json +3 -3
- package/dist/lib/schemas-data/3.0/content-standards/get-content-standards-response.json +7 -7
- package/dist/lib/schemas-data/3.0/content-standards/get-media-buy-artifacts-request.json +4 -4
- package/dist/lib/schemas-data/3.0/content-standards/get-media-buy-artifacts-response.json +8 -8
- package/dist/lib/schemas-data/3.0/content-standards/list-content-standards-request.json +5 -5
- package/dist/lib/schemas-data/3.0/content-standards/list-content-standards-response.json +8 -8
- package/dist/lib/schemas-data/3.0/content-standards/update-content-standards-request.json +7 -7
- package/dist/lib/schemas-data/3.0/content-standards/update-content-standards-response.json +6 -6
- package/dist/lib/schemas-data/3.0/content-standards/validate-content-delivery-request.json +4 -4
- package/dist/lib/schemas-data/3.0/content-standards/validate-content-delivery-response.json +8 -8
- package/dist/lib/schemas-data/3.0/core/account-ref.json +2 -2
- package/dist/lib/schemas-data/3.0/core/account.json +9 -9
- package/dist/lib/schemas-data/3.0/core/activation-key.json +1 -1
- package/dist/lib/schemas-data/3.0/core/ad-inventory-config.json +1 -1
- package/dist/lib/schemas-data/3.0/core/agent-encryption-key.json +1 -1
- package/dist/lib/schemas-data/3.0/core/agent-signing-key.json +1 -1
- package/dist/lib/schemas-data/3.0/core/app-item.json +4 -4
- package/dist/lib/schemas-data/3.0/core/assets/asset-union.json +15 -15
- package/dist/lib/schemas-data/3.0/core/assets/audio-asset.json +3 -3
- package/dist/lib/schemas-data/3.0/core/assets/brief-asset.json +2 -2
- package/dist/lib/schemas-data/3.0/core/assets/catalog-asset.json +2 -2
- package/dist/lib/schemas-data/3.0/core/assets/css-asset.json +2 -2
- package/dist/lib/schemas-data/3.0/core/assets/daast-asset.json +4 -4
- package/dist/lib/schemas-data/3.0/core/assets/html-asset.json +2 -2
- package/dist/lib/schemas-data/3.0/core/assets/image-asset.json +2 -2
- package/dist/lib/schemas-data/3.0/core/assets/javascript-asset.json +3 -3
- package/dist/lib/schemas-data/3.0/core/assets/markdown-asset.json +2 -2
- package/dist/lib/schemas-data/3.0/core/assets/text-asset.json +2 -2
- package/dist/lib/schemas-data/3.0/core/assets/url-asset.json +3 -3
- package/dist/lib/schemas-data/3.0/core/assets/vast-asset.json +4 -4
- package/dist/lib/schemas-data/3.0/core/assets/video-asset.json +7 -7
- package/dist/lib/schemas-data/3.0/core/assets/webhook-asset.json +7 -7
- package/dist/lib/schemas-data/3.0/core/async-response-data.json +25 -25
- package/dist/lib/schemas-data/3.0/core/attribution-window.json +4 -4
- package/dist/lib/schemas-data/3.0/core/audience-member.json +3 -3
- package/dist/lib/schemas-data/3.0/core/audience-selector.json +4 -4
- package/dist/lib/schemas-data/3.0/core/brand-id.json +1 -1
- package/dist/lib/schemas-data/3.0/core/brand-ref.json +2 -2
- package/dist/lib/schemas-data/3.0/core/business-entity.json +2 -2
- package/dist/lib/schemas-data/3.0/core/cancellation-policy.json +2 -2
- package/dist/lib/schemas-data/3.0/core/catalog-field-mapping.json +2 -2
- package/dist/lib/schemas-data/3.0/core/catalog.json +7 -7
- package/dist/lib/schemas-data/3.0/core/catchment.json +5 -5
- package/dist/lib/schemas-data/3.0/core/collection-distribution.json +2 -2
- package/dist/lib/schemas-data/3.0/core/collection-list-ref.json +1 -1
- package/dist/lib/schemas-data/3.0/core/collection-selector.json +1 -1
- package/dist/lib/schemas-data/3.0/core/collection.json +13 -13
- package/dist/lib/schemas-data/3.0/core/content-rating.json +2 -2
- package/dist/lib/schemas-data/3.0/core/context.json +1 -1
- package/dist/lib/schemas-data/3.0/core/creative-asset.json +6 -6
- package/dist/lib/schemas-data/3.0/core/creative-assignment.json +1 -1
- package/dist/lib/schemas-data/3.0/core/creative-brief.json +4 -4
- package/dist/lib/schemas-data/3.0/core/creative-consumption.json +1 -1
- package/dist/lib/schemas-data/3.0/core/creative-filters.json +4 -4
- package/dist/lib/schemas-data/3.0/core/creative-item.json +1 -1
- package/dist/lib/schemas-data/3.0/core/creative-manifest.json +7 -7
- package/dist/lib/schemas-data/3.0/core/creative-policy.json +3 -3
- package/dist/lib/schemas-data/3.0/core/creative-variable.json +1 -1
- package/dist/lib/schemas-data/3.0/core/creative-variant.json +5 -5
- package/dist/lib/schemas-data/3.0/core/data-provider-signal-selector.json +1 -1
- package/dist/lib/schemas-data/3.0/core/date-range.json +1 -1
- package/dist/lib/schemas-data/3.0/core/datetime-range.json +1 -1
- package/dist/lib/schemas-data/3.0/core/daypart-target.json +2 -2
- package/dist/lib/schemas-data/3.0/core/deadline-policy.json +1 -1
- package/dist/lib/schemas-data/3.0/core/delivery-forecast.json +7 -7
- package/dist/lib/schemas-data/3.0/core/delivery-metrics.json +5 -5
- package/dist/lib/schemas-data/3.0/core/deployment.json +3 -3
- package/dist/lib/schemas-data/3.0/core/destination-item.json +4 -4
- package/dist/lib/schemas-data/3.0/core/destination.json +1 -1
- package/dist/lib/schemas-data/3.0/core/diagnostic-issue.json +1 -1
- package/dist/lib/schemas-data/3.0/core/duration.json +1 -1
- package/dist/lib/schemas-data/3.0/core/education-item.json +4 -4
- package/dist/lib/schemas-data/3.0/core/error.json +1 -1
- package/dist/lib/schemas-data/3.0/core/event-custom-data.json +2 -2
- package/dist/lib/schemas-data/3.0/core/event-source-health.json +3 -3
- package/dist/lib/schemas-data/3.0/core/event.json +6 -6
- package/dist/lib/schemas-data/3.0/core/ext.json +1 -1
- package/dist/lib/schemas-data/3.0/core/feature-requirement.json +1 -1
- package/dist/lib/schemas-data/3.0/core/flight-item.json +4 -4
- package/dist/lib/schemas-data/3.0/core/forecast-point.json +18 -18
- package/dist/lib/schemas-data/3.0/core/forecast-range.json +1 -1
- package/dist/lib/schemas-data/3.0/core/format-id.json +1 -1
- package/dist/lib/schemas-data/3.0/core/format.json +42 -42
- package/dist/lib/schemas-data/3.0/core/frequency-cap.json +4 -4
- package/dist/lib/schemas-data/3.0/core/generation-credential.json +3 -3
- package/dist/lib/schemas-data/3.0/core/geo-breakdown-support.json +3 -3
- package/dist/lib/schemas-data/3.0/core/hotel-item.json +4 -4
- package/dist/lib/schemas-data/3.0/core/identifier.json +2 -2
- package/dist/lib/schemas-data/3.0/core/industry-identifier.json +2 -2
- package/dist/lib/schemas-data/3.0/core/insertion-order.json +1 -1
- package/dist/lib/schemas-data/3.0/core/installment-deadlines.json +2 -2
- package/dist/lib/schemas-data/3.0/core/installment.json +9 -9
- package/dist/lib/schemas-data/3.0/core/job-item.json +3 -3
- package/dist/lib/schemas-data/3.0/core/limited-series.json +1 -1
- package/dist/lib/schemas-data/3.0/core/material-deadline.json +1 -1
- package/dist/lib/schemas-data/3.0/core/mcp-webhook-payload.json +5 -5
- package/dist/lib/schemas-data/3.0/core/measurement-readiness.json +5 -5
- package/dist/lib/schemas-data/3.0/core/measurement-terms.json +3 -3
- package/dist/lib/schemas-data/3.0/core/measurement-window.json +1 -1
- package/dist/lib/schemas-data/3.0/core/media-buy-features.json +1 -1
- package/dist/lib/schemas-data/3.0/core/media-buy.json +7 -7
- package/dist/lib/schemas-data/3.0/core/offering-asset-group.json +15 -15
- package/dist/lib/schemas-data/3.0/core/offering.json +5 -5
- package/dist/lib/schemas-data/3.0/core/optimization-goal.json +6 -6
- package/dist/lib/schemas-data/3.0/core/outcome-measurement.json +2 -2
- package/dist/lib/schemas-data/3.0/core/overlay.json +1 -1
- package/dist/lib/schemas-data/3.0/core/package.json +14 -14
- package/dist/lib/schemas-data/3.0/core/pagination-request.json +1 -1
- package/dist/lib/schemas-data/3.0/core/pagination-response.json +1 -1
- package/dist/lib/schemas-data/3.0/core/performance-feedback.json +3 -3
- package/dist/lib/schemas-data/3.0/core/performance-standard.json +4 -4
- package/dist/lib/schemas-data/3.0/core/placement-definition.json +5 -5
- package/dist/lib/schemas-data/3.0/core/placement.json +2 -2
- package/dist/lib/schemas-data/3.0/core/planned-delivery.json +5 -5
- package/dist/lib/schemas-data/3.0/core/price.json +1 -1
- package/dist/lib/schemas-data/3.0/core/pricing-option.json +10 -10
- package/dist/lib/schemas-data/3.0/core/product-allocation.json +4 -4
- package/dist/lib/schemas-data/3.0/core/product-filters.json +16 -16
- package/dist/lib/schemas-data/3.0/core/product.json +28 -28
- package/dist/lib/schemas-data/3.0/core/property-id.json +1 -1
- package/dist/lib/schemas-data/3.0/core/property-list-ref.json +1 -1
- package/dist/lib/schemas-data/3.0/core/property-tag.json +1 -1
- package/dist/lib/schemas-data/3.0/core/property.json +6 -6
- package/dist/lib/schemas-data/3.0/core/proposal.json +6 -6
- package/dist/lib/schemas-data/3.0/core/protocol-envelope.json +3 -3
- package/dist/lib/schemas-data/3.0/core/provenance.json +6 -6
- package/dist/lib/schemas-data/3.0/core/publisher-property-selector.json +3 -3
- package/dist/lib/schemas-data/3.0/core/push-notification-config.json +2 -2
- package/dist/lib/schemas-data/3.0/core/real-estate-item.json +4 -4
- package/dist/lib/schemas-data/3.0/core/reference-asset.json +1 -1
- package/dist/lib/schemas-data/3.0/core/reporting-capabilities.json +5 -5
- package/dist/lib/schemas-data/3.0/core/reporting-webhook.json +3 -3
- package/dist/lib/schemas-data/3.0/core/requirements/asset-requirements.json +13 -13
- package/dist/lib/schemas-data/3.0/core/requirements/audio-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/requirements/catalog-field-binding.json +4 -4
- package/dist/lib/schemas-data/3.0/core/requirements/catalog-requirements.json +5 -5
- package/dist/lib/schemas-data/3.0/core/requirements/css-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/requirements/daast-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/requirements/html-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/requirements/image-asset-requirements.json +2 -2
- package/dist/lib/schemas-data/3.0/core/requirements/javascript-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/requirements/markdown-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/requirements/offering-asset-constraint.json +4 -4
- package/dist/lib/schemas-data/3.0/core/requirements/text-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/requirements/url-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/requirements/vast-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/requirements/video-asset-requirements.json +6 -6
- package/dist/lib/schemas-data/3.0/core/requirements/webhook-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/response.json +1 -1
- package/dist/lib/schemas-data/3.0/core/rights-constraint.json +4 -4
- package/dist/lib/schemas-data/3.0/core/seller-agent-ref.json +1 -1
- package/dist/lib/schemas-data/3.0/core/signal-definition.json +3 -3
- package/dist/lib/schemas-data/3.0/core/signal-filters.json +2 -2
- package/dist/lib/schemas-data/3.0/core/signal-id.json +1 -1
- package/dist/lib/schemas-data/3.0/core/signal-pricing-option.json +2 -2
- package/dist/lib/schemas-data/3.0/core/signal-pricing.json +6 -6
- package/dist/lib/schemas-data/3.0/core/signal-targeting.json +4 -4
- package/dist/lib/schemas-data/3.0/core/special.json +2 -2
- package/dist/lib/schemas-data/3.0/core/start-timing.json +1 -1
- package/dist/lib/schemas-data/3.0/core/store-item.json +3 -3
- package/dist/lib/schemas-data/3.0/core/talent.json +2 -2
- package/dist/lib/schemas-data/3.0/core/targeting.json +20 -20
- package/dist/lib/schemas-data/3.0/core/tasks-get-request.json +3 -3
- package/dist/lib/schemas-data/3.0/core/tasks-get-response.json +7 -7
- package/dist/lib/schemas-data/3.0/core/tasks-list-request.json +11 -11
- package/dist/lib/schemas-data/3.0/core/tasks-list-response.json +6 -6
- package/dist/lib/schemas-data/3.0/core/user-match.json +3 -3
- package/dist/lib/schemas-data/3.0/core/vehicle-item.json +4 -4
- package/dist/lib/schemas-data/3.0/core/vendor-pricing-option.json +2 -2
- package/dist/lib/schemas-data/3.0/core/x-entity-types.json +1 -1
- package/dist/lib/schemas-data/3.0/creative/asset-types/index.json +5 -5
- package/dist/lib/schemas-data/3.0/creative/creative-feature-result.json +2 -2
- package/dist/lib/schemas-data/3.0/creative/get-creative-delivery-request.json +5 -5
- package/dist/lib/schemas-data/3.0/creative/get-creative-delivery-response.json +7 -7
- package/dist/lib/schemas-data/3.0/creative/get-creative-features-request.json +5 -5
- package/dist/lib/schemas-data/3.0/creative/get-creative-features-response.json +8 -8
- package/dist/lib/schemas-data/3.0/creative/list-creative-formats-request.json +11 -11
- package/dist/lib/schemas-data/3.0/creative/list-creative-formats-response.json +7 -7
- package/dist/lib/schemas-data/3.0/creative/list-creatives-request.json +8 -8
- package/dist/lib/schemas-data/3.0/creative/list-creatives-response.json +14 -14
- package/dist/lib/schemas-data/3.0/creative/preview-creative-request.json +11 -11
- package/dist/lib/schemas-data/3.0/creative/preview-creative-response.json +12 -12
- package/dist/lib/schemas-data/3.0/creative/preview-render.json +1 -1
- package/dist/lib/schemas-data/3.0/creative/sync-creatives-async-response-input-required.json +3 -3
- package/dist/lib/schemas-data/3.0/creative/sync-creatives-async-response-submitted.json +3 -3
- package/dist/lib/schemas-data/3.0/creative/sync-creatives-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.0/creative/sync-creatives-request.json +7 -7
- package/dist/lib/schemas-data/3.0/creative/sync-creatives-response.json +13 -13
- package/dist/lib/schemas-data/3.0/enums/account-scope.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/account-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/action-source.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/adcp-protocol.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/adjustment-kind.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/advertiser-industry.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/age-verification-method.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/assessment-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/asset-content-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/attribution-model.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/audience-source.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/audience-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/audio-channel-layout.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/auth-scheme.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/available-metric.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/billing-party.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/binary-verdict.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/brand-agent-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/canceled-by.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/catalog-action.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/catalog-item-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/catalog-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/channels.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/cloud-storage-protocol.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/co-branding-requirement.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/collection-cadence.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/collection-kind.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/collection-relationship.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/collection-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/consent-basis.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/content-id-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/content-rating-system.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/creative-action.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/creative-agent-capability.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/creative-approval-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/creative-identifier-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/creative-quality.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/creative-sort-field.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/creative-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/daast-tracking-event.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/daast-version.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/day-of-week.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/delegation-authority.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/delivery-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/demographic-system.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/derivative-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/device-platform.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/device-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/digital-source-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/dimension-unit.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/disclosure-persistence.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/disclosure-position.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/distance-unit.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/distribution-identifier-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/error-code.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/escalation-severity.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/event-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/exclusivity.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/feature-check-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/feed-format.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/feedback-source.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/forecast-method.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/forecast-range-unit.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/forecastable-metric.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/format-id-parameter.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/frame-rate-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/frequency-cap-scope.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/genre-taxonomy.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/geo-level.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/gop-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/governance-decision.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/governance-domain.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/governance-mode.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/governance-phase.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/history-entry-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/http-method.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/identifier-types.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/installment-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/javascript-module-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/landing-page-requirement.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/makegood-remedy.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/markdown-flavor.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/match-id-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/match-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/media-buy-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/media-buy-valid-action.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/metric-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/metro-system.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/moov-atom-position.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/notification-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/outcome-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/pacing.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/payment-terms.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/performance-standard-metric.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/policy-category.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/policy-enforcement.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/postal-system.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/preview-output-format.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/pricing-model.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/production-quality.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/property-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/proposal-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/publisher-identifier-types.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/purchase-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/reach-unit.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/reporting-frequency.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/response-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/restricted-attribute.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/right-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/right-use.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/rights-billing-period.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/scan-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/si-session-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/signal-catalog-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/signal-source.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/signal-value-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/snapshot-unavailable-reason.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/sort-direction.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/sort-metric.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/special-category.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/specialism.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/talent-role.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/task-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/task-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/transport-mode.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/travel-time-unit.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/uid-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/universal-macro.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/update-frequency.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/url-asset-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/validation-mode.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/vast-tracking-event.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/vast-version.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/viewability-standard.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/wcag-level.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/webhook-response-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/webhook-security-method.json +1 -1
- package/dist/lib/schemas-data/3.0/error-details/account-setup-required.json +1 -1
- package/dist/lib/schemas-data/3.0/error-details/audience-too-small.json +1 -1
- package/dist/lib/schemas-data/3.0/error-details/budget-too-low.json +1 -1
- package/dist/lib/schemas-data/3.0/error-details/conflict.json +1 -1
- package/dist/lib/schemas-data/3.0/error-details/creative-rejected.json +1 -1
- package/dist/lib/schemas-data/3.0/error-details/policy-violation.json +1 -1
- package/dist/lib/schemas-data/3.0/error-details/rate-limited.json +1 -1
- package/dist/lib/schemas-data/3.0/error-details/vendor-error-codes.json +1 -1
- package/dist/lib/schemas-data/3.0/extensions/extension-meta.json +1 -1
- package/dist/lib/schemas-data/3.0/extensions/index.json +2 -2
- package/dist/lib/schemas-data/3.0/governance/attribute-definition.json +1 -1
- package/dist/lib/schemas-data/3.0/governance/audience-constraints.json +3 -3
- package/dist/lib/schemas-data/3.0/governance/check-governance-request.json +7 -7
- package/dist/lib/schemas-data/3.0/governance/check-governance-response.json +6 -6
- package/dist/lib/schemas-data/3.0/governance/get-plan-audit-logs-request.json +4 -4
- package/dist/lib/schemas-data/3.0/governance/get-plan-audit-logs-response.json +9 -9
- package/dist/lib/schemas-data/3.0/governance/policy-category-definition.json +2 -2
- package/dist/lib/schemas-data/3.0/governance/policy-entry.json +6 -6
- package/dist/lib/schemas-data/3.0/governance/policy-ref.json +1 -1
- package/dist/lib/schemas-data/3.0/governance/report-plan-outcome-request.json +6 -6
- package/dist/lib/schemas-data/3.0/governance/report-plan-outcome-response.json +4 -4
- package/dist/lib/schemas-data/3.0/governance/sync-plans-request.json +13 -13
- package/dist/lib/schemas-data/3.0/governance/sync-plans-response.json +4 -4
- package/dist/lib/schemas-data/3.0/index.json +366 -365
- package/dist/lib/schemas-data/3.0/manifest.json +5 -9
- package/dist/lib/schemas-data/3.0/manifest.schema.json +1 -1
- package/dist/lib/schemas-data/3.0/media-buy/build-creative-async-response-input-required.json +4 -4
- package/dist/lib/schemas-data/3.0/media-buy/build-creative-async-response-submitted.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/build-creative-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/build-creative-request.json +11 -11
- package/dist/lib/schemas-data/3.0/media-buy/build-creative-response.json +17 -17
- package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-async-response-input-required.json +4 -4
- package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-async-response-submitted.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-request.json +12 -12
- package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-response.json +15 -15
- package/dist/lib/schemas-data/3.0/media-buy/get-media-buy-delivery-request.json +17 -17
- package/dist/lib/schemas-data/3.0/media-buy/get-media-buy-delivery-response.json +24 -24
- package/dist/lib/schemas-data/3.0/media-buy/get-media-buys-request.json +7 -7
- package/dist/lib/schemas-data/3.0/media-buy/get-media-buys-response.json +19 -19
- package/dist/lib/schemas-data/3.0/media-buy/get-products-async-response-input-required.json +4 -4
- package/dist/lib/schemas-data/3.0/media-buy/get-products-async-response-submitted.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/get-products-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/get-products-request.json +11 -11
- package/dist/lib/schemas-data/3.0/media-buy/get-products-response.json +8 -8
- package/dist/lib/schemas-data/3.0/media-buy/list-creative-formats-request.json +11 -11
- package/dist/lib/schemas-data/3.0/media-buy/list-creative-formats-response.json +7 -7
- package/dist/lib/schemas-data/3.0/media-buy/log-event-request.json +4 -4
- package/dist/lib/schemas-data/3.0/media-buy/log-event-response.json +6 -6
- package/dist/lib/schemas-data/3.0/media-buy/package-request.json +12 -12
- package/dist/lib/schemas-data/3.0/media-buy/package-update.json +13 -13
- package/dist/lib/schemas-data/3.0/media-buy/provide-performance-feedback-request.json +6 -6
- package/dist/lib/schemas-data/3.0/media-buy/provide-performance-feedback-response.json +6 -6
- package/dist/lib/schemas-data/3.0/media-buy/sync-audiences-request.json +7 -7
- package/dist/lib/schemas-data/3.0/media-buy/sync-audiences-response.json +9 -9
- package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-async-response-input-required.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-async-response-submitted.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-request.json +7 -7
- package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-response.json +9 -9
- package/dist/lib/schemas-data/3.0/media-buy/sync-event-sources-request.json +5 -5
- package/dist/lib/schemas-data/3.0/media-buy/sync-event-sources-response.json +10 -10
- package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-async-response-input-required.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-async-response-submitted.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-request.json +10 -10
- package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-response.json +10 -10
- package/dist/lib/schemas-data/3.0/pricing-options/cpa-option.json +4 -4
- package/dist/lib/schemas-data/3.0/pricing-options/cpc-option.json +4 -4
- package/dist/lib/schemas-data/3.0/pricing-options/cpcv-option.json +4 -4
- package/dist/lib/schemas-data/3.0/pricing-options/cpm-option.json +4 -4
- package/dist/lib/schemas-data/3.0/pricing-options/cpp-option.json +5 -5
- package/dist/lib/schemas-data/3.0/pricing-options/cpv-option.json +4 -4
- package/dist/lib/schemas-data/3.0/pricing-options/flat-rate-option.json +4 -4
- package/dist/lib/schemas-data/3.0/pricing-options/price-breakdown.json +2 -2
- package/dist/lib/schemas-data/3.0/pricing-options/price-guidance.json +1 -1
- package/dist/lib/schemas-data/3.0/pricing-options/time-option.json +4 -4
- package/dist/lib/schemas-data/3.0/pricing-options/vcpm-option.json +4 -4
- package/dist/lib/schemas-data/3.0/property/authorization-result.json +1 -1
- package/dist/lib/schemas-data/3.0/property/base-property-source.json +4 -4
- package/dist/lib/schemas-data/3.0/property/create-property-list-request.json +7 -7
- package/dist/lib/schemas-data/3.0/property/create-property-list-response.json +4 -4
- package/dist/lib/schemas-data/3.0/property/delete-property-list-request.json +4 -4
- package/dist/lib/schemas-data/3.0/property/delete-property-list-response.json +3 -3
- package/dist/lib/schemas-data/3.0/property/delivery-record.json +3 -3
- package/dist/lib/schemas-data/3.0/property/get-property-list-request.json +4 -4
- package/dist/lib/schemas-data/3.0/property/get-property-list-response.json +7 -7
- package/dist/lib/schemas-data/3.0/property/list-property-lists-request.json +5 -5
- package/dist/lib/schemas-data/3.0/property/list-property-lists-response.json +5 -5
- package/dist/lib/schemas-data/3.0/property/property-error.json +2 -2
- package/dist/lib/schemas-data/3.0/property/property-feature-definition.json +2 -2
- package/dist/lib/schemas-data/3.0/property/property-feature-result.json +4 -4
- package/dist/lib/schemas-data/3.0/property/property-feature-value.json +2 -2
- package/dist/lib/schemas-data/3.0/property/property-feature.json +1 -1
- package/dist/lib/schemas-data/3.0/property/property-list-changed-webhook.json +2 -2
- package/dist/lib/schemas-data/3.0/property/property-list-filters.json +5 -5
- package/dist/lib/schemas-data/3.0/property/property-list.json +6 -6
- package/dist/lib/schemas-data/3.0/property/update-property-list-request.json +7 -7
- package/dist/lib/schemas-data/3.0/property/update-property-list-response.json +4 -4
- package/dist/lib/schemas-data/3.0/property/validate-property-delivery-request.json +5 -5
- package/dist/lib/schemas-data/3.0/property/validate-property-delivery-response.json +4 -4
- package/dist/lib/schemas-data/3.0/property/validation-result.json +5 -5
- package/dist/lib/schemas-data/3.0/protocol/get-adcp-capabilities-request.json +3 -3
- package/dist/lib/schemas-data/3.0/protocol/get-adcp-capabilities-response.json +25 -25
- package/dist/lib/schemas-data/3.0/signals/activate-signal-request.json +5 -5
- package/dist/lib/schemas-data/3.0/signals/activate-signal-response.json +7 -7
- package/dist/lib/schemas-data/3.0/signals/get-signals-request.json +8 -8
- package/dist/lib/schemas-data/3.0/signals/get-signals-response.json +10 -10
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-capabilities.json +1 -1
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-get-offering-request.json +3 -3
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-get-offering-response.json +4 -4
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-identity.json +1 -1
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-initiate-session-request.json +5 -5
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-initiate-session-response.json +7 -7
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-send-message-request.json +3 -3
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-send-message-response.json +7 -7
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-terminate-session-request.json +3 -3
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-terminate-session-response.json +5 -5
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-ui-element.json +1 -1
- package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/server/decisioning/runtime/entity-hydration.generated.js +1 -1
- package/dist/lib/server/wire-spec-fields.generated.d.ts +29 -29
- package/dist/lib/server/wire-spec-fields.generated.js +31 -31
- package/dist/lib/testing/client.d.ts +1 -1
- package/dist/lib/testing/client.d.ts.map +1 -1
- package/dist/lib/testing/client.js +9 -2
- package/dist/lib/testing/client.js.map +1 -1
- package/dist/lib/testing/compliance/comply.d.ts +6 -0
- package/dist/lib/testing/compliance/comply.d.ts.map +1 -1
- package/dist/lib/testing/compliance/comply.js +110 -4
- package/dist/lib/testing/compliance/comply.js.map +1 -1
- package/dist/lib/testing/storyboard/default-invariants.js +23 -0
- package/dist/lib/testing/storyboard/default-invariants.js.map +1 -1
- package/dist/lib/testing/storyboard/runner.d.ts +2 -0
- package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/runner.js +112 -21
- package/dist/lib/testing/storyboard/runner.js.map +1 -1
- package/dist/lib/testing/storyboard/types.d.ts +23 -0
- package/dist/lib/testing/storyboard/types.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/types.js.map +1 -1
- package/dist/lib/testing/storyboard/validations.d.ts +4 -0
- package/dist/lib/testing/storyboard/validations.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/validations.js +13 -4
- package/dist/lib/testing/storyboard/validations.js.map +1 -1
- package/dist/lib/testing/types.d.ts +32 -0
- package/dist/lib/testing/types.d.ts.map +1 -1
- package/dist/lib/types/core.generated.js +2 -2
- package/dist/lib/types/manifest.generated.d.ts +3 -3
- package/dist/lib/types/manifest.generated.js +1 -1
- package/dist/lib/utils/adcp-version-config.d.ts +1 -0
- package/dist/lib/utils/adcp-version-config.d.ts.map +1 -1
- package/dist/lib/utils/adcp-version-config.js +21 -0
- package/dist/lib/utils/adcp-version-config.js.map +1 -1
- package/dist/lib/utils/response-schemas.d.ts +1 -0
- package/dist/lib/utils/response-schemas.d.ts.map +1 -1
- package/dist/lib/utils/response-schemas.js +14 -0
- package/dist/lib/utils/response-schemas.js.map +1 -1
- package/dist/lib/utils/response-unwrapper.d.ts +2 -1
- package/dist/lib/utils/response-unwrapper.d.ts.map +1 -1
- package/dist/lib/utils/response-unwrapper.js +15 -5
- package/dist/lib/utils/response-unwrapper.js.map +1 -1
- package/dist/lib/version.d.ts +7 -7
- package/dist/lib/version.d.ts.map +1 -1
- package/dist/lib/version.js +11 -5
- package/dist/lib/version.js.map +1 -1
- package/package.json +2 -2
- package/compliance/cache/3.0.12/universal/webhook-emission.yaml +0 -337
- package/compliance/cache/3.0.12.previous/universal/webhook-emission.yaml +0 -337
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/brand/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/governance/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/media-buy/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/media-buy/scenarios/create_media_buy_async.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/media-buy/scenarios/delivery_reporting.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/media-buy/scenarios/governance_approved.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/media-buy/scenarios/governance_conditions.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/media-buy/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/media-buy/scenarios/invalid_transitions.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/media-buy/scenarios/inventory_list_targeting.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/media-buy/scenarios/refine_products.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/signals/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/sponsored-intelligence/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/brand/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/governance/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/scenarios/create_media_buy_async.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/scenarios/delivery_reporting.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/scenarios/governance_approved.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/scenarios/governance_conditions.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/scenarios/invalid_transitions.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/scenarios/inventory_list_targeting.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/scenarios/refine_products.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/signals/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/sponsored-intelligence/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/audience-sync/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/brand-rights/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/brand-rights/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/collection-lists/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/content-standards/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/creative-ad-server/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/creative-generative/generative-seller.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/creative-generative/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/governance-aware-seller/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/governance-delivery-monitor/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/governance-spend-authority/denied.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/governance-spend-authority/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/property-lists/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/sales-broadcast-tv/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/sales-catalog-driven/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/sales-guaranteed/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/sales-non-guaranteed/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/sales-proposal-mode/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/sales-social/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/signal-marketplace/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/signal-marketplace/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/signal-owned/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-kits/acme-outdoor-live.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-kits/acme-outdoor.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-kits/bistro-oranje.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-kits/nova-motors.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-kits/osei-natural.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-kits/signed-requests-runner.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-kits/substitution-observer-runner.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-kits/summit-foods.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/plan-hash/001-minimal-plan.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/plan-hash/002-full-plan.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/plan-hash/003-bookkeeping-stripped.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/plan-hash/004a-human-review-omitted.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/plan-hash/004b-human-review-explicit-null.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/plan-hash/005a-policy-categories-order-1.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/plan-hash/005b-policy-categories-order-2.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/plan-hash/006a-ext-trace-v1.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/plan-hash/006b-ext-trace-v2.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/plan-hash/007-unicode-objectives.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/plan-hash/008-numeric-canonicalization.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/README.md +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/canonicalization.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/keys.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/001-no-signature-header.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/002-wrong-tag.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/003-expired-signature.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/004-window-too-long.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/005-alg-not-allowed.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/006-missing-covered-component.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/007-missing-content-digest.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/008-unknown-keyid.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/010-content-digest-mismatch.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/011-malformed-header.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/012-missing-expires-param.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/013-expires-le-created.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/014-missing-nonce-param.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/015-signature-invalid.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/016-replayed-nonce.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/017-key-revoked.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/019-signature-without-signature-input.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/020-rate-abuse.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/022-multi-valued-content-type.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/024-unquoted-string-param.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/026-non-ascii-host.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/positive/001-basic-post.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/positive/002-post-with-content-digest.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/positive/003-es256-post.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/positive/004-multiple-signature-labels.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/positive/005-default-port-stripped.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/positive/006-dot-segment-path.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/positive/007-query-byte-preserved.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/positive/008-percent-encoded-path.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/positive/011-ipv6-authority.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/README.md +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/keys.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/001-wrong-tag.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/002-expired-signature.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/003-window-too-long.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/005-missing-authority-component.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/006-missing-content-digest.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/007-unknown-keyid.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/011-signature-without-input.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/012-missing-expires-param.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/013-expires-le-created.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/015-signature-invalid.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/016-replayed-nonce.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/017-key-revoked.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/018-rate-abuse.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/019-revocation-stale.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/positive/001-basic-post.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/positive/002-es256-post.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/positive/004-default-port-stripped.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/capability-discovery.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/collection-lists-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/comply-controller-mode-gate.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/content-standards-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/deterministic-testing.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/error-compliance.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/fictional-entities.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/get-media-buys-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/get-signals-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/pagination-integrity-creative-formats.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/pagination-integrity-list-accounts.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/property-lists-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/runner-output-contract.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/signed-requests.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/brand/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/governance/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/scenarios/create_media_buy_async.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/scenarios/delivery_reporting.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/scenarios/governance_approved.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/scenarios/governance_conditions.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/scenarios/invalid_transitions.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/scenarios/inventory_list_targeting.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/scenarios/refine_products.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/signals/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/sponsored-intelligence/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/brand/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/governance/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/media-buy/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/media-buy/scenarios/create_media_buy_async.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/media-buy/scenarios/delivery_reporting.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/media-buy/scenarios/governance_approved.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/media-buy/scenarios/governance_conditions.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/media-buy/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/media-buy/scenarios/invalid_transitions.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/media-buy/scenarios/inventory_list_targeting.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/media-buy/scenarios/refine_products.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/signals/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/sponsored-intelligence/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/audience-sync/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/brand-rights/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/brand-rights/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/collection-lists/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/content-standards/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/creative-ad-server/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/creative-generative/generative-seller.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/creative-generative/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/governance-aware-seller/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/governance-delivery-monitor/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/governance-spend-authority/denied.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/governance-spend-authority/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/property-lists/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/sales-broadcast-tv/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/sales-catalog-driven/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/sales-guaranteed/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/sales-non-guaranteed/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/sales-proposal-mode/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/sales-social/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/signal-marketplace/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/signal-marketplace/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/signal-owned/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-kits/acme-outdoor-live.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-kits/acme-outdoor.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-kits/bistro-oranje.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-kits/nova-motors.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-kits/osei-natural.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-kits/signed-requests-runner.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-kits/substitution-observer-runner.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-kits/summit-foods.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/plan-hash/001-minimal-plan.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/plan-hash/002-full-plan.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/plan-hash/003-bookkeeping-stripped.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/plan-hash/004a-human-review-omitted.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/plan-hash/004b-human-review-explicit-null.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/plan-hash/005a-policy-categories-order-1.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/plan-hash/005b-policy-categories-order-2.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/plan-hash/006a-ext-trace-v1.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/plan-hash/006b-ext-trace-v2.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/plan-hash/007-unicode-objectives.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/plan-hash/008-numeric-canonicalization.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/README.md +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/canonicalization.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/keys.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/001-no-signature-header.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/002-wrong-tag.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/003-expired-signature.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/004-window-too-long.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/005-alg-not-allowed.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/006-missing-covered-component.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/007-missing-content-digest.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/008-unknown-keyid.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/010-content-digest-mismatch.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/011-malformed-header.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/012-missing-expires-param.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/013-expires-le-created.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/014-missing-nonce-param.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/015-signature-invalid.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/016-replayed-nonce.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/017-key-revoked.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/019-signature-without-signature-input.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/020-rate-abuse.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/022-multi-valued-content-type.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/024-unquoted-string-param.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/026-non-ascii-host.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/positive/001-basic-post.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/positive/002-post-with-content-digest.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/positive/003-es256-post.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/positive/004-multiple-signature-labels.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/positive/005-default-port-stripped.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/positive/006-dot-segment-path.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/positive/007-query-byte-preserved.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/positive/008-percent-encoded-path.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/positive/011-ipv6-authority.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/README.md +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/keys.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/001-wrong-tag.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/002-expired-signature.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/003-window-too-long.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/005-missing-authority-component.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/006-missing-content-digest.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/007-unknown-keyid.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/011-signature-without-input.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/012-missing-expires-param.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/013-expires-le-created.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/015-signature-invalid.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/016-replayed-nonce.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/017-key-revoked.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/018-rate-abuse.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/019-revocation-stale.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/positive/001-basic-post.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/positive/002-es256-post.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/positive/004-default-port-stripped.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/capability-discovery.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/collection-lists-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/comply-controller-mode-gate.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/content-standards-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/deterministic-testing.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/error-compliance.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/fictional-entities.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/get-media-buys-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/get-signals-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/pagination-integrity-creative-formats.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/pagination-integrity-list-accounts.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/property-lists-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/runner-output-contract.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/signed-requests.yaml +0 -0
|
@@ -2,7 +2,7 @@ id: idempotency
|
|
|
2
2
|
version: "1.0.0"
|
|
3
3
|
title: "Idempotency enforcement"
|
|
4
4
|
category: core
|
|
5
|
-
summary: "Validates that mutating requests enforce idempotency_key — replays return cached responses, key reuse with a different payload returns IDEMPOTENCY_CONFLICT,
|
|
5
|
+
summary: "Validates that mutating requests enforce idempotency_key — replays return cached responses, key reuse with a different payload returns IDEMPOTENCY_CONFLICT, fresh keys create new resources, and concurrent retries with the same key produce exactly one resource (first-insert-wins under rule 9)."
|
|
6
6
|
track: core
|
|
7
7
|
|
|
8
8
|
# Cross-step assertions (adcontextprotocol/adcp#2639). These convert two
|
|
@@ -33,12 +33,12 @@ invariants:
|
|
|
33
33
|
|
|
34
34
|
narrative: |
|
|
35
35
|
Every mutating request in AdCP carries an idempotency_key so buyers can safely retry
|
|
36
|
-
after network errors without double-booking. This storyboard walks through the
|
|
36
|
+
after network errors without double-booking. This storyboard walks through the
|
|
37
37
|
observable behaviors a seller MUST implement:
|
|
38
38
|
|
|
39
39
|
1. First call with a fresh key is processed normally and returns the canonical response.
|
|
40
40
|
2. Replay with the same key and an equivalent payload returns the cached response
|
|
41
|
-
without re-executing
|
|
41
|
+
without re-executing resource mutations (same media_buy_id).
|
|
42
42
|
3. Replay with the same key but a materially different payload is rejected with
|
|
43
43
|
IDEMPOTENCY_CONFLICT. The buyer has clearly reused a key by mistake.
|
|
44
44
|
4. A request with a different key is treated as a new request, even if the payload
|
|
@@ -55,6 +55,12 @@ narrative: |
|
|
|
55
55
|
key_reuse_conflict. An end-to-end phase that drives a deterministic terminal
|
|
56
56
|
error and replays the key is deferred pending a generic force-error controller
|
|
57
57
|
verb (see adcontextprotocol/adcp#2760).
|
|
58
|
+
6. Concurrent retries with the same key produce exactly one resource. The seller
|
|
59
|
+
MAY wait-and-replay or return IDEMPOTENCY_IN_FLIGHT — both are conformant under
|
|
60
|
+
security.mdx#idempotency rule 9 (first-insert-wins) as long as the resolved
|
|
61
|
+
response set converges on a single media_buy_id. Graded via the
|
|
62
|
+
parallel_dispatch_runner contract; runners without parallel-dispatch skip
|
|
63
|
+
this phase with a stable not_applicable marker.
|
|
58
64
|
|
|
59
65
|
Missing idempotency_key on any mutating request MUST be rejected with INVALID_REQUEST.
|
|
60
66
|
Sellers MUST declare adcp.idempotency on get_adcp_capabilities — either
|
|
@@ -63,16 +69,28 @@ narrative: |
|
|
|
63
69
|
validates the supported: true behavior; sellers declaring supported: false
|
|
64
70
|
MUST skip this storyboard (they have no replay window to test).
|
|
65
71
|
|
|
66
|
-
**Cache-growth defense (
|
|
72
|
+
**Cache-growth defense (partial runtime grading).** Per
|
|
67
73
|
security.mdx bullet 8 on the idempotency section, sellers MUST apply per-agent
|
|
68
74
|
rate limits on idempotency-cache inserts and MUST return RATE_LIMITED when the
|
|
69
75
|
per-agent insert rate exceeds the configured ceiling. The recommended
|
|
70
76
|
first-deployment ceiling is 60 inserts/sec sustained per agent (3,600/min)
|
|
71
77
|
with burst allowance to 300/sec over rolling 10-second windows. This storyboard
|
|
72
|
-
does
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
78
|
+
does NOT attest the threshold itself — burst-volume measurement is
|
|
79
|
+
structurally non-deterministic in CI (runner CPU, network jitter, agent
|
|
80
|
+
cold-start) and better evaluated via operator-side load testing. What it
|
|
81
|
+
DOES attest, via the `rate_limit_replay_invariant` phase below, is the
|
|
82
|
+
invariant that matters most for client safety: a `RATE_LIMITED` response on
|
|
83
|
+
insert MUST NOT be cached as the canonical idempotency replay for that
|
|
84
|
+
key. Otherwise a client retrying past `retry_after` receives the cached
|
|
85
|
+
rate-limit error forever, defeating the point of `retry_after`. The
|
|
86
|
+
threshold (60/300 req/sec) remains seller self-attestation pending
|
|
87
|
+
operator-side tooling.
|
|
88
|
+
|
|
89
|
+
**Webhook side effects are graded separately.** A replay MUST NOT duplicate
|
|
90
|
+
outbound webhook fires, but observing that side effect requires a runner-hosted
|
|
91
|
+
webhook receiver. The webhook-specific replay assertion lives in
|
|
92
|
+
universal/webhook-emission.yaml so this core idempotency storyboard remains
|
|
93
|
+
runnable by agents and runners that do not host receiver URLs.
|
|
76
94
|
|
|
77
95
|
agent:
|
|
78
96
|
interaction_model: media_buy_seller
|
|
@@ -87,10 +105,26 @@ caller:
|
|
|
87
105
|
|
|
88
106
|
prerequisites:
|
|
89
107
|
description: |
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
108
|
+
The runner seeds the product and pricing option referenced by the
|
|
109
|
+
create_media_buy payloads below. The storyboard uses create_media_buy as the
|
|
110
|
+
canonical mutating request. Sellers that do not support create_media_buy SHOULD
|
|
111
|
+
still pass idempotency compliance on whichever mutating task they do implement.
|
|
93
112
|
test_kit: "test-kits/acme-outdoor.yaml"
|
|
113
|
+
controller_seeding: true
|
|
114
|
+
|
|
115
|
+
fixtures:
|
|
116
|
+
products:
|
|
117
|
+
- product_id: "test-product"
|
|
118
|
+
delivery_type: "non_guaranteed"
|
|
119
|
+
channels: ["display"]
|
|
120
|
+
format_ids:
|
|
121
|
+
- id: "display_300x250"
|
|
122
|
+
pricing_options:
|
|
123
|
+
- product_id: "test-product"
|
|
124
|
+
pricing_option_id: "test-pricing"
|
|
125
|
+
pricing_model: "cpm"
|
|
126
|
+
currency: "USD"
|
|
127
|
+
floor_price: 1.0
|
|
94
128
|
|
|
95
129
|
phases:
|
|
96
130
|
- id: capability_discovery
|
|
@@ -106,8 +140,11 @@ phases:
|
|
|
106
140
|
Call get_adcp_capabilities and verify adcp.idempotency is declared with
|
|
107
141
|
supported: true and a replay_ttl_seconds value. The block is REQUIRED —
|
|
108
142
|
clients MUST NOT fall back to an assumed default, and a seller that omits
|
|
109
|
-
it is non-compliant. Sellers running this storyboard
|
|
110
|
-
supported: true; supported: false
|
|
143
|
+
it is non-compliant. Sellers running this storyboard should declare
|
|
144
|
+
supported: true; sellers declaring supported: false pass this step with
|
|
145
|
+
advisory findings and cascade-skip the remaining idempotency phases (they
|
|
146
|
+
have no replay window to test). The full storyboard-level skip gate is
|
|
147
|
+
pending runner support for a precondition mechanism (adcontextprotocol/adcp#3919).
|
|
111
148
|
task: get_adcp_capabilities
|
|
112
149
|
schema_ref: "protocol/get-adcp-capabilities-request.json"
|
|
113
150
|
response_schema_ref: "protocol/get-adcp-capabilities-response.json"
|
|
@@ -130,9 +167,15 @@ phases:
|
|
|
130
167
|
- check: field_value
|
|
131
168
|
path: "adcp.idempotency.supported"
|
|
132
169
|
value: true
|
|
170
|
+
severity: advisory
|
|
171
|
+
permanent_advisory:
|
|
172
|
+
reason: "supported: false is a valid declaration meaning the agent does not deduplicate retries; these agents are not applicable for this storyboard and must not be failed. The check is advisory so capability_discovery passes cleanly for supported: false agents and downstream phases cascade-skip via missing_tool (not_applicable) rather than prerequisite_failed. Full storyboard-level skip (for agents that implement create_media_buy but declare supported: false) requires runner support for a precondition gate (see adcontextprotocol/adcp#3919)."
|
|
133
173
|
description: "Agent declares supported: true for this storyboard (supported: false sellers skip)"
|
|
134
174
|
- check: field_present
|
|
135
175
|
path: "adcp.idempotency.replay_ttl_seconds"
|
|
176
|
+
severity: advisory
|
|
177
|
+
permanent_advisory:
|
|
178
|
+
reason: "replay_ttl_seconds is only required when adcp.idempotency.supported: true; supported: false agents correctly omit this field and must not be penalised for its absence."
|
|
136
179
|
description: "Agent declares replay window TTL (required when supported: true)"
|
|
137
180
|
|
|
138
181
|
- check: field_present
|
|
@@ -142,6 +185,13 @@ phases:
|
|
|
142
185
|
path: "context.correlation_id"
|
|
143
186
|
value: "idempotency--get_capabilities"
|
|
144
187
|
description: "Context correlation_id returned unchanged"
|
|
188
|
+
context_outputs:
|
|
189
|
+
- name: idempotency_supported
|
|
190
|
+
path: "adcp.idempotency.supported"
|
|
191
|
+
- name: replay_key
|
|
192
|
+
generate: uuid_v4
|
|
193
|
+
- name: fresh_key
|
|
194
|
+
generate: uuid_v4
|
|
145
195
|
|
|
146
196
|
- id: missing_key
|
|
147
197
|
title: "Reject requests without idempotency_key"
|
|
@@ -188,8 +238,8 @@ phases:
|
|
|
188
238
|
operator: "pinnacle-agency.example"
|
|
189
239
|
brand:
|
|
190
240
|
domain: "acmeoutdoor.example"
|
|
191
|
-
start_time: "
|
|
192
|
-
end_time: "
|
|
241
|
+
start_time: "asap"
|
|
242
|
+
end_time: "2099-09-30T23:59:59Z"
|
|
193
243
|
packages:
|
|
194
244
|
- product_id: "test-product"
|
|
195
245
|
budget: 5000
|
|
@@ -227,12 +277,9 @@ phases:
|
|
|
227
277
|
payload would break the at-most-once guarantee; silently returning the old
|
|
228
278
|
response would hide a real bug in the buyer's retry logic.
|
|
229
279
|
|
|
230
|
-
Both branches share
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
with a different body. Splitting these into separate phases would reset the
|
|
234
|
-
alias cache at the phase boundary (adcp-client#1657) and mint a fresh UUID for
|
|
235
|
-
the conflict step, defeating the test.
|
|
280
|
+
Both branches share the generated `$context.replay_key` value captured
|
|
281
|
+
during capability discovery. The seller sees one cached idempotency entry
|
|
282
|
+
that the conflict step probes with a different body.
|
|
236
283
|
|
|
237
284
|
steps:
|
|
238
285
|
- id: create_media_buy_initial
|
|
@@ -249,36 +296,24 @@ phases:
|
|
|
249
296
|
context_outputs:
|
|
250
297
|
- name: initial_media_buy_id
|
|
251
298
|
path: "media_buy_id"
|
|
252
|
-
- name: idempotency_key_a
|
|
253
|
-
path: "idempotency_key"
|
|
254
299
|
expected: |
|
|
255
300
|
Create a new media buy and return a media_buy_id. This establishes the
|
|
256
301
|
canonical response that subsequent replays must match.
|
|
257
302
|
|
|
258
303
|
sample_request:
|
|
259
|
-
idempotency_key: "$
|
|
304
|
+
idempotency_key: "$context.replay_key"
|
|
260
305
|
account:
|
|
261
306
|
brand:
|
|
262
307
|
domain: "acmeoutdoor.example"
|
|
263
308
|
operator: "pinnacle-agency.example"
|
|
264
309
|
brand:
|
|
265
310
|
domain: "acmeoutdoor.example"
|
|
266
|
-
start_time: "
|
|
267
|
-
end_time: "
|
|
311
|
+
start_time: "asap"
|
|
312
|
+
end_time: "2099-07-31T23:59:59Z"
|
|
268
313
|
packages:
|
|
269
314
|
- product_id: "test-product"
|
|
270
315
|
budget: 5000
|
|
271
316
|
pricing_option_id: "test-pricing"
|
|
272
|
-
# Both the initial call and the replay below use the SAME webhook URL
|
|
273
|
-
# so the canonical payload hash matches across the two calls. A
|
|
274
|
-
# different URL between the two requests would hash differently and
|
|
275
|
-
# trip IDEMPOTENCY_CONFLICT instead of exercising replay. The URL
|
|
276
|
-
# template resolves against the runner's ephemeral webhook receiver
|
|
277
|
-
# (webhook_receiver_runner contract); runners without a receiver
|
|
278
|
-
# grade `no_duplicate_webhooks_on_replay` as not_applicable.
|
|
279
|
-
push_notification_config:
|
|
280
|
-
url: "{{runner.webhook_url:create_media_buy_initial}}"
|
|
281
|
-
|
|
282
317
|
context:
|
|
283
318
|
correlation_id: "idempotency--create_media_buy_initial"
|
|
284
319
|
validations:
|
|
@@ -312,8 +347,8 @@ phases:
|
|
|
312
347
|
narrative: |
|
|
313
348
|
Re-send the exact same create_media_buy request — same idempotency_key,
|
|
314
349
|
same payload, same everything. The seller MUST return the same media_buy_id
|
|
315
|
-
from the prior step. It MUST NOT create a second media buy
|
|
316
|
-
|
|
350
|
+
from the prior step. It MUST NOT create a second media buy. This is
|
|
351
|
+
the whole point of idempotency_key.
|
|
317
352
|
task: create_media_buy
|
|
318
353
|
schema_ref: "media-buy/create-media-buy-request.json"
|
|
319
354
|
response_schema_ref: "media-buy/create-media-buy-response.json"
|
|
@@ -323,36 +358,22 @@ phases:
|
|
|
323
358
|
expected: |
|
|
324
359
|
Return the cached response from the initial request:
|
|
325
360
|
- media_buy_id: same as $context.initial_media_buy_id
|
|
326
|
-
- No new side effects (no duplicate
|
|
327
|
-
|
|
328
|
-
Programmatic verification of "no duplicate webhooks" runs in the next step
|
|
329
|
-
(no_duplicate_webhooks_on_replay) when the storyboard is driven by a runner
|
|
330
|
-
that implements the webhook_receiver_runner contract. Runners without a
|
|
331
|
-
webhook receiver grade that step as not_applicable — agents MAY still claim
|
|
332
|
-
idempotency compliance, but the replay-side-effect invariant is only
|
|
333
|
-
programmatically graded when the webhook_callbacks specialism is also in
|
|
334
|
-
scope.
|
|
361
|
+
- No new side effects (no duplicate audit log entry or resource mutation)
|
|
335
362
|
|
|
336
363
|
sample_request:
|
|
337
|
-
idempotency_key: "$
|
|
364
|
+
idempotency_key: "$context.replay_key"
|
|
338
365
|
account:
|
|
339
366
|
brand:
|
|
340
367
|
domain: "acmeoutdoor.example"
|
|
341
368
|
operator: "pinnacle-agency.example"
|
|
342
369
|
brand:
|
|
343
370
|
domain: "acmeoutdoor.example"
|
|
344
|
-
start_time: "
|
|
345
|
-
end_time: "
|
|
371
|
+
start_time: "asap"
|
|
372
|
+
end_time: "2099-07-31T23:59:59Z"
|
|
346
373
|
packages:
|
|
347
374
|
- product_id: "test-product"
|
|
348
375
|
budget: 5000
|
|
349
376
|
pricing_option_id: "test-pricing"
|
|
350
|
-
# Byte-identical to the initial call above — same URL, same step id
|
|
351
|
-
# token — so the canonical payload hash matches and the request
|
|
352
|
-
# lands on the replay branch rather than IDEMPOTENCY_CONFLICT.
|
|
353
|
-
push_notification_config:
|
|
354
|
-
url: "{{runner.webhook_url:create_media_buy_initial}}"
|
|
355
|
-
|
|
356
377
|
context:
|
|
357
378
|
correlation_id: "idempotency--create_media_buy_replay"
|
|
358
379
|
validations:
|
|
@@ -378,53 +399,6 @@ phases:
|
|
|
378
399
|
value: "idempotency--create_media_buy_replay"
|
|
379
400
|
description: "Context correlation_id returned unchanged"
|
|
380
401
|
|
|
381
|
-
- id: no_duplicate_webhooks_on_replay
|
|
382
|
-
title: "No duplicate webhooks fired across initial + replay"
|
|
383
|
-
narrative: |
|
|
384
|
-
The central invariant of idempotency: replaying with the same key MUST
|
|
385
|
-
NOT produce duplicate side effects. Webhook emission is the observable
|
|
386
|
-
side effect most likely to leak if the seller re-executes on replay
|
|
387
|
-
instead of returning cached state.
|
|
388
|
-
|
|
389
|
-
This step requires the storyboard runner to implement the
|
|
390
|
-
`webhook_receiver_runner` contract at
|
|
391
|
-
`test-kits/webhook-receiver-runner.yaml`. Runners without a webhook
|
|
392
|
-
receiver skip this step with a stable not_applicable marker; the
|
|
393
|
-
replay-side-effect invariant then relies on the next phase's cached-
|
|
394
|
-
response assertions plus manual audit of the seller's webhook
|
|
395
|
-
delivery history.
|
|
396
|
-
|
|
397
|
-
When the receiver IS in scope, the runner counts webhooks arriving at
|
|
398
|
-
{{runner.webhook_url:create_media_buy_initial}} across the initial
|
|
399
|
-
call's window AND the replay call's window. A conformant seller emits
|
|
400
|
-
webhooks only on the first execution; a non-conformant seller that
|
|
401
|
-
re-executes on replay emits a second set, catchable only by live
|
|
402
|
-
observation.
|
|
403
|
-
task: expect_webhook
|
|
404
|
-
# `triggered_by` points at the initial call (not the replay) because the
|
|
405
|
-
# default filter resolves `step_id` + `operation_id` from `stepOperationIds`
|
|
406
|
-
# for that step — which is populated when the initial sample_request's
|
|
407
|
-
# `push_notification_config.url` expanded `{{runner.webhook_url:create_media_buy_initial}}`
|
|
408
|
-
# above. The execution-order wait still spans the replay window: this
|
|
409
|
-
# step runs after `create_media_buy_replay` in YAML order and `wait_all`
|
|
410
|
-
# drains the full `timeout_seconds` so any webhook re-fired by the
|
|
411
|
-
# replay is captured and counted against the cap below. A non-conformant
|
|
412
|
-
# seller that re-executes on replay would deliver a second webhook with
|
|
413
|
-
# a fresh idempotency_key and trip `duplicate_webhook_on_replay`.
|
|
414
|
-
triggered_by: create_media_buy_initial
|
|
415
|
-
timeout_seconds: 30
|
|
416
|
-
expect_max_deliveries_per_logical_event: 1
|
|
417
|
-
requires_contract: webhook_receiver_runner
|
|
418
|
-
stateful: true
|
|
419
|
-
expected: |
|
|
420
|
-
At most one logical webhook event delivered for the create_media_buy
|
|
421
|
-
operation across both the initial and replay windows. If the runner
|
|
422
|
-
observes a second webhook delivery tagged with a distinct
|
|
423
|
-
idempotency_key but the same media_buy_id/operation_id, the seller is
|
|
424
|
-
re-executing on replay and the step fails with
|
|
425
|
-
duplicate_webhook_on_replay. Not_applicable when the runner does not
|
|
426
|
-
host a webhook receiver.
|
|
427
|
-
|
|
428
402
|
- id: create_media_buy_conflict
|
|
429
403
|
title: "Same key, different payload returns IDEMPOTENCY_CONFLICT"
|
|
430
404
|
narrative: |
|
|
@@ -434,12 +408,8 @@ phases:
|
|
|
434
408
|
IDEMPOTENCY_CONFLICT. CONFLICT is accepted as a fallback for sellers
|
|
435
409
|
that haven't adopted the new error code yet.
|
|
436
410
|
|
|
437
|
-
This step shares
|
|
438
|
-
|
|
439
|
-
on the wire. Lives in the same phase as those steps because the
|
|
440
|
-
runner's alias cache resets at phase boundaries (adcp-client#1657);
|
|
441
|
-
a separate phase would mint a fresh UUID and the seller would treat
|
|
442
|
-
the call as a new request rather than a conflicting key reuse.
|
|
411
|
+
This step shares `$context.replay_key` with the initial and replay
|
|
412
|
+
steps above, so the runner injects the same UUID on the wire.
|
|
443
413
|
task: create_media_buy
|
|
444
414
|
schema_ref: "media-buy/create-media-buy-request.json"
|
|
445
415
|
response_schema_ref: "media-buy/create-media-buy-response.json"
|
|
@@ -454,15 +424,15 @@ phases:
|
|
|
454
424
|
- recovery: correctable (buyer should use a fresh UUID v4)
|
|
455
425
|
|
|
456
426
|
sample_request:
|
|
457
|
-
idempotency_key: "$
|
|
427
|
+
idempotency_key: "$context.replay_key"
|
|
458
428
|
account:
|
|
459
429
|
brand:
|
|
460
430
|
domain: "acmeoutdoor.example"
|
|
461
431
|
operator: "pinnacle-agency.example"
|
|
462
432
|
brand:
|
|
463
433
|
domain: "acmeoutdoor.example"
|
|
464
|
-
start_time: "
|
|
465
|
-
end_time: "
|
|
434
|
+
start_time: "asap"
|
|
435
|
+
end_time: "2099-09-30T23:59:59Z"
|
|
466
436
|
packages:
|
|
467
437
|
- product_id: "test-product"
|
|
468
438
|
budget: 25000
|
|
@@ -517,15 +487,15 @@ phases:
|
|
|
517
487
|
This confirms the seller treats the fresh key as a new request.
|
|
518
488
|
|
|
519
489
|
sample_request:
|
|
520
|
-
idempotency_key: "$
|
|
490
|
+
idempotency_key: "$context.fresh_key"
|
|
521
491
|
account:
|
|
522
492
|
brand:
|
|
523
493
|
domain: "acmeoutdoor.example"
|
|
524
494
|
operator: "pinnacle-agency.example"
|
|
525
495
|
brand:
|
|
526
496
|
domain: "acmeoutdoor.example"
|
|
527
|
-
start_time: "
|
|
528
|
-
end_time: "
|
|
497
|
+
start_time: "asap"
|
|
498
|
+
end_time: "2099-07-31T23:59:59Z"
|
|
529
499
|
packages:
|
|
530
500
|
- product_id: "test-product"
|
|
531
501
|
budget: 5000
|
|
@@ -555,21 +525,139 @@ phases:
|
|
|
555
525
|
value: "idempotency--create_media_buy_fresh_key"
|
|
556
526
|
description: "Context correlation_id returned unchanged"
|
|
557
527
|
|
|
528
|
+
- id: concurrent_retry
|
|
529
|
+
title: "Concurrent retries with the same key produce exactly one resource"
|
|
530
|
+
narrative: |
|
|
531
|
+
A buyer's transport timeout fires before the seller's downstream call
|
|
532
|
+
returns; the buyer retries with the same idempotency_key while the
|
|
533
|
+
first request is still executing. Per L1/security.mdx#idempotency
|
|
534
|
+
rule 9 (first-insert-wins), the seller MUST resolve the race
|
|
535
|
+
deterministically — exactly one resource is created, and both buyer
|
|
536
|
+
requests converge on the same media_buy_id.
|
|
537
|
+
|
|
538
|
+
The seller picks one of two policies and MUST behave consistently:
|
|
539
|
+
|
|
540
|
+
- **Wait-and-replay**: the second request blocks until the first
|
|
541
|
+
completes, then returns the cached response with `replayed: true`.
|
|
542
|
+
- **Reject-and-redirect**: the second request returns
|
|
543
|
+
`IDEMPOTENCY_IN_FLIGHT` immediately with
|
|
544
|
+
`error.details.retry_after`. The buyer retries with the same key
|
|
545
|
+
after the hint elapses and receives the cached response.
|
|
546
|
+
|
|
547
|
+
This phase exercises both policies via the parallel_dispatch_runner
|
|
548
|
+
contract: it fires two requests with the same fresh idempotency_key
|
|
549
|
+
and the same canonical payload, and asserts that the resolved
|
|
550
|
+
response set contains exactly one distinct media_buy_id. The runner
|
|
551
|
+
transparently resolves IDEMPOTENCY_IN_FLIGHT responses by retrying
|
|
552
|
+
with the same key after `retry_after` elapses, so the cross-response
|
|
553
|
+
check operates on the resolved set regardless of which policy the
|
|
554
|
+
seller adopted.
|
|
555
|
+
|
|
556
|
+
Runners without parallel-dispatch support skip this phase with a
|
|
557
|
+
stable not_applicable marker. The phase does not regress the
|
|
558
|
+
sequential idempotency contract — sellers that fail this phase due
|
|
559
|
+
to runner absence are still gradeable on the rest of the storyboard.
|
|
560
|
+
|
|
561
|
+
steps:
|
|
562
|
+
- id: create_media_buy_concurrent
|
|
563
|
+
title: "Two parallel create_media_buy calls with same key converge on one resource"
|
|
564
|
+
narrative: |
|
|
565
|
+
Fire two create_media_buy requests with the same fresh UUID v4
|
|
566
|
+
idempotency_key and byte-identical canonical payloads. The
|
|
567
|
+
runner dispatches them via its parallel-dispatch primitive (SDK
|
|
568
|
+
batch-call or distributed barrier), observes both responses,
|
|
569
|
+
resolves any IDEMPOTENCY_IN_FLIGHT to its eventual cached
|
|
570
|
+
response, and applies the cross-response checks below.
|
|
571
|
+
|
|
572
|
+
Programmatic verification of "exactly one resource created" runs
|
|
573
|
+
via `cross_response_count_distinct` on `media_buy_id`. A seller
|
|
574
|
+
that ignored rule 9 (re-executed both, two media buys created)
|
|
575
|
+
would produce cardinality 2 here and fail; a seller that
|
|
576
|
+
correctly serializes via first-insert-wins produces cardinality
|
|
577
|
+
1 regardless of which policy (wait-and-replay or
|
|
578
|
+
reject-and-redirect) it adopted.
|
|
579
|
+
|
|
580
|
+
The accompanying `cross_response_field_equal` check is redundant
|
|
581
|
+
when cardinality is 1, but documents the equivalence intent
|
|
582
|
+
directly: every dispatch's resolved response carries the same
|
|
583
|
+
media_buy_id.
|
|
584
|
+
task: create_media_buy
|
|
585
|
+
schema_ref: "media-buy/create-media-buy-request.json"
|
|
586
|
+
response_schema_ref: "media-buy/create-media-buy-response.json"
|
|
587
|
+
doc_ref: "/media-buy/task-reference/create_media_buy"
|
|
588
|
+
comply_scenario: idempotency_concurrent
|
|
589
|
+
stateful: true
|
|
590
|
+
requires_contract: parallel_dispatch_runner
|
|
591
|
+
parallel_dispatch:
|
|
592
|
+
count: 2
|
|
593
|
+
same_idempotency_key: true
|
|
594
|
+
barrier_timeout_ms: 5000
|
|
595
|
+
expected: |
|
|
596
|
+
After resolving any IDEMPOTENCY_IN_FLIGHT responses to their
|
|
597
|
+
eventual cached response, both dispatches' responses carry the
|
|
598
|
+
same media_buy_id. Exactly one media buy was created. The
|
|
599
|
+
resolved-response set has cardinality 1 on media_buy_id.
|
|
600
|
+
|
|
601
|
+
A seller adopting wait-and-replay returns the same response on
|
|
602
|
+
both dispatches directly. A seller adopting reject-and-redirect
|
|
603
|
+
returns the cached response on one dispatch and
|
|
604
|
+
IDEMPOTENCY_IN_FLIGHT on the other; the runner resolves the
|
|
605
|
+
latter by retrying with the same key after `retry_after` and
|
|
606
|
+
observes the cached response. Either path is conformant.
|
|
607
|
+
|
|
608
|
+
sample_request:
|
|
609
|
+
idempotency_key: "$generate:uuid_v4#concurrent_key"
|
|
610
|
+
account:
|
|
611
|
+
brand:
|
|
612
|
+
domain: "acmeoutdoor.example"
|
|
613
|
+
operator: "pinnacle-agency.example"
|
|
614
|
+
brand:
|
|
615
|
+
domain: "acmeoutdoor.example"
|
|
616
|
+
start_time: "asap"
|
|
617
|
+
end_time: "2099-07-31T23:59:59Z"
|
|
618
|
+
packages:
|
|
619
|
+
- product_id: "test-product"
|
|
620
|
+
budget: 5000
|
|
621
|
+
pricing_option_id: "test-pricing"
|
|
622
|
+
|
|
623
|
+
context:
|
|
624
|
+
correlation_id: "idempotency--create_media_buy_concurrent"
|
|
625
|
+
validations:
|
|
626
|
+
- check: cross_response_count_distinct
|
|
627
|
+
path: "media_buy_id"
|
|
628
|
+
allowed_values: [1]
|
|
629
|
+
description: "Concurrent retries produced exactly one distinct media_buy_id across both dispatches (rule 9: first-insert-wins)"
|
|
630
|
+
- check: cross_response_field_equal
|
|
631
|
+
path: "media_buy_id"
|
|
632
|
+
description: "Both dispatches' resolved responses carry the same media_buy_id"
|
|
633
|
+
|
|
634
|
+
reviewer_checks:
|
|
635
|
+
- "Confirm the seller's claim-row / unique-constraint implementation backs the observed first-insert-wins behavior, rather than a happy-path race the test happened to avoid (review code or runbook describing the INSERT … ON CONFLICT pattern on the scope tuple)."
|
|
636
|
+
- "If the seller returned IDEMPOTENCY_IN_FLIGHT on the second dispatch, confirm `error.details.retry_after` was populated with a plausible value (seconds, integer, > 0) and that the cached response was available within the hint window. A seller that consistently overshoots retry_after produces brittle retry timing for buyers."
|
|
637
|
+
- "Confirm the seller's in-flight detection does NOT leak across (authenticated_agent, account_id) scope boundaries — probe with a stolen key from a different scope and verify the response shape and timing match the never-seen-key path."
|
|
638
|
+
|
|
558
639
|
- id: verify_media_buy_count
|
|
559
640
|
title: "Verify dedup actually happened"
|
|
560
641
|
narrative: |
|
|
561
|
-
Call get_media_buys to confirm
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
642
|
+
Call get_media_buys to confirm the two captured media_buy_ids both exist
|
|
643
|
+
and are distinct. `initial_media_buy_id` was created on the first
|
|
644
|
+
`create_media_buy` call and reused on the replay (same key, deduplicated);
|
|
645
|
+
`fresh_key_media_buy_id` was created on the fresh-key request. The
|
|
646
|
+
`concurrent_retry` phase (when graded) also exercises first-insert-wins
|
|
647
|
+
but its resource is not queried here — that phase has its own
|
|
648
|
+
cross-response cardinality check. If the seller ignored the idempotency_key
|
|
649
|
+
on the replay branch, `initial_media_buy_id` would not match across the
|
|
650
|
+
replay step's response.
|
|
565
651
|
|
|
566
652
|
steps:
|
|
567
653
|
- id: get_media_buys_dedup_check
|
|
568
|
-
title: "Confirm
|
|
654
|
+
title: "Confirm captured media_buy_ids exist and are distinct"
|
|
569
655
|
narrative: |
|
|
570
|
-
Query the two media_buy_ids
|
|
571
|
-
|
|
572
|
-
|
|
656
|
+
Query the two captured media_buy_ids from prior steps. Both should
|
|
657
|
+
exist (proving fresh-key and initial calls each created a real
|
|
658
|
+
resource) and be distinct (proving the fresh-key call was treated as
|
|
659
|
+
a new request, not deduplicated against the initial). This is an
|
|
660
|
+
end-to-end verification that the replay did not create a duplicate row.
|
|
573
661
|
task: get_media_buys
|
|
574
662
|
schema_ref: "media-buy/get-media-buys-request.json"
|
|
575
663
|
response_schema_ref: "media-buy/get-media-buys-response.json"
|
|
@@ -577,7 +665,7 @@ phases:
|
|
|
577
665
|
comply_scenario: idempotency_verify
|
|
578
666
|
stateful: true
|
|
579
667
|
expected: |
|
|
580
|
-
Return
|
|
668
|
+
Return both captured media buys with the two captured IDs, distinct.
|
|
581
669
|
|
|
582
670
|
sample_request:
|
|
583
671
|
account:
|
|
@@ -604,3 +692,118 @@ phases:
|
|
|
604
692
|
path: "context.correlation_id"
|
|
605
693
|
value: "idempotency--get_media_buys_dedup_check"
|
|
606
694
|
description: "Context correlation_id returned unchanged"
|
|
695
|
+
|
|
696
|
+
- id: rate_limit_replay_invariant
|
|
697
|
+
title: "RATE_LIMITED responses are not cached as idempotency replays"
|
|
698
|
+
narrative: |
|
|
699
|
+
Per L1/security.mdx#idempotency rule 3 ("Only successful responses
|
|
700
|
+
are cached") and bullet 8 (insert-rate ceiling): when the seller's
|
|
701
|
+
idempotency-cache insert-rate limiter trips and a request receives
|
|
702
|
+
`RATE_LIMITED`, the response MUST NOT be cached as the canonical
|
|
703
|
+
replay for that idempotency_key. A buyer retrying with the same key
|
|
704
|
+
after `error.details.retry_after` elapses MUST observe the real
|
|
705
|
+
handler result (success or a state-dependent error) — not a cached
|
|
706
|
+
rate-limit response that would persist for the entire replay TTL.
|
|
707
|
+
|
|
708
|
+
Without this invariant, `retry_after` is a meaningless signal: a
|
|
709
|
+
buyer who hits the limiter once would receive the cached
|
|
710
|
+
`RATE_LIMITED` on every subsequent retry until the replay window
|
|
711
|
+
expires, regardless of when the limiter actually cleared. The
|
|
712
|
+
invariant collapses a real client-safety regression into a
|
|
713
|
+
cross-response check.
|
|
714
|
+
|
|
715
|
+
This phase runs the `expect_rate_limit_not_replayed` task via the
|
|
716
|
+
`rate_limit_trip_runner` contract. The runner drives a sequential
|
|
717
|
+
fresh-key burst against `create_media_buy` until one request receives
|
|
718
|
+
`RATE_LIMITED`, captures that request's `idempotency_key`, waits the
|
|
719
|
+
response's `retry_after` seconds, then re-submits the captured key
|
|
720
|
+
with the same payload. The cross-response check
|
|
721
|
+
`replay_not_cached_rate_limit` fails if the replay response carries
|
|
722
|
+
`error.code = RATE_LIMITED` (i.e., the cached rate-limit was served
|
|
723
|
+
as the replay).
|
|
724
|
+
|
|
725
|
+
Runners without `rate_limit_trip_runner` skip this phase with a
|
|
726
|
+
stable `not_applicable` marker. Runners with the contract that
|
|
727
|
+
exhaust `max_attempts` without observing `RATE_LIMITED` also grade
|
|
728
|
+
`not_applicable` (reason: `rate_limit_not_triggered`) — a sandbox
|
|
729
|
+
limiter sitting above the contract's burst ceiling is not a seller
|
|
730
|
+
conformance fault, only a configuration choice that prevents the
|
|
731
|
+
invariant from being verified end-to-end.
|
|
732
|
+
|
|
733
|
+
The 60/300 req/sec ceiling itself is NOT attested here. Burst-volume
|
|
734
|
+
measurement is structurally non-deterministic in CI environments and
|
|
735
|
+
remains seller self-attestation per the cache-growth-defense note
|
|
736
|
+
above.
|
|
737
|
+
|
|
738
|
+
steps:
|
|
739
|
+
- id: expect_rate_limit_not_replayed
|
|
740
|
+
title: "Trip the limiter, replay the key after retry_after, assert the cached response is not RATE_LIMITED"
|
|
741
|
+
narrative: |
|
|
742
|
+
The runner fires up to `max_attempts` sequential `create_media_buy`
|
|
743
|
+
requests with fresh UUID v4 idempotency_keys and otherwise-identical
|
|
744
|
+
canonical payloads. On the first response with envelope error_code
|
|
745
|
+
= `RATE_LIMITED`, the runner captures the request's
|
|
746
|
+
`idempotency_key` and the response's `error.details.retry_after`,
|
|
747
|
+
waits that long (capped by `replay_max_wait_seconds`), and
|
|
748
|
+
re-submits the captured key with the same payload but a distinct
|
|
749
|
+
`context.correlation_id` for traceability.
|
|
750
|
+
|
|
751
|
+
The cross-response `replay_not_cached_rate_limit` check compares
|
|
752
|
+
`trip_response.error.code` against `replay_response.error.code`
|
|
753
|
+
(when the replay carries an error envelope) or against the absence
|
|
754
|
+
of error (when the replay carries a success envelope). The check
|
|
755
|
+
fails iff both responses carry `error.code = RATE_LIMITED` — that
|
|
756
|
+
is the cached-replay regression. Any other replay response shape
|
|
757
|
+
passes the invariant: either the handler succeeded (the seller
|
|
758
|
+
correctly re-executed against the cleared budget), or the handler
|
|
759
|
+
returned a different error (the seller correctly re-executed and
|
|
760
|
+
a state-dependent error fired).
|
|
761
|
+
|
|
762
|
+
The `trip_target_sample_request` below intentionally uses a
|
|
763
|
+
minimal `create_media_buy` payload — the goal of the burst is to
|
|
764
|
+
generate insert-rate pressure on the idempotency cache, not to
|
|
765
|
+
exercise the create flow itself. The replay payload is byte-
|
|
766
|
+
identical to the trip request to keep the canonical hash stable.
|
|
767
|
+
task: expect_rate_limit_not_replayed
|
|
768
|
+
requires_contract: rate_limit_trip_runner
|
|
769
|
+
rate_limit_trip:
|
|
770
|
+
trip_target_task: create_media_buy
|
|
771
|
+
max_attempts: 200
|
|
772
|
+
replay_max_wait_seconds: 30
|
|
773
|
+
trip_target_sample_request:
|
|
774
|
+
account:
|
|
775
|
+
brand:
|
|
776
|
+
domain: "acmeoutdoor.example"
|
|
777
|
+
operator: "pinnacle-agency.example"
|
|
778
|
+
brand:
|
|
779
|
+
domain: "acmeoutdoor.example"
|
|
780
|
+
start_time: "asap"
|
|
781
|
+
end_time: "2099-07-31T23:59:59Z"
|
|
782
|
+
packages:
|
|
783
|
+
- product_id: "test-product"
|
|
784
|
+
budget: 5000
|
|
785
|
+
pricing_option_id: "test-pricing"
|
|
786
|
+
context:
|
|
787
|
+
correlation_id: "idempotency--rate_limit_trip_request"
|
|
788
|
+
expected: |
|
|
789
|
+
One of two outcomes:
|
|
790
|
+
|
|
791
|
+
- At least one burst request returns `RATE_LIMITED`. The runner
|
|
792
|
+
captures the request's idempotency_key, waits the response's
|
|
793
|
+
retry_after, replays the captured key, and the replay response
|
|
794
|
+
does NOT carry `error.code = RATE_LIMITED`. The
|
|
795
|
+
`replay_not_cached_rate_limit` check passes.
|
|
796
|
+
|
|
797
|
+
- All `max_attempts` requests complete without producing
|
|
798
|
+
`RATE_LIMITED`. The step grades `not_applicable` with reason
|
|
799
|
+
`rate_limit_not_triggered`. The rest of the storyboard is
|
|
800
|
+
unaffected.
|
|
801
|
+
|
|
802
|
+
validations:
|
|
803
|
+
- check: replay_not_cached_rate_limit
|
|
804
|
+
description: "RATE_LIMITED response on rate-limit trip was not cached as the idempotency replay for the same key"
|
|
805
|
+
|
|
806
|
+
reviewer_checks:
|
|
807
|
+
- "Confirm the seller's idempotency-cache implementation explicitly excludes RATE_LIMITED (and other transient-error) responses from the cached-replay path. Review the storage layer or runbook describing which response classes are persisted under idempotency_key."
|
|
808
|
+
- "Confirm the seller's RATE_LIMITED response carries a usable retry_after value (seconds, integer, > 0, ≤ a documented ceiling). A seller that returns retry_after values larger than buyers' realistic retry windows produces unusable rate-limit signaling."
|
|
809
|
+
- "Confirm the seller's rate-limit budget is scoped per (authenticated_agent, account) tuple — not shared across all agents or accounts globally — so one agent's burst cannot exhaust another's budget."
|