adcp 2.5.0__py3-none-any.whl → 2.7.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- adcp/__init__.py +69 -43
- adcp/client.py +11 -9
- adcp/simple.py +1 -1
- adcp/types/__init__.py +12 -0
- adcp/types/_generated.py +15 -9
- adcp/types/aliases.py +245 -5
- adcp/types/generated_poc/adagents.py +34 -77
- adcp/types/generated_poc/product.py +9 -76
- adcp/types/generated_poc/publisher_property_selector.py +81 -0
- adcp/types/stable.py +14 -3
- adcp/utils/preview_cache.py +7 -7
- {adcp-2.5.0.dist-info → adcp-2.7.0.dist-info}/METADATA +1 -1
- {adcp-2.5.0.dist-info → adcp-2.7.0.dist-info}/RECORD +17 -16
- {adcp-2.5.0.dist-info → adcp-2.7.0.dist-info}/WHEEL +0 -0
- {adcp-2.5.0.dist-info → adcp-2.7.0.dist-info}/entry_points.txt +0 -0
- {adcp-2.5.0.dist-info → adcp-2.7.0.dist-info}/licenses/LICENSE +0 -0
- {adcp-2.5.0.dist-info → adcp-2.7.0.dist-info}/top_level.txt +0 -0
adcp/__init__.py
CHANGED
|
@@ -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",
|
adcp/client.py
CHANGED
|
@@ -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__)
|
adcp/simple.py
CHANGED
|
@@ -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,
|
adcp/types/__init__.py
CHANGED
|
@@ -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",
|
adcp/types/_generated.py
CHANGED
|
@@ -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
|
]
|
adcp/types/aliases.py
CHANGED
|
@@ -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
|
]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: adagents.json
|
|
3
|
-
# timestamp: 2025-11-
|
|
3
|
+
# timestamp: 2025-11-19T02:02:39+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
@@ -9,7 +9,7 @@ from typing import Annotated, Literal
|
|
|
9
9
|
from adcp.types.base import AdCPBaseModel
|
|
10
10
|
from pydantic import AnyUrl, AwareDatetime, ConfigDict, EmailStr, Field, RootModel
|
|
11
11
|
|
|
12
|
-
from . import property
|
|
12
|
+
from . import property, publisher_property_selector
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
class PropertyId(RootModel[str]):
|
|
@@ -72,81 +72,6 @@ class AuthorizedAgents1(AdCPBaseModel):
|
|
|
72
72
|
url: Annotated[AnyUrl, Field(description="The authorized agent's API endpoint URL")]
|
|
73
73
|
|
|
74
74
|
|
|
75
|
-
class PublisherProperties(AdCPBaseModel):
|
|
76
|
-
model_config = ConfigDict(
|
|
77
|
-
extra='forbid',
|
|
78
|
-
)
|
|
79
|
-
property_ids: Annotated[
|
|
80
|
-
list[PropertyId],
|
|
81
|
-
Field(
|
|
82
|
-
description="Specific property IDs from the publisher's adagents.json properties array",
|
|
83
|
-
min_length=1,
|
|
84
|
-
),
|
|
85
|
-
]
|
|
86
|
-
publisher_domain: Annotated[
|
|
87
|
-
str,
|
|
88
|
-
Field(
|
|
89
|
-
description="Domain where the publisher's adagents.json is hosted (e.g., 'cnn.com')",
|
|
90
|
-
pattern='^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$',
|
|
91
|
-
),
|
|
92
|
-
]
|
|
93
|
-
selection_type: Annotated[
|
|
94
|
-
Literal['by_id'],
|
|
95
|
-
Field(description='Discriminator indicating selection by specific property IDs'),
|
|
96
|
-
]
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
class PublisherProperties1(AdCPBaseModel):
|
|
100
|
-
model_config = ConfigDict(
|
|
101
|
-
extra='forbid',
|
|
102
|
-
)
|
|
103
|
-
property_tags: Annotated[
|
|
104
|
-
list[PropertyTag],
|
|
105
|
-
Field(
|
|
106
|
-
description="Property tags from the publisher's adagents.json tags. Agent is authorized for all properties with these tags",
|
|
107
|
-
min_length=1,
|
|
108
|
-
),
|
|
109
|
-
]
|
|
110
|
-
publisher_domain: Annotated[
|
|
111
|
-
str,
|
|
112
|
-
Field(
|
|
113
|
-
description="Domain where the publisher's adagents.json is hosted (e.g., 'cnn.com')",
|
|
114
|
-
pattern='^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$',
|
|
115
|
-
),
|
|
116
|
-
]
|
|
117
|
-
selection_type: Annotated[
|
|
118
|
-
Literal['by_tag'], Field(description='Discriminator indicating selection by property tags')
|
|
119
|
-
]
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
class AuthorizedAgents3(AdCPBaseModel):
|
|
123
|
-
model_config = ConfigDict(
|
|
124
|
-
extra='forbid',
|
|
125
|
-
)
|
|
126
|
-
authorization_type: Annotated[
|
|
127
|
-
Literal['publisher_properties'],
|
|
128
|
-
Field(
|
|
129
|
-
description='Discriminator indicating authorization for properties from other publisher domains'
|
|
130
|
-
),
|
|
131
|
-
]
|
|
132
|
-
authorized_for: Annotated[
|
|
133
|
-
str,
|
|
134
|
-
Field(
|
|
135
|
-
description='Human-readable description of what this agent is authorized to sell',
|
|
136
|
-
max_length=500,
|
|
137
|
-
min_length=1,
|
|
138
|
-
),
|
|
139
|
-
]
|
|
140
|
-
publisher_properties: Annotated[
|
|
141
|
-
list[PublisherProperties | PublisherProperties1],
|
|
142
|
-
Field(
|
|
143
|
-
description='Properties from other publisher domains this agent is authorized for. Each entry specifies a publisher domain and which of their properties this agent can sell',
|
|
144
|
-
min_length=1,
|
|
145
|
-
),
|
|
146
|
-
]
|
|
147
|
-
url: Annotated[AnyUrl, Field(description="The authorized agent's API endpoint URL")]
|
|
148
|
-
|
|
149
|
-
|
|
150
75
|
class Contact(AdCPBaseModel):
|
|
151
76
|
model_config = ConfigDict(
|
|
152
77
|
extra='forbid',
|
|
@@ -226,6 +151,38 @@ class AuthorizedAgents2(AdCPBaseModel):
|
|
|
226
151
|
url: Annotated[AnyUrl, Field(description="The authorized agent's API endpoint URL")]
|
|
227
152
|
|
|
228
153
|
|
|
154
|
+
class AuthorizedAgents3(AdCPBaseModel):
|
|
155
|
+
model_config = ConfigDict(
|
|
156
|
+
extra='forbid',
|
|
157
|
+
)
|
|
158
|
+
authorization_type: Annotated[
|
|
159
|
+
Literal['publisher_properties'],
|
|
160
|
+
Field(
|
|
161
|
+
description='Discriminator indicating authorization for properties from other publisher domains'
|
|
162
|
+
),
|
|
163
|
+
]
|
|
164
|
+
authorized_for: Annotated[
|
|
165
|
+
str,
|
|
166
|
+
Field(
|
|
167
|
+
description='Human-readable description of what this agent is authorized to sell',
|
|
168
|
+
max_length=500,
|
|
169
|
+
min_length=1,
|
|
170
|
+
),
|
|
171
|
+
]
|
|
172
|
+
publisher_properties: Annotated[
|
|
173
|
+
list[
|
|
174
|
+
publisher_property_selector.PublisherPropertySelector1
|
|
175
|
+
| publisher_property_selector.PublisherPropertySelector2
|
|
176
|
+
| publisher_property_selector.PublisherPropertySelector3
|
|
177
|
+
],
|
|
178
|
+
Field(
|
|
179
|
+
description='Properties from other publisher domains this agent is authorized for. Each entry specifies a publisher domain and which of their properties this agent can sell',
|
|
180
|
+
min_length=1,
|
|
181
|
+
),
|
|
182
|
+
]
|
|
183
|
+
url: Annotated[AnyUrl, Field(description="The authorized agent's API endpoint URL")]
|
|
184
|
+
|
|
185
|
+
|
|
229
186
|
class AuthorizedSalesAgents(AdCPBaseModel):
|
|
230
187
|
model_config = ConfigDict(
|
|
231
188
|
extra='forbid',
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: product.json
|
|
3
|
-
# timestamp: 2025-11-
|
|
3
|
+
# timestamp: 2025-11-19T02:02:39+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
-
from typing import Annotated, Any
|
|
7
|
+
from typing import Annotated, Any
|
|
8
8
|
|
|
9
9
|
from adcp.types.base import AdCPBaseModel
|
|
10
|
-
from pydantic import AwareDatetime, ConfigDict, Field
|
|
10
|
+
from pydantic import AwareDatetime, ConfigDict, Field
|
|
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
|
|
@@ -15,7 +15,7 @@ from . import delivery_type as delivery_type_1
|
|
|
15
15
|
from . import flat_rate_option
|
|
16
16
|
from . import format_id as format_id_1
|
|
17
17
|
from . import measurement as measurement_1
|
|
18
|
-
from . import placement
|
|
18
|
+
from . import placement, publisher_property_selector
|
|
19
19
|
from . import reporting_capabilities as reporting_capabilities_1
|
|
20
20
|
from . import vcpm_auction_option, vcpm_fixed_option
|
|
21
21
|
|
|
@@ -69,77 +69,6 @@ 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
|
-
|
|
91
|
-
class PropertyId(RootModel[str]):
|
|
92
|
-
root: Annotated[str, Field(pattern='^[a-z0-9_]+$')]
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
class PublisherProperties4(AdCPBaseModel):
|
|
96
|
-
model_config = ConfigDict(
|
|
97
|
-
extra='forbid',
|
|
98
|
-
)
|
|
99
|
-
property_ids: Annotated[
|
|
100
|
-
list[PropertyId],
|
|
101
|
-
Field(description="Specific property IDs from the publisher's adagents.json", min_length=1),
|
|
102
|
-
]
|
|
103
|
-
publisher_domain: Annotated[
|
|
104
|
-
str,
|
|
105
|
-
Field(
|
|
106
|
-
description="Domain where publisher's adagents.json is hosted (e.g., 'cnn.com')",
|
|
107
|
-
pattern='^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$',
|
|
108
|
-
),
|
|
109
|
-
]
|
|
110
|
-
selection_type: Annotated[
|
|
111
|
-
Literal['by_id'],
|
|
112
|
-
Field(description='Discriminator indicating selection by specific property IDs'),
|
|
113
|
-
]
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
class PropertyTag(PropertyId):
|
|
117
|
-
pass
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
class PublisherProperties5(AdCPBaseModel):
|
|
121
|
-
model_config = ConfigDict(
|
|
122
|
-
extra='forbid',
|
|
123
|
-
)
|
|
124
|
-
property_tags: Annotated[
|
|
125
|
-
list[PropertyTag],
|
|
126
|
-
Field(
|
|
127
|
-
description="Property tags from the publisher's adagents.json. Product covers all properties with these tags",
|
|
128
|
-
min_length=1,
|
|
129
|
-
),
|
|
130
|
-
]
|
|
131
|
-
publisher_domain: Annotated[
|
|
132
|
-
str,
|
|
133
|
-
Field(
|
|
134
|
-
description="Domain where publisher's adagents.json is hosted (e.g., 'cnn.com')",
|
|
135
|
-
pattern='^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$',
|
|
136
|
-
),
|
|
137
|
-
]
|
|
138
|
-
selection_type: Annotated[
|
|
139
|
-
Literal['by_tag'], Field(description='Discriminator indicating selection by property tags')
|
|
140
|
-
]
|
|
141
|
-
|
|
142
|
-
|
|
143
72
|
class Product(AdCPBaseModel):
|
|
144
73
|
model_config = ConfigDict(
|
|
145
74
|
extra='forbid',
|
|
@@ -212,7 +141,11 @@ class Product(AdCPBaseModel):
|
|
|
212
141
|
] = None
|
|
213
142
|
product_id: Annotated[str, Field(description='Unique identifier for the product')]
|
|
214
143
|
publisher_properties: Annotated[
|
|
215
|
-
list[
|
|
144
|
+
list[
|
|
145
|
+
publisher_property_selector.PublisherPropertySelector1
|
|
146
|
+
| publisher_property_selector.PublisherPropertySelector2
|
|
147
|
+
| publisher_property_selector.PublisherPropertySelector3
|
|
148
|
+
],
|
|
216
149
|
Field(
|
|
217
150
|
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.",
|
|
218
151
|
min_length=1,
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: publisher-property-selector.json
|
|
3
|
+
# timestamp: 2025-11-19T02:02:39+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import Annotated, Literal
|
|
8
|
+
|
|
9
|
+
from adcp.types.base import AdCPBaseModel
|
|
10
|
+
from pydantic import ConfigDict, Field, RootModel
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class PublisherPropertySelector1(AdCPBaseModel):
|
|
14
|
+
model_config = ConfigDict(
|
|
15
|
+
extra='forbid',
|
|
16
|
+
)
|
|
17
|
+
publisher_domain: Annotated[
|
|
18
|
+
str,
|
|
19
|
+
Field(
|
|
20
|
+
description="Domain where publisher's adagents.json is hosted (e.g., 'cnn.com')",
|
|
21
|
+
pattern='^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$',
|
|
22
|
+
),
|
|
23
|
+
]
|
|
24
|
+
selection_type: Annotated[
|
|
25
|
+
Literal['all'],
|
|
26
|
+
Field(
|
|
27
|
+
description='Discriminator indicating all properties from this publisher are included'
|
|
28
|
+
),
|
|
29
|
+
]
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class PropertyId(RootModel[str]):
|
|
33
|
+
root: Annotated[str, Field(pattern='^[a-z0-9_]+$')]
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class PublisherPropertySelector2(AdCPBaseModel):
|
|
37
|
+
model_config = ConfigDict(
|
|
38
|
+
extra='forbid',
|
|
39
|
+
)
|
|
40
|
+
property_ids: Annotated[
|
|
41
|
+
list[PropertyId],
|
|
42
|
+
Field(description="Specific property IDs from the publisher's adagents.json", min_length=1),
|
|
43
|
+
]
|
|
44
|
+
publisher_domain: Annotated[
|
|
45
|
+
str,
|
|
46
|
+
Field(
|
|
47
|
+
description="Domain where publisher's adagents.json is hosted (e.g., 'cnn.com')",
|
|
48
|
+
pattern='^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$',
|
|
49
|
+
),
|
|
50
|
+
]
|
|
51
|
+
selection_type: Annotated[
|
|
52
|
+
Literal['by_id'],
|
|
53
|
+
Field(description='Discriminator indicating selection by specific property IDs'),
|
|
54
|
+
]
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
class PropertyTag(PropertyId):
|
|
58
|
+
pass
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
class PublisherPropertySelector3(AdCPBaseModel):
|
|
62
|
+
model_config = ConfigDict(
|
|
63
|
+
extra='forbid',
|
|
64
|
+
)
|
|
65
|
+
property_tags: Annotated[
|
|
66
|
+
list[PropertyTag],
|
|
67
|
+
Field(
|
|
68
|
+
description="Property tags from the publisher's adagents.json. Selector covers all properties with these tags",
|
|
69
|
+
min_length=1,
|
|
70
|
+
),
|
|
71
|
+
]
|
|
72
|
+
publisher_domain: Annotated[
|
|
73
|
+
str,
|
|
74
|
+
Field(
|
|
75
|
+
description="Domain where publisher's adagents.json is hosted (e.g., 'cnn.com')",
|
|
76
|
+
pattern='^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$',
|
|
77
|
+
),
|
|
78
|
+
]
|
|
79
|
+
selection_type: Annotated[
|
|
80
|
+
Literal['by_tag'], Field(description='Discriminator indicating selection by property tags')
|
|
81
|
+
]
|
adcp/types/stable.py
CHANGED
|
@@ -48,6 +48,7 @@ from adcp.types._generated import (
|
|
|
48
48
|
Error,
|
|
49
49
|
FlatRatePricingOption,
|
|
50
50
|
Format,
|
|
51
|
+
FormatId,
|
|
51
52
|
GetMediaBuyDeliveryRequest,
|
|
52
53
|
GetMediaBuyDeliveryResponse,
|
|
53
54
|
GetProductsRequest,
|
|
@@ -66,14 +67,17 @@ from adcp.types._generated import (
|
|
|
66
67
|
MarkdownAsset,
|
|
67
68
|
MediaBuy,
|
|
68
69
|
MediaBuyStatus,
|
|
70
|
+
PackageRequest,
|
|
69
71
|
PackageStatus,
|
|
70
72
|
PreviewCreativeRequest,
|
|
71
73
|
PreviewCreativeResponse,
|
|
74
|
+
PriceGuidance,
|
|
72
75
|
PricingModel,
|
|
73
76
|
Product,
|
|
74
77
|
Property,
|
|
75
78
|
ProvidePerformanceFeedbackRequest,
|
|
76
79
|
ProvidePerformanceFeedbackResponse,
|
|
80
|
+
PushNotificationConfig,
|
|
77
81
|
SyncCreativesRequest,
|
|
78
82
|
SyncCreativesResponse,
|
|
79
83
|
TasksGetRequest,
|
|
@@ -90,11 +94,12 @@ from adcp.types._generated import (
|
|
|
90
94
|
VcpmFixedRatePricingOption,
|
|
91
95
|
VideoAsset,
|
|
92
96
|
WebhookAsset,
|
|
97
|
+
WebhookPayload,
|
|
93
98
|
)
|
|
94
99
|
|
|
95
100
|
# Import all generated types from internal consolidated module
|
|
96
|
-
# Import Package
|
|
97
|
-
from adcp.types.
|
|
101
|
+
# Import Package from _generated (uses qualified name to avoid collision)
|
|
102
|
+
from adcp.types._generated import _PackageFromPackage as Package
|
|
98
103
|
|
|
99
104
|
# Note: BrandManifest is currently split into BrandManifest1/2 due to upstream schema
|
|
100
105
|
# using anyOf incorrectly. This will be fixed upstream to create a single BrandManifest type.
|
|
@@ -142,11 +147,13 @@ __all__ = [
|
|
|
142
147
|
"CreativeManifest",
|
|
143
148
|
"Error",
|
|
144
149
|
"Format",
|
|
150
|
+
"FormatId",
|
|
145
151
|
"MediaBuy",
|
|
146
152
|
"Package",
|
|
153
|
+
"PackageRequest",
|
|
147
154
|
"Product",
|
|
148
155
|
"Property",
|
|
149
|
-
# Pricing
|
|
156
|
+
# Pricing-related types
|
|
150
157
|
"CpcPricingOption",
|
|
151
158
|
"CpcvPricingOption",
|
|
152
159
|
"CpmAuctionPricingOption",
|
|
@@ -154,6 +161,7 @@ __all__ = [
|
|
|
154
161
|
"CppPricingOption",
|
|
155
162
|
"CpvPricingOption",
|
|
156
163
|
"FlatRatePricingOption",
|
|
164
|
+
"PriceGuidance",
|
|
157
165
|
"VcpmAuctionPricingOption",
|
|
158
166
|
"VcpmFixedRatePricingOption",
|
|
159
167
|
# Status enums
|
|
@@ -163,6 +171,8 @@ __all__ = [
|
|
|
163
171
|
"PricingModel",
|
|
164
172
|
"TaskStatus",
|
|
165
173
|
"TaskType",
|
|
174
|
+
# Configuration types
|
|
175
|
+
"PushNotificationConfig",
|
|
166
176
|
# Assets
|
|
167
177
|
"AudioAsset",
|
|
168
178
|
"CssAsset",
|
|
@@ -174,4 +184,5 @@ __all__ = [
|
|
|
174
184
|
"UrlAsset",
|
|
175
185
|
"VideoAsset",
|
|
176
186
|
"WebhookAsset",
|
|
187
|
+
"WebhookPayload",
|
|
177
188
|
]
|
adcp/utils/preview_cache.py
CHANGED
|
@@ -10,7 +10,7 @@ from typing import TYPE_CHECKING, Any
|
|
|
10
10
|
|
|
11
11
|
if TYPE_CHECKING:
|
|
12
12
|
from adcp.client import ADCPClient
|
|
13
|
-
from adcp.types.
|
|
13
|
+
from adcp.types.stable import CreativeManifest, Format, FormatId, Product
|
|
14
14
|
|
|
15
15
|
logger = logging.getLogger(__name__)
|
|
16
16
|
|
|
@@ -67,7 +67,7 @@ class PreviewURLGenerator:
|
|
|
67
67
|
Returns:
|
|
68
68
|
Preview data with preview_url and metadata, or None if generation fails
|
|
69
69
|
"""
|
|
70
|
-
from adcp.types.
|
|
70
|
+
from adcp.types.aliases import PreviewCreativeFormatRequest
|
|
71
71
|
|
|
72
72
|
cache_key = _make_manifest_cache_key(format_id, manifest.model_dump(exclude_none=True))
|
|
73
73
|
|
|
@@ -75,7 +75,7 @@ class PreviewURLGenerator:
|
|
|
75
75
|
return self._preview_cache[cache_key]
|
|
76
76
|
|
|
77
77
|
try:
|
|
78
|
-
request =
|
|
78
|
+
request = PreviewCreativeFormatRequest(
|
|
79
79
|
request_type="single",
|
|
80
80
|
format_id=format_id,
|
|
81
81
|
creative_manifest=manifest,
|
|
@@ -123,7 +123,7 @@ class PreviewURLGenerator:
|
|
|
123
123
|
Returns:
|
|
124
124
|
List of preview data dicts (or None for failures), in same order as requests
|
|
125
125
|
"""
|
|
126
|
-
from adcp.types.
|
|
126
|
+
from adcp.types.stable import PreviewCreativeRequest
|
|
127
127
|
|
|
128
128
|
if not requests:
|
|
129
129
|
return []
|
|
@@ -396,7 +396,7 @@ def _create_sample_manifest_for_format(fmt: Format) -> CreativeManifest | None:
|
|
|
396
396
|
Returns:
|
|
397
397
|
Sample CreativeManifest, or None if unable to create one
|
|
398
398
|
"""
|
|
399
|
-
from adcp.types.
|
|
399
|
+
from adcp.types.stable import CreativeManifest
|
|
400
400
|
|
|
401
401
|
if not fmt.assets_required:
|
|
402
402
|
return None
|
|
@@ -436,7 +436,7 @@ def _create_sample_manifest_for_format_id(
|
|
|
436
436
|
Returns:
|
|
437
437
|
Sample CreativeManifest with placeholder assets
|
|
438
438
|
"""
|
|
439
|
-
from adcp.types.
|
|
439
|
+
from adcp.types.stable import CreativeManifest, ImageAsset, UrlAsset
|
|
440
440
|
|
|
441
441
|
assets = {
|
|
442
442
|
"primary_asset": ImageAsset(url="https://example.com/sample-image.jpg"),
|
|
@@ -456,7 +456,7 @@ def _create_sample_asset(asset_type: str | None) -> Any:
|
|
|
456
456
|
Returns:
|
|
457
457
|
Sample asset object (Pydantic model)
|
|
458
458
|
"""
|
|
459
|
-
from adcp.types.
|
|
459
|
+
from adcp.types.stable import (
|
|
460
460
|
HtmlAsset,
|
|
461
461
|
ImageAsset,
|
|
462
462
|
TextAsset,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
adcp/__init__.py,sha256=
|
|
1
|
+
adcp/__init__.py,sha256=yoj3l_T1DPfbYUIWSMWMXOsxTqhIyhbeuvlAtU-HAGg,9188
|
|
2
2
|
adcp/__main__.py,sha256=YF2GUXF1LICW1TPxNQiGIfSp5cpAsejoEG2fuOgbzrc,12839
|
|
3
3
|
adcp/adagents.py,sha256=o-vTBmdZvu9aER-TAlLLL3s-WGYY8N67jnrAH24lST8,22333
|
|
4
|
-
adcp/client.py,sha256=
|
|
4
|
+
adcp/client.py,sha256=EzHS5Aysau3liwkGp_clYkYxTHACeqP4zNT8jSLz0hs,28789
|
|
5
5
|
adcp/config.py,sha256=Vsy7ZPOI8G3fB_i5Nk-CHbC7wdasCUWuKlos0fwA0kY,2017
|
|
6
6
|
adcp/exceptions.py,sha256=1aZEWpaM92OxD2jl9yKsqJp5ReSWaj0S0DFhxChhLlA,6732
|
|
7
7
|
adcp/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
|
-
adcp/simple.py,sha256=
|
|
8
|
+
adcp/simple.py,sha256=OYoAF9MBK4dkvYQz3eMOVNEC-OZUNRkCgLDxmKSNZZY,10437
|
|
9
9
|
adcp/validation.py,sha256=NsTwTQbLmd1Z1bMcztR1llJB21ai1xuw5aVrca7LoE8,6793
|
|
10
10
|
adcp/protocols/__init__.py,sha256=6UFwACQ0QadBUzy17wUROHqsJDp8ztPW2jzyl53Zh_g,262
|
|
11
11
|
adcp/protocols/a2a.py,sha256=FHgc6G_eU2qD0vH7_RyS1eZvUFSb2j3-EsceoHPi384,12467
|
|
@@ -13,17 +13,17 @@ adcp/protocols/base.py,sha256=vBHD23Fzl_CCk_Gy9nvSbBYopcJlYkYyzoz-rhI8wHg,5214
|
|
|
13
13
|
adcp/protocols/mcp.py,sha256=d9uSpGd0BKvQ0JxztkfDvHwoDrDYhuiw5oivpYOAbmM,16647
|
|
14
14
|
adcp/testing/__init__.py,sha256=ZWp_floWjVZfy8RBG5v_FUXQ8YbN7xjXvVcX-_zl_HU,1416
|
|
15
15
|
adcp/testing/test_helpers.py,sha256=-UKuxxyKQald5EvXxguQH34b3J0JdsxKH_nRT6GTjkQ,10029
|
|
16
|
-
adcp/types/__init__.py,sha256=
|
|
17
|
-
adcp/types/_generated.py,sha256=
|
|
18
|
-
adcp/types/aliases.py,sha256=
|
|
16
|
+
adcp/types/__init__.py,sha256=V_Tme95-OoTGZkrMTQwNP76cN5QelO-Q-9sRTg-EBIA,2926
|
|
17
|
+
adcp/types/_generated.py,sha256=XYYu3xvuZ0ivIOHt5pViD8FBXehTv3OlAQcxQsd2TzA,15307
|
|
18
|
+
adcp/types/aliases.py,sha256=cTQa2SKWA4dzJEClWe0nkdZ0Z2G_6bbORqnfwHyyWmE,18325
|
|
19
19
|
adcp/types/base.py,sha256=QoEuVfI4yzefup0dc2KN11AcJTbcGxRep7xOw5hXfs8,837
|
|
20
20
|
adcp/types/core.py,sha256=RXkKCWCXS9BVJTNpe3Opm5O1I_LaQPMUuVwa-ipvS1Q,4839
|
|
21
|
-
adcp/types/stable.py,sha256=
|
|
21
|
+
adcp/types/stable.py,sha256=m0HUdlkwQPGFPSGBrkEHp7fuCjKHhw9_E5WQuQsIn50,5244
|
|
22
22
|
adcp/types/generated_poc/__init__.py,sha256=bgFFvPK1-e04eOnyw0qmtVMzoA2V7GeAMPDVrx-VIwA,103
|
|
23
23
|
adcp/types/generated_poc/activate_signal_request.py,sha256=mI1MskO30yEcbQQ7ueEExMF7FhfARQj0_kbz5CAdSzQ,1188
|
|
24
24
|
adcp/types/generated_poc/activate_signal_response.py,sha256=ltt5yDsocK3VfELeRuMjUiNMmUZe__VP5az6fsMCOuc,2015
|
|
25
25
|
adcp/types/generated_poc/activation_key.py,sha256=FFUHvn-q0zKMdImOv-VHKS_78U8FVikUE8M-IOuiamg,952
|
|
26
|
-
adcp/types/generated_poc/adagents.py,sha256=
|
|
26
|
+
adcp/types/generated_poc/adagents.py,sha256=tuMLnT5RRwVFCe8otpHugkz33a3IS3naLUCHUgxvk9c,7192
|
|
27
27
|
adcp/types/generated_poc/asset_type.py,sha256=mNeAkjoEACZbj7lvqjAHcQ6vSNW8dt1qFNxp0fON-Qw,3169
|
|
28
28
|
adcp/types/generated_poc/audio_asset.py,sha256=gu1HQI0310qmY27OzHzBD_gPTPYJv7GzCDgrEymZJ-k,795
|
|
29
29
|
adcp/types/generated_poc/brand_manifest.py,sha256=jJYmM81eTMqVoBFHvoUJEaCrlKcsS_WQa8aJfUcAv3Y,7501
|
|
@@ -85,7 +85,7 @@ adcp/types/generated_poc/preview_creative_request.py,sha256=ul7gJhSQPR9EnPXfjoD5
|
|
|
85
85
|
adcp/types/generated_poc/preview_creative_response.py,sha256=d2OGyfRATgOlLv9B7ow04fzwMyUCmLYbm9s1cg4MRlU,6140
|
|
86
86
|
adcp/types/generated_poc/preview_render.py,sha256=zLlG5IaZsyxZOPzHqjBiyyl7MU3aqVJtZonySAj2ZBk,5076
|
|
87
87
|
adcp/types/generated_poc/pricing_model.py,sha256=8HPxHhLHcOA8vvkqyj5Uem8dWxRgsnbx73l2WAWm-Zg,324
|
|
88
|
-
adcp/types/generated_poc/product.py,sha256=
|
|
88
|
+
adcp/types/generated_poc/product.py,sha256=QRgqTw0ABkDSrMy_IpNfawY2xBDH57zGniteBwZx_6o,6038
|
|
89
89
|
adcp/types/generated_poc/promoted_offerings.py,sha256=R5a551tIy43kZ2BUk-Lktu0t5hXLJfcNZWLHNDBgXp0,3223
|
|
90
90
|
adcp/types/generated_poc/promoted_products.py,sha256=kdPVuzMgOCsHjQiW6YIg9AYriLAFqTFYd-4oDEmEexM,1252
|
|
91
91
|
adcp/types/generated_poc/property.py,sha256=r6km5T5-Sd7tf6w7XmINWyAetlExq1TDNEee8hexaVE,2563
|
|
@@ -93,6 +93,7 @@ adcp/types/generated_poc/protocol_envelope.py,sha256=4XAHgtypta00roZnzsAhfVu1n_h
|
|
|
93
93
|
adcp/types/generated_poc/provide_performance_feedback_request.py,sha256=nuhQuva-W4rQMCfK-0rmeX2lwVA9UcbGP4InKFDRm2Q,2820
|
|
94
94
|
adcp/types/generated_poc/provide_performance_feedback_response.py,sha256=6eVf1r8O_8PPBOXdB1w_7JdZUPkPvip7WVIMsANqoGI,1973
|
|
95
95
|
adcp/types/generated_poc/publisher_identifier_types.py,sha256=CctG8XQRfR1wtxo9bCCuU4oGZ8UoTa87FE0R-kPxYy0,321
|
|
96
|
+
adcp/types/generated_poc/publisher_property_selector.py,sha256=QgxN9jiS9dExTYzLKYsdndDVFXfbLONxcz5Q6xbJhtM,2424
|
|
96
97
|
adcp/types/generated_poc/push_notification_config.py,sha256=s69T-mz9dSiKPJj-U1icEvqYn0T_Lwl4eygKiM0KhCM,1732
|
|
97
98
|
adcp/types/generated_poc/reporting_capabilities.py,sha256=Q-Bdl-Vyqky6q3doorGXcvDCb6Kl3go3qnaptp6RJgY,2107
|
|
98
99
|
adcp/types/generated_poc/response.py,sha256=BrWU9po0mAyIs8htcKgqsO8hehXo0pekqC7hyZNCwrA,707
|
|
@@ -119,11 +120,11 @@ adcp/types/generated_poc/webhook_asset.py,sha256=iSSikTEiBBZl0nVEx7tTMHHb1Tknv7l
|
|
|
119
120
|
adcp/types/generated_poc/webhook_payload.py,sha256=59d5lN932v_WQC3gHwf_QV4SxKlfsqJmjmtp5ZtziWM,3563
|
|
120
121
|
adcp/utils/__init__.py,sha256=uetvSJB19CjQbtwEYZiTnumJG11GsafQmXm5eR3hL7E,153
|
|
121
122
|
adcp/utils/operation_id.py,sha256=wQX9Bb5epXzRq23xoeYPTqzu5yLuhshg7lKJZihcM2k,294
|
|
122
|
-
adcp/utils/preview_cache.py,sha256=
|
|
123
|
+
adcp/utils/preview_cache.py,sha256=PH9bSDOPQzLKqkC_o0a9Xn2i4cNC2oy76dkJdS3j7ck,18491
|
|
123
124
|
adcp/utils/response_parser.py,sha256=uPk2vIH-RYZmq7y3i8lC4HTMQ3FfKdlgXKTjgJ1955M,6253
|
|
124
|
-
adcp-2.
|
|
125
|
-
adcp-2.
|
|
126
|
-
adcp-2.
|
|
127
|
-
adcp-2.
|
|
128
|
-
adcp-2.
|
|
129
|
-
adcp-2.
|
|
125
|
+
adcp-2.7.0.dist-info/licenses/LICENSE,sha256=PF39NR3Ae8PLgBhg3Uxw6ju7iGVIf8hfv9LRWQdii_U,629
|
|
126
|
+
adcp-2.7.0.dist-info/METADATA,sha256=SXCp0-h2nmhbbaRPPH4wO4C6pqWqdqYLbQRr7uon4rE,25810
|
|
127
|
+
adcp-2.7.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
128
|
+
adcp-2.7.0.dist-info/entry_points.txt,sha256=DQKpcGsJX8DtVI_SGApQ7tNvqUB4zkTLaTAEpFgmi3U,44
|
|
129
|
+
adcp-2.7.0.dist-info/top_level.txt,sha256=T1_NF0GefncFU9v_k56oDwKSJREyCqIM8lAwNZf0EOs,5
|
|
130
|
+
adcp-2.7.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|