adcp 2.11.1__py3-none-any.whl → 2.12.1__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 -0
- adcp/__init__.py +24 -3
- adcp/__main__.py +31 -3
- adcp/client.py +16 -0
- adcp/protocols/a2a.py +178 -25
- adcp/protocols/base.py +23 -4
- adcp/protocols/mcp.py +44 -0
- adcp/types/__init__.py +2 -26
- adcp/types/_generated.py +179 -158
- adcp/types/generated_poc/adagents.py +221 -25
- adcp/types/generated_poc/core/__init__.py +3 -0
- adcp/types/generated_poc/{activation_key.py → core/activation_key.py} +2 -2
- adcp/types/generated_poc/core/assets/__init__.py +3 -0
- adcp/types/generated_poc/{audio_asset.py → core/assets/audio_asset.py} +2 -2
- adcp/types/generated_poc/{css_asset.py → core/assets/css_asset.py} +2 -2
- adcp/types/generated_poc/{daast_asset.py → core/assets/daast_asset.py} +4 -4
- adcp/types/generated_poc/{html_asset.py → core/assets/html_asset.py} +2 -2
- adcp/types/generated_poc/core/assets/image_asset.py +19 -0
- adcp/types/generated_poc/{javascript_asset.py → core/assets/javascript_asset.py} +3 -3
- adcp/types/generated_poc/{text_asset.py → core/assets/text_asset.py} +2 -2
- adcp/types/generated_poc/{url_asset.py → core/assets/url_asset.py} +3 -3
- adcp/types/generated_poc/{vast_asset.py → core/assets/vast_asset.py} +4 -4
- adcp/types/generated_poc/{video_asset.py → core/assets/video_asset.py} +7 -11
- adcp/types/generated_poc/{webhook_asset.py → core/assets/webhook_asset.py} +3 -3
- adcp/types/generated_poc/{brand_manifest.py → core/brand_manifest.py} +3 -3
- adcp/types/generated_poc/core/context.py +15 -0
- adcp/types/generated_poc/{creative_asset.py → core/creative_asset.py} +25 -6
- adcp/types/generated_poc/{creative_assignment.py → core/creative_assignment.py} +2 -2
- adcp/types/generated_poc/{creative_filters.py → core/creative_filters.py} +12 -3
- adcp/types/generated_poc/{creative_manifest.py → core/creative_manifest.py} +13 -6
- adcp/types/generated_poc/{creative_policy.py → core/creative_policy.py} +3 -3
- adcp/types/generated_poc/{delivery_metrics.py → core/delivery_metrics.py} +2 -2
- adcp/types/generated_poc/{deployment.py → core/deployment.py} +2 -2
- adcp/types/generated_poc/{destination.py → core/destination.py} +2 -2
- adcp/types/generated_poc/core/dimensions.py +18 -0
- adcp/types/generated_poc/{error.py → core/error.py} +2 -2
- adcp/types/generated_poc/core/ext.py +15 -0
- adcp/types/generated_poc/{format.py → core/format.py} +85 -54
- adcp/types/generated_poc/core/format_id.py +50 -0
- adcp/types/generated_poc/{frequency_cap.py → core/frequency_cap.py} +2 -2
- adcp/types/generated_poc/{measurement.py → core/measurement.py} +2 -2
- adcp/types/generated_poc/{media_buy.py → core/media_buy.py} +6 -3
- adcp/types/generated_poc/{package.py → core/package.py} +13 -6
- adcp/types/generated_poc/{performance_feedback.py → core/performance_feedback.py} +4 -4
- adcp/types/generated_poc/{placement.py → core/placement.py} +3 -3
- adcp/types/generated_poc/{product.py → core/product.py} +16 -6
- adcp/types/generated_poc/core/product_filters.py +97 -0
- adcp/types/generated_poc/{promoted_offerings.py → core/promoted_offerings.py} +2 -2
- adcp/types/generated_poc/{promoted_products.py → core/promoted_products.py} +2 -2
- adcp/types/generated_poc/{property.py → core/property.py} +5 -4
- adcp/types/generated_poc/{property_id.py → core/property_id.py} +2 -2
- adcp/types/generated_poc/{property_tag.py → core/property_tag.py} +2 -2
- adcp/types/generated_poc/{protocol_envelope.py → core/protocol_envelope.py} +3 -3
- adcp/types/generated_poc/{publisher_property_selector.py → core/publisher_property_selector.py} +2 -2
- adcp/types/generated_poc/{push_notification_config.py → core/push_notification_config.py} +3 -3
- adcp/types/generated_poc/{reporting_capabilities.py → core/reporting_capabilities.py} +3 -3
- adcp/types/generated_poc/{response.py → core/response.py} +2 -2
- adcp/types/generated_poc/{signal_filters.py → core/signal_filters.py} +3 -3
- adcp/types/generated_poc/{sub_asset.py → core/sub_asset.py} +2 -2
- adcp/types/generated_poc/{targeting.py → core/targeting.py} +2 -2
- adcp/types/generated_poc/{webhook_payload.py → core/webhook_payload.py} +4 -4
- adcp/types/generated_poc/creative/__init__.py +3 -0
- adcp/types/generated_poc/creative/list_creative_formats_request.py +88 -0
- adcp/types/generated_poc/creative/list_creative_formats_response.py +55 -0
- adcp/types/generated_poc/{preview_creative_request.py → creative/preview_creative_request.py} +13 -18
- adcp/types/generated_poc/{preview_creative_response.py → creative/preview_creative_response.py} +8 -14
- adcp/types/generated_poc/{preview_render.py → creative/preview_render.py} +2 -2
- adcp/types/generated_poc/enums/__init__.py +3 -0
- adcp/types/generated_poc/{adcp_domain.py → enums/adcp_domain.py} +2 -2
- adcp/types/generated_poc/{asset_content_type.py → enums/asset_content_type.py} +2 -2
- adcp/types/generated_poc/{auth_scheme.py → enums/auth_scheme.py} +2 -2
- adcp/types/generated_poc/{available_metric.py → enums/available_metric.py} +2 -2
- adcp/types/generated_poc/{channels.py → enums/channels.py} +2 -2
- adcp/types/generated_poc/{co_branding_requirement.py → enums/co_branding_requirement.py} +2 -2
- adcp/types/generated_poc/{creative_action.py → enums/creative_action.py} +2 -2
- adcp/types/generated_poc/{creative_agent_capability.py → enums/creative_agent_capability.py} +2 -2
- adcp/types/generated_poc/{creative_sort_field.py → enums/creative_sort_field.py} +2 -2
- adcp/types/generated_poc/{creative_status.py → enums/creative_status.py} +2 -2
- adcp/types/generated_poc/{daast_tracking_event.py → enums/daast_tracking_event.py} +2 -2
- adcp/types/generated_poc/{daast_version.py → enums/daast_version.py} +2 -2
- adcp/types/generated_poc/{delivery_type.py → enums/delivery_type.py} +2 -2
- adcp/types/generated_poc/{dimension_unit.py → enums/dimension_unit.py} +2 -2
- adcp/types/generated_poc/{feed_format.py → enums/feed_format.py} +2 -2
- adcp/types/generated_poc/{feedback_source.py → enums/feedback_source.py} +2 -2
- adcp/types/generated_poc/{format_category.py → enums/format_category.py} +2 -2
- adcp/types/generated_poc/enums/format_id_parameter.py +12 -0
- adcp/types/generated_poc/{frequency_cap_scope.py → enums/frequency_cap_scope.py} +2 -2
- adcp/types/generated_poc/{history_entry_type.py → enums/history_entry_type.py} +2 -2
- adcp/types/generated_poc/{http_method.py → enums/http_method.py} +2 -2
- adcp/types/generated_poc/{identifier_types.py → enums/identifier_types.py} +2 -2
- adcp/types/generated_poc/{javascript_module_type.py → enums/javascript_module_type.py} +2 -2
- adcp/types/generated_poc/{landing_page_requirement.py → enums/landing_page_requirement.py} +2 -2
- adcp/types/generated_poc/{markdown_flavor.py → enums/markdown_flavor.py} +2 -2
- adcp/types/generated_poc/{media_buy_status.py → enums/media_buy_status.py} +2 -2
- adcp/types/generated_poc/{metric_type.py → enums/metric_type.py} +2 -2
- adcp/types/generated_poc/{notification_type.py → enums/notification_type.py} +2 -2
- adcp/types/generated_poc/{pacing.py → enums/pacing.py} +2 -2
- adcp/types/generated_poc/{preview_output_format.py → enums/preview_output_format.py} +2 -2
- adcp/types/generated_poc/{pricing_model.py → enums/pricing_model.py} +2 -2
- adcp/types/generated_poc/{property_type.py → enums/property_type.py} +2 -2
- adcp/types/generated_poc/{publisher_identifier_types.py → enums/publisher_identifier_types.py} +2 -2
- adcp/types/generated_poc/{reporting_frequency.py → enums/reporting_frequency.py} +2 -2
- adcp/types/generated_poc/{signal_catalog_type.py → enums/signal_catalog_type.py} +2 -2
- adcp/types/generated_poc/{sort_direction.py → enums/sort_direction.py} +2 -2
- adcp/types/generated_poc/{standard_format_ids.py → enums/standard_format_ids.py} +2 -2
- adcp/types/generated_poc/{task_status.py → enums/task_status.py} +2 -2
- adcp/types/generated_poc/{task_type.py → enums/task_type.py} +2 -2
- adcp/types/generated_poc/{update_frequency.py → enums/update_frequency.py} +2 -2
- adcp/types/generated_poc/{url_asset_type.py → enums/url_asset_type.py} +2 -2
- adcp/types/generated_poc/{validation_mode.py → enums/validation_mode.py} +2 -2
- adcp/types/generated_poc/{vast_tracking_event.py → enums/vast_tracking_event.py} +2 -2
- adcp/types/generated_poc/{vast_version.py → enums/vast_version.py} +2 -2
- adcp/types/generated_poc/{webhook_response_type.py → enums/webhook_response_type.py} +2 -2
- adcp/types/generated_poc/{webhook_security_method.py → enums/webhook_security_method.py} +2 -2
- adcp/types/generated_poc/media_buy/__init__.py +3 -0
- adcp/types/generated_poc/{build_creative_request.py → media_buy/build_creative_request.py} +9 -11
- adcp/types/generated_poc/{build_creative_response.py → media_buy/build_creative_response.py} +11 -17
- adcp/types/generated_poc/{create_media_buy_request.py → media_buy/create_media_buy_request.py} +9 -11
- adcp/types/generated_poc/{create_media_buy_response.py → media_buy/create_media_buy_response.py} +11 -16
- adcp/types/generated_poc/{get_media_buy_delivery_request.py → media_buy/get_media_buy_delivery_request.py} +8 -10
- adcp/types/generated_poc/{get_media_buy_delivery_response.py → media_buy/get_media_buy_delivery_response.py} +27 -12
- adcp/types/generated_poc/{get_products_request.py → media_buy/get_products_request.py} +9 -11
- adcp/types/generated_poc/{get_products_response.py → media_buy/get_products_response.py} +9 -10
- adcp/types/generated_poc/{list_authorized_properties_request.py → media_buy/list_authorized_properties_request.py} +8 -9
- adcp/types/generated_poc/{list_authorized_properties_response.py → media_buy/list_authorized_properties_response.py} +9 -10
- adcp/types/generated_poc/{list_creative_formats_request.py → media_buy/list_creative_formats_request.py} +9 -10
- adcp/types/generated_poc/{list_creative_formats_response.py → media_buy/list_creative_formats_response.py} +10 -10
- adcp/types/generated_poc/{list_creatives_request.py → media_buy/list_creatives_request.py} +9 -10
- adcp/types/generated_poc/{list_creatives_response.py → media_buy/list_creatives_response.py} +14 -15
- adcp/types/generated_poc/{package_request.py → media_buy/package_request.py} +7 -5
- adcp/types/generated_poc/{provide_performance_feedback_request.py → media_buy/provide_performance_feedback_request.py} +11 -17
- adcp/types/generated_poc/{provide_performance_feedback_response.py → media_buy/provide_performance_feedback_response.py} +10 -16
- adcp/types/generated_poc/{sync_creatives_request.py → media_buy/sync_creatives_request.py} +14 -15
- adcp/types/generated_poc/{sync_creatives_response.py → media_buy/sync_creatives_response.py} +11 -16
- adcp/types/generated_poc/{update_media_buy_request.py → media_buy/update_media_buy_request.py} +63 -28
- adcp/types/generated_poc/{update_media_buy_response.py → media_buy/update_media_buy_response.py} +11 -16
- adcp/types/generated_poc/pricing_options/__init__.py +3 -0
- adcp/types/generated_poc/{cpc_option.py → pricing_options/cpc_option.py} +2 -2
- adcp/types/generated_poc/{cpcv_option.py → pricing_options/cpcv_option.py} +2 -2
- adcp/types/generated_poc/{cpm_auction_option.py → pricing_options/cpm_auction_option.py} +2 -2
- adcp/types/generated_poc/{cpm_fixed_option.py → pricing_options/cpm_fixed_option.py} +2 -2
- adcp/types/generated_poc/{cpp_option.py → pricing_options/cpp_option.py} +2 -2
- adcp/types/generated_poc/{cpv_option.py → pricing_options/cpv_option.py} +2 -2
- adcp/types/generated_poc/{flat_rate_option.py → pricing_options/flat_rate_option.py} +2 -2
- adcp/types/generated_poc/{vcpm_auction_option.py → pricing_options/vcpm_auction_option.py} +2 -2
- adcp/types/generated_poc/{vcpm_fixed_option.py → pricing_options/vcpm_fixed_option.py} +2 -2
- adcp/types/generated_poc/protocols/__init__.py +3 -0
- adcp/types/generated_poc/protocols/adcp_extension.py +37 -0
- adcp/types/generated_poc/signals/__init__.py +3 -0
- adcp/types/generated_poc/{activate_signal_request.py → signals/activate_signal_request.py} +8 -10
- adcp/types/generated_poc/{activate_signal_response.py → signals/activate_signal_response.py} +10 -16
- adcp/types/generated_poc/{get_signals_request.py → signals/get_signals_request.py} +9 -10
- adcp/types/generated_poc/{get_signals_response.py → signals/get_signals_response.py} +9 -10
- adcp/utils/preview_cache.py +15 -3
- {adcp-2.11.1.dist-info → adcp-2.12.1.dist-info}/METADATA +1 -1
- adcp-2.12.1.dist-info/RECORD +176 -0
- adcp/types/generated_poc/format_id.py +0 -29
- adcp/types/generated_poc/image_asset.py +0 -23
- adcp/types/generated_poc/markdown_asset.py +0 -39
- adcp/types/generated_poc/package_status.py +0 -14
- adcp/types/generated_poc/product_filters.py +0 -36
- adcp/types/generated_poc/tasks_get_request.py +0 -29
- adcp/types/generated_poc/tasks_get_response.py +0 -112
- adcp/types/generated_poc/tasks_list_request.py +0 -115
- adcp/types/generated_poc/tasks_list_response.py +0 -122
- adcp-2.11.1.dist-info/RECORD +0 -166
- {adcp-2.11.1.dist-info → adcp-2.12.1.dist-info}/WHEEL +0 -0
- {adcp-2.11.1.dist-info → adcp-2.12.1.dist-info}/entry_points.txt +0 -0
- {adcp-2.11.1.dist-info → adcp-2.12.1.dist-info}/licenses/LICENSE +0 -0
- {adcp-2.11.1.dist-info → adcp-2.12.1.dist-info}/top_level.txt +0 -0
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
|
-
# filename:
|
|
3
|
-
# timestamp: 2025-11-
|
|
2
|
+
# filename: media_buy/get_media_buy_delivery_request.json
|
|
3
|
+
# timestamp: 2025-11-22T15:23:24+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
-
from typing import Annotated
|
|
7
|
+
from typing import Annotated
|
|
8
8
|
|
|
9
9
|
from adcp.types.base import AdCPBaseModel
|
|
10
10
|
from pydantic import ConfigDict, Field
|
|
11
11
|
|
|
12
|
-
from
|
|
12
|
+
from ..core import context as context_1
|
|
13
|
+
from ..core import ext as ext_1
|
|
14
|
+
from ..enums import media_buy_status
|
|
13
15
|
|
|
14
16
|
|
|
15
17
|
class GetMediaBuyDeliveryRequest(AdCPBaseModel):
|
|
@@ -19,12 +21,7 @@ class GetMediaBuyDeliveryRequest(AdCPBaseModel):
|
|
|
19
21
|
buyer_refs: Annotated[
|
|
20
22
|
list[str] | None, Field(description='Array of buyer reference IDs to get delivery data for')
|
|
21
23
|
] = None
|
|
22
|
-
context:
|
|
23
|
-
dict[str, Any] | None,
|
|
24
|
-
Field(
|
|
25
|
-
description='Initiator-provided context included in the request payload. Agentsmust echo this value back unchanged in responses and webhooks. Use for UI/session hints, correlation tokens, or tracking metadata.'
|
|
26
|
-
),
|
|
27
|
-
] = None
|
|
24
|
+
context: context_1.ContextObject | None = None
|
|
28
25
|
end_date: Annotated[
|
|
29
26
|
str | None,
|
|
30
27
|
Field(
|
|
@@ -32,6 +29,7 @@ class GetMediaBuyDeliveryRequest(AdCPBaseModel):
|
|
|
32
29
|
pattern='^\\d{4}-\\d{2}-\\d{2}$',
|
|
33
30
|
),
|
|
34
31
|
] = None
|
|
32
|
+
ext: ext_1.ExtensionObject | None = None
|
|
35
33
|
media_buy_ids: Annotated[
|
|
36
34
|
list[str] | None,
|
|
37
35
|
Field(description='Array of publisher media buy IDs to get delivery data for'),
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
|
-
# filename:
|
|
3
|
-
# timestamp: 2025-11-
|
|
2
|
+
# filename: media_buy/get_media_buy_delivery_response.json
|
|
3
|
+
# timestamp: 2025-11-22T15:23:24+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
7
|
from enum import Enum
|
|
8
|
-
from typing import Annotated
|
|
8
|
+
from typing import Annotated
|
|
9
9
|
|
|
10
10
|
from adcp.types.base import AdCPBaseModel
|
|
11
11
|
from pydantic import AwareDatetime, ConfigDict, Field
|
|
12
12
|
|
|
13
|
-
from
|
|
14
|
-
from
|
|
15
|
-
from
|
|
13
|
+
from ..core import context as context_1
|
|
14
|
+
from ..core import error
|
|
15
|
+
from ..core import ext as ext_1
|
|
16
|
+
from ..core.delivery_metrics import DeliveryMetrics
|
|
17
|
+
from ..enums import pricing_model as pricing_model_1
|
|
16
18
|
|
|
17
19
|
|
|
18
20
|
class AggregatedTotals(AdCPBaseModel):
|
|
@@ -36,6 +38,14 @@ class AggregatedTotals(AdCPBaseModel):
|
|
|
36
38
|
] = None
|
|
37
39
|
|
|
38
40
|
|
|
41
|
+
class DeliveryStatus(Enum):
|
|
42
|
+
delivering = 'delivering'
|
|
43
|
+
completed = 'completed'
|
|
44
|
+
budget_exhausted = 'budget_exhausted'
|
|
45
|
+
flight_ended = 'flight_ended'
|
|
46
|
+
goal_met = 'goal_met'
|
|
47
|
+
|
|
48
|
+
|
|
39
49
|
class DailyBreakdownItem(AdCPBaseModel):
|
|
40
50
|
model_config = ConfigDict(
|
|
41
51
|
extra='forbid',
|
|
@@ -96,11 +106,20 @@ class ByPackageItem(DeliveryMetrics):
|
|
|
96
106
|
pattern='^[A-Z]{3}$',
|
|
97
107
|
),
|
|
98
108
|
]
|
|
109
|
+
delivery_status: Annotated[
|
|
110
|
+
DeliveryStatus | None,
|
|
111
|
+
Field(
|
|
112
|
+
description='System-reported operational state of this package. Reflects actual delivery state independent of buyer pause control.'
|
|
113
|
+
),
|
|
114
|
+
] = None
|
|
99
115
|
pacing_index: Annotated[
|
|
100
116
|
float | None,
|
|
101
117
|
Field(description='Delivery pace (1.0 = on track, <1.0 = behind, >1.0 = ahead)', ge=0.0),
|
|
102
118
|
] = None
|
|
103
119
|
package_id: Annotated[str, Field(description="Publisher's package identifier")]
|
|
120
|
+
paused: Annotated[
|
|
121
|
+
bool | None, Field(description='Whether this package is currently paused by the buyer')
|
|
122
|
+
] = None
|
|
104
123
|
pricing_model: Annotated[
|
|
105
124
|
pricing_model_1.PricingModel,
|
|
106
125
|
Field(
|
|
@@ -163,12 +182,7 @@ class GetMediaBuyDeliveryResponse(AdCPBaseModel):
|
|
|
163
182
|
description='Combined metrics across all returned media buys. Only included in API responses (get_media_buy_delivery), not in webhook notifications.'
|
|
164
183
|
),
|
|
165
184
|
] = None
|
|
166
|
-
context:
|
|
167
|
-
dict[str, Any] | None,
|
|
168
|
-
Field(
|
|
169
|
-
description='Initiator-provided context echoed inside the task payload. Opaque metadata such as UI/session hints, correlation tokens, or tracking identifiers.'
|
|
170
|
-
),
|
|
171
|
-
] = None
|
|
185
|
+
context: context_1.ContextObject | None = None
|
|
172
186
|
currency: Annotated[str, Field(description='ISO 4217 currency code', pattern='^[A-Z]{3}$')]
|
|
173
187
|
errors: Annotated[
|
|
174
188
|
list[error.Error] | None,
|
|
@@ -176,6 +190,7 @@ class GetMediaBuyDeliveryResponse(AdCPBaseModel):
|
|
|
176
190
|
description='Task-specific errors and warnings (e.g., missing delivery data, reporting platform issues)'
|
|
177
191
|
),
|
|
178
192
|
] = None
|
|
193
|
+
ext: ext_1.ExtensionObject | None = None
|
|
179
194
|
media_buy_deliveries: Annotated[
|
|
180
195
|
list[MediaBuyDelivery],
|
|
181
196
|
Field(
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
|
-
# filename:
|
|
3
|
-
# timestamp: 2025-11-
|
|
2
|
+
# filename: media_buy/get_products_request.json
|
|
3
|
+
# timestamp: 2025-11-22T15:29:34+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
-
from typing import Annotated
|
|
7
|
+
from typing import Annotated
|
|
8
8
|
|
|
9
9
|
from adcp.types.base import AdCPBaseModel
|
|
10
10
|
from pydantic import AnyUrl, ConfigDict, Field
|
|
11
11
|
|
|
12
|
-
from
|
|
13
|
-
from
|
|
12
|
+
from ..core import brand_manifest as brand_manifest_1
|
|
13
|
+
from ..core import context as context_1
|
|
14
|
+
from ..core import ext as ext_1
|
|
15
|
+
from ..core import product_filters
|
|
14
16
|
|
|
15
17
|
|
|
16
18
|
class GetProductsRequest(AdCPBaseModel):
|
|
@@ -41,10 +43,6 @@ class GetProductsRequest(AdCPBaseModel):
|
|
|
41
43
|
brief: Annotated[
|
|
42
44
|
str | None, Field(description='Natural language description of campaign requirements')
|
|
43
45
|
] = None
|
|
44
|
-
context:
|
|
45
|
-
|
|
46
|
-
Field(
|
|
47
|
-
description='Initiator-provided context included in the request payload. Agentsmust echo this value back unchanged in responses and webhooks. Use for UI/session hints, correlation tokens, or tracking metadata.'
|
|
48
|
-
),
|
|
49
|
-
] = None
|
|
46
|
+
context: context_1.ContextObject | None = None
|
|
47
|
+
ext: ext_1.ExtensionObject | None = None
|
|
50
48
|
filters: product_filters.ProductFilters | None = None
|
|
@@ -1,29 +1,28 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
|
-
# filename:
|
|
3
|
-
# timestamp: 2025-11-
|
|
2
|
+
# filename: media_buy/get_products_response.json
|
|
3
|
+
# timestamp: 2025-11-22T15:23:24+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
-
from typing import Annotated
|
|
7
|
+
from typing import Annotated
|
|
8
8
|
|
|
9
9
|
from adcp.types.base import AdCPBaseModel
|
|
10
10
|
from pydantic import ConfigDict, Field
|
|
11
11
|
|
|
12
|
-
from
|
|
12
|
+
from ..core import context as context_1
|
|
13
|
+
from ..core import error
|
|
14
|
+
from ..core import ext as ext_1
|
|
15
|
+
from ..core import product
|
|
13
16
|
|
|
14
17
|
|
|
15
18
|
class GetProductsResponse(AdCPBaseModel):
|
|
16
19
|
model_config = ConfigDict(
|
|
17
20
|
extra='forbid',
|
|
18
21
|
)
|
|
19
|
-
context:
|
|
20
|
-
dict[str, Any] | None,
|
|
21
|
-
Field(
|
|
22
|
-
description='Initiator-provided context echoed inside the task payload. Opaque metadata such as UI/session hints, correlation tokens, or tracking identifiers.'
|
|
23
|
-
),
|
|
24
|
-
] = None
|
|
22
|
+
context: context_1.ContextObject | None = None
|
|
25
23
|
errors: Annotated[
|
|
26
24
|
list[error.Error] | None,
|
|
27
25
|
Field(description='Task-specific errors and warnings (e.g., product filtering issues)'),
|
|
28
26
|
] = None
|
|
27
|
+
ext: ext_1.ExtensionObject | None = None
|
|
29
28
|
products: Annotated[list[product.Product], Field(description='Array of matching products')]
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
|
-
# filename:
|
|
3
|
-
# timestamp: 2025-11-
|
|
2
|
+
# filename: media_buy/list_authorized_properties_request.json
|
|
3
|
+
# timestamp: 2025-11-22T15:23:24+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
-
from typing import Annotated
|
|
7
|
+
from typing import Annotated
|
|
8
8
|
|
|
9
9
|
from adcp.types.base import AdCPBaseModel
|
|
10
10
|
from pydantic import ConfigDict, Field, RootModel
|
|
11
11
|
|
|
12
|
+
from ..core import context as context_1
|
|
13
|
+
from ..core import ext as ext_1
|
|
14
|
+
|
|
12
15
|
|
|
13
16
|
class PublisherDomain(RootModel[str]):
|
|
14
17
|
root: Annotated[
|
|
@@ -24,12 +27,8 @@ class ListAuthorizedPropertiesRequest(AdCPBaseModel):
|
|
|
24
27
|
model_config = ConfigDict(
|
|
25
28
|
extra='forbid',
|
|
26
29
|
)
|
|
27
|
-
context:
|
|
28
|
-
|
|
29
|
-
Field(
|
|
30
|
-
description='Initiator-provided context included in the request payload. Agentsmust echo this value back unchanged in responses and webhooks. Use for UI/session hints, correlation tokens, or tracking metadata.'
|
|
31
|
-
),
|
|
32
|
-
] = None
|
|
30
|
+
context: context_1.ContextObject | None = None
|
|
31
|
+
ext: ext_1.ExtensionObject | None = None
|
|
33
32
|
publisher_domains: Annotated[
|
|
34
33
|
list[PublisherDomain] | None,
|
|
35
34
|
Field(
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
|
-
# filename:
|
|
3
|
-
# timestamp: 2025-11-
|
|
2
|
+
# filename: media_buy/list_authorized_properties_response.json
|
|
3
|
+
# timestamp: 2025-11-22T15:23:24+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
-
from typing import Annotated
|
|
7
|
+
from typing import Annotated
|
|
8
8
|
|
|
9
9
|
from adcp.types.base import AdCPBaseModel
|
|
10
10
|
from pydantic import AwareDatetime, ConfigDict, Field, RootModel
|
|
11
11
|
|
|
12
|
-
from
|
|
12
|
+
from ..core import context as context_1
|
|
13
|
+
from ..core import error
|
|
14
|
+
from ..core import ext as ext_1
|
|
15
|
+
from ..enums import channels
|
|
13
16
|
|
|
14
17
|
|
|
15
18
|
class PrimaryCountry(RootModel[str]):
|
|
@@ -38,16 +41,12 @@ class ListAuthorizedPropertiesResponse(AdCPBaseModel):
|
|
|
38
41
|
min_length=1,
|
|
39
42
|
),
|
|
40
43
|
] = None
|
|
41
|
-
context:
|
|
42
|
-
dict[str, Any] | None,
|
|
43
|
-
Field(
|
|
44
|
-
description='Initiator-provided context echoed inside the task payload. Opaque metadata such as UI/session hints, correlation tokens, or tracking identifiers.'
|
|
45
|
-
),
|
|
46
|
-
] = None
|
|
44
|
+
context: context_1.ContextObject | None = None
|
|
47
45
|
errors: Annotated[
|
|
48
46
|
list[error.Error] | None,
|
|
49
47
|
Field(description='Task-specific errors and warnings (e.g., property availability issues)'),
|
|
50
48
|
] = None
|
|
49
|
+
ext: ext_1.ExtensionObject | None = None
|
|
51
50
|
last_updated: Annotated[
|
|
52
51
|
AwareDatetime | None,
|
|
53
52
|
Field(
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
|
-
# filename:
|
|
3
|
-
# timestamp: 2025-11-
|
|
2
|
+
# filename: media_buy/list_creative_formats_request.json
|
|
3
|
+
# timestamp: 2025-11-22T19:54:03+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
-
from typing import Annotated
|
|
7
|
+
from typing import Annotated
|
|
8
8
|
|
|
9
9
|
from adcp.types.base import AdCPBaseModel
|
|
10
10
|
from pydantic import ConfigDict, Field
|
|
11
11
|
|
|
12
|
-
from
|
|
12
|
+
from ..core import context as context_1
|
|
13
|
+
from ..core import ext as ext_1
|
|
14
|
+
from ..core import format_id
|
|
15
|
+
from ..enums import asset_content_type, format_category
|
|
13
16
|
|
|
14
17
|
|
|
15
18
|
class ListCreativeFormatsRequest(AdCPBaseModel):
|
|
@@ -22,12 +25,8 @@ class ListCreativeFormatsRequest(AdCPBaseModel):
|
|
|
22
25
|
description="Filter to formats that include these asset types. For third-party tags, search for 'html' or 'javascript'. E.g., ['image', 'text'] returns formats with images and text, ['javascript'] returns formats accepting JavaScript tags."
|
|
23
26
|
),
|
|
24
27
|
] = None
|
|
25
|
-
context:
|
|
26
|
-
|
|
27
|
-
Field(
|
|
28
|
-
description='Initiator-provided context included in the request payload. Agents must echo this value back unchanged in responses and webhooks. Use for UI/session hints, correlation tokens, or tracking metadata.'
|
|
29
|
-
),
|
|
30
|
-
] = None
|
|
28
|
+
context: context_1.ContextObject | None = None
|
|
29
|
+
ext: ext_1.ExtensionObject | None = None
|
|
31
30
|
format_ids: Annotated[
|
|
32
31
|
list[format_id.FormatId] | None,
|
|
33
32
|
Field(
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
|
-
# filename:
|
|
3
|
-
# timestamp: 2025-11-
|
|
2
|
+
# filename: media_buy/list_creative_formats_response.json
|
|
3
|
+
# timestamp: 2025-11-22T15:23:24+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
-
from typing import Annotated
|
|
7
|
+
from typing import Annotated
|
|
8
8
|
|
|
9
9
|
from adcp.types.base import AdCPBaseModel
|
|
10
10
|
from pydantic import AnyUrl, ConfigDict, Field
|
|
11
11
|
|
|
12
|
-
from
|
|
12
|
+
from ..core import context as context_1
|
|
13
|
+
from ..core import error
|
|
14
|
+
from ..core import ext as ext_1
|
|
15
|
+
from ..core import format
|
|
16
|
+
from ..enums import creative_agent_capability
|
|
13
17
|
|
|
14
18
|
|
|
15
19
|
class CreativeAgent(AdCPBaseModel):
|
|
@@ -32,12 +36,7 @@ class ListCreativeFormatsResponse(AdCPBaseModel):
|
|
|
32
36
|
model_config = ConfigDict(
|
|
33
37
|
extra='forbid',
|
|
34
38
|
)
|
|
35
|
-
context:
|
|
36
|
-
dict[str, Any] | None,
|
|
37
|
-
Field(
|
|
38
|
-
description='Initiator-provided context echoed inside the task payload. Opaque metadata such as UI/session hints, correlation tokens, or tracking identifiers.'
|
|
39
|
-
),
|
|
40
|
-
] = None
|
|
39
|
+
context: context_1.ContextObject | None = None
|
|
41
40
|
creative_agents: Annotated[
|
|
42
41
|
list[CreativeAgent] | None,
|
|
43
42
|
Field(
|
|
@@ -48,6 +47,7 @@ class ListCreativeFormatsResponse(AdCPBaseModel):
|
|
|
48
47
|
list[error.Error] | None,
|
|
49
48
|
Field(description='Task-specific errors and warnings (e.g., format availability issues)'),
|
|
50
49
|
] = None
|
|
50
|
+
ext: ext_1.ExtensionObject | None = None
|
|
51
51
|
formats: Annotated[
|
|
52
52
|
list[format.Format],
|
|
53
53
|
Field(
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
|
-
# filename:
|
|
3
|
-
# timestamp: 2025-11-
|
|
2
|
+
# filename: media_buy/list_creatives_request.json
|
|
3
|
+
# timestamp: 2025-11-22T15:23:24+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
7
|
from enum import Enum
|
|
8
|
-
from typing import Annotated
|
|
8
|
+
from typing import Annotated
|
|
9
9
|
|
|
10
10
|
from adcp.types.base import AdCPBaseModel
|
|
11
11
|
from pydantic import ConfigDict, Field
|
|
12
12
|
|
|
13
|
-
from
|
|
13
|
+
from ..core import context as context_1
|
|
14
|
+
from ..core import creative_filters
|
|
15
|
+
from ..core import ext as ext_1
|
|
16
|
+
from ..enums import creative_sort_field, sort_direction
|
|
14
17
|
|
|
15
18
|
|
|
16
19
|
class FieldModel(Enum):
|
|
@@ -52,12 +55,8 @@ class ListCreativesRequest(AdCPBaseModel):
|
|
|
52
55
|
model_config = ConfigDict(
|
|
53
56
|
extra='forbid',
|
|
54
57
|
)
|
|
55
|
-
context:
|
|
56
|
-
|
|
57
|
-
Field(
|
|
58
|
-
description='Initiator-provided context included in the request payload. Agentsmust echo this value back unchanged in responses and webhooks. Use for UI/session hints, correlation tokens, or tracking metadata.'
|
|
59
|
-
),
|
|
60
|
-
] = None
|
|
58
|
+
context: context_1.ContextObject | None = None
|
|
59
|
+
ext: ext_1.ExtensionObject | None = None
|
|
61
60
|
fields: Annotated[
|
|
62
61
|
list[FieldModel] | None,
|
|
63
62
|
Field(description='Specific fields to include in response (omit for all fields)'),
|
adcp/types/generated_poc/{list_creatives_response.py → media_buy/list_creatives_response.py}
RENAMED
|
@@ -1,29 +1,32 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
|
-
# filename:
|
|
3
|
-
# timestamp: 2025-11-
|
|
2
|
+
# filename: media_buy/list_creatives_response.json
|
|
3
|
+
# timestamp: 2025-11-22T19:54:03+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
7
|
from enum import Enum
|
|
8
|
-
from typing import Annotated
|
|
8
|
+
from typing import Annotated
|
|
9
9
|
|
|
10
10
|
from adcp.types.base import AdCPBaseModel
|
|
11
11
|
from pydantic import AwareDatetime, ConfigDict, Field
|
|
12
12
|
|
|
13
|
-
from
|
|
14
|
-
from
|
|
15
|
-
from
|
|
13
|
+
from ..core import context as context_1
|
|
14
|
+
from ..core import ext as ext_1
|
|
15
|
+
from ..core import format_id as format_id_1
|
|
16
|
+
from ..core import promoted_offerings, sub_asset
|
|
17
|
+
from ..core.assets import (
|
|
18
|
+
audio_asset,
|
|
19
|
+
css_asset,
|
|
20
|
+
daast_asset,
|
|
16
21
|
html_asset,
|
|
17
22
|
image_asset,
|
|
18
23
|
javascript_asset,
|
|
19
|
-
promoted_offerings,
|
|
20
|
-
sort_direction,
|
|
21
|
-
sub_asset,
|
|
22
24
|
text_asset,
|
|
23
25
|
url_asset,
|
|
24
26
|
vast_asset,
|
|
25
27
|
video_asset,
|
|
26
28
|
)
|
|
29
|
+
from ..enums import creative_status, sort_direction
|
|
27
30
|
|
|
28
31
|
|
|
29
32
|
class Status(Enum):
|
|
@@ -192,15 +195,11 @@ class ListCreativesResponse(AdCPBaseModel):
|
|
|
192
195
|
model_config = ConfigDict(
|
|
193
196
|
extra='forbid',
|
|
194
197
|
)
|
|
195
|
-
context:
|
|
196
|
-
dict[str, Any] | None,
|
|
197
|
-
Field(
|
|
198
|
-
description='Initiator-provided context echoed inside the task payload. Opaque metadata such as UI/session hints, correlation tokens, or tracking identifiers.'
|
|
199
|
-
),
|
|
200
|
-
] = None
|
|
198
|
+
context: context_1.ContextObject | None = None
|
|
201
199
|
creatives: Annotated[
|
|
202
200
|
list[Creative], Field(description='Array of creative assets matching the query')
|
|
203
201
|
]
|
|
202
|
+
ext: ext_1.ExtensionObject | None = None
|
|
204
203
|
format_summary: Annotated[
|
|
205
204
|
dict[str, int] | None, Field(description='Breakdown of creatives by format type')
|
|
206
205
|
] = None
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
|
-
# filename:
|
|
3
|
-
# timestamp: 2025-11-
|
|
2
|
+
# filename: media_buy/package_request.json
|
|
3
|
+
# timestamp: 2025-11-22T19:54:03+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
@@ -9,9 +9,10 @@ from typing import Annotated
|
|
|
9
9
|
from adcp.types.base import AdCPBaseModel
|
|
10
10
|
from pydantic import ConfigDict, Field
|
|
11
11
|
|
|
12
|
-
from
|
|
13
|
-
from
|
|
14
|
-
from
|
|
12
|
+
from ..core import creative_asset
|
|
13
|
+
from ..core import ext as ext_1
|
|
14
|
+
from ..core import format_id, targeting
|
|
15
|
+
from ..enums import pacing as pacing_1
|
|
15
16
|
|
|
16
17
|
|
|
17
18
|
class PackageRequest(AdCPBaseModel):
|
|
@@ -43,6 +44,7 @@ class PackageRequest(AdCPBaseModel):
|
|
|
43
44
|
max_length=100,
|
|
44
45
|
),
|
|
45
46
|
] = None
|
|
47
|
+
ext: ext_1.ExtensionObject | None = None
|
|
46
48
|
format_ids: Annotated[
|
|
47
49
|
list[format_id.FormatId] | None,
|
|
48
50
|
Field(
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
|
-
# filename:
|
|
3
|
-
# timestamp: 2025-11-
|
|
2
|
+
# filename: media_buy/provide_performance_feedback_request.json
|
|
3
|
+
# timestamp: 2025-11-22T15:23:24+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
-
from typing import Annotated
|
|
7
|
+
from typing import Annotated
|
|
8
8
|
|
|
9
9
|
from adcp.types.base import AdCPBaseModel
|
|
10
10
|
from pydantic import AwareDatetime, ConfigDict, Field, RootModel
|
|
11
11
|
|
|
12
|
-
from
|
|
13
|
-
from
|
|
12
|
+
from ..core import context as context_1
|
|
13
|
+
from ..core import ext as ext_1
|
|
14
|
+
from ..enums import feedback_source as feedback_source_1
|
|
15
|
+
from ..enums import metric_type as metric_type_1
|
|
14
16
|
|
|
15
17
|
|
|
16
18
|
class MeasurementPeriod(AdCPBaseModel):
|
|
@@ -32,18 +34,14 @@ class ProvidePerformanceFeedbackRequest1(AdCPBaseModel):
|
|
|
32
34
|
buyer_ref: Annotated[
|
|
33
35
|
str | None, Field(description="Buyer's reference for the media buy", min_length=1)
|
|
34
36
|
] = None
|
|
35
|
-
context:
|
|
36
|
-
dict[str, Any] | None,
|
|
37
|
-
Field(
|
|
38
|
-
description='Initiator-provided context included in the request payload. Agentsmust echo this value back unchanged in responses and webhooks. Use for UI/session hints, correlation tokens, or tracking metadata.'
|
|
39
|
-
),
|
|
40
|
-
] = None
|
|
37
|
+
context: context_1.ContextObject | None = None
|
|
41
38
|
creative_id: Annotated[
|
|
42
39
|
str | None,
|
|
43
40
|
Field(
|
|
44
41
|
description='Specific creative asset (if feedback is creative-specific)', min_length=1
|
|
45
42
|
),
|
|
46
43
|
] = None
|
|
44
|
+
ext: ext_1.ExtensionObject | None = None
|
|
47
45
|
feedback_source: Annotated[
|
|
48
46
|
feedback_source_1.FeedbackSource | None, Field(description='Source of the performance data')
|
|
49
47
|
] = feedback_source_1.FeedbackSource.buyer_attribution
|
|
@@ -79,18 +77,14 @@ class ProvidePerformanceFeedbackRequest2(AdCPBaseModel):
|
|
|
79
77
|
buyer_ref: Annotated[
|
|
80
78
|
str, Field(description="Buyer's reference for the media buy", min_length=1)
|
|
81
79
|
]
|
|
82
|
-
context:
|
|
83
|
-
dict[str, Any] | None,
|
|
84
|
-
Field(
|
|
85
|
-
description='Initiator-provided context included in the request payload. Agentsmust echo this value back unchanged in responses and webhooks. Use for UI/session hints, correlation tokens, or tracking metadata.'
|
|
86
|
-
),
|
|
87
|
-
] = None
|
|
80
|
+
context: context_1.ContextObject | None = None
|
|
88
81
|
creative_id: Annotated[
|
|
89
82
|
str | None,
|
|
90
83
|
Field(
|
|
91
84
|
description='Specific creative asset (if feedback is creative-specific)', min_length=1
|
|
92
85
|
),
|
|
93
86
|
] = None
|
|
87
|
+
ext: ext_1.ExtensionObject | None = None
|
|
94
88
|
feedback_source: Annotated[
|
|
95
89
|
feedback_source_1.FeedbackSource | None, Field(description='Source of the performance data')
|
|
96
90
|
] = feedback_source_1.FeedbackSource.buyer_attribution
|
|
@@ -1,27 +1,25 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
|
-
# filename:
|
|
3
|
-
# timestamp: 2025-11-
|
|
2
|
+
# filename: media_buy/provide_performance_feedback_response.json
|
|
3
|
+
# timestamp: 2025-11-22T19:16:02+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
-
from typing import Annotated,
|
|
7
|
+
from typing import Annotated, Literal
|
|
8
8
|
|
|
9
9
|
from adcp.types.base import AdCPBaseModel
|
|
10
10
|
from pydantic import ConfigDict, Field, RootModel
|
|
11
11
|
|
|
12
|
-
from
|
|
12
|
+
from ..core import context as context_1
|
|
13
|
+
from ..core import error
|
|
14
|
+
from ..core import ext as ext_1
|
|
13
15
|
|
|
14
16
|
|
|
15
17
|
class ProvidePerformanceFeedbackResponse1(AdCPBaseModel):
|
|
16
18
|
model_config = ConfigDict(
|
|
17
19
|
extra='forbid',
|
|
18
20
|
)
|
|
19
|
-
context:
|
|
20
|
-
|
|
21
|
-
Field(
|
|
22
|
-
description='Initiator-provided context echoed inside the task payload. Opaque metadata such as UI/session hints, correlation tokens, or tracking identifiers.'
|
|
23
|
-
),
|
|
24
|
-
] = None
|
|
21
|
+
context: context_1.ContextObject | None = None
|
|
22
|
+
ext: ext_1.ExtensionObject | None = None
|
|
25
23
|
success: Annotated[
|
|
26
24
|
Literal[True],
|
|
27
25
|
Field(description='Whether the performance feedback was successfully received'),
|
|
@@ -32,12 +30,7 @@ class ProvidePerformanceFeedbackResponse2(AdCPBaseModel):
|
|
|
32
30
|
model_config = ConfigDict(
|
|
33
31
|
extra='forbid',
|
|
34
32
|
)
|
|
35
|
-
context:
|
|
36
|
-
dict[str, Any] | None,
|
|
37
|
-
Field(
|
|
38
|
-
description='Initiator-provided context echoed inside the task payload. Opaque metadata such as UI/session hints, correlation tokens, or tracking identifiers.'
|
|
39
|
-
),
|
|
40
|
-
] = None
|
|
33
|
+
context: context_1.ContextObject | None = None
|
|
41
34
|
errors: Annotated[
|
|
42
35
|
list[error.Error],
|
|
43
36
|
Field(
|
|
@@ -45,6 +38,7 @@ class ProvidePerformanceFeedbackResponse2(AdCPBaseModel):
|
|
|
45
38
|
min_length=1,
|
|
46
39
|
),
|
|
47
40
|
]
|
|
41
|
+
ext: ext_1.ExtensionObject | None = None
|
|
48
42
|
|
|
49
43
|
|
|
50
44
|
class ProvidePerformanceFeedbackResponse(
|