adcp 2.5.0__py3-none-any.whl → 2.6.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 +19 -1
- adcp/types/__init__.py +12 -0
- adcp/types/aliases.py +241 -0
- {adcp-2.5.0.dist-info → adcp-2.6.0.dist-info}/METADATA +1 -1
- {adcp-2.5.0.dist-info → adcp-2.6.0.dist-info}/RECORD +9 -9
- {adcp-2.5.0.dist-info → adcp-2.6.0.dist-info}/WHEEL +0 -0
- {adcp-2.5.0.dist-info → adcp-2.6.0.dist-info}/entry_points.txt +0 -0
- {adcp-2.5.0.dist-info → adcp-2.6.0.dist-info}/licenses/LICENSE +0 -0
- {adcp-2.5.0.dist-info → adcp-2.6.0.dist-info}/top_level.txt +0 -0
adcp/__init__.py
CHANGED
|
@@ -101,6 +101,8 @@ from adcp.types._generated import TaskStatus as GeneratedTaskStatus
|
|
|
101
101
|
from adcp.types.aliases import (
|
|
102
102
|
ActivateSignalErrorResponse,
|
|
103
103
|
ActivateSignalSuccessResponse,
|
|
104
|
+
AgentDeployment,
|
|
105
|
+
AgentDestination,
|
|
104
106
|
BothPreviewRender,
|
|
105
107
|
BuildCreativeErrorResponse,
|
|
106
108
|
BuildCreativeSuccessResponse,
|
|
@@ -111,14 +113,21 @@ from adcp.types.aliases import (
|
|
|
111
113
|
InlineDaastAsset,
|
|
112
114
|
InlineVastAsset,
|
|
113
115
|
MediaSubAsset,
|
|
116
|
+
PlatformDeployment,
|
|
117
|
+
PlatformDestination,
|
|
114
118
|
PreviewCreativeFormatRequest,
|
|
115
119
|
PreviewCreativeInteractiveResponse,
|
|
116
120
|
PreviewCreativeManifestRequest,
|
|
117
121
|
PreviewCreativeStaticResponse,
|
|
122
|
+
PropertyId,
|
|
118
123
|
PropertyIdActivationKey,
|
|
124
|
+
PropertyTag,
|
|
119
125
|
PropertyTagActivationKey,
|
|
120
126
|
ProvidePerformanceFeedbackErrorResponse,
|
|
121
127
|
ProvidePerformanceFeedbackSuccessResponse,
|
|
128
|
+
PublisherPropertiesAll,
|
|
129
|
+
PublisherPropertiesById,
|
|
130
|
+
PublisherPropertiesByTag,
|
|
122
131
|
SyncCreativesErrorResponse,
|
|
123
132
|
SyncCreativesSuccessResponse,
|
|
124
133
|
TextSubAsset,
|
|
@@ -165,7 +174,7 @@ from adcp.validation import (
|
|
|
165
174
|
validate_publisher_properties_item,
|
|
166
175
|
)
|
|
167
176
|
|
|
168
|
-
__version__ = "2.
|
|
177
|
+
__version__ = "2.6.0"
|
|
169
178
|
|
|
170
179
|
__all__ = [
|
|
171
180
|
# Client classes
|
|
@@ -281,6 +290,8 @@ __all__ = [
|
|
|
281
290
|
# Semantic type aliases (for better API ergonomics)
|
|
282
291
|
"ActivateSignalSuccessResponse",
|
|
283
292
|
"ActivateSignalErrorResponse",
|
|
293
|
+
"AgentDeployment",
|
|
294
|
+
"AgentDestination",
|
|
284
295
|
"BothPreviewRender",
|
|
285
296
|
"BuildCreativeSuccessResponse",
|
|
286
297
|
"BuildCreativeErrorResponse",
|
|
@@ -290,14 +301,21 @@ __all__ = [
|
|
|
290
301
|
"InlineDaastAsset",
|
|
291
302
|
"InlineVastAsset",
|
|
292
303
|
"MediaSubAsset",
|
|
304
|
+
"PlatformDeployment",
|
|
305
|
+
"PlatformDestination",
|
|
293
306
|
"PreviewCreativeFormatRequest",
|
|
294
307
|
"PreviewCreativeManifestRequest",
|
|
295
308
|
"PreviewCreativeStaticResponse",
|
|
296
309
|
"PreviewCreativeInteractiveResponse",
|
|
310
|
+
"PropertyId",
|
|
297
311
|
"PropertyIdActivationKey",
|
|
312
|
+
"PropertyTag",
|
|
298
313
|
"PropertyTagActivationKey",
|
|
299
314
|
"ProvidePerformanceFeedbackSuccessResponse",
|
|
300
315
|
"ProvidePerformanceFeedbackErrorResponse",
|
|
316
|
+
"PublisherPropertiesAll",
|
|
317
|
+
"PublisherPropertiesById",
|
|
318
|
+
"PublisherPropertiesByTag",
|
|
301
319
|
"SyncCreativesSuccessResponse",
|
|
302
320
|
"SyncCreativesErrorResponse",
|
|
303
321
|
"TextSubAsset",
|
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/aliases.py
CHANGED
|
@@ -48,6 +48,12 @@ from adcp.types._generated import (
|
|
|
48
48
|
# DAAST assets
|
|
49
49
|
DaastAsset1,
|
|
50
50
|
DaastAsset2,
|
|
51
|
+
# Deployment types
|
|
52
|
+
Deployment1,
|
|
53
|
+
Deployment2,
|
|
54
|
+
# Destination types
|
|
55
|
+
Destination1,
|
|
56
|
+
Destination2,
|
|
51
57
|
# Preview creative requests
|
|
52
58
|
PreviewCreativeRequest1,
|
|
53
59
|
PreviewCreativeRequest2,
|
|
@@ -84,6 +90,21 @@ from adcp.types.generated_poc.create_media_buy_response import (
|
|
|
84
90
|
)
|
|
85
91
|
from adcp.types.generated_poc.package import Package as FullPackageInternal
|
|
86
92
|
|
|
93
|
+
# Import PublisherProperties types and related types from product module
|
|
94
|
+
from adcp.types.generated_poc.product import (
|
|
95
|
+
PropertyId,
|
|
96
|
+
PropertyTag,
|
|
97
|
+
)
|
|
98
|
+
from adcp.types.generated_poc.product import (
|
|
99
|
+
PublisherProperties as PublisherPropertiesInternal,
|
|
100
|
+
)
|
|
101
|
+
from adcp.types.generated_poc.product import (
|
|
102
|
+
PublisherProperties4 as PublisherPropertiesByIdInternal,
|
|
103
|
+
)
|
|
104
|
+
from adcp.types.generated_poc.product import (
|
|
105
|
+
PublisherProperties5 as PublisherPropertiesByTagInternal,
|
|
106
|
+
)
|
|
107
|
+
|
|
87
108
|
# ============================================================================
|
|
88
109
|
# RESPONSE TYPE ALIASES - Success/Error Discriminated Unions
|
|
89
110
|
# ============================================================================
|
|
@@ -252,6 +273,213 @@ Used in:
|
|
|
252
273
|
Fields: buyer_ref, package_id only
|
|
253
274
|
"""
|
|
254
275
|
|
|
276
|
+
# ============================================================================
|
|
277
|
+
# PUBLISHER PROPERTIES ALIASES - Selection Type Discriminated Unions
|
|
278
|
+
# ============================================================================
|
|
279
|
+
# The AdCP schemas define PublisherProperties as a discriminated union with
|
|
280
|
+
# three variants based on the `selection_type` field:
|
|
281
|
+
#
|
|
282
|
+
# 1. All Properties (selection_type='all'):
|
|
283
|
+
# - Includes all properties from the publisher
|
|
284
|
+
# - Only requires publisher_domain
|
|
285
|
+
#
|
|
286
|
+
# 2. By ID (selection_type='by_id'):
|
|
287
|
+
# - Specific properties selected by property_id
|
|
288
|
+
# - Requires publisher_domain + property_ids array
|
|
289
|
+
#
|
|
290
|
+
# 3. By Tag (selection_type='by_tag'):
|
|
291
|
+
# - Properties selected by tags
|
|
292
|
+
# - Requires publisher_domain + property_tags array
|
|
293
|
+
#
|
|
294
|
+
# These semantic aliases match the discriminator values and make code more
|
|
295
|
+
# readable when constructing or pattern-matching publisher properties.
|
|
296
|
+
|
|
297
|
+
PublisherPropertiesAll = PublisherPropertiesInternal
|
|
298
|
+
"""Publisher properties covering all properties from the publisher.
|
|
299
|
+
|
|
300
|
+
This variant uses selection_type='all' and includes all properties listed
|
|
301
|
+
in the publisher's adagents.json file.
|
|
302
|
+
|
|
303
|
+
Fields:
|
|
304
|
+
- publisher_domain: Domain where adagents.json is hosted
|
|
305
|
+
- selection_type: Literal['all']
|
|
306
|
+
|
|
307
|
+
Example:
|
|
308
|
+
```python
|
|
309
|
+
from adcp import PublisherPropertiesAll
|
|
310
|
+
|
|
311
|
+
props = PublisherPropertiesAll(
|
|
312
|
+
publisher_domain="example.com",
|
|
313
|
+
selection_type="all"
|
|
314
|
+
)
|
|
315
|
+
```
|
|
316
|
+
"""
|
|
317
|
+
|
|
318
|
+
PublisherPropertiesById = PublisherPropertiesByIdInternal
|
|
319
|
+
"""Publisher properties selected by specific property IDs.
|
|
320
|
+
|
|
321
|
+
This variant uses selection_type='by_id' and specifies an explicit list
|
|
322
|
+
of property IDs from the publisher's adagents.json file.
|
|
323
|
+
|
|
324
|
+
Fields:
|
|
325
|
+
- publisher_domain: Domain where adagents.json is hosted
|
|
326
|
+
- selection_type: Literal['by_id']
|
|
327
|
+
- property_ids: List of PropertyId (non-empty)
|
|
328
|
+
|
|
329
|
+
Example:
|
|
330
|
+
```python
|
|
331
|
+
from adcp import PublisherPropertiesById, PropertyId
|
|
332
|
+
|
|
333
|
+
props = PublisherPropertiesById(
|
|
334
|
+
publisher_domain="example.com",
|
|
335
|
+
selection_type="by_id",
|
|
336
|
+
property_ids=[PropertyId("homepage"), PropertyId("sports_section")]
|
|
337
|
+
)
|
|
338
|
+
```
|
|
339
|
+
"""
|
|
340
|
+
|
|
341
|
+
PublisherPropertiesByTag = PublisherPropertiesByTagInternal
|
|
342
|
+
"""Publisher properties selected by tags.
|
|
343
|
+
|
|
344
|
+
This variant uses selection_type='by_tag' and specifies property tags.
|
|
345
|
+
The product covers all properties in the publisher's adagents.json that
|
|
346
|
+
have these tags.
|
|
347
|
+
|
|
348
|
+
Fields:
|
|
349
|
+
- publisher_domain: Domain where adagents.json is hosted
|
|
350
|
+
- selection_type: Literal['by_tag']
|
|
351
|
+
- property_tags: List of PropertyTag (non-empty)
|
|
352
|
+
|
|
353
|
+
Example:
|
|
354
|
+
```python
|
|
355
|
+
from adcp import PublisherPropertiesByTag, PropertyTag
|
|
356
|
+
|
|
357
|
+
props = PublisherPropertiesByTag(
|
|
358
|
+
publisher_domain="example.com",
|
|
359
|
+
selection_type="by_tag",
|
|
360
|
+
property_tags=[PropertyTag("premium"), PropertyTag("video")]
|
|
361
|
+
)
|
|
362
|
+
```
|
|
363
|
+
"""
|
|
364
|
+
|
|
365
|
+
# ============================================================================
|
|
366
|
+
# DEPLOYMENT & DESTINATION ALIASES - Signal Deployment Type Discriminated Unions
|
|
367
|
+
# ============================================================================
|
|
368
|
+
# The AdCP schemas define Deployment and Destination as discriminated unions
|
|
369
|
+
# with two variants based on the `type` field:
|
|
370
|
+
#
|
|
371
|
+
# Deployment (where a signal is activated):
|
|
372
|
+
# - Platform (type='platform'): DSP platform with platform ID
|
|
373
|
+
# - Agent (type='agent'): Sales agent with agent URL
|
|
374
|
+
#
|
|
375
|
+
# Destination (where a signal can be activated):
|
|
376
|
+
# - Platform (type='platform'): Target DSP platform
|
|
377
|
+
# - Agent (type='agent'): Target sales agent
|
|
378
|
+
#
|
|
379
|
+
# These are used in GetSignalsResponse to describe signal availability and
|
|
380
|
+
# activation status across different advertising platforms and agents.
|
|
381
|
+
|
|
382
|
+
PlatformDeployment = Deployment1
|
|
383
|
+
"""Signal deployment to a DSP platform.
|
|
384
|
+
|
|
385
|
+
This variant uses type='platform' for platform-based signal deployments
|
|
386
|
+
like The Trade Desk, Amazon DSP, etc.
|
|
387
|
+
|
|
388
|
+
Fields:
|
|
389
|
+
- type: Literal['platform']
|
|
390
|
+
- platform: Platform identifier (e.g., 'the-trade-desk')
|
|
391
|
+
- account: Optional account identifier
|
|
392
|
+
- is_live: Whether signal is currently active
|
|
393
|
+
- deployed_at: Activation timestamp if live
|
|
394
|
+
- activation_key: Targeting key if live and accessible
|
|
395
|
+
- estimated_activation_duration_minutes: Time to complete activation
|
|
396
|
+
|
|
397
|
+
Example:
|
|
398
|
+
```python
|
|
399
|
+
from adcp import PlatformDeployment
|
|
400
|
+
|
|
401
|
+
deployment = PlatformDeployment(
|
|
402
|
+
type="platform",
|
|
403
|
+
platform="the-trade-desk",
|
|
404
|
+
account="advertiser-123",
|
|
405
|
+
is_live=True,
|
|
406
|
+
deployed_at=datetime.now(timezone.utc)
|
|
407
|
+
)
|
|
408
|
+
```
|
|
409
|
+
"""
|
|
410
|
+
|
|
411
|
+
AgentDeployment = Deployment2
|
|
412
|
+
"""Signal deployment to a sales agent.
|
|
413
|
+
|
|
414
|
+
This variant uses type='agent' for agent-based signal deployments
|
|
415
|
+
using agent URLs.
|
|
416
|
+
|
|
417
|
+
Fields:
|
|
418
|
+
- type: Literal['agent']
|
|
419
|
+
- agent_url: URL identifying the destination agent
|
|
420
|
+
- account: Optional account identifier
|
|
421
|
+
- is_live: Whether signal is currently active
|
|
422
|
+
- deployed_at: Activation timestamp if live
|
|
423
|
+
- activation_key: Targeting key if live and accessible
|
|
424
|
+
- estimated_activation_duration_minutes: Time to complete activation
|
|
425
|
+
|
|
426
|
+
Example:
|
|
427
|
+
```python
|
|
428
|
+
from adcp import AgentDeployment
|
|
429
|
+
|
|
430
|
+
deployment = AgentDeployment(
|
|
431
|
+
type="agent",
|
|
432
|
+
agent_url="https://agent.example.com",
|
|
433
|
+
is_live=False,
|
|
434
|
+
estimated_activation_duration_minutes=30.0
|
|
435
|
+
)
|
|
436
|
+
```
|
|
437
|
+
"""
|
|
438
|
+
|
|
439
|
+
PlatformDestination = Destination1
|
|
440
|
+
"""Available signal destination on a DSP platform.
|
|
441
|
+
|
|
442
|
+
This variant uses type='platform' for platform-based signal destinations.
|
|
443
|
+
|
|
444
|
+
Fields:
|
|
445
|
+
- type: Literal['platform']
|
|
446
|
+
- platform: Platform identifier (e.g., 'the-trade-desk', 'amazon-dsp')
|
|
447
|
+
- account: Optional account identifier on the platform
|
|
448
|
+
|
|
449
|
+
Example:
|
|
450
|
+
```python
|
|
451
|
+
from adcp import PlatformDestination
|
|
452
|
+
|
|
453
|
+
destination = PlatformDestination(
|
|
454
|
+
type="platform",
|
|
455
|
+
platform="the-trade-desk",
|
|
456
|
+
account="advertiser-123"
|
|
457
|
+
)
|
|
458
|
+
```
|
|
459
|
+
"""
|
|
460
|
+
|
|
461
|
+
AgentDestination = Destination2
|
|
462
|
+
"""Available signal destination via a sales agent.
|
|
463
|
+
|
|
464
|
+
This variant uses type='agent' for agent-based signal destinations.
|
|
465
|
+
|
|
466
|
+
Fields:
|
|
467
|
+
- type: Literal['agent']
|
|
468
|
+
- agent_url: URL identifying the destination agent
|
|
469
|
+
- account: Optional account identifier on the agent
|
|
470
|
+
|
|
471
|
+
Example:
|
|
472
|
+
```python
|
|
473
|
+
from adcp import AgentDestination
|
|
474
|
+
|
|
475
|
+
destination = AgentDestination(
|
|
476
|
+
type="agent",
|
|
477
|
+
agent_url="https://agent.example.com",
|
|
478
|
+
account="partner-456"
|
|
479
|
+
)
|
|
480
|
+
```
|
|
481
|
+
"""
|
|
482
|
+
|
|
255
483
|
# ============================================================================
|
|
256
484
|
# EXPORTS
|
|
257
485
|
# ============================================================================
|
|
@@ -300,4 +528,17 @@ __all__ = [
|
|
|
300
528
|
# Package type aliases
|
|
301
529
|
"CreatedPackageReference",
|
|
302
530
|
"Package",
|
|
531
|
+
# Publisher properties types
|
|
532
|
+
"PropertyId",
|
|
533
|
+
"PropertyTag",
|
|
534
|
+
# Publisher properties aliases
|
|
535
|
+
"PublisherPropertiesAll",
|
|
536
|
+
"PublisherPropertiesById",
|
|
537
|
+
"PublisherPropertiesByTag",
|
|
538
|
+
# Deployment aliases
|
|
539
|
+
"PlatformDeployment",
|
|
540
|
+
"AgentDeployment",
|
|
541
|
+
# Destination aliases
|
|
542
|
+
"PlatformDestination",
|
|
543
|
+
"AgentDestination",
|
|
303
544
|
]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
adcp/__init__.py,sha256=
|
|
1
|
+
adcp/__init__.py,sha256=WTIxgfr9VU1apx9J6AinZ3xwV61Z2O0smUnQEdEarmY,9034
|
|
2
2
|
adcp/__main__.py,sha256=YF2GUXF1LICW1TPxNQiGIfSp5cpAsejoEG2fuOgbzrc,12839
|
|
3
3
|
adcp/adagents.py,sha256=o-vTBmdZvu9aER-TAlLLL3s-WGYY8N67jnrAH24lST8,22333
|
|
4
4
|
adcp/client.py,sha256=Z70D0bHcLNmr0NBGXbFUvW8dBdzHkcv8CmFcYo3pIjw,28803
|
|
@@ -13,9 +13,9 @@ 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=
|
|
16
|
+
adcp/types/__init__.py,sha256=V_Tme95-OoTGZkrMTQwNP76cN5QelO-Q-9sRTg-EBIA,2926
|
|
17
17
|
adcp/types/_generated.py,sha256=p4U_P3BROGjCnS0Cd2o9ZJ_bShQLffB3D9_0D29JB0g,14926
|
|
18
|
-
adcp/types/aliases.py,sha256=
|
|
18
|
+
adcp/types/aliases.py,sha256=puqrz_cwlfSq6Td78EIaWtDUzcsCGMVM98Pv3T7qSlo,18445
|
|
19
19
|
adcp/types/base.py,sha256=QoEuVfI4yzefup0dc2KN11AcJTbcGxRep7xOw5hXfs8,837
|
|
20
20
|
adcp/types/core.py,sha256=RXkKCWCXS9BVJTNpe3Opm5O1I_LaQPMUuVwa-ipvS1Q,4839
|
|
21
21
|
adcp/types/stable.py,sha256=Q_rxnpLuUGfqGusiJcMuPADIGLQgs2uLp98S4YnAksw,4997
|
|
@@ -121,9 +121,9 @@ adcp/utils/__init__.py,sha256=uetvSJB19CjQbtwEYZiTnumJG11GsafQmXm5eR3hL7E,153
|
|
|
121
121
|
adcp/utils/operation_id.py,sha256=wQX9Bb5epXzRq23xoeYPTqzu5yLuhshg7lKJZihcM2k,294
|
|
122
122
|
adcp/utils/preview_cache.py,sha256=oc1AUkPrHHmUqfZa5920OCKY7qrDDR86XO6oi1PEHTA,18504
|
|
123
123
|
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.
|
|
124
|
+
adcp-2.6.0.dist-info/licenses/LICENSE,sha256=PF39NR3Ae8PLgBhg3Uxw6ju7iGVIf8hfv9LRWQdii_U,629
|
|
125
|
+
adcp-2.6.0.dist-info/METADATA,sha256=r91G1kiiN13GSt8F5PBOxJQiqHBayDibdtvAd8v-blI,25810
|
|
126
|
+
adcp-2.6.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
127
|
+
adcp-2.6.0.dist-info/entry_points.txt,sha256=DQKpcGsJX8DtVI_SGApQ7tNvqUB4zkTLaTAEpFgmi3U,44
|
|
128
|
+
adcp-2.6.0.dist-info/top_level.txt,sha256=T1_NF0GefncFU9v_k56oDwKSJREyCqIM8lAwNZf0EOs,5
|
|
129
|
+
adcp-2.6.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|