@adcp/sdk 14.0.0-beta.0 → 14.0.0-beta.1

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.
Files changed (140) hide show
  1. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/get-account-financials-request.json +610 -0
  2. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/get-account-financials-response.json +1055 -0
  3. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/list-accounts-request.json +629 -0
  4. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/list-accounts-response.json +1558 -0
  5. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/report-usage-request.json +702 -0
  6. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/report-usage-response.json +309 -0
  7. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/sync-accounts-request.json +1113 -0
  8. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/sync-accounts-response.json +1567 -0
  9. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/sync-governance-request.json +662 -0
  10. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/sync-governance-response.json +921 -0
  11. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/creative/list-creatives-request.json +992 -0
  12. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/creative/list-creatives-response.json +5965 -0
  13. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/creative/sync-creatives-request.json +3936 -0
  14. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/creative/sync-creatives-response.json +3859 -0
  15. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/manifest.json +206 -0
  16. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/accept-proposal-request.json +601 -0
  17. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/accept-proposal-response.json +4799 -0
  18. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/buy-products-request.json +4107 -0
  19. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/buy-products-response.json +4799 -0
  20. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/control-media-buy-request.json +3365 -0
  21. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/control-media-buy-response.json +656 -0
  22. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/decline-proposals-request.json +334 -0
  23. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/decline-proposals-response.json +271 -0
  24. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/get-media-buy-delivery-request.json +1236 -0
  25. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/get-media-buy-delivery-response.json +2861 -0
  26. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/get-media-buys-request.json +678 -0
  27. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/get-media-buys-response.json +10861 -0
  28. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/list-products-request.json +4229 -0
  29. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/list-products-response.json +3824 -0
  30. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/log-event-request.json +421 -0
  31. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/log-event-response.json +394 -0
  32. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/media-buy-delivery-webhook-result.json +1366 -0
  33. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/provide-performance-feedback-request.json +884 -0
  34. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/provide-performance-feedback-response.json +422 -0
  35. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/refine-proposals-request.json +4335 -0
  36. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/refine-proposals-response.json +7328 -0
  37. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/request-proposals-request.json +4307 -0
  38. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/request-proposals-response.json +7105 -0
  39. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-audiences-request.json +760 -0
  40. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-audiences-response.json +541 -0
  41. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-catalogs-request.json +1142 -0
  42. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-catalogs-response.json +1153 -0
  43. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-event-sources-request.json +743 -0
  44. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-event-sources-response.json +619 -0
  45. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/account/get-account-financials-request.json +544 -0
  46. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/account/list-accounts-request.json +557 -0
  47. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/account/report-usage-request.json +617 -0
  48. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/account/sync-accounts-request.json +984 -0
  49. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/account/sync-governance-request.json +581 -0
  50. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/creative/list-creatives-request.json +878 -0
  51. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/creative/sync-creatives-request.json +3456 -0
  52. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/manifest.json +175 -0
  53. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/accept-proposal-request.json +498 -0
  54. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/buy-products-request.json +3675 -0
  55. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/control-media-buy-request.json +3030 -0
  56. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/decline-proposals-request.json +282 -0
  57. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/get-media-buy-delivery-request.json +1136 -0
  58. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/get-media-buys-request.json +597 -0
  59. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/list-products-request.json +3780 -0
  60. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/log-event-request.json +386 -0
  61. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/provide-performance-feedback-request.json +784 -0
  62. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/refine-proposals-request.json +3878 -0
  63. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/request-proposals-request.json +3852 -0
  64. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/sync-audiences-request.json +682 -0
  65. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/sync-catalogs-request.json +1016 -0
  66. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/sync-event-sources-request.json +660 -0
  67. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/protocol/get-adcp-capabilities-request.json +51 -0
  68. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/protocol/get-task-status-request.json +534 -0
  69. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/protocol/list-tasks-request.json +692 -0
  70. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/protocol/sync-agent-notification-configs-request.json +129 -0
  71. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/get-adcp-capabilities-request.json +58 -0
  72. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/get-adcp-capabilities-response.json +8069 -0
  73. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/get-task-status-request.json +601 -0
  74. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/get-task-status-response.json +612 -0
  75. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/list-tasks-request.json +775 -0
  76. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/list-tasks-response.json +483 -0
  77. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/sync-agent-notification-configs-request.json +155 -0
  78. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/sync-agent-notification-configs-response.json +382 -0
  79. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  80. package/dist/lib/server/create-adcp-server.d.mts +27 -0
  81. package/dist/lib/server/create-adcp-server.d.ts +27 -0
  82. package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
  83. package/dist/lib/server/create-adcp-server.js +120 -4
  84. package/dist/lib/server/create-adcp-server.js.map +1 -1
  85. package/dist/lib/server/create-adcp-server.mjs +121 -6
  86. package/dist/lib/server/create-adcp-server.mjs.map +1 -1
  87. package/dist/lib/server/decisioning/context.d.mts +6 -0
  88. package/dist/lib/server/decisioning/context.d.ts +6 -0
  89. package/dist/lib/server/decisioning/context.d.ts.map +1 -1
  90. package/dist/lib/server/decisioning/context.js.map +1 -1
  91. package/dist/lib/server/decisioning/index.d.mts +1 -1
  92. package/dist/lib/server/decisioning/index.d.ts +1 -1
  93. package/dist/lib/server/decisioning/index.d.ts.map +1 -1
  94. package/dist/lib/server/decisioning/index.js.map +1 -1
  95. package/dist/lib/server/decisioning/index.mjs.map +1 -1
  96. package/dist/lib/server/decisioning/platform.d.mts +21 -6
  97. package/dist/lib/server/decisioning/platform.d.ts +21 -6
  98. package/dist/lib/server/decisioning/platform.d.ts.map +1 -1
  99. package/dist/lib/server/decisioning/platform.js.map +1 -1
  100. package/dist/lib/server/decisioning/runtime/from-platform.d.ts.map +1 -1
  101. package/dist/lib/server/decisioning/runtime/from-platform.js +201 -18
  102. package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
  103. package/dist/lib/server/decisioning/runtime/from-platform.mjs +203 -19
  104. package/dist/lib/server/decisioning/runtime/from-platform.mjs.map +1 -1
  105. package/dist/lib/server/decisioning/runtime/to-context.d.ts.map +1 -1
  106. package/dist/lib/server/decisioning/runtime/to-context.js +6 -0
  107. package/dist/lib/server/decisioning/runtime/to-context.js.map +1 -1
  108. package/dist/lib/server/decisioning/runtime/to-context.mjs +6 -0
  109. package/dist/lib/server/decisioning/runtime/to-context.mjs.map +1 -1
  110. package/dist/lib/server/decisioning/runtime/validate-platform.d.ts.map +1 -1
  111. package/dist/lib/server/decisioning/runtime/validate-platform.js +35 -4
  112. package/dist/lib/server/decisioning/runtime/validate-platform.js.map +1 -1
  113. package/dist/lib/server/decisioning/runtime/validate-platform.mjs +35 -4
  114. package/dist/lib/server/decisioning/runtime/validate-platform.mjs.map +1 -1
  115. package/dist/lib/server/decisioning/specialisms/sales.d.mts +39 -0
  116. package/dist/lib/server/decisioning/specialisms/sales.d.ts +39 -0
  117. package/dist/lib/server/decisioning/specialisms/sales.d.ts.map +1 -1
  118. package/dist/lib/server/decisioning/specialisms/sales.js.map +1 -1
  119. package/dist/lib/testing/storyboard/validations.d.mts +1 -1
  120. package/dist/lib/testing/storyboard/validations.d.ts +1 -1
  121. package/dist/lib/validation/schema-loader.d.mts +2 -0
  122. package/dist/lib/validation/schema-loader.d.ts +2 -0
  123. package/dist/lib/validation/schema-loader.d.ts.map +1 -1
  124. package/dist/lib/validation/schema-loader.js +31 -0
  125. package/dist/lib/validation/schema-loader.js.map +1 -1
  126. package/dist/lib/validation/schema-loader.mjs +30 -0
  127. package/dist/lib/validation/schema-loader.mjs.map +1 -1
  128. package/dist/lib/version.d.mts +3 -3
  129. package/dist/lib/version.d.ts +3 -3
  130. package/dist/lib/version.js +3 -3
  131. package/dist/lib/version.js.map +1 -1
  132. package/dist/lib/version.mjs +3 -3
  133. package/dist/lib/version.mjs.map +1 -1
  134. package/docs/guides/BUILD-AN-AGENT.md +10 -1
  135. package/docs/guides/MEDIA-BUY-3.2-COMPATIBILITY.md +119 -0
  136. package/docs/llms.txt +1 -1
  137. package/docs/migration-12-to-14.md +8 -0
  138. package/docs/migration-13-to-14.md +30 -4
  139. package/docs/releases/14.0.0-beta.0.md +19 -1
  140. package/package.json +2 -1
