adcp 2.4.0__py3-none-any.whl → 2.4.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/__init__.py +88 -39
- adcp/__main__.py +1 -1
- adcp/client.py +9 -9
- adcp/simple.py +1 -1
- adcp/testing/test_helpers.py +1 -1
- adcp/types/__init__.py +66 -2
- adcp/types/{generated.py → _generated.py} +67 -11
- adcp/types/aliases.py +1 -1
- adcp/types/generated_poc/__init__.py +1 -1
- adcp/types/generated_poc/activate_signal_request.py +1 -1
- adcp/types/generated_poc/activate_signal_response.py +1 -1
- adcp/types/generated_poc/activation_key.py +1 -1
- adcp/types/generated_poc/adagents.py +1 -1
- adcp/types/generated_poc/asset_type.py +1 -1
- adcp/types/generated_poc/audio_asset.py +1 -1
- adcp/types/generated_poc/brand_manifest.py +3 -62
- adcp/types/generated_poc/build_creative_request.py +1 -1
- adcp/types/generated_poc/build_creative_response.py +1 -1
- adcp/types/generated_poc/channels.py +1 -1
- adcp/types/generated_poc/cpc_option.py +1 -1
- adcp/types/generated_poc/cpcv_option.py +1 -1
- adcp/types/generated_poc/cpm_auction_option.py +1 -1
- adcp/types/generated_poc/cpm_fixed_option.py +1 -1
- adcp/types/generated_poc/cpp_option.py +1 -1
- adcp/types/generated_poc/cpv_option.py +1 -1
- adcp/types/generated_poc/create_media_buy_request.py +2 -2
- adcp/types/generated_poc/create_media_buy_response.py +1 -1
- adcp/types/generated_poc/creative_asset.py +1 -1
- adcp/types/generated_poc/creative_assignment.py +1 -1
- adcp/types/generated_poc/creative_manifest.py +1 -1
- adcp/types/generated_poc/creative_policy.py +1 -1
- adcp/types/generated_poc/creative_status.py +1 -1
- adcp/types/generated_poc/css_asset.py +1 -1
- adcp/types/generated_poc/daast_asset.py +1 -1
- adcp/types/generated_poc/delivery_metrics.py +1 -1
- adcp/types/generated_poc/delivery_type.py +1 -1
- adcp/types/generated_poc/deployment.py +1 -1
- adcp/types/generated_poc/destination.py +1 -1
- adcp/types/generated_poc/error.py +1 -1
- adcp/types/generated_poc/flat_rate_option.py +1 -1
- adcp/types/generated_poc/format.py +1 -1
- adcp/types/generated_poc/format_id.py +1 -1
- adcp/types/generated_poc/frequency_cap.py +1 -1
- adcp/types/generated_poc/frequency_cap_scope.py +1 -1
- adcp/types/generated_poc/get_media_buy_delivery_request.py +1 -1
- adcp/types/generated_poc/get_media_buy_delivery_response.py +1 -1
- adcp/types/generated_poc/get_products_request.py +2 -2
- adcp/types/generated_poc/get_products_response.py +1 -1
- adcp/types/generated_poc/get_signals_request.py +1 -1
- adcp/types/generated_poc/get_signals_response.py +1 -1
- adcp/types/generated_poc/html_asset.py +1 -1
- adcp/types/generated_poc/identifier_types.py +1 -1
- adcp/types/generated_poc/image_asset.py +1 -1
- adcp/types/generated_poc/javascript_asset.py +1 -1
- adcp/types/generated_poc/list_authorized_properties_request.py +1 -1
- adcp/types/generated_poc/list_authorized_properties_response.py +1 -1
- adcp/types/generated_poc/list_creative_formats_request.py +1 -1
- adcp/types/generated_poc/list_creative_formats_response.py +1 -1
- adcp/types/generated_poc/list_creatives_request.py +1 -1
- adcp/types/generated_poc/list_creatives_response.py +2 -17
- adcp/types/generated_poc/markdown_asset.py +1 -1
- adcp/types/generated_poc/measurement.py +1 -1
- adcp/types/generated_poc/media_buy.py +1 -1
- adcp/types/generated_poc/media_buy_status.py +1 -1
- adcp/types/generated_poc/pacing.py +1 -1
- adcp/types/generated_poc/package.py +1 -1
- adcp/types/generated_poc/package_request.py +1 -1
- adcp/types/generated_poc/package_status.py +1 -1
- adcp/types/generated_poc/performance_feedback.py +1 -1
- adcp/types/generated_poc/placement.py +1 -1
- adcp/types/generated_poc/preview_creative_request.py +1 -1
- adcp/types/generated_poc/preview_creative_response.py +1 -1
- adcp/types/generated_poc/preview_render.py +1 -1
- adcp/types/generated_poc/pricing_model.py +1 -1
- adcp/types/generated_poc/product.py +25 -16
- adcp/types/generated_poc/promoted_offerings.py +2 -2
- adcp/types/generated_poc/promoted_products.py +1 -1
- adcp/types/generated_poc/property.py +1 -1
- adcp/types/generated_poc/protocol_envelope.py +1 -1
- adcp/types/generated_poc/provide_performance_feedback_request.py +1 -1
- adcp/types/generated_poc/provide_performance_feedback_response.py +1 -1
- adcp/types/generated_poc/publisher_identifier_types.py +1 -1
- adcp/types/generated_poc/push_notification_config.py +1 -1
- adcp/types/generated_poc/reporting_capabilities.py +1 -1
- adcp/types/generated_poc/response.py +1 -1
- adcp/types/generated_poc/standard_format_ids.py +1 -1
- adcp/types/generated_poc/sub_asset.py +1 -1
- adcp/types/generated_poc/sync_creatives_request.py +1 -1
- adcp/types/generated_poc/sync_creatives_response.py +1 -1
- adcp/types/generated_poc/targeting.py +1 -1
- adcp/types/generated_poc/task_status.py +1 -1
- adcp/types/generated_poc/task_type.py +1 -1
- adcp/types/generated_poc/tasks_get_request.py +1 -1
- adcp/types/generated_poc/tasks_get_response.py +1 -1
- adcp/types/generated_poc/tasks_list_request.py +1 -1
- adcp/types/generated_poc/tasks_list_response.py +1 -1
- adcp/types/generated_poc/text_asset.py +1 -1
- adcp/types/generated_poc/update_media_buy_request.py +1 -1
- adcp/types/generated_poc/update_media_buy_response.py +1 -1
- adcp/types/generated_poc/url_asset.py +1 -1
- adcp/types/generated_poc/vast_asset.py +1 -1
- adcp/types/generated_poc/vcpm_auction_option.py +1 -1
- adcp/types/generated_poc/vcpm_fixed_option.py +1 -1
- adcp/types/generated_poc/video_asset.py +1 -1
- adcp/types/generated_poc/webhook_asset.py +1 -1
- adcp/types/generated_poc/webhook_payload.py +1 -1
- adcp/types/stable.py +175 -0
- adcp/utils/preview_cache.py +6 -6
- {adcp-2.4.0.dist-info → adcp-2.4.1.dist-info}/METADATA +29 -4
- adcp-2.4.1.dist-info/RECORD +129 -0
- adcp/types/generated_poc/brand_manifest_ref.py +0 -361
- adcp/types/generated_poc/index.py +0 -17
- adcp/types/generated_poc/pricing_option.py +0 -365
- adcp/types/generated_poc/start_timing.py +0 -13
- adcp-2.4.0.dist-info/RECORD +0 -132
- {adcp-2.4.0.dist-info → adcp-2.4.1.dist-info}/WHEEL +0 -0
- {adcp-2.4.0.dist-info → adcp-2.4.1.dist-info}/entry_points.txt +0 -0
- {adcp-2.4.0.dist-info → adcp-2.4.1.dist-info}/licenses/LICENSE +0 -0
- {adcp-2.4.0.dist-info → adcp-2.4.1.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: create-media-buy-request.json
|
|
3
|
-
# timestamp: 2025-11-
|
|
3
|
+
# timestamp: 2025-11-18T04:34:42+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
@@ -10,7 +10,7 @@ from typing import Annotated, Any
|
|
|
10
10
|
from adcp.types.base import AdCPBaseModel
|
|
11
11
|
from pydantic import AnyUrl, AwareDatetime, ConfigDict, Field
|
|
12
12
|
|
|
13
|
-
from . import
|
|
13
|
+
from . import brand_manifest as brand_manifest_1
|
|
14
14
|
from . import package_request
|
|
15
15
|
from .push_notification_config import PushNotificationConfig
|
|
16
16
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: get-products-request.json
|
|
3
|
-
# timestamp: 2025-11-
|
|
3
|
+
# timestamp: 2025-11-18T04:34:42+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
@@ -10,7 +10,7 @@ from typing import Annotated, Any
|
|
|
10
10
|
from adcp.types.base import AdCPBaseModel
|
|
11
11
|
from pydantic import AnyUrl, ConfigDict, Field
|
|
12
12
|
|
|
13
|
-
from . import
|
|
13
|
+
from . import brand_manifest as brand_manifest_1
|
|
14
14
|
from . import delivery_type as delivery_type_1
|
|
15
15
|
from . import format_id
|
|
16
16
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: list-creatives-response.json
|
|
3
|
-
# timestamp: 2025-11-
|
|
3
|
+
# timestamp: 2025-11-18T04:34:42+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
@@ -8,7 +8,7 @@ from enum import Enum
|
|
|
8
8
|
from typing import Annotated, Any
|
|
9
9
|
|
|
10
10
|
from adcp.types.base import AdCPBaseModel
|
|
11
|
-
from pydantic import
|
|
11
|
+
from pydantic import AwareDatetime, ConfigDict, Field
|
|
12
12
|
|
|
13
13
|
from . import audio_asset, creative_status, css_asset, daast_asset
|
|
14
14
|
from . import format_id as format_id_1
|
|
@@ -162,26 +162,14 @@ class Creative(AdCPBaseModel):
|
|
|
162
162
|
Assignments | None,
|
|
163
163
|
Field(description='Current package assignments (included when include_assignments=true)'),
|
|
164
164
|
] = None
|
|
165
|
-
click_url: Annotated[AnyUrl | None, Field(description='Landing page URL for the creative')] = (
|
|
166
|
-
None
|
|
167
|
-
)
|
|
168
165
|
created_date: Annotated[
|
|
169
166
|
AwareDatetime, Field(description='When the creative was uploaded to the library')
|
|
170
167
|
]
|
|
171
168
|
creative_id: Annotated[str, Field(description='Unique identifier for the creative')]
|
|
172
|
-
duration: Annotated[
|
|
173
|
-
float | None, Field(description='Duration in milliseconds (for video/audio)', ge=0.0)
|
|
174
|
-
] = None
|
|
175
169
|
format_id: Annotated[
|
|
176
170
|
format_id_1.FormatId,
|
|
177
171
|
Field(description='Format identifier specifying which format this creative conforms to'),
|
|
178
172
|
]
|
|
179
|
-
height: Annotated[
|
|
180
|
-
float | None, Field(description='Height in pixels (for video/display)', ge=0.0)
|
|
181
|
-
] = None
|
|
182
|
-
media_url: Annotated[
|
|
183
|
-
AnyUrl | None, Field(description='URL of the creative file (for hosted assets)')
|
|
184
|
-
] = None
|
|
185
173
|
name: Annotated[str, Field(description='Human-readable creative name')]
|
|
186
174
|
performance: Annotated[
|
|
187
175
|
Performance | None,
|
|
@@ -202,9 +190,6 @@ class Creative(AdCPBaseModel):
|
|
|
202
190
|
list[str] | None, Field(description='User-defined tags for organization and searchability')
|
|
203
191
|
] = None
|
|
204
192
|
updated_date: Annotated[AwareDatetime, Field(description='When the creative was last modified')]
|
|
205
|
-
width: Annotated[
|
|
206
|
-
float | None, Field(description='Width in pixels (for video/display)', ge=0.0)
|
|
207
|
-
] = None
|
|
208
193
|
|
|
209
194
|
|
|
210
195
|
class ListCreativesResponse(AdCPBaseModel):
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: product.json
|
|
3
|
-
# timestamp: 2025-11-
|
|
3
|
+
# timestamp: 2025-11-18T05:05:53+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
7
|
from typing import Annotated, Any, Literal
|
|
8
8
|
|
|
9
9
|
from adcp.types.base import AdCPBaseModel
|
|
10
|
-
from pydantic import AwareDatetime, ConfigDict, Field, RootModel
|
|
10
|
+
from pydantic import AwareDatetime, ConfigDict, Field, RootModel
|
|
11
11
|
|
|
12
12
|
from . import cpc_option, cpcv_option, cpm_auction_option, cpm_fixed_option, cpp_option, cpv_option
|
|
13
13
|
from . import creative_policy as creative_policy_1
|
|
@@ -69,11 +69,30 @@ class ProductCardDetailed(AdCPBaseModel):
|
|
|
69
69
|
]
|
|
70
70
|
|
|
71
71
|
|
|
72
|
+
class PublisherProperties(AdCPBaseModel):
|
|
73
|
+
model_config = ConfigDict(
|
|
74
|
+
extra='forbid',
|
|
75
|
+
)
|
|
76
|
+
publisher_domain: Annotated[
|
|
77
|
+
str,
|
|
78
|
+
Field(
|
|
79
|
+
description="Domain where publisher's adagents.json is hosted (e.g., 'cnn.com')",
|
|
80
|
+
pattern='^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$',
|
|
81
|
+
),
|
|
82
|
+
]
|
|
83
|
+
selection_type: Annotated[
|
|
84
|
+
Literal['all'],
|
|
85
|
+
Field(
|
|
86
|
+
description='Discriminator indicating all properties from this publisher are included'
|
|
87
|
+
),
|
|
88
|
+
]
|
|
89
|
+
|
|
90
|
+
|
|
72
91
|
class PropertyId(RootModel[str]):
|
|
73
92
|
root: Annotated[str, Field(pattern='^[a-z0-9_]+$')]
|
|
74
93
|
|
|
75
94
|
|
|
76
|
-
class
|
|
95
|
+
class PublisherProperties4(AdCPBaseModel):
|
|
77
96
|
model_config = ConfigDict(
|
|
78
97
|
extra='forbid',
|
|
79
98
|
)
|
|
@@ -98,7 +117,7 @@ class PropertyTag(PropertyId):
|
|
|
98
117
|
pass
|
|
99
118
|
|
|
100
119
|
|
|
101
|
-
class
|
|
120
|
+
class PublisherProperties5(AdCPBaseModel):
|
|
102
121
|
model_config = ConfigDict(
|
|
103
122
|
extra='forbid',
|
|
104
123
|
)
|
|
@@ -193,20 +212,10 @@ class Product(AdCPBaseModel):
|
|
|
193
212
|
] = None
|
|
194
213
|
product_id: Annotated[str, Field(description='Unique identifier for the product')]
|
|
195
214
|
publisher_properties: Annotated[
|
|
196
|
-
list[PublisherProperties |
|
|
215
|
+
list[PublisherProperties | PublisherProperties4 | PublisherProperties5],
|
|
197
216
|
Field(
|
|
198
|
-
description="Publisher properties covered by this product. Buyers fetch actual property definitions from each publisher's adagents.json and validate agent authorization.",
|
|
217
|
+
description="Publisher properties covered by this product. Buyers fetch actual property definitions from each publisher's adagents.json and validate agent authorization. Selection patterns mirror the authorization patterns in adagents.json for consistency.",
|
|
199
218
|
min_length=1,
|
|
200
219
|
),
|
|
201
220
|
]
|
|
202
221
|
reporting_capabilities: reporting_capabilities_1.ReportingCapabilities | None = None
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
@model_validator(mode='after')
|
|
206
|
-
def validate_publisher_properties_items(self) -> 'Product':
|
|
207
|
-
"""Validate all publisher_properties items."""
|
|
208
|
-
from adcp.validation import validate_product
|
|
209
|
-
|
|
210
|
-
data = self.model_dump()
|
|
211
|
-
validate_product(data)
|
|
212
|
-
return self
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: promoted-offerings.json
|
|
3
|
-
# timestamp: 2025-11-
|
|
3
|
+
# timestamp: 2025-11-18T04:34:42+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
@@ -10,7 +10,7 @@ from typing import Annotated, Any
|
|
|
10
10
|
from adcp.types.base import AdCPBaseModel
|
|
11
11
|
from pydantic import AnyUrl, ConfigDict, Field
|
|
12
12
|
|
|
13
|
-
from . import
|
|
13
|
+
from . import brand_manifest as brand_manifest_1
|
|
14
14
|
from . import promoted_products
|
|
15
15
|
|
|
16
16
|
|