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.
- adcp/ADCP_VERSION +1 -1
- adcp/__init__.py +6 -14
- adcp/__main__.py +94 -51
- adcp/adagents.py +91 -19
- adcp/client.py +865 -0
- adcp/protocols/a2a.py +84 -0
- adcp/protocols/base.py +101 -0
- adcp/protocols/mcp.py +84 -0
- adcp/server/__init__.py +49 -0
- adcp/server/base.py +368 -0
- adcp/server/content_standards.py +561 -0
- adcp/server/governance.py +491 -0
- adcp/server/mcp_tools.py +471 -0
- adcp/server/proposal.py +334 -0
- adcp/server/sponsored_intelligence.py +444 -0
- adcp/types/__init__.py +111 -23
- adcp/types/_ergonomic.py +35 -14
- adcp/types/_generated.py +346 -52
- adcp/types/aliases.py +13 -20
- adcp/types/base.py +1 -1
- adcp/types/generated_poc/adagents.py +196 -189
- adcp/types/generated_poc/content_standards/__init__.py +3 -0
- adcp/types/generated_poc/content_standards/artifact.py +208 -0
- adcp/types/generated_poc/content_standards/artifact_webhook_payload.py +64 -0
- adcp/types/generated_poc/content_standards/calibrate_content_request.py +17 -0
- adcp/types/generated_poc/content_standards/calibrate_content_response.py +74 -0
- adcp/types/generated_poc/content_standards/content_standards.py +66 -0
- adcp/types/generated_poc/content_standards/create_content_standards_request.py +97 -0
- adcp/types/generated_poc/content_standards/create_content_standards_response.py +52 -0
- adcp/types/generated_poc/content_standards/get_content_standards_request.py +21 -0
- adcp/types/generated_poc/content_standards/get_content_standards_response.py +43 -0
- adcp/types/generated_poc/content_standards/get_media_buy_artifacts_request.py +64 -0
- adcp/types/generated_poc/content_standards/get_media_buy_artifacts_response.py +117 -0
- adcp/types/generated_poc/content_standards/list_content_standards_request.py +31 -0
- adcp/types/generated_poc/content_standards/list_content_standards_response.py +48 -0
- adcp/types/generated_poc/content_standards/update_content_standards_request.py +101 -0
- adcp/types/generated_poc/content_standards/update_content_standards_response.py +34 -0
- adcp/types/generated_poc/content_standards/validate_content_delivery_request.py +59 -0
- adcp/types/generated_poc/content_standards/validate_content_delivery_response.py +85 -0
- adcp/types/generated_poc/core/activation_key.py +9 -9
- adcp/types/generated_poc/core/assets/audio_asset.py +6 -6
- adcp/types/generated_poc/core/assets/css_asset.py +3 -3
- adcp/types/generated_poc/core/assets/daast_asset.py +19 -19
- adcp/types/generated_poc/core/assets/html_asset.py +3 -3
- adcp/types/generated_poc/core/assets/image_asset.py +7 -7
- adcp/types/generated_poc/core/assets/javascript_asset.py +4 -4
- adcp/types/generated_poc/core/assets/text_asset.py +3 -3
- adcp/types/generated_poc/core/assets/url_asset.py +4 -4
- adcp/types/generated_poc/core/assets/vast_asset.py +19 -19
- adcp/types/generated_poc/core/assets/video_asset.py +8 -8
- adcp/types/generated_poc/core/assets/webhook_asset.py +10 -10
- adcp/types/generated_poc/core/async_response_data.py +3 -3
- adcp/types/generated_poc/core/brand_manifest.py +122 -59
- adcp/types/generated_poc/core/brand_manifest_ref.py +10 -10
- adcp/types/generated_poc/core/context.py +2 -2
- adcp/types/generated_poc/core/creative_asset.py +20 -19
- adcp/types/generated_poc/core/creative_assignment.py +4 -4
- adcp/types/generated_poc/core/creative_filters.py +18 -28
- adcp/types/generated_poc/core/creative_manifest.py +3 -3
- adcp/types/generated_poc/core/creative_policy.py +5 -5
- adcp/types/generated_poc/core/delivery_metrics.py +33 -33
- adcp/types/generated_poc/core/deployment.py +21 -21
- adcp/types/generated_poc/core/destination.py +12 -12
- adcp/types/generated_poc/core/error.py +7 -7
- adcp/types/generated_poc/core/ext.py +2 -2
- adcp/types/generated_poc/core/format.py +66 -66
- adcp/types/generated_poc/core/format_id.py +6 -6
- adcp/types/generated_poc/core/frequency_cap.py +3 -3
- adcp/types/generated_poc/core/identifier.py +3 -3
- adcp/types/generated_poc/core/mcp_webhook_payload.py +11 -11
- adcp/types/generated_poc/core/measurement.py +9 -9
- adcp/types/generated_poc/core/media_buy.py +8 -8
- adcp/types/generated_poc/core/media_buy_features.py +29 -0
- adcp/types/generated_poc/core/offering.py +80 -0
- adcp/types/generated_poc/core/package.py +9 -9
- adcp/types/generated_poc/core/performance_feedback.py +19 -19
- adcp/types/generated_poc/core/placement.py +5 -5
- adcp/types/generated_poc/core/pricing_option.py +9 -15
- adcp/types/generated_poc/core/product.py +21 -21
- adcp/types/generated_poc/core/product_allocation.py +48 -0
- adcp/types/generated_poc/core/product_filters.py +89 -24
- adcp/types/generated_poc/core/promoted_offerings.py +29 -38
- adcp/types/generated_poc/core/promoted_products.py +3 -3
- adcp/types/generated_poc/core/property.py +10 -10
- adcp/types/generated_poc/core/property_id.py +5 -5
- adcp/types/generated_poc/core/property_list_ref.py +5 -5
- adcp/types/generated_poc/core/property_tag.py +5 -5
- adcp/types/generated_poc/core/proposal.py +64 -0
- adcp/types/generated_poc/core/protocol_envelope.py +9 -9
- adcp/types/generated_poc/core/publisher_property_selector.py +14 -14
- adcp/types/generated_poc/core/push_notification_config.py +6 -6
- adcp/types/generated_poc/core/reporting_capabilities.py +9 -9
- adcp/types/generated_poc/core/reporting_webhook.py +70 -0
- adcp/types/generated_poc/core/response.py +5 -5
- adcp/types/generated_poc/core/signal_filters.py +6 -6
- adcp/types/generated_poc/core/start_timing.py +4 -4
- adcp/types/generated_poc/core/sub_asset.py +15 -15
- adcp/types/generated_poc/core/targeting.py +59 -18
- adcp/types/generated_poc/creative/list_creative_formats_request.py +21 -21
- adcp/types/generated_poc/creative/list_creative_formats_response.py +6 -6
- adcp/types/generated_poc/creative/preview_creative_request.py +25 -25
- adcp/types/generated_poc/creative/preview_creative_response.py +29 -29
- adcp/types/generated_poc/creative/preview_render.py +26 -26
- adcp/types/generated_poc/enums/adcp_domain.py +5 -5
- adcp/types/generated_poc/enums/asset_content_type.py +14 -14
- adcp/types/generated_poc/enums/auth_scheme.py +3 -3
- adcp/types/generated_poc/enums/available_metric.py +10 -10
- adcp/types/generated_poc/enums/channels.py +21 -11
- adcp/types/generated_poc/enums/co_branding_requirement.py +4 -4
- adcp/types/generated_poc/enums/creative_action.py +6 -6
- adcp/types/generated_poc/enums/creative_agent_capability.py +5 -5
- adcp/types/generated_poc/enums/creative_sort_field.py +7 -7
- adcp/types/generated_poc/enums/creative_status.py +6 -5
- adcp/types/generated_poc/enums/daast_tracking_event.py +12 -12
- adcp/types/generated_poc/enums/daast_version.py +3 -3
- adcp/types/generated_poc/enums/delivery_type.py +3 -3
- adcp/types/generated_poc/enums/dimension_unit.py +5 -5
- adcp/types/generated_poc/enums/feed_format.py +4 -4
- adcp/types/generated_poc/enums/feedback_source.py +5 -5
- adcp/types/generated_poc/enums/format_category.py +8 -8
- adcp/types/generated_poc/enums/format_id_parameter.py +3 -3
- adcp/types/generated_poc/enums/frequency_cap_scope.py +4 -4
- adcp/types/generated_poc/enums/geo_level.py +14 -0
- adcp/types/generated_poc/enums/history_entry_type.py +3 -3
- adcp/types/generated_poc/enums/http_method.py +3 -3
- adcp/types/generated_poc/enums/identifier_types.py +20 -20
- adcp/types/generated_poc/enums/javascript_module_type.py +4 -4
- adcp/types/generated_poc/enums/landing_page_requirement.py +4 -4
- adcp/types/generated_poc/enums/markdown_flavor.py +3 -3
- adcp/types/generated_poc/enums/media_buy_status.py +5 -5
- adcp/types/generated_poc/enums/metric_type.py +9 -9
- adcp/types/generated_poc/enums/metro_system.py +15 -0
- adcp/types/generated_poc/enums/notification_type.py +5 -5
- adcp/types/generated_poc/enums/pacing.py +4 -4
- adcp/types/generated_poc/enums/postal_system.py +19 -0
- adcp/types/generated_poc/enums/preview_output_format.py +3 -3
- adcp/types/generated_poc/enums/pricing_model.py +8 -8
- adcp/types/generated_poc/enums/property_type.py +9 -8
- adcp/types/generated_poc/enums/publisher_identifier_types.py +6 -6
- adcp/types/generated_poc/enums/reporting_frequency.py +4 -4
- adcp/types/generated_poc/enums/signal_catalog_type.py +4 -4
- adcp/types/generated_poc/enums/sort_direction.py +3 -3
- adcp/types/generated_poc/enums/task_status.py +10 -10
- adcp/types/generated_poc/enums/task_type.py +12 -12
- adcp/types/generated_poc/enums/update_frequency.py +5 -5
- adcp/types/generated_poc/enums/url_asset_type.py +4 -4
- adcp/types/generated_poc/enums/validation_mode.py +3 -3
- adcp/types/generated_poc/enums/vast_tracking_event.py +17 -17
- adcp/types/generated_poc/enums/vast_version.py +6 -6
- adcp/types/generated_poc/enums/webhook_response_type.py +5 -5
- adcp/types/generated_poc/enums/webhook_security_method.py +4 -4
- adcp/types/generated_poc/extensions/extension_meta.py +20 -12
- adcp/types/generated_poc/media_buy/build_creative_request.py +5 -5
- adcp/types/generated_poc/media_buy/build_creative_response.py +7 -7
- adcp/types/generated_poc/media_buy/create_media_buy_async_response_input_required.py +6 -6
- adcp/types/generated_poc/media_buy/create_media_buy_async_response_submitted.py +2 -2
- adcp/types/generated_poc/media_buy/create_media_buy_async_response_working.py +6 -6
- adcp/types/generated_poc/media_buy/create_media_buy_request.py +65 -37
- adcp/types/generated_poc/media_buy/create_media_buy_response.py +8 -8
- adcp/types/generated_poc/media_buy/get_media_buy_delivery_request.py +9 -9
- adcp/types/generated_poc/media_buy/get_media_buy_delivery_response.py +52 -52
- adcp/types/generated_poc/media_buy/get_products_async_response_input_required.py +7 -7
- adcp/types/generated_poc/media_buy/get_products_async_response_submitted.py +3 -3
- adcp/types/generated_poc/media_buy/get_products_async_response_working.py +5 -5
- adcp/types/generated_poc/media_buy/get_products_request.py +14 -5
- adcp/types/generated_poc/media_buy/get_products_response.py +12 -6
- adcp/types/generated_poc/media_buy/list_authorized_properties_request.py +4 -4
- adcp/types/generated_poc/media_buy/list_authorized_properties_response.py +9 -9
- adcp/types/generated_poc/media_buy/list_creative_formats_request.py +10 -10
- adcp/types/generated_poc/media_buy/list_creative_formats_response.py +6 -6
- adcp/types/generated_poc/media_buy/list_creatives_request.py +24 -24
- adcp/types/generated_poc/media_buy/list_creatives_response.py +54 -57
- adcp/types/generated_poc/media_buy/package_request.py +12 -12
- adcp/types/generated_poc/media_buy/package_update.py +119 -0
- adcp/types/generated_poc/media_buy/provide_performance_feedback_request.py +20 -20
- adcp/types/generated_poc/media_buy/provide_performance_feedback_response.py +7 -7
- adcp/types/generated_poc/media_buy/sync_creatives_async_response_input_required.py +6 -6
- adcp/types/generated_poc/media_buy/sync_creatives_async_response_submitted.py +2 -2
- adcp/types/generated_poc/media_buy/sync_creatives_async_response_working.py +8 -8
- adcp/types/generated_poc/media_buy/sync_creatives_request.py +8 -8
- adcp/types/generated_poc/media_buy/sync_creatives_response.py +16 -16
- adcp/types/generated_poc/media_buy/update_media_buy_async_response_input_required.py +5 -5
- adcp/types/generated_poc/media_buy/update_media_buy_async_response_submitted.py +2 -2
- adcp/types/generated_poc/media_buy/update_media_buy_async_response_working.py +6 -6
- adcp/types/generated_poc/media_buy/update_media_buy_request.py +28 -124
- adcp/types/generated_poc/media_buy/update_media_buy_response.py +8 -8
- adcp/types/generated_poc/pricing_options/cpc_option.py +40 -15
- adcp/types/generated_poc/pricing_options/cpcv_option.py +41 -16
- adcp/types/generated_poc/pricing_options/cpm_option.py +62 -0
- adcp/types/generated_poc/pricing_options/cpp_option.py +46 -23
- adcp/types/generated_poc/pricing_options/cpv_option.py +45 -26
- adcp/types/generated_poc/pricing_options/flat_rate_option.py +53 -47
- adcp/types/generated_poc/pricing_options/vcpm_option.py +70 -0
- adcp/types/generated_poc/property/base_property_source.py +16 -16
- adcp/types/generated_poc/property/create_property_list_request.py +5 -5
- adcp/types/generated_poc/property/create_property_list_response.py +4 -4
- adcp/types/generated_poc/property/delete_property_list_request.py +3 -3
- adcp/types/generated_poc/property/delete_property_list_response.py +4 -4
- adcp/types/generated_poc/property/feature_requirement.py +8 -8
- adcp/types/generated_poc/property/get_property_list_request.py +6 -6
- adcp/types/generated_poc/property/get_property_list_response.py +12 -12
- adcp/types/generated_poc/property/list_property_lists_request.py +6 -6
- adcp/types/generated_poc/property/list_property_lists_response.py +9 -9
- adcp/types/generated_poc/property/property_error.py +11 -11
- adcp/types/generated_poc/property/property_feature.py +5 -5
- adcp/types/generated_poc/property/property_feature_definition.py +19 -19
- adcp/types/generated_poc/property/property_list.py +12 -12
- adcp/types/generated_poc/property/property_list_changed_webhook.py +12 -12
- adcp/types/generated_poc/property/property_list_filters.py +9 -9
- adcp/types/generated_poc/property/update_property_list_request.py +9 -9
- adcp/types/generated_poc/property/update_property_list_response.py +3 -3
- adcp/types/generated_poc/protocol/__init__.py +3 -0
- adcp/types/generated_poc/protocol/get_adcp_capabilities_request.py +34 -0
- adcp/types/generated_poc/protocol/get_adcp_capabilities_response.py +353 -0
- adcp/types/generated_poc/protocols/adcp_extension.py +14 -17
- adcp/types/generated_poc/signals/activate_signal_request.py +4 -4
- adcp/types/generated_poc/signals/activate_signal_response.py +7 -7
- adcp/types/generated_poc/signals/get_signals_request.py +9 -9
- adcp/types/generated_poc/signals/get_signals_response.py +16 -16
- adcp/types/generated_poc/sponsored_intelligence/__init__.py +3 -0
- adcp/types/generated_poc/sponsored_intelligence/si_capabilities.py +102 -0
- adcp/types/generated_poc/sponsored_intelligence/si_get_offering_request.py +34 -0
- adcp/types/generated_poc/sponsored_intelligence/si_get_offering_response.py +100 -0
- adcp/types/generated_poc/sponsored_intelligence/si_identity.py +78 -0
- adcp/types/generated_poc/sponsored_intelligence/si_initiate_session_request.py +46 -0
- adcp/types/generated_poc/sponsored_intelligence/si_initiate_session_response.py +44 -0
- adcp/types/generated_poc/sponsored_intelligence/si_send_message_request.py +58 -0
- adcp/types/generated_poc/sponsored_intelligence/si_send_message_response.py +101 -0
- adcp/types/generated_poc/sponsored_intelligence/si_terminate_session_request.py +60 -0
- adcp/types/generated_poc/sponsored_intelligence/si_terminate_session_response.py +54 -0
- adcp/types/generated_poc/sponsored_intelligence/si_ui_element.py +30 -0
- adcp/utils/format_assets.py +5 -5
- adcp/utils/preview_cache.py +2 -2
- {adcp-2.19.0.dist-info → adcp-3.0.0.dist-info}/METADATA +1 -1
- adcp-3.0.0.dist-info/RECORD +264 -0
- {adcp-2.19.0.dist-info → adcp-3.0.0.dist-info}/WHEEL +1 -1
- adcp/types/generated_poc/enums/standard_format_ids.py +0 -45
- adcp/types/generated_poc/pricing_options/cpm_auction_option.py +0 -58
- adcp/types/generated_poc/pricing_options/cpm_fixed_option.py +0 -43
- adcp/types/generated_poc/pricing_options/vcpm_auction_option.py +0 -61
- adcp/types/generated_poc/pricing_options/vcpm_fixed_option.py +0 -47
- adcp/types/generated_poc/property/list_property_features_request.py +0 -25
- adcp/types/generated_poc/property/list_property_features_response.py +0 -24
- adcp-2.19.0.dist-info/RECORD +0 -220
- {adcp-2.19.0.dist-info → adcp-3.0.0.dist-info}/entry_points.txt +0 -0
- {adcp-2.19.0.dist-info → adcp-3.0.0.dist-info}/licenses/LICENSE +0 -0
- {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: core/assets/daast_asset.json
|
|
3
|
-
# timestamp: 2026-01-
|
|
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=
|
|
18
|
+
extra='allow',
|
|
19
19
|
)
|
|
20
20
|
companion_ads: Annotated[
|
|
21
|
-
bool | None, Field(description=
|
|
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=
|
|
24
|
+
daast_version_1.DaastVersion | None, Field(description='DAAST specification version')
|
|
25
25
|
] = None
|
|
26
26
|
delivery_type: Annotated[
|
|
27
|
-
Literal[
|
|
28
|
-
Field(description=
|
|
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=
|
|
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=
|
|
35
|
+
Field(description='Tracking events supported by this DAAST tag'),
|
|
36
36
|
] = None
|
|
37
|
-
url: Annotated[AnyUrl, Field(description=
|
|
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=
|
|
42
|
+
extra='allow',
|
|
43
43
|
)
|
|
44
44
|
companion_ads: Annotated[
|
|
45
|
-
bool | None, Field(description=
|
|
45
|
+
bool | None, Field(description='Whether companion display ads are included')
|
|
46
46
|
] = None
|
|
47
|
-
content: Annotated[str, Field(description=
|
|
47
|
+
content: Annotated[str, Field(description='Inline DAAST XML content')]
|
|
48
48
|
daast_version: Annotated[
|
|
49
|
-
daast_version_1.DaastVersion | None, Field(description=
|
|
49
|
+
daast_version_1.DaastVersion | None, Field(description='DAAST specification version')
|
|
50
50
|
] = None
|
|
51
51
|
delivery_type: Annotated[
|
|
52
|
-
Literal[
|
|
53
|
-
Field(description=
|
|
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=
|
|
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=
|
|
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=
|
|
69
|
-
title=
|
|
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-
|
|
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=
|
|
15
|
+
extra='allow',
|
|
16
16
|
)
|
|
17
|
-
content: Annotated[str, Field(description=
|
|
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-
|
|
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=
|
|
15
|
+
extra='allow',
|
|
16
16
|
)
|
|
17
|
-
alt_text: Annotated[str | None, Field(description=
|
|
17
|
+
alt_text: Annotated[str | None, Field(description='Alternative text for accessibility')] = None
|
|
18
18
|
format: Annotated[
|
|
19
|
-
str | None, Field(description=
|
|
19
|
+
str | None, Field(description='Image file format (jpg, png, gif, webp, etc.)')
|
|
20
20
|
] = None
|
|
21
|
-
height: Annotated[int, Field(description=
|
|
22
|
-
url: Annotated[AnyUrl, Field(description=
|
|
23
|
-
width: Annotated[int, Field(description=
|
|
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-
|
|
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=
|
|
17
|
+
extra='allow',
|
|
18
18
|
)
|
|
19
|
-
content: Annotated[str, Field(description=
|
|
19
|
+
content: Annotated[str, Field(description='JavaScript content')]
|
|
20
20
|
module_type: Annotated[
|
|
21
21
|
javascript_module_type.JavascriptModuleType | None,
|
|
22
|
-
Field(description=
|
|
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-
|
|
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=
|
|
15
|
+
extra='allow',
|
|
16
16
|
)
|
|
17
|
-
content: Annotated[str, Field(description=
|
|
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-
|
|
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=
|
|
17
|
+
extra='allow',
|
|
18
18
|
)
|
|
19
19
|
description: Annotated[
|
|
20
|
-
str | None, Field(description=
|
|
20
|
+
str | None, Field(description='Description of what this URL points to')
|
|
21
21
|
] = None
|
|
22
|
-
url: Annotated[AnyUrl, Field(description=
|
|
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-
|
|
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=
|
|
18
|
+
extra='allow',
|
|
19
19
|
)
|
|
20
20
|
delivery_type: Annotated[
|
|
21
|
-
Literal[
|
|
22
|
-
Field(description=
|
|
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=
|
|
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=
|
|
29
|
+
Field(description='Tracking events supported by this VAST tag'),
|
|
30
30
|
] = None
|
|
31
|
-
url: Annotated[AnyUrl, Field(description=
|
|
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=
|
|
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=
|
|
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=
|
|
43
|
+
extra='allow',
|
|
44
44
|
)
|
|
45
|
-
content: Annotated[str, Field(description=
|
|
45
|
+
content: Annotated[str, Field(description='Inline VAST XML content')]
|
|
46
46
|
delivery_type: Annotated[
|
|
47
|
-
Literal[
|
|
48
|
-
Field(description=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
71
|
-
title=
|
|
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-
|
|
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=
|
|
15
|
+
extra='allow',
|
|
16
16
|
)
|
|
17
17
|
bitrate_kbps: Annotated[
|
|
18
|
-
int | None, Field(description=
|
|
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=
|
|
21
|
+
int | None, Field(description='Video duration in milliseconds', ge=1)
|
|
22
22
|
] = None
|
|
23
|
-
format: Annotated[str | None, Field(description=
|
|
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=
|
|
27
|
-
url: Annotated[AnyUrl, Field(description=
|
|
28
|
-
width: Annotated[int, Field(description=
|
|
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-
|
|
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=
|
|
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=
|
|
29
|
+
extra='allow',
|
|
30
30
|
)
|
|
31
|
-
method: Annotated[http_method.HttpMethod | None, Field(description=
|
|
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=
|
|
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=
|
|
40
|
+
Field(description='Expected content type of webhook response'),
|
|
41
41
|
]
|
|
42
|
-
security: Annotated[Security, Field(description=
|
|
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=
|
|
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=
|
|
51
|
+
Field(description='Maximum time to wait for response in milliseconds', ge=10, le=5000),
|
|
52
52
|
] = 500
|
|
53
|
-
url: Annotated[AnyUrl, Field(description=
|
|
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:
|
|
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=
|
|
70
|
-
title=
|
|
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
|
]
|