adcp 2.19.0__py3-none-any.whl → 3.0.0__py3-none-any.whl

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 (247) hide show
  1. adcp/ADCP_VERSION +1 -1
  2. adcp/__init__.py +6 -14
  3. adcp/__main__.py +94 -51
  4. adcp/adagents.py +91 -19
  5. adcp/client.py +865 -0
  6. adcp/protocols/a2a.py +84 -0
  7. adcp/protocols/base.py +101 -0
  8. adcp/protocols/mcp.py +84 -0
  9. adcp/server/__init__.py +49 -0
  10. adcp/server/base.py +368 -0
  11. adcp/server/content_standards.py +561 -0
  12. adcp/server/governance.py +491 -0
  13. adcp/server/mcp_tools.py +471 -0
  14. adcp/server/proposal.py +334 -0
  15. adcp/server/sponsored_intelligence.py +444 -0
  16. adcp/types/__init__.py +111 -23
  17. adcp/types/_ergonomic.py +35 -14
  18. adcp/types/_generated.py +346 -52
  19. adcp/types/aliases.py +13 -20
  20. adcp/types/base.py +1 -1
  21. adcp/types/generated_poc/adagents.py +196 -189
  22. adcp/types/generated_poc/content_standards/__init__.py +3 -0
  23. adcp/types/generated_poc/content_standards/artifact.py +208 -0
  24. adcp/types/generated_poc/content_standards/artifact_webhook_payload.py +64 -0
  25. adcp/types/generated_poc/content_standards/calibrate_content_request.py +17 -0
  26. adcp/types/generated_poc/content_standards/calibrate_content_response.py +74 -0
  27. adcp/types/generated_poc/content_standards/content_standards.py +66 -0
  28. adcp/types/generated_poc/content_standards/create_content_standards_request.py +97 -0
  29. adcp/types/generated_poc/content_standards/create_content_standards_response.py +52 -0
  30. adcp/types/generated_poc/content_standards/get_content_standards_request.py +21 -0
  31. adcp/types/generated_poc/content_standards/get_content_standards_response.py +43 -0
  32. adcp/types/generated_poc/content_standards/get_media_buy_artifacts_request.py +64 -0
  33. adcp/types/generated_poc/content_standards/get_media_buy_artifacts_response.py +117 -0
  34. adcp/types/generated_poc/content_standards/list_content_standards_request.py +31 -0
  35. adcp/types/generated_poc/content_standards/list_content_standards_response.py +48 -0
  36. adcp/types/generated_poc/content_standards/update_content_standards_request.py +101 -0
  37. adcp/types/generated_poc/content_standards/update_content_standards_response.py +34 -0
  38. adcp/types/generated_poc/content_standards/validate_content_delivery_request.py +59 -0
  39. adcp/types/generated_poc/content_standards/validate_content_delivery_response.py +85 -0
  40. adcp/types/generated_poc/core/activation_key.py +9 -9
  41. adcp/types/generated_poc/core/assets/audio_asset.py +6 -6
  42. adcp/types/generated_poc/core/assets/css_asset.py +3 -3
  43. adcp/types/generated_poc/core/assets/daast_asset.py +19 -19
  44. adcp/types/generated_poc/core/assets/html_asset.py +3 -3
  45. adcp/types/generated_poc/core/assets/image_asset.py +7 -7
  46. adcp/types/generated_poc/core/assets/javascript_asset.py +4 -4
  47. adcp/types/generated_poc/core/assets/text_asset.py +3 -3
  48. adcp/types/generated_poc/core/assets/url_asset.py +4 -4
  49. adcp/types/generated_poc/core/assets/vast_asset.py +19 -19
  50. adcp/types/generated_poc/core/assets/video_asset.py +8 -8
  51. adcp/types/generated_poc/core/assets/webhook_asset.py +10 -10
  52. adcp/types/generated_poc/core/async_response_data.py +3 -3
  53. adcp/types/generated_poc/core/brand_manifest.py +122 -59
  54. adcp/types/generated_poc/core/brand_manifest_ref.py +10 -10
  55. adcp/types/generated_poc/core/context.py +2 -2
  56. adcp/types/generated_poc/core/creative_asset.py +20 -19
  57. adcp/types/generated_poc/core/creative_assignment.py +4 -4
  58. adcp/types/generated_poc/core/creative_filters.py +18 -28
  59. adcp/types/generated_poc/core/creative_manifest.py +3 -3
  60. adcp/types/generated_poc/core/creative_policy.py +5 -5
  61. adcp/types/generated_poc/core/delivery_metrics.py +33 -33
  62. adcp/types/generated_poc/core/deployment.py +21 -21
  63. adcp/types/generated_poc/core/destination.py +12 -12
  64. adcp/types/generated_poc/core/error.py +7 -7
  65. adcp/types/generated_poc/core/ext.py +2 -2
  66. adcp/types/generated_poc/core/format.py +66 -66
  67. adcp/types/generated_poc/core/format_id.py +6 -6
  68. adcp/types/generated_poc/core/frequency_cap.py +3 -3
  69. adcp/types/generated_poc/core/identifier.py +3 -3
  70. adcp/types/generated_poc/core/mcp_webhook_payload.py +11 -11
  71. adcp/types/generated_poc/core/measurement.py +9 -9
  72. adcp/types/generated_poc/core/media_buy.py +8 -8
  73. adcp/types/generated_poc/core/media_buy_features.py +29 -0
  74. adcp/types/generated_poc/core/offering.py +80 -0
  75. adcp/types/generated_poc/core/package.py +9 -9
  76. adcp/types/generated_poc/core/performance_feedback.py +19 -19
  77. adcp/types/generated_poc/core/placement.py +5 -5
  78. adcp/types/generated_poc/core/pricing_option.py +9 -15
  79. adcp/types/generated_poc/core/product.py +21 -21
  80. adcp/types/generated_poc/core/product_allocation.py +48 -0
  81. adcp/types/generated_poc/core/product_filters.py +89 -24
  82. adcp/types/generated_poc/core/promoted_offerings.py +29 -38
  83. adcp/types/generated_poc/core/promoted_products.py +3 -3
  84. adcp/types/generated_poc/core/property.py +10 -10
  85. adcp/types/generated_poc/core/property_id.py +5 -5
  86. adcp/types/generated_poc/core/property_list_ref.py +5 -5
  87. adcp/types/generated_poc/core/property_tag.py +5 -5
  88. adcp/types/generated_poc/core/proposal.py +64 -0
  89. adcp/types/generated_poc/core/protocol_envelope.py +9 -9
  90. adcp/types/generated_poc/core/publisher_property_selector.py +14 -14
  91. adcp/types/generated_poc/core/push_notification_config.py +6 -6
  92. adcp/types/generated_poc/core/reporting_capabilities.py +9 -9
  93. adcp/types/generated_poc/core/reporting_webhook.py +70 -0
  94. adcp/types/generated_poc/core/response.py +5 -5
  95. adcp/types/generated_poc/core/signal_filters.py +6 -6
  96. adcp/types/generated_poc/core/start_timing.py +4 -4
  97. adcp/types/generated_poc/core/sub_asset.py +15 -15
  98. adcp/types/generated_poc/core/targeting.py +59 -18
  99. adcp/types/generated_poc/creative/list_creative_formats_request.py +21 -21
  100. adcp/types/generated_poc/creative/list_creative_formats_response.py +6 -6
  101. adcp/types/generated_poc/creative/preview_creative_request.py +25 -25
  102. adcp/types/generated_poc/creative/preview_creative_response.py +29 -29
  103. adcp/types/generated_poc/creative/preview_render.py +26 -26
  104. adcp/types/generated_poc/enums/adcp_domain.py +5 -5
  105. adcp/types/generated_poc/enums/asset_content_type.py +14 -14
  106. adcp/types/generated_poc/enums/auth_scheme.py +3 -3
  107. adcp/types/generated_poc/enums/available_metric.py +10 -10
  108. adcp/types/generated_poc/enums/channels.py +21 -11
  109. adcp/types/generated_poc/enums/co_branding_requirement.py +4 -4
  110. adcp/types/generated_poc/enums/creative_action.py +6 -6
  111. adcp/types/generated_poc/enums/creative_agent_capability.py +5 -5
  112. adcp/types/generated_poc/enums/creative_sort_field.py +7 -7
  113. adcp/types/generated_poc/enums/creative_status.py +6 -5
  114. adcp/types/generated_poc/enums/daast_tracking_event.py +12 -12
  115. adcp/types/generated_poc/enums/daast_version.py +3 -3
  116. adcp/types/generated_poc/enums/delivery_type.py +3 -3
  117. adcp/types/generated_poc/enums/dimension_unit.py +5 -5
  118. adcp/types/generated_poc/enums/feed_format.py +4 -4
  119. adcp/types/generated_poc/enums/feedback_source.py +5 -5
  120. adcp/types/generated_poc/enums/format_category.py +8 -8
  121. adcp/types/generated_poc/enums/format_id_parameter.py +3 -3
  122. adcp/types/generated_poc/enums/frequency_cap_scope.py +4 -4
  123. adcp/types/generated_poc/enums/geo_level.py +14 -0
  124. adcp/types/generated_poc/enums/history_entry_type.py +3 -3
  125. adcp/types/generated_poc/enums/http_method.py +3 -3
  126. adcp/types/generated_poc/enums/identifier_types.py +20 -20
  127. adcp/types/generated_poc/enums/javascript_module_type.py +4 -4
  128. adcp/types/generated_poc/enums/landing_page_requirement.py +4 -4
  129. adcp/types/generated_poc/enums/markdown_flavor.py +3 -3
  130. adcp/types/generated_poc/enums/media_buy_status.py +5 -5
  131. adcp/types/generated_poc/enums/metric_type.py +9 -9
  132. adcp/types/generated_poc/enums/metro_system.py +15 -0
  133. adcp/types/generated_poc/enums/notification_type.py +5 -5
  134. adcp/types/generated_poc/enums/pacing.py +4 -4
  135. adcp/types/generated_poc/enums/postal_system.py +19 -0
  136. adcp/types/generated_poc/enums/preview_output_format.py +3 -3
  137. adcp/types/generated_poc/enums/pricing_model.py +8 -8
  138. adcp/types/generated_poc/enums/property_type.py +9 -8
  139. adcp/types/generated_poc/enums/publisher_identifier_types.py +6 -6
  140. adcp/types/generated_poc/enums/reporting_frequency.py +4 -4
  141. adcp/types/generated_poc/enums/signal_catalog_type.py +4 -4
  142. adcp/types/generated_poc/enums/sort_direction.py +3 -3
  143. adcp/types/generated_poc/enums/task_status.py +10 -10
  144. adcp/types/generated_poc/enums/task_type.py +12 -12
  145. adcp/types/generated_poc/enums/update_frequency.py +5 -5
  146. adcp/types/generated_poc/enums/url_asset_type.py +4 -4
  147. adcp/types/generated_poc/enums/validation_mode.py +3 -3
  148. adcp/types/generated_poc/enums/vast_tracking_event.py +17 -17
  149. adcp/types/generated_poc/enums/vast_version.py +6 -6
  150. adcp/types/generated_poc/enums/webhook_response_type.py +5 -5
  151. adcp/types/generated_poc/enums/webhook_security_method.py +4 -4
  152. adcp/types/generated_poc/extensions/extension_meta.py +20 -12
  153. adcp/types/generated_poc/media_buy/build_creative_request.py +5 -5
  154. adcp/types/generated_poc/media_buy/build_creative_response.py +7 -7
  155. adcp/types/generated_poc/media_buy/create_media_buy_async_response_input_required.py +6 -6
  156. adcp/types/generated_poc/media_buy/create_media_buy_async_response_submitted.py +2 -2
  157. adcp/types/generated_poc/media_buy/create_media_buy_async_response_working.py +6 -6
  158. adcp/types/generated_poc/media_buy/create_media_buy_request.py +65 -37
  159. adcp/types/generated_poc/media_buy/create_media_buy_response.py +8 -8
  160. adcp/types/generated_poc/media_buy/get_media_buy_delivery_request.py +9 -9
  161. adcp/types/generated_poc/media_buy/get_media_buy_delivery_response.py +52 -52
  162. adcp/types/generated_poc/media_buy/get_products_async_response_input_required.py +7 -7
  163. adcp/types/generated_poc/media_buy/get_products_async_response_submitted.py +3 -3
  164. adcp/types/generated_poc/media_buy/get_products_async_response_working.py +5 -5
  165. adcp/types/generated_poc/media_buy/get_products_request.py +14 -5
  166. adcp/types/generated_poc/media_buy/get_products_response.py +12 -6
  167. adcp/types/generated_poc/media_buy/list_authorized_properties_request.py +4 -4
  168. adcp/types/generated_poc/media_buy/list_authorized_properties_response.py +9 -9
  169. adcp/types/generated_poc/media_buy/list_creative_formats_request.py +10 -10
  170. adcp/types/generated_poc/media_buy/list_creative_formats_response.py +6 -6
  171. adcp/types/generated_poc/media_buy/list_creatives_request.py +24 -24
  172. adcp/types/generated_poc/media_buy/list_creatives_response.py +54 -57
  173. adcp/types/generated_poc/media_buy/package_request.py +12 -12
  174. adcp/types/generated_poc/media_buy/package_update.py +119 -0
  175. adcp/types/generated_poc/media_buy/provide_performance_feedback_request.py +20 -20
  176. adcp/types/generated_poc/media_buy/provide_performance_feedback_response.py +7 -7
  177. adcp/types/generated_poc/media_buy/sync_creatives_async_response_input_required.py +6 -6
  178. adcp/types/generated_poc/media_buy/sync_creatives_async_response_submitted.py +2 -2
  179. adcp/types/generated_poc/media_buy/sync_creatives_async_response_working.py +8 -8
  180. adcp/types/generated_poc/media_buy/sync_creatives_request.py +8 -8
  181. adcp/types/generated_poc/media_buy/sync_creatives_response.py +16 -16
  182. adcp/types/generated_poc/media_buy/update_media_buy_async_response_input_required.py +5 -5
  183. adcp/types/generated_poc/media_buy/update_media_buy_async_response_submitted.py +2 -2
  184. adcp/types/generated_poc/media_buy/update_media_buy_async_response_working.py +6 -6
  185. adcp/types/generated_poc/media_buy/update_media_buy_request.py +28 -124
  186. adcp/types/generated_poc/media_buy/update_media_buy_response.py +8 -8
  187. adcp/types/generated_poc/pricing_options/cpc_option.py +40 -15
  188. adcp/types/generated_poc/pricing_options/cpcv_option.py +41 -16
  189. adcp/types/generated_poc/pricing_options/cpm_option.py +62 -0
  190. adcp/types/generated_poc/pricing_options/cpp_option.py +46 -23
  191. adcp/types/generated_poc/pricing_options/cpv_option.py +45 -26
  192. adcp/types/generated_poc/pricing_options/flat_rate_option.py +53 -47
  193. adcp/types/generated_poc/pricing_options/vcpm_option.py +70 -0
  194. adcp/types/generated_poc/property/base_property_source.py +16 -16
  195. adcp/types/generated_poc/property/create_property_list_request.py +5 -5
  196. adcp/types/generated_poc/property/create_property_list_response.py +4 -4
  197. adcp/types/generated_poc/property/delete_property_list_request.py +3 -3
  198. adcp/types/generated_poc/property/delete_property_list_response.py +4 -4
  199. adcp/types/generated_poc/property/feature_requirement.py +8 -8
  200. adcp/types/generated_poc/property/get_property_list_request.py +6 -6
  201. adcp/types/generated_poc/property/get_property_list_response.py +12 -12
  202. adcp/types/generated_poc/property/list_property_lists_request.py +6 -6
  203. adcp/types/generated_poc/property/list_property_lists_response.py +9 -9
  204. adcp/types/generated_poc/property/property_error.py +11 -11
  205. adcp/types/generated_poc/property/property_feature.py +5 -5
  206. adcp/types/generated_poc/property/property_feature_definition.py +19 -19
  207. adcp/types/generated_poc/property/property_list.py +12 -12
  208. adcp/types/generated_poc/property/property_list_changed_webhook.py +12 -12
  209. adcp/types/generated_poc/property/property_list_filters.py +9 -9
  210. adcp/types/generated_poc/property/update_property_list_request.py +9 -9
  211. adcp/types/generated_poc/property/update_property_list_response.py +3 -3
  212. adcp/types/generated_poc/protocol/__init__.py +3 -0
  213. adcp/types/generated_poc/protocol/get_adcp_capabilities_request.py +34 -0
  214. adcp/types/generated_poc/protocol/get_adcp_capabilities_response.py +353 -0
  215. adcp/types/generated_poc/protocols/adcp_extension.py +14 -17
  216. adcp/types/generated_poc/signals/activate_signal_request.py +4 -4
  217. adcp/types/generated_poc/signals/activate_signal_response.py +7 -7
  218. adcp/types/generated_poc/signals/get_signals_request.py +9 -9
  219. adcp/types/generated_poc/signals/get_signals_response.py +16 -16
  220. adcp/types/generated_poc/sponsored_intelligence/__init__.py +3 -0
  221. adcp/types/generated_poc/sponsored_intelligence/si_capabilities.py +102 -0
  222. adcp/types/generated_poc/sponsored_intelligence/si_get_offering_request.py +34 -0
  223. adcp/types/generated_poc/sponsored_intelligence/si_get_offering_response.py +100 -0
  224. adcp/types/generated_poc/sponsored_intelligence/si_identity.py +78 -0
  225. adcp/types/generated_poc/sponsored_intelligence/si_initiate_session_request.py +46 -0
  226. adcp/types/generated_poc/sponsored_intelligence/si_initiate_session_response.py +44 -0
  227. adcp/types/generated_poc/sponsored_intelligence/si_send_message_request.py +58 -0
  228. adcp/types/generated_poc/sponsored_intelligence/si_send_message_response.py +101 -0
  229. adcp/types/generated_poc/sponsored_intelligence/si_terminate_session_request.py +60 -0
  230. adcp/types/generated_poc/sponsored_intelligence/si_terminate_session_response.py +54 -0
  231. adcp/types/generated_poc/sponsored_intelligence/si_ui_element.py +30 -0
  232. adcp/utils/format_assets.py +5 -5
  233. adcp/utils/preview_cache.py +2 -2
  234. {adcp-2.19.0.dist-info → adcp-3.0.0.dist-info}/METADATA +1 -1
  235. adcp-3.0.0.dist-info/RECORD +264 -0
  236. {adcp-2.19.0.dist-info → adcp-3.0.0.dist-info}/WHEEL +1 -1
  237. adcp/types/generated_poc/enums/standard_format_ids.py +0 -45
  238. adcp/types/generated_poc/pricing_options/cpm_auction_option.py +0 -58
  239. adcp/types/generated_poc/pricing_options/cpm_fixed_option.py +0 -43
  240. adcp/types/generated_poc/pricing_options/vcpm_auction_option.py +0 -61
  241. adcp/types/generated_poc/pricing_options/vcpm_fixed_option.py +0 -47
  242. adcp/types/generated_poc/property/list_property_features_request.py +0 -25
  243. adcp/types/generated_poc/property/list_property_features_response.py +0 -24
  244. adcp-2.19.0.dist-info/RECORD +0 -220
  245. {adcp-2.19.0.dist-info → adcp-3.0.0.dist-info}/entry_points.txt +0 -0
  246. {adcp-2.19.0.dist-info → adcp-3.0.0.dist-info}/licenses/LICENSE +0 -0
  247. {adcp-2.19.0.dist-info → adcp-3.0.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: enums/publisher_identifier_types.json
3
- # timestamp: 2025-11-29T12:00:45+00:00
3
+ # timestamp: 2026-01-25T21:17:54+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -8,8 +8,8 @@ from enum import Enum
8
8
 
9
9
 
10
10
  class PublisherIdentifierTypes(Enum):
11
- tag_id = "tag_id"
12
- duns = "duns"
13
- lei = "lei"
14
- seller_id = "seller_id"
15
- gln = "gln"
11
+ tag_id = 'tag_id'
12
+ duns = 'duns'
13
+ lei = 'lei'
14
+ seller_id = 'seller_id'
15
+ gln = 'gln'
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: enums/reporting_frequency.json
3
- # timestamp: 2025-11-29T12:00:45+00:00
3
+ # timestamp: 2026-01-25T21:17:54+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -8,6 +8,6 @@ from enum import Enum
8
8
 
9
9
 
10
10
  class ReportingFrequency(Enum):
11
- hourly = "hourly"
12
- daily = "daily"
13
- monthly = "monthly"
11
+ hourly = 'hourly'
12
+ daily = 'daily'
13
+ monthly = 'monthly'
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: enums/signal_catalog_type.json
3
- # timestamp: 2025-11-29T12:00:45+00:00
3
+ # timestamp: 2026-01-25T21:17:54+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -8,6 +8,6 @@ from enum import Enum
8
8
 
9
9
 
10
10
  class SignalCatalogType(Enum):
11
- marketplace = "marketplace"
12
- custom = "custom"
13
- owned = "owned"
11
+ marketplace = 'marketplace'
12
+ custom = 'custom'
13
+ owned = 'owned'
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: enums/sort_direction.json
3
- # timestamp: 2025-11-29T12:00:45+00:00
3
+ # timestamp: 2026-01-25T21:17:54+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -8,5 +8,5 @@ from enum import Enum
8
8
 
9
9
 
10
10
  class SortDirection(Enum):
11
- asc = "asc"
12
- desc = "desc"
11
+ asc = 'asc'
12
+ desc = 'desc'
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: enums/task_status.json
3
- # timestamp: 2025-11-29T12:00:45+00:00
3
+ # timestamp: 2026-01-25T21:17:54+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -8,12 +8,12 @@ from enum import Enum
8
8
 
9
9
 
10
10
  class TaskStatus(Enum):
11
- submitted = "submitted"
12
- working = "working"
13
- input_required = "input-required"
14
- completed = "completed"
15
- canceled = "canceled"
16
- failed = "failed"
17
- rejected = "rejected"
18
- auth_required = "auth-required"
19
- unknown = "unknown"
11
+ submitted = 'submitted'
12
+ working = 'working'
13
+ input_required = 'input-required'
14
+ completed = 'completed'
15
+ canceled = 'canceled'
16
+ failed = 'failed'
17
+ rejected = 'rejected'
18
+ auth_required = 'auth-required'
19
+ unknown = 'unknown'
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: enums/task_type.json
3
- # timestamp: 2026-01-14T17:08:13+00:00
3
+ # timestamp: 2026-01-25T21:17:54+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -8,14 +8,14 @@ from enum import Enum
8
8
 
9
9
 
10
10
  class TaskType(Enum):
11
- create_media_buy = "create_media_buy"
12
- update_media_buy = "update_media_buy"
13
- sync_creatives = "sync_creatives"
14
- activate_signal = "activate_signal"
15
- get_signals = "get_signals"
16
- list_property_features = "list_property_features"
17
- create_property_list = "create_property_list"
18
- update_property_list = "update_property_list"
19
- get_property_list = "get_property_list"
20
- list_property_lists = "list_property_lists"
21
- delete_property_list = "delete_property_list"
11
+ create_media_buy = 'create_media_buy'
12
+ update_media_buy = 'update_media_buy'
13
+ sync_creatives = 'sync_creatives'
14
+ activate_signal = 'activate_signal'
15
+ get_signals = 'get_signals'
16
+ list_property_features = 'list_property_features'
17
+ create_property_list = 'create_property_list'
18
+ update_property_list = 'update_property_list'
19
+ get_property_list = 'get_property_list'
20
+ list_property_lists = 'list_property_lists'
21
+ delete_property_list = 'delete_property_list'
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: enums/update_frequency.json
3
- # timestamp: 2025-11-29T12:00:45+00:00
3
+ # timestamp: 2026-01-25T21:17:54+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -8,7 +8,7 @@ from enum import Enum
8
8
 
9
9
 
10
10
  class UpdateFrequency(Enum):
11
- realtime = "realtime"
12
- hourly = "hourly"
13
- daily = "daily"
14
- weekly = "weekly"
11
+ realtime = 'realtime'
12
+ hourly = 'hourly'
13
+ daily = 'daily'
14
+ weekly = 'weekly'
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: enums/url_asset_type.json
3
- # timestamp: 2025-11-29T12:00:45+00:00
3
+ # timestamp: 2026-01-25T21:17:54+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -8,6 +8,6 @@ from enum import Enum
8
8
 
9
9
 
10
10
  class UrlAssetType(Enum):
11
- clickthrough = "clickthrough"
12
- tracker_pixel = "tracker_pixel"
13
- tracker_script = "tracker_script"
11
+ clickthrough = 'clickthrough'
12
+ tracker_pixel = 'tracker_pixel'
13
+ tracker_script = 'tracker_script'
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: enums/validation_mode.json
3
- # timestamp: 2025-11-29T12:00:45+00:00
3
+ # timestamp: 2026-01-25T21:17:54+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -8,5 +8,5 @@ from enum import Enum
8
8
 
9
9
 
10
10
  class ValidationMode(Enum):
11
- strict = "strict"
12
- lenient = "lenient"
11
+ strict = 'strict'
12
+ lenient = 'lenient'
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: enums/vast_tracking_event.json
3
- # timestamp: 2025-11-29T12:00:45+00:00
3
+ # timestamp: 2026-01-25T21:17:54+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -8,19 +8,19 @@ from enum import Enum
8
8
 
9
9
 
10
10
  class VastTrackingEvent(Enum):
11
- start = "start"
12
- firstQuartile = "firstQuartile"
13
- midpoint = "midpoint"
14
- thirdQuartile = "thirdQuartile"
15
- complete = "complete"
16
- impression = "impression"
17
- click = "click"
18
- pause = "pause"
19
- resume = "resume"
20
- skip = "skip"
21
- mute = "mute"
22
- unmute = "unmute"
23
- fullscreen = "fullscreen"
24
- exitFullscreen = "exitFullscreen"
25
- playerExpand = "playerExpand"
26
- playerCollapse = "playerCollapse"
11
+ start = 'start'
12
+ firstQuartile = 'firstQuartile'
13
+ midpoint = 'midpoint'
14
+ thirdQuartile = 'thirdQuartile'
15
+ complete = 'complete'
16
+ impression = 'impression'
17
+ click = 'click'
18
+ pause = 'pause'
19
+ resume = 'resume'
20
+ skip = 'skip'
21
+ mute = 'mute'
22
+ unmute = 'unmute'
23
+ fullscreen = 'fullscreen'
24
+ exitFullscreen = 'exitFullscreen'
25
+ playerExpand = 'playerExpand'
26
+ playerCollapse = 'playerCollapse'
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: enums/vast_version.json
3
- # timestamp: 2025-11-29T12:00:45+00:00
3
+ # timestamp: 2026-01-25T21:17:54+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -8,8 +8,8 @@ from enum import Enum
8
8
 
9
9
 
10
10
  class VastVersion(Enum):
11
- field_2_0 = "2.0"
12
- field_3_0 = "3.0"
13
- field_4_0 = "4.0"
14
- field_4_1 = "4.1"
15
- field_4_2 = "4.2"
11
+ field_2_0 = '2.0'
12
+ field_3_0 = '3.0'
13
+ field_4_0 = '4.0'
14
+ field_4_1 = '4.1'
15
+ field_4_2 = '4.2'
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: enums/webhook_response_type.json
3
- # timestamp: 2025-11-29T12:00:45+00:00
3
+ # timestamp: 2026-01-25T21:17:54+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -8,7 +8,7 @@ from enum import Enum
8
8
 
9
9
 
10
10
  class WebhookResponseType(Enum):
11
- html = "html"
12
- json = "json"
13
- xml = "xml"
14
- javascript = "javascript"
11
+ html = 'html'
12
+ json = 'json'
13
+ xml = 'xml'
14
+ javascript = 'javascript'
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: enums/webhook_security_method.json
3
- # timestamp: 2025-11-29T12:00:45+00:00
3
+ # timestamp: 2026-01-25T21:17:54+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -8,6 +8,6 @@ from enum import Enum
8
8
 
9
9
 
10
10
  class WebhookSecurityMethod(Enum):
11
- hmac_sha256 = "hmac_sha256"
12
- api_key = "api_key"
13
- none = "none"
11
+ hmac_sha256 = 'hmac_sha256'
12
+ api_key = 'api_key'
13
+ none = 'none'
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: extensions/extension_meta.json
3
- # timestamp: 2026-01-14T17:08:13+00:00
3
+ # timestamp: 2026-01-26T11:59:53+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -11,40 +11,48 @@ from pydantic import AnyUrl, Field
11
11
 
12
12
 
13
13
  class AdcpExtensionFileSchema(AdCPBaseModel):
14
+ field_id: Annotated[
15
+ str,
16
+ Field(
17
+ alias='$id',
18
+ description='Extension ID following pattern /schemas/extensions/{namespace}.json',
19
+ pattern='^/schemas/extensions/[a-z][a-z0-9_]*\\.json$',
20
+ ),
21
+ ]
14
22
  field_schema: Annotated[
15
- Literal["http://json-schema.org/draft-07/schema#"], Field(alias="$schema")
23
+ Literal['http://json-schema.org/draft-07/schema#'], Field(alias='$schema')
16
24
  ]
17
25
  additionalProperties: Annotated[
18
26
  Any | None,
19
- Field(description="Whether additional properties are allowed in the extension data"),
27
+ Field(description='Whether additional properties are allowed in the extension data'),
20
28
  ] = None
21
- description: Annotated[str, Field(description="Description of what this extension provides")]
29
+ description: Annotated[str, Field(description='Description of what this extension provides')]
22
30
  docs_url: Annotated[
23
- AnyUrl | None, Field(description="URL to documentation for implementors of this extension")
31
+ AnyUrl | None, Field(description='URL to documentation for implementors of this extension')
24
32
  ] = None
25
33
  properties: Annotated[
26
34
  dict[str, Any],
27
- Field(description="Schema properties defining the structure of ext.{namespace} data"),
35
+ Field(description='Schema properties defining the structure of ext.{namespace} data'),
28
36
  ]
29
37
  required: Annotated[
30
- list[str] | None, Field(description="Required properties within the extension data")
38
+ list[str] | None, Field(description='Required properties within the extension data')
31
39
  ] = None
32
- title: Annotated[str, Field(description="Human-readable title for the extension")]
40
+ title: Annotated[str, Field(description='Human-readable title for the extension')]
33
41
  type: Annotated[
34
- Literal["object"],
35
- Field(description="Extensions must be objects (data within ext.{namespace})"),
42
+ Literal['object'],
43
+ Field(description='Extensions must be objects (data within ext.{namespace})'),
36
44
  ]
37
45
  valid_from: Annotated[
38
46
  str,
39
47
  Field(
40
48
  description="Minimum AdCP version this extension is compatible with (e.g., '2.5'). Extension will be included in all versioned schema builds >= this version.",
41
- pattern="^\\d+\\.\\d+$",
49
+ pattern='^\\d+\\.\\d+$',
42
50
  ),
43
51
  ]
44
52
  valid_until: Annotated[
45
53
  str | None,
46
54
  Field(
47
55
  description="Last AdCP version this extension is compatible with (e.g., '3.0'). Omit if extension is still valid for current and future versions.",
48
- pattern="^\\d+\\.\\d+$",
56
+ pattern='^\\d+\\.\\d+$',
49
57
  ),
50
58
  ] = None
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: media_buy/build_creative_request.json
3
- # timestamp: 2026-01-08T19:25:24+00:00
3
+ # timestamp: 2026-01-25T21:17:54+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -17,25 +17,25 @@ from ..core import format_id
17
17
 
18
18
  class BuildCreativeRequest(AdCPBaseModel):
19
19
  model_config = ConfigDict(
20
- extra="allow",
20
+ extra='allow',
21
21
  )
22
22
  context: context_1.ContextObject | None = None
23
23
  creative_manifest: Annotated[
24
24
  creative_manifest_1.CreativeManifest | None,
25
25
  Field(
26
- description="Creative manifest to transform or generate from. For pure generation, this should include the target format_id and any required input assets (e.g., promoted_offerings for generative formats). For transformation (e.g., resizing, reformatting), this is the complete creative to adapt."
26
+ description='Creative manifest to transform or generate from. For pure generation, this should include the target format_id and any required input assets (e.g., promoted_offerings for generative formats). For transformation (e.g., resizing, reformatting), this is the complete creative to adapt.'
27
27
  ),
28
28
  ] = None
29
29
  ext: ext_1.ExtensionObject | None = None
30
30
  message: Annotated[
31
31
  str | None,
32
32
  Field(
33
- description="Natural language instructions for the transformation or generation. For pure generation, this is the creative brief. For transformation, this provides guidance on how to adapt the creative."
33
+ description='Natural language instructions for the transformation or generation. For pure generation, this is the creative brief. For transformation, this provides guidance on how to adapt the creative.'
34
34
  ),
35
35
  ] = None
36
36
  target_format_id: Annotated[
37
37
  format_id.FormatId,
38
38
  Field(
39
- description="Format ID to generate. The format definition specifies required input assets and output structure."
39
+ description='Format ID to generate. The format definition specifies required input assets and output structure.'
40
40
  ),
41
41
  ]
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: media_buy/build_creative_response.json
3
- # timestamp: 2026-01-08T19:25:24+00:00
3
+ # timestamp: 2026-01-25T21:17:54+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -17,13 +17,13 @@ from ..core import ext as ext_1
17
17
 
18
18
  class BuildCreativeResponse2(AdCPBaseModel):
19
19
  model_config = ConfigDict(
20
- extra="allow",
20
+ extra='allow',
21
21
  )
22
22
  context: context_1.ContextObject | None = None
23
23
  errors: Annotated[
24
24
  list[error.Error],
25
25
  Field(
26
- description="Array of errors explaining why creative generation failed", min_length=1
26
+ description='Array of errors explaining why creative generation failed', min_length=1
27
27
  ),
28
28
  ]
29
29
  ext: ext_1.ExtensionObject | None = None
@@ -31,12 +31,12 @@ class BuildCreativeResponse2(AdCPBaseModel):
31
31
 
32
32
  class BuildCreativeResponse1(AdCPBaseModel):
33
33
  model_config = ConfigDict(
34
- extra="allow",
34
+ extra='allow',
35
35
  )
36
36
  context: context_1.ContextObject | None = None
37
37
  creative_manifest: Annotated[
38
38
  creative_manifest_1.CreativeManifest,
39
- Field(description="The generated or transformed creative manifest"),
39
+ Field(description='The generated or transformed creative manifest'),
40
40
  ]
41
41
  ext: ext_1.ExtensionObject | None = None
42
42
 
@@ -45,7 +45,7 @@ class BuildCreativeResponse(RootModel[BuildCreativeResponse1 | BuildCreativeResp
45
45
  root: Annotated[
46
46
  BuildCreativeResponse1 | BuildCreativeResponse2,
47
47
  Field(
48
- description="Response containing the transformed or generated creative manifest, ready for use with preview_creative or sync_creatives. Returns either the complete creative manifest OR error information, never both.",
49
- title="Build Creative Response",
48
+ description='Response containing the transformed or generated creative manifest, ready for use with preview_creative or sync_creatives. Returns either the complete creative manifest OR error information, never both.',
49
+ title='Build Creative Response',
50
50
  ),
51
51
  ]
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: media_buy/create_media_buy_async_response_input_required.json
3
- # timestamp: 2026-01-08T19:25:24+00:00
3
+ # timestamp: 2026-01-25T21:17:54+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -16,22 +16,22 @@ from ..core import ext as ext_1
16
16
 
17
17
 
18
18
  class Reason(Enum):
19
- APPROVAL_REQUIRED = "APPROVAL_REQUIRED"
20
- BUDGET_EXCEEDS_LIMIT = "BUDGET_EXCEEDS_LIMIT"
19
+ APPROVAL_REQUIRED = 'APPROVAL_REQUIRED'
20
+ BUDGET_EXCEEDS_LIMIT = 'BUDGET_EXCEEDS_LIMIT'
21
21
 
22
22
 
23
23
  class CreateMediaBuyInputRequired(AdCPBaseModel):
24
24
  model_config = ConfigDict(
25
- extra="allow",
25
+ extra='allow',
26
26
  )
27
27
  context: context_1.ContextObject | None = None
28
28
  errors: Annotated[
29
29
  list[error.Error] | None,
30
30
  Field(
31
- description="Optional validation errors or warnings for debugging purposes. Helps explain why input is required."
31
+ description='Optional validation errors or warnings for debugging purposes. Helps explain why input is required.'
32
32
  ),
33
33
  ] = None
34
34
  ext: ext_1.ExtensionObject | None = None
35
35
  reason: Annotated[
36
- Reason | None, Field(description="Reason code indicating why input is needed")
36
+ Reason | None, Field(description='Reason code indicating why input is needed')
37
37
  ] = None
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: media_buy/create_media_buy_async_response_submitted.json
3
- # timestamp: 2026-01-08T19:25:24+00:00
3
+ # timestamp: 2026-01-25T21:17:54+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -13,7 +13,7 @@ from ..core import ext as ext_1
13
13
 
14
14
  class CreateMediaBuySubmitted(AdCPBaseModel):
15
15
  model_config = ConfigDict(
16
- extra="allow",
16
+ extra='allow',
17
17
  )
18
18
  context: context_1.ContextObject | None = None
19
19
  ext: ext_1.ExtensionObject | None = None
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: media_buy/create_media_buy_async_response_working.json
3
- # timestamp: 2026-01-08T19:25:24+00:00
3
+ # timestamp: 2026-01-25T21:17:54+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -15,17 +15,17 @@ from ..core import ext as ext_1
15
15
 
16
16
  class CreateMediaBuyWorking(AdCPBaseModel):
17
17
  model_config = ConfigDict(
18
- extra="allow",
18
+ extra='allow',
19
19
  )
20
20
  context: context_1.ContextObject | None = None
21
21
  current_step: Annotated[
22
- str | None, Field(description="Current step or phase of the operation")
22
+ str | None, Field(description='Current step or phase of the operation')
23
23
  ] = None
24
24
  ext: ext_1.ExtensionObject | None = None
25
25
  percentage: Annotated[
26
- float | None, Field(description="Completion percentage (0-100)", ge=0.0, le=100.0)
26
+ float | None, Field(description='Completion percentage (0-100)', ge=0.0, le=100.0)
27
27
  ] = None
28
- step_number: Annotated[int | None, Field(description="Current step number", ge=1)] = None
28
+ step_number: Annotated[int | None, Field(description='Current step number', ge=1)] = None
29
29
  total_steps: Annotated[
30
- int | None, Field(description="Total number of steps in the operation", ge=1)
30
+ int | None, Field(description='Total number of steps in the operation', ge=1)
31
31
  ] = None