@@ -0,0 +1,3936 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://adcontextprotocol.org/schemas/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/creative/sync-creatives-request.json",
4
+ "type": "object",
5
+ "allOf": [
6
+ {
7
+ "$ref": "#/$defs/external:core~1version-envelope.json"
8
+ },
9
+ {
10
+ "if": {
11
+ "properties": {
12
+ "delete_missing": {
13
+ "const": true
14
+ }
15
+ },
16
+ "required": [
17
+ "delete_missing"
18
+ ]
19
+ },
20
+ "then": {
21
+ "required": [
22
+ "creatives"
23
+ ]
24
+ }
25
+ },
26
+ {
27
+ "not": {
28
+ "required": [
29
+ "assignments",
30
+ "assignment_operations"
31
+ ]
32
+ }
33
+ },
34
+ {
35
+ "if": {
36
+ "required": [
37
+ "assignment_operations"
38
+ ]
39
+ },
40
+ "then": {
41
+ "properties": {
42
+ "validation_mode": {
43
+ "type": "string",
44
+ "const": "strict"
45
+ }
46
+ }
47
+ }
48
+ }
49
+ ],
50
+ "x-mutates-state": true,
51
+ "properties": {
52
+ "account": {
53
+ "$ref": "#/$defs/external:core~1account-ref.json"
54
+ },
55
+ "creatives": {
56
+ "type": "array",
57
+ "items": {
58
+ "allOf": [
59
+ {
60
+ "$ref": "#/$defs/external:core~1creative-asset.json"
61
+ },
62
+ {
63
+ "type": "object",
64
+ "properties": {
65
+ "localization": {
66
+ "anyOf": [
67
+ {
68
+ "$ref": "#/$defs/external:core~1creative-localization.json"
69
+ },
70
+ {
71
+ "type": "null"
72
+ }
73
+ ]
74
+ }
75
+ },
76
+ "additionalProperties": true
77
+ }
78
+ ],
79
+ "x-adcp-validation": {
80
+ "verifier_constraints": {
81
+ "localization_capability_gate": {
82
+ "required_capability": "creative.localization",
83
+ "target_count_ceiling": "creative.localization.max_target_variants_or_50",
84
+ "locale_format_account_support": "validate_request_before_mutation",
85
+ "on_violation": "reject_before_mutation"
86
+ },
87
+ "existing_localized_source_upsert": {
88
+ "localization_omitted": "top_level_assets_must_equal_prior_source_assets",
89
+ "source_assets_changed": "require_non_null_localization_or_null_removal",
90
+ "on_violation": "reject_before_mutation"
91
+ },
92
+ "localization_replacement": {
93
+ "scope": "top_level_assets_and_complete_localization",
94
+ "on_failure": "prior_state_unchanged",
95
+ "orphan_locale_variants": "must_not_be_visible"
96
+ }
97
+ },
98
+ "spec": "docs/creative/task-reference/sync_creatives.mdx#native-localization"
99
+ }
100
+ },
101
+ "minItems": 1,
102
+ "maxItems": 100
103
+ },
104
+ "creative_ids": {
105
+ "type": "array",
106
+ "items": {
107
+ "type": "string",
108
+ "x-entity": "creative"
109
+ },
110
+ "minItems": 1,
111
+ "maxItems": 100
112
+ },
113
+ "assignments": {
114
+ "type": "array",
115
+ "deprecated": true,
116
+ "items": {
117
+ "type": "object",
118
+ "properties": {
119
+ "creative_id": {
120
+ "type": "string",
121
+ "x-entity": "creative"
122
+ },
123
+ "package_id": {
124
+ "type": "string",
125
+ "x-entity": "package"
126
+ },
127
+ "weight": {
128
+ "type": "number",
129
+ "minimum": 0,
130
+ "maximum": 100
131
+ },
132
+ "placement_ids": {
133
+ "type": "array",
134
+ "items": {
135
+ "type": "string"
136
+ },
137
+ "minItems": 1
138
+ }
139
+ },
140
+ "required": [
141
+ "creative_id",
142
+ "package_id"
143
+ ],
144
+ "additionalProperties": false,
145
+ "x-adcp-validation": {
146
+ "verifier_constraints": {
147
+ "product_format_locale_policy": {
148
+ "scope": "every_effective_product_and_placement_format_option_where_assignment_may_serve",
149
+ "range_matching": "rfc4647_basic_filtering",
150
+ "eligible_variant_set": "filter_before_buyer_lookup_fallback_or_default",
151
+ "minimum_eligible_variants_per_scope": 1,
152
+ "serve_default": "default_locale_variant_id_must_be_eligible",
153
+ "policy_lifecycle": "snapshot_effective_policy_at_assignment_acceptance",
154
+ "on_violation": "CREATIVE_LOCALE_NOT_ACCEPTED"
155
+ }
156
+ },
157
+ "spec": "docs/creative/task-reference/sync_creatives.mdx#native-localization"
158
+ }
159
+ },
160
+ "minItems": 1
161
+ },
162
+ "assignment_operations": {
163
+ "type": "array",
164
+ "minItems": 1,
165
+ "maxItems": 500,
166
+ "items": {
167
+ "type": "object",
168
+ "discriminator": {
169
+ "propertyName": "operation"
170
+ },
171
+ "oneOf": [
172
+ {
173
+ "properties": {
174
+ "operation": {
175
+ "const": "assign"
176
+ },
177
+ "creative_id": {
178
+ "type": "string",
179
+ "minLength": 1,
180
+ "x-entity": "creative"
181
+ },
182
+ "package_id": {
183
+ "type": "string",
184
+ "minLength": 1,
185
+ "x-entity": "package"
186
+ },
187
+ "weight": {
188
+ "type": "number",
189
+ "minimum": 0,
190
+ "maximum": 100
191
+ },
192
+ "placement_ids": {
193
+ "type": "array",
194
+ "items": {
195
+ "type": "string",
196
+ "minLength": 1
197
+ },
198
+ "minItems": 1,
199
+ "uniqueItems": true
200
+ }
201
+ },
202
+ "required": [
203
+ "operation",
204
+ "creative_id",
205
+ "package_id"
206
+ ],
207
+ "additionalProperties": false,
208
+ "x-adcp-validation": {
209
+ "verifier_constraints": {
210
+ "product_format_locale_policy": {
211
+ "scope": "every_effective_product_and_placement_format_option_where_assignment_may_serve",
212
+ "range_matching": "rfc4647_basic_filtering",
213
+ "eligible_variant_set": "filter_before_buyer_lookup_fallback_or_default",
214
+ "minimum_eligible_variants_per_scope": 1,
215
+ "serve_default": "default_locale_variant_id_must_be_eligible",
216
+ "policy_lifecycle": "snapshot_effective_policy_at_assignment_acceptance",
217
+ "on_violation": "CREATIVE_LOCALE_NOT_ACCEPTED"
218
+ }
219
+ },
220
+ "spec": "docs/creative/task-reference/sync_creatives.mdx#native-localization"
221
+ }
222
+ },
223
+ {
224
+ "properties": {
225
+ "operation": {
226
+ "const": "unassign"
227
+ },
228
+ "creative_id": {
229
+ "type": "string",
230
+ "minLength": 1,
231
+ "x-entity": "creative"
232
+ },
233
+ "package_id": {
234
+ "type": "string",
235
+ "minLength": 1,
236
+ "x-entity": "package"
237
+ }
238
+ },
239
+ "required": [
240
+ "operation",
241
+ "creative_id",
242
+ "package_id"
243
+ ],
244
+ "additionalProperties": false
245
+ },
246
+ {
247
+ "properties": {
248
+ "operation": {
249
+ "const": "replace"
250
+ },
251
+ "creative_id": {
252
+ "type": "string",
253
+ "minLength": 1,
254
+ "x-entity": "creative"
255
+ },
256
+ "replaces_creative_id": {
257
+ "type": "string",
258
+ "minLength": 1,
259
+ "x-entity": "creative"
260
+ },
261
+ "package_id": {
262
+ "type": "string",
263
+ "minLength": 1,
264
+ "x-entity": "package"
265
+ },
266
+ "weight": {
267
+ "type": "number",
268
+ "minimum": 0,
269
+ "maximum": 100
270
+ },
271
+ "placement_ids": {
272
+ "type": "array",
273
+ "items": {
274
+ "type": "string",
275
+ "minLength": 1
276
+ },
277
+ "minItems": 1,
278
+ "uniqueItems": true
279
+ }
280
+ },
281
+ "required": [
282
+ "operation",
283
+ "creative_id",
284
+ "replaces_creative_id",
285
+ "package_id"
286
+ ],
287
+ "additionalProperties": false,
288
+ "x-adcp-validation": {
289
+ "verifier_constraints": {
290
+ "product_format_locale_policy": {
291
+ "scope": "every_effective_product_and_placement_format_option_where_assignment_may_serve",
292
+ "range_matching": "rfc4647_basic_filtering",
293
+ "eligible_variant_set": "filter_before_buyer_lookup_fallback_or_default",
294
+ "minimum_eligible_variants_per_scope": 1,
295
+ "serve_default": "default_locale_variant_id_must_be_eligible",
296
+ "policy_lifecycle": "snapshot_effective_policy_at_assignment_acceptance",
297
+ "on_violation": "CREATIVE_LOCALE_NOT_ACCEPTED"
298
+ }
299
+ },
300
+ "spec": "docs/creative/task-reference/sync_creatives.mdx#native-localization"
301
+ }
302
+ }
303
+ ]
304
+ }
305
+ },
306
+ "idempotency_key": {
307
+ "type": "string",
308
+ "minLength": 16,
309
+ "maxLength": 255,
310
+ "pattern": "^[A-Za-z0-9_.:-]{16,255}$"
311
+ },
312
+ "delete_missing": {
313
+ "type": "boolean",
314
+ "default": false
315
+ },
316
+ "dry_run": {
317
+ "type": "boolean",
318
+ "default": false
319
+ },
320
+ "validation_mode": {
321
+ "$ref": "#/$defs/external:enums~1validation-mode.json",
322
+ "default": "strict"
323
+ },
324
+ "push_notification_config": {
325
+ "$ref": "#/$defs/external:core~1push-notification-config.json"
326
+ },
327
+ "context": {
328
+ "$ref": "#/$defs/external:core~1context.json"
329
+ },
330
+ "ext": {
331
+ "$ref": "#/$defs/external:core~1ext.json"
332
+ }
333
+ },
334
+ "required": [
335
+ "idempotency_key",
336
+ "account"
337
+ ],
338
+ "anyOf": [
339
+ {
340
+ "required": [
341
+ "creatives"
342
+ ]
343
+ },
344
+ {
345
+ "required": [
346
+ "assignments"
347
+ ]
348
+ },
349
+ {
350
+ "required": [
351
+ "assignment_operations"
352
+ ]
353
+ }
354
+ ],
355
+ "additionalProperties": true,
356
+ "$defs": {
357
+ "external:core/version-envelope.json": {
358
+ "type": "object",
359
+ "properties": {
360
+ "adcp_version": {
361
+ "type": "string",
362
+ "pattern": "^(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:-[a-zA-Z0-9](?:[a-zA-Z0-9.-]*[a-zA-Z0-9])?)?$"
363
+ },
364
+ "adcp_major_version": {
365
+ "type": "integer",
366
+ "deprecated": true,
367
+ "minimum": 1,
368
+ "maximum": 99
369
+ }
370
+ }
371
+ },
372
+ "external:core/account-ref.json": {
373
+ "type": "object",
374
+ "oneOf": [
375
+ {
376
+ "properties": {
377
+ "account_id": {
378
+ "type": "string",
379
+ "x-entity": "account"
380
+ }
381
+ },
382
+ "required": [
383
+ "account_id"
384
+ ],
385
+ "additionalProperties": false
386
+ },
387
+ {
388
+ "properties": {
389
+ "brand": {
390
+ "$ref": "#/$defs/external:core~1brand-ref.json"
391
+ },
392
+ "operator": {
393
+ "type": "string",
394
+ "pattern": "^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$",
395
+ "x-entity": "operator"
396
+ },
397
+ "operator_unit": {
398
+ "$ref": "#/$defs/external:core~1operator-unit.json"
399
+ },
400
+ "currency": {
401
+ "type": "string",
402
+ "pattern": "^[A-Z]{3}$"
403
+ },
404
+ "timezone": {
405
+ "type": "string",
406
+ "minLength": 1
407
+ },
408
+ "sandbox": {
409
+ "type": "boolean",
410
+ "default": false
411
+ }
412
+ },
413
+ "required": [
414
+ "brand",
415
+ "operator"
416
+ ],
417
+ "additionalProperties": false
418
+ }
419
+ ]
420
+ },
421
+ "external:core/brand-ref.json": {
422
+ "type": "object",
423
+ "properties": {
424
+ "domain": {
425
+ "type": "string",
426
+ "pattern": "^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$"
427
+ },
428
+ "brand_id": {
429
+ "$ref": "#/$defs/external:core~1brand-id.json"
430
+ },
431
+ "countries": {
432
+ "type": "array",
433
+ "items": {
434
+ "type": "string",
435
+ "pattern": "^[A-Z]{2}$"
436
+ },
437
+ "minItems": 1,
438
+ "uniqueItems": true
439
+ },
440
+ "industries": {
441
+ "type": "array",
442
+ "items": {
443
+ "type": "string"
444
+ }
445
+ },
446
+ "data_subject_contestation": {
447
+ "type": "object",
448
+ "properties": {
449
+ "url": {
450
+ "type": "string",
451
+ "format": "uri",
452
+ "pattern": "^https://"
453
+ },
454
+ "email": {
455
+ "type": "string",
456
+ "format": "email"
457
+ },
458
+ "languages": {
459
+ "type": "array",
460
+ "items": {
461
+ "type": "string"
462
+ }
463
+ }
464
+ },
465
+ "anyOf": [
466
+ {
467
+ "required": [
468
+ "url"
469
+ ]
470
+ },
471
+ {
472
+ "required": [
473
+ "email"
474
+ ]
475
+ }
476
+ ],
477
+ "additionalProperties": false
478
+ },
479
+ "brand_kit_override": {
480
+ "type": "object",
481
+ "properties": {
482
+ "logo": {
483
+ "$ref": "#/$defs/external:core~1assets~1image-asset.json"
484
+ },
485
+ "colors": {
486
+ "type": "object",
487
+ "properties": {
488
+ "primary": {
489
+ "type": "string",
490
+ "pattern": "^#[0-9a-fA-F]{6}$"
491
+ },
492
+ "secondary": {
493
+ "type": "string",
494
+ "pattern": "^#[0-9a-fA-F]{6}$"
495
+ },
496
+ "accent": {
497
+ "type": "string",
498
+ "pattern": "^#[0-9a-fA-F]{6}$"
499
+ }
500
+ },
501
+ "additionalProperties": true
502
+ },
503
+ "voice": {
504
+ "type": "string"
505
+ },
506
+ "tagline": {
507
+ "type": "string"
508
+ }
509
+ },
510
+ "additionalProperties": true
511
+ }
512
+ },
513
+ "required": [
514
+ "domain"
515
+ ],
516
+ "additionalProperties": false
517
+ },
518
+ "external:core/brand-id.json": {
519
+ "type": "string",
520
+ "pattern": "^[a-z0-9_]+$",
521
+ "x-entity": "advertiser_brand"
522
+ },
523
+ "external:core/assets/image-asset.json": {
524
+ "type": "object",
525
+ "properties": {
526
+ "asset_type": {
527
+ "type": "string",
528
+ "const": "image"
529
+ },
530
+ "url": {
531
+ "type": "string",
532
+ "format": "uri"
533
+ },
534
+ "width": {
535
+ "type": "integer",
536
+ "minimum": 1
537
+ },
538
+ "height": {
539
+ "type": "integer",
540
+ "minimum": 1
541
+ },
542
+ "pixel_ratio": {
543
+ "type": "number",
544
+ "exclusiveMinimum": 0
545
+ },
546
+ "format": {
547
+ "type": "string"
548
+ },
549
+ "alt_text": {
550
+ "type": "string",
551
+ "x-accessibility": true
552
+ },
553
+ "provenance": {
554
+ "$ref": "#/$defs/external:core~1provenance.json"
555
+ }
556
+ },
557
+ "required": [
558
+ "asset_type",
559
+ "url",
560
+ "width",
561
+ "height"
562
+ ],
563
+ "additionalProperties": true
564
+ },
565
+ "external:core/provenance.json": {
566
+ "type": "object",
567
+ "properties": {
568
+ "digital_source_type": {
569
+ "$ref": "#/$defs/external:enums~1digital-source-type.json"
570
+ },
571
+ "synthetic_depiction": {
572
+ "type": "boolean"
573
+ },
574
+ "ai_tool": {
575
+ "type": "object",
576
+ "properties": {
577
+ "name": {
578
+ "type": "string"
579
+ },
580
+ "version": {
581
+ "type": "string"
582
+ },
583
+ "provider": {
584
+ "type": "string"
585
+ }
586
+ },
587
+ "required": [
588
+ "name"
589
+ ]
590
+ },
591
+ "human_oversight": {
592
+ "type": "string",
593
+ "enum": [
594
+ "none",
595
+ "prompt_only",
596
+ "selected",
597
+ "edited",
598
+ "directed"
599
+ ]
600
+ },
601
+ "declared_by": {
602
+ "type": "object",
603
+ "properties": {
604
+ "agent_url": {
605
+ "type": "string",
606
+ "format": "uri"
607
+ },
608
+ "role": {
609
+ "type": "string",
610
+ "enum": [
611
+ "creator",
612
+ "advertiser",
613
+ "agency",
614
+ "platform",
615
+ "tool"
616
+ ]
617
+ }
618
+ },
619
+ "required": [
620
+ "role"
621
+ ]
622
+ },
623
+ "declared_at": {
624
+ "type": "string",
625
+ "format": "date-time"
626
+ },
627
+ "created_time": {
628
+ "type": "string",
629
+ "format": "date-time"
630
+ },
631
+ "c2pa": {
632
+ "type": "object",
633
+ "properties": {
634
+ "manifest_url": {
635
+ "type": "string",
636
+ "format": "uri"
637
+ }
638
+ },
639
+ "required": [
640
+ "manifest_url"
641
+ ]
642
+ },
643
+ "embedded_provenance": {
644
+ "type": "array",
645
+ "minItems": 1,
646
+ "items": {
647
+ "type": "object",
648
+ "properties": {
649
+ "method": {
650
+ "$ref": "#/$defs/external:enums~1embedded-provenance-method.json"
651
+ },
652
+ "standard": {
653
+ "type": "string"
654
+ },
655
+ "provider": {
656
+ "type": "string"
657
+ },
658
+ "verify_agent": {
659
+ "type": "object",
660
+ "properties": {
661
+ "agent_url": {
662
+ "type": "string",
663
+ "format": "uri",
664
+ "pattern": "^https://"
665
+ },
666
+ "feature_id": {
667
+ "type": "string"
668
+ }
669
+ },
670
+ "required": [
671
+ "agent_url"
672
+ ],
673
+ "additionalProperties": false
674
+ },
675
+ "embedded_at": {
676
+ "type": "string",
677
+ "format": "date-time"
678
+ }
679
+ },
680
+ "required": [
681
+ "method",
682
+ "provider"
683
+ ]
684
+ }
685
+ },
686
+ "watermarks": {
687
+ "type": "array",
688
+ "minItems": 1,
689
+ "items": {
690
+ "type": "object",
691
+ "properties": {
692
+ "media_type": {
693
+ "$ref": "#/$defs/external:enums~1watermark-media-type.json"
694
+ },
695
+ "provider": {
696
+ "type": "string"
697
+ },
698
+ "verify_agent": {
699
+ "type": "object",
700
+ "properties": {
701
+ "agent_url": {
702
+ "type": "string",
703
+ "format": "uri",
704
+ "pattern": "^https://"
705
+ },
706
+ "feature_id": {
707
+ "type": "string"
708
+ }
709
+ },
710
+ "required": [
711
+ "agent_url"
712
+ ],
713
+ "additionalProperties": false
714
+ },
715
+ "c2pa_action": {
716
+ "$ref": "#/$defs/external:enums~1c2pa-watermark-action.json"
717
+ },
718
+ "embedded_at": {
719
+ "type": "string",
720
+ "format": "date-time"
721
+ }
722
+ },
723
+ "required": [
724
+ "media_type",
725
+ "provider"
726
+ ]
727
+ }
728
+ },
729
+ "disclosure": {
730
+ "type": "object",
731
+ "properties": {
732
+ "required": {
733
+ "type": "boolean"
734
+ },
735
+ "jurisdictions": {
736
+ "type": "array",
737
+ "items": {
738
+ "type": "object",
739
+ "properties": {
740
+ "country": {
741
+ "type": "string"
742
+ },
743
+ "region": {
744
+ "type": "string"
745
+ },
746
+ "regulation": {
747
+ "type": "string"
748
+ },
749
+ "label_text": {
750
+ "type": "string"
751
+ },
752
+ "render_guidance": {
753
+ "type": "object",
754
+ "minProperties": 1,
755
+ "properties": {
756
+ "persistence": {
757
+ "$ref": "#/$defs/external:enums~1disclosure-persistence.json"
758
+ },
759
+ "min_duration_ms": {
760
+ "type": "integer",
761
+ "minimum": 1
762
+ },
763
+ "positions": {
764
+ "type": "array",
765
+ "items": {
766
+ "$ref": "#/$defs/external:enums~1disclosure-position.json"
767
+ },
768
+ "minItems": 1,
769
+ "uniqueItems": true
770
+ },
771
+ "ext": {
772
+ "$ref": "#/$defs/external:core~1ext.json"
773
+ }
774
+ }
775
+ }
776
+ },
777
+ "required": [
778
+ "country",
779
+ "regulation"
780
+ ]
781
+ },
782
+ "minItems": 1
783
+ }
784
+ },
785
+ "required": [
786
+ "required"
787
+ ]
788
+ },
789
+ "verification": {
790
+ "type": "array",
791
+ "minItems": 1,
792
+ "items": {
793
+ "type": "object",
794
+ "properties": {
795
+ "verified_by": {
796
+ "type": "string"
797
+ },
798
+ "verified_time": {
799
+ "type": "string",
800
+ "format": "date-time"
801
+ },
802
+ "result": {
803
+ "type": "string",
804
+ "enum": [
805
+ "authentic",
806
+ "ai_generated",
807
+ "ai_modified",
808
+ "inconclusive"
809
+ ]
810
+ },
811
+ "confidence": {
812
+ "type": "number",
813
+ "minimum": 0,
814
+ "maximum": 1
815
+ },
816
+ "details_url": {
817
+ "type": "string",
818
+ "format": "uri"
819
+ }
820
+ },
821
+ "required": [
822
+ "verified_by",
823
+ "result"
824
+ ]
825
+ }
826
+ },
827
+ "ext": {
828
+ "$ref": "#/$defs/external:core~1ext.json"
829
+ }
830
+ }
831
+ },
832
+ "external:enums/digital-source-type.json": {
833
+ "type": "string",
834
+ "enum": [
835
+ "digital_capture",
836
+ "digital_creation",
837
+ "trained_algorithmic_media",
838
+ "composite_with_trained_algorithmic_media",
839
+ "algorithmic_media",
840
+ "composite_capture",
841
+ "composite_synthetic",
842
+ "human_edits",
843
+ "data_driven_media"
844
+ ]
845
+ },
846
+ "external:enums/embedded-provenance-method.json": {
847
+ "type": "string",
848
+ "enum": [
849
+ "manifest_wrapper",
850
+ "provenance_markers"
851
+ ]
852
+ },
853
+ "external:enums/watermark-media-type.json": {
854
+ "type": "string",
855
+ "enum": [
856
+ "audio",
857
+ "image",
858
+ "video",
859
+ "text"
860
+ ]
861
+ },
862
+ "external:enums/c2pa-watermark-action.json": {
863
+ "type": "string",
864
+ "enum": [
865
+ "c2pa.watermarked.bound",
866
+ "c2pa.watermarked.unbound"
867
+ ]
868
+ },
869
+ "external:enums/disclosure-persistence.json": {
870
+ "type": "string",
871
+ "enum": [
872
+ "continuous",
873
+ "initial",
874
+ "flexible"
875
+ ]
876
+ },
877
+ "external:enums/disclosure-position.json": {
878
+ "type": "string",
879
+ "enum": [
880
+ "prominent",
881
+ "footer",
882
+ "audio",
883
+ "subtitle",
884
+ "overlay",
885
+ "end_card",
886
+ "pre_roll",
887
+ "companion"
888
+ ]
889
+ },
890
+ "external:core/ext.json": {
891
+ "type": "object",
892
+ "additionalProperties": true
893
+ },
894
+ "external:core/operator-unit.json": {
895
+ "x-entity": "operator_unit",
896
+ "type": "object",
897
+ "properties": {
898
+ "id": {
899
+ "type": "string",
900
+ "minLength": 1,
901
+ "maxLength": 255,
902
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:/-]*$"
903
+ },
904
+ "name": {
905
+ "type": "string",
906
+ "minLength": 1,
907
+ "maxLength": 200
908
+ }
909
+ },
910
+ "required": [
911
+ "id"
912
+ ],
913
+ "additionalProperties": false
914
+ },
915
+ "external:core/creative-asset.json": {
916
+ "type": "object",
917
+ "properties": {
918
+ "creative_id": {
919
+ "type": "string",
920
+ "x-entity": "creative"
921
+ },
922
+ "name": {
923
+ "type": "string"
924
+ },
925
+ "format_id": {
926
+ "$ref": "#/$defs/external:core~1format-id.json",
927
+ "deprecated": true
928
+ },
929
+ "format_kind": {
930
+ "$ref": "#/$defs/external:core~1canonical-format-kind.json"
931
+ },
932
+ "format_option_ref": {
933
+ "$ref": "#/$defs/external:core~1format-option-ref.json"
934
+ },
935
+ "assets": {
936
+ "type": "object",
937
+ "patternProperties": {
938
+ "^[a-z0-9_]+$": {
939
+ "oneOf": [
940
+ {
941
+ "$ref": "#/$defs/external:core~1assets~1asset-union.json"
942
+ },
943
+ {
944
+ "type": "array",
945
+ "items": {
946
+ "$ref": "#/$defs/external:core~1assets~1asset-union.json"
947
+ },
948
+ "minItems": 1
949
+ }
950
+ ]
951
+ }
952
+ },
953
+ "additionalProperties": true
954
+ },
955
+ "inputs": {
956
+ "type": "array",
957
+ "items": {
958
+ "type": "object",
959
+ "properties": {
960
+ "name": {
961
+ "type": "string"
962
+ },
963
+ "macros": {
964
+ "type": "object",
965
+ "additionalProperties": {
966
+ "type": "string"
967
+ }
968
+ },
969
+ "context_description": {
970
+ "type": "string"
971
+ }
972
+ },
973
+ "required": [
974
+ "name"
975
+ ],
976
+ "additionalProperties": true
977
+ }
978
+ },
979
+ "tags": {
980
+ "type": "array",
981
+ "items": {
982
+ "type": "string"
983
+ }
984
+ },
985
+ "status": {
986
+ "$ref": "#/$defs/external:enums~1creative-status.json"
987
+ },
988
+ "weight": {
989
+ "type": "number",
990
+ "minimum": 0,
991
+ "maximum": 100
992
+ },
993
+ "placement_refs": {
994
+ "type": "array",
995
+ "items": {
996
+ "$ref": "#/$defs/external:core~1placement-ref.json"
997
+ },
998
+ "minItems": 1
999
+ },
1000
+ "placement_ids": {
1001
+ "type": "array",
1002
+ "deprecated": true,
1003
+ "items": {
1004
+ "type": "string"
1005
+ },
1006
+ "minItems": 1
1007
+ },
1008
+ "industry_identifiers": {
1009
+ "type": "array",
1010
+ "items": {
1011
+ "$ref": "#/$defs/external:core~1industry-identifier.json"
1012
+ },
1013
+ "uniqueItems": true
1014
+ },
1015
+ "provenance": {
1016
+ "$ref": "#/$defs/external:core~1provenance.json"
1017
+ },
1018
+ "rights": {
1019
+ "type": "array",
1020
+ "items": {
1021
+ "$ref": "#/$defs/external:core~1rights-constraint.json"
1022
+ },
1023
+ "minItems": 1
1024
+ }
1025
+ },
1026
+ "required": [
1027
+ "creative_id",
1028
+ "name",
1029
+ "assets"
1030
+ ],
1031
+ "not": {
1032
+ "anyOf": [
1033
+ {
1034
+ "required": [
1035
+ "capability_id"
1036
+ ]
1037
+ },
1038
+ {
1039
+ "required": [
1040
+ "capability_ref"
1041
+ ]
1042
+ }
1043
+ ]
1044
+ },
1045
+ "oneOf": [
1046
+ {
1047
+ "deprecated": true,
1048
+ "required": [
1049
+ "format_id"
1050
+ ],
1051
+ "not": {
1052
+ "required": [
1053
+ "format_kind"
1054
+ ]
1055
+ }
1056
+ },
1057
+ {
1058
+ "required": [
1059
+ "format_kind"
1060
+ ],
1061
+ "not": {
1062
+ "required": [
1063
+ "format_id"
1064
+ ]
1065
+ }
1066
+ }
1067
+ ],
1068
+ "additionalProperties": true
1069
+ },
1070
+ "external:core/format-id.json": {
1071
+ "deprecated": true,
1072
+ "x-entity": "creative_format",
1073
+ "type": "object",
1074
+ "properties": {
1075
+ "agent_url": {
1076
+ "type": "string",
1077
+ "format": "uri"
1078
+ },
1079
+ "id": {
1080
+ "type": "string",
1081
+ "pattern": "^[a-zA-Z0-9_-]+$"
1082
+ },
1083
+ "width": {
1084
+ "type": "integer",
1085
+ "minimum": 1
1086
+ },
1087
+ "height": {
1088
+ "type": "integer",
1089
+ "minimum": 1
1090
+ },
1091
+ "duration_ms": {
1092
+ "type": "number",
1093
+ "minimum": 1
1094
+ },
1095
+ "pixel_ratio": {
1096
+ "type": "number",
1097
+ "exclusiveMinimum": 0
1098
+ }
1099
+ },
1100
+ "required": [
1101
+ "agent_url",
1102
+ "id"
1103
+ ],
1104
+ "additionalProperties": true,
1105
+ "dependentRequired": {
1106
+ "width": [
1107
+ "height"
1108
+ ],
1109
+ "height": [
1110
+ "width"
1111
+ ],
1112
+ "pixel_ratio": [
1113
+ "width",
1114
+ "height"
1115
+ ]
1116
+ }
1117
+ },
1118
+ "external:core/canonical-format-kind.json": {
1119
+ "type": "string",
1120
+ "enum": [
1121
+ "image",
1122
+ "html5",
1123
+ "display_tag",
1124
+ "image_carousel",
1125
+ "video_hosted",
1126
+ "video_vast",
1127
+ "audio_hosted",
1128
+ "audio_daast",
1129
+ "sponsored_placement",
1130
+ "native_in_feed",
1131
+ "responsive_creative",
1132
+ "agent_placement",
1133
+ "custom"
1134
+ ]
1135
+ },
1136
+ "external:core/format-option-ref.json": {
1137
+ "type": "object",
1138
+ "discriminator": {
1139
+ "propertyName": "scope"
1140
+ },
1141
+ "oneOf": [
1142
+ {
1143
+ "type": "object",
1144
+ "properties": {
1145
+ "scope": {
1146
+ "type": "string",
1147
+ "const": "publisher"
1148
+ },
1149
+ "publisher_domain": {
1150
+ "type": "string",
1151
+ "pattern": "^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$"
1152
+ },
1153
+ "format_option_id": {
1154
+ "type": "string"
1155
+ }
1156
+ },
1157
+ "required": [
1158
+ "scope",
1159
+ "publisher_domain",
1160
+ "format_option_id"
1161
+ ],
1162
+ "additionalProperties": true
1163
+ },
1164
+ {
1165
+ "type": "object",
1166
+ "properties": {
1167
+ "scope": {
1168
+ "type": "string",
1169
+ "const": "product"
1170
+ },
1171
+ "format_option_id": {
1172
+ "type": "string"
1173
+ },
1174
+ "publisher_domain": false
1175
+ },
1176
+ "required": [
1177
+ "scope",
1178
+ "format_option_id"
1179
+ ],
1180
+ "additionalProperties": true
1181
+ }
1182
+ ],
1183
+ "additionalProperties": true
1184
+ },
1185
+ "external:core/assets/asset-union.json": {
1186
+ "type": "object",
1187
+ "oneOf": [
1188
+ {
1189
+ "$ref": "#/$defs/external:core~1assets~1image-asset.json"
1190
+ },
1191
+ {
1192
+ "$ref": "#/$defs/external:core~1assets~1video-asset.json"
1193
+ },
1194
+ {
1195
+ "$ref": "#/$defs/external:core~1assets~1audio-asset.json"
1196
+ },
1197
+ {
1198
+ "$ref": "#/$defs/external:core~1assets~1vast-asset.json"
1199
+ },
1200
+ {
1201
+ "$ref": "#/$defs/external:core~1assets~1text-asset.json"
1202
+ },
1203
+ {
1204
+ "$ref": "#/$defs/external:core~1assets~1url-asset.json"
1205
+ },
1206
+ {
1207
+ "$ref": "#/$defs/external:core~1assets~1html-asset.json"
1208
+ },
1209
+ {
1210
+ "$ref": "#/$defs/external:core~1assets~1javascript-asset.json"
1211
+ },
1212
+ {
1213
+ "$ref": "#/$defs/external:core~1assets~1zip-asset.json"
1214
+ },
1215
+ {
1216
+ "$ref": "#/$defs/external:core~1assets~1webhook-asset.json"
1217
+ },
1218
+ {
1219
+ "$ref": "#/$defs/external:core~1assets~1css-asset.json"
1220
+ },
1221
+ {
1222
+ "$ref": "#/$defs/external:core~1assets~1daast-asset.json"
1223
+ },
1224
+ {
1225
+ "$ref": "#/$defs/external:core~1assets~1markdown-asset.json"
1226
+ },
1227
+ {
1228
+ "$ref": "#/$defs/external:core~1assets~1brief-asset.json"
1229
+ },
1230
+ {
1231
+ "$ref": "#/$defs/external:core~1assets~1catalog-asset.json"
1232
+ },
1233
+ {
1234
+ "$ref": "#/$defs/external:core~1assets~1published-post-asset.json"
1235
+ },
1236
+ {
1237
+ "$ref": "#/$defs/external:core~1assets~1card-asset.json"
1238
+ },
1239
+ {
1240
+ "$ref": "#/$defs/external:core~1assets~1pixel-tracker-asset.json"
1241
+ },
1242
+ {
1243
+ "$ref": "#/$defs/external:core~1assets~1vast-tracker-asset.json"
1244
+ },
1245
+ {
1246
+ "$ref": "#/$defs/external:core~1assets~1daast-tracker-asset.json"
1247
+ }
1248
+ ],
1249
+ "discriminator": {
1250
+ "propertyName": "asset_type"
1251
+ }
1252
+ },
1253
+ "external:core/assets/video-asset.json": {
1254
+ "type": "object",
1255
+ "properties": {
1256
+ "asset_type": {
1257
+ "type": "string",
1258
+ "const": "video"
1259
+ },
1260
+ "url": {
1261
+ "type": "string",
1262
+ "format": "uri"
1263
+ },
1264
+ "width": {
1265
+ "type": "integer",
1266
+ "minimum": 1
1267
+ },
1268
+ "height": {
1269
+ "type": "integer",
1270
+ "minimum": 1
1271
+ },
1272
+ "duration_ms": {
1273
+ "type": "integer",
1274
+ "minimum": 1
1275
+ },
1276
+ "file_size_bytes": {
1277
+ "type": "integer",
1278
+ "minimum": 1
1279
+ },
1280
+ "container_format": {
1281
+ "type": "string"
1282
+ },
1283
+ "video_codec": {
1284
+ "type": "string"
1285
+ },
1286
+ "video_bitrate_kbps": {
1287
+ "type": "integer",
1288
+ "minimum": 1
1289
+ },
1290
+ "frame_rate": {
1291
+ "type": "string"
1292
+ },
1293
+ "frame_rate_type": {
1294
+ "$ref": "#/$defs/external:enums~1frame-rate-type.json"
1295
+ },
1296
+ "scan_type": {
1297
+ "$ref": "#/$defs/external:enums~1scan-type.json"
1298
+ },
1299
+ "color_space": {
1300
+ "type": "string",
1301
+ "enum": [
1302
+ "rec709",
1303
+ "rec2020",
1304
+ "rec2100",
1305
+ "srgb",
1306
+ "dci_p3"
1307
+ ]
1308
+ },
1309
+ "hdr_format": {
1310
+ "type": "string",
1311
+ "enum": [
1312
+ "sdr",
1313
+ "hdr10",
1314
+ "hdr10_plus",
1315
+ "hlg",
1316
+ "dolby_vision"
1317
+ ]
1318
+ },
1319
+ "chroma_subsampling": {
1320
+ "type": "string",
1321
+ "enum": [
1322
+ "4:2:0",
1323
+ "4:2:2",
1324
+ "4:4:4"
1325
+ ]
1326
+ },
1327
+ "video_bit_depth": {
1328
+ "type": "integer",
1329
+ "enum": [
1330
+ 8,
1331
+ 10,
1332
+ 12
1333
+ ]
1334
+ },
1335
+ "gop_interval_seconds": {
1336
+ "type": "number"
1337
+ },
1338
+ "gop_type": {
1339
+ "$ref": "#/$defs/external:enums~1gop-type.json"
1340
+ },
1341
+ "moov_atom_position": {
1342
+ "$ref": "#/$defs/external:enums~1moov-atom-position.json"
1343
+ },
1344
+ "has_audio": {
1345
+ "type": "boolean"
1346
+ },
1347
+ "audio_codec": {
1348
+ "type": "string"
1349
+ },
1350
+ "audio_sampling_rate_hz": {
1351
+ "type": "integer"
1352
+ },
1353
+ "audio_channels": {
1354
+ "$ref": "#/$defs/external:enums~1audio-channel-layout.json"
1355
+ },
1356
+ "audio_bit_depth": {
1357
+ "type": "integer",
1358
+ "enum": [
1359
+ 16,
1360
+ 24,
1361
+ 32
1362
+ ]
1363
+ },
1364
+ "audio_bitrate_kbps": {
1365
+ "type": "integer",
1366
+ "minimum": 1
1367
+ },
1368
+ "audio_loudness_lufs": {
1369
+ "type": "number"
1370
+ },
1371
+ "audio_true_peak_dbfs": {
1372
+ "type": "number"
1373
+ },
1374
+ "captions_url": {
1375
+ "type": "string",
1376
+ "format": "uri",
1377
+ "x-accessibility": true
1378
+ },
1379
+ "transcript_url": {
1380
+ "type": "string",
1381
+ "format": "uri",
1382
+ "x-accessibility": true
1383
+ },
1384
+ "audio_description_url": {
1385
+ "type": "string",
1386
+ "format": "uri",
1387
+ "x-accessibility": true
1388
+ },
1389
+ "provenance": {
1390
+ "$ref": "#/$defs/external:core~1provenance.json"
1391
+ }
1392
+ },
1393
+ "required": [
1394
+ "asset_type",
1395
+ "url",
1396
+ "width",
1397
+ "height"
1398
+ ],
1399
+ "additionalProperties": true
1400
+ },
1401
+ "external:enums/frame-rate-type.json": {
1402
+ "type": "string",
1403
+ "enum": [
1404
+ "constant",
1405
+ "variable"
1406
+ ]
1407
+ },
1408
+ "external:enums/scan-type.json": {
1409
+ "type": "string",
1410
+ "enum": [
1411
+ "progressive",
1412
+ "interlaced"
1413
+ ]
1414
+ },
1415
+ "external:enums/gop-type.json": {
1416
+ "type": "string",
1417
+ "enum": [
1418
+ "closed",
1419
+ "open"
1420
+ ]
1421
+ },
1422
+ "external:enums/moov-atom-position.json": {
1423
+ "type": "string",
1424
+ "enum": [
1425
+ "start",
1426
+ "end"
1427
+ ]
1428
+ },
1429
+ "external:enums/audio-channel-layout.json": {
1430
+ "type": "string",
1431
+ "enum": [
1432
+ "mono",
1433
+ "stereo",
1434
+ "5.1",
1435
+ "7.1"
1436
+ ]
1437
+ },
1438
+ "external:core/assets/audio-asset.json": {
1439
+ "type": "object",
1440
+ "properties": {
1441
+ "asset_type": {
1442
+ "type": "string",
1443
+ "const": "audio"
1444
+ },
1445
+ "url": {
1446
+ "type": "string",
1447
+ "format": "uri"
1448
+ },
1449
+ "duration_ms": {
1450
+ "type": "integer",
1451
+ "minimum": 0
1452
+ },
1453
+ "file_size_bytes": {
1454
+ "type": "integer",
1455
+ "minimum": 1
1456
+ },
1457
+ "container_format": {
1458
+ "type": "string"
1459
+ },
1460
+ "codec": {
1461
+ "type": "string"
1462
+ },
1463
+ "sampling_rate_hz": {
1464
+ "type": "integer"
1465
+ },
1466
+ "channels": {
1467
+ "$ref": "#/$defs/external:enums~1audio-channel-layout.json"
1468
+ },
1469
+ "bit_depth": {
1470
+ "type": "integer",
1471
+ "enum": [
1472
+ 16,
1473
+ 24,
1474
+ 32
1475
+ ]
1476
+ },
1477
+ "bitrate_kbps": {
1478
+ "type": "integer",
1479
+ "minimum": 1
1480
+ },
1481
+ "loudness_lufs": {
1482
+ "type": "number"
1483
+ },
1484
+ "true_peak_dbfs": {
1485
+ "type": "number"
1486
+ },
1487
+ "transcript_url": {
1488
+ "type": "string",
1489
+ "format": "uri",
1490
+ "x-accessibility": true
1491
+ },
1492
+ "provenance": {
1493
+ "$ref": "#/$defs/external:core~1provenance.json"
1494
+ }
1495
+ },
1496
+ "required": [
1497
+ "asset_type",
1498
+ "url"
1499
+ ],
1500
+ "additionalProperties": true
1501
+ },
1502
+ "external:core/assets/vast-asset.json": {
1503
+ "type": "object",
1504
+ "properties": {
1505
+ "asset_type": {
1506
+ "type": "string",
1507
+ "const": "vast"
1508
+ },
1509
+ "vast_version": {
1510
+ "$ref": "#/$defs/external:enums~1vast-version.json"
1511
+ },
1512
+ "vpaid_enabled": {
1513
+ "type": "boolean"
1514
+ },
1515
+ "duration_ms": {
1516
+ "type": "integer",
1517
+ "minimum": 0
1518
+ },
1519
+ "tracking_events": {
1520
+ "type": "array",
1521
+ "items": {
1522
+ "$ref": "#/$defs/external:enums~1vast-tracking-event.json"
1523
+ }
1524
+ },
1525
+ "captions_url": {
1526
+ "type": "string",
1527
+ "format": "uri",
1528
+ "x-accessibility": true
1529
+ },
1530
+ "audio_description_url": {
1531
+ "type": "string",
1532
+ "format": "uri",
1533
+ "x-accessibility": true
1534
+ },
1535
+ "provenance": {
1536
+ "$ref": "#/$defs/external:core~1provenance.json"
1537
+ }
1538
+ },
1539
+ "required": [
1540
+ "asset_type"
1541
+ ],
1542
+ "oneOf": [
1543
+ {
1544
+ "properties": {
1545
+ "delivery_type": {
1546
+ "type": "string",
1547
+ "const": "url"
1548
+ },
1549
+ "url": {
1550
+ "type": "string",
1551
+ "format": "uri-template"
1552
+ }
1553
+ },
1554
+ "required": [
1555
+ "delivery_type",
1556
+ "url"
1557
+ ]
1558
+ },
1559
+ {
1560
+ "properties": {
1561
+ "delivery_type": {
1562
+ "type": "string",
1563
+ "const": "inline"
1564
+ },
1565
+ "content": {
1566
+ "type": "string"
1567
+ }
1568
+ },
1569
+ "required": [
1570
+ "delivery_type",
1571
+ "content"
1572
+ ]
1573
+ }
1574
+ ],
1575
+ "discriminator": {
1576
+ "propertyName": "delivery_type"
1577
+ },
1578
+ "additionalProperties": true
1579
+ },
1580
+ "external:enums/vast-version.json": {
1581
+ "type": "string",
1582
+ "enum": [
1583
+ "2.0",
1584
+ "3.0",
1585
+ "4.0",
1586
+ "4.1",
1587
+ "4.2",
1588
+ "4.3"
1589
+ ]
1590
+ },
1591
+ "external:enums/vast-tracking-event.json": {
1592
+ "type": "string",
1593
+ "enum": [
1594
+ "impression",
1595
+ "creativeView",
1596
+ "loaded",
1597
+ "start",
1598
+ "firstQuartile",
1599
+ "midpoint",
1600
+ "thirdQuartile",
1601
+ "complete",
1602
+ "mute",
1603
+ "unmute",
1604
+ "pause",
1605
+ "resume",
1606
+ "rewind",
1607
+ "skip",
1608
+ "playerExpand",
1609
+ "playerCollapse",
1610
+ "fullscreen",
1611
+ "exitFullscreen",
1612
+ "progress",
1613
+ "acceptInvitation",
1614
+ "adExpand",
1615
+ "adCollapse",
1616
+ "minimize",
1617
+ "overlayViewDuration",
1618
+ "otherAdInteraction",
1619
+ "interactiveStart",
1620
+ "clickTracking",
1621
+ "customClick",
1622
+ "close",
1623
+ "closeLinear",
1624
+ "error",
1625
+ "viewable",
1626
+ "notViewable",
1627
+ "viewUndetermined",
1628
+ "measurableImpression",
1629
+ "viewableImpression"
1630
+ ]
1631
+ },
1632
+ "external:core/assets/text-asset.json": {
1633
+ "type": "object",
1634
+ "properties": {
1635
+ "asset_type": {
1636
+ "type": "string",
1637
+ "const": "text"
1638
+ },
1639
+ "content": {
1640
+ "type": "string"
1641
+ },
1642
+ "language": {
1643
+ "type": "string"
1644
+ },
1645
+ "provenance": {
1646
+ "$ref": "#/$defs/external:core~1provenance.json"
1647
+ }
1648
+ },
1649
+ "required": [
1650
+ "asset_type",
1651
+ "content"
1652
+ ],
1653
+ "additionalProperties": true
1654
+ },
1655
+ "external:core/assets/url-asset.json": {
1656
+ "type": "object",
1657
+ "properties": {
1658
+ "asset_type": {
1659
+ "type": "string",
1660
+ "const": "url"
1661
+ },
1662
+ "url": {
1663
+ "type": "string",
1664
+ "format": "uri-template"
1665
+ },
1666
+ "url_type": {
1667
+ "$ref": "#/$defs/external:enums~1url-asset-type.json"
1668
+ },
1669
+ "description": {
1670
+ "type": "string"
1671
+ },
1672
+ "provenance": {
1673
+ "$ref": "#/$defs/external:core~1provenance.json"
1674
+ }
1675
+ },
1676
+ "required": [
1677
+ "asset_type",
1678
+ "url"
1679
+ ],
1680
+ "additionalProperties": true
1681
+ },
1682
+ "external:enums/url-asset-type.json": {
1683
+ "type": "string",
1684
+ "enum": [
1685
+ "clickthrough",
1686
+ "tracker_pixel",
1687
+ "tracker_script"
1688
+ ]
1689
+ },
1690
+ "external:core/assets/html-asset.json": {
1691
+ "type": "object",
1692
+ "properties": {
1693
+ "asset_type": {
1694
+ "type": "string",
1695
+ "const": "html"
1696
+ },
1697
+ "content": {
1698
+ "type": "string"
1699
+ },
1700
+ "version": {
1701
+ "type": "string"
1702
+ },
1703
+ "accessibility": {
1704
+ "type": "object",
1705
+ "x-accessibility": true,
1706
+ "properties": {
1707
+ "alt_text": {
1708
+ "type": "string"
1709
+ },
1710
+ "keyboard_navigable": {
1711
+ "type": "boolean"
1712
+ },
1713
+ "motion_control": {
1714
+ "type": "boolean"
1715
+ },
1716
+ "screen_reader_tested": {
1717
+ "type": "boolean"
1718
+ }
1719
+ }
1720
+ },
1721
+ "provenance": {
1722
+ "$ref": "#/$defs/external:core~1provenance.json"
1723
+ }
1724
+ },
1725
+ "required": [
1726
+ "asset_type",
1727
+ "content"
1728
+ ],
1729
+ "additionalProperties": true
1730
+ },
1731
+ "external:core/assets/javascript-asset.json": {
1732
+ "type": "object",
1733
+ "properties": {
1734
+ "asset_type": {
1735
+ "type": "string",
1736
+ "const": "javascript"
1737
+ },
1738
+ "content": {
1739
+ "type": "string"
1740
+ },
1741
+ "module_type": {
1742
+ "$ref": "#/$defs/external:enums~1javascript-module-type.json"
1743
+ },
1744
+ "accessibility": {
1745
+ "type": "object",
1746
+ "x-accessibility": true,
1747
+ "properties": {
1748
+ "alt_text": {
1749
+ "type": "string"
1750
+ },
1751
+ "keyboard_navigable": {
1752
+ "type": "boolean"
1753
+ },
1754
+ "motion_control": {
1755
+ "type": "boolean"
1756
+ },
1757
+ "screen_reader_tested": {
1758
+ "type": "boolean"
1759
+ }
1760
+ }
1761
+ },
1762
+ "provenance": {
1763
+ "$ref": "#/$defs/external:core~1provenance.json"
1764
+ }
1765
+ },
1766
+ "required": [
1767
+ "asset_type",
1768
+ "content"
1769
+ ],
1770
+ "additionalProperties": true
1771
+ },
1772
+ "external:enums/javascript-module-type.json": {
1773
+ "type": "string",
1774
+ "enum": [
1775
+ "esm",
1776
+ "commonjs",
1777
+ "script"
1778
+ ]
1779
+ },
1780
+ "external:core/assets/zip-asset.json": {
1781
+ "type": "object",
1782
+ "properties": {
1783
+ "asset_type": {
1784
+ "type": "string",
1785
+ "const": "zip"
1786
+ },
1787
+ "url": {
1788
+ "type": "string",
1789
+ "format": "uri"
1790
+ },
1791
+ "max_file_size_kb": {
1792
+ "type": "integer",
1793
+ "minimum": 0
1794
+ },
1795
+ "entry_point": {
1796
+ "type": "string"
1797
+ },
1798
+ "allowed_inner_extensions": {
1799
+ "type": "array",
1800
+ "items": {
1801
+ "type": "string"
1802
+ }
1803
+ },
1804
+ "backup_image_url": {
1805
+ "type": "string",
1806
+ "format": "uri"
1807
+ },
1808
+ "digest": {
1809
+ "type": "string",
1810
+ "pattern": "^sha256:[a-f0-9]{64}$"
1811
+ },
1812
+ "accessibility": {
1813
+ "type": "object",
1814
+ "x-accessibility": true,
1815
+ "properties": {
1816
+ "alt_text": {
1817
+ "type": "string"
1818
+ },
1819
+ "keyboard_navigable": {
1820
+ "type": "boolean"
1821
+ },
1822
+ "motion_control": {
1823
+ "type": "boolean"
1824
+ },
1825
+ "screen_reader_tested": {
1826
+ "type": "boolean"
1827
+ }
1828
+ }
1829
+ },
1830
+ "provenance": {
1831
+ "$ref": "#/$defs/external:core~1provenance.json"
1832
+ }
1833
+ },
1834
+ "required": [
1835
+ "asset_type",
1836
+ "url"
1837
+ ],
1838
+ "additionalProperties": true
1839
+ },
1840
+ "external:core/assets/webhook-asset.json": {
1841
+ "type": "object",
1842
+ "properties": {
1843
+ "asset_type": {
1844
+ "type": "string",
1845
+ "const": "webhook"
1846
+ },
1847
+ "url": {
1848
+ "type": "string",
1849
+ "format": "uri"
1850
+ },
1851
+ "method": {
1852
+ "$ref": "#/$defs/external:enums~1http-method.json",
1853
+ "default": "POST"
1854
+ },
1855
+ "timeout_ms": {
1856
+ "type": "integer",
1857
+ "minimum": 10,
1858
+ "maximum": 5000,
1859
+ "default": 500
1860
+ },
1861
+ "supported_macros": {
1862
+ "type": "array",
1863
+ "items": {
1864
+ "anyOf": [
1865
+ {
1866
+ "$ref": "#/$defs/external:enums~1universal-macro.json"
1867
+ },
1868
+ {
1869
+ "type": "string"
1870
+ }
1871
+ ]
1872
+ }
1873
+ },
1874
+ "required_macros": {
1875
+ "type": "array",
1876
+ "items": {
1877
+ "anyOf": [
1878
+ {
1879
+ "$ref": "#/$defs/external:enums~1universal-macro.json"
1880
+ },
1881
+ {
1882
+ "type": "string"
1883
+ }
1884
+ ]
1885
+ }
1886
+ },
1887
+ "response_type": {
1888
+ "$ref": "#/$defs/external:enums~1webhook-response-type.json"
1889
+ },
1890
+ "security": {
1891
+ "type": "object",
1892
+ "properties": {
1893
+ "method": {
1894
+ "$ref": "#/$defs/external:enums~1webhook-security-method.json"
1895
+ },
1896
+ "hmac_header": {
1897
+ "type": "string"
1898
+ },
1899
+ "api_key_header": {
1900
+ "type": "string"
1901
+ }
1902
+ },
1903
+ "required": [
1904
+ "method"
1905
+ ]
1906
+ },
1907
+ "provenance": {
1908
+ "$ref": "#/$defs/external:core~1provenance.json"
1909
+ }
1910
+ },
1911
+ "required": [
1912
+ "asset_type",
1913
+ "url",
1914
+ "response_type",
1915
+ "security"
1916
+ ],
1917
+ "additionalProperties": true
1918
+ },
1919
+ "external:enums/http-method.json": {
1920
+ "type": "string",
1921
+ "enum": [
1922
+ "GET",
1923
+ "POST"
1924
+ ]
1925
+ },
1926
+ "external:enums/universal-macro.json": {
1927
+ "type": "string",
1928
+ "enum": [
1929
+ "MEDIA_BUY_ID",
1930
+ "PACKAGE_ID",
1931
+ "CREATIVE_ID",
1932
+ "CACHEBUSTER",
1933
+ "TIMESTAMP",
1934
+ "CLICK_URL",
1935
+ "GDPR",
1936
+ "GDPR_CONSENT",
1937
+ "US_PRIVACY",
1938
+ "GPP_STRING",
1939
+ "GPP_SID",
1940
+ "IP_ADDRESS",
1941
+ "LIMIT_AD_TRACKING",
1942
+ "DEVICE_TYPE",
1943
+ "OS",
1944
+ "OS_VERSION",
1945
+ "DEVICE_MAKE",
1946
+ "DEVICE_MODEL",
1947
+ "USER_AGENT",
1948
+ "APP_BUNDLE",
1949
+ "APP_NAME",
1950
+ "COUNTRY",
1951
+ "REGION",
1952
+ "CITY",
1953
+ "ZIP",
1954
+ "DMA",
1955
+ "LAT",
1956
+ "LONG",
1957
+ "DEVICE_ID",
1958
+ "DEVICE_ID_TYPE",
1959
+ "DOMAIN",
1960
+ "PAGE_URL",
1961
+ "REFERRER",
1962
+ "KEYWORDS",
1963
+ "PLACEMENT_ID",
1964
+ "FOLD_POSITION",
1965
+ "AD_WIDTH",
1966
+ "AD_HEIGHT",
1967
+ "VIDEO_ID",
1968
+ "VIDEO_TITLE",
1969
+ "VIDEO_DURATION",
1970
+ "VIDEO_CATEGORY",
1971
+ "CONTENT_GENRE",
1972
+ "CONTENT_RATING",
1973
+ "PLAYER_WIDTH",
1974
+ "PLAYER_HEIGHT",
1975
+ "POD_POSITION",
1976
+ "POD_SIZE",
1977
+ "AD_BREAK_ID",
1978
+ "STATION_ID",
1979
+ "COLLECTION_NAME",
1980
+ "INSTALLMENT_ID",
1981
+ "AUDIO_DURATION",
1982
+ "TMPX",
1983
+ "IMPRESSION_ID",
1984
+ "AXEM",
1985
+ "CATALOG_ID",
1986
+ "SKU",
1987
+ "GTIN",
1988
+ "OFFERING_ID",
1989
+ "JOB_ID",
1990
+ "HOTEL_ID",
1991
+ "FLIGHT_ID",
1992
+ "VEHICLE_ID",
1993
+ "LISTING_ID",
1994
+ "STORE_ID",
1995
+ "PROGRAM_ID",
1996
+ "DESTINATION_ID",
1997
+ "CREATIVE_VARIANT_ID",
1998
+ "APP_ITEM_ID",
1999
+ "ITEM_NAME",
2000
+ "ITEM_DESCRIPTION",
2001
+ "ITEM_TAGLINE",
2002
+ "ITEM_PRICE",
2003
+ "ITEM_PRICE_CURRENCY"
2004
+ ]
2005
+ },
2006
+ "external:enums/webhook-response-type.json": {
2007
+ "type": "string",
2008
+ "enum": [
2009
+ "html",
2010
+ "json",
2011
+ "xml",
2012
+ "javascript"
2013
+ ]
2014
+ },
2015
+ "external:enums/webhook-security-method.json": {
2016
+ "type": "string",
2017
+ "enum": [
2018
+ "hmac_sha256",
2019
+ "api_key",
2020
+ "none"
2021
+ ]
2022
+ },
2023
+ "external:core/assets/css-asset.json": {
2024
+ "type": "object",
2025
+ "properties": {
2026
+ "asset_type": {
2027
+ "type": "string",
2028
+ "const": "css"
2029
+ },
2030
+ "content": {
2031
+ "type": "string"
2032
+ },
2033
+ "media": {
2034
+ "type": "string"
2035
+ },
2036
+ "provenance": {
2037
+ "$ref": "#/$defs/external:core~1provenance.json"
2038
+ }
2039
+ },
2040
+ "required": [
2041
+ "asset_type",
2042
+ "content"
2043
+ ],
2044
+ "additionalProperties": true
2045
+ },
2046
+ "external:core/assets/daast-asset.json": {
2047
+ "type": "object",
2048
+ "properties": {
2049
+ "asset_type": {
2050
+ "type": "string",
2051
+ "const": "daast"
2052
+ },
2053
+ "daast_version": {
2054
+ "$ref": "#/$defs/external:enums~1daast-version.json"
2055
+ },
2056
+ "duration_ms": {
2057
+ "type": "integer",
2058
+ "minimum": 0
2059
+ },
2060
+ "tracking_events": {
2061
+ "type": "array",
2062
+ "items": {
2063
+ "$ref": "#/$defs/external:enums~1daast-tracking-event.json"
2064
+ }
2065
+ },
2066
+ "companion_ads": {
2067
+ "type": "boolean"
2068
+ },
2069
+ "transcript_url": {
2070
+ "type": "string",
2071
+ "format": "uri",
2072
+ "x-accessibility": true
2073
+ },
2074
+ "provenance": {
2075
+ "$ref": "#/$defs/external:core~1provenance.json"
2076
+ }
2077
+ },
2078
+ "required": [
2079
+ "asset_type"
2080
+ ],
2081
+ "oneOf": [
2082
+ {
2083
+ "properties": {
2084
+ "delivery_type": {
2085
+ "type": "string",
2086
+ "const": "url"
2087
+ },
2088
+ "url": {
2089
+ "type": "string",
2090
+ "format": "uri-template"
2091
+ }
2092
+ },
2093
+ "required": [
2094
+ "delivery_type",
2095
+ "url"
2096
+ ]
2097
+ },
2098
+ {
2099
+ "properties": {
2100
+ "delivery_type": {
2101
+ "type": "string",
2102
+ "const": "inline"
2103
+ },
2104
+ "content": {
2105
+ "type": "string"
2106
+ }
2107
+ },
2108
+ "required": [
2109
+ "delivery_type",
2110
+ "content"
2111
+ ]
2112
+ }
2113
+ ],
2114
+ "discriminator": {
2115
+ "propertyName": "delivery_type"
2116
+ },
2117
+ "additionalProperties": true
2118
+ },
2119
+ "external:enums/daast-version.json": {
2120
+ "type": "string",
2121
+ "enum": [
2122
+ "1.0",
2123
+ "1.1"
2124
+ ]
2125
+ },
2126
+ "external:enums/daast-tracking-event.json": {
2127
+ "type": "string",
2128
+ "enum": [
2129
+ "impression",
2130
+ "creativeView",
2131
+ "start",
2132
+ "firstQuartile",
2133
+ "midpoint",
2134
+ "thirdQuartile",
2135
+ "complete",
2136
+ "mute",
2137
+ "unmute",
2138
+ "pause",
2139
+ "resume",
2140
+ "rewind",
2141
+ "skip",
2142
+ "progress",
2143
+ "clickTracking",
2144
+ "customClick",
2145
+ "close",
2146
+ "error",
2147
+ "viewable",
2148
+ "notViewable",
2149
+ "viewUndetermined",
2150
+ "measurableImpression",
2151
+ "viewableImpression"
2152
+ ]
2153
+ },
2154
+ "external:core/assets/markdown-asset.json": {
2155
+ "type": "object",
2156
+ "properties": {
2157
+ "asset_type": {
2158
+ "type": "string",
2159
+ "const": "markdown"
2160
+ },
2161
+ "content": {
2162
+ "type": "string"
2163
+ },
2164
+ "language": {
2165
+ "type": "string"
2166
+ },
2167
+ "markdown_flavor": {
2168
+ "$ref": "#/$defs/external:enums~1markdown-flavor.json",
2169
+ "default": "commonmark"
2170
+ },
2171
+ "allow_raw_html": {
2172
+ "type": "boolean",
2173
+ "default": false
2174
+ }
2175
+ },
2176
+ "required": [
2177
+ "asset_type",
2178
+ "content"
2179
+ ],
2180
+ "additionalProperties": true
2181
+ },
2182
+ "external:enums/markdown-flavor.json": {
2183
+ "type": "string",
2184
+ "enum": [
2185
+ "commonmark",
2186
+ "gfm"
2187
+ ]
2188
+ },
2189
+ "external:core/assets/brief-asset.json": {
2190
+ "type": "object",
2191
+ "properties": {
2192
+ "asset_type": {
2193
+ "type": "string",
2194
+ "const": "brief"
2195
+ }
2196
+ },
2197
+ "required": [
2198
+ "asset_type"
2199
+ ],
2200
+ "allOf": [
2201
+ {
2202
+ "$ref": "#/$defs/external:core~1creative-brief.json"
2203
+ }
2204
+ ]
2205
+ },
2206
+ "external:core/creative-brief.json": {
2207
+ "type": "object",
2208
+ "properties": {
2209
+ "name": {
2210
+ "type": "string"
2211
+ },
2212
+ "objective": {
2213
+ "type": "string",
2214
+ "enum": [
2215
+ "awareness",
2216
+ "consideration",
2217
+ "conversion",
2218
+ "retention",
2219
+ "engagement"
2220
+ ]
2221
+ },
2222
+ "tone": {
2223
+ "type": "string"
2224
+ },
2225
+ "audience": {
2226
+ "type": "string"
2227
+ },
2228
+ "territory": {
2229
+ "type": "string"
2230
+ },
2231
+ "messaging": {
2232
+ "type": "object",
2233
+ "properties": {
2234
+ "headline": {
2235
+ "type": "string"
2236
+ },
2237
+ "tagline": {
2238
+ "type": "string"
2239
+ },
2240
+ "cta": {
2241
+ "type": "string"
2242
+ },
2243
+ "key_messages": {
2244
+ "type": "array",
2245
+ "items": {
2246
+ "type": "string"
2247
+ }
2248
+ }
2249
+ },
2250
+ "additionalProperties": true
2251
+ },
2252
+ "reference_assets": {
2253
+ "type": "array",
2254
+ "items": {
2255
+ "$ref": "#/$defs/external:core~1reference-asset.json"
2256
+ }
2257
+ },
2258
+ "compliance": {
2259
+ "type": "object",
2260
+ "properties": {
2261
+ "required_disclosures": {
2262
+ "type": "array",
2263
+ "items": {
2264
+ "type": "object",
2265
+ "properties": {
2266
+ "text": {
2267
+ "type": "string"
2268
+ },
2269
+ "position": {
2270
+ "$ref": "#/$defs/external:enums~1disclosure-position.json"
2271
+ },
2272
+ "jurisdictions": {
2273
+ "type": "array",
2274
+ "items": {
2275
+ "type": "string",
2276
+ "pattern": "^[A-Z]{2}(-[A-Z0-9]{1,3})?$"
2277
+ },
2278
+ "minItems": 1
2279
+ },
2280
+ "regulation": {
2281
+ "type": "string"
2282
+ },
2283
+ "min_duration_ms": {
2284
+ "type": "integer",
2285
+ "minimum": 1
2286
+ },
2287
+ "language": {
2288
+ "type": "string"
2289
+ },
2290
+ "persistence": {
2291
+ "$ref": "#/$defs/external:enums~1disclosure-persistence.json"
2292
+ }
2293
+ },
2294
+ "required": [
2295
+ "text"
2296
+ ],
2297
+ "additionalProperties": true
2298
+ },
2299
+ "minItems": 1
2300
+ },
2301
+ "prohibited_claims": {
2302
+ "type": "array",
2303
+ "items": {
2304
+ "type": "string"
2305
+ },
2306
+ "minItems": 1
2307
+ }
2308
+ },
2309
+ "additionalProperties": true
2310
+ }
2311
+ },
2312
+ "required": [
2313
+ "name"
2314
+ ],
2315
+ "additionalProperties": true
2316
+ },
2317
+ "external:core/reference-asset.json": {
2318
+ "type": "object",
2319
+ "properties": {
2320
+ "url": {
2321
+ "type": "string",
2322
+ "format": "uri"
2323
+ },
2324
+ "role": {
2325
+ "type": "string",
2326
+ "enum": [
2327
+ "style_reference",
2328
+ "product_shot",
2329
+ "mood_board",
2330
+ "example_creative",
2331
+ "logo",
2332
+ "strategy_doc",
2333
+ "storyboard"
2334
+ ]
2335
+ },
2336
+ "description": {
2337
+ "type": "string"
2338
+ }
2339
+ },
2340
+ "required": [
2341
+ "url",
2342
+ "role"
2343
+ ],
2344
+ "additionalProperties": true
2345
+ },
2346
+ "external:core/assets/catalog-asset.json": {
2347
+ "type": "object",
2348
+ "properties": {
2349
+ "asset_type": {
2350
+ "type": "string",
2351
+ "const": "catalog"
2352
+ }
2353
+ },
2354
+ "required": [
2355
+ "asset_type"
2356
+ ],
2357
+ "allOf": [
2358
+ {
2359
+ "$ref": "#/$defs/external:core~1catalog.json"
2360
+ }
2361
+ ]
2362
+ },
2363
+ "external:core/catalog.json": {
2364
+ "type": "object",
2365
+ "properties": {
2366
+ "catalog_id": {
2367
+ "type": "string",
2368
+ "x-entity": "catalog"
2369
+ },
2370
+ "name": {
2371
+ "type": "string"
2372
+ },
2373
+ "type": {
2374
+ "$ref": "#/$defs/external:enums~1catalog-type.json"
2375
+ },
2376
+ "url": {
2377
+ "type": "string",
2378
+ "format": "uri"
2379
+ },
2380
+ "feed_format": {
2381
+ "$ref": "#/$defs/external:enums~1feed-format.json"
2382
+ },
2383
+ "update_frequency": {
2384
+ "$ref": "#/$defs/external:enums~1update-frequency.json"
2385
+ },
2386
+ "items": {
2387
+ "type": "array",
2388
+ "items": {
2389
+ "type": "object"
2390
+ },
2391
+ "minItems": 1
2392
+ },
2393
+ "ids": {
2394
+ "type": "array",
2395
+ "items": {
2396
+ "type": "string"
2397
+ },
2398
+ "minItems": 1
2399
+ },
2400
+ "gtins": {
2401
+ "type": "array",
2402
+ "items": {
2403
+ "type": "string",
2404
+ "pattern": "^[0-9]{8,14}$"
2405
+ },
2406
+ "minItems": 1
2407
+ },
2408
+ "tags": {
2409
+ "type": "array",
2410
+ "items": {
2411
+ "type": "string"
2412
+ },
2413
+ "minItems": 1
2414
+ },
2415
+ "category": {
2416
+ "type": "string"
2417
+ },
2418
+ "query": {
2419
+ "type": "string"
2420
+ },
2421
+ "conversion_events": {
2422
+ "type": "array",
2423
+ "items": {
2424
+ "$ref": "#/$defs/external:enums~1event-type.json"
2425
+ },
2426
+ "minItems": 1,
2427
+ "uniqueItems": true
2428
+ },
2429
+ "content_id_type": {
2430
+ "$ref": "#/$defs/external:enums~1content-id-type.json"
2431
+ },
2432
+ "feed_field_mappings": {
2433
+ "type": "array",
2434
+ "items": {
2435
+ "$ref": "#/$defs/external:core~1catalog-field-mapping.json"
2436
+ },
2437
+ "minItems": 1
2438
+ }
2439
+ },
2440
+ "required": [
2441
+ "type"
2442
+ ],
2443
+ "additionalProperties": true
2444
+ },
2445
+ "external:enums/catalog-type.json": {
2446
+ "type": "string",
2447
+ "enum": [
2448
+ "offering",
2449
+ "product",
2450
+ "inventory",
2451
+ "store",
2452
+ "promotion",
2453
+ "hotel",
2454
+ "flight",
2455
+ "job",
2456
+ "vehicle",
2457
+ "real_estate",
2458
+ "education",
2459
+ "destination",
2460
+ "app"
2461
+ ]
2462
+ },
2463
+ "external:enums/feed-format.json": {
2464
+ "type": "string",
2465
+ "enum": [
2466
+ "google_merchant_center",
2467
+ "facebook_catalog",
2468
+ "shopify",
2469
+ "linkedin_jobs",
2470
+ "tiktok_shop",
2471
+ "pinterest_catalog",
2472
+ "openai_product_feed",
2473
+ "custom"
2474
+ ]
2475
+ },
2476
+ "external:enums/update-frequency.json": {
2477
+ "type": "string",
2478
+ "enum": [
2479
+ "realtime",
2480
+ "hourly",
2481
+ "daily",
2482
+ "weekly"
2483
+ ]
2484
+ },
2485
+ "external:enums/event-type.json": {
2486
+ "type": "string",
2487
+ "enum": [
2488
+ "page_view",
2489
+ "view_content",
2490
+ "select_content",
2491
+ "select_item",
2492
+ "search",
2493
+ "share",
2494
+ "add_to_cart",
2495
+ "remove_from_cart",
2496
+ "viewed_cart",
2497
+ "add_to_wishlist",
2498
+ "initiate_checkout",
2499
+ "add_payment_info",
2500
+ "purchase",
2501
+ "refund",
2502
+ "lead",
2503
+ "qualify_lead",
2504
+ "close_convert_lead",
2505
+ "disqualify_lead",
2506
+ "complete_registration",
2507
+ "subscribe",
2508
+ "follow",
2509
+ "content_view",
2510
+ "watch_milestone",
2511
+ "start_trial",
2512
+ "app_install",
2513
+ "app_launch",
2514
+ "contact",
2515
+ "schedule",
2516
+ "donate",
2517
+ "submit_application",
2518
+ "custom"
2519
+ ]
2520
+ },
2521
+ "external:enums/content-id-type.json": {
2522
+ "type": "string",
2523
+ "enum": [
2524
+ "sku",
2525
+ "gtin",
2526
+ "offering_id",
2527
+ "job_id",
2528
+ "hotel_id",
2529
+ "flight_id",
2530
+ "vehicle_id",
2531
+ "listing_id",
2532
+ "store_id",
2533
+ "program_id",
2534
+ "destination_id",
2535
+ "app_id"
2536
+ ]
2537
+ },
2538
+ "external:core/catalog-field-mapping.json": {
2539
+ "type": "object",
2540
+ "properties": {
2541
+ "feed_field": {
2542
+ "type": "string"
2543
+ },
2544
+ "catalog_field": {
2545
+ "type": "string"
2546
+ },
2547
+ "asset_group_id": {
2548
+ "type": "string"
2549
+ },
2550
+ "value": {},
2551
+ "transform": {
2552
+ "type": "string",
2553
+ "enum": [
2554
+ "date",
2555
+ "divide",
2556
+ "boolean",
2557
+ "split"
2558
+ ]
2559
+ },
2560
+ "format": {
2561
+ "type": "string"
2562
+ },
2563
+ "timezone": {
2564
+ "type": "string"
2565
+ },
2566
+ "by": {
2567
+ "type": "number",
2568
+ "exclusiveMinimum": 0
2569
+ },
2570
+ "separator": {
2571
+ "type": "string",
2572
+ "default": ","
2573
+ },
2574
+ "default": {},
2575
+ "ext": {
2576
+ "$ref": "#/$defs/external:core~1ext.json"
2577
+ }
2578
+ },
2579
+ "allOf": [
2580
+ {
2581
+ "not": {
2582
+ "required": [
2583
+ "feed_field",
2584
+ "value"
2585
+ ]
2586
+ }
2587
+ },
2588
+ {
2589
+ "not": {
2590
+ "required": [
2591
+ "catalog_field",
2592
+ "asset_group_id"
2593
+ ]
2594
+ }
2595
+ }
2596
+ ],
2597
+ "additionalProperties": true
2598
+ },
2599
+ "external:core/assets/published-post-asset.json": {
2600
+ "type": "object",
2601
+ "properties": {
2602
+ "asset_type": {
2603
+ "type": "string",
2604
+ "const": "published_post"
2605
+ },
2606
+ "post_url": {
2607
+ "type": "string",
2608
+ "format": "uri"
2609
+ },
2610
+ "platform": {
2611
+ "type": "string"
2612
+ },
2613
+ "platform_post_id": {
2614
+ "type": "string"
2615
+ },
2616
+ "identity_ref": {
2617
+ "type": "object",
2618
+ "properties": {
2619
+ "handle": {
2620
+ "type": "string"
2621
+ },
2622
+ "profile_url": {
2623
+ "type": "string",
2624
+ "format": "uri"
2625
+ },
2626
+ "platform_identity_id": {
2627
+ "type": "string"
2628
+ }
2629
+ },
2630
+ "additionalProperties": true
2631
+ },
2632
+ "published_at": {
2633
+ "type": "string",
2634
+ "format": "date-time"
2635
+ },
2636
+ "reference_authorization": {
2637
+ "type": "object",
2638
+ "readOnly": true,
2639
+ "properties": {
2640
+ "status": {
2641
+ "type": "string",
2642
+ "enum": [
2643
+ "authorized",
2644
+ "pending",
2645
+ "expired",
2646
+ "revoked",
2647
+ "not_required",
2648
+ "unknown"
2649
+ ]
2650
+ },
2651
+ "checked_at": {
2652
+ "type": "string",
2653
+ "format": "date-time"
2654
+ },
2655
+ "expires_at": {
2656
+ "type": "string",
2657
+ "format": "date-time"
2658
+ },
2659
+ "authorization_url": {
2660
+ "type": "string",
2661
+ "format": "uri"
2662
+ },
2663
+ "authorization_instructions": {
2664
+ "type": "string"
2665
+ }
2666
+ },
2667
+ "required": [
2668
+ "status"
2669
+ ],
2670
+ "additionalProperties": true
2671
+ },
2672
+ "provenance": {
2673
+ "$ref": "#/$defs/external:core~1provenance.json"
2674
+ }
2675
+ },
2676
+ "required": [
2677
+ "asset_type"
2678
+ ],
2679
+ "anyOf": [
2680
+ {
2681
+ "required": [
2682
+ "post_url"
2683
+ ]
2684
+ },
2685
+ {
2686
+ "required": [
2687
+ "platform_post_id"
2688
+ ]
2689
+ }
2690
+ ],
2691
+ "additionalProperties": true
2692
+ },
2693
+ "external:core/assets/card-asset.json": {
2694
+ "type": "object",
2695
+ "required": [
2696
+ "asset_type",
2697
+ "media"
2698
+ ],
2699
+ "properties": {
2700
+ "asset_type": {
2701
+ "type": "string",
2702
+ "const": "card"
2703
+ },
2704
+ "media": {
2705
+ "oneOf": [
2706
+ {
2707
+ "$ref": "#/$defs/external:core~1assets~1image-asset.json"
2708
+ },
2709
+ {
2710
+ "$ref": "#/$defs/external:core~1assets~1video-asset.json"
2711
+ }
2712
+ ],
2713
+ "discriminator": {
2714
+ "propertyName": "asset_type"
2715
+ }
2716
+ },
2717
+ "headline": {
2718
+ "type": "string"
2719
+ },
2720
+ "description": {
2721
+ "type": "string"
2722
+ },
2723
+ "cta": {
2724
+ "type": "string"
2725
+ },
2726
+ "landing_page_url": {
2727
+ "$ref": "#/$defs/external:core~1assets~1url-asset.json"
2728
+ },
2729
+ "platform_extensions": {
2730
+ "type": "array",
2731
+ "items": {
2732
+ "$ref": "#/$defs/external:core~1platform-extension-ref.json"
2733
+ }
2734
+ },
2735
+ "provenance": {
2736
+ "$ref": "#/$defs/external:core~1provenance.json"
2737
+ }
2738
+ },
2739
+ "additionalProperties": true
2740
+ },
2741
+ "external:core/platform-extension-ref.json": {
2742
+ "type": "object",
2743
+ "required": [
2744
+ "uri",
2745
+ "digest"
2746
+ ],
2747
+ "properties": {
2748
+ "uri": {
2749
+ "type": "string",
2750
+ "format": "uri",
2751
+ "pattern": "^https://"
2752
+ },
2753
+ "digest": {
2754
+ "type": "string",
2755
+ "pattern": "^sha256:[a-f0-9]{64}$"
2756
+ }
2757
+ },
2758
+ "additionalProperties": true
2759
+ },
2760
+ "external:core/assets/pixel-tracker-asset.json": {
2761
+ "type": "object",
2762
+ "properties": {
2763
+ "asset_type": {
2764
+ "type": "string",
2765
+ "const": "pixel_tracker"
2766
+ },
2767
+ "event": {
2768
+ "type": "string",
2769
+ "enum": [
2770
+ "impression",
2771
+ "viewable_mrc_50",
2772
+ "viewable_mrc_100",
2773
+ "viewable_video_50",
2774
+ "audible_video_complete",
2775
+ "click",
2776
+ "custom"
2777
+ ]
2778
+ },
2779
+ "method": {
2780
+ "type": "string",
2781
+ "enum": [
2782
+ "img",
2783
+ "js"
2784
+ ],
2785
+ "default": "img"
2786
+ },
2787
+ "url": {
2788
+ "type": "string",
2789
+ "format": "uri-template"
2790
+ },
2791
+ "custom_event_name": {
2792
+ "type": "string"
2793
+ },
2794
+ "provenance": {
2795
+ "$ref": "#/$defs/external:core~1provenance.json"
2796
+ }
2797
+ },
2798
+ "required": [
2799
+ "asset_type",
2800
+ "event",
2801
+ "url"
2802
+ ],
2803
+ "allOf": [
2804
+ {
2805
+ "if": {
2806
+ "properties": {
2807
+ "event": {
2808
+ "const": "custom"
2809
+ }
2810
+ },
2811
+ "required": [
2812
+ "event"
2813
+ ]
2814
+ },
2815
+ "then": {
2816
+ "required": [
2817
+ "custom_event_name"
2818
+ ]
2819
+ },
2820
+ "else": {
2821
+ "not": {
2822
+ "required": [
2823
+ "custom_event_name"
2824
+ ]
2825
+ }
2826
+ }
2827
+ }
2828
+ ],
2829
+ "additionalProperties": true
2830
+ },
2831
+ "external:core/assets/vast-tracker-asset.json": {
2832
+ "type": "object",
2833
+ "properties": {
2834
+ "asset_type": {
2835
+ "type": "string",
2836
+ "const": "vast_tracker"
2837
+ },
2838
+ "vast_event": {
2839
+ "allOf": [
2840
+ {
2841
+ "$ref": "#/$defs/external:enums~1vast-tracking-event.json"
2842
+ },
2843
+ {
2844
+ "not": {
2845
+ "enum": [
2846
+ "impression",
2847
+ "clickTracking",
2848
+ "customClick",
2849
+ "error",
2850
+ "viewable",
2851
+ "notViewable",
2852
+ "viewUndetermined",
2853
+ "measurableImpression",
2854
+ "viewableImpression"
2855
+ ]
2856
+ }
2857
+ }
2858
+ ]
2859
+ },
2860
+ "url": {
2861
+ "type": "string",
2862
+ "format": "uri-template"
2863
+ },
2864
+ "offset": {
2865
+ "type": "string",
2866
+ "pattern": "^(\\d{2}:[0-5]\\d:[0-5]\\d(\\.\\d{3})?|(100|\\d{1,2})%)$"
2867
+ },
2868
+ "target": {
2869
+ "type": "string",
2870
+ "enum": [
2871
+ "linear",
2872
+ "non_linear",
2873
+ "companion"
2874
+ ],
2875
+ "default": "linear"
2876
+ },
2877
+ "provenance": {
2878
+ "$ref": "#/$defs/external:core~1provenance.json"
2879
+ }
2880
+ },
2881
+ "required": [
2882
+ "asset_type",
2883
+ "vast_event",
2884
+ "url"
2885
+ ],
2886
+ "allOf": [
2887
+ {
2888
+ "if": {
2889
+ "properties": {
2890
+ "vast_event": {
2891
+ "const": "progress"
2892
+ }
2893
+ },
2894
+ "required": [
2895
+ "vast_event"
2896
+ ]
2897
+ },
2898
+ "then": {
2899
+ "required": [
2900
+ "offset"
2901
+ ]
2902
+ }
2903
+ }
2904
+ ],
2905
+ "additionalProperties": true
2906
+ },
2907
+ "external:core/assets/daast-tracker-asset.json": {
2908
+ "type": "object",
2909
+ "properties": {
2910
+ "asset_type": {
2911
+ "type": "string",
2912
+ "const": "daast_tracker"
2913
+ },
2914
+ "daast_event": {
2915
+ "allOf": [
2916
+ {
2917
+ "$ref": "#/$defs/external:enums~1daast-tracking-event.json"
2918
+ },
2919
+ {
2920
+ "not": {
2921
+ "enum": [
2922
+ "impression",
2923
+ "clickTracking",
2924
+ "customClick",
2925
+ "error",
2926
+ "viewable",
2927
+ "notViewable",
2928
+ "viewUndetermined",
2929
+ "measurableImpression",
2930
+ "viewableImpression"
2931
+ ]
2932
+ }
2933
+ }
2934
+ ]
2935
+ },
2936
+ "url": {
2937
+ "type": "string",
2938
+ "format": "uri-template"
2939
+ },
2940
+ "offset": {
2941
+ "type": "string",
2942
+ "pattern": "^(\\d{2}:[0-5]\\d:[0-5]\\d(\\.\\d{3})?|(100|\\d{1,2})%)$"
2943
+ },
2944
+ "target": {
2945
+ "type": "string",
2946
+ "enum": [
2947
+ "linear",
2948
+ "companion"
2949
+ ],
2950
+ "default": "linear"
2951
+ },
2952
+ "provenance": {
2953
+ "$ref": "#/$defs/external:core~1provenance.json"
2954
+ }
2955
+ },
2956
+ "required": [
2957
+ "asset_type",
2958
+ "daast_event",
2959
+ "url"
2960
+ ],
2961
+ "allOf": [
2962
+ {
2963
+ "if": {
2964
+ "properties": {
2965
+ "daast_event": {
2966
+ "const": "progress"
2967
+ }
2968
+ },
2969
+ "required": [
2970
+ "daast_event"
2971
+ ]
2972
+ },
2973
+ "then": {
2974
+ "required": [
2975
+ "offset"
2976
+ ]
2977
+ }
2978
+ }
2979
+ ],
2980
+ "additionalProperties": true
2981
+ },
2982
+ "external:enums/creative-status.json": {
2983
+ "type": "string",
2984
+ "enum": [
2985
+ "processing",
2986
+ "pending_review",
2987
+ "approved",
2988
+ "suspended",
2989
+ "rejected",
2990
+ "archived"
2991
+ ]
2992
+ },
2993
+ "external:core/placement-ref.json": {
2994
+ "type": "object",
2995
+ "properties": {
2996
+ "publisher_domain": {
2997
+ "type": "string",
2998
+ "pattern": "^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$"
2999
+ },
3000
+ "placement_id": {
3001
+ "type": "string",
3002
+ "x-entity": "placement"
3003
+ }
3004
+ },
3005
+ "required": [
3006
+ "placement_id"
3007
+ ],
3008
+ "additionalProperties": true
3009
+ },
3010
+ "external:core/industry-identifier.json": {
3011
+ "type": "object",
3012
+ "properties": {
3013
+ "type": {
3014
+ "$ref": "#/$defs/external:enums~1creative-identifier-type.json"
3015
+ },
3016
+ "value": {
3017
+ "type": "string",
3018
+ "maxLength": 64
3019
+ }
3020
+ },
3021
+ "required": [
3022
+ "type",
3023
+ "value"
3024
+ ],
3025
+ "additionalProperties": true
3026
+ },
3027
+ "external:enums/creative-identifier-type.json": {
3028
+ "type": "string",
3029
+ "enum": [
3030
+ "ad_id",
3031
+ "isci",
3032
+ "clearcast_clock",
3033
+ "idcrea"
3034
+ ]
3035
+ },
3036
+ "external:core/rights-constraint.json": {
3037
+ "type": "object",
3038
+ "properties": {
3039
+ "rights_id": {
3040
+ "type": "string"
3041
+ },
3042
+ "rights_agent": {
3043
+ "type": "object",
3044
+ "properties": {
3045
+ "url": {
3046
+ "type": "string",
3047
+ "format": "uri"
3048
+ },
3049
+ "id": {
3050
+ "type": "string"
3051
+ }
3052
+ },
3053
+ "required": [
3054
+ "url",
3055
+ "id"
3056
+ ]
3057
+ },
3058
+ "rights_holder": {
3059
+ "$ref": "#/$defs/external:core~1brand-ref.json"
3060
+ },
3061
+ "valid_from": {
3062
+ "type": "string",
3063
+ "format": "date-time"
3064
+ },
3065
+ "valid_until": {
3066
+ "type": "string",
3067
+ "format": "date-time"
3068
+ },
3069
+ "uses": {
3070
+ "type": "array",
3071
+ "items": {
3072
+ "$ref": "#/$defs/external:enums~1right-use.json"
3073
+ },
3074
+ "minItems": 1
3075
+ },
3076
+ "countries": {
3077
+ "type": "array",
3078
+ "items": {
3079
+ "type": "string",
3080
+ "pattern": "^[A-Z]{2}$"
3081
+ }
3082
+ },
3083
+ "excluded_countries": {
3084
+ "type": "array",
3085
+ "items": {
3086
+ "type": "string",
3087
+ "pattern": "^[A-Z]{2}$"
3088
+ }
3089
+ },
3090
+ "impression_cap": {
3091
+ "type": "integer",
3092
+ "minimum": 1
3093
+ },
3094
+ "right_type": {
3095
+ "$ref": "#/$defs/external:enums~1right-type.json"
3096
+ },
3097
+ "approval_status": {
3098
+ "type": "string",
3099
+ "enum": [
3100
+ "pending",
3101
+ "approved",
3102
+ "rejected"
3103
+ ]
3104
+ },
3105
+ "grant_status": {
3106
+ "type": "string",
3107
+ "enum": [
3108
+ "active",
3109
+ "paused",
3110
+ "revoked"
3111
+ ]
3112
+ },
3113
+ "restrictions": {
3114
+ "type": "array",
3115
+ "items": {
3116
+ "type": "string",
3117
+ "minLength": 1
3118
+ },
3119
+ "minItems": 1,
3120
+ "uniqueItems": true
3121
+ },
3122
+ "disclosure": {
3123
+ "type": "object",
3124
+ "properties": {
3125
+ "required": {
3126
+ "type": "boolean"
3127
+ },
3128
+ "text": {
3129
+ "type": "string",
3130
+ "minLength": 1
3131
+ }
3132
+ },
3133
+ "required": [
3134
+ "required"
3135
+ ],
3136
+ "allOf": [
3137
+ {
3138
+ "if": {
3139
+ "properties": {
3140
+ "required": {
3141
+ "const": true
3142
+ }
3143
+ },
3144
+ "required": [
3145
+ "required"
3146
+ ]
3147
+ },
3148
+ "then": {
3149
+ "required": [
3150
+ "text"
3151
+ ]
3152
+ }
3153
+ }
3154
+ ],
3155
+ "additionalProperties": false
3156
+ },
3157
+ "creative_approval_required": {
3158
+ "type": "boolean"
3159
+ },
3160
+ "verification_url": {
3161
+ "type": "string",
3162
+ "format": "uri",
3163
+ "deprecated": true
3164
+ },
3165
+ "content_digest": {
3166
+ "type": "string",
3167
+ "pattern": "^sha256:[a-f0-9]{64}$"
3168
+ },
3169
+ "attestation_refs": {
3170
+ "type": "array",
3171
+ "items": {
3172
+ "allOf": [
3173
+ {
3174
+ "$ref": "#/$defs/external:core~1attestation-reference.json"
3175
+ },
3176
+ {
3177
+ "type": "object",
3178
+ "properties": {
3179
+ "issuer": {
3180
+ "type": "object",
3181
+ "properties": {
3182
+ "type": {
3183
+ "type": "string",
3184
+ "const": "brand"
3185
+ },
3186
+ "brand": {
3187
+ "$ref": "#/$defs/external:core~1brand-ref.json"
3188
+ }
3189
+ },
3190
+ "required": [
3191
+ "type",
3192
+ "brand"
3193
+ ]
3194
+ },
3195
+ "claim_type": {
3196
+ "type": "string",
3197
+ "const": "https://adcontextprotocol.org/claims/rights/grant"
3198
+ },
3199
+ "subject": {
3200
+ "type": "object",
3201
+ "properties": {
3202
+ "type": {
3203
+ "type": "string",
3204
+ "const": "resource"
3205
+ },
3206
+ "resource_type": {
3207
+ "type": "string",
3208
+ "const": "https://adcontextprotocol.org/claims/subjects/rights-grant"
3209
+ }
3210
+ },
3211
+ "required": [
3212
+ "type",
3213
+ "resource_type",
3214
+ "namespace",
3215
+ "id",
3216
+ "content_digest"
3217
+ ]
3218
+ }
3219
+ }
3220
+ }
3221
+ ]
3222
+ },
3223
+ "minItems": 1,
3224
+ "maxItems": 4,
3225
+ "uniqueItems": true
3226
+ },
3227
+ "ext": {
3228
+ "$ref": "#/$defs/external:core~1ext.json"
3229
+ }
3230
+ },
3231
+ "required": [
3232
+ "rights_id",
3233
+ "rights_agent",
3234
+ "uses"
3235
+ ],
3236
+ "allOf": [
3237
+ {
3238
+ "if": {
3239
+ "required": [
3240
+ "attestation_refs"
3241
+ ]
3242
+ },
3243
+ "then": {
3244
+ "required": [
3245
+ "rights_holder",
3246
+ "grant_status",
3247
+ "content_digest"
3248
+ ]
3249
+ }
3250
+ }
3251
+ ],
3252
+ "x-adcp-validation": {
3253
+ "rights_attestation_profile": {
3254
+ "claim_type": "https://adcontextprotocol.org/claims/rights/grant",
3255
+ "subject_resource_type": "https://adcontextprotocol.org/claims/subjects/rights-grant",
3256
+ "cross_field_equality": [
3257
+ "attestation_ref.issuer.brand == rights_holder (exact BrandRef)",
3258
+ "attestation_ref.subject.namespace == rights_agent.url (canonical URL)",
3259
+ "attestation_ref.subject.id == rights_id",
3260
+ "attestation_ref.subject.content_digest == content_digest"
3261
+ ],
3262
+ "digest_excludes": [
3263
+ "content_digest",
3264
+ "attestation_refs",
3265
+ "verification_url"
3266
+ ],
3267
+ "resolution_limits": {
3268
+ "pre_network_checks": [
3269
+ "accepted issuer",
3270
+ "accepted claim",
3271
+ "accepted proof format",
3272
+ "accepted delivery method",
3273
+ "accepted resolver or origin"
3274
+ ],
3275
+ "maximum_references": 4,
3276
+ "deduplicate_equivalent_references": true,
3277
+ "apply_account_and_evaluator_rate_limits": true
3278
+ }
3279
+ }
3280
+ },
3281
+ "additionalProperties": true
3282
+ },
3283
+ "external:enums/right-use.json": {
3284
+ "x-status": "experimental",
3285
+ "type": "string",
3286
+ "enum": [
3287
+ "likeness",
3288
+ "voice",
3289
+ "name",
3290
+ "endorsement",
3291
+ "motion_capture",
3292
+ "signature",
3293
+ "catchphrase",
3294
+ "sync",
3295
+ "background_music",
3296
+ "editorial",
3297
+ "commercial",
3298
+ "ai_generated_image"
3299
+ ]
3300
+ },
3301
+ "external:enums/right-type.json": {
3302
+ "x-status": "experimental",
3303
+ "type": "string",
3304
+ "enum": [
3305
+ "talent",
3306
+ "character",
3307
+ "brand_ip",
3308
+ "music",
3309
+ "stock_media"
3310
+ ]
3311
+ },
3312
+ "external:core/attestation-reference.json": {
3313
+ "type": "object",
3314
+ "properties": {
3315
+ "issuer": {
3316
+ "$ref": "#/$defs/external:core~1attestation-issuer.json"
3317
+ },
3318
+ "claim_type": {
3319
+ "type": "string",
3320
+ "format": "uri"
3321
+ },
3322
+ "subject": {
3323
+ "$ref": "#/$defs/external:core~1attestation-subject.json"
3324
+ },
3325
+ "locator": {
3326
+ "discriminator": {
3327
+ "propertyName": "type"
3328
+ },
3329
+ "oneOf": [
3330
+ {
3331
+ "type": "object",
3332
+ "properties": {
3333
+ "type": {
3334
+ "type": "string",
3335
+ "const": "credential_uri"
3336
+ },
3337
+ "credential_uri": {
3338
+ "type": "string",
3339
+ "format": "uri",
3340
+ "pattern": "^https://[^/?#@]+(?:/[^?#]*)?(?:\\?[^#]*)?$"
3341
+ },
3342
+ "ext": {
3343
+ "$ref": "#/$defs/external:core~1ext.json"
3344
+ }
3345
+ },
3346
+ "required": [
3347
+ "type",
3348
+ "credential_uri"
3349
+ ],
3350
+ "additionalProperties": false
3351
+ },
3352
+ {
3353
+ "type": "object",
3354
+ "properties": {
3355
+ "type": {
3356
+ "type": "string",
3357
+ "const": "issuer_credential_id"
3358
+ },
3359
+ "credential_id": {
3360
+ "type": "string",
3361
+ "minLength": 1,
3362
+ "maxLength": 1024,
3363
+ "x-entity": "attestation_credential"
3364
+ },
3365
+ "resolver_id": {
3366
+ "type": "string",
3367
+ "minLength": 1,
3368
+ "maxLength": 255,
3369
+ "pattern": "^[A-Za-z0-9._:-]+$"
3370
+ },
3371
+ "ext": {
3372
+ "$ref": "#/$defs/external:core~1ext.json"
3373
+ }
3374
+ },
3375
+ "required": [
3376
+ "type",
3377
+ "credential_id",
3378
+ "resolver_id"
3379
+ ],
3380
+ "additionalProperties": false
3381
+ }
3382
+ ]
3383
+ },
3384
+ "embedded_credential": {
3385
+ "type": "object",
3386
+ "properties": {
3387
+ "format": {
3388
+ "type": "string",
3389
+ "format": "uri"
3390
+ },
3391
+ "value": {
3392
+ "type": [
3393
+ "object",
3394
+ "string"
3395
+ ],
3396
+ "minLength": 1
3397
+ },
3398
+ "ext": {
3399
+ "$ref": "#/$defs/external:core~1ext.json"
3400
+ }
3401
+ },
3402
+ "required": [
3403
+ "format",
3404
+ "value"
3405
+ ],
3406
+ "additionalProperties": false
3407
+ },
3408
+ "content_digest": {
3409
+ "type": "string",
3410
+ "pattern": "^sha256:[a-f0-9]{64}$"
3411
+ },
3412
+ "credential_version": {
3413
+ "type": "string",
3414
+ "minLength": 1,
3415
+ "maxLength": 255
3416
+ },
3417
+ "validity_hint": {
3418
+ "type": "object",
3419
+ "properties": {
3420
+ "not_before": {
3421
+ "type": "string",
3422
+ "format": "date-time"
3423
+ },
3424
+ "expires_at": {
3425
+ "type": "string",
3426
+ "format": "date-time"
3427
+ }
3428
+ },
3429
+ "additionalProperties": false,
3430
+ "minProperties": 1
3431
+ },
3432
+ "verify_agent": {
3433
+ "type": "object",
3434
+ "properties": {
3435
+ "agent_url": {
3436
+ "type": "string",
3437
+ "format": "uri",
3438
+ "pattern": "^https://[^/?#@]+(?:/[^?#]*)?(?:\\?[^#]*)?$"
3439
+ }
3440
+ },
3441
+ "required": [
3442
+ "agent_url"
3443
+ ],
3444
+ "additionalProperties": false
3445
+ },
3446
+ "ext": {
3447
+ "$ref": "#/$defs/external:core~1ext.json"
3448
+ }
3449
+ },
3450
+ "required": [
3451
+ "issuer",
3452
+ "claim_type",
3453
+ "subject"
3454
+ ],
3455
+ "anyOf": [
3456
+ {
3457
+ "required": [
3458
+ "locator"
3459
+ ]
3460
+ },
3461
+ {
3462
+ "required": [
3463
+ "embedded_credential"
3464
+ ]
3465
+ }
3466
+ ],
3467
+ "allOf": [
3468
+ {
3469
+ "if": {
3470
+ "required": [
3471
+ "locator",
3472
+ "embedded_credential"
3473
+ ]
3474
+ },
3475
+ "then": {
3476
+ "required": [
3477
+ "content_digest"
3478
+ ]
3479
+ }
3480
+ }
3481
+ ],
3482
+ "additionalProperties": false
3483
+ },
3484
+ "external:core/attestation-issuer.json": {
3485
+ "discriminator": {
3486
+ "propertyName": "type"
3487
+ },
3488
+ "oneOf": [
3489
+ {
3490
+ "type": "object",
3491
+ "properties": {
3492
+ "type": {
3493
+ "type": "string",
3494
+ "const": "brand"
3495
+ },
3496
+ "brand": {
3497
+ "$ref": "#/$defs/external:core~1brand-ref.json"
3498
+ },
3499
+ "ext": {
3500
+ "$ref": "#/$defs/external:core~1ext.json"
3501
+ }
3502
+ },
3503
+ "required": [
3504
+ "type",
3505
+ "brand"
3506
+ ],
3507
+ "additionalProperties": false
3508
+ },
3509
+ {
3510
+ "type": "object",
3511
+ "properties": {
3512
+ "type": {
3513
+ "type": "string",
3514
+ "const": "agent"
3515
+ },
3516
+ "agent_url": {
3517
+ "type": "string",
3518
+ "format": "uri",
3519
+ "pattern": "^https://[^/?#@]+(?:/[^?#]*)?(?:\\?[^#]*)?$"
3520
+ },
3521
+ "ext": {
3522
+ "$ref": "#/$defs/external:core~1ext.json"
3523
+ }
3524
+ },
3525
+ "required": [
3526
+ "type",
3527
+ "agent_url"
3528
+ ],
3529
+ "additionalProperties": false
3530
+ },
3531
+ {
3532
+ "type": "object",
3533
+ "properties": {
3534
+ "type": {
3535
+ "type": "string",
3536
+ "const": "origin"
3537
+ },
3538
+ "origin": {
3539
+ "type": "string",
3540
+ "format": "uri",
3541
+ "pattern": "^https://[^/?#@]+$"
3542
+ },
3543
+ "ext": {
3544
+ "$ref": "#/$defs/external:core~1ext.json"
3545
+ }
3546
+ },
3547
+ "required": [
3548
+ "type",
3549
+ "origin"
3550
+ ],
3551
+ "additionalProperties": false
3552
+ }
3553
+ ]
3554
+ },
3555
+ "external:core/attestation-subject.json": {
3556
+ "discriminator": {
3557
+ "propertyName": "type"
3558
+ },
3559
+ "oneOf": [
3560
+ {
3561
+ "type": "object",
3562
+ "properties": {
3563
+ "type": {
3564
+ "type": "string",
3565
+ "const": "brand"
3566
+ },
3567
+ "brand": {
3568
+ "$ref": "#/$defs/external:core~1brand-ref.json"
3569
+ },
3570
+ "ext": {
3571
+ "$ref": "#/$defs/external:core~1ext.json"
3572
+ }
3573
+ },
3574
+ "required": [
3575
+ "type",
3576
+ "brand"
3577
+ ],
3578
+ "additionalProperties": false
3579
+ },
3580
+ {
3581
+ "type": "object",
3582
+ "properties": {
3583
+ "type": {
3584
+ "type": "string",
3585
+ "const": "agent"
3586
+ },
3587
+ "agent_url": {
3588
+ "type": "string",
3589
+ "format": "uri",
3590
+ "pattern": "^https://[^/?#@]+(?:/[^?#]*)?(?:\\?[^#]*)?$"
3591
+ },
3592
+ "ext": {
3593
+ "$ref": "#/$defs/external:core~1ext.json"
3594
+ }
3595
+ },
3596
+ "required": [
3597
+ "type",
3598
+ "agent_url"
3599
+ ],
3600
+ "additionalProperties": false
3601
+ },
3602
+ {
3603
+ "type": "object",
3604
+ "properties": {
3605
+ "type": {
3606
+ "type": "string",
3607
+ "const": "resource"
3608
+ },
3609
+ "resource_type": {
3610
+ "type": "string",
3611
+ "format": "uri"
3612
+ },
3613
+ "namespace": {
3614
+ "type": "string",
3615
+ "format": "uri"
3616
+ },
3617
+ "id": {
3618
+ "type": "string",
3619
+ "minLength": 1,
3620
+ "maxLength": 1024
3621
+ },
3622
+ "content_digest": {
3623
+ "type": "string",
3624
+ "pattern": "^sha256:[a-f0-9]{64}$"
3625
+ },
3626
+ "ext": {
3627
+ "$ref": "#/$defs/external:core~1ext.json"
3628
+ }
3629
+ },
3630
+ "required": [
3631
+ "type",
3632
+ "resource_type",
3633
+ "namespace",
3634
+ "id"
3635
+ ],
3636
+ "additionalProperties": false
3637
+ }
3638
+ ]
3639
+ },
3640
+ "external:core/creative-localization.json": {
3641
+ "x-adcp-validation": {
3642
+ "verifier_constraints": {
3643
+ "unique_target_properties": [
3644
+ "locale_variant_id",
3645
+ "locale"
3646
+ ],
3647
+ "target_properties_disjoint_from_source": [
3648
+ "locale_variant_id",
3649
+ "locale"
3650
+ ],
3651
+ "default_locale_variant_id": "must_reference_exactly_one_source_or_target_variant",
3652
+ "locale_matching": "rfc4647_lookup",
3653
+ "locale_match_comparison": "canonical_tag_equality_after_requested_range_truncation",
3654
+ "delivery_locale_preferences": "ordered_external_input_not_defined_by_adcp",
3655
+ "unique_locale_fallback_properties": [
3656
+ "language_range"
3657
+ ],
3658
+ "locale_fallback_variant_ids": "must_reference_exactly_one_source_or_target_variant",
3659
+ "selection_order": "for_each_preference_strict_lookup_then_most_specific_explicit_fallback_then_next_preference_then_unmatched_action",
3660
+ "localized_asset_language": {
3661
+ "asset_types": [
3662
+ "text",
3663
+ "markdown"
3664
+ ],
3665
+ "when_present": "must_equal_enclosing_variant.locale",
3666
+ "omitted": "no_asset_language_claim"
3667
+ },
3668
+ "replacement_atomicity": "all_or_prior_state_unchanged",
3669
+ "request_sync_list_round_trip": {
3670
+ "source_match": {
3671
+ "role": "source"
3672
+ },
3673
+ "source_equal_properties": [
3674
+ "locale_variant_id",
3675
+ "locale"
3676
+ ],
3677
+ "target_match_key": "locale_variant_id",
3678
+ "target_set": "exact",
3679
+ "target_equal_properties": [
3680
+ "locale"
3681
+ ],
3682
+ "localization_equal_properties": [
3683
+ "default_locale_variant_id",
3684
+ "unmatched_locale_action",
3685
+ "locale_fallbacks"
3686
+ ]
3687
+ }
3688
+ },
3689
+ "spec": "docs/creative/task-reference/sync_creatives.mdx#native-localization"
3690
+ },
3691
+ "type": "object",
3692
+ "properties": {
3693
+ "source": {
3694
+ "type": "object",
3695
+ "properties": {
3696
+ "locale_variant_id": {
3697
+ "type": "string",
3698
+ "minLength": 1,
3699
+ "maxLength": 255,
3700
+ "x-entity": "creative_locale_variant"
3701
+ },
3702
+ "locale": {
3703
+ "$ref": "#/$defs/external:core~1locale-tag.json"
3704
+ }
3705
+ },
3706
+ "required": [
3707
+ "locale_variant_id",
3708
+ "locale"
3709
+ ],
3710
+ "additionalProperties": true
3711
+ },
3712
+ "target_variants": {
3713
+ "type": "array",
3714
+ "items": {
3715
+ "type": "object",
3716
+ "properties": {
3717
+ "locale_variant_id": {
3718
+ "type": "string",
3719
+ "minLength": 1,
3720
+ "maxLength": 255,
3721
+ "x-entity": "creative_locale_variant"
3722
+ },
3723
+ "locale": {
3724
+ "$ref": "#/$defs/external:core~1locale-tag.json"
3725
+ },
3726
+ "assets": {
3727
+ "type": "object",
3728
+ "minProperties": 1,
3729
+ "patternProperties": {
3730
+ "^[a-z0-9_]+$": {
3731
+ "anyOf": [
3732
+ {
3733
+ "$ref": "#/$defs/external:core~1localized-creative-asset.json"
3734
+ },
3735
+ {
3736
+ "type": "array",
3737
+ "items": {
3738
+ "$ref": "#/$defs/external:core~1localized-creative-asset.json"
3739
+ },
3740
+ "minItems": 1
3741
+ }
3742
+ ]
3743
+ }
3744
+ },
3745
+ "additionalProperties": false
3746
+ }
3747
+ },
3748
+ "required": [
3749
+ "locale_variant_id",
3750
+ "locale",
3751
+ "assets"
3752
+ ],
3753
+ "not": {
3754
+ "required": [
3755
+ "translation_mode"
3756
+ ]
3757
+ },
3758
+ "additionalProperties": true
3759
+ },
3760
+ "minItems": 0,
3761
+ "maxItems": 50,
3762
+ "uniqueItems": true
3763
+ },
3764
+ "locale_fallbacks": {
3765
+ "type": "array",
3766
+ "items": {
3767
+ "type": "object",
3768
+ "properties": {
3769
+ "language_range": {
3770
+ "$ref": "#/$defs/external:core~1locale-tag.json"
3771
+ },
3772
+ "locale_variant_id": {
3773
+ "type": "string",
3774
+ "minLength": 1,
3775
+ "maxLength": 255,
3776
+ "x-entity": "creative_locale_variant"
3777
+ }
3778
+ },
3779
+ "required": [
3780
+ "language_range",
3781
+ "locale_variant_id"
3782
+ ],
3783
+ "additionalProperties": true
3784
+ },
3785
+ "minItems": 1,
3786
+ "maxItems": 50,
3787
+ "uniqueItems": true
3788
+ },
3789
+ "default_locale_variant_id": {
3790
+ "type": "string",
3791
+ "minLength": 1,
3792
+ "maxLength": 255,
3793
+ "x-entity": "creative_locale_variant"
3794
+ },
3795
+ "unmatched_locale_action": {
3796
+ "type": "string",
3797
+ "enum": [
3798
+ "serve_default",
3799
+ "do_not_serve"
3800
+ ]
3801
+ }
3802
+ },
3803
+ "required": [
3804
+ "source",
3805
+ "target_variants",
3806
+ "default_locale_variant_id",
3807
+ "unmatched_locale_action"
3808
+ ],
3809
+ "additionalProperties": true
3810
+ },
3811
+ "external:core/locale-tag.json": {
3812
+ "x-adcp-validation": {
3813
+ "verifier_constraints": {
3814
+ "well_formed": "rfc5646",
3815
+ "semantic_scope": "language_identity_only",
3816
+ "canonical_wire_profile": "adcp_bcp47_casing",
3817
+ "rfc5646_comparison": "case_insensitive",
3818
+ "non_profile": "reject"
3819
+ },
3820
+ "spec": "docs/protocol/language-and-localization.mdx#one-language-tag-primitive"
3821
+ },
3822
+ "type": "string",
3823
+ "minLength": 2,
3824
+ "maxLength": 63,
3825
+ "pattern": "^(?:[a-z]{2,8}(?:-[A-Z][a-z]{3})?(?:-(?:[A-Z]{2}|[0-9]{3}))?(?:-(?:[a-z0-9]{5,8}|[0-9][a-z0-9]{3}))*(?:-[0-9a-wy-z](?:-[a-z0-9]{2,8})+)*(?:-x(?:-[a-z0-9]{1,8})+)?|x(?:-[a-z0-9]{1,8})+)$"
3826
+ },
3827
+ "external:core/localized-creative-asset.json": {
3828
+ "x-adcp-validation": {
3829
+ "verifier_constraints": {
3830
+ "language_asset_types": [
3831
+ "text",
3832
+ "markdown"
3833
+ ],
3834
+ "language_when_present": {
3835
+ "schema": "/schemas/core/locale-tag.json",
3836
+ "must_equal": "enclosing_variant.locale"
3837
+ },
3838
+ "language_omitted": "no_asset_language_claim"
3839
+ },
3840
+ "spec": "docs/creative/specification.mdx#native-creative-localization"
3841
+ },
3842
+ "allOf": [
3843
+ {
3844
+ "$ref": "#/$defs/external:core~1assets~1asset-union.json"
3845
+ },
3846
+ {
3847
+ "if": {
3848
+ "properties": {
3849
+ "asset_type": {
3850
+ "enum": [
3851
+ "text",
3852
+ "markdown"
3853
+ ]
3854
+ }
3855
+ },
3856
+ "required": [
3857
+ "asset_type"
3858
+ ]
3859
+ },
3860
+ "then": {
3861
+ "properties": {
3862
+ "language": {
3863
+ "$ref": "#/$defs/external:core~1locale-tag.json"
3864
+ }
3865
+ }
3866
+ }
3867
+ }
3868
+ ]
3869
+ },
3870
+ "external:enums/validation-mode.json": {
3871
+ "type": "string",
3872
+ "enum": [
3873
+ "strict",
3874
+ "lenient"
3875
+ ]
3876
+ },
3877
+ "external:core/push-notification-config.json": {
3878
+ "type": "object",
3879
+ "properties": {
3880
+ "url": {
3881
+ "type": "string",
3882
+ "format": "uri"
3883
+ },
3884
+ "operation_id": {
3885
+ "type": "string",
3886
+ "minLength": 1,
3887
+ "maxLength": 255,
3888
+ "pattern": "^[A-Za-z0-9_.:-]{1,255}$"
3889
+ },
3890
+ "token": {
3891
+ "type": "string",
3892
+ "minLength": 16,
3893
+ "maxLength": 4096
3894
+ },
3895
+ "authentication": {
3896
+ "type": "object",
3897
+ "deprecated": true,
3898
+ "properties": {
3899
+ "schemes": {
3900
+ "type": "array",
3901
+ "items": {
3902
+ "$ref": "#/$defs/external:enums~1auth-scheme.json"
3903
+ },
3904
+ "minItems": 1,
3905
+ "maxItems": 1
3906
+ },
3907
+ "credentials": {
3908
+ "type": "string",
3909
+ "minLength": 32
3910
+ }
3911
+ },
3912
+ "required": [
3913
+ "schemes",
3914
+ "credentials"
3915
+ ],
3916
+ "additionalProperties": false
3917
+ }
3918
+ },
3919
+ "required": [
3920
+ "url"
3921
+ ]
3922
+ },
3923
+ "external:enums/auth-scheme.json": {
3924
+ "deprecated": true,
3925
+ "type": "string",
3926
+ "enum": [
3927
+ "Bearer",
3928
+ "HMAC-SHA256"
3929
+ ]
3930
+ },
3931
+ "external:core/context.json": {
3932
+ "type": "object",
3933
+ "additionalProperties": true
3934
+ }
3935
+ }
3936
+ }