adcp 2.19.0__py3-none-any.whl → 3.1.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 +14 -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 +115 -23
  17. adcp/types/_ergonomic.py +35 -14
  18. adcp/types/_generated.py +346 -52
  19. adcp/types/aliases.py +68 -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.1.0.dist-info}/METADATA +1 -1
  235. adcp-3.1.0.dist-info/RECORD +264 -0
  236. {adcp-2.19.0.dist-info → adcp-3.1.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.1.0.dist-info}/entry_points.txt +0 -0
  246. {adcp-2.19.0.dist-info → adcp-3.1.0.dist-info}/licenses/LICENSE +0 -0
  247. {adcp-2.19.0.dist-info → adcp-3.1.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: core/assets/daast_asset.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,49 +15,49 @@ from ...enums import daast_version as daast_version_1
15
15
 
16
16
  class DaastAsset1(AdCPBaseModel):
17
17
  model_config = ConfigDict(
18
- extra="allow",
18
+ extra='allow',
19
19
  )
20
20
  companion_ads: Annotated[
21
- bool | None, Field(description="Whether companion display ads are included")
21
+ bool | None, Field(description='Whether companion display ads are included')
22
22
  ] = None
23
23
  daast_version: Annotated[
24
- daast_version_1.DaastVersion | None, Field(description="DAAST specification version")
24
+ daast_version_1.DaastVersion | None, Field(description='DAAST specification version')
25
25
  ] = None
26
26
  delivery_type: Annotated[
27
- Literal["url"],
28
- Field(description="Discriminator indicating DAAST is delivered via URL endpoint"),
27
+ Literal['url'],
28
+ Field(description='Discriminator indicating DAAST is delivered via URL endpoint'),
29
29
  ]
30
30
  duration_ms: Annotated[
31
- int | None, Field(description="Expected audio duration in milliseconds (if known)", ge=0)
31
+ int | None, Field(description='Expected audio duration in milliseconds (if known)', ge=0)
32
32
  ] = None
33
33
  tracking_events: Annotated[
34
34
  list[daast_tracking_event.DaastTrackingEvent] | None,
35
- Field(description="Tracking events supported by this DAAST tag"),
35
+ Field(description='Tracking events supported by this DAAST tag'),
36
36
  ] = None
37
- url: Annotated[AnyUrl, Field(description="URL endpoint that returns DAAST XML")]
37
+ url: Annotated[AnyUrl, Field(description='URL endpoint that returns DAAST XML')]
38
38
 
39
39
 
40
40
  class DaastAsset2(AdCPBaseModel):
41
41
  model_config = ConfigDict(
42
- extra="allow",
42
+ extra='allow',
43
43
  )
44
44
  companion_ads: Annotated[
45
- bool | None, Field(description="Whether companion display ads are included")
45
+ bool | None, Field(description='Whether companion display ads are included')
46
46
  ] = None
47
- content: Annotated[str, Field(description="Inline DAAST XML content")]
47
+ content: Annotated[str, Field(description='Inline DAAST XML content')]
48
48
  daast_version: Annotated[
49
- daast_version_1.DaastVersion | None, Field(description="DAAST specification version")
49
+ daast_version_1.DaastVersion | None, Field(description='DAAST specification version')
50
50
  ] = None
51
51
  delivery_type: Annotated[
52
- Literal["inline"],
53
- Field(description="Discriminator indicating DAAST is delivered as inline XML content"),
52
+ Literal['inline'],
53
+ Field(description='Discriminator indicating DAAST is delivered as inline XML content'),
54
54
  ]
55
55
  duration_ms: Annotated[
56
- int | None, Field(description="Expected audio duration in milliseconds (if known)", ge=0)
56
+ int | None, Field(description='Expected audio duration in milliseconds (if known)', ge=0)
57
57
  ] = None
58
58
  tracking_events: Annotated[
59
59
  list[daast_tracking_event.DaastTrackingEvent] | None,
60
- Field(description="Tracking events supported by this DAAST tag"),
60
+ Field(description='Tracking events supported by this DAAST tag'),
61
61
  ] = None
62
62
 
63
63
 
@@ -65,7 +65,7 @@ class DaastAsset(RootModel[DaastAsset1 | DaastAsset2]):
65
65
  root: Annotated[
66
66
  DaastAsset1 | DaastAsset2,
67
67
  Field(
68
- description="DAAST (Digital Audio Ad Serving Template) tag for third-party audio ad serving",
69
- title="DAAST Asset",
68
+ description='DAAST (Digital Audio Ad Serving Template) tag for third-party audio ad serving',
69
+ title='DAAST Asset',
70
70
  ),
71
71
  ]
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: core/assets/html_asset.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
 
@@ -12,7 +12,7 @@ from pydantic import ConfigDict, Field
12
12
 
13
13
  class HtmlAsset(AdCPBaseModel):
14
14
  model_config = ConfigDict(
15
- extra="allow",
15
+ extra='allow',
16
16
  )
17
- content: Annotated[str, Field(description="HTML content")]
17
+ content: Annotated[str, Field(description='HTML content')]
18
18
  version: Annotated[str | None, Field(description="HTML version (e.g., 'HTML5')")] = None
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: core/assets/image_asset.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
 
@@ -12,12 +12,12 @@ from pydantic import AnyUrl, ConfigDict, Field
12
12
 
13
13
  class ImageAsset(AdCPBaseModel):
14
14
  model_config = ConfigDict(
15
- extra="allow",
15
+ extra='allow',
16
16
  )
17
- alt_text: Annotated[str | None, Field(description="Alternative text for accessibility")] = None
17
+ alt_text: Annotated[str | None, Field(description='Alternative text for accessibility')] = None
18
18
  format: Annotated[
19
- str | None, Field(description="Image file format (jpg, png, gif, webp, etc.)")
19
+ str | None, Field(description='Image file format (jpg, png, gif, webp, etc.)')
20
20
  ] = None
21
- height: Annotated[int, Field(description="Height in pixels", ge=1)]
22
- url: Annotated[AnyUrl, Field(description="URL to the image asset")]
23
- width: Annotated[int, Field(description="Width in pixels", ge=1)]
21
+ height: Annotated[int, Field(description='Height in pixels', ge=1)]
22
+ url: Annotated[AnyUrl, Field(description='URL to the image asset')]
23
+ width: Annotated[int, Field(description='Width in pixels', ge=1)]
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: core/assets/javascript_asset.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
 
@@ -14,10 +14,10 @@ from ...enums import javascript_module_type
14
14
 
15
15
  class JavascriptAsset(AdCPBaseModel):
16
16
  model_config = ConfigDict(
17
- extra="allow",
17
+ extra='allow',
18
18
  )
19
- content: Annotated[str, Field(description="JavaScript content")]
19
+ content: Annotated[str, Field(description='JavaScript content')]
20
20
  module_type: Annotated[
21
21
  javascript_module_type.JavascriptModuleType | None,
22
- Field(description="JavaScript module type"),
22
+ Field(description='JavaScript module type'),
23
23
  ] = None
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: core/assets/text_asset.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
 
@@ -12,9 +12,9 @@ from pydantic import ConfigDict, Field
12
12
 
13
13
  class TextAsset(AdCPBaseModel):
14
14
  model_config = ConfigDict(
15
- extra="allow",
15
+ extra='allow',
16
16
  )
17
- content: Annotated[str, Field(description="Text content")]
17
+ content: Annotated[str, Field(description='Text content')]
18
18
  language: Annotated[str | None, Field(description="Language code (e.g., 'en', 'es', 'fr')")] = (
19
19
  None
20
20
  )
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: core/assets/url_asset.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
 
@@ -14,12 +14,12 @@ from ...enums import url_asset_type
14
14
 
15
15
  class UrlAsset(AdCPBaseModel):
16
16
  model_config = ConfigDict(
17
- extra="allow",
17
+ extra='allow',
18
18
  )
19
19
  description: Annotated[
20
- str | None, Field(description="Description of what this URL points to")
20
+ str | None, Field(description='Description of what this URL points to')
21
21
  ] = None
22
- url: Annotated[AnyUrl, Field(description="URL reference")]
22
+ url: Annotated[AnyUrl, Field(description='URL reference')]
23
23
  url_type: Annotated[
24
24
  url_asset_type.UrlAssetType | None,
25
25
  Field(
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: core/assets/vast_asset.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,51 +15,51 @@ from ...enums import vast_version as vast_version_1
15
15
 
16
16
  class VastAsset1(AdCPBaseModel):
17
17
  model_config = ConfigDict(
18
- extra="allow",
18
+ extra='allow',
19
19
  )
20
20
  delivery_type: Annotated[
21
- Literal["url"],
22
- Field(description="Discriminator indicating VAST is delivered via URL endpoint"),
21
+ Literal['url'],
22
+ Field(description='Discriminator indicating VAST is delivered via URL endpoint'),
23
23
  ]
24
24
  duration_ms: Annotated[
25
- int | None, Field(description="Expected video duration in milliseconds (if known)", ge=0)
25
+ int | None, Field(description='Expected video duration in milliseconds (if known)', ge=0)
26
26
  ] = None
27
27
  tracking_events: Annotated[
28
28
  list[vast_tracking_event.VastTrackingEvent] | None,
29
- Field(description="Tracking events supported by this VAST tag"),
29
+ Field(description='Tracking events supported by this VAST tag'),
30
30
  ] = None
31
- url: Annotated[AnyUrl, Field(description="URL endpoint that returns VAST XML")]
31
+ url: Annotated[AnyUrl, Field(description='URL endpoint that returns VAST XML')]
32
32
  vast_version: Annotated[
33
- vast_version_1.VastVersion | None, Field(description="VAST specification version")
33
+ vast_version_1.VastVersion | None, Field(description='VAST specification version')
34
34
  ] = None
35
35
  vpaid_enabled: Annotated[
36
36
  bool | None,
37
- Field(description="Whether VPAID (Video Player-Ad Interface Definition) is supported"),
37
+ Field(description='Whether VPAID (Video Player-Ad Interface Definition) is supported'),
38
38
  ] = None
39
39
 
40
40
 
41
41
  class VastAsset2(AdCPBaseModel):
42
42
  model_config = ConfigDict(
43
- extra="allow",
43
+ extra='allow',
44
44
  )
45
- content: Annotated[str, Field(description="Inline VAST XML content")]
45
+ content: Annotated[str, Field(description='Inline VAST XML content')]
46
46
  delivery_type: Annotated[
47
- Literal["inline"],
48
- Field(description="Discriminator indicating VAST is delivered as inline XML content"),
47
+ Literal['inline'],
48
+ Field(description='Discriminator indicating VAST is delivered as inline XML content'),
49
49
  ]
50
50
  duration_ms: Annotated[
51
- int | None, Field(description="Expected video duration in milliseconds (if known)", ge=0)
51
+ int | None, Field(description='Expected video duration in milliseconds (if known)', ge=0)
52
52
  ] = None
53
53
  tracking_events: Annotated[
54
54
  list[vast_tracking_event.VastTrackingEvent] | None,
55
- Field(description="Tracking events supported by this VAST tag"),
55
+ Field(description='Tracking events supported by this VAST tag'),
56
56
  ] = None
57
57
  vast_version: Annotated[
58
- vast_version_1.VastVersion | None, Field(description="VAST specification version")
58
+ vast_version_1.VastVersion | None, Field(description='VAST specification version')
59
59
  ] = None
60
60
  vpaid_enabled: Annotated[
61
61
  bool | None,
62
- Field(description="Whether VPAID (Video Player-Ad Interface Definition) is supported"),
62
+ Field(description='Whether VPAID (Video Player-Ad Interface Definition) is supported'),
63
63
  ] = None
64
64
 
65
65
 
@@ -67,7 +67,7 @@ class VastAsset(RootModel[VastAsset1 | VastAsset2]):
67
67
  root: Annotated[
68
68
  VastAsset1 | VastAsset2,
69
69
  Field(
70
- description="VAST (Video Ad Serving Template) tag for third-party video ad serving",
71
- title="VAST Asset",
70
+ description='VAST (Video Ad Serving Template) tag for third-party video ad serving',
71
+ title='VAST Asset',
72
72
  ),
73
73
  ]
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: core/assets/video_asset.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
 
@@ -12,17 +12,17 @@ from pydantic import AnyUrl, ConfigDict, Field
12
12
 
13
13
  class VideoAsset(AdCPBaseModel):
14
14
  model_config = ConfigDict(
15
- extra="allow",
15
+ extra='allow',
16
16
  )
17
17
  bitrate_kbps: Annotated[
18
- int | None, Field(description="Video bitrate in kilobits per second", ge=1)
18
+ int | None, Field(description='Video bitrate in kilobits per second', ge=1)
19
19
  ] = None
20
20
  duration_ms: Annotated[
21
- int | None, Field(description="Video duration in milliseconds", ge=1)
21
+ int | None, Field(description='Video duration in milliseconds', ge=1)
22
22
  ] = None
23
- format: Annotated[str | None, Field(description="Video file format (mp4, webm, mov, etc.)")] = (
23
+ format: Annotated[str | None, Field(description='Video file format (mp4, webm, mov, etc.)')] = (
24
24
  None
25
25
  )
26
- height: Annotated[int, Field(description="Height in pixels", ge=1)]
27
- url: Annotated[AnyUrl, Field(description="URL to the video asset")]
28
- width: Annotated[int, Field(description="Width in pixels", ge=1)]
26
+ height: Annotated[int, Field(description='Height in pixels', ge=1)]
27
+ url: Annotated[AnyUrl, Field(description='URL to the video asset')]
28
+ width: Annotated[int, Field(description='Width in pixels', ge=1)]
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: core/assets/webhook_asset.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
 
@@ -20,34 +20,34 @@ class Security(AdCPBaseModel):
20
20
  str | None, Field(description="Header name for HMAC signature (e.g., 'X-Signature')")
21
21
  ] = None
22
22
  method: Annotated[
23
- webhook_security_method.WebhookSecurityMethod, Field(description="Authentication method")
23
+ webhook_security_method.WebhookSecurityMethod, Field(description='Authentication method')
24
24
  ]
25
25
 
26
26
 
27
27
  class WebhookAsset(AdCPBaseModel):
28
28
  model_config = ConfigDict(
29
- extra="allow",
29
+ extra='allow',
30
30
  )
31
- method: Annotated[http_method.HttpMethod | None, Field(description="HTTP method")] = (
31
+ method: Annotated[http_method.HttpMethod | None, Field(description='HTTP method')] = (
32
32
  http_method.HttpMethod.POST
33
33
  )
34
34
  required_macros: Annotated[
35
35
  list[str] | None,
36
- Field(description="Universal macros that must be provided for webhook to function"),
36
+ Field(description='Universal macros that must be provided for webhook to function'),
37
37
  ] = None
38
38
  response_type: Annotated[
39
39
  webhook_response_type.WebhookResponseType,
40
- Field(description="Expected content type of webhook response"),
40
+ Field(description='Expected content type of webhook response'),
41
41
  ]
42
- security: Annotated[Security, Field(description="Security configuration for webhook calls")]
42
+ security: Annotated[Security, Field(description='Security configuration for webhook calls')]
43
43
  supported_macros: Annotated[
44
44
  list[str] | None,
45
45
  Field(
46
- description="Universal macros that can be passed to webhook (e.g., {DEVICE_TYPE}, {COUNTRY})"
46
+ description='Universal macros that can be passed to webhook (e.g., {DEVICE_TYPE}, {COUNTRY})'
47
47
  ),
48
48
  ] = None
49
49
  timeout_ms: Annotated[
50
50
  int | None,
51
- Field(description="Maximum time to wait for response in milliseconds", ge=10, le=5000),
51
+ Field(description='Maximum time to wait for response in milliseconds', ge=10, le=5000),
52
52
  ] = 500
53
- url: Annotated[AnyUrl, Field(description="Webhook URL to call for dynamic content")]
53
+ url: Annotated[AnyUrl, Field(description='Webhook URL to call for dynamic content')]
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: core/async_response_data.json
3
- # timestamp: 2025-12-11T15:09:37+00:00
3
+ # timestamp: 2026-01-25T21:17:54+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -66,7 +66,7 @@ class AdcpAsyncResponseData(
66
66
  | sync_creatives_async_response_input_required.SyncCreativesInputRequired
67
67
  | sync_creatives_async_response_submitted.SyncCreativesSubmitted,
68
68
  Field(
69
- description="Union of all possible data payloads for async task webhook responses. For completed/failed statuses, use the main task response schema. For working/input-required/submitted, use the status-specific schemas.",
70
- title="AdCP Async Response Data",
69
+ description='Union of all possible data payloads for async task webhook responses. For completed/failed statuses, use the main task response schema. For working/input-required/submitted, use the status-specific schemas.',
70
+ title='AdCP Async Response Data',
71
71
  ),
72
72
  ]