adcp 2.5.0__tar.gz → 2.7.0__tar.gz
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-2.5.0/src/adcp.egg-info → adcp-2.7.0}/PKG-INFO +1 -1
- {adcp-2.5.0 → adcp-2.7.0}/pyproject.toml +1 -1
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/__init__.py +69 -43
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/client.py +11 -9
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/simple.py +1 -1
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/__init__.py +12 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/_generated.py +15 -9
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/aliases.py +245 -5
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/adagents.py +34 -77
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/product.py +9 -76
- adcp-2.7.0/src/adcp/types/generated_poc/publisher_property_selector.py +81 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/stable.py +14 -3
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/utils/preview_cache.py +7 -7
- {adcp-2.5.0 → adcp-2.7.0/src/adcp.egg-info}/PKG-INFO +1 -1
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp.egg-info/SOURCES.txt +1 -0
- {adcp-2.5.0 → adcp-2.7.0}/tests/test_discriminated_unions.py +8 -4
- {adcp-2.5.0 → adcp-2.7.0}/tests/test_type_aliases.py +267 -5
- {adcp-2.5.0 → adcp-2.7.0}/LICENSE +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/README.md +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/setup.cfg +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/__main__.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/adagents.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/config.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/exceptions.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/protocols/__init__.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/protocols/a2a.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/protocols/base.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/protocols/mcp.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/py.typed +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/testing/__init__.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/testing/test_helpers.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/base.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/core.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/__init__.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/activate_signal_request.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/activate_signal_response.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/activation_key.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/asset_type.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/audio_asset.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/brand_manifest.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/build_creative_request.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/build_creative_response.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/channels.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/cpc_option.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/cpcv_option.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/cpm_auction_option.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/cpm_fixed_option.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/cpp_option.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/cpv_option.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/create_media_buy_request.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/create_media_buy_response.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/creative_asset.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/creative_assignment.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/creative_manifest.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/creative_policy.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/creative_status.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/css_asset.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/daast_asset.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/delivery_metrics.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/delivery_type.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/deployment.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/destination.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/error.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/flat_rate_option.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/format.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/format_id.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/frequency_cap.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/frequency_cap_scope.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/get_media_buy_delivery_request.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/get_media_buy_delivery_response.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/get_products_request.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/get_products_response.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/get_signals_request.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/get_signals_response.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/html_asset.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/identifier_types.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/image_asset.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/javascript_asset.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/list_authorized_properties_request.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/list_authorized_properties_response.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/list_creative_formats_request.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/list_creative_formats_response.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/list_creatives_request.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/list_creatives_response.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/markdown_asset.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/measurement.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/media_buy.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/media_buy_status.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/pacing.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/package.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/package_request.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/package_status.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/performance_feedback.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/placement.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/preview_creative_request.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/preview_creative_response.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/preview_render.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/pricing_model.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/promoted_offerings.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/promoted_products.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/property.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/protocol_envelope.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/provide_performance_feedback_request.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/provide_performance_feedback_response.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/publisher_identifier_types.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/push_notification_config.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/reporting_capabilities.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/response.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/standard_format_ids.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/sub_asset.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/sync_creatives_request.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/sync_creatives_response.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/targeting.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/task_status.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/task_type.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/tasks_get_request.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/tasks_get_response.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/tasks_list_request.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/tasks_list_response.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/text_asset.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/update_media_buy_request.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/update_media_buy_response.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/url_asset.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/vast_asset.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/vcpm_auction_option.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/vcpm_fixed_option.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/video_asset.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/webhook_asset.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/types/generated_poc/webhook_payload.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/utils/__init__.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/utils/operation_id.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/utils/response_parser.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp/validation.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp.egg-info/dependency_links.txt +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp.egg-info/entry_points.txt +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp.egg-info/requires.txt +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/src/adcp.egg-info/top_level.txt +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/tests/test_adagents.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/tests/test_cli.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/tests/test_client.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/tests/test_code_generation.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/tests/test_format_id_validation.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/tests/test_helpers.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/tests/test_preview_html.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/tests/test_protocols.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/tests/test_public_api.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/tests/test_response_parser.py +0 -0
- {adcp-2.5.0 → adcp-2.7.0}/tests/test_simple_api.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "adcp"
|
|
7
|
-
version = "2.
|
|
7
|
+
version = "2.7.0"
|
|
8
8
|
description = "Official Python client for the Ad Context Protocol (AdCP)"
|
|
9
9
|
authors = [
|
|
10
10
|
{name = "AdCP Community", email = "maintainers@adcontextprotocol.org"}
|
|
@@ -56,51 +56,12 @@ from adcp.testing import (
|
|
|
56
56
|
from adcp.types import _generated as generated
|
|
57
57
|
from adcp.types import aliases
|
|
58
58
|
|
|
59
|
-
# Re-export commonly-used request/response types for convenience
|
|
60
|
-
# Users should import from main package (e.g., `from adcp import GetProductsRequest`)
|
|
61
|
-
# rather than internal modules for better API stability
|
|
62
|
-
from adcp.types._generated import (
|
|
63
|
-
# Audience & Targeting
|
|
64
|
-
ActivateSignalRequest,
|
|
65
|
-
ActivateSignalResponse,
|
|
66
|
-
# Creative Operations
|
|
67
|
-
BuildCreativeRequest,
|
|
68
|
-
BuildCreativeResponse,
|
|
69
|
-
# Media Buy Operations
|
|
70
|
-
CreateMediaBuyRequest,
|
|
71
|
-
CreateMediaBuyResponse,
|
|
72
|
-
# Common data types
|
|
73
|
-
Error,
|
|
74
|
-
Format,
|
|
75
|
-
GetMediaBuyDeliveryRequest,
|
|
76
|
-
GetMediaBuyDeliveryResponse,
|
|
77
|
-
GetProductsRequest,
|
|
78
|
-
GetProductsResponse,
|
|
79
|
-
GetSignalsRequest,
|
|
80
|
-
GetSignalsResponse,
|
|
81
|
-
ListAuthorizedPropertiesRequest,
|
|
82
|
-
ListAuthorizedPropertiesResponse,
|
|
83
|
-
ListCreativeFormatsRequest,
|
|
84
|
-
ListCreativeFormatsResponse,
|
|
85
|
-
ListCreativesRequest,
|
|
86
|
-
ListCreativesResponse,
|
|
87
|
-
PreviewCreativeRequest,
|
|
88
|
-
PreviewCreativeResponse,
|
|
89
|
-
Product,
|
|
90
|
-
Property,
|
|
91
|
-
ProvidePerformanceFeedbackRequest,
|
|
92
|
-
ProvidePerformanceFeedbackResponse,
|
|
93
|
-
SyncCreativesRequest,
|
|
94
|
-
SyncCreativesResponse,
|
|
95
|
-
UpdateMediaBuyRequest,
|
|
96
|
-
UpdateMediaBuyResponse,
|
|
97
|
-
)
|
|
98
|
-
from adcp.types._generated import TaskStatus as GeneratedTaskStatus
|
|
99
|
-
|
|
100
59
|
# Re-export semantic type aliases for better ergonomics
|
|
101
60
|
from adcp.types.aliases import (
|
|
102
61
|
ActivateSignalErrorResponse,
|
|
103
62
|
ActivateSignalSuccessResponse,
|
|
63
|
+
AgentDeployment,
|
|
64
|
+
AgentDestination,
|
|
104
65
|
BothPreviewRender,
|
|
105
66
|
BuildCreativeErrorResponse,
|
|
106
67
|
BuildCreativeSuccessResponse,
|
|
@@ -111,14 +72,21 @@ from adcp.types.aliases import (
|
|
|
111
72
|
InlineDaastAsset,
|
|
112
73
|
InlineVastAsset,
|
|
113
74
|
MediaSubAsset,
|
|
75
|
+
PlatformDeployment,
|
|
76
|
+
PlatformDestination,
|
|
114
77
|
PreviewCreativeFormatRequest,
|
|
115
78
|
PreviewCreativeInteractiveResponse,
|
|
116
79
|
PreviewCreativeManifestRequest,
|
|
117
80
|
PreviewCreativeStaticResponse,
|
|
81
|
+
PropertyId,
|
|
118
82
|
PropertyIdActivationKey,
|
|
83
|
+
PropertyTag,
|
|
119
84
|
PropertyTagActivationKey,
|
|
120
85
|
ProvidePerformanceFeedbackErrorResponse,
|
|
121
86
|
ProvidePerformanceFeedbackSuccessResponse,
|
|
87
|
+
PublisherPropertiesAll,
|
|
88
|
+
PublisherPropertiesById,
|
|
89
|
+
PublisherPropertiesByTag,
|
|
122
90
|
SyncCreativesErrorResponse,
|
|
123
91
|
SyncCreativesSuccessResponse,
|
|
124
92
|
TextSubAsset,
|
|
@@ -132,11 +100,20 @@ from adcp.types.aliases import (
|
|
|
132
100
|
)
|
|
133
101
|
from adcp.types.core import AgentConfig, Protocol, TaskResult, TaskStatus, WebhookMetadata
|
|
134
102
|
|
|
103
|
+
# Re-export commonly-used request/response types for convenience
|
|
104
|
+
# Users should import from main package (e.g., `from adcp import GetProductsRequest`)
|
|
105
|
+
# rather than internal modules for better API stability
|
|
135
106
|
# Re-export core domain types and pricing options from stable API
|
|
136
107
|
# These are commonly used in typical workflows
|
|
137
108
|
from adcp.types.stable import (
|
|
109
|
+
# Audience & Targeting
|
|
110
|
+
ActivateSignalRequest,
|
|
111
|
+
ActivateSignalResponse,
|
|
138
112
|
# Core domain types
|
|
139
113
|
BrandManifest,
|
|
114
|
+
# Creative Operations
|
|
115
|
+
BuildCreativeRequest,
|
|
116
|
+
BuildCreativeResponse,
|
|
140
117
|
# Pricing options (all 9 types for product creation)
|
|
141
118
|
CpcPricingOption,
|
|
142
119
|
CpcvPricingOption,
|
|
@@ -144,19 +121,54 @@ from adcp.types.stable import (
|
|
|
144
121
|
CpmFixedRatePricingOption,
|
|
145
122
|
CppPricingOption,
|
|
146
123
|
CpvPricingOption,
|
|
124
|
+
# Media Buy Operations
|
|
125
|
+
CreateMediaBuyRequest,
|
|
126
|
+
CreateMediaBuyResponse,
|
|
147
127
|
Creative,
|
|
148
128
|
CreativeManifest,
|
|
149
129
|
# Status enums (for control flow)
|
|
150
130
|
CreativeStatus,
|
|
131
|
+
# Common data types
|
|
132
|
+
Error,
|
|
151
133
|
FlatRatePricingOption,
|
|
134
|
+
Format,
|
|
135
|
+
FormatId,
|
|
136
|
+
GetMediaBuyDeliveryRequest,
|
|
137
|
+
GetMediaBuyDeliveryResponse,
|
|
138
|
+
GetProductsRequest,
|
|
139
|
+
GetProductsResponse,
|
|
140
|
+
GetSignalsRequest,
|
|
141
|
+
GetSignalsResponse,
|
|
142
|
+
ListAuthorizedPropertiesRequest,
|
|
143
|
+
ListAuthorizedPropertiesResponse,
|
|
144
|
+
ListCreativeFormatsRequest,
|
|
145
|
+
ListCreativeFormatsResponse,
|
|
146
|
+
ListCreativesRequest,
|
|
147
|
+
ListCreativesResponse,
|
|
152
148
|
MediaBuy,
|
|
153
149
|
MediaBuyStatus,
|
|
154
150
|
Package,
|
|
151
|
+
PackageRequest,
|
|
155
152
|
PackageStatus,
|
|
153
|
+
PreviewCreativeRequest,
|
|
154
|
+
PreviewCreativeResponse,
|
|
155
|
+
PriceGuidance,
|
|
156
156
|
PricingModel,
|
|
157
|
+
Product,
|
|
158
|
+
Property,
|
|
159
|
+
ProvidePerformanceFeedbackRequest,
|
|
160
|
+
ProvidePerformanceFeedbackResponse,
|
|
161
|
+
PushNotificationConfig,
|
|
162
|
+
SyncCreativesRequest,
|
|
163
|
+
SyncCreativesResponse,
|
|
164
|
+
UpdateMediaBuyRequest,
|
|
165
|
+
UpdateMediaBuyResponse,
|
|
157
166
|
VcpmAuctionPricingOption,
|
|
158
167
|
VcpmFixedRatePricingOption,
|
|
159
168
|
)
|
|
169
|
+
from adcp.types.stable import (
|
|
170
|
+
TaskStatus as GeneratedTaskStatus,
|
|
171
|
+
)
|
|
160
172
|
from adcp.validation import (
|
|
161
173
|
ValidationError,
|
|
162
174
|
validate_adagents,
|
|
@@ -165,7 +177,7 @@ from adcp.validation import (
|
|
|
165
177
|
validate_publisher_properties_item,
|
|
166
178
|
)
|
|
167
179
|
|
|
168
|
-
__version__ = "2.
|
|
180
|
+
__version__ = "2.7.0"
|
|
169
181
|
|
|
170
182
|
__all__ = [
|
|
171
183
|
# Client classes
|
|
@@ -206,6 +218,7 @@ __all__ = [
|
|
|
206
218
|
"ProvidePerformanceFeedbackResponse",
|
|
207
219
|
"Error",
|
|
208
220
|
"Format",
|
|
221
|
+
"FormatId",
|
|
209
222
|
"Product",
|
|
210
223
|
"Property",
|
|
211
224
|
# Core domain types (from stable API)
|
|
@@ -214,6 +227,7 @@ __all__ = [
|
|
|
214
227
|
"CreativeManifest",
|
|
215
228
|
"MediaBuy",
|
|
216
229
|
"Package",
|
|
230
|
+
"PackageRequest",
|
|
217
231
|
# Package type aliases
|
|
218
232
|
"CreatedPackageReference",
|
|
219
233
|
# Status enums (for control flow)
|
|
@@ -221,7 +235,7 @@ __all__ = [
|
|
|
221
235
|
"MediaBuyStatus",
|
|
222
236
|
"PackageStatus",
|
|
223
237
|
"PricingModel",
|
|
224
|
-
# Pricing
|
|
238
|
+
# Pricing-related types
|
|
225
239
|
"CpcPricingOption",
|
|
226
240
|
"CpcvPricingOption",
|
|
227
241
|
"CpmAuctionPricingOption",
|
|
@@ -229,8 +243,11 @@ __all__ = [
|
|
|
229
243
|
"CppPricingOption",
|
|
230
244
|
"CpvPricingOption",
|
|
231
245
|
"FlatRatePricingOption",
|
|
246
|
+
"PriceGuidance",
|
|
232
247
|
"VcpmAuctionPricingOption",
|
|
233
248
|
"VcpmFixedRatePricingOption",
|
|
249
|
+
# Configuration types
|
|
250
|
+
"PushNotificationConfig",
|
|
234
251
|
# Adagents validation
|
|
235
252
|
"AuthorizationContext",
|
|
236
253
|
"fetch_adagents",
|
|
@@ -281,6 +298,8 @@ __all__ = [
|
|
|
281
298
|
# Semantic type aliases (for better API ergonomics)
|
|
282
299
|
"ActivateSignalSuccessResponse",
|
|
283
300
|
"ActivateSignalErrorResponse",
|
|
301
|
+
"AgentDeployment",
|
|
302
|
+
"AgentDestination",
|
|
284
303
|
"BothPreviewRender",
|
|
285
304
|
"BuildCreativeSuccessResponse",
|
|
286
305
|
"BuildCreativeErrorResponse",
|
|
@@ -290,14 +309,21 @@ __all__ = [
|
|
|
290
309
|
"InlineDaastAsset",
|
|
291
310
|
"InlineVastAsset",
|
|
292
311
|
"MediaSubAsset",
|
|
312
|
+
"PlatformDeployment",
|
|
313
|
+
"PlatformDestination",
|
|
293
314
|
"PreviewCreativeFormatRequest",
|
|
294
315
|
"PreviewCreativeManifestRequest",
|
|
295
316
|
"PreviewCreativeStaticResponse",
|
|
296
317
|
"PreviewCreativeInteractiveResponse",
|
|
318
|
+
"PropertyId",
|
|
297
319
|
"PropertyIdActivationKey",
|
|
320
|
+
"PropertyTag",
|
|
298
321
|
"PropertyTagActivationKey",
|
|
299
322
|
"ProvidePerformanceFeedbackSuccessResponse",
|
|
300
323
|
"ProvidePerformanceFeedbackErrorResponse",
|
|
324
|
+
"PublisherPropertiesAll",
|
|
325
|
+
"PublisherPropertiesById",
|
|
326
|
+
"PublisherPropertiesByTag",
|
|
301
327
|
"SyncCreativesSuccessResponse",
|
|
302
328
|
"SyncCreativesErrorResponse",
|
|
303
329
|
"TextSubAsset",
|
|
@@ -17,7 +17,15 @@ from adcp.exceptions import ADCPWebhookSignatureError
|
|
|
17
17
|
from adcp.protocols.a2a import A2AAdapter
|
|
18
18
|
from adcp.protocols.base import ProtocolAdapter
|
|
19
19
|
from adcp.protocols.mcp import MCPAdapter
|
|
20
|
-
from adcp.types.
|
|
20
|
+
from adcp.types.core import (
|
|
21
|
+
Activity,
|
|
22
|
+
ActivityType,
|
|
23
|
+
AgentConfig,
|
|
24
|
+
Protocol,
|
|
25
|
+
TaskResult,
|
|
26
|
+
TaskStatus,
|
|
27
|
+
)
|
|
28
|
+
from adcp.types.stable import (
|
|
21
29
|
ActivateSignalRequest,
|
|
22
30
|
ActivateSignalResponse,
|
|
23
31
|
GetMediaBuyDeliveryRequest,
|
|
@@ -40,15 +48,9 @@ from adcp.types._generated import (
|
|
|
40
48
|
SyncCreativesResponse,
|
|
41
49
|
WebhookPayload,
|
|
42
50
|
)
|
|
43
|
-
from adcp.types.
|
|
44
|
-
|
|
45
|
-
ActivityType,
|
|
46
|
-
AgentConfig,
|
|
47
|
-
Protocol,
|
|
48
|
-
TaskResult,
|
|
49
|
-
TaskStatus,
|
|
51
|
+
from adcp.types.stable import (
|
|
52
|
+
TaskStatus as GeneratedTaskStatus,
|
|
50
53
|
)
|
|
51
|
-
from adcp.types.generated_poc.task_status import TaskStatus as GeneratedTaskStatus
|
|
52
54
|
from adcp.utils.operation_id import create_operation_id
|
|
53
55
|
|
|
54
56
|
logger = logging.getLogger(__name__)
|
|
@@ -23,7 +23,7 @@ from __future__ import annotations
|
|
|
23
23
|
from typing import TYPE_CHECKING, Any
|
|
24
24
|
|
|
25
25
|
from adcp.exceptions import ADCPSimpleAPIError
|
|
26
|
-
from adcp.types.
|
|
26
|
+
from adcp.types.stable import (
|
|
27
27
|
ActivateSignalRequest,
|
|
28
28
|
ActivateSignalResponse,
|
|
29
29
|
GetMediaBuyDeliveryRequest,
|
|
@@ -17,6 +17,11 @@ from adcp.types.aliases import (
|
|
|
17
17
|
InlineDaastAsset,
|
|
18
18
|
InlineVastAsset,
|
|
19
19
|
MediaSubAsset,
|
|
20
|
+
PropertyId,
|
|
21
|
+
PropertyTag,
|
|
22
|
+
PublisherPropertiesAll,
|
|
23
|
+
PublisherPropertiesById,
|
|
24
|
+
PublisherPropertiesByTag,
|
|
20
25
|
TextSubAsset,
|
|
21
26
|
UrlDaastAsset,
|
|
22
27
|
UrlPreviewRender,
|
|
@@ -89,6 +94,13 @@ __all__ = [
|
|
|
89
94
|
"UrlVastAsset",
|
|
90
95
|
# Package type aliases
|
|
91
96
|
"CreatedPackageReference",
|
|
97
|
+
# Publisher properties types
|
|
98
|
+
"PropertyId",
|
|
99
|
+
"PropertyTag",
|
|
100
|
+
# Publisher properties aliases
|
|
101
|
+
"PublisherPropertiesAll",
|
|
102
|
+
"PublisherPropertiesById",
|
|
103
|
+
"PublisherPropertiesByTag",
|
|
92
104
|
# Stable API types (commonly used)
|
|
93
105
|
"BrandManifest",
|
|
94
106
|
"Creative",
|
|
@@ -10,7 +10,7 @@ Auto-generated by datamodel-code-generator from JSON schemas.
|
|
|
10
10
|
DO NOT EDIT MANUALLY.
|
|
11
11
|
|
|
12
12
|
Generated from: https://github.com/adcontextprotocol/adcp/tree/main/schemas
|
|
13
|
-
Generation date: 2025-11-
|
|
13
|
+
Generation date: 2025-11-19 02:03:09 UTC
|
|
14
14
|
"""
|
|
15
15
|
# ruff: noqa: E501, I001
|
|
16
16
|
from __future__ import annotations
|
|
@@ -19,7 +19,7 @@ from __future__ import annotations
|
|
|
19
19
|
from adcp.types.generated_poc.activate_signal_request import ActivateSignalRequest
|
|
20
20
|
from adcp.types.generated_poc.activate_signal_response import ActivateSignalResponse, ActivateSignalResponse1, ActivateSignalResponse2
|
|
21
21
|
from adcp.types.generated_poc.activation_key import ActivationKey1, ActivationKey2
|
|
22
|
-
from adcp.types.generated_poc.adagents import AuthorizedAgents, AuthorizedAgents1, AuthorizedAgents2, AuthorizedAgents3, AuthorizedSalesAgents, Contact, PropertyId, PropertyTag,
|
|
22
|
+
from adcp.types.generated_poc.adagents import AuthorizedAgents, AuthorizedAgents1, AuthorizedAgents2, AuthorizedAgents3, AuthorizedSalesAgents, Contact, PropertyId, PropertyTag, Tags
|
|
23
23
|
from adcp.types.generated_poc.asset_type import AssetTypeSchema, ContentLength, Dimensions, Duration, FileSize, Quality, Requirements, Type
|
|
24
24
|
from adcp.types.generated_poc.audio_asset import AudioAsset
|
|
25
25
|
from adcp.types.generated_poc.brand_manifest import Asset, AssetType, BrandManifest, Colors, Disclaimer, FeedFormat, Fonts, Logo, Metadata, ProductCatalog, UpdateFrequency
|
|
@@ -33,7 +33,7 @@ from adcp.types.generated_poc.cpm_fixed_option import CpmFixedRatePricingOption
|
|
|
33
33
|
from adcp.types.generated_poc.cpp_option import CppPricingOption, Parameters
|
|
34
34
|
from adcp.types.generated_poc.cpv_option import CpvPricingOption, ViewThreshold, ViewThreshold1
|
|
35
35
|
from adcp.types.generated_poc.create_media_buy_request import CreateMediaBuyRequest, ReportingFrequency, ReportingWebhook, RequestedMetric
|
|
36
|
-
from adcp.types.generated_poc.create_media_buy_response import CreateMediaBuyResponse, CreateMediaBuyResponse1, CreateMediaBuyResponse2
|
|
36
|
+
from adcp.types.generated_poc.create_media_buy_response import CreateMediaBuyResponse, CreateMediaBuyResponse1, CreateMediaBuyResponse2
|
|
37
37
|
from adcp.types.generated_poc.creative_asset import CreativeAsset, Input
|
|
38
38
|
from adcp.types.generated_poc.creative_assignment import CreativeAssignment
|
|
39
39
|
from adcp.types.generated_poc.creative_manifest import CreativeManifest
|
|
@@ -80,7 +80,7 @@ from adcp.types.generated_poc.preview_creative_request import Input2, OutputForm
|
|
|
80
80
|
from adcp.types.generated_poc.preview_creative_response import Input4, Preview, Preview1, Preview2, PreviewCreativeResponse, PreviewCreativeResponse1, PreviewCreativeResponse2, Response, Response1, Results, Results1
|
|
81
81
|
from adcp.types.generated_poc.preview_render import Embedding, PreviewRender, PreviewRender1, PreviewRender2, PreviewRender3
|
|
82
82
|
from adcp.types.generated_poc.pricing_model import PricingModel
|
|
83
|
-
from adcp.types.generated_poc.product import DeliveryMeasurement, Product, ProductCard, ProductCardDetailed
|
|
83
|
+
from adcp.types.generated_poc.product import DeliveryMeasurement, Product, ProductCard, ProductCardDetailed
|
|
84
84
|
from adcp.types.generated_poc.promoted_offerings import AssetSelectors, Offering, PromotedOfferings
|
|
85
85
|
from adcp.types.generated_poc.promoted_products import PromotedProducts
|
|
86
86
|
from adcp.types.generated_poc.property import Identifier, Property, PropertyType, Tag
|
|
@@ -88,6 +88,7 @@ from adcp.types.generated_poc.protocol_envelope import ProtocolEnvelope
|
|
|
88
88
|
from adcp.types.generated_poc.provide_performance_feedback_request import ProvidePerformanceFeedbackRequest
|
|
89
89
|
from adcp.types.generated_poc.provide_performance_feedback_response import ProvidePerformanceFeedbackResponse, ProvidePerformanceFeedbackResponse1, ProvidePerformanceFeedbackResponse2
|
|
90
90
|
from adcp.types.generated_poc.publisher_identifier_types import PublisherIdentifierTypes
|
|
91
|
+
from adcp.types.generated_poc.publisher_property_selector import PublisherPropertySelector1, PublisherPropertySelector2, PublisherPropertySelector3
|
|
91
92
|
from adcp.types.generated_poc.push_notification_config import Authentication, PushNotificationConfig, Scheme
|
|
92
93
|
from adcp.types.generated_poc.reporting_capabilities import AvailableMetric, AvailableReportingFrequency, ReportingCapabilities
|
|
93
94
|
from adcp.types.generated_poc.response import ProtocolResponse
|
|
@@ -113,6 +114,10 @@ from adcp.types.generated_poc.video_asset import VideoAsset
|
|
|
113
114
|
from adcp.types.generated_poc.webhook_asset import Method, Method1, ResponseType, Security, WebhookAsset
|
|
114
115
|
from adcp.types.generated_poc.webhook_payload import WebhookPayload
|
|
115
116
|
|
|
117
|
+
# Special imports for name collisions (qualified names for types defined in multiple modules)
|
|
118
|
+
from adcp.types.generated_poc.create_media_buy_response import Package as _PackageFromCreateMediaBuyResponse
|
|
119
|
+
from adcp.types.generated_poc.package import Package as _PackageFromPackage
|
|
120
|
+
|
|
116
121
|
# Backward compatibility aliases for renamed types
|
|
117
122
|
Channels = AdvertisingChannels
|
|
118
123
|
|
|
@@ -146,9 +151,9 @@ __all__ = [
|
|
|
146
151
|
"ListCreativesResponse", "Logo", "MarkdownAsset", "MarkdownFlavor", "Measurement",
|
|
147
152
|
"MeasurementPeriod", "MediaBuy", "MediaBuyDelivery", "MediaBuyStatus", "Metadata", "Method",
|
|
148
153
|
"Method1", "MetricType", "ModuleType", "NotificationType", "Offering", "OutputFormat",
|
|
149
|
-
"Pacing", "
|
|
150
|
-
"
|
|
151
|
-
"
|
|
154
|
+
"Pacing", "PackageRequest", "PackageStatus", "Packages", "Packages1", "Packages2", "Packages3",
|
|
155
|
+
"Pagination", "Parameters", "Performance", "PerformanceFeedback", "Placement", "Preview",
|
|
156
|
+
"Preview1", "Preview2", "PreviewCreativeRequest", "PreviewCreativeRequest1",
|
|
152
157
|
"PreviewCreativeRequest2", "PreviewCreativeResponse", "PreviewCreativeResponse1",
|
|
153
158
|
"PreviewCreativeResponse2", "PreviewRender", "PreviewRender1", "PreviewRender2",
|
|
154
159
|
"PreviewRender3", "PriceGuidance", "Pricing", "PricingModel", "PrimaryCountry", "Product",
|
|
@@ -157,7 +162,7 @@ __all__ = [
|
|
|
157
162
|
"PropertyType", "ProtocolEnvelope", "ProtocolResponse", "ProvidePerformanceFeedbackRequest",
|
|
158
163
|
"ProvidePerformanceFeedbackResponse", "ProvidePerformanceFeedbackResponse1",
|
|
159
164
|
"ProvidePerformanceFeedbackResponse2", "PublisherDomain", "PublisherIdentifierTypes",
|
|
160
|
-
"
|
|
165
|
+
"PublisherPropertySelector1", "PublisherPropertySelector2", "PublisherPropertySelector3",
|
|
161
166
|
"PushNotificationConfig", "Quality", "QuartileData", "QuerySummary", "Render",
|
|
162
167
|
"ReportingCapabilities", "ReportingFrequency", "ReportingPeriod", "ReportingWebhook",
|
|
163
168
|
"Request", "RequestedMetric", "Requirements", "Response", "Response1", "ResponseType",
|
|
@@ -171,5 +176,6 @@ __all__ = [
|
|
|
171
176
|
"UpdateMediaBuyResponse", "UpdateMediaBuyResponse1", "UpdateMediaBuyResponse2", "UrlAsset",
|
|
172
177
|
"UrlType", "ValidationMode", "VastAsset1", "VastAsset2", "VastVersion",
|
|
173
178
|
"VcpmAuctionPricingOption", "VcpmFixedRatePricingOption", "VenueBreakdownItem", "VideoAsset",
|
|
174
|
-
"ViewThreshold", "ViewThreshold1", "WebhookAsset", "WebhookPayload"
|
|
179
|
+
"ViewThreshold", "ViewThreshold1", "WebhookAsset", "WebhookPayload",
|
|
180
|
+
"_PackageFromCreateMediaBuyResponse", "_PackageFromPackage"
|
|
175
181
|
]
|
|
@@ -31,7 +31,6 @@ immediately rather than at runtime when users try to use the aliases.
|
|
|
31
31
|
|
|
32
32
|
from __future__ import annotations
|
|
33
33
|
|
|
34
|
-
# Import all generated types that need semantic aliases
|
|
35
34
|
from adcp.types._generated import (
|
|
36
35
|
# Activation responses
|
|
37
36
|
ActivateSignalResponse1,
|
|
@@ -48,6 +47,12 @@ from adcp.types._generated import (
|
|
|
48
47
|
# DAAST assets
|
|
49
48
|
DaastAsset1,
|
|
50
49
|
DaastAsset2,
|
|
50
|
+
# Deployment types
|
|
51
|
+
Deployment1,
|
|
52
|
+
Deployment2,
|
|
53
|
+
# Destination types
|
|
54
|
+
Destination1,
|
|
55
|
+
Destination2,
|
|
51
56
|
# Preview creative requests
|
|
52
57
|
PreviewCreativeRequest1,
|
|
53
58
|
PreviewCreativeRequest2,
|
|
@@ -58,6 +63,9 @@ from adcp.types._generated import (
|
|
|
58
63
|
PreviewRender1,
|
|
59
64
|
PreviewRender2,
|
|
60
65
|
PreviewRender3,
|
|
66
|
+
# Publisher properties types
|
|
67
|
+
PropertyId,
|
|
68
|
+
PropertyTag,
|
|
61
69
|
# Performance feedback responses
|
|
62
70
|
ProvidePerformanceFeedbackResponse1,
|
|
63
71
|
ProvidePerformanceFeedbackResponse2,
|
|
@@ -77,12 +85,24 @@ from adcp.types._generated import (
|
|
|
77
85
|
VastAsset1,
|
|
78
86
|
VastAsset2,
|
|
79
87
|
)
|
|
88
|
+
from adcp.types._generated import (
|
|
89
|
+
PublisherPropertySelector1 as PublisherPropertiesInternal,
|
|
90
|
+
)
|
|
91
|
+
from adcp.types._generated import (
|
|
92
|
+
PublisherPropertySelector2 as PublisherPropertiesByIdInternal,
|
|
93
|
+
)
|
|
94
|
+
from adcp.types._generated import (
|
|
95
|
+
PublisherPropertySelector3 as PublisherPropertiesByTagInternal,
|
|
96
|
+
)
|
|
80
97
|
|
|
81
|
-
# Import
|
|
82
|
-
from adcp.types.
|
|
83
|
-
Package
|
|
98
|
+
# Import all generated types that need semantic aliases
|
|
99
|
+
from adcp.types._generated import (
|
|
100
|
+
# Package types (from name collision resolution)
|
|
101
|
+
_PackageFromCreateMediaBuyResponse as CreatedPackageInternal,
|
|
102
|
+
)
|
|
103
|
+
from adcp.types._generated import (
|
|
104
|
+
_PackageFromPackage as FullPackageInternal,
|
|
84
105
|
)
|
|
85
|
-
from adcp.types.generated_poc.package import Package as FullPackageInternal
|
|
86
106
|
|
|
87
107
|
# ============================================================================
|
|
88
108
|
# RESPONSE TYPE ALIASES - Success/Error Discriminated Unions
|
|
@@ -252,6 +272,213 @@ Used in:
|
|
|
252
272
|
Fields: buyer_ref, package_id only
|
|
253
273
|
"""
|
|
254
274
|
|
|
275
|
+
# ============================================================================
|
|
276
|
+
# PUBLISHER PROPERTIES ALIASES - Selection Type Discriminated Unions
|
|
277
|
+
# ============================================================================
|
|
278
|
+
# The AdCP schemas define PublisherProperties as a discriminated union with
|
|
279
|
+
# three variants based on the `selection_type` field:
|
|
280
|
+
#
|
|
281
|
+
# 1. All Properties (selection_type='all'):
|
|
282
|
+
# - Includes all properties from the publisher
|
|
283
|
+
# - Only requires publisher_domain
|
|
284
|
+
#
|
|
285
|
+
# 2. By ID (selection_type='by_id'):
|
|
286
|
+
# - Specific properties selected by property_id
|
|
287
|
+
# - Requires publisher_domain + property_ids array
|
|
288
|
+
#
|
|
289
|
+
# 3. By Tag (selection_type='by_tag'):
|
|
290
|
+
# - Properties selected by tags
|
|
291
|
+
# - Requires publisher_domain + property_tags array
|
|
292
|
+
#
|
|
293
|
+
# These semantic aliases match the discriminator values and make code more
|
|
294
|
+
# readable when constructing or pattern-matching publisher properties.
|
|
295
|
+
|
|
296
|
+
PublisherPropertiesAll = PublisherPropertiesInternal
|
|
297
|
+
"""Publisher properties covering all properties from the publisher.
|
|
298
|
+
|
|
299
|
+
This variant uses selection_type='all' and includes all properties listed
|
|
300
|
+
in the publisher's adagents.json file.
|
|
301
|
+
|
|
302
|
+
Fields:
|
|
303
|
+
- publisher_domain: Domain where adagents.json is hosted
|
|
304
|
+
- selection_type: Literal['all']
|
|
305
|
+
|
|
306
|
+
Example:
|
|
307
|
+
```python
|
|
308
|
+
from adcp import PublisherPropertiesAll
|
|
309
|
+
|
|
310
|
+
props = PublisherPropertiesAll(
|
|
311
|
+
publisher_domain="example.com",
|
|
312
|
+
selection_type="all"
|
|
313
|
+
)
|
|
314
|
+
```
|
|
315
|
+
"""
|
|
316
|
+
|
|
317
|
+
PublisherPropertiesById = PublisherPropertiesByIdInternal
|
|
318
|
+
"""Publisher properties selected by specific property IDs.
|
|
319
|
+
|
|
320
|
+
This variant uses selection_type='by_id' and specifies an explicit list
|
|
321
|
+
of property IDs from the publisher's adagents.json file.
|
|
322
|
+
|
|
323
|
+
Fields:
|
|
324
|
+
- publisher_domain: Domain where adagents.json is hosted
|
|
325
|
+
- selection_type: Literal['by_id']
|
|
326
|
+
- property_ids: List of PropertyId (non-empty)
|
|
327
|
+
|
|
328
|
+
Example:
|
|
329
|
+
```python
|
|
330
|
+
from adcp import PublisherPropertiesById, PropertyId
|
|
331
|
+
|
|
332
|
+
props = PublisherPropertiesById(
|
|
333
|
+
publisher_domain="example.com",
|
|
334
|
+
selection_type="by_id",
|
|
335
|
+
property_ids=[PropertyId("homepage"), PropertyId("sports_section")]
|
|
336
|
+
)
|
|
337
|
+
```
|
|
338
|
+
"""
|
|
339
|
+
|
|
340
|
+
PublisherPropertiesByTag = PublisherPropertiesByTagInternal
|
|
341
|
+
"""Publisher properties selected by tags.
|
|
342
|
+
|
|
343
|
+
This variant uses selection_type='by_tag' and specifies property tags.
|
|
344
|
+
The product covers all properties in the publisher's adagents.json that
|
|
345
|
+
have these tags.
|
|
346
|
+
|
|
347
|
+
Fields:
|
|
348
|
+
- publisher_domain: Domain where adagents.json is hosted
|
|
349
|
+
- selection_type: Literal['by_tag']
|
|
350
|
+
- property_tags: List of PropertyTag (non-empty)
|
|
351
|
+
|
|
352
|
+
Example:
|
|
353
|
+
```python
|
|
354
|
+
from adcp import PublisherPropertiesByTag, PropertyTag
|
|
355
|
+
|
|
356
|
+
props = PublisherPropertiesByTag(
|
|
357
|
+
publisher_domain="example.com",
|
|
358
|
+
selection_type="by_tag",
|
|
359
|
+
property_tags=[PropertyTag("premium"), PropertyTag("video")]
|
|
360
|
+
)
|
|
361
|
+
```
|
|
362
|
+
"""
|
|
363
|
+
|
|
364
|
+
# ============================================================================
|
|
365
|
+
# DEPLOYMENT & DESTINATION ALIASES - Signal Deployment Type Discriminated Unions
|
|
366
|
+
# ============================================================================
|
|
367
|
+
# The AdCP schemas define Deployment and Destination as discriminated unions
|
|
368
|
+
# with two variants based on the `type` field:
|
|
369
|
+
#
|
|
370
|
+
# Deployment (where a signal is activated):
|
|
371
|
+
# - Platform (type='platform'): DSP platform with platform ID
|
|
372
|
+
# - Agent (type='agent'): Sales agent with agent URL
|
|
373
|
+
#
|
|
374
|
+
# Destination (where a signal can be activated):
|
|
375
|
+
# - Platform (type='platform'): Target DSP platform
|
|
376
|
+
# - Agent (type='agent'): Target sales agent
|
|
377
|
+
#
|
|
378
|
+
# These are used in GetSignalsResponse to describe signal availability and
|
|
379
|
+
# activation status across different advertising platforms and agents.
|
|
380
|
+
|
|
381
|
+
PlatformDeployment = Deployment1
|
|
382
|
+
"""Signal deployment to a DSP platform.
|
|
383
|
+
|
|
384
|
+
This variant uses type='platform' for platform-based signal deployments
|
|
385
|
+
like The Trade Desk, Amazon DSP, etc.
|
|
386
|
+
|
|
387
|
+
Fields:
|
|
388
|
+
- type: Literal['platform']
|
|
389
|
+
- platform: Platform identifier (e.g., 'the-trade-desk')
|
|
390
|
+
- account: Optional account identifier
|
|
391
|
+
- is_live: Whether signal is currently active
|
|
392
|
+
- deployed_at: Activation timestamp if live
|
|
393
|
+
- activation_key: Targeting key if live and accessible
|
|
394
|
+
- estimated_activation_duration_minutes: Time to complete activation
|
|
395
|
+
|
|
396
|
+
Example:
|
|
397
|
+
```python
|
|
398
|
+
from adcp import PlatformDeployment
|
|
399
|
+
|
|
400
|
+
deployment = PlatformDeployment(
|
|
401
|
+
type="platform",
|
|
402
|
+
platform="the-trade-desk",
|
|
403
|
+
account="advertiser-123",
|
|
404
|
+
is_live=True,
|
|
405
|
+
deployed_at=datetime.now(timezone.utc)
|
|
406
|
+
)
|
|
407
|
+
```
|
|
408
|
+
"""
|
|
409
|
+
|
|
410
|
+
AgentDeployment = Deployment2
|
|
411
|
+
"""Signal deployment to a sales agent.
|
|
412
|
+
|
|
413
|
+
This variant uses type='agent' for agent-based signal deployments
|
|
414
|
+
using agent URLs.
|
|
415
|
+
|
|
416
|
+
Fields:
|
|
417
|
+
- type: Literal['agent']
|
|
418
|
+
- agent_url: URL identifying the destination agent
|
|
419
|
+
- account: Optional account identifier
|
|
420
|
+
- is_live: Whether signal is currently active
|
|
421
|
+
- deployed_at: Activation timestamp if live
|
|
422
|
+
- activation_key: Targeting key if live and accessible
|
|
423
|
+
- estimated_activation_duration_minutes: Time to complete activation
|
|
424
|
+
|
|
425
|
+
Example:
|
|
426
|
+
```python
|
|
427
|
+
from adcp import AgentDeployment
|
|
428
|
+
|
|
429
|
+
deployment = AgentDeployment(
|
|
430
|
+
type="agent",
|
|
431
|
+
agent_url="https://agent.example.com",
|
|
432
|
+
is_live=False,
|
|
433
|
+
estimated_activation_duration_minutes=30.0
|
|
434
|
+
)
|
|
435
|
+
```
|
|
436
|
+
"""
|
|
437
|
+
|
|
438
|
+
PlatformDestination = Destination1
|
|
439
|
+
"""Available signal destination on a DSP platform.
|
|
440
|
+
|
|
441
|
+
This variant uses type='platform' for platform-based signal destinations.
|
|
442
|
+
|
|
443
|
+
Fields:
|
|
444
|
+
- type: Literal['platform']
|
|
445
|
+
- platform: Platform identifier (e.g., 'the-trade-desk', 'amazon-dsp')
|
|
446
|
+
- account: Optional account identifier on the platform
|
|
447
|
+
|
|
448
|
+
Example:
|
|
449
|
+
```python
|
|
450
|
+
from adcp import PlatformDestination
|
|
451
|
+
|
|
452
|
+
destination = PlatformDestination(
|
|
453
|
+
type="platform",
|
|
454
|
+
platform="the-trade-desk",
|
|
455
|
+
account="advertiser-123"
|
|
456
|
+
)
|
|
457
|
+
```
|
|
458
|
+
"""
|
|
459
|
+
|
|
460
|
+
AgentDestination = Destination2
|
|
461
|
+
"""Available signal destination via a sales agent.
|
|
462
|
+
|
|
463
|
+
This variant uses type='agent' for agent-based signal destinations.
|
|
464
|
+
|
|
465
|
+
Fields:
|
|
466
|
+
- type: Literal['agent']
|
|
467
|
+
- agent_url: URL identifying the destination agent
|
|
468
|
+
- account: Optional account identifier on the agent
|
|
469
|
+
|
|
470
|
+
Example:
|
|
471
|
+
```python
|
|
472
|
+
from adcp import AgentDestination
|
|
473
|
+
|
|
474
|
+
destination = AgentDestination(
|
|
475
|
+
type="agent",
|
|
476
|
+
agent_url="https://agent.example.com",
|
|
477
|
+
account="partner-456"
|
|
478
|
+
)
|
|
479
|
+
```
|
|
480
|
+
"""
|
|
481
|
+
|
|
255
482
|
# ============================================================================
|
|
256
483
|
# EXPORTS
|
|
257
484
|
# ============================================================================
|
|
@@ -300,4 +527,17 @@ __all__ = [
|
|
|
300
527
|
# Package type aliases
|
|
301
528
|
"CreatedPackageReference",
|
|
302
529
|
"Package",
|
|
530
|
+
# Publisher properties types
|
|
531
|
+
"PropertyId",
|
|
532
|
+
"PropertyTag",
|
|
533
|
+
# Publisher properties aliases
|
|
534
|
+
"PublisherPropertiesAll",
|
|
535
|
+
"PublisherPropertiesById",
|
|
536
|
+
"PublisherPropertiesByTag",
|
|
537
|
+
# Deployment aliases
|
|
538
|
+
"PlatformDeployment",
|
|
539
|
+
"AgentDeployment",
|
|
540
|
+
# Destination aliases
|
|
541
|
+
"PlatformDestination",
|
|
542
|
+
"AgentDestination",
|
|
303
543
|
]
|