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.
- adcp/ADCP_VERSION +1 -1
- adcp/__init__.py +14 -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 +115 -23
- adcp/types/_ergonomic.py +35 -14
- adcp/types/_generated.py +346 -52
- adcp/types/aliases.py +68 -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.1.0.dist-info}/METADATA +1 -1
- adcp-3.1.0.dist-info/RECORD +264 -0
- {adcp-2.19.0.dist-info → adcp-3.1.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.1.0.dist-info}/entry_points.txt +0 -0
- {adcp-2.19.0.dist-info → adcp-3.1.0.dist-info}/licenses/LICENSE +0 -0
- {adcp-2.19.0.dist-info → adcp-3.1.0.dist-info}/top_level.txt +0 -0
adcp/types/aliases.py
CHANGED
|
@@ -35,9 +35,6 @@ from adcp.types._generated import (
|
|
|
35
35
|
# Activation responses
|
|
36
36
|
ActivateSignalResponse1,
|
|
37
37
|
ActivateSignalResponse2,
|
|
38
|
-
# Activation keys
|
|
39
|
-
ActivationKey1,
|
|
40
|
-
ActivationKey2,
|
|
41
38
|
# Authorized agents
|
|
42
39
|
AuthorizedAgents,
|
|
43
40
|
AuthorizedAgents1,
|
|
@@ -46,6 +43,11 @@ from adcp.types._generated import (
|
|
|
46
43
|
# Build creative responses
|
|
47
44
|
BuildCreativeResponse1,
|
|
48
45
|
BuildCreativeResponse2,
|
|
46
|
+
CpcPricingOption,
|
|
47
|
+
CpcvPricingOption,
|
|
48
|
+
CpmPricingOption,
|
|
49
|
+
CppPricingOption,
|
|
50
|
+
CpvPricingOption,
|
|
49
51
|
# Create media buy responses
|
|
50
52
|
CreateMediaBuyResponse1,
|
|
51
53
|
CreateMediaBuyResponse2,
|
|
@@ -58,16 +60,17 @@ from adcp.types._generated import (
|
|
|
58
60
|
# Destination types
|
|
59
61
|
Destination1,
|
|
60
62
|
Destination2,
|
|
63
|
+
FlatRatePricingOption,
|
|
61
64
|
# Preview creative requests
|
|
62
65
|
PreviewCreativeRequest1,
|
|
63
66
|
PreviewCreativeRequest2,
|
|
64
67
|
# Preview creative responses
|
|
65
68
|
PreviewCreativeResponse1,
|
|
66
69
|
PreviewCreativeResponse2,
|
|
67
|
-
# Preview renders
|
|
68
|
-
PreviewRender1,
|
|
69
|
-
PreviewRender2,
|
|
70
|
-
PreviewRender3,
|
|
70
|
+
# Preview renders (discriminated union by output_format)
|
|
71
|
+
PreviewRender1, # output_format='url'
|
|
72
|
+
PreviewRender2, # output_format='html'
|
|
73
|
+
PreviewRender3, # output_format='both'
|
|
71
74
|
# Publisher properties types
|
|
72
75
|
PropertyId,
|
|
73
76
|
PropertyTag,
|
|
@@ -89,6 +92,7 @@ from adcp.types._generated import (
|
|
|
89
92
|
# VAST assets
|
|
90
93
|
VastAsset1,
|
|
91
94
|
VastAsset2,
|
|
95
|
+
VcpmPricingOption,
|
|
92
96
|
)
|
|
93
97
|
from adcp.types._generated import (
|
|
94
98
|
PublisherPropertySelector1 as PublisherPropertiesInternal,
|
|
@@ -198,12 +202,11 @@ UpdateMediaBuyPropertiesRequest = UpdateMediaBuyRequest2
|
|
|
198
202
|
# ============================================================================
|
|
199
203
|
# ACTIVATION KEY ALIASES
|
|
200
204
|
# ============================================================================
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
"""Activation key using property_tags for identification."""
|
|
205
|
+
# Note: Activation key schema changed from property_id/property_tag variants
|
|
206
|
+
# to segment_id/key_value variants. Import directly from _generated:
|
|
207
|
+
# from adcp.types._generated import ActivationKey1 as SegmentIdActivationKey
|
|
208
|
+
# from adcp.types._generated import ActivationKey2 as KeyValueActivationKey
|
|
209
|
+
# These will be added once the types are regenerated with proper schema.
|
|
207
210
|
|
|
208
211
|
# ============================================================================
|
|
209
212
|
# PREVIEW/RENDER TYPE ALIASES
|
|
@@ -216,15 +219,15 @@ PreviewCreativeStaticResponse = PreviewCreativeResponse1
|
|
|
216
219
|
PreviewCreativeInteractiveResponse = PreviewCreativeResponse2
|
|
217
220
|
"""Preview response with interactive renders (iframe embedding)."""
|
|
218
221
|
|
|
219
|
-
# Preview Render
|
|
222
|
+
# Preview Render Aliases (discriminated union by output_format)
|
|
220
223
|
UrlPreviewRender = PreviewRender1
|
|
221
|
-
"""Preview render with output_format='url'
|
|
224
|
+
"""Preview render with output_format='url' and preview_url for iframe embedding."""
|
|
222
225
|
|
|
223
226
|
HtmlPreviewRender = PreviewRender2
|
|
224
|
-
"""Preview render with output_format='html'
|
|
227
|
+
"""Preview render with output_format='html' and preview_html for direct embedding."""
|
|
225
228
|
|
|
226
229
|
BothPreviewRender = PreviewRender3
|
|
227
|
-
"""Preview render with output_format='both'
|
|
230
|
+
"""Preview render with output_format='both' and both preview_url and preview_html."""
|
|
228
231
|
|
|
229
232
|
# ============================================================================
|
|
230
233
|
# ASSET TYPE ALIASES - Delivery & Kind Discriminated Unions
|
|
@@ -692,6 +695,52 @@ Example:
|
|
|
692
695
|
```
|
|
693
696
|
"""
|
|
694
697
|
|
|
698
|
+
# ============================================================================
|
|
699
|
+
# PRICING OPTION UNION TYPE - For Type Hints Without RootModel Wrapper
|
|
700
|
+
# ============================================================================
|
|
701
|
+
# The generated PricingOption is a RootModel wrapper that mypy doesn't recognize
|
|
702
|
+
# as compatible with the individual variant types. This union alias provides a
|
|
703
|
+
# way to type-hint pricing options without the wrapper, fixing mypy list-item errors.
|
|
704
|
+
|
|
705
|
+
PricingOption = (
|
|
706
|
+
CpmPricingOption
|
|
707
|
+
| VcpmPricingOption
|
|
708
|
+
| CpcPricingOption
|
|
709
|
+
| CpcvPricingOption
|
|
710
|
+
| CpvPricingOption
|
|
711
|
+
| CppPricingOption
|
|
712
|
+
| FlatRatePricingOption
|
|
713
|
+
)
|
|
714
|
+
"""Union type for all pricing option variants.
|
|
715
|
+
|
|
716
|
+
Use this for type hints when constructing Product.pricing_options or any field
|
|
717
|
+
that accepts pricing options. This fixes mypy list-item errors that occur when
|
|
718
|
+
using the individual variant types.
|
|
719
|
+
|
|
720
|
+
Example:
|
|
721
|
+
```python
|
|
722
|
+
from adcp.types import Product, CpmPricingOption, PricingOption
|
|
723
|
+
|
|
724
|
+
# Type hint for a list of pricing options
|
|
725
|
+
def get_pricing(options: list[PricingOption]) -> None:
|
|
726
|
+
for opt in options:
|
|
727
|
+
print(f"Model: {opt.pricing_model}")
|
|
728
|
+
|
|
729
|
+
# Use in Product construction (no more mypy errors!)
|
|
730
|
+
product = Product(
|
|
731
|
+
product_id="test",
|
|
732
|
+
name="Test Product",
|
|
733
|
+
pricing_options=[
|
|
734
|
+
CpmPricingOption(
|
|
735
|
+
pricing_model="cpm",
|
|
736
|
+
floor_price=1.50,
|
|
737
|
+
currency="USD"
|
|
738
|
+
)
|
|
739
|
+
]
|
|
740
|
+
)
|
|
741
|
+
```
|
|
742
|
+
"""
|
|
743
|
+
|
|
695
744
|
# ============================================================================
|
|
696
745
|
# EXPORTS
|
|
697
746
|
# ============================================================================
|
|
@@ -700,9 +749,6 @@ __all__ = [
|
|
|
700
749
|
# Activation responses
|
|
701
750
|
"ActivateSignalSuccessResponse",
|
|
702
751
|
"ActivateSignalErrorResponse",
|
|
703
|
-
# Activation keys
|
|
704
|
-
"PropertyIdActivationKey",
|
|
705
|
-
"PropertyTagActivationKey",
|
|
706
752
|
# Asset type aliases
|
|
707
753
|
"BothPreviewRender",
|
|
708
754
|
"HtmlPreviewRender",
|
|
@@ -766,4 +812,6 @@ __all__ = [
|
|
|
766
812
|
"AgentDestination",
|
|
767
813
|
# Destination union
|
|
768
814
|
"Destination",
|
|
815
|
+
# Pricing option union
|
|
816
|
+
"PricingOption",
|
|
769
817
|
]
|
adcp/types/base.py
CHANGED
|
@@ -204,7 +204,7 @@ class AdCPBaseModel(BaseModel):
|
|
|
204
204
|
kwargs["exclude_none"] = True
|
|
205
205
|
return super().model_dump_json(**kwargs)
|
|
206
206
|
|
|
207
|
-
def
|
|
207
|
+
def model_summary(self) -> str:
|
|
208
208
|
"""Human-readable summary for protocol responses.
|
|
209
209
|
|
|
210
210
|
Returns a standardized human-readable message suitable for MCP tool
|